* @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)
| 3141 | * @returns {Object} The data object, properly modified |
| 3142 | */ |
| 3143 | function keepTogether(data) { |
| 3144 | var _data$offsets = data.offsets, |
| 3145 | popper = _data$offsets.popper, |
| 3146 | reference = _data$offsets.reference; |
| 3147 | |
| 3148 | var placement = data.placement.split('-')[0]; |
| 3149 | var floor = Math.floor; |
| 3150 | var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; |
| 3151 | var side = isVertical ? 'right' : 'bottom'; |
| 3152 | var opSide = isVertical ? 'left' : 'top'; |
| 3153 | var measurement = isVertical ? 'width' : 'height'; |
| 3154 | |
| 3155 | if (popper[side] < floor(reference[opSide])) { |
| 3156 | data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; |
| 3157 | } |
| 3158 | if (popper[opSide] > floor(reference[side])) { |
| 3159 | data.offsets.popper[opSide] = floor(reference[side]); |
| 3160 | } |
| 3161 | |
| 3162 | return data; |
| 3163 | } |
| 3164 | |
| 3165 | /** |
| 3166 | * Converts a string containing value + unit into a px value number |
nothing calls this directly
no outgoing calls
no test coverage detected