alm
Version:
The best IDE for TypeScript
119 lines (118 loc) • 4.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Does the mapping between urls to different tabs
* Anything about tabs that needs to change based on tab protocol should go here
*/
var utils = require("../../../common/utils");
/** Various tabs */
var codeTab_1 = require("./codeTab");
var astView_1 = require("./astView");
var dependencyView_1 = require("./dependencyView");
var findAndReplaceMulti_1 = require("./findAndReplaceMulti");
var documentationView_1 = require("./documentationView");
var umlView_1 = require("./umlView");
var tsFlowView_1 = require("./tsFlowView");
var testedView_1 = require("./testedView");
var liveDemoView_1 = require("./liveDemoView");
var liveDemoReactView_1 = require("./liveDemoReactView");
/**
* Tabs get to choose how much they want to integrate with search
*/
var TabSearchSupport;
(function (TabSearchSupport) {
TabSearchSupport[TabSearchSupport["None"] = 0] = "None";
TabSearchSupport[TabSearchSupport["Basic"] = 1] = "Basic";
TabSearchSupport[TabSearchSupport["Advanced"] = 2] = "Advanced";
})(TabSearchSupport = exports.TabSearchSupport || (exports.TabSearchSupport = {}));
exports.tabs = {
file: {
protocol: 'file',
searchSupport: TabSearchSupport.Advanced,
getTitle: utils.getFileName,
component: codeTab_1.Code,
},
ast: {
protocol: 'ast',
searchSupport: TabSearchSupport.None,
getTitle: function (url) { return "AST " + utils.getFileName(url); },
component: astView_1.ASTView,
},
astfull: {
protocol: 'astfull',
searchSupport: TabSearchSupport.None,
getTitle: function (url) { return "AST Full " + utils.getFileName(url); },
component: astView_1.ASTView,
},
dependency: {
protocol: 'dependency',
searchSupport: TabSearchSupport.Basic,
getTitle: function () { return 'Dependency View'; },
component: dependencyView_1.DependencyView,
},
farm: {
protocol: 'farm',
searchSupport: TabSearchSupport.None,
getTitle: function (url) { return "Find In Project"; },
component: findAndReplaceMulti_1.FindAndReplaceView,
},
documentation: {
protocol: 'documentation',
searchSupport: TabSearchSupport.Basic,
getTitle: function (url) { return "Documentation"; },
component: documentationView_1.DocumentationView,
},
uml: {
protocol: 'uml',
searchSupport: TabSearchSupport.None,
getTitle: function (url) { return "UML " + utils.getFileName(url); },
component: umlView_1.UmlView,
},
tsflow: {
protocol: 'tsflow',
searchSupport: TabSearchSupport.None,
getTitle: function (url) { return "TSFlow " + utils.getFileName(url); },
component: tsFlowView_1.TsFlowView,
},
tested: {
protocol: 'tested',
searchSupport: TabSearchSupport.None,
getTitle: function (url) { return "Tests"; },
component: testedView_1.TestedView,
},
livedemo: {
protocol: 'livedemo',
searchSupport: TabSearchSupport.None,
getTitle: function () { return 'Live Demo'; },
component: liveDemoView_1.LiveDemoView
},
livedemoreact: {
protocol: 'livedemoreact',
searchSupport: TabSearchSupport.None,
getTitle: function () { return 'Live Demo React'; },
component: liveDemoReactView_1.LiveDemoReactView
}
};
var _ensuretabsType = exports.tabs;
function getTabConfigs() {
return Object.keys(exports.tabs).map(function (protocol) { return ({ protocol: protocol, config: exports.tabs[protocol] }); });
}
exports.getTabConfigs = getTabConfigs;
function getComponentByUrl(url) {
var protocol = utils.getFilePathAndProtocolFromUrl(url).protocol;
var tab = exports.tabs[protocol];
if (tab)
return tab.component;
var error = 'Unknown protocol: ' + protocol;
throw new Error(error);
}
exports.getComponentByUrl = getComponentByUrl;
function getTabConfigByUrl(url) {
var protocol = utils.getFilePathAndProtocolFromUrl(url).protocol;
var tab = exports.tabs[protocol];
if (tab)
return tab;
var error = 'Unknown protocol: ' + protocol;
throw new Error(error);
}
exports.getTabConfigByUrl = getTabConfigByUrl;