diff --git a/scripts/docs/templates/common.template.html b/scripts/docs/templates/common.template.html
index 75ce72393..34b73db93 100644
--- a/scripts/docs/templates/common.template.html
+++ b/scripts/docs/templates/common.template.html
@@ -178,10 +178,38 @@ Improve this doc
<@ endif @>
+<@- if doc.statics.length -@>
+
Static Methods
+<@- for method in doc.statics @><@ if not method.internal @>
+
+<$ functionSyntax(method) $>
+
+<$ method.description $>
+
+<@ if method.params @>
+<$ paramTable(method.params) $>
+<@ endif @>
+
+<@ if method.this @>
+ Method's `this`
+<$ method.this $>
+
+<@ endif @>
+
+<@ if method.returns @>
+
+
+Returns: <$ typeInfo(method.returns) $>
+
+<@ endif @>
+<@ endif @>
+<@ endfor -@>
+<@ endif @>
+
<@- if doc.members and doc.members.length @>
-Methods
+Instance Methods
<@- for method in doc.members @>
diff --git a/scripts/docs/typescript-package/index.js b/scripts/docs/typescript-package/index.js
index 4c7046bc5..876c08085 100755
--- a/scripts/docs/typescript-package/index.js
+++ b/scripts/docs/typescript-package/index.js
@@ -12,6 +12,7 @@ module.exports = new Package('typescript-parsing', [basePackage])
.factory(require('./services/tsParser/getFileInfo'))
.factory(require('./services/tsParser/getExportDocType'))
.factory(require('./services/tsParser/getContent'))
+.factory(require('./services/tsParser/getDirectiveInfo'))
.factory(require('./services/convertPrivateClassesToInterfaces'))
diff --git a/scripts/docs/typescript-package/processors/readTypeScriptModules.js b/scripts/docs/typescript-package/processors/readTypeScriptModules.js
index 3739b7b33..aa80c7a15 100755
--- a/scripts/docs/typescript-package/processors/readTypeScriptModules.js
+++ b/scripts/docs/typescript-package/processors/readTypeScriptModules.js
@@ -4,7 +4,9 @@ var _ = require('lodash');
var ts = require('typescript');
module.exports = function readTypeScriptModules(tsParser, modules, getFileInfo,
- getExportDocType, getContent, createDocMessage, log) {
+ getDirectiveInfo,
+ getExportDocType, getContent,
+ createDocMessage, log) {
return {
$runAfter: ['files-read'],
@@ -132,8 +134,12 @@ module.exports = function readTypeScriptModules(tsParser, modules, getFileInfo,
if (a.name < b.name) return -1;
return 0;
});
+ exportDoc.statics.sort(function(a, b) {
+ if (a.name > b.name) return 1;
+ if (a.name < b.name) return -1;
+ return 0;
+ });
}
-
});
});
}
@@ -212,7 +218,8 @@ module.exports = function readTypeScriptModules(tsParser, modules, getFileInfo,
moduleDoc: moduleDoc,
content: getContent(exportSymbol),
fileInfo: getFileInfo(exportSymbol, basePath),
- location: getLocation(exportSymbol)
+ location: getLocation(exportSymbol),
+ directiveInfo: getDirectiveInfo(exportSymbol)
};
if (exportDoc.docType === 'var' || exportDoc.docType === 'const' || exportDoc.docType === 'let') {
diff --git a/scripts/docs/typescript-package/services/tsParser/createCompilerHost.js b/scripts/docs/typescript-package/services/tsParser/createCompilerHost.js
index 9aaa67007..c9d3d368b 100755
--- a/scripts/docs/typescript-package/services/tsParser/createCompilerHost.js
+++ b/scripts/docs/typescript-package/services/tsParser/createCompilerHost.js
@@ -57,7 +57,7 @@ module.exports = function createCompilerHost(log) {
getNewLine: function() {
return ts.sys.newLine;
},
- fileExists: function (fileName) {
+ fileExists: function(fileName) {
var text, resolvedPath, resolvedPathWithExt;
// Strip off the extension and resolve relative to the baseDir
diff --git a/scripts/docs/typescript-package/services/tsParser/getDirectiveInfo.js b/scripts/docs/typescript-package/services/tsParser/getDirectiveInfo.js
new file mode 100644
index 000000000..ff536bea5
--- /dev/null
+++ b/scripts/docs/typescript-package/services/tsParser/getDirectiveInfo.js
@@ -0,0 +1,34 @@
+
+module.exports = function getDirectiveInfo() {
+
+ return function (symbol) {
+ var directiveInfo;
+ if (symbol.valueDeclaration) {
+ var decorators = symbol.valueDeclaration.decorators;
+ decorators && decorators.forEach(function(decorator){
+ try {
+ var expr = decorator.expression;
+ var type = expr.expression.text.match(/Component|Directive/);
+ if (type) {
+ // type is either Component or Directive
+ // properties are selector, inputs and outputs
+ directiveInfo = { type: type[0], properties: [] };
+
+ //Directive only takes one argument
+ expr.arguments[0].properties.forEach(function(prop){
+ var name = prop.name.text;
+ if (name === "selector") {
+ directiveInfo.properties.push({name: name, values: prop.initializer.text.split(",")});
+ }
+ if (name === "inputs" || name === "outputs") {
+ var values = prop.initializer.elements.map(function(e){ return e.text });
+ directiveInfo.properties.push({name: name, values: values });
+ }
+ });
+ }
+ } catch(e){}
+ });
+ }
+ return directiveInfo;
+ };
+};