placements.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = getPlacements;
  7. exports.getOverflowOptions = getOverflowOptions;
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _placements = require("../vc-tooltip/src/placements");
  10. var autoAdjustOverflowEnabled = {
  11. adjustX: 1,
  12. adjustY: 1
  13. };
  14. var autoAdjustOverflowDisabled = {
  15. adjustX: 0,
  16. adjustY: 0
  17. };
  18. var targetOffset = [0, 0];
  19. function getOverflowOptions(autoAdjustOverflow) {
  20. if (typeof autoAdjustOverflow === 'boolean') {
  21. return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;
  22. }
  23. return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, autoAdjustOverflowDisabled), autoAdjustOverflow);
  24. }
  25. function getPlacements(config) {
  26. var _config$arrowWidth = config.arrowWidth,
  27. arrowWidth = _config$arrowWidth === void 0 ? 4 : _config$arrowWidth,
  28. _config$horizontalArr = config.horizontalArrowShift,
  29. horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,
  30. _config$verticalArrow = config.verticalArrowShift,
  31. verticalArrowShift = _config$verticalArrow === void 0 ? 8 : _config$verticalArrow,
  32. autoAdjustOverflow = config.autoAdjustOverflow,
  33. arrowPointAtCenter = config.arrowPointAtCenter;
  34. var placementMap = {
  35. left: {
  36. points: ['cr', 'cl'],
  37. offset: [-4, 0]
  38. },
  39. right: {
  40. points: ['cl', 'cr'],
  41. offset: [4, 0]
  42. },
  43. top: {
  44. points: ['bc', 'tc'],
  45. offset: [0, -4]
  46. },
  47. bottom: {
  48. points: ['tc', 'bc'],
  49. offset: [0, 4]
  50. },
  51. topLeft: {
  52. points: ['bl', 'tc'],
  53. offset: [-(horizontalArrowShift + arrowWidth), -4]
  54. },
  55. leftTop: {
  56. points: ['tr', 'cl'],
  57. offset: [-4, -(verticalArrowShift + arrowWidth)]
  58. },
  59. topRight: {
  60. points: ['br', 'tc'],
  61. offset: [horizontalArrowShift + arrowWidth, -4]
  62. },
  63. rightTop: {
  64. points: ['tl', 'cr'],
  65. offset: [4, -(verticalArrowShift + arrowWidth)]
  66. },
  67. bottomRight: {
  68. points: ['tr', 'bc'],
  69. offset: [horizontalArrowShift + arrowWidth, 4]
  70. },
  71. rightBottom: {
  72. points: ['bl', 'cr'],
  73. offset: [4, verticalArrowShift + arrowWidth]
  74. },
  75. bottomLeft: {
  76. points: ['tl', 'bc'],
  77. offset: [-(horizontalArrowShift + arrowWidth), 4]
  78. },
  79. leftBottom: {
  80. points: ['br', 'cl'],
  81. offset: [-4, verticalArrowShift + arrowWidth]
  82. }
  83. };
  84. Object.keys(placementMap).forEach(function (key) {
  85. placementMap[key] = arrowPointAtCenter ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, placementMap[key]), {}, {
  86. overflow: getOverflowOptions(autoAdjustOverflow),
  87. targetOffset: targetOffset
  88. }) : (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _placements.placements[key]), {}, {
  89. overflow: getOverflowOptions(autoAdjustOverflow)
  90. });
  91. placementMap[key].ignoreShake = true;
  92. });
  93. return placementMap;
  94. }