1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
6 |
|
7 | var slicedToArray = require('./slicedToArray-0711941d.js');
|
8 | require('./unsupportedIterableToArray-68db1d3b.js');
|
9 | var React = require('react');
|
10 | var React__default = _interopDefault(React);
|
11 | require('./_commonjsHelpers-72d386ba.js');
|
12 | var index = require('./index-b0606964.js');
|
13 | require('./defineProperty-0921a47c.js');
|
14 | require('./toConsumableArray-d8a4a2c3.js');
|
15 | var _styled = require('styled-components');
|
16 | var _styled__default = _interopDefault(_styled);
|
17 | require('./getPrototypeOf-2a661a20.js');
|
18 | require('./color.js');
|
19 | require('./components.js');
|
20 | require('./contains-component.js');
|
21 | require('./css.js');
|
22 | require('./dayjs.min-e07657bf.js');
|
23 | require('./date.js');
|
24 | require('./miscellaneous.js');
|
25 | require('./environment.js');
|
26 | require('./font.js');
|
27 | require('./math-f4029164.js');
|
28 | require('./characters.js');
|
29 | require('./format.js');
|
30 | require('./keycodes.js');
|
31 | require('./url.js');
|
32 | require('./web3.js');
|
33 | var constants = require('./constants.js');
|
34 | require('./breakpoints.js');
|
35 | var springs = require('./springs.js');
|
36 | require('./text-styles.js');
|
37 | require('./theme-dark.js');
|
38 | require('./theme-light.js');
|
39 | var Theme = require('./Theme.js');
|
40 | require('./extends-40571110.js');
|
41 | require('./objectWithoutProperties-35db8ab0.js');
|
42 | require('./index-ecc57c9f.js');
|
43 | require('./FocusVisible.js');
|
44 | var ButtonBase = require('./ButtonBase.js');
|
45 | require('./IconPropTypes-56de5759.js');
|
46 | require('./IconAddUser.js');
|
47 | require('./IconAlert.js');
|
48 | require('./IconAlignCenter.js');
|
49 | require('./IconAlignJustify.js');
|
50 | require('./IconAlignLeft.js');
|
51 | require('./IconAlignRight.js');
|
52 | require('./IconAragon.js');
|
53 | require('./IconArrowDown.js');
|
54 | require('./IconArrowLeft.js');
|
55 | require('./IconArrowRight.js');
|
56 | require('./IconArrowUp.js');
|
57 | require('./IconAtSign.js');
|
58 | require('./IconBlock.js');
|
59 | require('./IconBookmark.js');
|
60 | require('./IconCalendar.js');
|
61 | require('./IconCanvas.js');
|
62 | require('./IconCaution.js');
|
63 | require('./IconCenter.js');
|
64 | require('./IconChart.js');
|
65 | require('./IconChat.js');
|
66 | require('./IconCheck.js');
|
67 | require('./IconChip.js');
|
68 | require('./IconCircleCheck.js');
|
69 | require('./IconCircleMinus.js');
|
70 | require('./IconCirclePlus.js');
|
71 | require('./IconClock.js');
|
72 | require('./IconCloudDownload.js');
|
73 | require('./IconCloudUpload.js');
|
74 | require('./IconCoin.js');
|
75 | require('./IconConfiguration.js');
|
76 | require('./IconConnect.js');
|
77 | require('./IconConnection.js');
|
78 | require('./IconConsole.js');
|
79 | require('./IconCopy.js');
|
80 | require('./IconCross.js');
|
81 | require('./IconDashedSquare.js');
|
82 | var IconDown = require('./IconDown.js');
|
83 | require('./IconDownload.js');
|
84 | require('./IconEdit.js');
|
85 | var IconEllipsis = require('./IconEllipsis.js');
|
86 | require('./IconEnter.js');
|
87 | require('./IconEthereum.js');
|
88 | require('./IconExternal.js');
|
89 | require('./IconFile.js');
|
90 | require('./IconFilter.js');
|
91 | require('./IconFlag.js');
|
92 | require('./IconFolder.js');
|
93 | require('./IconGraph2.js');
|
94 | require('./IconGraph.js');
|
95 | require('./IconGrid.js');
|
96 | require('./IconGroup.js');
|
97 | require('./IconHash.js');
|
98 | require('./IconHeart.js');
|
99 | require('./IconHide.js');
|
100 | require('./IconHome.js');
|
101 | require('./IconImage.js');
|
102 | require('./IconInfo.js');
|
103 | require('./IconLabel.js');
|
104 | require('./IconLayers.js');
|
105 | require('./IconLeft.js');
|
106 | require('./IconLink.js');
|
107 | require('./IconLocation.js');
|
108 | require('./IconLock.js');
|
109 | require('./IconMail.js');
|
110 | require('./IconMaximize.js');
|
111 | require('./IconMenu.js');
|
112 | require('./IconMinimize.js');
|
113 | require('./IconMinus.js');
|
114 | require('./IconMove.js');
|
115 | require('./IconNoPicture.js');
|
116 | require('./IconPicture.js');
|
117 | require('./IconPlus.js');
|
118 | require('./IconPower.js');
|
119 | require('./IconPrint.js');
|
120 | require('./IconProhibited.js');
|
121 | require('./IconQuestion.js');
|
122 | require('./IconRefresh.js');
|
123 | require('./IconRemoveUser.js');
|
124 | require('./IconRight.js');
|
125 | require('./IconRotateLeft.js');
|
126 | require('./IconRotateRight.js');
|
127 | require('./IconSearch.js');
|
128 | require('./IconSettings.js');
|
129 | require('./IconShare.js');
|
130 | require('./IconSquareMinus.js');
|
131 | require('./IconSquarePlus.js');
|
132 | require('./IconSquare.js');
|
133 | require('./IconStarFilled.js');
|
134 | require('./IconStar.js');
|
135 | require('./IconSwap.js');
|
136 | require('./IconTarget.js');
|
137 | require('./IconToken.js');
|
138 | require('./IconTrash.js');
|
139 | require('./IconUnlock.js');
|
140 | require('./IconUp.js');
|
141 | require('./IconUpload.js');
|
142 | require('./IconUser.js');
|
143 | require('./IconView.js');
|
144 | require('./IconVote.js');
|
145 | require('./IconWallet.js');
|
146 | require('./IconWarning.js');
|
147 | require('./IconWorld.js');
|
148 | require('./IconWrite.js');
|
149 | require('./IconZoomIn.js');
|
150 | require('./IconZoomOut.js');
|
151 | require('./objectWithoutPropertiesLoose-1af20ad0.js');
|
152 | var ReactDOM = _interopDefault(require('react-dom'));
|
153 | var web = require('./web-d0294535.js');
|
154 | require('./_react_commonjs-external-bf8fc71c.js');
|
155 |
|
156 | var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
157 |
|
158 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
159 |
|
160 | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
161 |
|
162 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
163 |
|
164 |
|
165 |
|
166 |
|
167 | var ClickOutComponent = function (_React$Component) {
|
168 | _inherits(ClickOutComponent, _React$Component);
|
169 |
|
170 | function ClickOutComponent() {
|
171 | _classCallCheck(this, ClickOutComponent);
|
172 |
|
173 | return _possibleConstructorReturn(this, (ClickOutComponent.__proto__ || Object.getPrototypeOf(ClickOutComponent)).call(this));
|
174 | }
|
175 |
|
176 | _createClass(ClickOutComponent, [{
|
177 | key: 'componentDidMount',
|
178 | value: function componentDidMount() {
|
179 | var self = this;
|
180 | var elTouchIsClick = true;
|
181 | var documentTouchIsClick = true;
|
182 | var el = ReactDOM.findDOMNode(this);
|
183 |
|
184 | self.__documentTouchStarted = function (e) {
|
185 | el.removeEventListener('click', self.__elementClicked);
|
186 | document.removeEventListener('click', self.__documentClicked);
|
187 | };
|
188 |
|
189 | self.__documentTouchMoved = function (e) {
|
190 | documentTouchIsClick = false;
|
191 | };
|
192 |
|
193 | self.__documentTouchEnded = function (e) {
|
194 | if (documentTouchIsClick) self.__documentClicked(e);
|
195 | documentTouchIsClick = true;
|
196 | };
|
197 |
|
198 | self.__documentClicked = function (e) {
|
199 | if ((e.__clickedElements || []).indexOf(el) !== -1) return;
|
200 |
|
201 | var clickOutHandler = self.onClickOut || self.props.onClickOut;
|
202 | if (!clickOutHandler) {
|
203 | return console.warn('onClickOut is not defined.');
|
204 | }
|
205 |
|
206 | clickOutHandler.call(self, e);
|
207 | };
|
208 |
|
209 | self.__elementTouchMoved = function (e) {
|
210 | elTouchIsClick = false;
|
211 | };
|
212 |
|
213 | self.__elementTouchEnded = function (e) {
|
214 | if (elTouchIsClick) self.__elementClicked(e);
|
215 | elTouchIsClick = true;
|
216 | };
|
217 |
|
218 | self.__elementClicked = function (e) {
|
219 | e.__clickedElements = e.__clickedElements || [];
|
220 | e.__clickedElements.push(el);
|
221 | };
|
222 |
|
223 | setTimeout(function () {
|
224 | if (self.__unmounted) return;
|
225 | self.toggleListeners('addEventListener');
|
226 | }, 0);
|
227 | }
|
228 | }, {
|
229 | key: 'toggleListeners',
|
230 | value: function toggleListeners(listenerMethod) {
|
231 | var el = ReactDOM.findDOMNode(this);
|
232 |
|
233 | el[listenerMethod]('touchmove', this.__elementTouchMoved);
|
234 | el[listenerMethod]('touchend', this.__elementTouchEnded);
|
235 | el[listenerMethod]('click', this.__elementClicked);
|
236 |
|
237 | document[listenerMethod]('touchstart', this.__documentTouchStarted);
|
238 | document[listenerMethod]('touchmove', this.__documentTouchMoved);
|
239 | document[listenerMethod]('touchend', this.__documentTouchEnded);
|
240 | document[listenerMethod]('click', this.__documentClicked);
|
241 | }
|
242 | }, {
|
243 | key: 'componentWillUnmount',
|
244 | value: function componentWillUnmount() {
|
245 | this.toggleListeners('removeEventListener');
|
246 | this.__unmounted = true;
|
247 | }
|
248 | }, {
|
249 | key: 'render',
|
250 | value: function render() {
|
251 | return Array.isArray(this.props.children) ? React__default.createElement(
|
252 | 'div',
|
253 | null,
|
254 | this.props.children
|
255 | ) : React__default.Children.only(this.props.children);
|
256 | }
|
257 | }]);
|
258 |
|
259 | return ClickOutComponent;
|
260 | }(React__default.Component);
|
261 |
|
262 | var reactOnclickout = ClickOutComponent;
|
263 |
|
264 | var BASE_WIDTH = 46;
|
265 | var BASE_HEIGHT = 32;
|
266 |
|
267 | var _StyledIconEllipsis = _styled__default(IconEllipsis.default).withConfig({
|
268 | displayName: "ContextMenu___StyledIconEllipsis",
|
269 | componentId: "ris724-0"
|
270 | })([""]);
|
271 |
|
272 | var _StyledIconDown = _styled__default(IconDown.default).withConfig({
|
273 | displayName: "ContextMenu___StyledIconDown",
|
274 | componentId: "ris724-1"
|
275 | })(["color:", ";"], function (p) {
|
276 | return p._css7;
|
277 | });
|
278 |
|
279 | var _StyledAnimatedDiv = _styled__default(web.extendedAnimated.div).withConfig({
|
280 | displayName: "ContextMenu___StyledAnimatedDiv",
|
281 | componentId: "ris724-2"
|
282 | })(["z-index:", ";overflow:hidden;position:absolute;top:", "px;right:0;background:", ";border:1px solid ", ";border-radius:3px 0 3px 3px;"], function (p) {
|
283 | return p._css8;
|
284 | }, function (p) {
|
285 | return p._css9;
|
286 | }, function (p) {
|
287 | return p._css10;
|
288 | }, function (p) {
|
289 | return p._css11;
|
290 | });
|
291 |
|
292 | var _StyledDiv = _styled__default("div").withConfig({
|
293 | displayName: "ContextMenu___StyledDiv",
|
294 | componentId: "ris724-3"
|
295 | })(["z-index:", ";position:absolute;bottom:0;right:1px;height:1px;width:", "px;background:", ";"], function (p) {
|
296 | return p._css12;
|
297 | }, function (p) {
|
298 | return p._css13;
|
299 | }, function (p) {
|
300 | return p._css14;
|
301 | });
|
302 |
|
303 | function ContextMenu(_ref) {
|
304 | var children = _ref.children,
|
305 | zIndex = _ref.zIndex,
|
306 | disabled = _ref.disabled;
|
307 | var theme = Theme.useTheme();
|
308 |
|
309 | var _useState = React.useState(false),
|
310 | _useState2 = slicedToArray._slicedToArray(_useState, 2),
|
311 | opened = _useState2[0],
|
312 | setOpened = _useState2[1];
|
313 |
|
314 | var handleClose = React.useCallback(function () {
|
315 | setOpened(false);
|
316 | }, []);
|
317 | var handleBaseButtonClick = React.useCallback(function () {
|
318 | setOpened(function (opened) {
|
319 | return !opened;
|
320 | });
|
321 | }, []);
|
322 |
|
323 |
|
324 | var appliedZIndex = opened ? zIndex + 1 : zIndex;
|
325 | return React__default.createElement(reactOnclickout, {
|
326 | onClickOut: handleClose
|
327 | }, React__default.createElement(web.Spring, {
|
328 | config: springs.springs.smooth,
|
329 | to: {
|
330 | openProgress: Number(opened)
|
331 | },
|
332 | native: true
|
333 | }, function (_ref2) {
|
334 | var openProgress = _ref2.openProgress;
|
335 | return React__default.createElement(_StyledMain, {
|
336 | style: {
|
337 | boxShadow: openProgress.interpolate(function (t) {
|
338 | return "0 4px 4px rgba(0, 0, 0, ".concat(t * 0.03, ")");
|
339 | })
|
340 | },
|
341 | _css: appliedZIndex
|
342 | }, React__default.createElement(_StyledButton, {
|
343 | onClick: handleBaseButtonClick,
|
344 | opened: opened,
|
345 | disabled: disabled,
|
346 | focusRingRadius: constants.RADIUS,
|
347 | _css2: disabled ? theme.disabledContent : opened ? theme.accent : theme.surfaceContent,
|
348 | _css3: disabled ? theme.disabled : theme.surface,
|
349 | _css4: disabled ? '0' : "1px solid ".concat(theme.border),
|
350 | _css5: opened ? theme.surface : theme.border,
|
351 | _css6: disabled ? '' : "&:active {\n background: ".concat(theme.surfacePressed, ";\n border-bottom-color: ").concat(opened ? theme.surfacePressed : theme.border, ";\n }")
|
352 | }, React__default.createElement(_StyledIconEllipsis, null), React__default.createElement(web.extendedAnimated.div, {
|
353 | style: {
|
354 | display: 'flex',
|
355 | alignItems: 'center',
|
356 | transformOrigin: '50% 50%',
|
357 | transform: openProgress.interpolate(function (v) {
|
358 | return "rotate(".concat(v * 180, "deg)");
|
359 | })
|
360 | }
|
361 | }, React__default.createElement(_StyledIconDown, {
|
362 | size: "tiny",
|
363 | _css7: disabled ? theme.disabledIcon : theme.surfaceIcon
|
364 | }))), opened && React__default.createElement(React__default.Fragment, null, React__default.createElement(_StyledAnimatedDiv, {
|
365 | onClick: handleClose,
|
366 | style: {
|
367 | opacity: openProgress,
|
368 | boxShadow: openProgress.interpolate(function (t) {
|
369 | return "0 4px 4px rgba(0, 0, 0, ".concat(t * 0.03, ")");
|
370 | })
|
371 | },
|
372 | _css8: appliedZIndex + 1,
|
373 | _css9: BASE_HEIGHT - 1,
|
374 | _css10: theme.surface,
|
375 | _css11: theme.border
|
376 | }, children), React__default.createElement(_StyledDiv, {
|
377 | _css12: appliedZIndex + 1,
|
378 | _css13: BASE_WIDTH - 2,
|
379 | _css14: theme.surface
|
380 | })));
|
381 | }));
|
382 | }
|
383 |
|
384 | ContextMenu.propTypes = {
|
385 | children: index.PropTypes.node,
|
386 | zIndex: index.PropTypes.number,
|
387 | disabled: index.PropTypes.bool
|
388 | };
|
389 | ContextMenu.defaultProps = {
|
390 | zIndex: 0,
|
391 | disabled: false
|
392 | };
|
393 | var Main = _styled__default(web.extendedAnimated.div).withConfig({
|
394 | displayName: "ContextMenu__Main",
|
395 | componentId: "ris724-4"
|
396 | })(["position:relative;width:", "px;height:", "px;"], BASE_WIDTH, BASE_HEIGHT);
|
397 |
|
398 | var _StyledMain = _styled__default(Main).withConfig({
|
399 | displayName: "ContextMenu___StyledMain",
|
400 | componentId: "ris724-5"
|
401 | })(["z-index:", ";"], function (p) {
|
402 | return p._css;
|
403 | });
|
404 |
|
405 | var Button = _styled__default(ButtonBase.default).withConfig({
|
406 | displayName: "ContextMenu__Button",
|
407 | componentId: "ris724-6"
|
408 | })(["display:flex;justify-content:center;align-items:center;width:100%;height:", "px;border-radius:", ";box-shadow:", ";"], BASE_HEIGHT, function (_ref3) {
|
409 | var opened = _ref3.opened;
|
410 | return opened ? "".concat(constants.RADIUS, "px ").concat(constants.RADIUS, "px 0 0") : "".concat(constants.RADIUS, "px");
|
411 | }, function (_ref4) {
|
412 | var disabled = _ref4.disabled;
|
413 | return disabled ? 'none' : "0px 1px 3px rgba(0, 0, 0, 0.1)";
|
414 | });
|
415 |
|
416 | var _StyledButton = _styled__default(Button).withConfig({
|
417 | displayName: "ContextMenu___StyledButton",
|
418 | componentId: "ris724-7"
|
419 | })(["color:", ";background:", ";border:", ";border-bottom-color:", ";", ""], function (p) {
|
420 | return p._css2;
|
421 | }, function (p) {
|
422 | return p._css3;
|
423 | }, function (p) {
|
424 | return p._css4;
|
425 | }, function (p) {
|
426 | return p._css5;
|
427 | }, function (p) {
|
428 | return p._css6;
|
429 | });
|
430 |
|
431 | exports.default = ContextMenu;
|
432 |
|