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.
36 lines
838 B
36 lines
838 B
3 years ago
|
'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;
|