nl_tokens: Creates a new Popper . js instance .
pl_tokens: function Popper ( reference , popper ) { var _this = this ; var options = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : { } ; classCallCheck ( this , Popper ) ; this . scheduleUpdate = function ( ) { return requestAnimationFrame ( _this . update ) ; } ; // make update() debounced, so that it only runs at most once-per-tick this . update = debounce ( this . update . bind ( this ) ) ; // with {} we create a new object with the options inside it this . options = _extends ( { } , Popper . Defaults , options ) ; // init state this . state = { isDestroyed : false , isCreated : false , scrollParents : [ ] } ; // get reference and popper elements (allow jQuery wrappers) this . reference = reference && reference . jquery ? reference [ 0 ] : reference ; this . popper = popper && popper . jquery ? popper [ 0 ] : popper ; // Deep merge modifiers options this . options . modifiers = { } ; Object . keys ( _extends ( { } , Popper . Defaults . modifiers , options . modifiers ) ) . forEach ( function ( name ) { _this . options . modifiers [ name ] = _extends ( { } , Popper . Defaults . modifiers [ name ] || { } , options . modifiers ? options . modifiers [ <mask> ] : { } ) ; } ) ; // Refactoring modifiers' list (Object => Array) this . modifiers = Object . keys ( this . options . modifiers ) . map ( function ( name ) { return _extends ( { name : name } , _this . options . modifiers [ name ] ) ; } ) // sort the modifiers by order . sort ( function ( a , b ) { return a . order - b . order ; } ) ; // modifiers have the ability to execute arbitrary code when Popper.js get inited // such code is executed in the same order of its modifier // they could add new properties to their options configuration // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! this . modifiers . forEach ( function ( modifierOptions ) { if ( modifierOptions . enabled && isFunction ( modifierOptions . onLoad ) ) { modifierOptions . onLoad ( _this . reference , _this . popper , _this . options , modifierOptions , _this . state ) ; } } ) ; // fire the first update to position the popper in the right place this . update ( ) ; var eventsEnabled = this . options . eventsEnabled ; if ( eventsEnabled ) { // setup event listeners, they will take care of update the position in specific situations this . enableEventListeners ( ) ; } this . state . eventsEnabled = eventsEnabled ; }