UNPKG

@jstarpl/react-contextmenu

Version:
69 lines (59 loc) 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.callIfExists = callIfExists; exports.hasOwnProp = hasOwnProp; exports.uniqueId = uniqueId; exports.isElementParent = isElementParent; exports.KEYBOARD_CODES = exports.SECONDARY_MOUSE_BUTTON = exports.PRIMARY_MOUSE_BUTTON = exports.canUseDOM = exports.store = exports.cssClasses = void 0; function callIfExists(func, ...args) { return typeof func === 'function' && func(...args); } function hasOwnProp(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } function uniqueId() { // eslint-disable-next-line no-magic-numbers return Math.random().toString(36).substring(7); } const cssClasses = { menu: 'react-contextmenu', menuVisible: 'react-contextmenu--visible', menuWrapper: 'react-contextmenu-wrapper', menuItem: 'react-contextmenu-item', menuItemActive: 'react-contextmenu-item--active', menuItemDisabled: 'react-contextmenu-item--disabled', menuItemDivider: 'react-contextmenu-item--divider', menuItemSelected: 'react-contextmenu-item--selected', subMenu: 'react-contextmenu-submenu' }; exports.cssClasses = cssClasses; const store = {}; exports.store = store; const canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement); exports.canUseDOM = canUseDOM; function isElementParent(element, parent) { let current = element; while (current.parentNode) { current = current.parentNode; if (current === parent) { return true; } } return false; } const PRIMARY_MOUSE_BUTTON = 0; exports.PRIMARY_MOUSE_BUTTON = PRIMARY_MOUSE_BUTTON; const SECONDARY_MOUSE_BUTTON = 1; exports.SECONDARY_MOUSE_BUTTON = SECONDARY_MOUSE_BUTTON; const KEYBOARD_CODES = { ArrowUp: 'ArrowUp', ArrowDown: 'ArrowDown', ArrowLeft: 'ArrowLeft', ArrowRight: 'ArrowRight', Escape: 'Escape', Enter: 'Enter', NumpadEnter: 'NumpadEnter' }; exports.KEYBOARD_CODES = KEYBOARD_CODES;