36 lines
		
	
	
		
			838 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			838 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
const Mixin = require('../../utils/mixin');
 | 
						|
 | 
						|
class LocationInfoOpenElementStackMixin extends Mixin {
 | 
						|
    constructor(stack, opts) {
 | 
						|
        super(stack);
 | 
						|
 | 
						|
        this.onItemPop = opts.onItemPop;
 | 
						|
    }
 | 
						|
 | 
						|
    _getOverriddenMethods(mxn, orig) {
 | 
						|
        return {
 | 
						|
            pop() {
 | 
						|
                mxn.onItemPop(this.current);
 | 
						|
                orig.pop.call(this);
 | 
						|
            },
 | 
						|
 | 
						|
            popAllUpToHtmlElement() {
 | 
						|
                for (let i = this.stackTop; i > 0; i--) {
 | 
						|
                    mxn.onItemPop(this.items[i]);
 | 
						|
                }
 | 
						|
 | 
						|
                orig.popAllUpToHtmlElement.call(this);
 | 
						|
            },
 | 
						|
 | 
						|
            remove(element) {
 | 
						|
                mxn.onItemPop(this.current);
 | 
						|
                orig.remove.call(this, element);
 | 
						|
            }
 | 
						|
        };
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
module.exports = LocationInfoOpenElementStackMixin;
 |