* @function * @memberof Modifiers * @argument {Object} data - The data object generated by `update` method * @argument {Object} options - Modifiers configuration and options * @returns {Object} The data object, properly modified
(data)
| 3415 | * @returns {Object} The data object, properly modified |
| 3416 | */ |
| 3417 | function shift(data) { |
| 3418 | var placement = data.placement; |
| 3419 | var basePlacement = placement.split('-')[0]; |
| 3420 | var shiftvariation = placement.split('-')[1]; |
| 3421 | |
| 3422 | // if shift shiftvariation is specified, run the modifier |
| 3423 | if (shiftvariation) { |
| 3424 | var _data$offsets = data.offsets, |
| 3425 | reference = _data$offsets.reference, |
| 3426 | popper = _data$offsets.popper; |
| 3427 | |
| 3428 | var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; |
| 3429 | var side = isVertical ? 'left' : 'top'; |
| 3430 | var measurement = isVertical ? 'width' : 'height'; |
| 3431 | |
| 3432 | var shiftOffsets = { |
| 3433 | start: defineProperty({}, side, reference[side]), |
| 3434 | end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) |
| 3435 | }; |
| 3436 | |
| 3437 | data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); |
| 3438 | } |
| 3439 | |
| 3440 | return data; |
| 3441 | } |
| 3442 | |
| 3443 | /** |
| 3444 | * @function |
nothing calls this directly
no test coverage detected