UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

115 lines 9.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCategorySortingSetting = exports.createMenuSettingsFolder = exports.getMenuControlsFolderCategories = void 0; const model_react_1 = require("model-react"); const react_1 = __importDefault(require("react")); const createStandardCategory_1 = require("../../../../menus/categories/createStandardCategory"); const createStandardMenuItem_1 = require("../../../../menus/items/createStandardMenuItem"); const createFieldMenuItem_1 = require("../../../../menus/items/inputs/createFieldMenuItem"); const createBooleanSetting_1 = require("../../../../settings/inputs/createBooleanSetting"); const createNumberSetting_1 = require("../../../../settings/inputs/createNumberSetting"); const createSettingsFolder_1 = require("../../../../settings/inputs/createSettingsFolder"); const settingPatternMatcher_1 = require("../../../../settings/inputs/settingPatternMatcher"); const promptSelectExecuteHandler_1 = require("../../../../uiLayers/types/select/promptSelectExecuteHandler"); const constGetter_1 = require("../../../../utils/constGetter"); /** * The categories used for the menu folder */ exports.getMenuControlsFolderCategories = constGetter_1.constGetter(() => ({ cursor: createStandardCategory_1.createStandardCategory({ name: "Cursor" }), categories: createStandardCategory_1.createStandardCategory({ name: "Categories" }), })); /** * Creates a new settings folder with menu settings * @returns The created menu settings */ function createMenuSettingsFolder() { return createSettingsFolder_1.createSettingsFolder({ name: "Menu", children: { // Categories maxSearchMenuSize: createNumberSetting_1.createNumberSetting({ name: "Max number of search results", init: 200, min: 5, content: (react_1.default.createElement(react_1.default.Fragment, null, "The maximum number of items to show when performing a search.")), category: exports.getMenuControlsFolderCategories().categories, }), maxMenuSize: createNumberSetting_1.createNumberSetting({ name: "Max number of menu items", init: 200, min: 5, content: (react_1.default.createElement(react_1.default.Fragment, null, "The maximum number of items to show in a menu, excluding the search menu.")), category: exports.getMenuControlsFolderCategories().categories, }), categoryOrder: createCategorySortingSetting({ name: "Category sort item", content: react_1.default.createElement(react_1.default.Fragment, null, "What item sorting the categories in the menu is based on."), category: exports.getMenuControlsFolderCategories().categories, }), showCategories: createBooleanSetting_1.createBooleanSetting({ name: "Show categories", init: true, content: react_1.default.createElement(react_1.default.Fragment, null, "Whether to show the category labels in the menu."), category: exports.getMenuControlsFolderCategories().categories, }), // Cursor scrollSpeed: createNumberSetting_1.createNumberSetting({ name: "Cursor scroll speed", init: 70, min: 0, content: (react_1.default.createElement(react_1.default.Fragment, null, "The duration in milliseconds it takes to scroll to the newly selected item.")), category: exports.getMenuControlsFolderCategories().cursor, }), scrollWrapSpeed: createNumberSetting_1.createNumberSetting({ name: "Cursor wrap scroll speed", init: 200, min: 0, content: (react_1.default.createElement(react_1.default.Fragment, null, "The duration in milliseconds it takes to scroll to the newly selected item, when switching between the first and last item of the menu.")), category: exports.getMenuControlsFolderCategories().cursor, }), scrollPadding: createNumberSetting_1.createNumberSetting({ name: "Cursor scroll margin", init: 50, min: 0, content: (react_1.default.createElement(react_1.default.Fragment, null, "The number of pixels that must be above and below the cursor. Essentially determines at which point the menu decides to start scrolling.")), category: exports.getMenuControlsFolderCategories().cursor, }), }, }); } exports.createMenuSettingsFolder = createMenuSettingsFolder; /** * Creates a setting with choices for item sorting * @param data The config * @returns The created menu item and field */ function createCategorySortingSetting({ name, content, category, }) { return createFieldMenuItem_1.createFieldMenuItem({ init: "first", data: field => ({ name, valueView: react_1.default.createElement(model_react_1.Loader, null, h => field.get(h).toString()), actionBindings: [ promptSelectExecuteHandler_1.promptSelectExecuteHandler.createBinding({ field, undoable: true, liveUpdate: false, options: ["first", "middle", "last"], createOptionView: v => createStandardMenuItem_1.createStandardMenuItem({ name: v.toString() }), }), ], content, tags: h => ["field", field.get(h).toString()], resetable: true, resetUndoable: true, searchPattern: settingPatternMatcher_1.settingPatternMatcher, category, }), }); } exports.createCategorySortingSetting = createCategorySortingSetting; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTWVudVNldHRpbmdzRm9sZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NldHRpbmdzL2Jhc2VTZXR0aW5ncy9nZW5lcmFsL2NyZWF0ZU1lbnVTZXR0aW5nc0ZvbGRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQW1DO0FBQ25DLGtEQUEwQjtBQUUxQixnR0FBMkY7QUFDM0YsMkZBQXNGO0FBQ3RGLDRGQUF1RjtBQUN2RiwyRkFBc0Y7QUFDdEYseUZBQW9GO0FBQ3BGLDJGQUFzRjtBQUN0Riw2RkFBd0Y7QUFDeEYsNkdBQXdHO0FBRXhHLCtEQUEwRDtBQUUxRDs7R0FFRztBQUNVLFFBQUEsK0JBQStCLEdBQUcseUJBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE1BQU0sRUFBRSwrQ0FBc0IsQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUMsQ0FBQztJQUNoRCxVQUFVLEVBQUUsK0NBQXNCLENBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFDLENBQUM7Q0FDM0QsQ0FBQyxDQUFDLENBQUM7QUFFSjs7O0dBR0c7QUFDSCxTQUFnQix3QkFBd0I7SUFDcEMsT0FBTywyQ0FBb0IsQ0FBQztRQUN4QixJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRTtZQUNOLGFBQWE7WUFDYixpQkFBaUIsRUFBRSx5Q0FBbUIsQ0FBQztnQkFDbkMsSUFBSSxFQUFFLDhCQUE4QjtnQkFDcEMsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsR0FBRyxFQUFFLENBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQ0wsOEhBQWtFLENBQ3JFO2dCQUNELFFBQVEsRUFBRSx1Q0FBK0IsRUFBRSxDQUFDLFVBQVU7YUFDekQsQ0FBQztZQUNGLFdBQVcsRUFBRSx5Q0FBbUIsQ0FBQztnQkFDN0IsSUFBSSxFQUFFLDBCQUEwQjtnQkFDaEMsSUFBSSxFQUFFLEdBQUc7Z0JBQ1Qs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