├── .gitignore ├── LICENSE.md ├── README.md ├── angular-template ├── README.md ├── css │ ├── prettify-tomorrow.css │ ├── prettify.css │ └── site.css ├── docs │ ├── app.config.html │ ├── app.customCurrency.html │ ├── app.testService.html │ ├── css │ │ ├── prettify-tomorrow.css │ │ ├── prettify.css │ │ └── site.css │ ├── index.html │ ├── js │ │ ├── angular.min.js │ │ ├── prettify.js │ │ └── site.js │ ├── ngmap.Attr2Options.html │ ├── ngmap.MapController.html │ ├── ngmap.map.html │ ├── source │ │ ├── app.config.html │ │ ├── app.customCurrency.html │ │ ├── app.testService.html │ │ ├── ngmap.Attr2Options.html │ │ ├── ngmap.MapController.html │ │ └── ngmap.map.html │ ├── templates │ │ └── sample-codes_ngmap_test-template.html │ ├── tutorial-childA.html │ ├── tutorial-childB.html │ ├── tutorial-my-tutorial.html │ ├── tutorial-tutorial1.html │ └── tutorial-tutorial2.html ├── html │ ├── class.html │ ├── layout.html │ └── tutorial.html ├── js │ ├── angular.min.js │ ├── prettify.js │ └── site.js └── publish.js ├── common ├── conf.json ├── plugins │ └── ngdoc.js └── test_conf.json ├── default ├── README.md ├── css │ ├── jsdoc-default.css │ ├── prettify-tomorrow.css │ └── prettify.css ├── docs │ ├── app.config.html │ ├── app.customCurrency.html │ ├── app.testService.html │ ├── css │ │ ├── jsdoc-default.css │ │ ├── prettify-tomorrow.css │ │ └── prettify.css │ ├── fonts │ │ ├── OpenSans-Bold-webfont.eot │ │ ├── OpenSans-Bold-webfont.svg │ │ ├── OpenSans-Bold-webfont.woff │ │ ├── OpenSans-BoldItalic-webfont.eot │ │ ├── OpenSans-BoldItalic-webfont.svg │ │ ├── OpenSans-BoldItalic-webfont.woff │ │ ├── OpenSans-Italic-webfont.eot │ │ ├── OpenSans-Italic-webfont.svg │ │ ├── OpenSans-Italic-webfont.woff │ │ ├── OpenSans-Light-webfont.eot │ │ ├── OpenSans-Light-webfont.svg │ │ ├── OpenSans-Light-webfont.woff │ │ ├── OpenSans-LightItalic-webfont.eot │ │ ├── OpenSans-LightItalic-webfont.svg │ │ ├── OpenSans-LightItalic-webfont.woff │ │ ├── OpenSans-Regular-webfont.eot │ │ ├── OpenSans-Regular-webfont.svg │ │ └── OpenSans-Regular-webfont.woff │ ├── index.html │ ├── js │ │ └── prettify.js │ ├── ngmap.Attr2Options.html │ ├── ngmap.MapController.html │ ├── ngmap.map.html │ ├── source │ │ ├── app.config.html │ │ ├── app.customCurrency.html │ │ ├── app.testService.html │ │ ├── ngmap.Attr2Options.html │ │ ├── ngmap.MapController.html │ │ └── ngmap.map.html │ ├── tutorial-childA.html │ ├── tutorial-childB.html │ ├── tutorial-my-tutorial.html │ ├── tutorial-tutorial1.html │ └── tutorial-tutorial2.html ├── fonts │ ├── OpenSans-Bold-webfont.eot │ ├── OpenSans-Bold-webfont.svg │ ├── OpenSans-Bold-webfont.woff │ ├── OpenSans-BoldItalic-webfont.eot │ ├── OpenSans-BoldItalic-webfont.svg │ ├── OpenSans-BoldItalic-webfont.woff │ ├── OpenSans-Italic-webfont.eot │ ├── OpenSans-Italic-webfont.svg │ ├── OpenSans-Italic-webfont.woff │ ├── OpenSans-Light-webfont.eot │ ├── OpenSans-Light-webfont.svg │ ├── OpenSans-Light-webfont.woff │ ├── OpenSans-LightItalic-webfont.eot │ ├── OpenSans-LightItalic-webfont.svg │ ├── OpenSans-LightItalic-webfont.woff │ ├── OpenSans-Regular-webfont.eot │ ├── OpenSans-Regular-webfont.svg │ └── OpenSans-Regular-webfont.woff ├── html │ ├── class.html │ ├── layout.html │ └── tutorial.html ├── js │ └── prettify.js └── publish.js ├── gulpfile.js ├── index.js ├── package.json ├── sample-codes ├── README.md ├── app │ ├── config.js │ ├── custom-currency.js │ └── test-service.js ├── ngmap │ ├── attr2-options.js │ ├── map-controller.js │ ├── map.js │ └── test-template.html └── tutorials │ ├── all.json │ ├── childA.md │ ├── childB.md │ ├── my-tutorial.html │ ├── tutorial1.md │ └── tutorial2.md ├── test.js └── test.sh /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | nohup.out 3 | node_modules 4 | /tmp/ 5 | /out 6 | .idea/ 7 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2015 Allen Kim 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Angular-JSDoc 2 | ============= 3 | 4 | JSDoc 3 Template for AngularJS. 5 | A JSDoc plugin and template for AngularJS, nothing else! 6 | 7 | NOTE: the location of configure file and template directory has been moved with the release of 1.0.0 8 | Please make changes accordingly for your gulp file. 9 | 10 | - configure: Old: `node_modules/angular-jsdoc/conf.json` New: `node_modules/angular-jsdoc/common/conf.json` 11 | - template: Old: `node_modules/angular-jsdoc/template` New: `node_modules/angular-jsdoc/default` 12 | 13 | Blog: [Sigh, AngularJS Documentation](http://allenhwkim.tumblr.com/post/92161523693/sigh-angularjs-documentation) 14 | 15 | 16 | 17 | Features 18 | ---------- 19 | * Right side TOC, table of contents, for navigation by Directives, Services, Controllers, etc 20 | * Read and process @ngdoc tag 21 | 22 | How Does It Look Like? 23 | ------------------------ 24 | * [angularjs-google-maps Documentation](https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/docs/index.html) 25 | 26 | 27 | Install 28 | ------- 29 | 30 | $ npm install jsdoc angular-jsdoc --save-dev 31 | 32 | If you intend to use it with Grunt also execute: 33 | 34 | $ npm install grunt-jsdoc --save-dev 35 | 36 | Quick Start 37 | ----------- 38 | 39 | ### With Command Line 40 | 41 | // or you can run in command line 42 | $ node_modules/jsdoc/jsdoc.js \ 43 | --configure node_modules/angular-jsdoc/common/conf.json \ 44 | --template node_modules/angular-jsdoc/angular-template \ 45 | --destination build/docs \ 46 | --readme README.md \ 47 | --recurse directives services 48 | --tutorials tutorials 49 | 50 | ### Or, With Gulp 51 | 52 | var shell = require('gulp-shell'); 53 | gulp.task('docs', shell.task([ 54 | 'node_modules/jsdoc/jsdoc.js '+ 55 | '-c node_modules/angular-jsdoc/common/conf.json '+ // config file 56 | '-t node_modules/angular-jsdoc/angular-template '+ // template file 57 | '-d build/docs '+ // output directory 58 | './README.md ' + // to include README.md as index contents 59 | '-r directives services' + // source code directory 60 | '-u tutorials' // tutorials directory 61 | ])); 62 | 63 | ### Or, With Grunt 64 | 65 | grunt.initConfig({ 66 | jsdoc: { 67 | dist: { 68 | src: ['directives', 'services'], 69 | options: { 70 | destination: 'build/docs', 71 | configure: 'node_modules/angular-jsdoc/common/conf.json', 72 | template: 'node_modules/angular-jsdoc/angular-template', 73 | tutorial: 'tutorials', 74 | readme: './README.md' 75 | } 76 | } 77 | } 78 | }); 79 | 80 | 81 | Tags Available 82 | -------- 83 | - `@ngdoc` - specifies the type of thing being documented. See below for more detail. 84 | - `@scope` - specifies the type of scope used by documented directive. Options are `true` for a new inherited 85 | scope, `false` for shared scope, and either `{}` or `object` for isolate scope. if `@scope` is provided without 86 | a value, a new shared scope will be assumed 87 | - `@priority` - specifies the documented directive's priority 88 | - `@animations` - specifies the animations that the documented directive supports 89 | - `@restrict` - specifies how directives should be shown in the usage section. For example, for [E]lement, [A]ttribute, and [C]lass, use @restrict ECA 90 | - `@eventType emit|broadcast` - specifies whether the event is emitted or broadcast 91 | 92 | Example 93 | -------- 94 | 95 | - Directive: [map.js](sample-codes/ngmap/map.js) | 96 | [Output](https://rawgit.com/allenhwkim/angular-jsdoc/master/angular-template/docs/ngmap.map.html) 97 | - Service: [attr2-options.js](sample-codes/ngmap/attr2-options.js) | 98 | [Output](https://rawgit.com/allenhwkim/angular-jsdoc/master/angular-template/docs/ngmap.Attr2Options.html) 99 | - Controller: [map-controller.js](sample-codes/ngmap/map-controller.js) | 100 | [Output](https://rawgit.com/allenhwkim/angular-jsdoc/master/angular-template/docs/ngmap.MapController.html) 101 | - Filter: [custom-currency.js](sample-codes/app/custom-currency.js) | 102 | [Output](https://rawgit.com/allenhwkim/angular-jsdoc/master/angular-template/docs/app.customCurrency.html) 103 | 104 | Customization 105 | ------------- 106 | 107 | Currently, there are two templates built-in; 108 | 109 | - default 110 | - angular-template (Recommended) 111 | 112 | To add your own template, please copy the `angular-template` directory to your own, then, make your own css, js, and html files. 113 | Then, run the `jsdoc.js` command with your template. e.g., 114 | 115 | $ node_modules/jsdoc/jsdoc.js \ 116 | --configure node_modules/angular-jsdoc/common/conf.json \ 117 | --template node_modules/angular-jsdoc/my-template \ 118 | --destination build/docs \ 119 | --readme README.md \ 120 | --recurse directives services 121 | 122 | If you want to share your template with others, please send a pull request after adding your template directory where `angular-template` directory is. 123 | 124 | The following is the example of directory with explanation: 125 | 126 | my-template 127 | ├── css 128 | │   └── my.css # css used in layout.html 129 | ├── js 130 | │   └── my.js # javascript used in layout.html 131 | ├── fonts 132 | │   └── my.woff # font used in layout.html 133 | ├── html 134 | │   ├── class.html # template used by layout.html 135 | │   └── layout.html # layout file 136 | └── publish.js # the main file that generate jsdoc 137 | 138 | 139 | Currently the default angular-template does not come with custom fonts. If you would like to use a template like angular-template but with custom fonts, change the `copyStaticFiles` method in your publish.js: 140 | 141 | __angular-template/publish.js__ 142 | ```js 143 | // copy the template's static files to outdir 144 | var copyStaticFiles = function() { 145 | ['css', 'js'].forEach(function(dirName) { 146 | var fromDir = path.join(templatePath, dirName); 147 | var staticFiles = fs.ls(fromDir, 3); 148 | 149 | staticFiles.forEach(function(fileName) { 150 | var toDir = fs.toDir( fileName.replace(fromDir, path.join(outdir, dirName)) ); 151 | fs.mkPath(toDir); 152 | fs.copyFileSync(fileName, toDir); 153 | }); 154 | }); 155 | }; 156 | ``` 157 | 158 | to: 159 | 160 | __my-template/publish.js__ 161 | ```js 162 | // copy the template's static files to outdir 163 | var copyStaticFiles = function() { 164 | ['css', 'js', 'fonts'].forEach(function(dirName) { 165 | var fromDir = path.join(templatePath, dirName); 166 | var staticFiles = fs.ls(fromDir, 3); 167 | 168 | staticFiles.forEach(function(fileName) { 169 | var toDir = fs.toDir( fileName.replace(fromDir, path.join(outdir, dirName)) ); 170 | fs.mkPath(toDir); 171 | fs.copyFileSync(fileName, toDir); 172 | }); 173 | }); 174 | }; 175 | ``` 176 | 177 | Copyright 178 | -------- 179 | MIT licence 180 | -------------------------------------------------------------------------------- /angular-template/README.md: -------------------------------------------------------------------------------- 1 | Angular Template 2 | ---------------- 3 | 4 | This template is written in `angular-template`, and it is used when template name is given `angular-template` as an option. 5 | 6 | To generate with this template, set template option to `node_modules/angular-jsdoc/angular-template`. e.g.; 7 | 8 | $ node_modules/jsdoc/jsdoc.js \ 9 | --configure node_modules/angular-jsdoc/common/conf.json \ 10 | --template node_modules/angular-jsdoc/angular-template \ 11 | --destination build/docs \ 12 | --readme README.md \ 13 | --recurse directives services 14 | 15 | Files 16 | 17 | angular-template 18 | ├── css # css used in layout.html 19 | ├── js # javascript used in layout.html 20 | ├── html 21 | │   ├── class.html # class layout written in angular-template 22 | │   └── layout.html # layout written in angular-template 23 | └── publish.js # the main file that generate jsdoc 24 | -------------------------------------------------------------------------------- /angular-template/css/prettify-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | /* plain text */ 6 | .pln { 7 | color: #4d4d4c; } 8 | 9 | @media screen { 10 | /* string content */ 11 | .str { 12 | color: #718c00; } 13 | 14 | /* a keyword */ 15 | .kwd { 16 | color: #8959a8; } 17 | 18 | /* a comment */ 19 | .com { 20 | color: #8e908c; } 21 | 22 | /* a type name */ 23 | .typ { 24 | color: #4271ae; } 25 | 26 | /* a literal value */ 27 | .lit { 28 | color: #f5871f; } 29 | 30 | /* punctuation */ 31 | .pun { 32 | color: #4d4d4c; } 33 | 34 | /* lisp open bracket */ 35 | .opn { 36 | color: #4d4d4c; } 37 | 38 | /* lisp close bracket */ 39 | .clo { 40 | color: #4d4d4c; } 41 | 42 | /* a markup tag name */ 43 | .tag { 44 | color: #c82829; } 45 | 46 | /* a markup attribute name */ 47 | .atn { 48 | color: #f5871f; } 49 | 50 | /* a markup attribute value */ 51 | .atv { 52 | color: #3e999f; } 53 | 54 | /* a declaration */ 55 | .dec { 56 | color: #f5871f; } 57 | 58 | /* a variable name */ 59 | .var { 60 | color: #c82829; } 61 | 62 | /* a function name */ 63 | .fun { 64 | color: #4271ae; } } 65 | /* Use higher contrast and text-weight for printable form. */ 66 | @media print, projection { 67 | .str { 68 | color: #060; } 69 | 70 | .kwd { 71 | color: #006; 72 | font-weight: bold; } 73 | 74 | .com { 75 | color: #600; 76 | font-style: italic; } 77 | 78 | .typ { 79 | color: #404; 80 | font-weight: bold; } 81 | 82 | .lit { 83 | color: #044; } 84 | 85 | .pun, .opn, .clo { 86 | color: #440; } 87 | 88 | .tag { 89 | color: #006; 90 | font-weight: bold; } 91 | 92 | .atn { 93 | color: #404; } 94 | 95 | .atv { 96 | color: #060; } } 97 | /* Style */ 98 | /* 99 | pre.prettyprint { 100 | background: white; 101 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 102 | font-size: 12px; 103 | line-height: 1.5; 104 | border: 1px solid #ccc; 105 | padding: 10px; } 106 | */ 107 | 108 | /* Specify class=linenums on a pre to get line numbering */ 109 | ol.linenums { 110 | margin-top: 0; 111 | margin-bottom: 0; } 112 | 113 | /* IE indents via margin-left */ 114 | li.L0, 115 | li.L1, 116 | li.L2, 117 | li.L3, 118 | li.L4, 119 | li.L5, 120 | li.L6, 121 | li.L7, 122 | li.L8, 123 | li.L9 { 124 | /* */ } 125 | 126 | /* Alternate shading for lines */ 127 | li.L1, 128 | li.L3, 129 | li.L5, 130 | li.L7, 131 | li.L9 { 132 | /* */ } 133 | 134 | -------------------------------------------------------------------------------- /angular-template/css/prettify.css: -------------------------------------------------------------------------------- 1 | /* Pretty printing styles. Used with prettify.js. */ 2 | 3 | /* SPAN elements with the classes below are added by prettyprint. */ 4 | .pln { color: #000 } /* plain text */ 5 | 6 | @media screen { 7 | .str { color: #080 } /* string content */ 8 | .kwd { color: #008 } /* a keyword */ 9 | .com { color: #800 } /* a comment */ 10 | .typ { color: #606 } /* a type name */ 11 | .lit { color: #066 } /* a literal value */ 12 | /* punctuation, lisp open bracket, lisp close bracket */ 13 | .pun, .opn, .clo { color: #660 } 14 | .tag { color: #008 } /* a markup tag name */ 15 | .atn { color: #606 } /* a markup attribute name */ 16 | .atv { color: #080 } /* a markup attribute value */ 17 | .dec, .var { color: #606 } /* a declaration; a variable name */ 18 | .fun { color: red } /* a function name */ 19 | } 20 | 21 | /* Use higher contrast and text-weight for printable form. */ 22 | @media print, projection { 23 | .str { color: #060 } 24 | .kwd { color: #006; font-weight: bold } 25 | .com { color: #600; font-style: italic } 26 | .typ { color: #404; font-weight: bold } 27 | .lit { color: #044 } 28 | .pun, .opn, .clo { color: #440 } 29 | .tag { color: #006; font-weight: bold } 30 | .atn { color: #404 } 31 | .atv { color: #060 } 32 | } 33 | 34 | /* Put a border around prettyprinted code snippets. */ 35 | pre.prettyprint { padding: 2px; border: 1px solid #888 } 36 | 37 | /* Specify class=linenums on a pre to get line numbering */ 38 | ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */ 39 | li.L0, 40 | li.L1, 41 | li.L2, 42 | li.L3, 43 | li.L5, 44 | li.L6, 45 | li.L7, 46 | li.L8 { list-style-type: none } 47 | /* Alternate shading for lines */ 48 | li.L1, 49 | li.L3, 50 | li.L5, 51 | li.L7, 52 | li.L9 { background: #eee } 53 | -------------------------------------------------------------------------------- /angular-template/docs/app.config.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: config 6 | 7 | 8 | 9 | 10 | 111 |
112 |

113 | Angular config 114 |

115 |

116 | config 117 | source 118 |

119 |
120 | 121 | 122 | 123 |
124 |
125 |
126 |
127 |

Description

128 |

Configures ui-router's states.

129 |
130 |
131 |
132 |

Parameters

133 | 134 | 135 | 136 | 137 | 138 | 139 | 143 | 146 | 151 | 152 | 153 |
NameTypeDescription
140 | 141 | $urlRouterProvider 142 | 144 | Service 145 | 147 | 148 |

Watches $location and provides interface to default state

149 |
150 |
154 |
155 |
156 |
157 |
158 | 164 |
165 | 166 | 167 | 168 | 169 | 174 | 175 | -------------------------------------------------------------------------------- /angular-template/docs/app.customCurrency.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: customCurrency 6 | 7 | 8 | 9 | 10 | 111 |
112 |

113 | Angular filter 114 |

115 |

116 | customCurrency 117 | source 118 |

119 |
120 | 121 | 122 | 123 |
124 |
125 |
126 |
127 |

Description

128 |

returns custom currency from the given input

129 |
130 |
131 |
132 |

Parameters

133 | 134 | 135 | 136 | 137 | 138 | 139 | 143 | 146 | 148 | 149 | 150 |
NameTypeDescription
140 | 141 | Test 142 | 144 | $http 145 | 147 |
151 |
152 |
153 |

Tutorials

154 | 159 |
160 |
161 |
162 |

Methods

163 |
164 |
165 | 166 |

167 | customCurrencyFilter 168 | (input, symbol, place) 169 |

170 |
171 |
172 |
173 |
174 | 175 |

. Create the return function and set the required parameter name to input 176 | . setup optional parameters for the currency symbol and location (left or right of the amount)

177 |
178 |
179 |
180 |

Parameters

181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 191 | 193 | 194 | 195 | 198 | 200 | 201 | 202 | 205 | 210 | 211 | 212 |
NameTypeDescription
input 189 | Number|String 190 | 192 |
symbol 196 | String 197 | 199 |
place 203 | Boolean 204 | 206 | 207 |

true or false

208 |
209 |
213 |
214 |
215 |
216 |
217 |
218 |
219 | 225 |
226 | 227 | 228 | 229 | 230 | 235 | 236 | -------------------------------------------------------------------------------- /angular-template/docs/app.testService.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: testService 6 | 7 | 8 | 9 | 10 | 111 |
112 |

113 | Angular service 114 |

115 |

116 | testService 117 | source 118 |

119 |
120 | 121 | 122 | 123 |
124 |
125 |
126 |
127 |

Description

128 |

The siteLanguageServices provides information about available languges 129 | of a site.

130 |
131 |
132 |
133 |

Parameters

134 | 135 | 136 | 137 | 138 | 139 | 140 | 144 | 147 | 149 | 150 | 151 |
NameTypeDescription
141 | 142 | Test 143 | 145 | $http 146 | 148 |
152 |
153 |
154 |

Properties

155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 167 | 172 | 173 | 174 |
NameTypeDescription
obj 163 | 164 | object 165 | 166 | 168 | 169 |

property of this service

170 |
171 |
175 |
176 |
177 |
178 |

Methods

179 |
180 |
181 | 183 |

184 | test 185 | ///// NO param jsdoc tag here 186 |

187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 | 203 |
204 | 205 | 206 | 207 | 208 | 213 | 214 | -------------------------------------------------------------------------------- /angular-template/docs/css/prettify-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | /* plain text */ 6 | .pln { 7 | color: #4d4d4c; } 8 | 9 | @media screen { 10 | /* string content */ 11 | .str { 12 | color: #718c00; } 13 | 14 | /* a keyword */ 15 | .kwd { 16 | color: #8959a8; } 17 | 18 | /* a comment */ 19 | .com { 20 | color: #8e908c; } 21 | 22 | /* a type name */ 23 | .typ { 24 | color: #4271ae; } 25 | 26 | /* a literal value */ 27 | .lit { 28 | color: #f5871f; } 29 | 30 | /* punctuation */ 31 | .pun { 32 | color: #4d4d4c; } 33 | 34 | /* lisp open bracket */ 35 | .opn { 36 | color: #4d4d4c; } 37 | 38 | /* lisp close bracket */ 39 | .clo { 40 | color: #4d4d4c; } 41 | 42 | /* a markup tag name */ 43 | .tag { 44 | color: #c82829; } 45 | 46 | /* a markup attribute name */ 47 | .atn { 48 | color: #f5871f; } 49 | 50 | /* a markup attribute value */ 51 | .atv { 52 | color: #3e999f; } 53 | 54 | /* a declaration */ 55 | .dec { 56 | color: #f5871f; } 57 | 58 | /* a variable name */ 59 | .var { 60 | color: #c82829; } 61 | 62 | /* a function name */ 63 | .fun { 64 | color: #4271ae; } } 65 | /* Use higher contrast and text-weight for printable form. */ 66 | @media print, projection { 67 | .str { 68 | color: #060; } 69 | 70 | .kwd { 71 | color: #006; 72 | font-weight: bold; } 73 | 74 | .com { 75 | color: #600; 76 | font-style: italic; } 77 | 78 | .typ { 79 | color: #404; 80 | font-weight: bold; } 81 | 82 | .lit { 83 | color: #044; } 84 | 85 | .pun, .opn, .clo { 86 | color: #440; } 87 | 88 | .tag { 89 | color: #006; 90 | font-weight: bold; } 91 | 92 | .atn { 93 | color: #404; } 94 | 95 | .atv { 96 | color: #060; } } 97 | /* Style */ 98 | /* 99 | pre.prettyprint { 100 | background: white; 101 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 102 | font-size: 12px; 103 | line-height: 1.5; 104 | border: 1px solid #ccc; 105 | padding: 10px; } 106 | */ 107 | 108 | /* Specify class=linenums on a pre to get line numbering */ 109 | ol.linenums { 110 | margin-top: 0; 111 | margin-bottom: 0; } 112 | 113 | /* IE indents via margin-left */ 114 | li.L0, 115 | li.L1, 116 | li.L2, 117 | li.L3, 118 | li.L4, 119 | li.L5, 120 | li.L6, 121 | li.L7, 122 | li.L8, 123 | li.L9 { 124 | /* */ } 125 | 126 | /* Alternate shading for lines */ 127 | li.L1, 128 | li.L3, 129 | li.L5, 130 | li.L7, 131 | li.L9 { 132 | /* */ } 133 | 134 | -------------------------------------------------------------------------------- /angular-template/docs/css/prettify.css: -------------------------------------------------------------------------------- 1 | /* Pretty printing styles. Used with prettify.js. */ 2 | 3 | /* SPAN elements with the classes below are added by prettyprint. */ 4 | .pln { color: #000 } /* plain text */ 5 | 6 | @media screen { 7 | .str { color: #080 } /* string content */ 8 | .kwd { color: #008 } /* a keyword */ 9 | .com { color: #800 } /* a comment */ 10 | .typ { color: #606 } /* a type name */ 11 | .lit { color: #066 } /* a literal value */ 12 | /* punctuation, lisp open bracket, lisp close bracket */ 13 | .pun, .opn, .clo { color: #660 } 14 | .tag { color: #008 } /* a markup tag name */ 15 | .atn { color: #606 } /* a markup attribute name */ 16 | .atv { color: #080 } /* a markup attribute value */ 17 | .dec, .var { color: #606 } /* a declaration; a variable name */ 18 | .fun { color: red } /* a function name */ 19 | } 20 | 21 | /* Use higher contrast and text-weight for printable form. */ 22 | @media print, projection { 23 | .str { color: #060 } 24 | .kwd { color: #006; font-weight: bold } 25 | .com { color: #600; font-style: italic } 26 | .typ { color: #404; font-weight: bold } 27 | .lit { color: #044 } 28 | .pun, .opn, .clo { color: #440 } 29 | .tag { color: #006; font-weight: bold } 30 | .atn { color: #404 } 31 | .atv { color: #060 } 32 | } 33 | 34 | /* Put a border around prettyprinted code snippets. */ 35 | pre.prettyprint { padding: 2px; border: 1px solid #888 } 36 | 37 | /* Specify class=linenums on a pre to get line numbering */ 38 | ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */ 39 | li.L0, 40 | li.L1, 41 | li.L2, 42 | li.L3, 43 | li.L5, 44 | li.L6, 45 | li.L7, 46 | li.L8 { list-style-type: none } 47 | /* Alternate shading for lines */ 48 | li.L1, 49 | li.L3, 50 | li.L5, 51 | li.L7, 52 | li.L9 { background: #eee } 53 | -------------------------------------------------------------------------------- /angular-template/docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: Index 6 | 7 | 8 | 9 | 10 | 111 |
112 |

113 | Index 114 |

115 |
116 | 117 | 118 |
119 |
120 |

Sample Code

This is markdown README.md

121 |
122 |
123 | 124 |
125 | 131 |
132 | 133 | 134 | 135 | 136 | 141 | 142 | -------------------------------------------------------------------------------- /angular-template/docs/js/site.js: -------------------------------------------------------------------------------- 1 | // Filter UI 2 | var tocElements = document.getElementById('toc').getElementsByTagName('a'); 3 | document.getElementById('filter-input').addEventListener('keyup', function(e) { 4 | 5 | var i, element; 6 | 7 | // enter key 8 | if (e.keyCode === 13) { 9 | // go to the first displayed item in the toc 10 | for (i = 0; i < tocElements.length; i++) { 11 | element = tocElements[i]; 12 | if (!element.classList.contains('hide')) { 13 | location.replace(element.href); 14 | return e.preventDefault(); 15 | } 16 | } 17 | } 18 | 19 | var match = function() { return true; }, 20 | value = this.value.toLowerCase(); 21 | 22 | if (!value.match(/^\s*$/)) { 23 | match = function(text) { return text.toLowerCase().indexOf(value) !== -1; }; 24 | } 25 | 26 | for (i = 0; i < tocElements.length; i++) { 27 | element = tocElements[i]; 28 | if (match(element.innerHTML)) { 29 | element.classList.remove('hide'); 30 | } else { 31 | element.classList.add('hide'); 32 | } 33 | } 34 | }); 35 | -------------------------------------------------------------------------------- /angular-template/docs/source/app.config.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | JSDoc: source : config.js 7 | 8 | 9 | 10 | 11 | 112 |
113 |

114 | source : config.js 115 |

116 |
117 | 118 |
119 |
(function () {
120 |     'use strict';
121 |     angular
122 |     .module('app')
123 |     .config(stateConfig)
124 |    /**
125 |     * Configures ui-router's states.
126 |     * @memberof app
127 |     * @ngdoc config
128 |     * @name config
129 |     * @param {Service} $urlRouterProvider Watches $location and provides interface to default state
130 |     */
131 |     function stateConfig($urlRouterProvider) {
132 |         $urlRouterProvider.otherwise('/search')
133 |     }
134 | })();
135 | 
136 |
137 | 138 | 139 |
140 | 146 |
147 | 148 | 149 | 150 | 151 | 156 | 157 | -------------------------------------------------------------------------------- /angular-template/docs/source/app.customCurrency.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | JSDoc: source : custom-currency.js 7 | 8 | 9 | 10 | 11 | 112 |
113 |

114 | source : custom-currency.js 115 |

116 |
117 | 118 |
119 |
/**
120 |  * The siteLanguageServices provides information about available languges
121 |  * of a site.
122 |  *
123 |  * @memberof app
124 |  * @ngdoc filter
125 |  * @name customCurrency
126 |  * @param {$http} Test
127 |  * @desc
128 |  *  returns custom currency from the given input
129 |  * @tutorial tutorial1
130 |  */
131 | (function() {
132 |   'use strict';
133 |   var customCurrency = function($http) { 
134 |     /**
135 |      * @func customCurrencyFilter
136 |      * @memberof customCurrency
137 |      * @desc
138 |      *  . Create the return function and set the required parameter name to **input**
139 |      *  . setup optional parameters for the currency symbol and location (left or right of the amount)
140 |      * @param {Number|String} input
141 |      * @param {String} symbol
142 |      * @param {Boolean} place  true or false
143 |      */
144 |     return function(input, symbol, place) {
145 |       // Ensure that we are working with a number
146 |       if(isNaN(input)) {
147 |         return input;
148 |       } else {
149 |         // Check if optional parameters are passed, if not, use the defaults
150 |         var symbol = symbol || '$';
151 |         var place = place === undefined ? true : place;
152 |         // Perform the operation to set the symbol in the right location
153 |         if( place === true) {
154 |           return symbol + input;
155 |         } else {
156 |           return input + symbol;
157 |         }
158 |       }
159 |     }
160 |   };
161 |   angular.module('app').filter('customCurrency', customCurrency);
162 | })();
163 | 
164 |
165 | 166 | 167 |
168 | 174 |
175 | 176 | 177 | 178 | 179 | 184 | 185 | -------------------------------------------------------------------------------- /angular-template/docs/source/app.testService.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | JSDoc: source : test-service.js 7 | 8 | 9 | 10 | 11 | 112 |
113 |

114 | source : test-service.js 115 |

116 |
117 | 118 |
119 |
(function () {
120 |   'use strict';
121 |   angular.module('app').service('testService', testService);
122 |   /**
123 |    * @memberof app
124 |    * @ngdoc service
125 |    * @name testService
126 |    * @param {$http} Test
127 |    * @property {object} obj property of this service
128 |    * @ngInject
129 |    * @desc The siteLanguageServices provides information about available languges
130 |    * of a site.
131 |    *
132 |    */
133 |   function testService ($http) {
134 |     /** @property {object} obj property of this service */
135 |     var obj = {};
136 |      /**
137 |       * @memberof testService
138 |       * @method test
139 |       * ///// NO param jsdoc tag here
140 |       */
141 |     function test() {
142 |     }
143 |   }
144 | })();
145 | 
146 |
147 | 148 | 149 |
150 | 156 |
157 | 158 | 159 | 160 | 161 | 166 | 167 | -------------------------------------------------------------------------------- /angular-template/docs/source/ngmap.Attr2Options.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | JSDoc: source : attr2-options.js 7 | 8 | 9 | 10 | 11 | 112 |
113 |

114 | source : attr2-options.js 115 |

116 |
117 | 118 |
119 |
(function() {
120 |   'use strict';
121 |   /**
122 |    * @memberof ngmap
123 |    * @ngdoc service
124 |    * @name Attr2Options
125 |    * @param {service} $parse angular html parser
126 |    * @param {service} $timeout angular window.setTimeout service
127 |    * @param {service} NavigatorGeolocation Google NavigatorGeolocation wrapper
128 |    * @param {service} GeoCoder Google GeoCoder wrapper
129 |    * @description 
130 |    *   Converts html attributes to google api v3 object options
131 |    */
132 |   var Attr2Options = function($parse, $timeout, NavigatorGeolocation, GeoCoder) { 
133 |     /**
134 |      * Convert input to Google Map option input
135 |      * @memberof Attr2Options
136 |      * @param {Objec} input a value to convert
137 |      * @param {Hash} options to convert the input
138 |      * @returns {Hash} attributes
139 |      */
140 |     var toOptionValue = function(input, options) {
141 |       // .. code ..
142 |     };
143 |     /**
144 |      * filters attributes by skipping angularjs methods $.. $$..
145 |      * @memberof Attr2Options
146 |      * @param {Hash} attrs tag attributes
147 |      * @returns {Hash} filterd attributes
148 |      */
149 |     var filter = function(attrs) {
150 |       // .. code ..
151 |     };
152 |     /**
153 |      * converts attributes hash to Google Maps API v3 options  
154 |      * ```
155 |      *  . converts numbers to number   
156 |      *  . converts class-like string to google maps instance   
157 |      *    i.e. `LatLng(1,1)` to `new google.maps.LatLng(1,1)`  
158 |      *  . converts constant-like string to google maps constant    
159 |      *    i.e. `MapTypeId.HYBRID` to `google.maps.MapTypeId.HYBRID`   
160 |      *    i.e. `HYBRID"` to `google.maps.MapTypeId.HYBRID`  
161 |      * ```
162 |      * @memberof Attr2Options
163 |      * @param {Hash} attrs tag attributes
164 |      * @param {scope} scope angularjs scope
165 |      * @returns {Hash} options converted attributess
166 |      */
167 |     var getOptions = function(attrs, scope) {
168 |       // .. code ..
169 |     };
170 |     /**
171 |      * converts attributes hash to scope-specific event function 
172 |      * @memberof Attr2Options
173 |      * @param {scope} scope angularjs scope
174 |      * @param {Hash} attrs tag attributes
175 |      * @returns {Hash} events converted events
176 |      */
177 |     var getEvents = function(scope, attrs) {
178 |       // .. code ..
179 |     };
180 |     /**
181 |      * Return options of Google map control, i.e streetview, pan, etc, not a general control
182 |      * @memberof Attr2Options
183 |      * @param {Hash} filtered filtered tag attributes
184 |      * @returns {Hash} Google Map options
185 |      */
186 |     var getControlOptions = function(filtered) {
187 |       // .. code ..
188 |     };
189 |     return {
190 |       filter: filter,
191 |       getOptions: getOptions,
192 |       getEvents: getEvents,
193 |       getControlOptions: getControlOptions,
194 |       toOptionValue: toOptionValue,
195 |       orgAttributes: orgAttributes
196 |     }; // return
197 |   }; 
198 |   angular.module('ngMap').service('Attr2Options', Attr2Options);
199 | })();
200 | 
201 |
202 | 203 | 204 |
205 | 211 |
212 | 213 | 214 | 215 | 216 | 221 | 222 | -------------------------------------------------------------------------------- /angular-template/docs/source/ngmap.MapController.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | JSDoc: source : map-controller.js 7 | 8 | 9 | 10 | 11 | 112 |
113 |

114 | source : map-controller.js 115 |

116 |
117 | 118 |
119 |
(function() {
120 |   'use strict';
121 |   /**
122 |    * @memberof ngmap
123 |    * @ngdoc controller
124 |    * @name MapController
125 |    * @param $scope {service} controller scope
126 |    * @param $q {service} promise service
127 |    * @param NavigatorGeolocation {service} Google NavigatorGeolocation wrapper
128 |    * @param GeoCoder {service} Google GeoCoder wrapper
129 |    * @param Attr2Options {service} Converts element attributes to Google Maps API options
130 |    */
131 |   var MapController = function($scope, $q, NavigatorGeolocation, GeoCoder, Attr2Options) { 
132 |     /**
133 |      * @property {Hash} _objects collection og objects that belongs to this map
134 |      */
135 |     this._objects = {};
136 |     /**
137 |      * Add an object to the collection of group
138 |      * @memberof MapController
139 |      * @function addObject
140 |      * @param groupName the name of collection that object belongs to
141 |      * @param obj  an object to add into a collection, i.e. marker, shape
142 |      */
143 |     this.addObject = function(groupName, obj) {
144 |       // .. code ..
145 |     };
146 |     /**
147 |      * Delete an object from the collection and remove from map
148 |      * @memberof MapController
149 |      * @function deleteObject
150 |      * @param {Array} objs the collection of objects. i.e., map.markers
151 |      * @param {Object} obj the object to be removed. i.e., marker
152 |      */
153 |     this.deleteObject = function(groupName, obj) {
154 |       // .. code ..
155 |     };
156 |     /**
157 |      * returns the location of an address or 'current-location'
158 |      * @memberof MapController
159 |      * @function getGeoLocation
160 |      * @param {String} string an address to find the location
161 |      * @returns {Promise} latlng the location of the address
162 |      */
163 |     this.getGeoLocation = function(string) {
164 |       // .. code ..
165 |     };
166 |   };
167 |   angular.module('ngMap').controller('MapController', MapController);
168 | })();
169 | 
170 |
171 | 172 | 173 |
174 | 180 |
181 | 182 | 183 | 184 | 185 | 190 | 191 | -------------------------------------------------------------------------------- /angular-template/docs/source/ngmap.map.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | JSDoc: source : map.js 7 | 8 | 9 | 10 | 11 | 112 |
113 |

114 | source : map.js 115 |

116 |
117 | 118 |
119 |
(function () {
120 |   'use strict';
121 |   /**
122 |    * @memberof ngmap
123 |    * @ngdoc directive
124 |    * @name map
125 |    * @param  {service} Attr2Options Converts html attributes to Google map options
126 |    * @param  {service} $timeout     Angular window.setTimeout wrapper 
127 |    * @param  {service} $parse       Angular html parser
128 |    * @description
129 |    *   Implementation of MapController
130 |    *   Initialize a Google map within a `<div>` tag with given options and register events
131 |    *   It accepts children directives; marker, shape, or marker-clusterer
132 |    *
133 |    *   It initialize map, children tags, then emits message as soon as the action is done
134 |    *   The message emitted from this directive is;
135 |    *     . mapInitialized
136 |    *
137 |    * @attr {Expression} geo-callback 
138 |    *    If center is an address or current location, the expression is will be executed 
139 |    *    when geo-lookup is successful. e.g., geo-callback="showMyStoreInfo()"
140 |    * @attr {Array} geo-fallback-center  The center of map incase geolocation failed. i.e. [0,0]
141 |    * @attr {Boolean} zoom-to-include-markers
142 |    *    If true, map boundary will be changed automatially to include all markers when initialized
143 |    * @attr {Boolean} default-style
144 |    *    When false, the default styling, `display:block;height:300px`, will be ignored.
145 |    * @attr {String} init-event The name of event to initialize this map.
146 |    *    If this option is given, the map won't be initialized until the event is received.
147 |    *    To invoke the event, use $scope.$emit or $scope.$broacast.
148 |    *    i.e. `<map init-event="init-map" ng-click="$emit('init-map')" center=... ></map>`
149 |    * @attr {String} <MapOption> [Any Google map options](https://developers.google.com/maps/documentation/javascript/reference?csw=1#MapOptions)
150 |    * @attr {String} <MapEvent> [Any Google map events](https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/map_events.html)
151 |    * @example
152 |    *   Usage:
153 |    *   <map MAP_OPTIONS_OR_MAP_EVENTS ..>
154 |    *     ... Any children directives
155 |    *   </map>
156 |    *
157 |    *   <map center="[40.74, -74.18]" on-click="doThat()">
158 |    *   </map>
159 |    *
160 |    *   <map geo-fallback-center="[40.74, -74.18]" zoom-to-inlude-markers="true">
161 |    *   </map>
162 |    */
163 |   var map = function(Attr2Options, $timeout, $parse) {
164 |     /**
165 |      * Initialize map and events
166 |      * @memberof map
167 |      * @param {service} scope the scope of this element
168 |      * @param {service} element element that this direcive is assigned to
169 |      * @param {service}   attrs attribute of this element
170 |      * @param {MapController} ctrl map controller
171 |      */
172 |     var linkFunc = function (scope, element, attrs, ctrl) {
173 |       // .. code ..
174 |     };
175 |     return {
176 |       restrict: 'AE',
177 |       controller: 'MapController',
178 |       link: linkFunc,
179 |       templateUrl: 'sample-codes/ngmap/test-template.html'
180 |     };
181 |   };
182 |   angular.module('ngMap').directive('map', map);
183 | })();
184 | 
185 |
186 | 187 | 188 |
189 | 195 |
196 | 197 | 198 | 199 | 200 | 205 | 206 | -------------------------------------------------------------------------------- /angular-template/docs/templates/sample-codes_ngmap_test-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | JSDoc: template : sample-codes/ngmap/test-template.html 7 | 8 | 9 | 10 | 11 | 112 |
113 |

114 | template : sample-codes/ngmap/test-template.html 115 |

116 |
117 | 118 |
119 |
<this>
120 |   <is>Hello</is>
121 |   <test>World</test>
122 |   <template>How</template>
123 |   <tags>Are</tags>
124 |   You
125 | </this>
126 | 
127 |
128 | 129 | 130 |
131 | 137 |
138 | 139 | 140 | 141 | 142 | 147 | 148 | -------------------------------------------------------------------------------- /angular-template/docs/tutorial-childA.html: -------------------------------------------------------------------------------- 1 |
2 |

Child A

3 |
4 |

child A

5 |

This 6 | is 7 | test 8 | tutorial

9 |
10 |
-------------------------------------------------------------------------------- /angular-template/docs/tutorial-childB.html: -------------------------------------------------------------------------------- 1 |
2 |

Child B

3 |
4 |

child B

5 |

test

6 |
7 |
-------------------------------------------------------------------------------- /angular-template/docs/tutorial-my-tutorial.html: -------------------------------------------------------------------------------- 1 |
2 |

Tutorial Two

3 |
4 | test tutorial 5 | test tutorial 6 |
7 |
-------------------------------------------------------------------------------- /angular-template/docs/tutorial-tutorial1.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 10 |
11 |

Tutorial One

12 |
13 |

This 14 | is 15 | test 16 | tutorial

17 |
18 |
-------------------------------------------------------------------------------- /angular-template/docs/tutorial-tutorial2.html: -------------------------------------------------------------------------------- 1 |
2 |

tutorial2

3 |
4 |

tutorial 2

5 |

This 6 | is 7 | test 8 | tutorial

9 |
10 |
-------------------------------------------------------------------------------- /angular-template/html/class.html: -------------------------------------------------------------------------------- 1 |
2 | 6 | 7 |
8 | 9 |
10 |

Description

11 | {{ description.replace(/\{@link (.*?)(#.*?)?\}/g, '$1$2') }} 12 |
13 | 14 |
15 |
16 |

Priority

17 | {{priority}} 18 |
19 | 20 |
21 |

Event type

22 | {{eventType}} 23 |
24 | 25 |
26 |

Requirements

27 | 30 |
31 | 32 |
33 |

Parameters

34 | 35 | 36 | 37 | 38 | 39 | 40 | 44 | 47 | 52 | 53 | 54 |
NameTypeDescription
41 | 42 | {{ param.name }} 43 | 45 | {{ param.typeDefinitionUrl }} 46 | 48 | 49 | {{ param.description.replace(/\{@link (.*?)(#.*?)?\}/g, '$1$2') }} 50 | 51 |
55 |
56 | 57 |
58 |

Properties

59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 71 | 76 | 77 | 78 |
NameTypeDescription
{{ prop.name }} 67 | 68 | {{ prop.typeDefinitionUrl }} 69 | 70 | 72 | 73 | {{ prop.description.replace(/\{@link (.*?)(#.*?)?\}/g, '$1$2') }} 74 | 75 |
79 |
80 | 81 |
82 |

Attributes

83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 93 | 98 | 99 | 100 |
NameTypeDescription
{{ attr.name }} 91 | {{ attr.typeDefinitionUrl }} 92 | 94 | 95 | {{ marked(attr.description.replace(/\{@link (.*?)(#.*?)?\}/g, '$1$2')||'') }} 96 | 97 |
101 |
102 | 103 |
104 |

Animations

105 |
{{ animations }}
106 |
107 | 108 |
109 |

Example

110 |
{{ example.code }}
111 |
112 | 113 |
114 |

References

115 | 120 |
121 | 122 |
123 |

Authors

124 | {{ author.map(function (credit) { return credit.replace(/(.*) <(.*)>/, '$1'); }).join(', ') }} 125 |
126 | 127 |
128 |

Tutorials

129 | 134 |
135 |
136 | 137 |
138 |

Members

139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 149 | 150 | 151 | 152 |
NameTypeDescription
{{ member.name }} 147 | {{ member.type && member.type.names.join(" | ") }} 148 | {{ member.description }}
153 |
154 |
155 |
156 |
157 |

Methods

158 |
159 |
160 | 161 |

162 | {{ func.name }} 163 | ({{ func.params.map(function(param){return param.name;}).join(", ") }}) 164 | 165 | -> {{ func.returns[0].typeDefinition }} 166 | 167 |

168 |
169 |
170 |
171 |
172 | 173 | {{ func.description.replace(/\{@link (.*?)(#.*?)?\}/g, '$1$2') }} 174 | 175 |
176 |
177 |

References

178 |
    179 |
  • 180 | {{ ref.replace(/\{@link (.*?)(#.*?)?\}/g, '$1$2') }} 181 |
  • 182 |
183 |
184 |
185 |

Example

186 |
{{ example.code }}
187 |
188 |
189 |

Parameters

190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 200 | 205 | 206 | 207 |
NameTypeDescription
{{ param.name }} 198 | {{ param.typeDefinitionUrl }} 199 | 201 | 202 | {{ param.description.replace(/\{@link (.*?)(#.*?)?\}/g, '$1$2') }} 203 | 204 |
208 |
209 |
210 |

Returns

211 | 212 | 213 | 214 | 215 | 216 | 217 | 222 | 227 | 228 | 229 |
TypeDescription
218 | 219 | {{ ret.typeDefinitionUrl }} 220 | 221 | 223 | 224 | {{ ret.description.replace(/\{@link (.*?)(#.*?)?\}/g, '$1$2') }} 225 | 226 |
230 |
231 |
232 |
233 |
234 | -------------------------------------------------------------------------------- /angular-template/html/layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | JSDoc: {{ title }} 7 | 8 | 9 | 10 | 11 | 12 | 50 | 51 |
52 | 53 |

54 | Angular {{data.ngdoc}} 55 |

56 | 57 |

58 | {{ title }} 59 | source 62 | template 65 |

66 | 67 |
68 | 69 | 70 |
71 |
{{ code }}
72 |
73 | 74 | 75 |
76 |
77 | {{ data.readme }} 78 |
79 |
80 | 81 | 82 |
83 |
84 |
85 | 86 |
87 | 88 | 94 |
95 | 96 | 97 | 98 | 99 | 100 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /angular-template/html/tutorial.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 8 |
9 | 10 |

{{tutorialData.header}}

11 |
12 | {{tutorialData.content}} 13 |
14 |
15 | 16 | -------------------------------------------------------------------------------- /angular-template/js/site.js: -------------------------------------------------------------------------------- 1 | // Filter UI 2 | var tocElements = document.getElementById('toc').getElementsByTagName('a'); 3 | document.getElementById('filter-input').addEventListener('keyup', function(e) { 4 | 5 | var i, element; 6 | 7 | // enter key 8 | if (e.keyCode === 13) { 9 | // go to the first displayed item in the toc 10 | for (i = 0; i < tocElements.length; i++) { 11 | element = tocElements[i]; 12 | if (!element.classList.contains('hide')) { 13 | location.replace(element.href); 14 | return e.preventDefault(); 15 | } 16 | } 17 | } 18 | 19 | var match = function() { return true; }, 20 | value = this.value.toLowerCase(); 21 | 22 | if (!value.match(/^\s*$/)) { 23 | match = function(text) { return text.toLowerCase().indexOf(value) !== -1; }; 24 | } 25 | 26 | for (i = 0; i < tocElements.length; i++) { 27 | element = tocElements[i]; 28 | if (match(element.innerHTML)) { 29 | element.classList.remove('hide'); 30 | } else { 31 | element.classList.add('hide'); 32 | } 33 | } 34 | }); 35 | -------------------------------------------------------------------------------- /common/conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "node_modules/jsdoc/plugins/markdown", 4 | "node_modules/angular-jsdoc/common/plugins/ngdoc" 5 | ], 6 | "templates": { 7 | "cleverLinks": true, 8 | "monospaceLinks": true 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /common/plugins/ngdoc.js: -------------------------------------------------------------------------------- 1 | exports.defineTags = function(dictionary) { 2 | dictionary.defineTag('ngdoc', { 3 | mustHaveValue: true, 4 | onTagged : function(doclet, tag) { 5 | if (tag.value == "method") { 6 | doclet.addTag('kind', 'function'); 7 | } else { 8 | doclet.addTag('kind', 'class'); 9 | } 10 | doclet.ngdoc = tag.value; 11 | } 12 | }); 13 | 14 | dictionary.defineTag('attribute', { 15 | mustHaveValue: true, 16 | canHaveType: true, 17 | canHaveName: true, 18 | onTagged: function(doclet, tag) { 19 | doclet.attributes = parseParamTypes(doclet.attributes, tag); 20 | } 21 | }) 22 | .synonym('attr'); 23 | 24 | dictionary.defineTag('param', { 25 | mustHaveValue: true, 26 | canHaveType: true, 27 | canHaveName: true, 28 | onTagged: function(doclet, tag) { 29 | doclet.params = parseParamTypes(doclet.params, tag); 30 | } 31 | }); 32 | 33 | dictionary.defineTag('property', { 34 | mustHaveValue: true, 35 | canHaveType: true, 36 | canHaveName: true, 37 | onTagged: function(doclet, tag) { 38 | doclet.properties = parseParamTypes(doclet.properties, tag); 39 | } 40 | }); 41 | 42 | dictionary.defineTag('returns', { 43 | mustHaveValue: false, 44 | canHaveType: true, 45 | canHaveName: false, 46 | onTagged: function(doclet, tag) { 47 | var returnsText = new RegExp(/@returns? (\{.*\}.*)/).exec(doclet.comment); 48 | 49 | if (returnsText) { 50 | tag.text = returnsText[1]; 51 | doclet.returns = parseParamTypes(doclet.returns, tag); 52 | } 53 | } 54 | }); 55 | 56 | dictionary.defineTag('restrict', { 57 | mustHaveValue: true, 58 | onTagged: function(doclet, tag) { 59 | var restricts={ 60 | 'A': 'Attribute', 61 | 'E': 'Element', 62 | 'C': 'Class' 63 | } 64 | var s = tag.value.split('').map(function(aec) { 65 | return restricts[aec]; 66 | }) 67 | doclet.restrict = s; 68 | } 69 | }); 70 | 71 | dictionary.defineTag('priority', { 72 | mustHaveValue: true, 73 | onTagged: function(doclet, tag) { 74 | doclet.priority = tag.value; 75 | } 76 | }); 77 | 78 | dictionary.defineTag('eventType', { 79 | mustHaveValue: true, 80 | onTagged: function(doclet, tag) { 81 | doclet.eventType = tag.value; 82 | } 83 | }); 84 | 85 | dictionary.defineTag('animations', { 86 | mustHaveValue: true, 87 | onTagged: function(doclet, tag) { 88 | doclet.animations = tag.value; 89 | } 90 | }); 91 | 92 | dictionary.defineTag('scope', { 93 | onTagged: function (doclet, tag) { 94 | var scopeType = { 95 | 'object': 'Isolated Scope', 96 | '{}': 'Isolated Scope', 97 | 'true': 'Child Scope', 98 | 'false': 'Shared Scope' 99 | }; 100 | 101 | if (!scopeType.hasOwnProperty(tag.value)) { 102 | doclet.directiveScope = 'New Scope'; 103 | } else { 104 | doclet.directiveScope = scopeType[tag.value]; 105 | } 106 | } 107 | }); 108 | }; 109 | 110 | function parseParamTypes(docletParams, tag) { 111 | if (!docletParams) { 112 | docletParams = []; 113 | } 114 | 115 | var result = { 116 | name: wrapDefaultNotation(tag), 117 | description: tag.value.description, 118 | optional: !!tag.value.optional, 119 | default: tag.value.defaultvalue 120 | }; 121 | 122 | var defaultTypes = ['boolean', 'string', 'expression', '*', 'mixed', 'number', 'null', 'undefined', 'function', 123 | 'object', 'array', 'void']; 124 | var defaultTypeStarts = ['\'', '"', '[', '{']; 125 | 126 | var typeDoc = new RegExp(/\{(.*?)\}/).exec(tag.text); 127 | 128 | if (!typeDoc) { 129 | result.typeDefinition = '*'; 130 | docletParams.push(result); 131 | return; 132 | } 133 | 134 | var types = typeDoc[1].split('|'); 135 | var typeRegex = new RegExp(/(.*?)(\[\])?$/); 136 | 137 | var parseTypeDefinitionUrl = ''; 138 | var parseTypeDefinition = ''; 139 | var i = 0; 140 | for (; i < types.length; i++) { 141 | var type = typeRegex.exec(types[i]); 142 | 143 | if (i > 0) { 144 | parseTypeDefinitionUrl += '|'; 145 | parseTypeDefinition += '|'; 146 | } 147 | 148 | if (defaultTypes.indexOf(type[1].toLowerCase()) !== -1 || defaultTypeStarts.indexOf(type[1][0]) !== -1) { 149 | parseTypeDefinitionUrl += type[1] + (type[2] || ''); 150 | } else { 151 | parseTypeDefinitionUrl += '' + type[1] + (type[2] || '') + ''; 152 | } 153 | 154 | parseTypeDefinition += type[1] + (type[2] || ''); 155 | } 156 | 157 | result.typeDefinitionUrl = parseTypeDefinitionUrl; 158 | result.typeDefinition = parseTypeDefinition; 159 | docletParams.push(result); 160 | 161 | return docletParams; 162 | } 163 | 164 | function wrapDefaultNotation(tag) { 165 | var returnName = ''; 166 | 167 | if (tag.value.optional) { 168 | returnName += '['; 169 | returnName += tag.value.name; 170 | 171 | if (tag.value.defaultvalue) { 172 | returnName += '=' + tag.value.defaultvalue; 173 | } 174 | 175 | returnName += ']'; 176 | return returnName; 177 | } 178 | 179 | return tag.value.name; 180 | } -------------------------------------------------------------------------------- /common/test_conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "node_modules/jsdoc/plugins/markdown", 4 | "common/plugins/ngdoc" 5 | ], 6 | "templates": { 7 | "cleverLinks": true, 8 | "monospaceLinks": true 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /default/README.md: -------------------------------------------------------------------------------- 1 | Default Template 2 | ---------------- 3 | 4 | This template is used when no template name is given as an option. 5 | 6 | To generate with this template, set template option to `node_modules/angular-jsdoc/default`. e.g.; 7 | 8 | $ node_modules/jsdoc/jsdoc.js \ 9 | --configure node_modules/angular-jsdoc/common/conf.json \ 10 | --template node_modules/angular-jsdoc/default \ 11 | --destination build/docs \ 12 | --readme README.md \ 13 | --recurse directives services 14 | 15 | Files 16 | 17 | defalult 18 | ├── css # css used in layout.html 19 | ├── js # javascript used in layout.html 20 | ├── fonts # font used in layout.html 21 | ├── html 22 | │   ├── class.html # class layout written in js-template 23 | │   └── layout.html # layout written in js-template 24 | └── publish.js # the main file that generate jsdoc 25 | 26 | -------------------------------------------------------------------------------- /default/css/jsdoc-default.css: -------------------------------------------------------------------------------- 1 | /** 2 | * This is enhanced theme by Umut Topuzoglu. Thanks, Umut 3 | */ 4 | @font-face { 5 | font-family: 'Open Sans'; 6 | font-weight: normal; 7 | font-style: normal; 8 | src: url('../fonts/OpenSans-Regular-webfont.eot'); 9 | src: 10 | local('Open Sans'), 11 | local('OpenSans'), 12 | url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), 13 | url('../fonts/OpenSans-Regular-webfont.woff') format('woff'), 14 | url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg'); 15 | } 16 | 17 | @font-face { 18 | font-family: 'Open Sans Light'; 19 | font-weight: normal; 20 | font-style: normal; 21 | src: url('../fonts/OpenSans-Light-webfont.eot'); 22 | src: 23 | local('Open Sans Light'), 24 | local('OpenSans Light'), 25 | url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), 26 | url('../fonts/OpenSans-Light-webfont.woff') format('woff'), 27 | url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg'); 28 | } 29 | 30 | * { box-sizing: border-box } 31 | 32 | html 33 | { 34 | overflow: auto; 35 | background-color: #fff; 36 | font-size: 14px; 37 | } 38 | 39 | body 40 | { 41 | font-family: 'Open Sans', sans-serif; 42 | line-height: 1.5; 43 | color: #4d4e53; 44 | background-color: white; 45 | } 46 | 47 | a, a:visited, a:active { 48 | color: #0095dd; 49 | text-decoration: none; 50 | } 51 | 52 | a:hover { 53 | text-decoration: underline; 54 | } 55 | 56 | header 57 | { 58 | display: block; 59 | padding: 0px 4px; 60 | } 61 | 62 | tt, code, kbd, samp { 63 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 64 | padding: 0 0.25em; 65 | background-color: #ddd; 66 | } 67 | 68 | .class-description { 69 | font-size: 130%; 70 | line-height: 140%; 71 | margin-bottom: 1em; 72 | margin-top: 1em; 73 | } 74 | 75 | .class-description:empty { 76 | margin: 0; 77 | } 78 | 79 | #main { 80 | float: left; 81 | width: 70%; 82 | padding-right: 20px; 83 | } 84 | 85 | article dl { 86 | margin-bottom: 40px; 87 | } 88 | 89 | section 90 | { 91 | display: block; 92 | background-color: #fff; 93 | padding: 12px 24px; 94 | border-bottom: 1px solid #ccc; 95 | margin-right: 30px; 96 | } 97 | 98 | .variation { 99 | display: none; 100 | } 101 | 102 | .signature-attributes { 103 | font-size: 60%; 104 | color: #aaa; 105 | font-style: italic; 106 | font-weight: lighter; 107 | } 108 | 109 | nav 110 | { 111 | display: block; 112 | float: right; 113 | margin-top: 28px; 114 | width: 30%; 115 | box-sizing: border-box; 116 | border-left: 1px solid #ccc; 117 | padding-left: 16px; 118 | } 119 | 120 | nav ul { 121 | font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif; 122 | font-size: 100%; 123 | line-height: 17px; 124 | padding: 0; 125 | margin: 0; 126 | list-style-type: none; 127 | } 128 | 129 | nav ul a, nav ul a:visited, nav ul a:active { 130 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 131 | line-height: 18px; 132 | color: #4D4E53; 133 | } 134 | 135 | nav h3 { 136 | margin-top: 12px; 137 | } 138 | 139 | nav li { 140 | margin-top: 6px; 141 | } 142 | 143 | footer { 144 | display: block; 145 | padding: 6px; 146 | margin-top: 12px; 147 | font-style: italic; 148 | font-size: 90%; 149 | } 150 | 151 | h1, h2, h3, h4 { 152 | font-weight: 200; 153 | margin: 0; 154 | } 155 | 156 | h1 157 | { 158 | font-family: 'Open Sans Light', sans-serif; 159 | font-size: 48px; 160 | letter-spacing: -2px; 161 | margin: 12px 24px 20px; 162 | } 163 | 164 | h2, h3 165 | { 166 | font-size: 30px; 167 | font-weight: 700; 168 | letter-spacing: -1px; 169 | margin-bottom: 12px; 170 | } 171 | 172 | h4 173 | { 174 | font-size: 18px; 175 | letter-spacing: -0.33px; 176 | margin-bottom: 12px; 177 | color: #4d4e53; 178 | } 179 | 180 | h5, .container-overview .subsection-title 181 | { 182 | font-size: 120%; 183 | font-weight: bold; 184 | letter-spacing: -0.01em; 185 | margin: 8px 0 3px 0; 186 | } 187 | 188 | h6 189 | { 190 | font-size: 100%; 191 | letter-spacing: -0.01em; 192 | margin: 6px 0 3px 0; 193 | font-style: italic; 194 | } 195 | 196 | .ancestors { color: #999; } 197 | .ancestors a 198 | { 199 | color: #999 !important; 200 | text-decoration: none; 201 | } 202 | 203 | .clear 204 | { 205 | clear: both; 206 | } 207 | 208 | .important 209 | { 210 | font-weight: bold; 211 | color: #950B02; 212 | } 213 | 214 | .yes-def { 215 | text-indent: -1000px; 216 | } 217 | 218 | .type-signature { 219 | color: #aaa; 220 | } 221 | 222 | .name, .signature { 223 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 224 | } 225 | 226 | .details { margin-top: 14px; border-left: 2px solid #DDD; } 227 | .details dt { width: 120px; float: left; padding-left: 10px; padding-top: 6px; } 228 | .details dd { margin-left: 70px; } 229 | .details ul { margin: 0; } 230 | .details ul { list-style-type: none; } 231 | .details li { margin-left: 30px; padding-top: 6px; } 232 | .details pre.prettyprint { margin: 0 } 233 | .details .object-value { padding-top: 0; } 234 | 235 | .description { 236 | margin-bottom: 1em; 237 | margin-top: 1em; 238 | } 239 | 240 | .code-caption 241 | { 242 | font-style: italic; 243 | font-size: 107%; 244 | margin: 0; 245 | } 246 | 247 | .prettyprint 248 | { 249 | border: 1px solid #ddd; 250 | width: 80%; 251 | overflow: auto; 252 | } 253 | 254 | .prettyprint.source { 255 | width: inherit; 256 | } 257 | 258 | .prettyprint code 259 | { 260 | font-size: 100%; 261 | line-height: 18px; 262 | display: block; 263 | margin: 0; 264 | background-color: #fff; 265 | color: #4D4E53; 266 | } 267 | 268 | .prettyprint code span.line 269 | { 270 | display: inline-block; 271 | } 272 | 273 | .prettyprint.linenums 274 | { 275 | padding-left: 70px; 276 | -webkit-user-select: none; 277 | -moz-user-select: none; 278 | -ms-user-select: none; 279 | user-select: none; 280 | } 281 | 282 | .prettyprint.linenums ol 283 | { 284 | padding-left: 0; 285 | } 286 | 287 | .prettyprint.linenums li 288 | { 289 | border-left: 3px #ddd solid; 290 | } 291 | 292 | .prettyprint.linenums li.selected, 293 | .prettyprint.linenums li.selected * 294 | { 295 | background-color: lightyellow; 296 | } 297 | 298 | .prettyprint.linenums li * 299 | { 300 | -webkit-user-select: text; 301 | -moz-user-select: text; 302 | -ms-user-select: text; 303 | user-select: text; 304 | } 305 | 306 | .params, .props 307 | { 308 | border-spacing: 0; 309 | border: 0; 310 | border-collapse: collapse; 311 | } 312 | 313 | .params .name, .props .name, .name code { 314 | color: #4D4E53; 315 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 316 | font-size: 100%; 317 | } 318 | 319 | .params td, .params th, .props td, .props th 320 | { 321 | border: 1px solid #ddd; 322 | margin: 0px; 323 | text-align: left; 324 | vertical-align: top; 325 | padding: 4px 6px; 326 | display: table-cell; 327 | } 328 | 329 | .params thead tr, .props thead tr 330 | { 331 | background-color: #ddd; 332 | font-weight: bold; 333 | } 334 | 335 | .params .params thead tr, .props .props thead tr 336 | { 337 | background-color: #fff; 338 | font-weight: bold; 339 | } 340 | 341 | .params th, .props th { border-right: 1px solid #aaa; } 342 | .params thead .last, .props thead .last { border-right: 1px solid #ddd; } 343 | 344 | .params td.description > p:first-child, 345 | .props td.description > p:first-child 346 | { 347 | margin-top: 0; 348 | padding-top: 0; 349 | } 350 | 351 | .params td.description > p:last-child, 352 | .props td.description > p:last-child 353 | { 354 | margin-bottom: 0; 355 | padding-bottom: 0; 356 | } 357 | 358 | .disabled { 359 | color: #454545; 360 | } 361 | -------------------------------------------------------------------------------- /default/css/prettify-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | /* plain text */ 6 | .pln { 7 | color: #4d4d4c; } 8 | 9 | @media screen { 10 | /* string content */ 11 | .str { 12 | color: #718c00; } 13 | 14 | /* a keyword */ 15 | .kwd { 16 | color: #8959a8; } 17 | 18 | /* a comment */ 19 | .com { 20 | color: #8e908c; } 21 | 22 | /* a type name */ 23 | .typ { 24 | color: #4271ae; } 25 | 26 | /* a literal value */ 27 | .lit { 28 | color: #f5871f; } 29 | 30 | /* punctuation */ 31 | .pun { 32 | color: #4d4d4c; } 33 | 34 | /* lisp open bracket */ 35 | .opn { 36 | color: #4d4d4c; } 37 | 38 | /* lisp close bracket */ 39 | .clo { 40 | color: #4d4d4c; } 41 | 42 | /* a markup tag name */ 43 | .tag { 44 | color: #c82829; } 45 | 46 | /* a markup attribute name */ 47 | .atn { 48 | color: #f5871f; } 49 | 50 | /* a markup attribute value */ 51 | .atv { 52 | color: #3e999f; } 53 | 54 | /* a declaration */ 55 | .dec { 56 | color: #f5871f; } 57 | 58 | /* a variable name */ 59 | .var { 60 | color: #c82829; } 61 | 62 | /* a function name */ 63 | .fun { 64 | color: #4271ae; } } 65 | /* Use higher contrast and text-weight for printable form. */ 66 | @media print, projection { 67 | .str { 68 | color: #060; } 69 | 70 | .kwd { 71 | color: #006; 72 | font-weight: bold; } 73 | 74 | .com { 75 | color: #600; 76 | font-style: italic; } 77 | 78 | .typ { 79 | color: #404; 80 | font-weight: bold; } 81 | 82 | .lit { 83 | color: #044; } 84 | 85 | .pun, .opn, .clo { 86 | color: #440; } 87 | 88 | .tag { 89 | color: #006; 90 | font-weight: bold; } 91 | 92 | .atn { 93 | color: #404; } 94 | 95 | .atv { 96 | color: #060; } } 97 | /* Style */ 98 | /* 99 | pre.prettyprint { 100 | background: white; 101 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 102 | font-size: 12px; 103 | line-height: 1.5; 104 | border: 1px solid #ccc; 105 | padding: 10px; } 106 | */ 107 | 108 | /* Specify class=linenums on a pre to get line numbering */ 109 | ol.linenums { 110 | margin-top: 0; 111 | margin-bottom: 0; } 112 | 113 | /* IE indents via margin-left */ 114 | li.L0, 115 | li.L1, 116 | li.L2, 117 | li.L3, 118 | li.L4, 119 | li.L5, 120 | li.L6, 121 | li.L7, 122 | li.L8, 123 | li.L9 { 124 | /* */ } 125 | 126 | /* Alternate shading for lines */ 127 | li.L1, 128 | li.L3, 129 | li.L5, 130 | li.L7, 131 | li.L9 { 132 | /* */ } 133 | 134 | -------------------------------------------------------------------------------- /default/css/prettify.css: -------------------------------------------------------------------------------- 1 | /* Pretty printing styles. Used with prettify.js. */ 2 | 3 | /* SPAN elements with the classes below are added by prettyprint. */ 4 | .pln { color: #000 } /* plain text */ 5 | 6 | @media screen { 7 | .str { color: #080 } /* string content */ 8 | .kwd { color: #008 } /* a keyword */ 9 | .com { color: #800 } /* a comment */ 10 | .typ { color: #606 } /* a type name */ 11 | .lit { color: #066 } /* a literal value */ 12 | /* punctuation, lisp open bracket, lisp close bracket */ 13 | .pun, .opn, .clo { color: #660 } 14 | .tag { color: #008 } /* a markup tag name */ 15 | .atn { color: #606 } /* a markup attribute name */ 16 | .atv { color: #080 } /* a markup attribute value */ 17 | .dec, .var { color: #606 } /* a declaration; a variable name */ 18 | .fun { color: red } /* a function name */ 19 | } 20 | 21 | /* Use higher contrast and text-weight for printable form. */ 22 | @media print, projection { 23 | .str { color: #060 } 24 | .kwd { color: #006; font-weight: bold } 25 | .com { color: #600; font-style: italic } 26 | .typ { color: #404; font-weight: bold } 27 | .lit { color: #044 } 28 | .pun, .opn, .clo { color: #440 } 29 | .tag { color: #006; font-weight: bold } 30 | .atn { color: #404 } 31 | .atv { color: #060 } 32 | } 33 | 34 | /* Put a border around prettyprinted code snippets. */ 35 | pre.prettyprint { padding: 2px; border: 1px solid #888 } 36 | 37 | /* Specify class=linenums on a pre to get line numbering */ 38 | ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */ 39 | li.L0, 40 | li.L1, 41 | li.L2, 42 | li.L3, 43 | li.L5, 44 | li.L6, 45 | li.L7, 46 | li.L8 { list-style-type: none } 47 | /* Alternate shading for lines */ 48 | li.L1, 49 | li.L3, 50 | li.L5, 51 | li.L7, 52 | li.L9 { background: #eee } 53 | -------------------------------------------------------------------------------- /default/docs/app.config.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: config:app.config 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | config:app.config 49 | source 50 |

51 |
52 |
53 |
54 |
55 |
56 |

Configures ui-router's states.

57 |
58 |
59 |
Dependencies:
60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 70 | 71 | 72 | 73 |
NameTypeDescription
$urlRouterProvider 68 | Service 69 |

Watches $location and provides interface to default state

74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | 89 | 90 | 95 | 96 | -------------------------------------------------------------------------------- /default/docs/app.customCurrency.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: filter:app.customCurrency 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | filter:app.customCurrency 49 | source 50 |

51 |
52 |
53 |
54 |
55 |
56 |

returns custom currency from the given input

57 |
58 |
59 |
Dependencies:
60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 70 | 71 | 72 | 73 |
NameTypeDescription
Test 68 | $http 69 |
74 |
Tutorials:
75 | 80 |
81 |
82 |
83 |
84 |
85 |
86 |

Methods

87 |
88 |
89 | 90 |

91 | customCurrencyFilter 92 | (input, symbol, place) 93 |

94 |
95 |
96 |
97 |
98 |

. Create the return function and set the required parameter name to input 99 | . setup optional parameters for the currency symbol and location (left or right of the amount)

100 |
101 |
Parameters:
102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 112 | 113 | 114 | 115 | 116 | 119 | 120 | 121 | 122 | 123 | 126 | 127 | 128 | 129 |
NameTypeDescription
input 110 | Number|String 111 |
symbol 117 | String 118 |
place 124 | Boolean 125 |

true or false

130 |
131 |
132 |
133 |
134 |
135 | 141 | 142 | 147 | 148 | -------------------------------------------------------------------------------- /default/docs/app.testService.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: service:app.testService 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | service:app.testService 49 | source 50 |

51 |
52 |
53 |
54 |
55 |
56 |

The siteLanguageServices provides information about available languges 57 | of a site.

58 |
59 |
60 |
Dependencies:
61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 71 | 72 | 73 | 74 |
NameTypeDescription
Test 69 | $http 70 |
75 |
Properties:
76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 86 | 87 | 88 | 89 |
NameTypeDescription
obj 84 | object 85 |

property of this service

90 |
91 |
92 |
93 |
94 |
95 |
96 |

Methods

97 |
98 |
99 | 100 |

101 | test 102 | ///// NO param jsdoc tag here 103 |

104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 | 120 | 121 | 126 | 127 | -------------------------------------------------------------------------------- /default/docs/css/jsdoc-default.css: -------------------------------------------------------------------------------- 1 | /** 2 | * This is enhanced theme by Umut Topuzoglu. Thanks, Umut 3 | */ 4 | @font-face { 5 | font-family: 'Open Sans'; 6 | font-weight: normal; 7 | font-style: normal; 8 | src: url('../fonts/OpenSans-Regular-webfont.eot'); 9 | src: 10 | local('Open Sans'), 11 | local('OpenSans'), 12 | url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), 13 | url('../fonts/OpenSans-Regular-webfont.woff') format('woff'), 14 | url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg'); 15 | } 16 | 17 | @font-face { 18 | font-family: 'Open Sans Light'; 19 | font-weight: normal; 20 | font-style: normal; 21 | src: url('../fonts/OpenSans-Light-webfont.eot'); 22 | src: 23 | local('Open Sans Light'), 24 | local('OpenSans Light'), 25 | url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), 26 | url('../fonts/OpenSans-Light-webfont.woff') format('woff'), 27 | url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg'); 28 | } 29 | 30 | * { box-sizing: border-box } 31 | 32 | html 33 | { 34 | overflow: auto; 35 | background-color: #fff; 36 | font-size: 14px; 37 | } 38 | 39 | body 40 | { 41 | font-family: 'Open Sans', sans-serif; 42 | line-height: 1.5; 43 | color: #4d4e53; 44 | background-color: white; 45 | } 46 | 47 | a, a:visited, a:active { 48 | color: #0095dd; 49 | text-decoration: none; 50 | } 51 | 52 | a:hover { 53 | text-decoration: underline; 54 | } 55 | 56 | header 57 | { 58 | display: block; 59 | padding: 0px 4px; 60 | } 61 | 62 | tt, code, kbd, samp { 63 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 64 | padding: 0 0.25em; 65 | background-color: #ddd; 66 | } 67 | 68 | .class-description { 69 | font-size: 130%; 70 | line-height: 140%; 71 | margin-bottom: 1em; 72 | margin-top: 1em; 73 | } 74 | 75 | .class-description:empty { 76 | margin: 0; 77 | } 78 | 79 | #main { 80 | float: left; 81 | width: 70%; 82 | padding-right: 20px; 83 | } 84 | 85 | article dl { 86 | margin-bottom: 40px; 87 | } 88 | 89 | section 90 | { 91 | display: block; 92 | background-color: #fff; 93 | padding: 12px 24px; 94 | border-bottom: 1px solid #ccc; 95 | margin-right: 30px; 96 | } 97 | 98 | .variation { 99 | display: none; 100 | } 101 | 102 | .signature-attributes { 103 | font-size: 60%; 104 | color: #aaa; 105 | font-style: italic; 106 | font-weight: lighter; 107 | } 108 | 109 | nav 110 | { 111 | display: block; 112 | float: right; 113 | margin-top: 28px; 114 | width: 30%; 115 | box-sizing: border-box; 116 | border-left: 1px solid #ccc; 117 | padding-left: 16px; 118 | } 119 | 120 | nav ul { 121 | font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif; 122 | font-size: 100%; 123 | line-height: 17px; 124 | padding: 0; 125 | margin: 0; 126 | list-style-type: none; 127 | } 128 | 129 | nav ul a, nav ul a:visited, nav ul a:active { 130 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 131 | line-height: 18px; 132 | color: #4D4E53; 133 | } 134 | 135 | nav h3 { 136 | margin-top: 12px; 137 | } 138 | 139 | nav li { 140 | margin-top: 6px; 141 | } 142 | 143 | footer { 144 | display: block; 145 | padding: 6px; 146 | margin-top: 12px; 147 | font-style: italic; 148 | font-size: 90%; 149 | } 150 | 151 | h1, h2, h3, h4 { 152 | font-weight: 200; 153 | margin: 0; 154 | } 155 | 156 | h1 157 | { 158 | font-family: 'Open Sans Light', sans-serif; 159 | font-size: 48px; 160 | letter-spacing: -2px; 161 | margin: 12px 24px 20px; 162 | } 163 | 164 | h2, h3 165 | { 166 | font-size: 30px; 167 | font-weight: 700; 168 | letter-spacing: -1px; 169 | margin-bottom: 12px; 170 | } 171 | 172 | h4 173 | { 174 | font-size: 18px; 175 | letter-spacing: -0.33px; 176 | margin-bottom: 12px; 177 | color: #4d4e53; 178 | } 179 | 180 | h5, .container-overview .subsection-title 181 | { 182 | font-size: 120%; 183 | font-weight: bold; 184 | letter-spacing: -0.01em; 185 | margin: 8px 0 3px 0; 186 | } 187 | 188 | h6 189 | { 190 | font-size: 100%; 191 | letter-spacing: -0.01em; 192 | margin: 6px 0 3px 0; 193 | font-style: italic; 194 | } 195 | 196 | .ancestors { color: #999; } 197 | .ancestors a 198 | { 199 | color: #999 !important; 200 | text-decoration: none; 201 | } 202 | 203 | .clear 204 | { 205 | clear: both; 206 | } 207 | 208 | .important 209 | { 210 | font-weight: bold; 211 | color: #950B02; 212 | } 213 | 214 | .yes-def { 215 | text-indent: -1000px; 216 | } 217 | 218 | .type-signature { 219 | color: #aaa; 220 | } 221 | 222 | .name, .signature { 223 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 224 | } 225 | 226 | .details { margin-top: 14px; border-left: 2px solid #DDD; } 227 | .details dt { width: 120px; float: left; padding-left: 10px; padding-top: 6px; } 228 | .details dd { margin-left: 70px; } 229 | .details ul { margin: 0; } 230 | .details ul { list-style-type: none; } 231 | .details li { margin-left: 30px; padding-top: 6px; } 232 | .details pre.prettyprint { margin: 0 } 233 | .details .object-value { padding-top: 0; } 234 | 235 | .description { 236 | margin-bottom: 1em; 237 | margin-top: 1em; 238 | } 239 | 240 | .code-caption 241 | { 242 | font-style: italic; 243 | font-size: 107%; 244 | margin: 0; 245 | } 246 | 247 | .prettyprint 248 | { 249 | border: 1px solid #ddd; 250 | width: 80%; 251 | overflow: auto; 252 | } 253 | 254 | .prettyprint.source { 255 | width: inherit; 256 | } 257 | 258 | .prettyprint code 259 | { 260 | font-size: 100%; 261 | line-height: 18px; 262 | display: block; 263 | margin: 0; 264 | background-color: #fff; 265 | color: #4D4E53; 266 | } 267 | 268 | .prettyprint code span.line 269 | { 270 | display: inline-block; 271 | } 272 | 273 | .prettyprint.linenums 274 | { 275 | padding-left: 70px; 276 | -webkit-user-select: none; 277 | -moz-user-select: none; 278 | -ms-user-select: none; 279 | user-select: none; 280 | } 281 | 282 | .prettyprint.linenums ol 283 | { 284 | padding-left: 0; 285 | } 286 | 287 | .prettyprint.linenums li 288 | { 289 | border-left: 3px #ddd solid; 290 | } 291 | 292 | .prettyprint.linenums li.selected, 293 | .prettyprint.linenums li.selected * 294 | { 295 | background-color: lightyellow; 296 | } 297 | 298 | .prettyprint.linenums li * 299 | { 300 | -webkit-user-select: text; 301 | -moz-user-select: text; 302 | -ms-user-select: text; 303 | user-select: text; 304 | } 305 | 306 | .params, .props 307 | { 308 | border-spacing: 0; 309 | border: 0; 310 | border-collapse: collapse; 311 | } 312 | 313 | .params .name, .props .name, .name code { 314 | color: #4D4E53; 315 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 316 | font-size: 100%; 317 | } 318 | 319 | .params td, .params th, .props td, .props th 320 | { 321 | border: 1px solid #ddd; 322 | margin: 0px; 323 | text-align: left; 324 | vertical-align: top; 325 | padding: 4px 6px; 326 | display: table-cell; 327 | } 328 | 329 | .params thead tr, .props thead tr 330 | { 331 | background-color: #ddd; 332 | font-weight: bold; 333 | } 334 | 335 | .params .params thead tr, .props .props thead tr 336 | { 337 | background-color: #fff; 338 | font-weight: bold; 339 | } 340 | 341 | .params th, .props th { border-right: 1px solid #aaa; } 342 | .params thead .last, .props thead .last { border-right: 1px solid #ddd; } 343 | 344 | .params td.description > p:first-child, 345 | .props td.description > p:first-child 346 | { 347 | margin-top: 0; 348 | padding-top: 0; 349 | } 350 | 351 | .params td.description > p:last-child, 352 | .props td.description > p:last-child 353 | { 354 | margin-bottom: 0; 355 | padding-bottom: 0; 356 | } 357 | 358 | .disabled { 359 | color: #454545; 360 | } 361 | -------------------------------------------------------------------------------- /default/docs/css/prettify-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | /* plain text */ 6 | .pln { 7 | color: #4d4d4c; } 8 | 9 | @media screen { 10 | /* string content */ 11 | .str { 12 | color: #718c00; } 13 | 14 | /* a keyword */ 15 | .kwd { 16 | color: #8959a8; } 17 | 18 | /* a comment */ 19 | .com { 20 | color: #8e908c; } 21 | 22 | /* a type name */ 23 | .typ { 24 | color: #4271ae; } 25 | 26 | /* a literal value */ 27 | .lit { 28 | color: #f5871f; } 29 | 30 | /* punctuation */ 31 | .pun { 32 | color: #4d4d4c; } 33 | 34 | /* lisp open bracket */ 35 | .opn { 36 | color: #4d4d4c; } 37 | 38 | /* lisp close bracket */ 39 | .clo { 40 | color: #4d4d4c; } 41 | 42 | /* a markup tag name */ 43 | .tag { 44 | color: #c82829; } 45 | 46 | /* a markup attribute name */ 47 | .atn { 48 | color: #f5871f; } 49 | 50 | /* a markup attribute value */ 51 | .atv { 52 | color: #3e999f; } 53 | 54 | /* a declaration */ 55 | .dec { 56 | color: #f5871f; } 57 | 58 | /* a variable name */ 59 | .var { 60 | color: #c82829; } 61 | 62 | /* a function name */ 63 | .fun { 64 | color: #4271ae; } } 65 | /* Use higher contrast and text-weight for printable form. */ 66 | @media print, projection { 67 | .str { 68 | color: #060; } 69 | 70 | .kwd { 71 | color: #006; 72 | font-weight: bold; } 73 | 74 | .com { 75 | color: #600; 76 | font-style: italic; } 77 | 78 | .typ { 79 | color: #404; 80 | font-weight: bold; } 81 | 82 | .lit { 83 | color: #044; } 84 | 85 | .pun, .opn, .clo { 86 | color: #440; } 87 | 88 | .tag { 89 | color: #006; 90 | font-weight: bold; } 91 | 92 | .atn { 93 | color: #404; } 94 | 95 | .atv { 96 | color: #060; } } 97 | /* Style */ 98 | /* 99 | pre.prettyprint { 100 | background: white; 101 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 102 | font-size: 12px; 103 | line-height: 1.5; 104 | border: 1px solid #ccc; 105 | padding: 10px; } 106 | */ 107 | 108 | /* Specify class=linenums on a pre to get line numbering */ 109 | ol.linenums { 110 | margin-top: 0; 111 | margin-bottom: 0; } 112 | 113 | /* IE indents via margin-left */ 114 | li.L0, 115 | li.L1, 116 | li.L2, 117 | li.L3, 118 | li.L4, 119 | li.L5, 120 | li.L6, 121 | li.L7, 122 | li.L8, 123 | li.L9 { 124 | /* */ } 125 | 126 | /* Alternate shading for lines */ 127 | li.L1, 128 | li.L3, 129 | li.L5, 130 | li.L7, 131 | li.L9 { 132 | /* */ } 133 | 134 | -------------------------------------------------------------------------------- /default/docs/css/prettify.css: -------------------------------------------------------------------------------- 1 | /* Pretty printing styles. Used with prettify.js. */ 2 | 3 | /* SPAN elements with the classes below are added by prettyprint. */ 4 | .pln { color: #000 } /* plain text */ 5 | 6 | @media screen { 7 | .str { color: #080 } /* string content */ 8 | .kwd { color: #008 } /* a keyword */ 9 | .com { color: #800 } /* a comment */ 10 | .typ { color: #606 } /* a type name */ 11 | .lit { color: #066 } /* a literal value */ 12 | /* punctuation, lisp open bracket, lisp close bracket */ 13 | .pun, .opn, .clo { color: #660 } 14 | .tag { color: #008 } /* a markup tag name */ 15 | .atn { color: #606 } /* a markup attribute name */ 16 | .atv { color: #080 } /* a markup attribute value */ 17 | .dec, .var { color: #606 } /* a declaration; a variable name */ 18 | .fun { color: red } /* a function name */ 19 | } 20 | 21 | /* Use higher contrast and text-weight for printable form. */ 22 | @media print, projection { 23 | .str { color: #060 } 24 | .kwd { color: #006; font-weight: bold } 25 | .com { color: #600; font-style: italic } 26 | .typ { color: #404; font-weight: bold } 27 | .lit { color: #044 } 28 | .pun, .opn, .clo { color: #440 } 29 | .tag { color: #006; font-weight: bold } 30 | .atn { color: #404 } 31 | .atv { color: #060 } 32 | } 33 | 34 | /* Put a border around prettyprinted code snippets. */ 35 | pre.prettyprint { padding: 2px; border: 1px solid #888 } 36 | 37 | /* Specify class=linenums on a pre to get line numbering */ 38 | ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */ 39 | li.L0, 40 | li.L1, 41 | li.L2, 42 | li.L3, 43 | li.L5, 44 | li.L6, 45 | li.L7, 46 | li.L8 { list-style-type: none } 47 | /* Alternate shading for lines */ 48 | li.L1, 49 | li.L3, 50 | li.L5, 51 | li.L7, 52 | li.L9 { background: #eee } 53 | -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /default/docs/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/docs/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /default/docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: Index 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | Index 49 |

50 |
51 |
52 |
53 |

Sample Code

This is markdown README.md

54 |
55 |
56 |
57 | 63 | 64 | 69 | 70 | -------------------------------------------------------------------------------- /default/docs/ngmap.MapController.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: controller:ngmap.MapController 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | controller:ngmap.MapController 49 | source 50 |

51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
Dependencies:
59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 69 | 70 | 71 | 72 | 73 | 76 | 77 | 78 | 79 | 80 | 83 | 84 | 85 | 86 | 87 | 90 | 91 | 92 | 93 | 94 | 97 | 98 | 99 | 100 |
NameTypeDescription
$scope 67 | service 68 |

controller scope

$q 74 | service 75 |

promise service

NavigatorGeolocation 81 | service 82 |

Google NavigatorGeolocation wrapper

GeoCoder 88 | service 89 |

Google GeoCoder wrapper

Attr2Options 95 | service 96 |

Converts element attributes to Google Maps API options

101 |
102 |
103 |
104 |
105 |
106 |
107 |

Methods

108 |
109 |
110 | 111 |

112 | addObject 113 |

114 |
115 |
116 |
117 |
118 |

Add an object to the collection of group

119 |
120 |
121 |
122 | 123 |

124 | deleteObject 125 | (objs, obj) 126 |

127 |
128 |
129 |
130 |
131 |

Delete an object from the collection and remove from map

132 |
133 |
Parameters:
134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 144 | 145 | 146 | 147 | 148 | 151 | 152 | 153 | 154 |
NameTypeDescription
objs 142 | Array 143 |

the collection of objects. i.e., map.markers

obj 149 | Object 150 |

the object to be removed. i.e., marker

155 |
156 |
157 | 158 |

159 | getGeoLocation 160 | (string) 161 |

162 |
163 |
164 |
165 |
166 |

returns the location of an address or 'current-location'

167 |
168 |
Parameters:
169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 179 | 180 | 181 | 182 |
NameTypeDescription
string 177 | String 178 |

an address to find the location

183 |
Returns:
184 |

latlng the location of the address

185 |
186 |
187 |
188 |
189 |
190 | 196 | 197 | 202 | 203 | -------------------------------------------------------------------------------- /default/docs/source/app.config.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: Source:config.js 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | Source:config.js 49 |

50 |
51 |
52 |
(function () {
53 |     'use strict';
54 |     angular
55 |     .module('app')
56 |     .config(stateConfig)
57 |    /**
58 |     * Configures ui-router's states.
59 |     * @memberof app
60 |     * @ngdoc config
61 |     * @name config
62 |     * @param {Service} $urlRouterProvider Watches $location and provides interface to default state
63 |     */
64 |     function stateConfig($urlRouterProvider) {
65 |         $urlRouterProvider.otherwise('/search')
66 |     }
67 | })();
68 | 
69 |
70 |
71 | 77 | 78 | 83 | 84 | -------------------------------------------------------------------------------- /default/docs/source/app.customCurrency.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: Source:custom-currency.js 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | Source:custom-currency.js 49 |

50 |
51 |
52 |
/**
 53 |  * The siteLanguageServices provides information about available languges
 54 |  * of a site.
 55 |  *
 56 |  * @memberof app
 57 |  * @ngdoc filter
 58 |  * @name customCurrency
 59 |  * @param {$http} Test
 60 |  * @desc
 61 |  *  returns custom currency from the given input
 62 |  * @tutorial tutorial1
 63 |  */
 64 | (function() {
 65 |   'use strict';
 66 |   var customCurrency = function($http) { 
 67 |     /**
 68 |      * @func customCurrencyFilter
 69 |      * @memberof customCurrency
 70 |      * @desc
 71 |      *  . Create the return function and set the required parameter name to **input**
 72 |      *  . setup optional parameters for the currency symbol and location (left or right of the amount)
 73 |      * @param {Number|String} input
 74 |      * @param {String} symbol
 75 |      * @param {Boolean} place  true or false
 76 |      */
 77 |     return function(input, symbol, place) {
 78 |       // Ensure that we are working with a number
 79 |       if(isNaN(input)) {
 80 |         return input;
 81 |       } else {
 82 |         // Check if optional parameters are passed, if not, use the defaults
 83 |         var symbol = symbol || '$';
 84 |         var place = place === undefined ? true : place;
 85 |         // Perform the operation to set the symbol in the right location
 86 |         if( place === true) {
 87 |           return symbol + input;
 88 |         } else {
 89 |           return input + symbol;
 90 |         }
 91 |       }
 92 |     }
 93 |   };
 94 |   angular.module('app').filter('customCurrency', customCurrency);
 95 | })();
 96 | 
97 |
98 |
99 | 105 | 106 | 111 | 112 | -------------------------------------------------------------------------------- /default/docs/source/app.testService.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: Source:test-service.js 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | Source:test-service.js 49 |

50 |
51 |
52 |
(function () {
53 |   'use strict';
54 |   angular.module('app').service('testService', testService);
55 |   /**
56 |    * @memberof app
57 |    * @ngdoc service
58 |    * @name testService
59 |    * @param {$http} Test
60 |    * @property {object} obj property of this service
61 |    * @ngInject
62 |    * @desc The siteLanguageServices provides information about available languges
63 |    * of a site.
64 |    *
65 |    */
66 |   function testService ($http) {
67 |     /** @property {object} obj property of this service */
68 |     var obj = {};
69 |      /**
70 |       * @memberof testService
71 |       * @method test
72 |       * ///// NO param jsdoc tag here
73 |       */
74 |     function test() {
75 |     }
76 |   }
77 | })();
78 | 
79 |
80 |
81 | 87 | 88 | 93 | 94 | -------------------------------------------------------------------------------- /default/docs/source/ngmap.Attr2Options.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: Source:attr2-options.js 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | Source:attr2-options.js 49 |

50 |
51 |
52 |
(function() {
 53 |   'use strict';
 54 |   /**
 55 |    * @memberof ngmap
 56 |    * @ngdoc service
 57 |    * @name Attr2Options
 58 |    * @param {service} $parse angular html parser
 59 |    * @param {service} $timeout angular window.setTimeout service
 60 |    * @param {service} NavigatorGeolocation Google NavigatorGeolocation wrapper
 61 |    * @param {service} GeoCoder Google GeoCoder wrapper
 62 |    * @description 
 63 |    *   Converts html attributes to google api v3 object options
 64 |    */
 65 |   var Attr2Options = function($parse, $timeout, NavigatorGeolocation, GeoCoder) { 
 66 |     /**
 67 |      * Convert input to Google Map option input
 68 |      * @memberof Attr2Options
 69 |      * @param {Objec} input a value to convert
 70 |      * @param {Hash} options to convert the input
 71 |      * @returns {Hash} attributes
 72 |      */
 73 |     var toOptionValue = function(input, options) {
 74 |       // .. code ..
 75 |     };
 76 |     /**
 77 |      * filters attributes by skipping angularjs methods $.. $$..
 78 |      * @memberof Attr2Options
 79 |      * @param {Hash} attrs tag attributes
 80 |      * @returns {Hash} filterd attributes
 81 |      */
 82 |     var filter = function(attrs) {
 83 |       // .. code ..
 84 |     };
 85 |     /**
 86 |      * converts attributes hash to Google Maps API v3 options  
 87 |      * ```
 88 |      *  . converts numbers to number   
 89 |      *  . converts class-like string to google maps instance   
 90 |      *    i.e. `LatLng(1,1)` to `new google.maps.LatLng(1,1)`  
 91 |      *  . converts constant-like string to google maps constant    
 92 |      *    i.e. `MapTypeId.HYBRID` to `google.maps.MapTypeId.HYBRID`   
 93 |      *    i.e. `HYBRID"` to `google.maps.MapTypeId.HYBRID`  
 94 |      * ```
 95 |      * @memberof Attr2Options
 96 |      * @param {Hash} attrs tag attributes
 97 |      * @param {scope} scope angularjs scope
 98 |      * @returns {Hash} options converted attributess
 99 |      */
100 |     var getOptions = function(attrs, scope) {
101 |       // .. code ..
102 |     };
103 |     /**
104 |      * converts attributes hash to scope-specific event function 
105 |      * @memberof Attr2Options
106 |      * @param {scope} scope angularjs scope
107 |      * @param {Hash} attrs tag attributes
108 |      * @returns {Hash} events converted events
109 |      */
110 |     var getEvents = function(scope, attrs) {
111 |       // .. code ..
112 |     };
113 |     /**
114 |      * Return options of Google map control, i.e streetview, pan, etc, not a general control
115 |      * @memberof Attr2Options
116 |      * @param {Hash} filtered filtered tag attributes
117 |      * @returns {Hash} Google Map options
118 |      */
119 |     var getControlOptions = function(filtered) {
120 |       // .. code ..
121 |     };
122 |     return {
123 |       filter: filter,
124 |       getOptions: getOptions,
125 |       getEvents: getEvents,
126 |       getControlOptions: getControlOptions,
127 |       toOptionValue: toOptionValue,
128 |       orgAttributes: orgAttributes
129 |     }; // return
130 |   }; 
131 |   angular.module('ngMap').service('Attr2Options', Attr2Options);
132 | })();
133 | 
134 |
135 |
136 | 142 | 143 | 148 | 149 | -------------------------------------------------------------------------------- /default/docs/source/ngmap.MapController.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: Source:map-controller.js 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | Source:map-controller.js 49 |

50 |
51 |
52 |
(function() {
 53 |   'use strict';
 54 |   /**
 55 |    * @memberof ngmap
 56 |    * @ngdoc controller
 57 |    * @name MapController
 58 |    * @param $scope {service} controller scope
 59 |    * @param $q {service} promise service
 60 |    * @param NavigatorGeolocation {service} Google NavigatorGeolocation wrapper
 61 |    * @param GeoCoder {service} Google GeoCoder wrapper
 62 |    * @param Attr2Options {service} Converts element attributes to Google Maps API options
 63 |    */
 64 |   var MapController = function($scope, $q, NavigatorGeolocation, GeoCoder, Attr2Options) { 
 65 |     /**
 66 |      * @property {Hash} _objects collection og objects that belongs to this map
 67 |      */
 68 |     this._objects = {};
 69 |     /**
 70 |      * Add an object to the collection of group
 71 |      * @memberof MapController
 72 |      * @function addObject
 73 |      * @param groupName the name of collection that object belongs to
 74 |      * @param obj  an object to add into a collection, i.e. marker, shape
 75 |      */
 76 |     this.addObject = function(groupName, obj) {
 77 |       // .. code ..
 78 |     };
 79 |     /**
 80 |      * Delete an object from the collection and remove from map
 81 |      * @memberof MapController
 82 |      * @function deleteObject
 83 |      * @param {Array} objs the collection of objects. i.e., map.markers
 84 |      * @param {Object} obj the object to be removed. i.e., marker
 85 |      */
 86 |     this.deleteObject = function(groupName, obj) {
 87 |       // .. code ..
 88 |     };
 89 |     /**
 90 |      * returns the location of an address or 'current-location'
 91 |      * @memberof MapController
 92 |      * @function getGeoLocation
 93 |      * @param {String} string an address to find the location
 94 |      * @returns {Promise} latlng the location of the address
 95 |      */
 96 |     this.getGeoLocation = function(string) {
 97 |       // .. code ..
 98 |     };
 99 |   };
100 |   angular.module('ngMap').controller('MapController', MapController);
101 | })();
102 | 
103 |
104 |
105 | 111 | 112 | 117 | 118 | -------------------------------------------------------------------------------- /default/docs/source/ngmap.map.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: Source:map.js 6 | 7 | 8 | 9 | 10 | 11 | 47 |

48 | Source:map.js 49 |

50 |
51 |
52 |
(function () {
 53 |   'use strict';
 54 |   /**
 55 |    * @memberof ngmap
 56 |    * @ngdoc directive
 57 |    * @name map
 58 |    * @param  {service} Attr2Options Converts html attributes to Google map options
 59 |    * @param  {service} $timeout     Angular window.setTimeout wrapper 
 60 |    * @param  {service} $parse       Angular html parser
 61 |    * @description
 62 |    *   Implementation of MapController
 63 |    *   Initialize a Google map within a `<div>` tag with given options and register events
 64 |    *   It accepts children directives; marker, shape, or marker-clusterer
 65 |    *
 66 |    *   It initialize map, children tags, then emits message as soon as the action is done
 67 |    *   The message emitted from this directive is;
 68 |    *     . mapInitialized
 69 |    *
 70 |    * @attr {Expression} geo-callback 
 71 |    *    If center is an address or current location, the expression is will be executed 
 72 |    *    when geo-lookup is successful. e.g., geo-callback="showMyStoreInfo()"
 73 |    * @attr {Array} geo-fallback-center  The center of map incase geolocation failed. i.e. [0,0]
 74 |    * @attr {Boolean} zoom-to-include-markers
 75 |    *    If true, map boundary will be changed automatially to include all markers when initialized
 76 |    * @attr {Boolean} default-style
 77 |    *    When false, the default styling, `display:block;height:300px`, will be ignored.
 78 |    * @attr {String} init-event The name of event to initialize this map.
 79 |    *    If this option is given, the map won't be initialized until the event is received.
 80 |    *    To invoke the event, use $scope.$emit or $scope.$broacast.
 81 |    *    i.e. `<map init-event="init-map" ng-click="$emit('init-map')" center=... ></map>`
 82 |    * @attr {String} <MapOption> [Any Google map options](https://developers.google.com/maps/documentation/javascript/reference?csw=1#MapOptions)
 83 |    * @attr {String} <MapEvent> [Any Google map events](https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/map_events.html)
 84 |    * @example
 85 |    *   Usage:
 86 |    *   <map MAP_OPTIONS_OR_MAP_EVENTS ..>
 87 |    *     ... Any children directives
 88 |    *   </map>
 89 |    *
 90 |    *   <map center="[40.74, -74.18]" on-click="doThat()">
 91 |    *   </map>
 92 |    *
 93 |    *   <map geo-fallback-center="[40.74, -74.18]" zoom-to-inlude-markers="true">
 94 |    *   </map>
 95 |    */
 96 |   var map = function(Attr2Options, $timeout, $parse) {
 97 |     /**
 98 |      * Initialize map and events
 99 |      * @memberof map
100 |      * @param {service} scope the scope of this element
101 |      * @param {service} element element that this direcive is assigned to
102 |      * @param {service}   attrs attribute of this element
103 |      * @param {MapController} ctrl map controller
104 |      */
105 |     var linkFunc = function (scope, element, attrs, ctrl) {
106 |       // .. code ..
107 |     };
108 |     return {
109 |       restrict: 'AE',
110 |       controller: 'MapController',
111 |       link: linkFunc,
112 |       templateUrl: 'sample-codes/ngmap/test-template.html'
113 |     };
114 |   };
115 |   angular.module('ngMap').directive('map', map);
116 | })();
117 | 
118 |
119 |
120 | 126 | 127 | 132 | 133 | -------------------------------------------------------------------------------- /default/docs/tutorial-childA.html: -------------------------------------------------------------------------------- 1 |
2 |

Child A

3 |
4 |

child A

5 |

This 6 | is 7 | test 8 | tutorial

9 |
10 |
-------------------------------------------------------------------------------- /default/docs/tutorial-childB.html: -------------------------------------------------------------------------------- 1 |
2 |

Child B

3 |
4 |

child B

5 |

test

6 |
7 |
-------------------------------------------------------------------------------- /default/docs/tutorial-my-tutorial.html: -------------------------------------------------------------------------------- 1 |
2 |

Tutorial Two

3 |
4 | test tutorial 5 | test tutorial 6 |
7 |
-------------------------------------------------------------------------------- /default/docs/tutorial-tutorial1.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 11 |
12 |

Tutorial One

13 |
14 |

This 15 | is 16 | test 17 | tutorial

18 |
19 |
-------------------------------------------------------------------------------- /default/docs/tutorial-tutorial2.html: -------------------------------------------------------------------------------- 1 |
2 |

tutorial2

3 |
4 |

tutorial 2

5 |

This 6 | is 7 | test 8 | tutorial

9 |
10 |
-------------------------------------------------------------------------------- /default/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /default/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /default/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /default/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /default/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /default/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /default/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /default/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /default/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /default/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /default/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /default/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allenhwkim/angular-jsdoc/fa74860367a3b5220a132f0d91f33e4c0beec195/default/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /default/html/class.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 | <%= description %> 6 |
7 |
8 | <% if (params) { %> 9 |
Dependencies:
10 | 11 | 12 | 13 | 14 | 15 | <% params.forEach(function(param) { %> 16 | 17 | 18 | 21 | 22 | 23 | <% }); %> 24 | 25 |
NameTypeDescription
<%= param.name %> 19 | <%= param.typeDefinitionUrl %> 20 | <%= param.description %>
26 | <% } %> 27 | <% if (properties) { %> 28 |
Properties:
29 | 30 | 31 | 32 | 33 | 34 | <% properties.forEach(function(prop) { %> 35 | 36 | 37 | 40 | 41 | 42 | <% }); %> 43 | 44 |
NameTypeDescription
<%= prop.name %> 38 | <%= prop.typeDefinitionUrl %> 39 | <%= prop.description %>
45 | <% } %> 46 | <% if (attributes) { %> 47 |
Attributes:
48 | 49 | 50 | 51 | 52 | 53 | <% attributes.forEach(function(attr) { %> 54 | 55 | 56 | 59 | 60 | 61 | <% }); %> 62 | 63 |
NameTypeDescription
<%= attr.name %> 57 | <%= attr.typeDefinitionUrl %> 58 | <%= marked(attr.description||'') %>
64 | <% } %> 65 | <% if (requires) { %> 66 |
Dependencies
67 |
    68 | <% requires.forEach(function(el) { %> 69 |
  • <%= el %> Service
  • 70 | <% }); %> 71 |
72 | <% } %> 73 | <% if (typeof examples !== 'undefined' && examples.length) { %> 74 |
Example
75 | <% examples.forEach(function(example) { %> 76 |
<%= example.code.replace(/
77 | <% }); %> 78 | <% } %> 79 | 80 | <% if (typeof tutorials !== 'undefined' && tutorials.length) { %> 81 |
Tutorials:
82 |
    83 | <% tutorials.forEach(function(tutorial) { %> 84 |
  • 85 | <%= tutoriallink(tutorial) %> 86 |
  • 87 | <% }); %> 88 |
89 | <% } %> 90 | 91 |
92 |
93 | 94 |
95 |
96 | <% if (children.member) { %> 97 |

Members

98 |
99 | <% children.member.forEach(function(member) { %> 100 |
101 | 102 |

<%= member.name %>

103 |
104 |
105 |
106 |
<%= member.description %>
107 |
108 | <% }); %> 109 |
110 | <% } %> 111 |
112 |
113 | <% if (children.function) { %> 114 |

Methods

115 |
116 | <% children.function.forEach(function(func) { %> 117 |
118 | 119 |

120 | <%= func.name %> 121 | <% if (func.params) { %> 122 | (<%= func.params.map(function(param){return param.name;}).join(", ") %>) 123 | <% } %> 124 | <% if (func.returns && func.returns.type) { %> 125 | 126 | -> <%= func.returns[0].type.names.join(" | ") %> 127 | 128 | <% } %> 129 |

130 |
131 |
132 |
133 |
134 | <%= func.description %> 135 |
136 | <% if (func.examples && func.examples.length) { %> 137 |
Example
138 | <% func.examples.forEach(function(example) { %> 139 |
<%= example.code.replace(/
140 | <% }); %> 141 | <% } %> 142 | <% if (func.params) { %> 143 |
Parameters:
144 | 145 | 146 | 147 | 148 | 149 | <% func.params.forEach(function(param) { %> 150 | 151 | 152 | 155 | 156 | 157 | <% }); %> 158 | 159 |
NameTypeDescription
<%= param.name %> 153 | <%= param.typeDefinitionUrl %> 154 | <%= param.description %>
160 | <% } %> 161 | <% if (func.returns) { %> 162 | <% var ret = func.returns[0];%> 163 |
Returns:
164 |
<%= ret.description %>
165 | <% } %> 166 |
167 | <% }); %> 168 |
169 | <% } %> 170 |
171 |
172 | -------------------------------------------------------------------------------- /default/html/layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: <%= title %> 6 | 7 | 8 | 9 | 10 | 11 | 29 | 30 |

31 | <%= title %> 32 | <% if (data.longname) { %> 33 | source 34 | <% } %> 35 |

36 | 37 |
38 | <% if (data.code) { %> 39 |
40 |
<%= code %>
41 |
42 | <% } else if (data.readme) { %> 43 |
44 |
45 | <%= data.readme %> 46 |
47 |
48 | <% } else { %> 49 | <%= include(basePath+'/html/class.html', data) %> 50 | <% } %> 51 |
52 | 53 | 59 | 60 | 61 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /default/html/tutorial.html: -------------------------------------------------------------------------------- 1 |
2 | <% if (tutorialData && tutorialData.children.length) { %> 3 |
4 |
    5 | <% tutorialData.children.forEach(function(t) { %> 6 |
  • 7 | <%= tutoriallink(t.name) %> 8 |
  • 9 | <% }); %> 10 |
11 |
12 | <% } %> 13 | 14 |

<%= tutorialData.header %>

15 |
16 | <%= tutorialData.content %> 17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var bump = require('gulp-bump'); 3 | var shell = require('gulp-shell'); 4 | var tap = require('gulp-tap'); 5 | var gutil = require('gulp-util'); 6 | var bumpVersion = function(type) { 7 | type = type || 'patch'; 8 | var version = ''; 9 | gulp.src(['./bower.json', './package.json']) 10 | .pipe(bump({type: type})) 11 | .pipe(gulp.dest('./')) 12 | .pipe(tap(function(file, t) { 13 | version = JSON.parse(file.contents.toString()).version; 14 | })).on('end', function() { 15 | var color = gutil.colors; 16 | gulp.src('') 17 | .pipe(shell([ 18 | 'git commit --all --message "Version ' + version + '"', 19 | (type != 'patch' ? 'git tag --annotate "v' + version + '" --message "Version ' + version + '"' : 'true') 20 | ], {ignoreErrors: false})) 21 | .pipe(tap(function() { 22 | gutil.log(color.green("Version bumped to ") + color.yellow(version) + color.green(", don't forget to push!")); 23 | })); 24 | }); 25 | 26 | }; 27 | 28 | gulp.task('bump', function() { bumpVersion('patch'); }); 29 | gulp.task('bump:patch', function() { bumpVersion('patch'); }); 30 | gulp.task('bump:minor', function() { bumpVersion('minor'); }); 31 | gulp.task('bump:major', function() { bumpVersion('major'); }); 32 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var spawn = require('child_process').spawn; 4 | var extend = require('util')._extend; 5 | var path = require('path'); 6 | var Q = require('q'); 7 | var util = require("util"); 8 | 9 | /** 10 | * execute shell command 11 | */ 12 | var runCommand = function(cmd, args) { 13 | var deferred = Q.defer(); 14 | 15 | console.log("cwd is: " + __dirname); 16 | console.log("angularJsdoc Running command\n", cmd, args.join(" ")); 17 | 18 | var child = (process.platform === "win32") 19 | // For windows need to spawn a "cmd" instance and pass the command to it 20 | ? spawn("cmd", ["/C", cmd + " " + args.join(" ")], { cwd: process.env.PWD, env: process.env}) 21 | : spawn(cmd, args); 22 | 23 | var result = ""; 24 | 25 | child.stdout.on("data", function(data) { 26 | result += data; 27 | }); 28 | child.stderr.on("data", function(data) { result += data; }); 29 | child.stdout.on("end", function() { deferred.resolve(result); }); 30 | 31 | return deferred.promise; 32 | }; 33 | 34 | /** 35 | * main function 36 | */ 37 | var angularJsdoc = function(dirs, optionsArg, callback) { 38 | optionsArg = optionsArg || {}; 39 | dirs = Array.isArray(dirs) ? dirs : dirs.split(" "); 40 | 41 | //default values 42 | var command = optionsArg.command || util.format("node %s", path.join("node_modules", "jsdoc", "jsdoc.js")); 43 | 44 | var options = extend({ 45 | configure: path.join(__dirname, "common", "conf.json"), 46 | template: path.join(__dirname, "default"), 47 | destination: "docs", 48 | readme: 'README.md' 49 | }, optionsArg); 50 | 51 | // if given template a single word including dash 52 | if (optionsArg.template && optionsArg.template.match(/^[\w-]+$/i)) { 53 | options.template = path.join(__dirname, optionsArg.template); 54 | }; 55 | 56 | var args = [ 57 | '--configure', options.configure, 58 | '--template', options.template, 59 | '--destination', options.destination, 60 | '--readme', options.readme 61 | ]; 62 | args = args.concat(['--recurse']).concat(dirs); 63 | runCommand(command, args).then(function(output) { 64 | callback && callback(output); 65 | }); 66 | }; 67 | 68 | module.exports = angularJsdoc; 69 | 70 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-jsdoc", 3 | "version": "1.5.0", 4 | "description": "JsDoc Plugin and Template for AngularJs", 5 | "main": "index.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "git@github.com:allenhwkim/angular-jsdoc.git" 9 | }, 10 | "scripts": { 11 | "test": "./test.sh" 12 | }, 13 | "author": { 14 | "name": "Allen Kim", 15 | "email": "allenhwkim@gmail.com" 16 | }, 17 | "contributors": [ 18 | { 19 | "name": "Florian Zemke", 20 | "email": "flzemke@gmail.com", 21 | "url": "http://github.com/Zemke" 22 | } 23 | ], 24 | "license": "MIT", 25 | "dependencies": { 26 | "angular-template": "^2.3.1", 27 | "js-template": "~0.1.3", 28 | "jsdoc": "^3.5.5", 29 | "marked": "^0.3.5", 30 | "q": "^1.4.1" 31 | }, 32 | "devDependencies": { 33 | "gulp": "~3.8.5", 34 | "gulp-bump": "~0.1.10", 35 | "gulp-shell": "~0.2.7", 36 | "gulp-tap": "~0.1.1", 37 | "gulp-util": "~2.2.19" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /sample-codes/README.md: -------------------------------------------------------------------------------- 1 | Sample Code 2 | ========== 3 | 4 | This is markdown README.md 5 | -------------------------------------------------------------------------------- /sample-codes/app/config.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | angular 5 | .module('app') 6 | .config(stateConfig) 7 | 8 | /** 9 | * Configures ui-router's states. 10 | * @memberof app 11 | * @ngdoc config 12 | * @name config 13 | * @param {Service} $urlRouterProvider Watches $location and provides interface to default state 14 | */ 15 | 16 | function stateConfig($urlRouterProvider) { 17 | $urlRouterProvider.otherwise('/search') 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /sample-codes/app/custom-currency.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The siteLanguageServices provides information about available languges 3 | * of a site. 4 | * 5 | * @memberof app 6 | * @ngdoc filter 7 | * @name customCurrency 8 | * @param {$http} Test 9 | * @desc 10 | * returns custom currency from the given input 11 | * @tutorial tutorial1 12 | */ 13 | (function() { 14 | 'use strict'; 15 | var customCurrency = function($http) { 16 | 17 | 18 | /** 19 | * @func customCurrencyFilter 20 | * @memberof customCurrency 21 | * @desc 22 | * . Create the return function and set the required parameter name to **input** 23 | * . setup optional parameters for the currency symbol and location (left or right of the amount) 24 | * @param {Number|String} input 25 | * @param {String} symbol 26 | * @param {Boolean} place true or false 27 | */ 28 | return function(input, symbol, place) { 29 | 30 | // Ensure that we are working with a number 31 | if(isNaN(input)) { 32 | return input; 33 | } else { 34 | 35 | // Check if optional parameters are passed, if not, use the defaults 36 | var symbol = symbol || '$'; 37 | var place = place === undefined ? true : place; 38 | 39 | // Perform the operation to set the symbol in the right location 40 | if( place === true) { 41 | return symbol + input; 42 | } else { 43 | return input + symbol; 44 | } 45 | 46 | } 47 | } 48 | }; 49 | 50 | angular.module('app').filter('customCurrency', customCurrency); 51 | })(); 52 | 53 | -------------------------------------------------------------------------------- /sample-codes/app/test-service.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | angular.module('app').service('testService', testService); 5 | 6 | /** 7 | * @memberof app 8 | * @ngdoc service 9 | * @name testService 10 | * @param {$http} Test 11 | * @property {object} obj property of this service 12 | * @ngInject 13 | * @desc The siteLanguageServices provides information about available languges 14 | * of a site. 15 | * 16 | */ 17 | function testService ($http) { 18 | 19 | /** @property {object} obj property of this service */ 20 | var obj = {}; 21 | 22 | /** 23 | * @memberof testService 24 | * @method test 25 | * ///// NO param jsdoc tag here 26 | */ 27 | function test() { 28 | } 29 | 30 | } 31 | 32 | })(); 33 | -------------------------------------------------------------------------------- /sample-codes/ngmap/attr2-options.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | 4 | /** 5 | * @memberof ngmap 6 | * @ngdoc service 7 | * @name Attr2Options 8 | * @param {service} $parse angular html parser 9 | * @param {service} $timeout angular window.setTimeout service 10 | * @param {service} NavigatorGeolocation Google NavigatorGeolocation wrapper 11 | * @param {service} GeoCoder Google GeoCoder wrapper 12 | * @description 13 | * Converts html attributes to google api v3 object options 14 | */ 15 | var Attr2Options = function($parse, $timeout, NavigatorGeolocation, GeoCoder) { 16 | 17 | /** 18 | * Convert input to Google Map option input 19 | * @memberof Attr2Options 20 | * @param {Objec} input a value to convert 21 | * @param {Hash} options to convert the input 22 | * @returns {Hash} attributes 23 | */ 24 | var toOptionValue = function(input, options) { 25 | // .. code .. 26 | }; 27 | 28 | /** 29 | * filters attributes by skipping angularjs methods $.. $$.. 30 | * @memberof Attr2Options 31 | * @param {Hash} attrs tag attributes 32 | * @returns {Hash} filterd attributes 33 | */ 34 | var filter = function(attrs) { 35 | // .. code .. 36 | }; 37 | 38 | /** 39 | * converts attributes hash to Google Maps API v3 options 40 | * ``` 41 | * . converts numbers to number 42 | * . converts class-like string to google maps instance 43 | * i.e. `LatLng(1,1)` to `new google.maps.LatLng(1,1)` 44 | * . converts constant-like string to google maps constant 45 | * i.e. `MapTypeId.HYBRID` to `google.maps.MapTypeId.HYBRID` 46 | * i.e. `HYBRID"` to `google.maps.MapTypeId.HYBRID` 47 | * ``` 48 | * @memberof Attr2Options 49 | * @param {Hash} attrs tag attributes 50 | * @param {scope} scope angularjs scope 51 | * @returns {Hash} options converted attributess 52 | */ 53 | var getOptions = function(attrs, scope) { 54 | // .. code .. 55 | }; 56 | 57 | /** 58 | * converts attributes hash to scope-specific event function 59 | * @memberof Attr2Options 60 | * @param {scope} scope angularjs scope 61 | * @param {Hash} attrs tag attributes 62 | * @returns {Hash} events converted events 63 | */ 64 | var getEvents = function(scope, attrs) { 65 | // .. code .. 66 | }; 67 | 68 | /** 69 | * Return options of Google map control, i.e streetview, pan, etc, not a general control 70 | * @memberof Attr2Options 71 | * @param {Hash} filtered filtered tag attributes 72 | * @returns {Hash} Google Map options 73 | */ 74 | var getControlOptions = function(filtered) { 75 | // .. code .. 76 | }; 77 | 78 | return { 79 | filter: filter, 80 | getOptions: getOptions, 81 | getEvents: getEvents, 82 | getControlOptions: getControlOptions, 83 | toOptionValue: toOptionValue, 84 | orgAttributes: orgAttributes 85 | }; // return 86 | 87 | }; 88 | 89 | angular.module('ngMap').service('Attr2Options', Attr2Options); 90 | })(); 91 | -------------------------------------------------------------------------------- /sample-codes/ngmap/map-controller.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | 4 | /** 5 | * @memberof ngmap 6 | * @ngdoc controller 7 | * @name MapController 8 | * @param $scope {service} controller scope 9 | * @param $q {service} promise service 10 | * @param NavigatorGeolocation {service} Google NavigatorGeolocation wrapper 11 | * @param GeoCoder {service} Google GeoCoder wrapper 12 | * @param Attr2Options {service} Converts element attributes to Google Maps API options 13 | */ 14 | var MapController = function($scope, $q, NavigatorGeolocation, GeoCoder, Attr2Options) { 15 | 16 | /** 17 | * @property {Hash} _objects collection og objects that belongs to this map 18 | */ 19 | this._objects = {}; 20 | 21 | /** 22 | * Add an object to the collection of group 23 | * @memberof MapController 24 | * @function addObject 25 | * @param groupName the name of collection that object belongs to 26 | * @param obj an object to add into a collection, i.e. marker, shape 27 | */ 28 | this.addObject = function(groupName, obj) { 29 | // .. code .. 30 | }; 31 | 32 | /** 33 | * Delete an object from the collection and remove from map 34 | * @memberof MapController 35 | * @function deleteObject 36 | * @param {Array} objs the collection of objects. i.e., map.markers 37 | * @param {Object} obj the object to be removed. i.e., marker 38 | */ 39 | this.deleteObject = function(groupName, obj) { 40 | // .. code .. 41 | }; 42 | 43 | /** 44 | * returns the location of an address or 'current-location' 45 | * @memberof MapController 46 | * @function getGeoLocation 47 | * @param {String} string an address to find the location 48 | * @returns {Promise} latlng the location of the address 49 | */ 50 | this.getGeoLocation = function(string) { 51 | // .. code .. 52 | }; 53 | 54 | }; 55 | 56 | angular.module('ngMap').controller('MapController', MapController); 57 | })(); 58 | -------------------------------------------------------------------------------- /sample-codes/ngmap/map.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | /** 5 | * @memberof ngmap 6 | * @ngdoc directive 7 | * @name map 8 | * @param {service} Attr2Options Converts html attributes to Google map options 9 | * @param {service} $timeout Angular window.setTimeout wrapper 10 | * @param {service} $parse Angular html parser 11 | * @description 12 | * Implementation of MapController 13 | * Initialize a Google map within a `
` tag with given options and register events 14 | * It accepts children directives; marker, shape, or marker-clusterer 15 | * 16 | * It initialize map, children tags, then emits message as soon as the action is done 17 | * The message emitted from this directive is; 18 | * . mapInitialized 19 | * 20 | * @attr {Expression} geo-callback 21 | * If center is an address or current location, the expression is will be executed 22 | * when geo-lookup is successful. e.g., geo-callback="showMyStoreInfo()" 23 | * @attr {Array} geo-fallback-center The center of map incase geolocation failed. i.e. [0,0] 24 | * @attr {Boolean} zoom-to-include-markers 25 | * If true, map boundary will be changed automatially to include all markers when initialized 26 | * @attr {Boolean} default-style 27 | * When false, the default styling, `display:block;height:300px`, will be ignored. 28 | * @attr {String} init-event The name of event to initialize this map. 29 | * If this option is given, the map won't be initialized until the event is received. 30 | * To invoke the event, use $scope.$emit or $scope.$broacast. 31 | * i.e. `` 32 | * @attr {String} <MapOption> [Any Google map options](https://developers.google.com/maps/documentation/javascript/reference?csw=1#MapOptions) 33 | * @attr {String} <MapEvent> [Any Google map events](https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/map_events.html) 34 | * @example 35 | * Usage: 36 | * 37 | * ... Any children directives 38 | * 39 | * 40 | * 41 | * 42 | * 43 | * 44 | * 45 | */ 46 | var map = function(Attr2Options, $timeout, $parse) { 47 | 48 | /** 49 | * Initialize map and events 50 | * @memberof map 51 | * @param {service} scope the scope of this element 52 | * @param {service} element element that this direcive is assigned to 53 | * @param {service} attrs attribute of this element 54 | * @param {MapController} ctrl map controller 55 | */ 56 | var linkFunc = function (scope, element, attrs, ctrl) { 57 | // .. code .. 58 | }; 59 | 60 | return { 61 | restrict: 'AE', 62 | controller: 'MapController', 63 | link: linkFunc, 64 | templateUrl: 'sample-codes/ngmap/test-template.html' 65 | }; 66 | }; 67 | 68 | angular.module('ngMap').directive('map', map); 69 | })(); 70 | -------------------------------------------------------------------------------- /sample-codes/ngmap/test-template.html: -------------------------------------------------------------------------------- 1 | 2 | Hello 3 | World 4 | 5 | Are 6 | You 7 | 8 | -------------------------------------------------------------------------------- /sample-codes/tutorials/all.json: -------------------------------------------------------------------------------- 1 | { 2 | "tutorial1": { 3 | "title": "Tutorial One", 4 | "children": { 5 | "childA": { 6 | "title": "Child A" 7 | }, 8 | "childB": { 9 | "title": "Child B" 10 | } 11 | } 12 | }, 13 | "my-tutorial": { 14 | "title": "Tutorial Two" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /sample-codes/tutorials/childA.md: -------------------------------------------------------------------------------- 1 | child A 2 | 3 | This 4 | is 5 | test 6 | tutorial 7 | -------------------------------------------------------------------------------- /sample-codes/tutorials/childB.md: -------------------------------------------------------------------------------- 1 | child B 2 | 3 | test 4 | -------------------------------------------------------------------------------- /sample-codes/tutorials/my-tutorial.html: -------------------------------------------------------------------------------- 1 | test tutorial 2 | test tutorial 3 | -------------------------------------------------------------------------------- /sample-codes/tutorials/tutorial1.md: -------------------------------------------------------------------------------- 1 | This 2 | is 3 | test 4 | tutorial 5 | -------------------------------------------------------------------------------- /sample-codes/tutorials/tutorial2.md: -------------------------------------------------------------------------------- 1 | tutorial 2 2 | 3 | This 4 | is 5 | test 6 | tutorial 7 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | var angularJsdoc = require('./index.js'); 2 | 3 | angularJsdoc('sample-codes', { 4 | configure: 'common/test_conf.json', 5 | template: 'default', 6 | destination: 'default/docs', 7 | readme: "sample-codes/README.md" 8 | }); 9 | 10 | angularJsdoc('sample-codes', { 11 | configure: 'common/test_conf.json', 12 | template: 'angular-template', 13 | destination: 'angular-template/docs', 14 | readme: "sample-codes/README.md" 15 | }); 16 | -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | node_modules/jsdoc/jsdoc.js\ 3 | --configure common/test_conf.json\ 4 | --template default\ 5 | --destination default/docs\ 6 | --readme sample-codes/README.md\ 7 | --recurse sample-codes\ 8 | --tutorials sample-codes/tutorials 9 | node_modules/jsdoc/jsdoc.js\ 10 | --configure common/test_conf.json\ 11 | --template angular-template\ 12 | --destination angular-template/docs\ 13 | --readme sample-codes/README.md\ 14 | --recurse sample-codes\ 15 | --tutorials sample-codes/tutorials 16 | --------------------------------------------------------------------------------