{
    "name": "Search",
    "description": "Allows the user to search through the file tree.",
    "extensions": {
        "constants": [
            {
                "key": "GENERIC_SEARCH_ROOTS",
                "value": [ "ROOT" ],
                "priority": "fallback"
            }
        ],
        "controllers": [
            {
                "key": "SearchController",
                "implementation": "controllers/SearchController.js",
                "depends": [ "$scope", "searchService" ]
            },
            {
                "key": "SearchMenuController",
                "implementation": "controllers/SearchMenuController.js",
                "depends": [ "$scope", "types[]" ]
            },
            {
                "key": "ClickAwayController",
                "implementation": "controllers/ClickAwayController.js",
                "depends": [ "$scope", "$document" ]
            }
        ],
        "representations": [
            {
                "key": "search",
                "templateUrl": "templates/search.html"
            },
            {
                "key": "search-menu",
                "templateUrl": "templates/search-menu.html"
            },
            {
                "key": "search-item",
                "templateUrl": "templates/search-item.html"
            }
        ],
        "components": [
            {
                "provides": "searchService",
                "type": "provider",
                "implementation": "services/GenericSearchProvider.js",
                "depends": [
                    "$q",
                    "throttle",
                    "objectService",
                    "workerService",
                    "topic",
                    "GENERIC_SEARCH_ROOTS"
                ]
            },
            {
                "provides": "searchService",
                "type": "aggregator",
                "implementation": "services/SearchAggregator.js",
                "depends": [ "$q" ]
            }
        ],
        "workers": [
            {
                "key": "genericSearchWorker",
                "scriptUrl": "services/GenericSearchWorker.js"
            }
        ]
    }
}