| import Vue from 'vue'; | 
|   | 
| export default function scrollIntoView(container, selected) { | 
|   if (Vue.prototype.$isServer) return; | 
|   | 
|   if (!selected) { | 
|     container.scrollTop = 0; | 
|     return; | 
|   } | 
|   | 
|   const offsetParents = []; | 
|   let pointer = selected.offsetParent; | 
|   while (pointer && container !== pointer && container.contains(pointer)) { | 
|     offsetParents.push(pointer); | 
|     pointer = pointer.offsetParent; | 
|   } | 
|   const top = selected.offsetTop + offsetParents.reduce((prev, curr) => (prev + curr.offsetTop), 0); | 
|   const bottom = top + selected.offsetHeight; | 
|   const viewRectTop = container.scrollTop; | 
|   const viewRectBottom = viewRectTop + container.clientHeight; | 
|   | 
|   if (top < viewRectTop) { | 
|     container.scrollTop = top; | 
|   } else if (bottom > viewRectBottom) { | 
|     container.scrollTop = bottom - container.clientHeight; | 
|   } | 
| } |