UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

75 lines 7.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createHomeContentSetting = void 0; const react_1 = __importDefault(require("react")); const model_react_1 = require("model-react"); const settingPatternMatcher_1 = require("../../../../../settings/inputs/settingPatternMatcher"); const createFieldMenuItem_1 = require("../../../../../menus/items/inputs/createFieldMenuItem"); const promptSelectExecuteHandler_1 = require("../../../../../uiLayers/types/select/promptSelectExecuteHandler"); /** * Creates a new content setting menu item * @param initOptions The initial content options, should contain at least 1 default option * @returns The menu item and home content setting */ function createHomeContentSetting(initOptions) { const options = new model_react_1.Field(initOptions); const value = new model_react_1.Field(initOptions[0]); return { ...createFieldMenuItem_1.createFieldMenuItem({ field: { setSerialized: (v) => { const currentOptions = options.get(); value.set(currentOptions.find(item => item.ID == v) || currentOptions[0]); }, getSerialized: (hook) => { var _a, _b; const currentValue = value.get(hook); const currentOptions = options.get(hook); return (((_a = currentOptions.find(item => item == currentValue)) === null || _a === void 0 ? void 0 : _a.ID) || ((_b = currentOptions[0]) === null || _b === void 0 ? void 0 : _b.ID) || "unknown"); }, set: (data) => { const option = options.get().find(item => item.ID == data.ID); if (option) value.set(option); }, get: (hook) => value.get(hook), }, data: field => ({ name: "Home content", resetUndoable: true, icon: "settings", searchPattern: settingPatternMatcher_1.settingPatternMatcher, resetable: true, valueView: react_1.default.createElement(model_react_1.Loader, null, h => field.get(h).ID), actionBindings: [ promptSelectExecuteHandler_1.promptSelectExecuteHandler.createBinding({ subscribableData: h => ({ field, options: options.get(h), createOptionView: v => v.view, }), }), ], }), }), addOption: option => { const current = options.get(); if (!current.find(({ ID }) => ID == option.ID)) options.set([...current, option]); }, removeOption: option => { const optionID = typeof option == "object" ? option.ID : option; const current = options.get(); const index = current.findIndex(({ ID }) => ID == optionID); if (index != -1) options.set([...current.slice(0, index), ...current.slice(index + 1)]); }, getOptions: hook => options.get(hook), }; } exports.createHomeContentSetting = createHomeContentSetting; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlSG9tZUNvbnRlbnRTZXR0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3NldHRpbmdzL2Jhc2VTZXR0aW5ncy9nZW5lcmFsL2NvbnRlbnQvY3JlYXRlSG9tZUNvbnRlbnRTZXR0aW5nLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsNkNBQXFEO0FBS3JELGdHQUEyRjtBQUMzRiwrRkFBMEY7QUFDMUYsZ0hBQTJHO0FBRTNHOzs7O0dBSUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FDcEMsV0FBMkQ7SUFFM0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBSyxDQUFDLFdBQW1DLENBQUMsQ0FBQztJQUMvRCxNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBdUIsQ0FBQyxDQUFDO0lBRTlELE9BQU87UUFDSCxHQUFHLHlDQUFtQixDQUE0QjtZQUM5QyxLQUFLLEVBQUU7Z0JBQ0gsYUFBYSxFQUFFLENBQUMsQ0FBUSxFQUFFLEVBQUU7b0JBQ3hCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDckMsS0FBSyxDQUFDLEdBQUcsQ0FDTCxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQ2pFLENBQUM7Z0JBQ04sQ0FBQztnQkFDRCxhQUFhLEVBQUUsQ0FBQyxJQUFnQixFQUFFLEVBQUU7O29CQUNoQyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNyQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN6QyxPQUFPLENBQ0gsT0FBQSxjQUFjLENBQUMs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