@deephaven/components 0.5.2-beta.0 → 0.6.1-demo.8

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 (119) hide show
  1. package/dist/AutoCompleteInput.js +410 -448
  2. package/dist/AutoCompleteInput.js.map +1 -1
  3. package/dist/AutoResizeTextarea.js +17 -46
  4. package/dist/AutoResizeTextarea.js.map +1 -1
  5. package/dist/BasicModal.js +18 -19
  6. package/dist/BasicModal.js.map +1 -1
  7. package/dist/Button.js +30 -21
  8. package/dist/Button.js.map +1 -1
  9. package/dist/ButtonGroup.js +6 -4
  10. package/dist/ButtonGroup.js.map +1 -1
  11. package/dist/ButtonOld.js +10 -8
  12. package/dist/ButtonOld.js.map +1 -1
  13. package/dist/CardFlip.js +10 -8
  14. package/dist/CardFlip.js.map +1 -1
  15. package/dist/Checkbox.js +18 -31
  16. package/dist/Checkbox.js.map +1 -1
  17. package/dist/Collapse.js +65 -105
  18. package/dist/Collapse.js.map +1 -1
  19. package/dist/ComboBox.js +432 -460
  20. package/dist/ComboBox.js.map +1 -1
  21. package/dist/CustomTimeSelect.js +485 -517
  22. package/dist/CustomTimeSelect.js.map +1 -1
  23. package/dist/DebouncedSearchInput.js +61 -91
  24. package/dist/DebouncedSearchInput.js.map +1 -1
  25. package/dist/DeephavenSpinner.js +6 -6
  26. package/dist/DeephavenSpinner.js.map +1 -1
  27. package/dist/DragUtils.js +65 -113
  28. package/dist/DragUtils.js.map +1 -1
  29. package/dist/DraggableItemList.d.ts +1 -0
  30. package/dist/DraggableItemList.d.ts.map +1 -1
  31. package/dist/DraggableItemList.js +219 -257
  32. package/dist/DraggableItemList.js.map +1 -1
  33. package/dist/HierarchicalCheckboxMenu.js +160 -227
  34. package/dist/HierarchicalCheckboxMenu.js.map +1 -1
  35. package/dist/ItemList.d.ts +4 -2
  36. package/dist/ItemList.d.ts.map +1 -1
  37. package/dist/ItemList.js +595 -598
  38. package/dist/ItemList.js.map +1 -1
  39. package/dist/ItemListItem.js +194 -215
  40. package/dist/ItemListItem.js.map +1 -1
  41. package/dist/LoadingOverlay.js +9 -10
  42. package/dist/LoadingOverlay.js.map +1 -1
  43. package/dist/LoadingSpinner.js +4 -3
  44. package/dist/LoadingSpinner.js.map +1 -1
  45. package/dist/MaskedInput.js +59 -70
  46. package/dist/MaskedInput.js.map +1 -1
  47. package/dist/Option.js +5 -3
  48. package/dist/Option.js.map +1 -1
  49. package/dist/RadioGroup.js +16 -34
  50. package/dist/RadioGroup.js.map +1 -1
  51. package/dist/RadioItem.js +14 -33
  52. package/dist/RadioItem.js.map +1 -1
  53. package/dist/SearchInput.js +42 -75
  54. package/dist/SearchInput.js.map +1 -1
  55. package/dist/Select.js +10 -8
  56. package/dist/Select.js.map +1 -1
  57. package/dist/SelectValueList.js +97 -134
  58. package/dist/SelectValueList.js.map +1 -1
  59. package/dist/SocketedButton.js +13 -11
  60. package/dist/SocketedButton.js.map +1 -1
  61. package/dist/ThemeExport.js.map +1 -1
  62. package/dist/TimeInput.js +16 -53
  63. package/dist/TimeInput.js.map +1 -1
  64. package/dist/TimeSlider.js +62 -88
  65. package/dist/TimeSlider.js.map +1 -1
  66. package/dist/ToastNotification.js +14 -13
  67. package/dist/ToastNotification.js.map +1 -1
  68. package/dist/UISwitch.js +9 -8
  69. package/dist/UISwitch.js.map +1 -1
  70. package/dist/context-actions/ContextActionUtils.js +173 -231
  71. package/dist/context-actions/ContextActionUtils.js.map +1 -1
  72. package/dist/context-actions/ContextActions.js +135 -177
  73. package/dist/context-actions/ContextActions.js.map +1 -1
  74. package/dist/context-actions/ContextMenu.js +509 -543
  75. package/dist/context-actions/ContextMenu.js.map +1 -1
  76. package/dist/context-actions/ContextMenuItem.js +32 -22
  77. package/dist/context-actions/ContextMenuItem.js.map +1 -1
  78. package/dist/context-actions/ContextMenuRoot.js +112 -152
  79. package/dist/context-actions/ContextMenuRoot.js.map +1 -1
  80. package/dist/context-actions/GlobalContextAction.js +49 -84
  81. package/dist/context-actions/GlobalContextAction.js.map +1 -1
  82. package/dist/context-actions/GlobalContextActions.js +25 -57
  83. package/dist/context-actions/GlobalContextActions.js.map +1 -1
  84. package/dist/context-actions/index.js +4 -4
  85. package/dist/context-actions/index.js.map +1 -1
  86. package/dist/index.js +39 -39
  87. package/dist/index.js.map +1 -1
  88. package/dist/menu-actions/DropdownMenu.js +126 -159
  89. package/dist/menu-actions/DropdownMenu.js.map +1 -1
  90. package/dist/menu-actions/Menu.js +215 -245
  91. package/dist/menu-actions/Menu.js.map +1 -1
  92. package/dist/menu-actions/index.js +1 -1
  93. package/dist/menu-actions/index.js.map +1 -1
  94. package/dist/navigation/Menu.js +14 -18
  95. package/dist/navigation/Menu.js.map +1 -1
  96. package/dist/navigation/MenuItem.js +15 -14
  97. package/dist/navigation/MenuItem.js.map +1 -1
  98. package/dist/navigation/Page.js +7 -5
  99. package/dist/navigation/Page.js.map +1 -1
  100. package/dist/navigation/Stack.js +14 -39
  101. package/dist/navigation/Stack.js.map +1 -1
  102. package/dist/navigation/index.js +4 -4
  103. package/dist/navigation/index.js.map +1 -1
  104. package/dist/popper/Popper.js +209 -235
  105. package/dist/popper/Popper.js.map +1 -1
  106. package/dist/popper/Tooltip.js +227 -257
  107. package/dist/popper/Tooltip.js.map +1 -1
  108. package/dist/popper/index.js +2 -2
  109. package/dist/popper/index.js.map +1 -1
  110. package/dist/shortcuts/GlobalShortcuts.js +2 -2
  111. package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
  112. package/dist/shortcuts/Shortcut.js +263 -291
  113. package/dist/shortcuts/Shortcut.js.map +1 -1
  114. package/dist/shortcuts/ShortcutRegistry.js +48 -71
  115. package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
  116. package/dist/shortcuts/index.js +4 -4
  117. package/dist/shortcuts/index.js.map +1 -1
  118. package/dist/tsconfig.tsbuildinfo +1 -1
  119. package/package.json +30 -54
