jiaqingjiayi-xiaochengxu/甲情_甲意/miniprogram/node_modules/antd-mini/less/Popover/index.js
2024-11-10 15:01:22 +08:00

98 lines
5.0 KiB
JavaScript

"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));
}
},
},
});