"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOverflowOptions = getOverflowOptions; exports["default"] = getPlacements; var _placements = require("rc-tooltip/lib/placements"); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var autoAdjustOverflowEnabled = { adjustX: 1, adjustY: 1 }; var autoAdjustOverflowDisabled = { adjustX: 0, adjustY: 0 }; var targetOffset = [0, 0]; function getOverflowOptions(autoAdjustOverflow) { if (typeof autoAdjustOverflow === 'boolean') { return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled; } return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow); } function getPlacements() { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _config$arrowWidth = config.arrowWidth, arrowWidth = _config$arrowWidth === void 0 ? 5 : _config$arrowWidth, _config$horizontalArr = config.horizontalArrowShift, horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr, _config$verticalArrow = config.verticalArrowShift, verticalArrowShift = _config$verticalArrow === void 0 ? 12 : _config$verticalArrow, _config$autoAdjustOve = config.autoAdjustOverflow, autoAdjustOverflow = _config$autoAdjustOve === void 0 ? true : _config$autoAdjustOve; var placementMap = { left: { points: ['cr', 'cl'], offset: [-4, 0] }, right: { points: ['cl', 'cr'], offset: [4, 0] }, top: { points: ['bc', 'tc'], offset: [0, -4] }, bottom: { points: ['tc', 'bc'], offset: [0, 4] }, topLeft: { points: ['bl', 'tc'], offset: [-(horizontalArrowShift + arrowWidth), -4] }, leftTop: { points: ['tr', 'cl'], offset: [-4, -(verticalArrowShift + arrowWidth)] }, topRight: { points: ['br', 'tc'], offset: [horizontalArrowShift + arrowWidth, -4] }, rightTop: { points: ['tl', 'cr'], offset: [4, -(verticalArrowShift + arrowWidth)] }, bottomRight: { points: ['tr', 'bc'], offset: [horizontalArrowShift + arrowWidth, 4] }, rightBottom: { points: ['bl', 'cr'], offset: [4, verticalArrowShift + arrowWidth] }, bottomLeft: { points: ['tl', 'bc'], offset: [-(horizontalArrowShift + arrowWidth), 4] }, leftBottom: { points: ['br', 'cl'], offset: [-4, verticalArrowShift + arrowWidth] } }; Object.keys(placementMap).forEach(function (key) { placementMap[key] = config.arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), { overflow: getOverflowOptions(autoAdjustOverflow), targetOffset: targetOffset }) : _extends(_extends({}, _placements.placements[key]), { overflow: getOverflowOptions(autoAdjustOverflow) }); placementMap[key].ignoreShake = true; }); return placementMap; }