@ribajs/router
Version:
Routing extension for Riba.js inspired by Barba.js
33 lines • 2.82 kB
JavaScript
import { EventDispatcher } from "@ribajs/events";
import { extend } from "@ribajs/utils/src/type.js";
class BaseView {
namespace;
container;
dispatcher = EventDispatcher.getInstance();
extend(obj) {
return extend({ deep: false }, this, obj);
}
init() {
this.dispatcher.on("initStateChange", (viewId, newStatus, oldStatus) => {
if (oldStatus && oldStatus.namespace === this.namespace) {
this.onLeave();
}
});
this.dispatcher.on("newPageReady", (viewId, newStatus, oldStatus, container) => {
this.container = container;
if (newStatus.namespace === this.namespace) {
this.onEnter();
}
});
this.dispatcher.on("transitionCompleted", (viewId, newStatus, oldStatus) => {
if (newStatus.namespace === this.namespace) {
this.onEnterCompleted();
}
if (oldStatus && oldStatus.namespace === this.namespace) {
this.onLeaveCompleted();
}
});
}
}
export { BaseView };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9WaWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLbkQsTUFBZSxRQUFRO0lBS1gsU0FBUyxDQUFVO0lBRW5CLFNBQVMsQ0FBZTtJQUUxQixVQUFVLEdBQUcsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBSzVDLE1BQU0sQ0FBQyxHQUFRO1FBQ3BCLE9BQU8sTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBUU0sSUFBSTtRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNoQixpQkFBaUIsRUFDakIsQ0FBQyxNQUFjLEVBQUUsU0FBZ0IsRUFBRSxTQUFnQixFQUFFLEVBQUU7WUFDckQsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDaEIsY0FBYyxFQUNkLENBQ0UsTUFBYyxFQUNkLFNBQWdCLEVBQ2hCLFNBQWdCLEVBQ2hCLFNBQXNCLEVBQ3RCLEVBQUU7WUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLFNBQVMsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsQ0FBQztRQUNILENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQ2hCLHFCQUFxQixFQUNyQixDQUFDLE1BQWMsRUFBRSxTQUFnQixFQUFFLFNBQWdCLEVBQUUsRUFBRTtZQUNyRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDO1lBRUQsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0F5QkY7QUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMifQ==