@deephaven/components 0.5.2-beta.0 → 0.6.1-demo.10
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.
- package/dist/AutoCompleteInput.js +410 -448
- package/dist/AutoCompleteInput.js.map +1 -1
- package/dist/AutoResizeTextarea.js +17 -46
- package/dist/AutoResizeTextarea.js.map +1 -1
- package/dist/BasicModal.js +18 -19
- package/dist/BasicModal.js.map +1 -1
- package/dist/Button.js +30 -21
- package/dist/Button.js.map +1 -1
- package/dist/ButtonGroup.js +6 -4
- package/dist/ButtonGroup.js.map +1 -1
- package/dist/ButtonOld.js +10 -8
- package/dist/ButtonOld.js.map +1 -1
- package/dist/CardFlip.js +10 -8
- package/dist/CardFlip.js.map +1 -1
- package/dist/Checkbox.js +18 -31
- package/dist/Checkbox.js.map +1 -1
- package/dist/Collapse.js +65 -105
- package/dist/Collapse.js.map +1 -1
- package/dist/ComboBox.js +432 -460
- package/dist/ComboBox.js.map +1 -1
- package/dist/CustomTimeSelect.js +485 -517
- package/dist/CustomTimeSelect.js.map +1 -1
- package/dist/DebouncedSearchInput.js +61 -91
- package/dist/DebouncedSearchInput.js.map +1 -1
- package/dist/DeephavenSpinner.js +6 -6
- package/dist/DeephavenSpinner.js.map +1 -1
- package/dist/DragUtils.js +65 -113
- package/dist/DragUtils.js.map +1 -1
- package/dist/DraggableItemList.d.ts +1 -0
- package/dist/DraggableItemList.d.ts.map +1 -1
- package/dist/DraggableItemList.js +219 -257
- package/dist/DraggableItemList.js.map +1 -1
- package/dist/HierarchicalCheckboxMenu.js +160 -227
- package/dist/HierarchicalCheckboxMenu.js.map +1 -1
- package/dist/ItemList.d.ts +4 -2
- package/dist/ItemList.d.ts.map +1 -1
- package/dist/ItemList.js +595 -598
- package/dist/ItemList.js.map +1 -1
- package/dist/ItemListItem.js +194 -215
- package/dist/ItemListItem.js.map +1 -1
- package/dist/LoadingOverlay.js +9 -10
- package/dist/LoadingOverlay.js.map +1 -1
- package/dist/LoadingSpinner.js +4 -3
- package/dist/LoadingSpinner.js.map +1 -1
- package/dist/MaskedInput.js +59 -70
- package/dist/MaskedInput.js.map +1 -1
- package/dist/Option.js +5 -3
- package/dist/Option.js.map +1 -1
- package/dist/RadioGroup.js +16 -34
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioItem.js +14 -33
- package/dist/RadioItem.js.map +1 -1
- package/dist/SearchInput.js +42 -75
- package/dist/SearchInput.js.map +1 -1
- package/dist/Select.js +10 -8
- package/dist/Select.js.map +1 -1
- package/dist/SelectValueList.js +97 -134
- package/dist/SelectValueList.js.map +1 -1
- package/dist/SocketedButton.js +13 -11
- package/dist/SocketedButton.js.map +1 -1
- package/dist/ThemeExport.js.map +1 -1
- package/dist/TimeInput.js +16 -53
- package/dist/TimeInput.js.map +1 -1
- package/dist/TimeSlider.js +62 -88
- package/dist/TimeSlider.js.map +1 -1
- package/dist/ToastNotification.js +14 -13
- package/dist/ToastNotification.js.map +1 -1
- package/dist/UISwitch.js +9 -8
- package/dist/UISwitch.js.map +1 -1
- package/dist/context-actions/ContextActionUtils.js +173 -231
- package/dist/context-actions/ContextActionUtils.js.map +1 -1
- package/dist/context-actions/ContextActions.js +135 -177
- package/dist/context-actions/ContextActions.js.map +1 -1
- package/dist/context-actions/ContextMenu.js +509 -543
- package/dist/context-actions/ContextMenu.js.map +1 -1
- package/dist/context-actions/ContextMenuItem.js +32 -22
- package/dist/context-actions/ContextMenuItem.js.map +1 -1
- package/dist/context-actions/ContextMenuRoot.js +112 -152
- package/dist/context-actions/ContextMenuRoot.js.map +1 -1
- package/dist/context-actions/GlobalContextAction.js +49 -84
- package/dist/context-actions/GlobalContextAction.js.map +1 -1
- package/dist/context-actions/GlobalContextActions.js +25 -57
- package/dist/context-actions/GlobalContextActions.js.map +1 -1
- package/dist/context-actions/index.js +4 -4
- package/dist/context-actions/index.js.map +1 -1
- package/dist/index.js +39 -39
- package/dist/index.js.map +1 -1
- package/dist/menu-actions/DropdownMenu.js +126 -159
- package/dist/menu-actions/DropdownMenu.js.map +1 -1
- package/dist/menu-actions/Menu.js +215 -245
- package/dist/menu-actions/Menu.js.map +1 -1
- package/dist/menu-actions/index.js +1 -1
- package/dist/menu-actions/index.js.map +1 -1
- package/dist/navigation/Menu.js +14 -18
- package/dist/navigation/Menu.js.map +1 -1
- package/dist/navigation/MenuItem.js +15 -14
- package/dist/navigation/MenuItem.js.map +1 -1
- package/dist/navigation/Page.js +7 -5
- package/dist/navigation/Page.js.map +1 -1
- package/dist/navigation/Stack.js +14 -39
- package/dist/navigation/Stack.js.map +1 -1
- package/dist/navigation/index.js +4 -4
- package/dist/navigation/index.js.map +1 -1
- package/dist/popper/Popper.js +209 -235
- package/dist/popper/Popper.js.map +1 -1
- package/dist/popper/Tooltip.js +227 -257
- package/dist/popper/Tooltip.js.map +1 -1
- package/dist/popper/index.js +2 -2
- package/dist/popper/index.js.map +1 -1
- package/dist/shortcuts/GlobalShortcuts.js +2 -2
- package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
- package/dist/shortcuts/Shortcut.js +263 -291
- package/dist/shortcuts/Shortcut.js.map +1 -1
- package/dist/shortcuts/ShortcutRegistry.js +48 -71
- package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
- package/dist/shortcuts/index.js +4 -4
- package/dist/shortcuts/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -54
package/dist/popper/Popper.js
CHANGED
|
@@ -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
|
/**
|
|
@@ -48,259 +26,252 @@ import classNames from 'classnames';
|
|
|
48
26
|
import { CSSTransition } from 'react-transition-group';
|
|
49
27
|
import PopperJs from 'popper.js';
|
|
50
28
|
import PropTypes from 'prop-types';
|
|
51
|
-
import ThemeExport from
|
|
29
|
+
import ThemeExport from "../ThemeExport.js";
|
|
52
30
|
import "./Popper.css";
|
|
53
31
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
var _super = _createSuper(Popper);
|
|
58
|
-
|
|
59
|
-
function Popper(props) {
|
|
60
|
-
var _this;
|
|
61
|
-
|
|
62
|
-
_classCallCheck(this, Popper);
|
|
32
|
+
class Popper extends Component {
|
|
33
|
+
constructor(props) {
|
|
34
|
+
super(props);
|
|
63
35
|
|
|
64
|
-
|
|
36
|
+
_defineProperty(this, "element", void 0);
|
|
65
37
|
|
|
66
|
-
_defineProperty(
|
|
38
|
+
_defineProperty(this, "container", void 0);
|
|
67
39
|
|
|
68
|
-
_defineProperty(
|
|
40
|
+
_defineProperty(this, "isExiting", void 0);
|
|
69
41
|
|
|
70
|
-
_defineProperty(
|
|
42
|
+
_defineProperty(this, "rAF", void 0);
|
|
71
43
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
_this.container = /*#__PURE__*/React.createRef();
|
|
80
|
-
_this.isExiting = false; // cancelAnimationFrame does nothing if the handle isn't recognized
|
|
44
|
+
this.handleEnter = this.handleEnter.bind(this);
|
|
45
|
+
this.handleExit = this.handleExit.bind(this);
|
|
46
|
+
this.handleBlur = this.handleBlur.bind(this);
|
|
47
|
+
this.element = document.createElement('div');
|
|
48
|
+
this.element.className = 'popper-container';
|
|
49
|
+
this.container = /*#__PURE__*/React.createRef();
|
|
50
|
+
this.isExiting = false; // cancelAnimationFrame does nothing if the handle isn't recognized
|
|
81
51
|
// requestAnimationFrame provides a non-zero number, so 0 as a default should be safe
|
|
82
52
|
|
|
83
|
-
|
|
84
|
-
var
|
|
85
|
-
|
|
53
|
+
this.rAF = 0;
|
|
54
|
+
var {
|
|
55
|
+
isShown
|
|
56
|
+
} = this.props;
|
|
57
|
+
this.state = {
|
|
86
58
|
show: isShown,
|
|
87
59
|
popper: null
|
|
88
60
|
};
|
|
89
|
-
return _this;
|
|
90
61
|
}
|
|
91
62
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
} else {
|
|
106
|
-
this.hide();
|
|
107
|
-
}
|
|
63
|
+
componentDidUpdate(prevProps) {
|
|
64
|
+
var {
|
|
65
|
+
isShown
|
|
66
|
+
} = this.props;
|
|
67
|
+
|
|
68
|
+
if (prevProps.isShown !== isShown) {
|
|
69
|
+
if (isShown) {
|
|
70
|
+
cancelAnimationFrame(this.rAF);
|
|
71
|
+
this.rAF = window.requestAnimationFrame(() => {
|
|
72
|
+
this.show();
|
|
73
|
+
});
|
|
74
|
+
} else {
|
|
75
|
+
this.hide();
|
|
108
76
|
}
|
|
109
77
|
}
|
|
110
|
-
}
|
|
111
|
-
key: "componentWillUnmount",
|
|
112
|
-
value: function componentWillUnmount() {
|
|
113
|
-
this.destroyPopper(false);
|
|
114
|
-
this.isExiting = false;
|
|
115
|
-
}
|
|
116
|
-
}, {
|
|
117
|
-
key: "getVisibleElement",
|
|
118
|
-
value:
|
|
119
|
-
/** Goes through an element and it's parents until the first visible element is found */
|
|
120
|
-
function getVisibleElement(element) {
|
|
121
|
-
if (element == null || element.clientHeight > 0 || element.clientWidth > 0) {
|
|
122
|
-
return element;
|
|
123
|
-
}
|
|
78
|
+
}
|
|
124
79
|
|
|
125
|
-
|
|
80
|
+
componentWillUnmount() {
|
|
81
|
+
this.destroyPopper(false);
|
|
82
|
+
this.isExiting = false;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** Goes through an element and it's parents until the first visible element is found */
|
|
86
|
+
getVisibleElement(element) {
|
|
87
|
+
if (element == null || element.clientHeight > 0 || element.clientWidth > 0) {
|
|
88
|
+
return element;
|
|
126
89
|
}
|
|
127
|
-
}, {
|
|
128
|
-
key: "initPopper",
|
|
129
|
-
value: function initPopper() {
|
|
130
|
-
var _this3 = this;
|
|
131
90
|
|
|
132
|
-
|
|
133
|
-
|
|
91
|
+
return this.getVisibleElement(element.parentElement);
|
|
92
|
+
}
|
|
134
93
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
94
|
+
initPopper() {
|
|
95
|
+
var {
|
|
96
|
+
popper
|
|
97
|
+
} = this.state;
|
|
98
|
+
var {
|
|
99
|
+
closeOnBlur
|
|
100
|
+
} = this.props;
|
|
138
101
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
102
|
+
if (popper) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
142
105
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}, options);
|
|
147
|
-
document.body.appendChild(this.element);
|
|
148
|
-
var parent = this.getVisibleElement(this.container.current);
|
|
106
|
+
if (this.container.current === null) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
149
109
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
110
|
+
var {
|
|
111
|
+
options
|
|
112
|
+
} = this.props;
|
|
113
|
+
options = _objectSpread({
|
|
114
|
+
placement: 'auto'
|
|
115
|
+
}, options);
|
|
116
|
+
document.body.appendChild(this.element);
|
|
117
|
+
var parent = this.getVisibleElement(this.container.current);
|
|
118
|
+
|
|
119
|
+
if (parent == null) {
|
|
120
|
+
parent = this.container.current;
|
|
121
|
+
}
|
|
153
122
|
|
|
154
|
-
|
|
155
|
-
|
|
123
|
+
popper = new PopperJs(parent, this.element, options);
|
|
124
|
+
popper.scheduleUpdate(); // delayed due to scheduleUpdate
|
|
156
125
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
126
|
+
cancelAnimationFrame(this.rAF);
|
|
127
|
+
this.rAF = window.requestAnimationFrame(() => {
|
|
128
|
+
// for blur on close to work, focus needs to be on or within the popper
|
|
129
|
+
if (closeOnBlur && !this.element.contains(document.activeElement)) {
|
|
130
|
+
// only set focus, if a focus isn't already set within
|
|
131
|
+
var elem = this.element.firstElementChild;
|
|
163
132
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
133
|
+
if (elem instanceof HTMLElement) {
|
|
134
|
+
elem.focus(); // first child of the portal element
|
|
167
135
|
}
|
|
168
|
-
});
|
|
169
|
-
this.setState({
|
|
170
|
-
popper: popper
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
}, {
|
|
174
|
-
key: "destroyPopper",
|
|
175
|
-
value: function destroyPopper() {
|
|
176
|
-
var updateState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
177
|
-
this.isExiting = false;
|
|
178
|
-
cancelAnimationFrame(this.rAF);
|
|
179
|
-
var popper = this.state.popper;
|
|
180
|
-
|
|
181
|
-
if (!popper) {
|
|
182
|
-
return;
|
|
183
136
|
}
|
|
137
|
+
});
|
|
138
|
+
this.setState({
|
|
139
|
+
popper
|
|
140
|
+
});
|
|
141
|
+
}
|
|
184
142
|
|
|
185
|
-
|
|
186
|
-
|
|
143
|
+
destroyPopper() {
|
|
144
|
+
var updateState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
145
|
+
this.isExiting = false;
|
|
146
|
+
cancelAnimationFrame(this.rAF);
|
|
147
|
+
var {
|
|
148
|
+
popper
|
|
149
|
+
} = this.state;
|
|
187
150
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
popper: null
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}, {
|
|
195
|
-
key: "show",
|
|
196
|
-
value: function show() {
|
|
197
|
-
this.initPopper();
|
|
198
|
-
this.setState({
|
|
199
|
-
show: true
|
|
200
|
-
});
|
|
151
|
+
if (!popper) {
|
|
152
|
+
return;
|
|
201
153
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
154
|
+
|
|
155
|
+
popper.destroy();
|
|
156
|
+
document.body.removeChild(this.element);
|
|
157
|
+
|
|
158
|
+
if (updateState) {
|
|
205
159
|
this.setState({
|
|
206
|
-
|
|
160
|
+
popper: null
|
|
207
161
|
});
|
|
208
162
|
}
|
|
209
|
-
}
|
|
210
|
-
key: "scheduleUpdate",
|
|
211
|
-
value: function scheduleUpdate() {
|
|
212
|
-
var popper = this.state.popper;
|
|
213
|
-
if (popper) popper.scheduleUpdate();
|
|
214
|
-
}
|
|
215
|
-
}, {
|
|
216
|
-
key: "handleBlur",
|
|
217
|
-
value: function handleBlur(e) {
|
|
218
|
-
if (!(e.relatedTarget instanceof HTMLElement)) {
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
163
|
+
}
|
|
221
164
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
value: function handleEnter() {
|
|
229
|
-
var onEntered = this.props.onEntered;
|
|
230
|
-
onEntered(); // trigger any parent component waiting for enter handler
|
|
231
|
-
}
|
|
232
|
-
}, {
|
|
233
|
-
key: "handleExit",
|
|
234
|
-
value: function handleExit() {
|
|
235
|
-
var onExited = this.props.onExited;
|
|
236
|
-
onExited(); // trigger any parent component waiting for exited handler
|
|
165
|
+
show() {
|
|
166
|
+
this.initPopper();
|
|
167
|
+
this.setState({
|
|
168
|
+
show: true
|
|
169
|
+
});
|
|
170
|
+
}
|
|
237
171
|
|
|
238
|
-
|
|
172
|
+
hide() {
|
|
173
|
+
this.setState({
|
|
174
|
+
show: false
|
|
175
|
+
});
|
|
176
|
+
}
|
|
239
177
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
178
|
+
scheduleUpdate() {
|
|
179
|
+
var {
|
|
180
|
+
popper
|
|
181
|
+
} = this.state;
|
|
182
|
+
if (popper) popper.scheduleUpdate();
|
|
183
|
+
}
|
|
243
184
|
|
|
244
|
-
|
|
185
|
+
handleBlur(e) {
|
|
186
|
+
if (!(e.relatedTarget instanceof HTMLElement)) {
|
|
187
|
+
return;
|
|
245
188
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
var _this4 = this;
|
|
250
|
-
|
|
251
|
-
var _this$props = this.props,
|
|
252
|
-
className = _this$props.className,
|
|
253
|
-
children = _this$props.children,
|
|
254
|
-
timeout = _this$props.timeout,
|
|
255
|
-
interactive = _this$props.interactive,
|
|
256
|
-
closeOnBlur = _this$props.closeOnBlur;
|
|
257
|
-
var show = this.state.show;
|
|
258
|
-
return /*#__PURE__*/React.createElement(CSSTransition, {
|
|
259
|
-
"in": show,
|
|
260
|
-
timeout: timeout,
|
|
261
|
-
classNames: "popper-transition",
|
|
262
|
-
onEntered: this.handleEnter,
|
|
263
|
-
onExit: function onExit() {
|
|
264
|
-
_this4.isExiting = true;
|
|
265
|
-
},
|
|
266
|
-
onExited: this.handleExit
|
|
267
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
268
|
-
onClick: function onClick(e) {
|
|
269
|
-
// stop click events from escaping popper
|
|
270
|
-
e.stopPropagation();
|
|
271
|
-
},
|
|
272
|
-
onKeyDown: function onKeyDown(e) {
|
|
273
|
-
if (e.key === 'Escape') _this4.hide();
|
|
274
|
-
},
|
|
275
|
-
className: classNames('popper', {
|
|
276
|
-
interactive: interactive
|
|
277
|
-
}, className),
|
|
278
|
-
onBlur: closeOnBlur ? this.handleBlur : undefined,
|
|
279
|
-
tabIndex: closeOnBlur ? -1 : undefined,
|
|
280
|
-
role: "presentation"
|
|
281
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
282
|
-
className: "popper-content"
|
|
283
|
-
}, children, /*#__PURE__*/React.createElement("div", {
|
|
284
|
-
className: "popper-arrow",
|
|
285
|
-
"x-arrow": ""
|
|
286
|
-
}))));
|
|
189
|
+
|
|
190
|
+
if (!this.element.contains(e.relatedTarget)) {
|
|
191
|
+
this.hide();
|
|
287
192
|
}
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
handleEnter() {
|
|
196
|
+
var {
|
|
197
|
+
onEntered
|
|
198
|
+
} = this.props;
|
|
199
|
+
onEntered(); // trigger any parent component waiting for enter handler
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
handleExit() {
|
|
203
|
+
var {
|
|
204
|
+
onExited
|
|
205
|
+
} = this.props;
|
|
206
|
+
onExited(); // trigger any parent component waiting for exited handler
|
|
207
|
+
|
|
208
|
+
var {
|
|
209
|
+
show
|
|
210
|
+
} = this.state;
|
|
211
|
+
|
|
212
|
+
if (!show) {
|
|
213
|
+
this.destroyPopper();
|
|
299
214
|
}
|
|
300
|
-
}]);
|
|
301
215
|
|
|
302
|
-
|
|
303
|
-
}
|
|
216
|
+
this.isExiting = false;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
renderContent() {
|
|
220
|
+
var {
|
|
221
|
+
className,
|
|
222
|
+
children,
|
|
223
|
+
timeout,
|
|
224
|
+
interactive,
|
|
225
|
+
closeOnBlur
|
|
226
|
+
} = this.props;
|
|
227
|
+
var {
|
|
228
|
+
show
|
|
229
|
+
} = this.state;
|
|
230
|
+
return /*#__PURE__*/React.createElement(CSSTransition, {
|
|
231
|
+
in: show,
|
|
232
|
+
timeout: timeout,
|
|
233
|
+
classNames: "popper-transition",
|
|
234
|
+
onEntered: this.handleEnter,
|
|
235
|
+
onExit: () => {
|
|
236
|
+
this.isExiting = true;
|
|
237
|
+
},
|
|
238
|
+
onExited: this.handleExit
|
|
239
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
240
|
+
onClick: e => {
|
|
241
|
+
// stop click events from escaping popper
|
|
242
|
+
e.stopPropagation();
|
|
243
|
+
},
|
|
244
|
+
onKeyDown: e => {
|
|
245
|
+
if (e.key === 'Escape') this.hide();
|
|
246
|
+
},
|
|
247
|
+
className: classNames('popper', {
|
|
248
|
+
interactive
|
|
249
|
+
}, className),
|
|
250
|
+
onBlur: closeOnBlur ? this.handleBlur : undefined,
|
|
251
|
+
tabIndex: closeOnBlur ? -1 : undefined,
|
|
252
|
+
role: "presentation"
|
|
253
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
254
|
+
className: "popper-content"
|
|
255
|
+
}, children, /*#__PURE__*/React.createElement("div", {
|
|
256
|
+
className: "popper-arrow",
|
|
257
|
+
"x-arrow": ""
|
|
258
|
+
}))));
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
render() {
|
|
262
|
+
var {
|
|
263
|
+
popper
|
|
264
|
+
} = this.state;
|
|
265
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
266
|
+
className: "popper-parent-container",
|
|
267
|
+
ref: this.container,
|
|
268
|
+
style: {
|
|
269
|
+
display: 'none'
|
|
270
|
+
}
|
|
271
|
+
}, popper && /*#__PURE__*/ReactDOM.createPortal(this.renderContent(), this.element));
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
}
|
|
304
275
|
|
|
305
276
|
_defineProperty(Popper, "propTypes", {
|
|
306
277
|
children: PropTypes.node.isRequired,
|
|
@@ -318,10 +289,13 @@ _defineProperty(Popper, "defaultProps", {
|
|
|
318
289
|
options: {},
|
|
319
290
|
className: '',
|
|
320
291
|
timeout: ThemeExport.transitionMs,
|
|
321
|
-
|
|
292
|
+
|
|
293
|
+
onEntered() {// no-op
|
|
322
294
|
},
|
|
323
|
-
|
|
295
|
+
|
|
296
|
+
onExited() {// no-op
|
|
324
297
|
},
|
|
298
|
+
|
|
325
299
|
isShown: false,
|
|
326
300
|
interactive: false,
|
|
327
301
|
closeOnBlur: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/popper/Popper.tsx"],"names":["React","Component","ReactDOM","classNames","CSSTransition","PopperJs","PropTypes","ThemeExport","Popper","props","handleEnter","bind","handleExit","handleBlur","element","document","createElement","className","container","createRef","isExiting","rAF","isShown","state","show","popper","prevProps","cancelAnimationFrame","window","requestAnimationFrame","hide","destroyPopper","clientHeight","clientWidth","getVisibleElement","parentElement","closeOnBlur","current","options","placement","body","appendChild","parent","scheduleUpdate","contains","activeElement","elem","firstElementChild","HTMLElement","focus","setState","updateState","destroy","removeChild","initPopper","e","relatedTarget","onEntered","onExited","children","timeout","interactive","stopPropagation","key","undefined","display","createPortal","renderContent","node","isRequired","shape","string","number","func","bool","transitionMs"],"mappings":"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","sourcesContent":["/**\n * A component for creating popover dialogs. Only requires child element.\n *\n * <Popper\n * options={popperOptions}\n * className=\"whatever\"\n * onEntered={this.handleEnter}\n * onExited={this.handleExit}\n * closeOnBlur // if you want dialog to self close, on click outside\n * interactive // if popper contents will be interactable\n * isShown={variable} // controls if its shown or not,\n * ref={this.popper} // or via ref and this.popper.show() or this.popper.hide()\n * >\n * <ChildContent />\n * </Popper>\n */\n\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport PopperJs, { PopperOptions } from 'popper.js';\nimport PropTypes from 'prop-types';\nimport ThemeExport from '../ThemeExport';\nimport './Popper.scss';\n\ninterface PopperProps {\n options: PopperOptions;\n className: string;\n timeout: number;\n onEntered: () => void;\n onExited: () => void;\n isShown: boolean;\n closeOnBlur: boolean;\n interactive: boolean;\n}\n\ninterface PopperState {\n show: boolean;\n popper: PopperJs | null;\n}\n\nclass Popper extends Component<PopperProps, PopperState> {\n static propTypes = {\n children: PropTypes.node.isRequired,\n options: PropTypes.shape({}),\n className: PropTypes.string,\n timeout: PropTypes.number,\n onEntered: PropTypes.func,\n onExited: PropTypes.func,\n isShown: PropTypes.bool,\n closeOnBlur: PropTypes.bool,\n interactive: PropTypes.bool,\n };\n\n static defaultProps = {\n options: {},\n className: '',\n timeout: ThemeExport.transitionMs,\n onEntered(): void {\n // no-op\n },\n onExited(): void {\n // no-op\n },\n isShown: false,\n interactive: false,\n closeOnBlur: false,\n };\n\n constructor(props: PopperProps) {\n super(props);\n\n this.handleEnter = this.handleEnter.bind(this);\n this.handleExit = this.handleExit.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.element = document.createElement('div');\n this.element.className = 'popper-container';\n this.container = React.createRef<HTMLDivElement>();\n\n this.isExiting = false;\n\n // cancelAnimationFrame does nothing if the handle isn't recognized\n // requestAnimationFrame provides a non-zero number, so 0 as a default should be safe\n this.rAF = 0;\n\n const { isShown } = this.props;\n\n this.state = {\n show: isShown,\n popper: null,\n };\n }\n\n componentDidUpdate(prevProps: PopperProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown) {\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n this.show();\n });\n } else {\n this.hide();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.destroyPopper(false);\n this.isExiting = false;\n }\n\n element: HTMLDivElement;\n\n container: React.RefObject<HTMLDivElement>;\n\n isExiting: boolean;\n\n // This is the request animation frame handle number\n rAF: number;\n\n /** Goes through an element and it's parents until the first visible element is found */\n getVisibleElement(element: HTMLElement | null): HTMLElement | null {\n if (\n element == null ||\n element.clientHeight > 0 ||\n element.clientWidth > 0\n ) {\n return element;\n }\n\n return this.getVisibleElement(element.parentElement);\n }\n\n initPopper(): void {\n let { popper } = this.state;\n const { closeOnBlur } = this.props;\n\n if (popper) {\n return;\n }\n\n if (this.container.current === null) {\n return;\n }\n\n let { options } = this.props;\n options = {\n placement: 'auto',\n ...options,\n };\n document.body.appendChild(this.element);\n\n let parent = this.getVisibleElement(this.container.current);\n if (parent == null) {\n parent = this.container.current;\n }\n\n popper = new PopperJs(parent, this.element, options);\n popper.scheduleUpdate();\n\n // delayed due to scheduleUpdate\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n // for blur on close to work, focus needs to be on or within the popper\n if (closeOnBlur && !this.element.contains(document.activeElement)) {\n // only set focus, if a focus isn't already set within\n const elem = this.element.firstElementChild;\n if (elem instanceof HTMLElement) {\n elem.focus(); // first child of the portal element\n }\n }\n });\n\n this.setState({ popper });\n }\n\n destroyPopper(updateState = true): void {\n this.isExiting = false;\n cancelAnimationFrame(this.rAF);\n\n const { popper } = this.state;\n if (!popper) {\n return;\n }\n\n popper.destroy();\n\n document.body.removeChild(this.element);\n\n if (updateState) {\n this.setState({ popper: null });\n }\n }\n\n show(): void {\n this.initPopper();\n this.setState({ show: true });\n }\n\n hide(): void {\n this.setState({ show: false });\n }\n\n scheduleUpdate(): void {\n const { popper } = this.state;\n if (popper) popper.scheduleUpdate();\n }\n\n handleBlur(e: React.FocusEvent): void {\n if (!(e.relatedTarget instanceof HTMLElement)) {\n return;\n }\n if (!this.element.contains(e.relatedTarget)) {\n this.hide();\n }\n }\n\n handleEnter(): void {\n const { onEntered } = this.props;\n onEntered(); // trigger any parent component waiting for enter handler\n }\n\n handleExit(): void {\n const { onExited } = this.props;\n onExited(); // trigger any parent component waiting for exited handler\n\n const { show } = this.state;\n if (!show) {\n this.destroyPopper();\n }\n\n this.isExiting = false;\n }\n\n renderContent(): JSX.Element {\n const {\n className,\n children,\n timeout,\n interactive,\n closeOnBlur,\n } = this.props;\n const { show } = this.state;\n\n return (\n <CSSTransition\n in={show}\n timeout={timeout}\n classNames=\"popper-transition\"\n onEntered={this.handleEnter}\n onExit={() => {\n this.isExiting = true;\n }}\n onExited={this.handleExit}\n >\n <div\n onClick={e => {\n // stop click events from escaping popper\n e.stopPropagation();\n }}\n onKeyDown={e => {\n if (e.key === 'Escape') this.hide();\n }}\n className={classNames('popper', { interactive }, className)}\n onBlur={closeOnBlur ? this.handleBlur : undefined}\n tabIndex={closeOnBlur ? -1 : undefined}\n role=\"presentation\"\n >\n <div className=\"popper-content\">\n {children}\n <div className=\"popper-arrow\" x-arrow=\"\" />\n </div>\n </div>\n </CSSTransition>\n );\n }\n\n render(): JSX.Element {\n const { popper } = this.state;\n return (\n <div\n className=\"popper-parent-container\"\n ref={this.container}\n style={{ display: 'none' }}\n >\n {popper && ReactDOM.createPortal(this.renderContent(), this.element)}\n </div>\n );\n }\n}\n\nexport default Popper;\nexport type { PopperOptions };\n"],"file":"Popper.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/popper/Popper.tsx"],"names":["React","Component","ReactDOM","classNames","CSSTransition","PopperJs","PropTypes","ThemeExport","Popper","constructor","props","handleEnter","bind","handleExit","handleBlur","element","document","createElement","className","container","createRef","isExiting","rAF","isShown","state","show","popper","componentDidUpdate","prevProps","cancelAnimationFrame","window","requestAnimationFrame","hide","componentWillUnmount","destroyPopper","getVisibleElement","clientHeight","clientWidth","parentElement","initPopper","closeOnBlur","current","options","placement","body","appendChild","parent","scheduleUpdate","contains","activeElement","elem","firstElementChild","HTMLElement","focus","setState","updateState","destroy","removeChild","e","relatedTarget","onEntered","onExited","renderContent","children","timeout","interactive","stopPropagation","key","undefined","render","display","createPortal","node","isRequired","shape","string","number","func","bool","transitionMs"],"mappings":"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","sourcesContent":["/**\n * A component for creating popover dialogs. Only requires child element.\n *\n * <Popper\n * options={popperOptions}\n * className=\"whatever\"\n * onEntered={this.handleEnter}\n * onExited={this.handleExit}\n * closeOnBlur // if you want dialog to self close, on click outside\n * interactive // if popper contents will be interactable\n * isShown={variable} // controls if its shown or not,\n * ref={this.popper} // or via ref and this.popper.show() or this.popper.hide()\n * >\n * <ChildContent />\n * </Popper>\n */\n\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport PopperJs, { PopperOptions } from 'popper.js';\nimport PropTypes from 'prop-types';\nimport ThemeExport from '../ThemeExport';\nimport './Popper.scss';\n\ninterface PopperProps {\n options: PopperOptions;\n className: string;\n timeout: number;\n onEntered: () => void;\n onExited: () => void;\n isShown: boolean;\n closeOnBlur: boolean;\n interactive: boolean;\n}\n\ninterface PopperState {\n show: boolean;\n popper: PopperJs | null;\n}\n\nclass Popper extends Component<PopperProps, PopperState> {\n static propTypes = {\n children: PropTypes.node.isRequired,\n options: PropTypes.shape({}),\n className: PropTypes.string,\n timeout: PropTypes.number,\n onEntered: PropTypes.func,\n onExited: PropTypes.func,\n isShown: PropTypes.bool,\n closeOnBlur: PropTypes.bool,\n interactive: PropTypes.bool,\n };\n\n static defaultProps = {\n options: {},\n className: '',\n timeout: ThemeExport.transitionMs,\n onEntered(): void {\n // no-op\n },\n onExited(): void {\n // no-op\n },\n isShown: false,\n interactive: false,\n closeOnBlur: false,\n };\n\n constructor(props: PopperProps) {\n super(props);\n\n this.handleEnter = this.handleEnter.bind(this);\n this.handleExit = this.handleExit.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.element = document.createElement('div');\n this.element.className = 'popper-container';\n this.container = React.createRef<HTMLDivElement>();\n\n this.isExiting = false;\n\n // cancelAnimationFrame does nothing if the handle isn't recognized\n // requestAnimationFrame provides a non-zero number, so 0 as a default should be safe\n this.rAF = 0;\n\n const { isShown } = this.props;\n\n this.state = {\n show: isShown,\n popper: null,\n };\n }\n\n componentDidUpdate(prevProps: PopperProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown) {\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n this.show();\n });\n } else {\n this.hide();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.destroyPopper(false);\n this.isExiting = false;\n }\n\n element: HTMLDivElement;\n\n container: React.RefObject<HTMLDivElement>;\n\n isExiting: boolean;\n\n // This is the request animation frame handle number\n rAF: number;\n\n /** Goes through an element and it's parents until the first visible element is found */\n getVisibleElement(element: HTMLElement | null): HTMLElement | null {\n if (\n element == null ||\n element.clientHeight > 0 ||\n element.clientWidth > 0\n ) {\n return element;\n }\n\n return this.getVisibleElement(element.parentElement);\n }\n\n initPopper(): void {\n let { popper } = this.state;\n const { closeOnBlur } = this.props;\n\n if (popper) {\n return;\n }\n\n if (this.container.current === null) {\n return;\n }\n\n let { options } = this.props;\n options = {\n placement: 'auto',\n ...options,\n };\n document.body.appendChild(this.element);\n\n let parent = this.getVisibleElement(this.container.current);\n if (parent == null) {\n parent = this.container.current;\n }\n\n popper = new PopperJs(parent, this.element, options);\n popper.scheduleUpdate();\n\n // delayed due to scheduleUpdate\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n // for blur on close to work, focus needs to be on or within the popper\n if (closeOnBlur && !this.element.contains(document.activeElement)) {\n // only set focus, if a focus isn't already set within\n const elem = this.element.firstElementChild;\n if (elem instanceof HTMLElement) {\n elem.focus(); // first child of the portal element\n }\n }\n });\n\n this.setState({ popper });\n }\n\n destroyPopper(updateState = true): void {\n this.isExiting = false;\n cancelAnimationFrame(this.rAF);\n\n const { popper } = this.state;\n if (!popper) {\n return;\n }\n\n popper.destroy();\n\n document.body.removeChild(this.element);\n\n if (updateState) {\n this.setState({ popper: null });\n }\n }\n\n show(): void {\n this.initPopper();\n this.setState({ show: true });\n }\n\n hide(): void {\n this.setState({ show: false });\n }\n\n scheduleUpdate(): void {\n const { popper } = this.state;\n if (popper) popper.scheduleUpdate();\n }\n\n handleBlur(e: React.FocusEvent): void {\n if (!(e.relatedTarget instanceof HTMLElement)) {\n return;\n }\n if (!this.element.contains(e.relatedTarget)) {\n this.hide();\n }\n }\n\n handleEnter(): void {\n const { onEntered } = this.props;\n onEntered(); // trigger any parent component waiting for enter handler\n }\n\n handleExit(): void {\n const { onExited } = this.props;\n onExited(); // trigger any parent component waiting for exited handler\n\n const { show } = this.state;\n if (!show) {\n this.destroyPopper();\n }\n\n this.isExiting = false;\n }\n\n renderContent(): JSX.Element {\n const {\n className,\n children,\n timeout,\n interactive,\n closeOnBlur,\n } = this.props;\n const { show } = this.state;\n\n return (\n <CSSTransition\n in={show}\n timeout={timeout}\n classNames=\"popper-transition\"\n onEntered={this.handleEnter}\n onExit={() => {\n this.isExiting = true;\n }}\n onExited={this.handleExit}\n >\n <div\n onClick={e => {\n // stop click events from escaping popper\n e.stopPropagation();\n }}\n onKeyDown={e => {\n if (e.key === 'Escape') this.hide();\n }}\n className={classNames('popper', { interactive }, className)}\n onBlur={closeOnBlur ? this.handleBlur : undefined}\n tabIndex={closeOnBlur ? -1 : undefined}\n role=\"presentation\"\n >\n <div className=\"popper-content\">\n {children}\n <div className=\"popper-arrow\" x-arrow=\"\" />\n </div>\n </div>\n </CSSTransition>\n );\n }\n\n render(): JSX.Element {\n const { popper } = this.state;\n return (\n <div\n className=\"popper-parent-container\"\n ref={this.container}\n style={{ display: 'none' }}\n >\n {popper && ReactDOM.createPortal(this.renderContent(), this.element)}\n </div>\n );\n }\n}\n\nexport default Popper;\nexport type { PopperOptions };\n"],"file":"Popper.js"}
|