@launchmenu/core
Version:
An environment for visual keyboard controlled applets
34 lines • 2.32 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProxiedPrioritizedMenu = void 0;
const model_react_1 = require("model-react");
const PrioritizedMenu_1 = require("./PrioritizedMenu");
/**
* A menu that automatically synchronizes with the specified prioritized item source
*/
class ProxiedPrioritizedMenu extends PrioritizedMenu_1.PrioritizedMenu {
constructor(context, itemSource, config) {
super(context, config);
this.itemSource = itemSource;
this.setupObserver();
}
/**
* Sets up the observer to listen to the item source
*/
setupObserver() {
this.itemObserver = new model_react_1.Observer(hook => this.itemSource(hook)).listen((items, _, oldItems = []) => {
this.removeItems(oldItems);
this.addItems(items);
}, true);
}
/** @override */
destroy() {
if (super.destroy()) {
this.itemObserver.destroy();
return true;
}
return false;
}
}
exports.ProxiedPrioritizedMenu = ProxiedPrioritizedMenu;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJveGllZFByaW9yaXRpemVkTWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW51cy9tZW51L1Byb3hpZWRQcmlvcml0aXplZE1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXFEO0FBRXJELHVEQUFrRDtBQUlsRDs7R0FFRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsaUNBQWU7SUFJdkQsWUFDSSxPQUFtQixFQUNuQixVQUFrRCxFQUNsRCxNQUErQjtRQUUvQixLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDbEUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQyxFQUNELElBQUksQ0FDUCxDQUFDO0lBQ04sQ0FBQztJQUVELGdCQUFnQjtJQUNULE9BQU87UUFDVixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0o7QUFuQ0Qsd0RBbUNDIn0=
;