@launchmenu/core
Version:
An environment for visual keyboard controlled applets
204 lines • 19.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFieldControlsSettingsFolder = exports.getFieldControlsFolderCategories = void 0;
const createStandardCategory_1 = require("../../../../menus/categories/createStandardCategory");
const KeyPattern_1 = require("../../../../keyHandler/KeyPattern");
const createKeyPatternSetting_1 = require("../../../../settings/inputs/createKeyPatternSetting");
const createSettingsFolder_1 = require("../../../../settings/inputs/createSettingsFolder");
const constGetter_1 = require("../../../../utils/constGetter");
const cmdModifier_1 = require("../../../../utils/platform/cmdModifier");
const wordJumpModifier_1 = require("../../../../utils/platform/wordJumpModifier");
/**
* The categories used for the field folder
*/
exports.getFieldControlsFolderCategories = constGetter_1.constGetter(() => ({
jumps: createStandardCategory_1.createStandardCategory({ name: "Cursor jumps" }),
clipboard: createStandardCategory_1.createStandardCategory({ name: "Clipboard interaction" }),
textNavigation: createStandardCategory_1.createStandardCategory({ name: "Text navigation" }),
insertDelete: createStandardCategory_1.createStandardCategory({ name: "Text insertion and deletion" }),
meta: createStandardCategory_1.createStandardCategory({ name: "Meta controls" }),
}));
/**
* Creates a new settings folder with field controls settings
* @returns The created field controls folder
*/
function createFieldControlsSettingsFolder() {
return createSettingsFolder_1.createSettingsFolder({
name: "Field controls",
children: {
// clipboard
copy: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Copy text",
init: new KeyPattern_1.KeyPattern(`${cmdModifier_1.cmdModifier}+c`),
category: exports.getFieldControlsFolderCategories().clipboard,
tags: ["text", "input"],
}),
paste: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Paste text",
init: new KeyPattern_1.KeyPattern(`${cmdModifier_1.cmdModifier}+v`),
category: exports.getFieldControlsFolderCategories().clipboard,
tags: ["text", "input"],
}),
cut: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Cut text",
init: new KeyPattern_1.KeyPattern(`${cmdModifier_1.cmdModifier}+x`),
category: exports.getFieldControlsFolderCategories().clipboard,
tags: ["text", "input"],
}),
// Jumps
home: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Move caret to start of line",
init: new KeyPattern_1.KeyPattern([
{ pattern: "home", type: "down", allowExtra: ["shift"] },
]),
category: exports.getFieldControlsFolderCategories().jumps,
tags: ["text", "input", "caret", "cursor"],
}),
end: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Move caret to end of line",
init: new KeyPattern_1.KeyPattern([
{ pattern: "end", type: "down", allowExtra: ["shift"] },
]),
category: exports.getFieldControlsFolderCategories().jumps,
tags: ["text", "input", "caret", "cursor"],
}),
selectAll: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Select all text",
init: new KeyPattern_1.KeyPattern(`${cmdModifier_1.cmdModifier}+a`),
category: exports.getFieldControlsFolderCategories().jumps,
tags: ["text", "input"],
}),
jumpWordLeft: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Move caret a word left",
init: new KeyPattern_1.KeyPattern([
{
pattern: `${wordJumpModifier_1.wordJumpModifier}+left`,
type: "down or repeat",
allowExtra: ["shift"],
},
]),
category: exports.getFieldControlsFolderCategories().jumps,
tags: ["text", "input", "caret", "cursor"],
}),
jumpWordRight: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Move caret a word right",
init: new KeyPattern_1.KeyPattern([
{
pattern: `${wordJumpModifier_1.wordJumpModifier}+right`,
type: "down or repeat",
allowExtra: ["shift"],
},
]),
category: exports.getFieldControlsFolderCategories().jumps,
tags: ["text", "input", "caret", "cursor"],
}),
// Text navigation
left: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Move caret left",
init: new KeyPattern_1.KeyPattern([
{ pattern: ["left"], type: "down or repeat", allowExtra: ["shift"] },
]),
category: exports.getFieldControlsFolderCategories().textNavigation,
tags: ["text", "input", "caret", "cursor"],
}),
right: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Move caret right",
init: new KeyPattern_1.KeyPattern([
{ pattern: ["right"], type: "down or repeat", allowExtra: ["shift"] },
]),
category: exports.getFieldControlsFolderCategories().textNavigation,
tags: ["text", "input", "caret", "cursor"],
}),
up: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Move caret up",
description: "Unused in single line text fields",
init: new KeyPattern_1.KeyPattern([
{ pattern: ["up"], type: "down or repeat", allowExtra: ["shift"] },
]),
category: exports.getFieldControlsFolderCategories().textNavigation,
tags: ["text", "input", "caret", "cursor"],
}),
down: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Move caret down",
description: "Unused in single line text fields",
init: new KeyPattern_1.KeyPattern([
{ pattern: ["down"], type: "down or repeat", allowExtra: ["shift"] },
]),
category: exports.getFieldControlsFolderCategories().textNavigation,
tags: ["text", "input", "caret", "cursor"],
}),
expandSelection: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Expand selection",
description: "Only the pattern is used, not the event type",
init: new KeyPattern_1.KeyPattern("shift"),
category: exports.getFieldControlsFolderCategories().textNavigation,
tags: ["text", "input"],
}),
// Text insertion and deletion
backspace: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Remove character before caret",
init: new KeyPattern_1.KeyPattern([
{
pattern: ["backspace"],
type: "down or repeat",
allowExtra: ["shift"],
},
]),
category: exports.getFieldControlsFolderCategories().insertDelete,
tags: ["text", "input"],
}),
delete: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Remove character after caret",
init: new KeyPattern_1.KeyPattern([
{ pattern: ["delete"], type: "down or repeat", allowExtra: ["shift"] },
]),
category: exports.getFieldControlsFolderCategories().insertDelete,
tags: ["text", "input"],
}),
insertLine: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Insert a new line",
description: "Unused in single line text fields",
init: new KeyPattern_1.KeyPattern([
{ pattern: ["enter"], type: "down or repeat", allowExtra: ["shift"] },
]),
category: exports.getFieldControlsFolderCategories().insertDelete,
tags: ["text", "input"],
}),
indent: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Inserts an indentation",
description: "Unused in single line text fields",
init: new KeyPattern_1.KeyPattern([{ pattern: ["tab"], type: "down or repeat" }]),
category: exports.getFieldControlsFolderCategories().insertDelete,
tags: ["text", "input"],
}),
dedent: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Removes an indentation",
description: "Unused in single line text fields",
init: new KeyPattern_1.KeyPattern([
{ pattern: ["shift", "tab"], type: "down or repeat" },
]),
category: exports.getFieldControlsFolderCategories().insertDelete,
tags: ["text", "input"],
}),
// Meta controls
undo: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Undo text",
init: new KeyPattern_1.KeyPattern([
{ pattern: [cmdModifier_1.cmdModifier, "z"], type: "down or repeat" },
]),
category: exports.getFieldControlsFolderCategories().meta,
tags: ["text", "input"],
}),
redo: createKeyPatternSetting_1.createKeyPatternSetting({
name: "Redo text",
init: new KeyPattern_1.KeyPattern([
{ pattern: [cmdModifier_1.cmdModifier, "y"], type: "down or repeat" },
]),
category: exports.getFieldControlsFolderCategories().meta,
tags: ["text", "input"],
}),
},
});
}
exports.createFieldControlsSettingsFolder = createFieldControlsSettingsFolder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRmllbGRDb250cm9sc1NldHRpbmdzRm9sZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NldHRpbmdzL2Jhc2VTZXR0aW5ncy9jb250cm9scy9jcmVhdGVGaWVsZENvbnRyb2xzU2V0dGluZ3NGb2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0dBQTJGO0FBQzNGLGtFQUE2RDtBQUM3RCxpR0FBNEY7QUFDNUYsMkZBQXNGO0FBQ3RGLCtEQUEwRDtBQUMxRCx3RUFBbUU7QUFDbkUsa0ZBQTZFO0FBRTdFOztHQUVHO0FBQ1UsUUFBQSxnQ0FBZ0MsR0FBRyx5QkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDL0QsS0FBSyxFQUFFLCtDQUFzQixDQUFDLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBQyxDQUFDO0lBQ3JELFNBQVMsRUFBRSwrQ0FBc0IsQ0FBQyxFQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBQyxDQUFDO0lBQ2xFLGNBQWMsRUFBRSwrQ0FBc0IsQ0FBQyxFQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBQyxDQUFDO0lBQ2pFLFlBQVksRUFBRSwrQ0FBc0IsQ0FBQyxFQUFDLElBQUksRUFBRSw2QkFBNkIsRUFBQyxDQUFDO0lBQzNFLElBQUksRUFBRSwrQ0FBc0IsQ0FBQyxFQUFDLElBQUksRUFBRSxlQUFlLEVBQUMsQ0FBQztDQUN4RCxDQUFDLENBQUMsQ0FBQztBQUVKOzs7R0FHRztBQUNILFNBQWdCLGlDQUFpQztJQUM3QyxPQUFPLDJDQUFvQixDQUFDO1FBQ3hCLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsUUFBUSxFQUFFO1lBQ04sWUFBWTtZQUNaLElBQUksRUFBRSxpREFBdUIsQ0FBQztnQkFDMUIsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLHVCQUFVLENBQUMsR0FBRyx5QkFBVyxJQUFJLENBQUM7Z0JBQ3hDLFFB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