"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var props_1 = require("./props"); var fmtEvent_1 = tslib_1.__importDefault(require("../_util/fmtEvent")); var value_1 = tslib_1.__importDefault(require("../mixins/value")); var systemInfo; Component({ props: props_1.PopoverDefaultProps, data: { adjustedPlacement: '', }, mixins: [ (0, value_1.default)({ valueKey: 'visible', defaultValueKey: 'defaultVisible', transformValue: function (val) { var _this = this; var value = val || false; var _a = this.props, placement = _a.placement, autoAdjustOverflow = _a.autoAdjustOverflow; if (autoAdjustOverflow) { if (value) { setTimeout(function () { my.createSelectorQuery() .select("#ant-popover-content-".concat(_this.$id)) .boundingClientRect() .exec(function (ret) { return tslib_1.__awaiter(_this, void 0, void 0, function () { var rect, adjustedPlacement, left, top, width, height, e_1; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: rect = ret === null || ret === void 0 ? void 0 : ret[0]; adjustedPlacement = placement; if (!rect) return [3 /*break*/, 5]; left = rect.left, top = rect.top, width = rect.width, height = rect.height; if (top < 0) { adjustedPlacement = adjustedPlacement.replace('top', 'bottom'); } if (left < 0) { adjustedPlacement = adjustedPlacement.replace('left', 'right'); } if (!!systemInfo) return [3 /*break*/, 4]; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, my.getSystemInfo()]; case 2: systemInfo = _a.sent(); return [3 /*break*/, 4]; case 3: e_1 = _a.sent(); console.warn('getSystemInfo fail'); return [3 /*break*/, 4]; case 4: if (systemInfo) { if (left + width > systemInfo.windowWidth) { adjustedPlacement = adjustedPlacement.replace('right', 'left'); } if (top + height > systemInfo.windowHeight - systemInfo.titleBarHeight - systemInfo.statusBarHeight) { adjustedPlacement = adjustedPlacement.replace('bottom', 'top'); } } _a.label = 5; case 5: this.setData({ adjustedPlacement: adjustedPlacement }); return [2 /*return*/]; } }); }); }); }); } else { this.setData({ adjustedPlacement: '' }); } } return { needUpdate: true, value: value, }; }, }), ], methods: { onVisibleChange: function () { var onVisibleChange = this.props.onVisibleChange; var value = !this.getValue(); if (!this.isControlled()) { this.update(value); } if (onVisibleChange) { return onVisibleChange(value, (0, fmtEvent_1.default)(this.props)); } }, }, });