"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupHideable = setupHideable;
const Tools_1 = require("../../Tools");
const Controllers_1 = require("../Controllers");
const UCs_1 = require("../UCs");
function setupHideable(appObjects, options) {
    const ao = appObjects.getOrCreate("Hideable");
    // UCs
    (0, UCs_1.makeTryHideWithPickUC)(ao);
    if (options?.skipSerializer !== true) {
        (0, UCs_1.makeSerializeHideableObjects)(ao);
    }
    // Controllers
    new Controllers_1.HideMC(ao);
    new Controllers_1.HideTC(ao);
    if (options?.skipSetupTool !== true) {
        // Setup Tool
        const toolRepo = Tools_1.ToolRepository.get(appObjects);
        if (!toolRepo) {
            appObjects.submitWarning("setupHideable", "Unable to find tool repo");
            return ao;
        }
        toolRepo.makeToolFromData({
            toolType: "HIDE",
            isDefault: false,
            label: "Hide",
            shortcutLabel: "h",
            hotkeys: [{ keyCode: "KeyH" }],
        });
    }
    return ao;
}
//# sourceMappingURL=setupHideable.js.map