UNPKG

@nguyentc21/react-native-tooltip

Version:
61 lines (60 loc) 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _reactNative = require("react-native"); var _calculateCaretWidth = _interopRequireDefault(require("./calculateCaretWidth")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } var _default = args => { const { placement, caretSize, targetContentLayout, tooltipContentLayout } = args; if (!tooltipContentLayout) return; const { pageX, pageY } = targetContentLayout; const halfTargetHeight = targetContentLayout.height * 0.5; const halfTargetWidth = targetContentLayout.width * 0.5; const _pageX = pageX - tooltipContentLayout.x; const _pageY = pageY - tooltipContentLayout.y; const caretWidth = (0, _calculateCaretWidth.default)(caretSize); const caretHeight = caretWidth * 0.5; const diffCaretSizeAfterTransform = (caretWidth - caretSize) * 0.5; const caretOffset = -caretHeight + diffCaretSizeAfterTransform - _reactNative.StyleSheet.hairlineWidth; const offsetX = halfTargetWidth - caretHeight + diffCaretSizeAfterTransform; const offsetY = halfTargetHeight - caretHeight + diffCaretSizeAfterTransform; let top, left, bottom, right; switch (placement) { case 'top': left = _pageX + offsetX; top = caretOffset; break; case 'bottom': left = _pageX + offsetX; bottom = caretOffset; break; case 'left': top = _pageY + offsetY; left = caretOffset; break; case 'right': top = _pageY + offsetY; right = caretOffset; break; default: break; } return { top, left, bottom, right }; }; exports.default = _default; //# sourceMappingURL=generateCaretPosition.js.map