import { ToolRepository } from "../../Tools";
import { HideMC, HideTC } from "../Controllers";
import { makeSerializeHideableObjects, makeTryHideWithPickUC } from "../UCs";
export function setupHideable(appObjects, options) {
    const ao = appObjects.getOrCreate("Hideable");
    // UCs
    makeTryHideWithPickUC(ao);
    if (options?.skipSerializer !== true) {
        makeSerializeHideableObjects(ao);
    }
    // Controllers
    new HideMC(ao);
    new HideTC(ao);
    if (options?.skipSetupTool !== true) {
        // Setup Tool
        const toolRepo = 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