UNPKG

@selfage/tabs

Version:

Common features to navigate between tabs.

28 lines 2.94 kB
"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=