"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupSelection = setupSelection;
const Controller_1 = require("../Controller");
const Entities_1 = require("../Entities");
const PM_1 = require("../PM");
const UC_1 = require("../UC");
function setupSelection(appObjects) {
    const appObj = appObjects.getOrCreate("Selection");
    // Entities
    (0, Entities_1.makeSelection)(appObj);
    // UCs
    new UC_1.ClearSelectionUCHook(appObj);
    (0, UC_1.makeHoverAppObject)(appObj);
    (0, UC_1.makePressAppObject)(appObj);
    (0, UC_1.makeSelectAppObject)(appObj);
    // PMs
    (0, PM_1.makeSelectedObjectPM)(appObj);
    // Controllers
    new Controller_1.MouseHoverOnAppObject(appObj);
    new Controller_1.MousePressOnAppObject(appObj);
    new Controller_1.TouchPressOnAppObject(appObj);
    new Controller_1.MouseSelectAppObject(appObj);
    new Controller_1.TapToSelectAppObject(appObj);
    new Controller_1.KeyboardToClearSelection(appObj);
    return appObj;
}
//# sourceMappingURL=setupSelection.js.map