@launchmenu/applet-settings-manager
Version:
An applet to manage settings
110 lines • 9.19 kB
JavaScript
;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQWMwQjtBQUMxQiw2Q0FBdUM7QUFDdkMsaUZBQTRFO0FBQzVFLGlFQUE0RDtBQUUvQyxRQUFBLElBQUksR0FBRztJQUNoQixJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLFdBQVcsRUFBRSxvREFBb0Q7SUFDakUsT0FBTyxFQUFFLE9BQU87SUFDaEIsSUFBSSxFQUFFLFVBQVU7Q0FDVixDQUFDO0FBRUUsUUFBQSxRQUFRLEdBQUcscUJBQWMsQ0FBQztJQUNuQyxPQUFPLEVBQUUsT0FBTztJQUNoQixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQ1gsMkJBQW9CLENBQUM7UUFDakIsR0FBRyxZQUFJO1FBQ1AsUUFBUSxFQUFFO1lBQ04sUUFBUSxFQUFFLDJCQUFvQixDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDL0QsUUFBUSxFQUFFLDJCQUFvQixDQUFDO2dCQUMzQixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUSxFQUFFO29CQUNOLElBQUksRUFBRSw4QkFBdUIsQ0FBQzt3QkFDMUIsSUFBSSxFQUFFLGVBQWU7d0JBQ3JCLElBQUksRUFBRSxJQUFJLGlCQUFVLENBQUMsUUFBUSxDQUFDO3FCQUNqQyxDQUFDO29CQUNGLElBQUksRUFBRSw4QkFBdUIsQ0FBQzt3QkFDMUIsSUFBSSxFQUFFLGlCQUFpQjt3QkFDdkIsSUFBSSxFQUFFLElBQUksaUJBQVUsQ0FBQyxFQUFFLENBQUM7cUJBQzNCLENBQUM7aUJBQ0w7YUFDSixDQUFDO1NBQ0w7S0FDSixDQUFDO0NBQ1QsQ0FBQyxDQUFDO0FBRUgsa0JBQWUsY0FBTyxDQUFDO0lBQ25CLElBQUksRUFBSixZQUFJO0lBQ0osUUFBUSxFQUFSLGdCQUFRO0lBQ1IsWUFBWSxFQUFFLHFCQUFjLENBQUMsUUFBUTtJQUNy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