UNPKG

es-grid-template

Version:

es-grid-template

86 lines (83 loc) 3.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findItemByKey = exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _antd = require("antd"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } const findItemByKey = (array, key, value) => { for (let i = 0; i < array.length; i++) { const item = array[i]; if (item[key] === value) { return item; } if (item.children && item.children.length > 0) { const foundInChildren = findItemByKey(item.children, key, value); if (foundInChildren) { return foundInChildren; } } } return null; }; exports.findItemByKey = findItemByKey; const ContextMenu = props => { const { menuRef, open, setOpen, pos, contextMenuClick, contextMenuItems, rowData } = props; return /*#__PURE__*/React.createElement(_antd.Dropdown, { placement: 'topRight', open: open, overlayClassName: 'be-popup-container', overlayStyle: { left: `${pos.x}px`, top: `${pos.y}px` }, dropdownRender: () => { return /*#__PURE__*/React.createElement("div", { ref: menuRef }, /*#__PURE__*/React.createElement(_antd.Menu, { items: contextMenuItems, style: { minWidth: 200, maxHeight: pos.viewportHeight - 20, width: 'fit-content' }, rootClassName: 'popup-context-menu' // rootClassName={'be-popup-container'} , onClick: e => { setOpen(false); contextMenuClick?.({ rowInfo: { rowData: rowData.rowData }, event: e.domEvent, field: rowData.field, item: { ...findItemByKey(contextMenuItems, 'key', e.key), id: e.key } }); // if (!open) { // document.addEventListener(`click`, function onClickOutside() { // setOpen(false); // document.removeEventListener(`click`, onClickOutside); // }); // } } })); }, destroyPopupOnHide: true // autoAdjustOverflow }, /*#__PURE__*/React.createElement(React.Fragment, null)); }; var _default = exports.default = ContextMenu;