UNPKG

3.11 kBJavaScriptView Raw
1// ag-grid-react v26.2.0
2"use strict";
3var __importStar = (this && this.__importStar) || function (mod) {
4 if (mod && mod.__esModule) return mod;
5 var result = {};
6 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
7 result["default"] = mod;
8 return result;
9};
10Object.defineProperty(exports, "__esModule", { value: true });
11var ag_grid_community_1 = require("ag-grid-community");
12var react_1 = __importStar(require("react"));
13var react_dom_1 = require("react-dom");
14var beansContext_1 = require("../beansContext");
15var PopupEditorComp = function (props) {
16 var _a = react_1.useState(), popupEditorWrapper = _a[0], setPopupEditorWrapper = _a[1];
17 var _b = react_1.useContext(beansContext_1.BeansContext), context = _b.context, popupService = _b.popupService, gridOptionsWrapper = _b.gridOptionsWrapper;
18 react_1.useEffect(function () {
19 var editDetails = props.editDetails, cellCtrl = props.cellCtrl, eParentCell = props.eParentCell;
20 var compDetails = editDetails.compDetails;
21 var useModelPopup = gridOptionsWrapper.isStopEditingWhenCellsLoseFocus();
22 var wrapper = new ag_grid_community_1.PopupEditorWrapper(compDetails.params);
23 var ePopupGui = wrapper.getGui();
24 if (props.jsChildComp) {
25 var eChildGui = props.jsChildComp.getGui();
26 if (eChildGui) {
27 ePopupGui.appendChild(eChildGui);
28 }
29 }
30 var positionParams = {
31 column: cellCtrl.getColumn(),
32 rowNode: cellCtrl.getRowNode(),
33 type: 'popupCellEditor',
34 eventSource: eParentCell,
35 ePopup: ePopupGui,
36 keepWithinBounds: true
37 };
38 var positionCallback = editDetails.popupPosition === 'under' ?
39 popupService.positionPopupUnderComponent.bind(popupService, positionParams)
40 : popupService.positionPopupOverComponent.bind(popupService, positionParams);
41 var translate = gridOptionsWrapper.getLocaleTextFunc();
42 var addPopupRes = popupService.addPopup({
43 modal: useModelPopup,
44 eChild: ePopupGui,
45 closeOnEsc: true,
46 closedCallback: function () { cellCtrl.onPopupEditorClosed(); },
47 anchorToElement: eParentCell,
48 positionCallback: positionCallback,
49 ariaLabel: translate('ariaLabelCellEditor', 'Cell Editor')
50 });
51 var hideEditorPopup = addPopupRes ? addPopupRes.hideFunc : undefined;
52 setPopupEditorWrapper(wrapper);
53 props.jsChildComp && props.jsChildComp.afterGuiAttached && props.jsChildComp.afterGuiAttached();
54 return function () {
55 if (hideEditorPopup != null) {
56 hideEditorPopup();
57 }
58 context.destroyBean(wrapper);
59 };
60 }, []);
61 return (react_1.default.createElement(react_1.default.Fragment, null, popupEditorWrapper && props.wrappedContent
62 && react_dom_1.createPortal(props.wrappedContent, popupEditorWrapper.getGui())));
63};
64exports.default = react_1.memo(PopupEditorComp);