, but this code // executes before the first paint, when

ÃÛÌÒapp

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Leonard Van Drunen | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Dr. Leonard Van Drunen

ProfessorMBA Program Director

Biography

Professor Van Drunen has a Ph.D. in Finance from Purdue University and a M.Sc. from the London School of Economics and Political Science. He teaches corporate finance and investments and was chair of the ÃÛÌÒapp business program from 2010 to 2019. He has prior teaching experience at University of Utah and University of Cambridge, England, and has also taught at universities in China for two summers. Prior to joining ÃÛÌÒapp College, Prof. Van Drunen worked in investment banking as a Managing Director with J.P. Morgan in New York, Tokyo, and London, and with Merrill Lynch in New York. He has recently published two papers developing a Christian theology of finance. Professor Van Drunen is also an activist real estate investor in Grand Rapids and an avid cyclist.

 about Professor Van Drunen.

Education

  • Ph.D. in Finance, Purdue University, 1985 
  • M.Sc. in Social Policy, University of London, 2005
  • B.A. in Business, Dordt College, 1981

Professional Experience

  • Managing Director - JP Morgan Chase
  • Director - Merrill Lynch
  • Professor - University of Utah

Awards

  • ÃÛÌÒapp Center for Innovation in Business, ÃÛÌÒapp College, 2011
  • ÃÛÌÒapp Research Fellowship, ÃÛÌÒapp College, 2006
  • David Ross Research Scholar, Purdue University, 1984-1985
  • Federal Home Loan Bank Board Research Grant, 1984
  • Kiplinger Letter, Dordt College, 1981