You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
838 B
35 lines
838 B
'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;
|
|
|