UNPKG

amis

Version:

一种MIS页面生成工具

89 lines (88 loc) 3.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PopOverContainer = void 0; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importDefault(require("react")); var helper_1 = require("../utils/helper"); var Overlay_1 = tslib_1.__importDefault(require("./Overlay")); var PopOver_1 = tslib_1.__importDefault(require("./PopOver")); var react_dom_1 = require("react-dom"); var PopOverContainer = /** @class */ (function (_super) { tslib_1.__extends(PopOverContainer, _super); function PopOverContainer() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.state = { isOpened: false }; return _this; } PopOverContainer.prototype.targetRef = function (target) { this.target = target ? react_dom_1.findDOMNode(target) : null; }; PopOverContainer.prototype.handleClick = function () { this.setState({ isOpened: true }); }; PopOverContainer.prototype.close = function () { this.setState({ isOpened: false }); }; PopOverContainer.prototype.getTarget = function () { return this.target || react_dom_1.findDOMNode(this); }; PopOverContainer.prototype.getParent = function () { var _a; return (_a = this.getTarget()) === null || _a === void 0 ? void 0 : _a.parentElement; }; PopOverContainer.prototype.render = function () { var _a = this.props, children = _a.children, popOverContainer = _a.popOverContainer, popOverClassName = _a.popOverClassName, dropdownRender = _a.popOverRender; return (react_1.default.createElement(react_1.default.Fragment, null, children({ isOpened: this.state.isOpened, onClick: this.handleClick, ref: this.targetRef }), react_1.default.createElement(Overlay_1.default, { container: popOverContainer || this.getParent, target: this.getTarget, placement: 'auto', show: this.state.isOpened }, react_1.default.createElement(PopOver_1.default, { overlay: true, className: popOverClassName, style: { minWidth: this.target ? Math.max(this.target.offsetWidth, 100) : 'auto' }, onHide: this.close }, dropdownRender({ onClose: this.close }))))); }; tslib_1.__decorate([ helper_1.autobind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", void 0) ], PopOverContainer.prototype, "targetRef", null); tslib_1.__decorate([ helper_1.autobind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0) ], PopOverContainer.prototype, "handleClick", null); tslib_1.__decorate([ helper_1.autobind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0) ], PopOverContainer.prototype, "close", null); tslib_1.__decorate([ helper_1.autobind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0) ], PopOverContainer.prototype, "getTarget", null); tslib_1.__decorate([ helper_1.autobind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0) ], PopOverContainer.prototype, "getParent", null); return PopOverContainer; }(react_1.default.Component)); exports.PopOverContainer = PopOverContainer; exports.default = PopOverContainer; //# sourceMappingURL=./components/PopOverContainer.js.map