UNPKG

@jstarpl/react-contextmenu

Version:
54 lines (44 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dispatchGlobalEvent = dispatchGlobalEvent; exports.showMenu = showMenu; exports.hideMenu = hideMenu; exports.MENU_HIDE = exports.MENU_SHOW = void 0; var _objectAssign = _interopRequireDefault(require("object-assign")); var _helpers = require("./helpers"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const MENU_SHOW = 'REACT_CONTEXTMENU_SHOW'; exports.MENU_SHOW = MENU_SHOW; const MENU_HIDE = 'REACT_CONTEXTMENU_HIDE'; exports.MENU_HIDE = MENU_HIDE; function dispatchGlobalEvent(eventName, opts, target = window) { /* * Compatibale with IE * @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work */ let event; if (typeof window.CustomEvent === 'function') { event = new window.CustomEvent(eventName, { detail: opts }); } else { event = document.createEvent('CustomEvent'); event.initCustomEvent(eventName, false, true, opts); } if (target) { target.dispatchEvent(event); (0, _objectAssign.default)(_helpers.store, opts); } } function showMenu(opts = {}, target) { dispatchGlobalEvent(MENU_SHOW, (0, _objectAssign.default)({}, opts, { type: MENU_SHOW }), target); } function hideMenu(opts = {}, target) { dispatchGlobalEvent(MENU_HIDE, (0, _objectAssign.default)({}, opts, { type: MENU_HIDE }), target); }