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;
 |