@selfage/tabs
Version:
Common features to navigate between tabs.
28 lines • 2.94 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TabNavigator = void 0;
class TabNavigator {
constructor(addTab, removeTab, updateTab = () => { }) {
this.addTab = addTab;
this.removeTab = removeTab;
this.updateTab = updateTab;
this.goToInternal = (tab) => {
if (this.currentTab !== tab) {
this.removeTab(this.currentTab);
this.currentTab = tab;
this.addTab(this.currentTab);
}
else {
this.updateTab(this.currentTab);
}
};
this.goTo = this.goToInternal;
}
// Once removed, all future gotos are stopped.
remove() {
this.removeTab(this.currentTab);
this.goTo = () => { };
}
}
exports.TabNavigator = TabNavigator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmF2aWdhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsWUFBWTtJQUl2QixZQUNVLE1BQTBCLEVBQzFCLFNBQTZCLEVBQzdCLFlBQWdDLEdBQUcsRUFBRSxHQUFFLENBQUM7UUFGeEMsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFLMUMsaUJBQVksR0FBRyxDQUFDLEdBQVEsRUFBUSxFQUFFO1lBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO2dCQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQztRQVhBLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNoQyxDQUFDO0lBWUQsOENBQThDO0lBQ3ZDLE1BQU07UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUEzQkQsb0NBMkJDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFRhYk5hdmlnYXRvcjxUYWI+IHtcbiAgcHVibGljIGdvVG86ICh0YWI6IFRhYikgPT4gdm9pZDtcbiAgcHJpdmF0ZSBjdXJyZW50VGFiOiBUYWI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWRkVGFiOiAodGFiOiBUYWIpID0+IHZvaWQsXG4gICAgcHJpdmF0ZSByZW1vdmVUYWI6ICh0YWI6IFRhYikgPT4gdm9pZCxcbiAgICBwcml2YXRlIHVwZGF0ZVRhYjogKHRhYjogVGFiKSA9PiB2b2lkID0gKCkgPT4ge31cbiAgKSB7XG4gICAgdGhpcy5nb1RvID0gdGhpcy5nb1RvSW50ZXJuYWw7XG4gIH1cblxuICBwcml2YXRlIGdvVG9JbnRlcm5hbCA9ICh0YWI6IFRhYik6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmN1cnJlbnRUYWIgIT09IHRhYikge1xuICAgICAgdGhpcy5yZW1vdmVUYWIodGhpcy5jdXJyZW50VGFiKTtcbiAgICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcbiAgICAgIHRoaXMuYWRkVGFiKHRoaXMuY3VycmVudFRhYik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlVGFiKHRoaXMuY3VycmVudFRhYik7XG4gICAgfVxuICB9O1xuXG4gIC8vIE9uY2UgcmVtb3ZlZCwgYWxsIGZ1dHVyZSBnb3RvcyBhcmUgc3RvcHBlZC5cbiAgcHVibGljIHJlbW92ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVRhYih0aGlzLmN1cnJlbnRUYWIpO1xuICAgIHRoaXMuZ29UbyA9ICgpID0+IHt9O1xuICB9XG59XG4iXX0=