@@ -1,29 +1,7 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
-
3
1
  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; }
4
2
 
5
3
  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; }
6
4
 
7
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8
-
9
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
10
-
11
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12
-
13
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
14
-
15
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
16
-
17
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
18
-
19
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
20
-
21
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
22
-
23
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
24
-
25
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
26
-
27
5
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
28
6
 
29
7
  /**
@@ -58,168 +36,157 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
58
36
  */
59
37
  import React, { PureComponent } from 'react';
60
38
  import classNames from 'classnames';
61
- import { Popper } from '../popper';
62
- import Menu from './Menu';
39
+ import { Popper } from "../popper/index.js";
40
+ import Menu from "./Menu.js";
63
41
  import "./DropdownMenu.css";
64
42
 
65
- var DropdownMenu = /*#__PURE__*/function (_PureComponent) {
66
- _inherits(DropdownMenu, _PureComponent);
67
-
68
- var _super = _createSuper(DropdownMenu);
43
+ class DropdownMenu extends PureComponent {
44
+ constructor(props) {
45
+ super(props);
69
46
 
70
- function DropdownMenu(props) {
71
- var _this;
47
+ _defineProperty(this, "container", void 0);
72
48
 
73
- _classCallCheck(this, DropdownMenu);
49
+ _defineProperty(this, "parent", void 0);
74
50
 
75
- _this = _super.call(this, props);
51
+ _defineProperty(this, "popper", void 0);
76
52
 
77
- _defineProperty(_assertThisInitialized(_this), "container", void 0);
53
+ _defineProperty(this, "isOpen", void 0);
78
54
 
79
- _defineProperty(_assertThisInitialized(_this), "parent", void 0);
80
-
81
- _defineProperty(_assertThisInitialized(_this), "popper", void 0);
82
-
83
- _defineProperty(_assertThisInitialized(_this), "isOpen", void 0);
84
-
85
- _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));
86
- _this.handleCloseMenu = _this.handleCloseMenu.bind(_assertThisInitialized(_this));
87
- _this.handleExited = _this.handleExited.bind(_assertThisInitialized(_this));
88
- _this.container = /*#__PURE__*/React.createRef();
89
- _this.parent = null;
90
- _this.popper = /*#__PURE__*/React.createRef();
91
- _this.isOpen = false;
92
- return _this;
55
+ this.handleClick = this.handleClick.bind(this);
56
+ this.handleCloseMenu = this.handleCloseMenu.bind(this);
57
+ this.handleExited = this.handleExited.bind(this);
58
+ this.container = /*#__PURE__*/React.createRef();
59
+ this.parent = null;
60
+ this.popper = /*#__PURE__*/React.createRef();
61
+ this.isOpen = false;
93
62
  }
94
63
 
95
- _createClass(DropdownMenu, [{
96
- key: "componentDidMount",
97
- value: function componentDidMount() {
98
- var isShown = this.props.isShown;
64
+ componentDidMount() {
65
+ var {
66
+ isShown
67
+ } = this.props;
99
68
 
100
- if (isShown === null) {
101
- var _this$container$curre;
69
+ if (isShown === null) {
70
+ var _this$container$curre;
102
71
 
103
- if ((_this$container$curre = this.container.current) !== null && _this$container$curre !== void 0 && _this$container$curre.parentElement) {
104
- this.parent = this.container.current.parentElement;
105
- this.parent.addEventListener('click', this.handleClick);
106
- }
107
- } else if (isShown) {
108
- this.openMenu();
109
- }
110
- }
111
- }, {
112
- key: "componentDidUpdate",
113
- value: function componentDidUpdate(prevProps) {
114
- var _this2 = this;
115
-
116
- var isShown = this.props.isShown;
117
-
118
- if (prevProps.isShown !== isShown) {
119
- if (isShown) {
120
- // https://github.com/reactjs/react-transition-group/issues/382
121
- window.requestAnimationFrame(function () {
122
- _this2.openMenu();
123
- });
124
- } else {
125
- this.closeMenu();
126
- }
127
- }
128
- }
129
- }, {
130
- key: "componentWillUnmount",
131
- value: function componentWillUnmount() {
132
- if (this.parent) {
133
- this.parent.removeEventListener('click', this.handleClick);
72
+ if ((_this$container$curre = this.container.current) !== null && _this$container$curre !== void 0 && _this$container$curre.parentElement) {
73
+ this.parent = this.container.current.parentElement;
74
+ this.parent.addEventListener('click', this.handleClick);
134
75
  }
76
+ } else if (isShown) {
77
+ this.openMenu();
135
78
  }
136
- }, {
137
- key: "closeMenu",
138
- value: function closeMenu() {
139
- var _this$popper$current;
79
+ }
140
80
 
141
- (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 ? void 0 : _this$popper$current.hide();
142
- }
143
- }, {
144
- key: "openMenu",
145
- value: function openMenu() {
146
- if (this.popper.current && !this.isOpen) {
147
- this.popper.current.show();
148
- this.isOpen = true;
81
+ componentDidUpdate(prevProps) {
82
+ var {
83
+ isShown
84
+ } = this.props;
85
+
86
+ if (prevProps.isShown !== isShown) {
87
+ if (isShown) {
88
+ // https://github.com/reactjs/react-transition-group/issues/382
89
+ window.requestAnimationFrame(() => {
90
+ this.openMenu();
91
+ });
92
+ } else {
93
+ this.closeMenu();
149
94
  }
150
95
  }
151
- }, {
152
- key: "scheduleUpdate",
153
- value: function scheduleUpdate() {
154
- var _this$popper$current2;
96
+ }
155
97
 
156
- (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 ? void 0 : _this$popper$current2.scheduleUpdate();
98
+ componentWillUnmount() {
99
+ if (this.parent) {
100
+ this.parent.removeEventListener('click', this.handleClick);
157
101
  }
158
- }, {
159
- key: "handleClick",
160
- value: function handleClick(e) {
161
- e.preventDefault();
162
- e.stopPropagation();
163
- this.openMenu();
164
- }
165
- }, {
166
- key: "handleCloseMenu",
167
- value: function handleCloseMenu() {
168
- this.closeMenu();
169
- }
170
- }, {
171
- key: "handleExited",
172
- value: function handleExited() {
173
- this.isOpen = false;
174
- var onMenuClosed = this.props.onMenuClosed;
175
- onMenuClosed();
176
- }
177
- }, {
178
- key: "render",
179
- value: function render() {
180
- var _this$props = this.props,
181
- actions = _this$props.actions,
182
- onMenuOpened = _this$props.onMenuOpened,
183
- popperClassName = _this$props.popperClassName;
184
- var menuStyle = this.props.menuStyle;
185
- var _this$props2 = this.props,
186
- options = _this$props2.options,
187
- popperOptions = _this$props2.popperOptions;
188
- popperOptions = _objectSpread({
189
- placement: 'bottom'
190
- }, popperOptions);
191
- options = _objectSpread({
192
- separateKeyboardMouse: true
193
- }, options);
194
- return /*#__PURE__*/React.createElement("div", {
195
- className: "menu-actions-listener",
196
- ref: this.container
197
- }, /*#__PURE__*/React.createElement(Popper, {
198
- ref: this.popper,
199
- options: popperOptions,
200
- className: classNames('menu-popper', popperClassName),
201
- onExited: this.handleExited,
202
- closeOnBlur: true,
203
- interactive: true
204
- }, /*#__PURE__*/React.createElement(Menu, {
205
- actions: actions,
206
- closeMenu: this.handleCloseMenu,
207
- onMenuOpened: onMenuOpened,
208
- options: options,
209
- menuStyle: menuStyle
210
- })));
102
+ }
103
+
104
+ closeMenu() {
105
+ var _this$popper$current;
106
+
107
+ (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 ? void 0 : _this$popper$current.hide();
108
+ }
109
+
110
+ openMenu() {
111
+ if (this.popper.current && !this.isOpen) {
112
+ this.popper.current.show();
113
+ this.isOpen = true;
211
114
  }
212
- }]);
115
+ }
213
116
 
214
- return DropdownMenu;
215
- }(PureComponent);
117
+ scheduleUpdate() {
118
+ var _this$popper$current2;
119
+
120
+ (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 ? void 0 : _this$popper$current2.scheduleUpdate();
121
+ }
122
+
123
+ handleClick(e) {
124
+ e.preventDefault();
125
+ e.stopPropagation();
126
+ this.openMenu();
127
+ }
128
+
129
+ handleCloseMenu() {
130
+ this.closeMenu();
131
+ }
132
+
133
+ handleExited() {
134
+ this.isOpen = false;
135
+ var {
136
+ onMenuClosed
137
+ } = this.props;
138
+ onMenuClosed();
139
+ }
140
+
141
+ render() {
142
+ var {
143
+ actions,
144
+ onMenuOpened,
145
+ popperClassName
146
+ } = this.props;
147
+ var {
148
+ menuStyle
149
+ } = this.props;
150
+ var {
151
+ options,
152
+ popperOptions
153
+ } = this.props;
154
+ popperOptions = _objectSpread({
155
+ placement: 'bottom'
156
+ }, popperOptions);
157
+ options = _objectSpread({
158
+ separateKeyboardMouse: true
159
+ }, options);
160
+ return /*#__PURE__*/React.createElement("div", {
161
+ className: "menu-actions-listener",
162
+ ref: this.container
163
+ }, /*#__PURE__*/React.createElement(Popper, {
164
+ ref: this.popper,
165
+ options: popperOptions,
166
+ className: classNames('menu-popper', popperClassName),
167
+ onExited: this.handleExited,
168
+ closeOnBlur: true,
169
+ interactive: true
170
+ }, /*#__PURE__*/React.createElement(Menu, {
171
+ actions: actions,
172
+ closeMenu: this.handleCloseMenu,
173
+ onMenuOpened: onMenuOpened,
174
+ options: options,
175
+ menuStyle: menuStyle
176
+ })));
177
+ }
178
+
179
+ }
216
180
 
217
181
  _defineProperty(DropdownMenu, "defaultProps", {
218
182
  isShown: null,
219
- onMenuClosed: function onMenuClosed() {// no-op
183
+
184
+ onMenuClosed() {// no-op
220
185
  },
221
- onMenuOpened: function onMenuOpened() {// no-op
186
+
187
+ onMenuOpened() {// no-op
222
188
  },
189
+
223
190
  options: {},
224
191
  popperOptions: {},
225
192
  popperClassName: '',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/menu-actions/DropdownMenu.tsx"],"names":["React","PureComponent","classNames","Popper","Menu","DropdownMenu","props","handleClick","bind","handleCloseMenu","handleExited","container","createRef","parent","popper","isOpen","isShown","current","parentElement","addEventListener","openMenu","prevProps","window","requestAnimationFrame","closeMenu","removeEventListener","hide","show","scheduleUpdate","e","preventDefault","stopPropagation","onMenuClosed","actions","onMenuOpened","popperClassName","menuStyle","options","popperOptions","placement","separateKeyboardMouse"],"mappings":"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","sourcesContent":["/**\n * Add dropdown menu that you add onto any component.\n *\n * Similar to the context-actions package, accepts list of actions to create a dropdown menu.\n * Note: Does not support nested sub-menus.\n *\n * Usage:\n * let actions = [{\n * title: 'My Action',\n * action: () => { alert('My Action Clicked!') }\n * icon: faPrint, // Limited to FontAwesome icons for now.\n * shortcut: Shortcut, // Shortcut class instance\n * group: ContextActions.groups.default, // What group to group the context action with\n * order: null // Int where to order within group\n * }];\n *\n * Usage:\n * 1. Auto bind click to open event to parent\n * <div>\n * Click in this container\n * <DropdownMenu actions={actions}/>\n * </div>\n *\n * 2. Control via prop\n * <div>\n * DropdownMenu will not react to the click event if isShown prop is used\n * <DropdownMenu actions={actions} isShown={isShown} />\n * </div>\n *\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { PopperOptions } from 'popper.js';\nimport { Popper } from '../popper';\nimport Menu, { MenuOptions } from './Menu';\nimport { ContextAction } from '../context-actions/ContextActionUtils';\nimport './DropdownMenu.scss';\n\ntype DropdownMenuProps = {\n // Override to prevent nested lists\n actions:\n | (ContextAction & { actions?: never })\n | (ContextAction & { actions?: never })[];\n isShown: boolean | null;\n onMenuClosed(): void;\n onMenuOpened(): void;\n options: MenuOptions;\n popperOptions: PopperOptions;\n popperClassName: string;\n menuStyle: React.CSSProperties;\n};\n\nclass DropdownMenu extends PureComponent<DropdownMenuProps> {\n static defaultProps = {\n isShown: null,\n onMenuClosed(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n options: {},\n popperOptions: {},\n popperClassName: '',\n menuStyle: {},\n };\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n this.handleExited = this.handleExited.bind(this);\n\n this.container = React.createRef();\n this.parent = null;\n this.popper = React.createRef();\n\n this.isOpen = false;\n }\n\n componentDidMount(): void {\n const { isShown } = this.props;\n\n if (isShown === null) {\n if (this.container.current?.parentElement) {\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('click', this.handleClick);\n }\n } else if (isShown) {\n this.openMenu();\n }\n }\n\n componentDidUpdate(prevProps: DropdownMenuProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown) {\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n this.openMenu();\n });\n } else {\n this.closeMenu();\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this.parent) {\n this.parent.removeEventListener('click', this.handleClick);\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n parent: Element | null;\n\n popper: React.RefObject<Popper>;\n\n isOpen: boolean;\n\n closeMenu(): void {\n this.popper.current?.hide();\n }\n\n openMenu(): void {\n if (this.popper.current && !this.isOpen) {\n this.popper.current.show();\n this.isOpen = true;\n }\n }\n\n scheduleUpdate(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n\n this.openMenu();\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleExited(): void {\n this.isOpen = false;\n\n const { onMenuClosed } = this.props;\n onMenuClosed();\n }\n\n render(): JSX.Element {\n const { actions, onMenuOpened, popperClassName } = this.props;\n const { menuStyle } = this.props;\n let { options, popperOptions } = this.props;\n popperOptions = { placement: 'bottom', ...popperOptions };\n options = {\n separateKeyboardMouse: true,\n ...options,\n };\n return (\n <div className=\"menu-actions-listener\" ref={this.container}>\n <Popper\n ref={this.popper}\n options={popperOptions}\n className={classNames('menu-popper', popperClassName)}\n onExited={this.handleExited}\n closeOnBlur\n interactive\n >\n <Menu\n actions={actions}\n closeMenu={this.handleCloseMenu}\n onMenuOpened={onMenuOpened}\n options={options}\n menuStyle={menuStyle}\n />\n </Popper>\n </div>\n );\n }\n}\n\nexport default DropdownMenu;\n"],"file":"DropdownMenu.js"}
1
+ {"version":3,"sources":["../../src/menu-actions/DropdownMenu.tsx"],"names":["React","PureComponent","classNames","Popper","Menu","DropdownMenu","constructor","props","handleClick","bind","handleCloseMenu","handleExited","container","createRef","parent","popper","isOpen","componentDidMount","isShown","current","parentElement","addEventListener","openMenu","componentDidUpdate","prevProps","window","requestAnimationFrame","closeMenu","componentWillUnmount","removeEventListener","hide","show","scheduleUpdate","e","preventDefault","stopPropagation","onMenuClosed","render","actions","onMenuOpened","popperClassName","menuStyle","options","popperOptions","placement","separateKeyboardMouse"],"mappings":"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","sourcesContent":["/**\n * Add dropdown menu that you add onto any component.\n *\n * Similar to the context-actions package, accepts list of actions to create a dropdown menu.\n * Note: Does not support nested sub-menus.\n *\n * Usage:\n * let actions = [{\n * title: 'My Action',\n * action: () => { alert('My Action Clicked!') }\n * icon: faPrint, // Limited to FontAwesome icons for now.\n * shortcut: Shortcut, // Shortcut class instance\n * group: ContextActions.groups.default, // What group to group the context action with\n * order: null // Int where to order within group\n * }];\n *\n * Usage:\n * 1. Auto bind click to open event to parent\n * <div>\n * Click in this container\n * <DropdownMenu actions={actions}/>\n * </div>\n *\n * 2. Control via prop\n * <div>\n * DropdownMenu will not react to the click event if isShown prop is used\n * <DropdownMenu actions={actions} isShown={isShown} />\n * </div>\n *\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { PopperOptions } from 'popper.js';\nimport { Popper } from '../popper';\nimport Menu, { MenuOptions } from './Menu';\nimport { ContextAction } from '../context-actions/ContextActionUtils';\nimport './DropdownMenu.scss';\n\ntype DropdownMenuProps = {\n // Override to prevent nested lists\n actions:\n | (ContextAction & { actions?: never })\n | (ContextAction & { actions?: never })[];\n isShown: boolean | null;\n onMenuClosed(): void;\n onMenuOpened(): void;\n options: MenuOptions;\n popperOptions: PopperOptions;\n popperClassName: string;\n menuStyle: React.CSSProperties;\n};\n\nclass DropdownMenu extends PureComponent<DropdownMenuProps> {\n static defaultProps = {\n isShown: null,\n onMenuClosed(): void {\n // no-op\n },\n onMenuOpened(): void {\n // no-op\n },\n options: {},\n popperOptions: {},\n popperClassName: '',\n menuStyle: {},\n };\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleCloseMenu = this.handleCloseMenu.bind(this);\n this.handleExited = this.handleExited.bind(this);\n\n this.container = React.createRef();\n this.parent = null;\n this.popper = React.createRef();\n\n this.isOpen = false;\n }\n\n componentDidMount(): void {\n const { isShown } = this.props;\n\n if (isShown === null) {\n if (this.container.current?.parentElement) {\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('click', this.handleClick);\n }\n } else if (isShown) {\n this.openMenu();\n }\n }\n\n componentDidUpdate(prevProps: DropdownMenuProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown) {\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n this.openMenu();\n });\n } else {\n this.closeMenu();\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this.parent) {\n this.parent.removeEventListener('click', this.handleClick);\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n parent: Element | null;\n\n popper: React.RefObject<Popper>;\n\n isOpen: boolean;\n\n closeMenu(): void {\n this.popper.current?.hide();\n }\n\n openMenu(): void {\n if (this.popper.current && !this.isOpen) {\n this.popper.current.show();\n this.isOpen = true;\n }\n }\n\n scheduleUpdate(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleClick(e: Event): void {\n e.preventDefault();\n e.stopPropagation();\n\n this.openMenu();\n }\n\n handleCloseMenu(): void {\n this.closeMenu();\n }\n\n handleExited(): void {\n this.isOpen = false;\n\n const { onMenuClosed } = this.props;\n onMenuClosed();\n }\n\n render(): JSX.Element {\n const { actions, onMenuOpened, popperClassName } = this.props;\n const { menuStyle } = this.props;\n let { options, popperOptions } = this.props;\n popperOptions = { placement: 'bottom', ...popperOptions };\n options = {\n separateKeyboardMouse: true,\n ...options,\n };\n return (\n <div className=\"menu-actions-listener\" ref={this.container}>\n <Popper\n ref={this.popper}\n options={popperOptions}\n className={classNames('menu-popper', popperClassName)}\n onExited={this.handleExited}\n closeOnBlur\n interactive\n >\n <Menu\n actions={actions}\n closeMenu={this.handleCloseMenu}\n onMenuOpened={onMenuOpened}\n options={options}\n menuStyle={menuStyle}\n />\n </Popper>\n </div>\n );\n }\n}\n\nexport default DropdownMenu;\n"],"file":"DropdownMenu.js"}