@launchmenu/core
Version:
An environment for visual keyboard controlled applets
33 lines • 2.38 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUIStack = void 0;
/**
* Retrieves the ui stack data
* @param context The context to extract the ui from
* @param getUI The function to extract the UI
* @param hook The hook to subscribe to change
* @returns The UI retrieved from the context
*/
function getUIStack(context, getUI, hook) {
return context
.getUI(hook)
.flatMap(getUI)
.reduce(({ views, lastGroup, visible }, { view, overlayGroup }) => {
// If no group is specified, or it's different from the last group, add the view
if (!overlayGroup || (lastGroup != overlayGroup && visible))
views.push(view); // Mutable push is faster than concatenation
return {
views,
lastGroup: overlayGroup,
// Overlay views don't alter visibility, other items do
visible: overlayGroup ? visible : !("close" in view.value),
};
}, {
views: [],
lastGroup: undefined,
/** Whether the content so far is visible (not a closed view with possibly a number of overlays on top) */
visible: true,
}).views;
}
exports.getUIStack = getUIStack;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VUlTdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L3VpRXh0cmFjdGVycy9nZXRVSVN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BOzs7Ozs7R0FNRztBQUNILFNBQWdCLFVBQVUsQ0FDdEIsT0FBbUIsRUFDbkIsS0FFcUUsRUFDckUsSUFBZ0I7SUFFaEIsT0FBTyxPQUFPO1NBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDZCxNQUFNLENBQ0gsQ0FBQyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFDLEVBQUUsRUFBRTtRQUNsRCxnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFNBQVMsSUFBSSxZQUFZLElBQUksT0FBTyxDQUFDO1lBQ3ZELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw0Q0FBNEM7UUFFbEUsT0FBTztZQUNILEtBQUs7WUFDTCxTQUFTLEVBQUUsWUFBWTtZQUN2Qix1REFBdUQ7WUFDdkQsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDN0QsQ0FBQztJQUNOLENBQUMsRUFDRDtRQUNJLEtBQUssRUFBRSxFQUF1QztRQUM5QyxTQUFTLEVBQUUsU0FBK0I7UUFDMUMsMEdBQTBHO1FBQzFHLE9BQU8sRUFBRSxJQUFJO0tBQ2hCLENBQ0osQ0FBQyxLQUFLLENBQUM7QUFDaEIsQ0FBQztBQTlCRCxnQ0E4QkMifQ==
;