UNPKG

@launchmenu/applet-settings-manager

Version:
110 lines 9.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.settings = exports.info = void 0; const core_1 = require("@launchmenu/core"); const model_react_1 = require("model-react"); const createGlobalSettingsBindings_1 = require("./createGlobalSettingsBindings"); const setupAutoSaveHandler_1 = require("./setupAutoSaveHandler"); exports.info = { name: "Settings manager", description: "An applet to manage all settings within LaunchMenu", version: "0.0.0", icon: "settings", }; exports.settings = core_1.createSettings({ version: "0.0.0", settings: () => core_1.createSettingsFolder({ ...exports.info, children: { autoSave: core_1.createBooleanSetting({ name: "Auto save", init: true }), controls: core_1.createSettingsFolder({ name: "Controls", children: { save: core_1.createKeyPatternSetting({ name: "Save settings", init: new core_1.KeyPattern("ctrl+s"), }), load: core_1.createKeyPatternSetting({ name: "Reload settings", init: new core_1.KeyPattern([]), }), }, }), }, }), }); exports.default = core_1.declare({ info: exports.info, settings: exports.settings, coreCategory: core_1.CoreAppletType.SETTINGS, init: ({ LM }) => { // Setup an auto save handler const manager = LM.getSettingsManager(); const disposeAutoSave = setupAutoSaveHandler_1.setupAutoSaveHandler(manager); // Get data from the settings manager const settingsFolders = new model_react_1.DataCacher(h => { return manager.getAllSettingsData(h).map(settings => settings.file.settings); }); const recursiveRootSearchables = new model_react_1.DataCacher(h => ({ children: core_1.searchAction.get(settingsFolders.get(h)), })); const rootSearchables = new model_react_1.DataCacher(h => ({ children: recursiveRootSearchables .get(h) .children // Get rid of the children, making the search not recursive .map(searchable => core_1.adjustSearchable(searchable, { children: () => [], // Make the ID different, such that the searcher notices these are different nodes ID: ID => `capped-${ID}`, item: prioritizedItem => { if (prioritizedItem) { const { item, priority } = prioritizedItem; return { item, priority: priority && [ core_1.Priority.LOW, ...(priority instanceof Array ? priority : [priority]), ], }; } }, })), })); // Return the search, opening and context items data return { async search(query, h) { if (core_1.settingPatternMatcher(query)) return recursiveRootSearchables.get(h); return rootSearchables.get(h); }, open({ context, onClose }) { const menu = new core_1.ProxiedMenu(context, h => settingsFolders.get(h)); context.open(new core_1.UILayer(() => ({ menu, onClose, icon: "settings" }), { path: "./settings", })); }, withSession: session => ({ // Retrieve a prioritized menu item to open global and selected applet setting globalContextMenuBindings: h => { const selectedApplet = session.selectedApplet.get(h); const settingsData = selectedApplet && manager.getSettingsData(selectedApplet.ID); return createGlobalSettingsBindings_1.createGlobalSettingsBindings({ settingsFolder: settingsFolders.get(h), selectedAppletSettingsFolder: settingsData === null || settingsData === void 0 ? void 0 : settingsData.file.settings, settingsManager: manager, fileControls: !manager .getSettingsContext(h) .get(exports.settings) .autoSave.get(h), }); }, }), onDispose() { disposeAutoSave(); }, }; }, }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQWMwQjtBQUMxQiw2Q0FBdUM7QUFDdkMsaUZBQTRFO0FBQzVFLGlFQUE0RDtBQUUvQyxRQUFBLElBQUksR0FBRztJQUNoQixJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLFdBQVcsRUFBRSxvREFBb0Q7SUFDakUsT0FBTyxFQUFFLE9BQU87SUFDaEIsSUFBSSxFQUFFLFVBQVU7Q0FDVixDQUFDO0FBRUUsUUFBQSxRQUFRLEdBQUcscUJBQWMsQ0FBQztJQUNuQyxPQUFPLEVBQUUsT0FBTztJQUNoQixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQ1gsMkJBQW9CLENBQUM7UUFDakIsR0FBRyxZQUFJO1FBQ1AsUUFBUSxFQUFFO1lBQ04sUUFBUSxFQUFFLDJCQUFvQixDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDL0QsUUFBUSxFQUFFLDJCQUFvQixDQUFDO2dCQUMzQixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUSxFQUFFO29CQUNOLElBQUksRUFBRSw4QkFBdUIsQ0FBQzt3QkFDMUIsSUFBSSxFQUFFLGVBQWU7d0JBQ3JCLElBQUksRUFBRSxJQUFJLGlCQUFVLENBQUMsUUFBUSxDQUFDO3FCQUNqQyxDQUFDO29CQUNGLElBQUksRUFBRSw4QkFBdUIsQ0FBQzt3QkFDMUIsSUFBSSxFQUFFLGlCQUFpQjt3QkFDdkIsSUFBSSxFQUFFLElBQUksaUJBQVUsQ0FBQyxFQUFFLENBQUM7cUJBQzNCLENBQUM7aUJBQ0w7YUFDSixDQUFDO1NBQ0w7S0FDSixDQUFDO0NBQ1QsQ0FBQyxDQUFDO0FBRUgsa0JBQWUsY0FBTyxDQUFDO0lBQ25CLElBQUksRUFBSixZQUFJO0lBQ0osUUFBUSxFQUFSLGdCQUFRO0lBQ1IsWUFBWSxFQUFFLHFCQUFjLENBQUMsUUFBUTtJQUNyQyxJQUFJLEVBQUUsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUU7UUFDWCw2QkFBNkI7UUFDN0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDeEMsTUFBTSxlQUFlLEdBQUcsMkNBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQscUNBQXFDO1FBQ3JDLE1BQU0sZUFBZSxHQUFHLElBQUksd0JBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QyxPQUFPLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLHdCQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELFFBQVEsRUFBRSxtQkFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0osTUFBTSxlQUFlLEdBQUcsSUFBSSx3QkFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxRQUFRLEVBQUUsd0JBQXdCO2lCQUM3QixHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNOLFFBQVEsQ0FBQywyREFBMkQ7aUJBQ3BFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNkLHVCQUFnQixDQUFDLFVBQVUsRUFBRTtnQkFDekIsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xCLGtGQUFrRjtnQkFDbEYsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksRUFBRSxlQUFlLENBQUMsRUFBRTtvQkFDcEIsSUFBSSxlQUFlLEVBQUU7d0JBQ2pCLE1BQU0sRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFDLEdBQUcsZUFBZSxDQUFDO3dCQUN6QyxPQUFPOzRCQUNILElBQUk7NEJBQ0osUUFBUSxFQUFFLFFBQVEsSUFBSTtnQ0FDbEIsZUFBUSxDQUFDLEdBQUc7Z0NBQ1osR0FBRyxDQUFDLFFBQVEsWUFBWSxLQUFLO29DQUN6QixDQUFDLENBQUMsUUFBUTtvQ0FDVixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzs2QkFDcEI7eUJBQ0osQ0FBQztxQkFDTDtnQkFDTCxDQUFDO2FBQ0osQ0FBQyxDQUNMO1NBQ1IsQ0FBQyxDQUFDLENBQUM7UUFFSixvREFBb0Q7UUFDcEQsT0FBTztZQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksNEJBQXFCLENBQUMsS0FBSyxDQUFDO29CQUFFLE9BQU8sd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN6RSxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUNELElBQUksQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUM7Z0JBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksa0JBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxJQUFJLENBQ1IsSUFBSSxjQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLEVBQUU7b0JBQ25ELElBQUksRUFBRSxZQUFZO2lCQUNyQixDQUFDLENBQ0wsQ0FBQztZQUNOLENBQUM7WUFDRCxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQiw4RUFBOEU7Z0JBQzlFLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUMzQixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckQsTUFBTSxZQUFZLEdBQ2QsY0FBYyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNqRSxPQUFPLDJEQUE0QixDQUFDO3dCQUNoQyxjQUFjLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLDRCQUE0QixFQUFFLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxJQUFJLENBQUMsUUFBUTt3QkFDekQsZUFBZSxFQUFFLE9BQU87d0JBQ3hCLFlBQVksRUFBRSxDQUFDLE9BQU87NkJBQ2pCLGtCQUFrQixDQUFDLENBQUMsQ0FBQzs2QkFDckIsR0FBRyxDQUFDLGdCQUFRLENBQUM7NkJBQ2IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7cUJBQ3ZCLENBQUMsQ0FBQztnQkFDUCxDQUFDO2FBQ0osQ0FBQztZQUNGLFNBQVM7Z0JBQ0wsZUFBZSxFQUFFLENBQUM7WUFDdEIsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDIn0=