@launchmenu/core
Version:
An environment for visual keyboard controlled applets
75 lines • 7.16 kB
JavaScript
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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
;