nl_tokens: PUSH helpers ============
pl_tokens: function ( swap , container , transition , complete ) { var enter ; var containerDirection ; var swapDirection ; if ( ! transition ) { if ( container ) container . innerHTML = swap . innerHTML ; else if ( swap . classList . contains ( 'content' ) ) document . body . appendChild ( swap ) ; else document . body . insertBefore ( swap , document . querySelector ( '.content' ) ) ; } else { enter = / in$ / . <mask> ( transition ) ; if ( transition == 'fade' ) { container . classList . add ( 'in' ) ; container . classList . add ( 'fade' ) ; swap . classList . add ( 'fade' ) ; } if ( / slide / . test ( transition ) ) { swap . classList . add ( enter ? 'right' : 'left' ) ; swap . classList . add ( 'slide' ) ; container . classList . add ( 'slide' ) ; } container . parentNode . insertBefore ( swap , container ) ; } if ( ! transition ) complete && complete ( ) ; if ( transition == 'fade' ) { container . offsetWidth ; // force reflow container . classList . remove ( 'in' ) ; container . addEventListener ( 'webkitTransitionEnd' , fadeContainerEnd ) ; function fadeContainerEnd ( ) { container . removeEventListener ( 'webkitTransitionEnd' , fadeContainerEnd ) ; swap . classList . add ( 'in' ) ; swap . addEventListener ( 'webkitTransitionEnd' , fadeSwapEnd ) ; } function fadeSwapEnd ( ) { swap . removeEventListener ( 'webkitTransitionEnd' , fadeSwapEnd ) ; container . parentNode . removeChild ( container ) ; swap . classList . remove ( 'fade' ) ; swap . classList . remove ( 'in' ) ; complete && complete ( ) ; } } if ( / slide / . test ( transition ) ) { container . offsetWidth ; // force reflow swapDirection = enter ? 'right' : 'left' containerDirection = enter ? 'left' : 'right' container . classList . add ( containerDirection ) ; swap . classList . remove ( swapDirection ) ; swap . addEventListener ( 'webkitTransitionEnd' , slideEnd ) ; function slideEnd ( ) { swap . removeEventListener ( 'webkitTransitionEnd' , slideEnd ) ; swap . classList . remove ( 'slide' ) ; swap . classList . remove ( swapDirection ) ; container . parentNode . removeChild ( container ) ; complete && complete ( ) ; } } }