├── .editorconfig ├── .esdoc.json ├── .eslintignore ├── .eslintrc ├── .gitignore ├── .sass-lint.yml ├── .sassdocrc ├── README.md ├── UNLICENSE ├── dist ├── app.min.css ├── app.min.js └── index.html ├── docs ├── js │ ├── ast │ │ └── source │ │ │ ├── app.js.json │ │ │ ├── foo.js.json │ │ │ └── js │ │ │ ├── app.js.json │ │ │ └── foo.js.json │ ├── badge.svg │ ├── class │ │ └── js │ │ │ └── foo.js~Foo.html │ ├── coverage.json │ ├── css │ │ ├── prettify-tomorrow.css │ │ └── style.css │ ├── dump.json │ ├── file │ │ └── js │ │ │ ├── app.js.html │ │ │ └── foo.js.html │ ├── identifiers.html │ ├── image │ │ ├── badge.svg │ │ ├── github.png │ │ └── search.png │ ├── index.html │ ├── package.json │ ├── script │ │ ├── inherited-summary.js │ │ ├── inner-link.js │ │ ├── manual.js │ │ ├── patch-for-local.js │ │ ├── prettify │ │ │ ├── Apache-License-2.0.txt │ │ │ └── prettify.js │ │ ├── pretty-print.js │ │ ├── search.js │ │ ├── search_index.js │ │ └── test-summary.js │ ├── source.html │ └── variable │ │ └── index.html └── sass │ ├── assets │ ├── css │ │ └── main.css │ ├── images │ │ ├── favicon.png │ │ ├── logo_full_compact.svg │ │ ├── logo_full_inline.svg │ │ ├── logo_light_compact.svg │ │ └── logo_light_inline.svg │ └── js │ │ ├── main.js │ │ ├── main.min.js │ │ ├── search.js │ │ ├── sidebar.js │ │ └── vendor │ │ ├── fuse.min.js │ │ ├── jquery.min.js │ │ └── prism.min.js │ └── index.html ├── gulp ├── build.js ├── clean.js ├── connect.js ├── html.js ├── javascript.js ├── lint.js ├── sass.js └── watch.js ├── gulpfile.js ├── karma.conf.js ├── package.json ├── src ├── config.js ├── index.html ├── js │ ├── app.js │ └── foo.js └── scss │ ├── app.scss │ └── foo.scss └── test └── foo.test.js /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs. 2 | # More information at http://EditorConfig.org 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | insert_final_newline = true 9 | indent_size = 2 10 | indent_style = space 11 | trim_trailing_whitespace = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /.esdoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "source": "./src/js", 3 | "destination": "./docs/js" 4 | } 5 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | docs/ 3 | gulp/ 4 | src/config.js 5 | src/lib/ 6 | .esdoc.json 7 | gulpfile.js 8 | karma.conf.js 9 | package.json 10 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "standard", 3 | 4 | "env": { 5 | "browser": true, 6 | "mocha": true, 7 | "node": false 8 | }, 9 | 10 | "globals": { 11 | "document": true, 12 | "window": true 13 | }, 14 | 15 | "rules": { 16 | "semi": [2, "always"] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Debug. 2 | npm-debug.log 3 | 4 | # External libraries. 5 | node_modules/ 6 | src/lib/ 7 | 8 | # Compiled css. 9 | src/css/ 10 | 11 | # Generated docs. 12 | docs 13 | 14 | # Generated build. 15 | dist 16 | -------------------------------------------------------------------------------- /.sass-lint.yml: -------------------------------------------------------------------------------- 1 | # sass-lint config generated by make-sass-lint-config v0.1.1 2 | 3 | files: 4 | include: '**/*.s+(a|c)ss' 5 | options: 6 | formatter: stylish 7 | merge-default-rules: false 8 | rules: 9 | no-color-literals: 0 10 | -------------------------------------------------------------------------------- /.sassdocrc: -------------------------------------------------------------------------------- 1 | dest: "./docs/sass" 2 | theme: "default" 3 | package: "./package.json" 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com) [![Dependency Status](https://david-dm.org/alexweber/es6-jspm-gulp-boilerplate.svg)](https://david-dm.org/alexweber/es6-jspm-gulp-boilerplate) [![devDependency Status](https://david-dm.org/alexweber/es6-jspm-gulp-boilerplate/dev-status.svg)](https://david-dm.org/alexweber/es6-jspm-gulp-boilerplate#info=devDependencies) 2 | # ES6 + JSPM + Gulp Boilerplate 3 | 4 | > A boilerplate for developing ES6+ apps using JSPM & Gulp. 5 | 6 | ## JSPM 7 | 8 | [JSPM](http://jspm.io/) is an all-in-one command line tool for package management, module loading and transpilation. Read more about it [here](http://www.joezimjs.com/javascript/simplifying-the-es6-workflow-with-jspm/) and [here](http://javascriptplayground.com/blog/2014/11/js-modules-jspm-systemjs/). 9 | 10 | ## Boilerplate Features 11 | 12 | - Uses JSPM instead of Bower to manage packages 13 | - Transpiles ES6+ automagically using [Babel](https://babeljs.io/) via JSPM 14 | - Uses [SystemJS](https://github.com/systemjs/systemjs) to load modules via JSPM 15 | - SASS compilation using [LibSass](http://libsass.org/) and [Autoprefixer](https://github.com/postcss/autoprefixer) 16 | - Local dev server with [LiveReload](http://livereload.com/) using [Gulp Connect](https://github.com/avevlad/gulp-connect) 17 | - Testing using [Karma](http://karma-runner.github.io/) with [Mocha](http://mochajs.org/) + [Chai](http://chaijs.com/) (bonus: write your tests in ES6) 18 | - Linting with [ESLint](http://eslint.org/) and [SCSS-Lint](https://github.com/brigade/scss-lint) 19 | - Generates documentation automatically using [ESDoc](https://esdoc.org/) and [SassDoc](http://sassdoc.com/) 20 | - [Unlicensed](http://unlicense.org/) 21 | 22 | ## Usage 23 | 24 | 1. Clone this repo from `https://github.com/alexweber/es6-jspm-gulp-boilerplate.git` or install via npm: `npm install es6-jspm-gulp-boilerplate` 25 | 2. Run `npm install` in the root directory (will automatically run `jspm install`) 26 | 3. Run `gulp` or `npm start` to start the local dev server (you may need to install Gulp locally using `npm install -g gulp`) 27 | 4. Write an awesome app! ☺ 28 | 29 | ## Testing 30 | 31 | Run `karma start` or `npm test` to run tests once. 32 | 33 | Run `npm run test:watch` to run tests continuously. 34 | 35 | ## Generating documentation 36 | 37 | Run `npm run docs` to generate documentation for your JavaScript and SASS automatically in the `docs` folder. 38 | 39 | ## Building 40 | 41 | Run `gulp build` or `npm run build` to build the app for distribution in the `dist` folder. 42 | 43 | ## Updating 44 | 45 | In the event of issues running `npm install` after updating to the latest version of the boilerplate, I recommend you `rm -rf node_modules`, re-run `npm install` and go grab some coffee while it runs :) 46 | 47 | ## Contributing 48 | 49 | If you like this/find it useful/find a bug please open an [issue](https://github.com/alexweber/es6-jspm-gulp-boilerplate/issues) and, better yet, submit a Pull Request! ☺ Any and all help appreciated, thanks! 50 | 51 | --- 52 | 53 | [No rights reserved](http://unlicense.org/). Made with ♥ by [Alex Weber](https://twitter.com/alexweber15) 54 | -------------------------------------------------------------------------------- /UNLICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /dist/app.min.css: -------------------------------------------------------------------------------- 1 | body{background-color:#fff}h1{color:#bada55;text-decoration:underline} -------------------------------------------------------------------------------- /dist/app.min.js: -------------------------------------------------------------------------------- 1 | !function(a){function b(a,b,e){return 4===arguments.length?c.apply(this,arguments):void d(a,{declarative:!0,deps:b,declare:e})}function c(a,b,c,e){d(a,{declarative:!1,deps:b,executingRequire:c,execute:e})}function d(a,b){b.name=a,a in n||(n[a]=b),b.normalizedDeps=b.deps}function e(a,b){if(b[a.groupIndex]=b[a.groupIndex]||[],-1==o.call(b[a.groupIndex],a)){b[a.groupIndex].push(a);for(var c=0,d=a.normalizedDeps.length;d>c;c++){var f=a.normalizedDeps[c],g=n[f];if(g&&!g.evaluated){var h=a.groupIndex+(g.declarative!=a.declarative);if(void 0===g.groupIndex||g.groupIndex=0;f--){for(var g=c[f],i=0;if;f++){var h=c.importers[f];if(!h.locked)for(var i=0;if;f++){var j,k=b.normalizedDeps[f],l=n[k],o=s[k];o?j=o.exports:l&&!l.declarative?j=l.esModule:l?(h(l),o=l.module,j=o.exports):j=m(k),o&&o.importers?(o.importers.push(c),c.dependencies.push(o)):c.dependencies.push(null),c.setters[f]&&c.setters[f](j)}}}function i(a){var b,c=n[a];if(c)c.declarative?l(a,[]):c.evaluated||j(c),b=c.module.exports;else if(b=m(a),!b)throw new Error("Unable to load dependency "+a+".");return(!c||c.declarative)&&b&&b.__useDefault?b["default"]:b}function j(b){if(!b.module){var c={},d=b.module={exports:c,id:b.name};if(!b.executingRequire)for(var e=0,f=b.normalizedDeps.length;f>e;e++){var g=b.normalizedDeps[e],h=n[g];h&&j(h)}b.evaluated=!0;var l=b.execute.call(a,function(a){for(var c=0,d=b.deps.length;d>c;c++)if(b.deps[c]==a)return i(b.normalizedDeps[c]);throw new TypeError("Module "+a+" not declared as a dependency.")},c,d);l&&(d.exports=l),c=d.exports,c&&c.__esModule?b.esModule=c:b.esModule=k(c)}}function k(b){if(b===a)return b;var c={};if("object"==typeof b||"function"==typeof b)if(p){var d;for(var e in b)(d=Object.getOwnPropertyDescriptor(b,e))&&r(c,e,d)}else{var f=b&&b.hasOwnProperty;for(var e in b)(!f||b.hasOwnProperty(e))&&(c[e]=b[e])}return c["default"]=b,r(c,"__useDefault",{value:!0}),c}function l(b,c){var d=n[b];if(d&&!d.evaluated&&d.declarative){c.push(b);for(var e=0,f=d.normalizedDeps.length;f>e;e++){var g=d.normalizedDeps[e];-1==o.call(c,g)&&(n[g]?l(g,c):m(g))}d.evaluated||(d.evaluated=!0,d.module.execute.call(a))}}function m(a){if(u[a])return u[a];if("@node/"==a.substr(0,6))return t(a.substr(6));var b=n[a];if(!b)throw"Module "+a+" not present.";return f(a),l(a,[]),n[a]=void 0,b.declarative&&r(b.module.exports,"__esModule",{value:!0}),u[a]=b.declarative?b.module.exports:b.esModule}var n={},o=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},p=!0;try{Object.getOwnPropertyDescriptor({a:0},"a")}catch(q){p=!1}var r;!function(){try{Object.defineProperty({},"a",{})&&(r=Object.defineProperty)}catch(a){r=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}();var s={},t="undefined"!=typeof System&&System._nodeRequire||"undefined"!=typeof require&&require.resolve&&"undefined"!=typeof process&&require,u={"@empty":{}};return function(a,d,e){return function(f){f(function(f){for(var g={_nodeRequire:t,register:b,registerDynamic:c,get:m,set:function(a,b){u[a]=b},newModule:function(a){return a}},h=0;h1)for(var h=1;hES6 + JSPM + Gulp

Hello JSPM!

-------------------------------------------------------------------------------- /docs/js/ast/source/foo.js.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Program", 3 | "body": [ 4 | { 5 | "type": "Identifier", 6 | "id": { 7 | "type": "Identifier", 8 | "name": "Foo", 9 | "range": [ 10 | 6, 11 | 9 12 | ], 13 | "loc": { 14 | "start": { 15 | "line": 1, 16 | "column": 6 17 | }, 18 | "end": { 19 | "line": 1, 20 | "column": 9 21 | } 22 | } 23 | }, 24 | "superClass": null, 25 | "body": { 26 | "type": "ClassBody", 27 | "body": [ 28 | { 29 | "type": "MethodDefinition", 30 | "key": { 31 | "type": "Identifier", 32 | "name": "doSomething", 33 | "range": [ 34 | 15, 35 | 26 36 | ], 37 | "loc": { 38 | "start": { 39 | "line": 3, 40 | "column": 2 41 | }, 42 | "end": { 43 | "line": 3, 44 | "column": 13 45 | } 46 | } 47 | }, 48 | "value": { 49 | "type": "FunctionExpression", 50 | "id": null, 51 | "params": [], 52 | "body": { 53 | "type": "BlockStatement", 54 | "body": [ 55 | { 56 | "type": "ReturnStatement", 57 | "argument": { 58 | "type": "Literal", 59 | "value": "Do Something", 60 | "raw": "'Do Something'", 61 | "range": [ 62 | 43, 63 | 57 64 | ], 65 | "loc": { 66 | "start": { 67 | "line": 4, 68 | "column": 11 69 | }, 70 | "end": { 71 | "line": 4, 72 | "column": 25 73 | } 74 | } 75 | }, 76 | "range": [ 77 | 36, 78 | 58 79 | ], 80 | "loc": { 81 | "start": { 82 | "line": 4, 83 | "column": 4 84 | }, 85 | "end": { 86 | "line": 4, 87 | "column": 26 88 | } 89 | } 90 | } 91 | ], 92 | "range": [ 93 | 30, 94 | 62 95 | ], 96 | "loc": { 97 | "start": { 98 | "line": 3, 99 | "column": 17 100 | }, 101 | "end": { 102 | "line": 5, 103 | "column": 3 104 | } 105 | } 106 | }, 107 | "generator": false, 108 | "expression": false, 109 | "range": [ 110 | 27, 111 | 62 112 | ], 113 | "loc": { 114 | "start": { 115 | "line": 3, 116 | "column": 14 117 | }, 118 | "end": { 119 | "line": 5, 120 | "column": 3 121 | } 122 | } 123 | }, 124 | "kind": "method", 125 | "computed": false, 126 | "range": [ 127 | 15, 128 | 62 129 | ], 130 | "loc": { 131 | "start": { 132 | "line": 3, 133 | "column": 2 134 | }, 135 | "end": { 136 | "line": 5, 137 | "column": 3 138 | } 139 | }, 140 | "static": false 141 | } 142 | ], 143 | "range": [ 144 | 10, 145 | 64 146 | ], 147 | "loc": { 148 | "start": { 149 | "line": 1, 150 | "column": 10 151 | }, 152 | "end": { 153 | "line": 6, 154 | "column": 1 155 | } 156 | } 157 | }, 158 | "range": [ 159 | 0, 160 | 64 161 | ], 162 | "loc": { 163 | "start": { 164 | "line": 1, 165 | "column": 0 166 | }, 167 | "end": { 168 | "line": 6, 169 | "column": 1 170 | } 171 | }, 172 | "name": "_", 173 | "leadingComments": [], 174 | "trailingComments": [] 175 | }, 176 | { 177 | "type": "Identifier", 178 | "declaration": { 179 | "type": "Identifier", 180 | "name": "Foo", 181 | "range": [ 182 | 81, 183 | 84 184 | ], 185 | "loc": { 186 | "start": { 187 | "line": 8, 188 | "column": 15 189 | }, 190 | "end": { 191 | "line": 8, 192 | "column": 18 193 | } 194 | } 195 | }, 196 | "range": [ 197 | 66, 198 | 85 199 | ], 200 | "loc": { 201 | "start": { 202 | "line": 8, 203 | "column": 0 204 | }, 205 | "end": { 206 | "line": 8, 207 | "column": 19 208 | } 209 | }, 210 | "name": "_", 211 | "leadingComments": [], 212 | "trailingComments": [] 213 | }, 214 | { 215 | "type": "ExportDefaultDeclaration", 216 | "declaration": { 217 | "type": "ClassDeclaration", 218 | "id": { 219 | "type": "Identifier", 220 | "name": "Foo", 221 | "range": [ 222 | 6, 223 | 9 224 | ], 225 | "loc": { 226 | "start": { 227 | "line": 1, 228 | "column": 6 229 | }, 230 | "end": { 231 | "line": 1, 232 | "column": 9 233 | } 234 | } 235 | }, 236 | "superClass": null, 237 | "body": { 238 | "type": "ClassBody", 239 | "body": [ 240 | { 241 | "type": "MethodDefinition", 242 | "key": { 243 | "type": "Identifier", 244 | "name": "doSomething", 245 | "range": [ 246 | 15, 247 | 26 248 | ], 249 | "loc": { 250 | "start": { 251 | "line": 3, 252 | "column": 2 253 | }, 254 | "end": { 255 | "line": 3, 256 | "column": 13 257 | } 258 | } 259 | }, 260 | "value": { 261 | "type": "FunctionExpression", 262 | "id": null, 263 | "params": [], 264 | "body": { 265 | "type": "BlockStatement", 266 | "body": [ 267 | { 268 | "type": "ReturnStatement", 269 | "argument": { 270 | "type": "Literal", 271 | "value": "Do Something", 272 | "raw": "'Do Something'", 273 | "range": [ 274 | 43, 275 | 57 276 | ], 277 | "loc": { 278 | "start": { 279 | "line": 4, 280 | "column": 11 281 | }, 282 | "end": { 283 | "line": 4, 284 | "column": 25 285 | } 286 | } 287 | }, 288 | "range": [ 289 | 36, 290 | 58 291 | ], 292 | "loc": { 293 | "start": { 294 | "line": 4, 295 | "column": 4 296 | }, 297 | "end": { 298 | "line": 4, 299 | "column": 26 300 | } 301 | } 302 | } 303 | ], 304 | "range": [ 305 | 30, 306 | 62 307 | ], 308 | "loc": { 309 | "start": { 310 | "line": 3, 311 | "column": 17 312 | }, 313 | "end": { 314 | "line": 5, 315 | "column": 3 316 | } 317 | } 318 | }, 319 | "generator": false, 320 | "expression": false, 321 | "range": [ 322 | 27, 323 | 62 324 | ], 325 | "loc": { 326 | "start": { 327 | "line": 3, 328 | "column": 14 329 | }, 330 | "end": { 331 | "line": 5, 332 | "column": 3 333 | } 334 | } 335 | }, 336 | "kind": "method", 337 | "computed": false, 338 | "range": [ 339 | 15, 340 | 62 341 | ], 342 | "loc": { 343 | "start": { 344 | "line": 3, 345 | "column": 2 346 | }, 347 | "end": { 348 | "line": 5, 349 | "column": 3 350 | } 351 | }, 352 | "static": false 353 | } 354 | ], 355 | "range": [ 356 | 10, 357 | 64 358 | ], 359 | "loc": { 360 | "start": { 361 | "line": 1, 362 | "column": 10 363 | }, 364 | "end": { 365 | "line": 6, 366 | "column": 1 367 | } 368 | } 369 | }, 370 | "range": [ 371 | 0, 372 | 64 373 | ], 374 | "loc": { 375 | "start": { 376 | "line": 1, 377 | "column": 0 378 | }, 379 | "end": { 380 | "line": 6, 381 | "column": 1 382 | } 383 | }, 384 | "__esdoc__pseudo_export": false, 385 | "leadingComments": [], 386 | "trailingComments": [] 387 | }, 388 | "range": [ 389 | 66, 390 | 85 391 | ], 392 | "loc": { 393 | "start": { 394 | "line": 8, 395 | "column": 0 396 | }, 397 | "end": { 398 | "line": 8, 399 | "column": 19 400 | } 401 | }, 402 | "leadingComments": null 403 | } 404 | ], 405 | "sourceType": "module", 406 | "range": [ 407 | 0, 408 | 85 409 | ], 410 | "loc": { 411 | "start": { 412 | "line": 1, 413 | "column": 0 414 | }, 415 | "end": { 416 | "line": 8, 417 | "column": 19 418 | } 419 | }, 420 | "comments": [] 421 | } -------------------------------------------------------------------------------- /docs/js/ast/source/js/foo.js.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Program", 3 | "body": [ 4 | { 5 | "type": "Identifier", 6 | "id": { 7 | "type": "Identifier", 8 | "name": "Foo", 9 | "range": [ 10 | 6, 11 | 9 12 | ], 13 | "loc": { 14 | "start": { 15 | "line": 1, 16 | "column": 6 17 | }, 18 | "end": { 19 | "line": 1, 20 | "column": 9 21 | } 22 | } 23 | }, 24 | "superClass": null, 25 | "body": { 26 | "type": "ClassBody", 27 | "body": [ 28 | { 29 | "type": "MethodDefinition", 30 | "key": { 31 | "type": "Identifier", 32 | "name": "doSomething", 33 | "range": [ 34 | 15, 35 | 26 36 | ], 37 | "loc": { 38 | "start": { 39 | "line": 3, 40 | "column": 2 41 | }, 42 | "end": { 43 | "line": 3, 44 | "column": 13 45 | } 46 | } 47 | }, 48 | "value": { 49 | "type": "FunctionExpression", 50 | "id": null, 51 | "params": [], 52 | "body": { 53 | "type": "BlockStatement", 54 | "body": [ 55 | { 56 | "type": "ReturnStatement", 57 | "argument": { 58 | "type": "Literal", 59 | "value": "Do Something", 60 | "raw": "'Do Something'", 61 | "range": [ 62 | 43, 63 | 57 64 | ], 65 | "loc": { 66 | "start": { 67 | "line": 4, 68 | "column": 11 69 | }, 70 | "end": { 71 | "line": 4, 72 | "column": 25 73 | } 74 | } 75 | }, 76 | "range": [ 77 | 36, 78 | 58 79 | ], 80 | "loc": { 81 | "start": { 82 | "line": 4, 83 | "column": 4 84 | }, 85 | "end": { 86 | "line": 4, 87 | "column": 26 88 | } 89 | } 90 | } 91 | ], 92 | "range": [ 93 | 30, 94 | 62 95 | ], 96 | "loc": { 97 | "start": { 98 | "line": 3, 99 | "column": 17 100 | }, 101 | "end": { 102 | "line": 5, 103 | "column": 3 104 | } 105 | } 106 | }, 107 | "generator": false, 108 | "expression": false, 109 | "range": [ 110 | 27, 111 | 62 112 | ], 113 | "loc": { 114 | "start": { 115 | "line": 3, 116 | "column": 14 117 | }, 118 | "end": { 119 | "line": 5, 120 | "column": 3 121 | } 122 | } 123 | }, 124 | "kind": "method", 125 | "computed": false, 126 | "range": [ 127 | 15, 128 | 62 129 | ], 130 | "loc": { 131 | "start": { 132 | "line": 3, 133 | "column": 2 134 | }, 135 | "end": { 136 | "line": 5, 137 | "column": 3 138 | } 139 | }, 140 | "static": false 141 | } 142 | ], 143 | "range": [ 144 | 10, 145 | 64 146 | ], 147 | "loc": { 148 | "start": { 149 | "line": 1, 150 | "column": 10 151 | }, 152 | "end": { 153 | "line": 6, 154 | "column": 1 155 | } 156 | } 157 | }, 158 | "range": [ 159 | 0, 160 | 64 161 | ], 162 | "loc": { 163 | "start": { 164 | "line": 1, 165 | "column": 0 166 | }, 167 | "end": { 168 | "line": 6, 169 | "column": 1 170 | } 171 | }, 172 | "name": "_", 173 | "leadingComments": [], 174 | "trailingComments": [] 175 | }, 176 | { 177 | "type": "Identifier", 178 | "declaration": { 179 | "type": "Identifier", 180 | "name": "Foo", 181 | "range": [ 182 | 81, 183 | 84 184 | ], 185 | "loc": { 186 | "start": { 187 | "line": 8, 188 | "column": 15 189 | }, 190 | "end": { 191 | "line": 8, 192 | "column": 18 193 | } 194 | } 195 | }, 196 | "range": [ 197 | 66, 198 | 85 199 | ], 200 | "loc": { 201 | "start": { 202 | "line": 8, 203 | "column": 0 204 | }, 205 | "end": { 206 | "line": 8, 207 | "column": 19 208 | } 209 | }, 210 | "name": "_", 211 | "leadingComments": [], 212 | "trailingComments": [] 213 | }, 214 | { 215 | "type": "ExportDefaultDeclaration", 216 | "declaration": { 217 | "type": "ClassDeclaration", 218 | "id": { 219 | "type": "Identifier", 220 | "name": "Foo", 221 | "range": [ 222 | 6, 223 | 9 224 | ], 225 | "loc": { 226 | "start": { 227 | "line": 1, 228 | "column": 6 229 | }, 230 | "end": { 231 | "line": 1, 232 | "column": 9 233 | } 234 | } 235 | }, 236 | "superClass": null, 237 | "body": { 238 | "type": "ClassBody", 239 | "body": [ 240 | { 241 | "type": "MethodDefinition", 242 | "key": { 243 | "type": "Identifier", 244 | "name": "doSomething", 245 | "range": [ 246 | 15, 247 | 26 248 | ], 249 | "loc": { 250 | "start": { 251 | "line": 3, 252 | "column": 2 253 | }, 254 | "end": { 255 | "line": 3, 256 | "column": 13 257 | } 258 | } 259 | }, 260 | "value": { 261 | "type": "FunctionExpression", 262 | "id": null, 263 | "params": [], 264 | "body": { 265 | "type": "BlockStatement", 266 | "body": [ 267 | { 268 | "type": "ReturnStatement", 269 | "argument": { 270 | "type": "Literal", 271 | "value": "Do Something", 272 | "raw": "'Do Something'", 273 | "range": [ 274 | 43, 275 | 57 276 | ], 277 | "loc": { 278 | "start": { 279 | "line": 4, 280 | "column": 11 281 | }, 282 | "end": { 283 | "line": 4, 284 | "column": 25 285 | } 286 | } 287 | }, 288 | "range": [ 289 | 36, 290 | 58 291 | ], 292 | "loc": { 293 | "start": { 294 | "line": 4, 295 | "column": 4 296 | }, 297 | "end": { 298 | "line": 4, 299 | "column": 26 300 | } 301 | } 302 | } 303 | ], 304 | "range": [ 305 | 30, 306 | 62 307 | ], 308 | "loc": { 309 | "start": { 310 | "line": 3, 311 | "column": 17 312 | }, 313 | "end": { 314 | "line": 5, 315 | "column": 3 316 | } 317 | } 318 | }, 319 | "generator": false, 320 | "expression": false, 321 | "range": [ 322 | 27, 323 | 62 324 | ], 325 | "loc": { 326 | "start": { 327 | "line": 3, 328 | "column": 14 329 | }, 330 | "end": { 331 | "line": 5, 332 | "column": 3 333 | } 334 | } 335 | }, 336 | "kind": "method", 337 | "computed": false, 338 | "range": [ 339 | 15, 340 | 62 341 | ], 342 | "loc": { 343 | "start": { 344 | "line": 3, 345 | "column": 2 346 | }, 347 | "end": { 348 | "line": 5, 349 | "column": 3 350 | } 351 | }, 352 | "static": false 353 | } 354 | ], 355 | "range": [ 356 | 10, 357 | 64 358 | ], 359 | "loc": { 360 | "start": { 361 | "line": 1, 362 | "column": 10 363 | }, 364 | "end": { 365 | "line": 6, 366 | "column": 1 367 | } 368 | } 369 | }, 370 | "range": [ 371 | 0, 372 | 64 373 | ], 374 | "loc": { 375 | "start": { 376 | "line": 1, 377 | "column": 0 378 | }, 379 | "end": { 380 | "line": 6, 381 | "column": 1 382 | } 383 | }, 384 | "__esdoc__pseudo_export": false, 385 | "leadingComments": [], 386 | "trailingComments": [] 387 | }, 388 | "range": [ 389 | 66, 390 | 85 391 | ], 392 | "loc": { 393 | "start": { 394 | "line": 8, 395 | "column": 0 396 | }, 397 | "end": { 398 | "line": 8, 399 | "column": 19 400 | } 401 | }, 402 | "leadingComments": null 403 | }, 404 | { 405 | "type": "ExportDefaultDeclaration", 406 | "declaration": { 407 | "type": "VariableDeclaration", 408 | "kind": "let", 409 | "loc": { 410 | "start": { 411 | "line": 8, 412 | "column": 0 413 | }, 414 | "end": { 415 | "line": 8, 416 | "column": 19 417 | } 418 | }, 419 | "declarations": [ 420 | { 421 | "type": "VariableDeclarator", 422 | "id": { 423 | "type": "Identifier", 424 | "name": "foo" 425 | }, 426 | "init": { 427 | "type": "NewExpression", 428 | "callee": { 429 | "type": "Identifier", 430 | "name": "Foo" 431 | } 432 | } 433 | } 434 | ], 435 | "leadingComments": [], 436 | "trailingComments": [] 437 | }, 438 | "range": [ 439 | 66, 440 | 85 441 | ], 442 | "loc": { 443 | "start": { 444 | "line": 8, 445 | "column": 0 446 | }, 447 | "end": { 448 | "line": 8, 449 | "column": 19 450 | } 451 | } 452 | } 453 | ], 454 | "sourceType": "module", 455 | "range": [ 456 | 0, 457 | 85 458 | ], 459 | "loc": { 460 | "start": { 461 | "line": 1, 462 | "column": 0 463 | }, 464 | "end": { 465 | "line": 8, 466 | "column": 19 467 | } 468 | }, 469 | "comments": [] 470 | } -------------------------------------------------------------------------------- /docs/js/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | document 13 | document 14 | 0% 15 | 0% 16 | 17 | 18 | -------------------------------------------------------------------------------- /docs/js/class/js/foo.js~Foo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Foo | API Document 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | Home 18 | 19 | Reference 20 | Source 21 | 22 | Repository 23 |
24 | 25 | 26 | 27 | 28 |
    29 |
    30 |
    31 | 32 |
    33 |
      34 | 35 |
    • CFoo
    • 36 |
    • Vhello
    • 37 |
    38 |
    39 |
    40 | 41 |
    42 |
    import Foo from 'es6-jspm-gulp-boilerplate/js/foo.js'
    43 | public 44 | class 45 | 46 | 47 | 48 | | source 49 |
    50 | 51 |
    52 |

    Foo

    53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 |
    78 | 79 | 80 | 81 | 82 | 83 |

    Method Summary

    84 | 85 | 86 | 87 | 88 | 95 | 107 | 111 | 112 | 113 |
    Public Methods
    89 | public 90 | 91 | 92 | 93 | 94 | 96 |
    97 |

    98 | doSomething(): string 99 |

    100 |
    101 |
    102 | 103 | 104 | 105 |
    106 |
    108 | 109 | 110 |
    114 |
    115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 |

    Public Methods

    123 | 124 |
    125 |

    126 | public 127 | 128 | 129 | 130 | 131 | doSomething(): string 132 | 133 | 134 | 135 | source 136 | 137 |

    138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 |
    147 |
    148 | 149 |
    150 |

    Return:

    151 | 152 | 153 | 154 | 155 | 156 |
    string
    157 |
    158 |
    159 |
    160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 |
    174 |
    175 |
    176 | 177 |
    178 | Generated by ESDoc(0.4.4) 179 |
    180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | -------------------------------------------------------------------------------- /docs/js/coverage.json: -------------------------------------------------------------------------------- 1 | { 2 | "coverage": "0%", 3 | "expectCount": 3, 4 | "actualCount": 0, 5 | "files": { 6 | "js/foo.js": { 7 | "expectCount": 2, 8 | "actualCount": 0, 9 | "undocumentLines": [ 10 | 1, 11 | 3 12 | ] 13 | }, 14 | "js/app.js": { 15 | "expectCount": 1, 16 | "actualCount": 0, 17 | "undocumentLines": [ 18 | 8 19 | ] 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /docs/js/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 | -------------------------------------------------------------------------------- /docs/js/file/js/app.js.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | js/app.js | API Document 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
    17 | Home 18 | 19 | Reference 20 | Source 21 | 22 | Repository 23 |
    24 | 25 | 26 | 27 | 28 |
      29 |
      30 |
      31 | 32 |
      33 |
        34 | 35 |
      • CFoo
      • 36 |
      • Vhello
      • 37 |
      38 |
      39 |
      40 | 41 |

      js/app.js

      42 |
      import Foo from './foo';
      43 | 
      44 | let foo = new Foo();
      45 | 
      46 | let textNode = document.createTextNode(foo.doSomething());
      47 | document.body.appendChild(textNode);
      48 | 
      49 | export var hello = 'es6';
      50 | 
      51 | 52 |
      53 | 54 |
      55 | Generated by ESDoc(0.4.4) 56 |
      57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /docs/js/file/js/foo.js.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | js/foo.js | API Document 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
      17 | Home 18 | 19 | Reference 20 | Source 21 | 22 | Repository 23 |
      24 | 25 | 26 | 27 | 28 |
        29 |
        30 |
        31 | 32 |
        33 |
          34 | 35 |
        • CFoo
        • 36 |
        • Vhello
        • 37 |
        38 |
        39 |
        40 | 41 |

        js/foo.js

        42 |
        class Foo {
        43 | 
        44 |   doSomething () {
        45 |     return 'Do Something';
        46 |   }
        47 | }
        48 | 
        49 | export default Foo;
        50 | 
        51 | 52 |
        53 | 54 |
        55 | Generated by ESDoc(0.4.4) 56 |
        57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /docs/js/identifiers.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Index | API Document 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
        17 | Home 18 | 19 | Reference 20 | Source 21 | 22 | Repository 23 |
        24 | 25 | 26 | 27 | 28 |
          29 |
          30 |
          31 | 32 |
          33 |
            34 | 35 |
          • CFoo
          • 36 |
          • Vhello
          • 37 |
          38 |
          39 |
          40 | 41 |

          References

          42 |

          Class Summary

          43 | 44 | 45 | 46 | 47 | 54 | 66 | 70 | 71 | 72 |
          Static Public Class Summary
          48 | public 49 | 50 | 51 | 52 | 53 | 55 |
          56 |

          57 | Foo 58 |

          59 |
          60 |
          61 | 62 | 63 | 64 |
          65 |
          67 | 68 | 69 |
          73 |
          74 | 75 | 76 |

          Variable Summary

          77 | 78 | 79 | 80 | 81 | 88 | 100 | 104 | 105 | 106 |
          Static Public Variable Summary
          82 | public 83 | 84 | 85 | 86 | 87 | 89 |
          90 |

          91 | hello: string 92 |

          93 |
          94 |
          95 | 96 | 97 | 98 |
          99 |
          101 | 102 | 103 |
          107 |
          108 | 109 | 110 |
          111 | 112 |
          113 | Generated by ESDoc(0.4.4) 114 |
          115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /docs/js/image/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | document 13 | document 14 | @ratio@ 15 | @ratio@ 16 | 17 | 18 | -------------------------------------------------------------------------------- /docs/js/image/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexweber/es6-jspm-gulp-boilerplate/7571c13c8c964a2a218fd1aaf4aa0d34663e5fa5/docs/js/image/github.png -------------------------------------------------------------------------------- /docs/js/image/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexweber/es6-jspm-gulp-boilerplate/7571c13c8c964a2a218fd1aaf4aa0d34663e5fa5/docs/js/image/search.png -------------------------------------------------------------------------------- /docs/js/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | API Document 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
          17 | Home 18 | 19 | Reference 20 | Source 21 | 22 | Repository 23 |
          24 | 25 | 26 | 27 | 28 |
            29 |
            30 |
            31 | 32 |
            33 |
              34 | 35 |
            • CFoo
            • 36 |
            • Vhello
            • 37 |
            38 |
            39 |
            40 | 41 |

            Dependency Status devDependency Status

            42 |

            ES6 + JSPM + Gulp Boilerplate

            43 |
            44 |

            A boilerplate for developing ES6+ apps using JSPM & Gulp.

            45 |
            46 |

            JSPM

            47 |

            JSPM is an all-in-one command line tool for package management, module loading and transpilation. Read more about it here and here.

            48 |

            Boilerplate Features

            49 |
              50 |
            • Uses JSPM instead of Bower to manage packages
            • 51 |
            • Transpiles ES6+ automagically using Babel via JSPM
            • 52 |
            • Uses SystemJS to load modules via JSPM
            • 53 |
            • SASS compilation using LibSass and Autoprefixer
            • 54 |
            • Local dev server with LiveReload using Gulp Connect
            • 55 |
            • Testing using Karma with Mocha + Chai (bonus: write your tests in ES6)
            • 56 |
            • Linting with ESLint and SCSS-Lint
            • 57 |
            • Generates documentation automatically using ESDoc and SassDoc
            • 58 |
            • Unlicensed
            • 59 |
            60 |

            Usage

            61 |
              62 |
            1. Clone this repo from https://github.com/alexweber/es6-jspm-gulp-boilerplate.git or install via npm: npm install es6-jspm-gulp-boilerplate
            2. 63 |
            3. Run npm install in the root directory (will automatically run jspm install)
            4. 64 |
            5. Run gulp or npm start to start the local dev server (you may need to install Gulp locally using npm install -g gulp)
            6. 65 |
            7. Write an awesome app! ☺
            8. 66 |
            67 |

            Testing

            68 |

            Run karma start or npm test to run tests once.

            69 |

            Run npm run test:watch to run tests continuously.

            70 |

            Generating documentation

            71 |

            Run npm run docs to generate documentation for your JavaScript and SASS automatically in the docs folder.

            72 |

            Building

            73 |

            Run gulp build or npm run build to build the app for distribution in the dist folder.

            74 |

            Updating

            75 |

            In the event of issues running npm install after updating to the latest version of the boilerplate, I recommend you rm -rf node_modules, re-run npm install and go grab some coffee while it runs :)

            76 |

            Contributing

            77 |

            If you like this/find it useful/find a bug please open an issue and, better yet, submit a Pull Request! ☺ Any and all help appreciated, thanks!

            78 |
            79 |

            No rights reserved. Made with ♥ by Alex Weber

            80 |
            81 |
            82 | 83 |
            84 | Generated by ESDoc(0.4.4) 85 |
            86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /docs/js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "es6-jspm-gulp-boilerplate", 3 | "version": "0.4.0", 4 | "description": "Boilerplate for ES6+ apps using JSPM + Babel", 5 | "main": "dist/index.html", 6 | "homepage": "https://github.com/alexweber/es6-jspm-gulp-boilerplate#readme", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/alexweber/es6-jspm-gulp-boilerplate.git" 10 | }, 11 | "bugs": "https://github.com/alexweber/es6-jspm-gulp-boilerplate/issues", 12 | "author": { 13 | "name": "Alex Weber", 14 | "email": "alexweber15@gmail.com", 15 | "url": "http://alexweber.com.br" 16 | }, 17 | "readmeFilename": "README.md", 18 | "license": "Unlicense", 19 | "scripts": { 20 | "test": "karma start", 21 | "test:watch": "karma start --no-single-run", 22 | "build": "gulp build", 23 | "docs": "npm run sassdocs && npm run jsdocs", 24 | "start": "gulp", 25 | "buildjs": "jspm bundle-sfx js/app dist/app.min.js --minify --skip-source-maps", 26 | "jsdocs": "esdoc -c .esdoc.json", 27 | "sassdocs": "sassdoc src/scss", 28 | "postinstall": "jspm install" 29 | }, 30 | "keywords": [ 31 | "es6", 32 | "jspm", 33 | "gulp", 34 | "boilerplate", 35 | "babel", 36 | "systemjs" 37 | ], 38 | "directories": { 39 | "doc": "docs", 40 | "test": "test", 41 | "baseURL": "src", 42 | "packages": "src/lib" 43 | }, 44 | "devDependencies": { 45 | "chai": "^3.0.0", 46 | "chai-as-promised": "^5.1.0", 47 | "del": "^2.2.0", 48 | "esdoc": "^0.4.4", 49 | "eslint": "^2.0.0-rc.1", 50 | "eslint-config-standard": "^5.1.0", 51 | "eslint-plugin-promise": "^1.0.8", 52 | "eslint-plugin-standard": "^1.3.2", 53 | "gulp": "^3.9.0", 54 | "gulp-autoprefixer": "^3.1.0", 55 | "gulp-cached": "^1.1.0", 56 | "gulp-concat": "^2.5.2", 57 | "gulp-connect": "^2.2.0", 58 | "gulp-cssnano": "^2.1.1", 59 | "gulp-eslint": "^1.0.0", 60 | "gulp-htmlmin": "^1.3.0", 61 | "gulp-imagemin": "^2.2.1", 62 | "gulp-rename": "^1.2.2", 63 | "gulp-replace": "^0.5.3", 64 | "gulp-sass": "^2.0.1", 65 | "gulp-sass-lint": "^1.1.1", 66 | "gulp-sourcemaps": "^1.5.2", 67 | "gulp-uglify": "^1.2.0", 68 | "gulp-util": "^3.0.5", 69 | "imagemin-pngquant": "^4.1.0", 70 | "jspm": "^0.16.27", 71 | "karma": "^0.13.19", 72 | "karma-chai": "^0.1.0", 73 | "karma-chai-as-promised": "^0.1.2", 74 | "karma-chrome-launcher": "^0.2.2", 75 | "karma-jspm": "^2.0.2", 76 | "karma-mocha": "^0.2.1", 77 | "karma-mocha-reporter": "^1.0.2", 78 | "karma-sinon-chai": "^1.0.0", 79 | "mocha": "^2.2.5", 80 | "require-dir": "^0.3.0", 81 | "run-sequence": "^1.1.0", 82 | "sassdoc": "^2.1.15" 83 | }, 84 | "jspm": { 85 | "directories": { 86 | "baseURL": "src", 87 | "doc": "docs", 88 | "packages": "src/lib", 89 | "test": "test" 90 | }, 91 | "devDependencies": { 92 | "babel": "npm:babel-core@^5.8.24", 93 | "babel-runtime": "npm:babel-runtime@^5.8.24", 94 | "core-js": "npm:core-js@^1.1.4" 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /docs/js/script/inherited-summary.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | function toggle(ev) { 3 | var button = ev.target; 4 | var parent = ev.target.parentElement; 5 | while(parent) { 6 | if (parent.tagName === 'TABLE' && parent.classList.contains('summary')) break; 7 | parent = parent.parentElement; 8 | } 9 | 10 | if (!parent) return; 11 | 12 | var tbody = parent.querySelector('tbody'); 13 | if (button.classList.contains('opened')) { 14 | button.classList.remove('opened'); 15 | button.classList.add('closed'); 16 | tbody.style.display = 'none'; 17 | } else { 18 | button.classList.remove('closed'); 19 | button.classList.add('opened'); 20 | tbody.style.display = 'block'; 21 | } 22 | } 23 | 24 | var buttons = document.querySelectorAll('.inherited-summary thead .toggle'); 25 | for (var i = 0; i < buttons.length; i++) { 26 | buttons[i].addEventListener('click', toggle); 27 | } 28 | })(); 29 | -------------------------------------------------------------------------------- /docs/js/script/inner-link.js: -------------------------------------------------------------------------------- 1 | // inner link(#foo) can not correctly scroll, because page has fixed header, 2 | // so, I manually scroll. 3 | (function(){ 4 | var matched = location.hash.match(/errorLines=([\d,]+)/); 5 | if (matched) return; 6 | 7 | function adjust() { 8 | window.scrollBy(0, -55); 9 | var el = document.querySelector('.inner-link-active'); 10 | if (el) el.classList.remove('inner-link-active'); 11 | 12 | // ``[ ] . ' " @`` are not valid in DOM id. so must escape these. 13 | var id = location.hash.replace(/([\[\].'"@])/g, '\\$1'); 14 | var el = document.querySelector(id); 15 | if (el) el.classList.add('inner-link-active'); 16 | } 17 | 18 | window.addEventListener('hashchange', adjust); 19 | 20 | if (location.hash) { 21 | setTimeout(adjust, 0); 22 | } 23 | })(); 24 | 25 | (function(){ 26 | var els = document.querySelectorAll('[href^="#"]'); 27 | for (var i = 0; i < els.length; i++) { 28 | var el = els[i]; 29 | el.href = location.href + el.getAttribute('href'); // because el.href is absolute path 30 | } 31 | })(); 32 | -------------------------------------------------------------------------------- /docs/js/script/manual.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var matched = location.pathname.match(/([^/]*)\.html$/); 3 | if (!matched) return; 4 | 5 | var currentName = matched[1]; 6 | var cssClass = '.navigation [data-toc-name="' + currentName + '"]'; 7 | var styleText = cssClass + ' .manual-toc { display: block; }\n'; 8 | styleText += cssClass + ' .manual-toc-title { background-color: #039BE5; }\n'; 9 | styleText += cssClass + ' .manual-toc-title a { color: white; }\n'; 10 | var style = document.createElement('style'); 11 | style.textContent = styleText; 12 | document.querySelector('head').appendChild(style); 13 | })(); 14 | -------------------------------------------------------------------------------- /docs/js/script/patch-for-local.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | if (location.protocol === 'file:') { 3 | var elms = document.querySelectorAll('a[href="./"]'); 4 | for (var i = 0; i < elms.length; i++) { 5 | elms[i].href = './index.html'; 6 | } 7 | } 8 | })(); 9 | -------------------------------------------------------------------------------- /docs/js/script/prettify/Apache-License-2.0.txt: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /docs/js/script/prettify/prettify.js: -------------------------------------------------------------------------------- 1 | var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; 2 | (function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= 3 | [],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), 9 | l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, 10 | q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, 11 | q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, 12 | "");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), 13 | a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} 14 | for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], 18 | "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], 19 | H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], 20 | J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ 21 | I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), 22 | ["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", 23 | /^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), 24 | ["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", 25 | hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= 26 | !k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p' + pair[2] + ''); 35 | } 36 | } 37 | 38 | var innerHTML = ''; 39 | for (kind in html) { 40 | var list = html[kind]; 41 | if (!list.length) continue; 42 | innerHTML += '
          • ' + kind + '
          • \n' + list.join('\n'); 43 | } 44 | result.innerHTML = innerHTML; 45 | if (innerHTML) result.style.display = 'block'; 46 | selectedIndex = -1; 47 | }); 48 | 49 | // down, up and enter key are pressed, select search result. 50 | input.addEventListener('keydown', function(ev){ 51 | if (ev.keyCode === 40) { 52 | // arrow down 53 | var current = result.children[selectedIndex]; 54 | var selected = result.children[selectedIndex + 1]; 55 | if (selected && selected.classList.contains('search-separator')) { 56 | var selected = result.children[selectedIndex + 2]; 57 | selectedIndex++; 58 | } 59 | 60 | if (selected) { 61 | if (current) current.classList.remove('selected'); 62 | selectedIndex++; 63 | selected.classList.add('selected'); 64 | } 65 | } else if (ev.keyCode === 38) { 66 | // arrow up 67 | var current = result.children[selectedIndex]; 68 | var selected = result.children[selectedIndex - 1]; 69 | if (selected && selected.classList.contains('search-separator')) { 70 | var selected = result.children[selectedIndex - 2]; 71 | selectedIndex--; 72 | } 73 | 74 | if (selected) { 75 | if (current) current.classList.remove('selected'); 76 | selectedIndex--; 77 | selected.classList.add('selected'); 78 | } 79 | } else if (ev.keyCode === 13) { 80 | // enter 81 | var current = result.children[selectedIndex]; 82 | if (current) { 83 | var link = current.querySelector('a'); 84 | if (link) location.href = link.href; 85 | } 86 | } else { 87 | return; 88 | } 89 | 90 | ev.preventDefault(); 91 | }); 92 | 93 | // select search result when search result is mouse over. 94 | result.addEventListener('mousemove', function(ev){ 95 | var current = result.children[selectedIndex]; 96 | if (current) current.classList.remove('selected'); 97 | 98 | var li = ev.target; 99 | while (li) { 100 | if (li.nodeName === 'LI') break; 101 | li = li.parentElement; 102 | } 103 | 104 | if (li) { 105 | selectedIndex = Array.prototype.indexOf.call(result.children, li); 106 | li.classList.add('selected'); 107 | } 108 | }); 109 | 110 | // clear search result when body is clicked. 111 | document.body.addEventListener('click', function(ev){ 112 | selectedIndex = -1; 113 | result.style.display = 'none'; 114 | result.innerHTML = ''; 115 | }); 116 | 117 | })(); 118 | -------------------------------------------------------------------------------- /docs/js/script/search_index.js: -------------------------------------------------------------------------------- 1 | window.esdocSearchIndex = [ 2 | [ 3 | "es6-jspm-gulp-boilerplate/js/foo.js~foo", 4 | "class/js/foo.js~Foo.html", 5 | "Foo es6-jspm-gulp-boilerplate/js/foo.js", 6 | "class" 7 | ], 8 | [ 9 | "es6-jspm-gulp-boilerplate/js/app.js~hello", 10 | "variable/index.html#static-variable-hello", 11 | "hello es6-jspm-gulp-boilerplate/js/app.js", 12 | "variable" 13 | ], 14 | [ 15 | "builtinexternal/ecmascriptexternal.js~array", 16 | "external/index.html", 17 | "BuiltinExternal/ECMAScriptExternal.js~Array", 18 | "external" 19 | ], 20 | [ 21 | "builtinexternal/ecmascriptexternal.js~arraybuffer", 22 | "external/index.html", 23 | "BuiltinExternal/ECMAScriptExternal.js~ArrayBuffer", 24 | "external" 25 | ], 26 | [ 27 | "builtinexternal/ecmascriptexternal.js~boolean", 28 | "external/index.html", 29 | "BuiltinExternal/ECMAScriptExternal.js~Boolean", 30 | "external" 31 | ], 32 | [ 33 | "builtinexternal/ecmascriptexternal.js~dataview", 34 | "external/index.html", 35 | "BuiltinExternal/ECMAScriptExternal.js~DataView", 36 | "external" 37 | ], 38 | [ 39 | "builtinexternal/ecmascriptexternal.js~date", 40 | "external/index.html", 41 | "BuiltinExternal/ECMAScriptExternal.js~Date", 42 | "external" 43 | ], 44 | [ 45 | "builtinexternal/ecmascriptexternal.js~error", 46 | "external/index.html", 47 | "BuiltinExternal/ECMAScriptExternal.js~Error", 48 | "external" 49 | ], 50 | [ 51 | "builtinexternal/ecmascriptexternal.js~evalerror", 52 | "external/index.html", 53 | "BuiltinExternal/ECMAScriptExternal.js~EvalError", 54 | "external" 55 | ], 56 | [ 57 | "builtinexternal/ecmascriptexternal.js~float32array", 58 | "external/index.html", 59 | "BuiltinExternal/ECMAScriptExternal.js~Float32Array", 60 | "external" 61 | ], 62 | [ 63 | "builtinexternal/ecmascriptexternal.js~float64array", 64 | "external/index.html", 65 | "BuiltinExternal/ECMAScriptExternal.js~Float64Array", 66 | "external" 67 | ], 68 | [ 69 | "builtinexternal/ecmascriptexternal.js~function", 70 | "external/index.html", 71 | "BuiltinExternal/ECMAScriptExternal.js~Function", 72 | "external" 73 | ], 74 | [ 75 | "builtinexternal/ecmascriptexternal.js~generator", 76 | "external/index.html", 77 | "BuiltinExternal/ECMAScriptExternal.js~Generator", 78 | "external" 79 | ], 80 | [ 81 | "builtinexternal/ecmascriptexternal.js~generatorfunction", 82 | "external/index.html", 83 | "BuiltinExternal/ECMAScriptExternal.js~GeneratorFunction", 84 | "external" 85 | ], 86 | [ 87 | "builtinexternal/ecmascriptexternal.js~infinity", 88 | "external/index.html", 89 | "BuiltinExternal/ECMAScriptExternal.js~Infinity", 90 | "external" 91 | ], 92 | [ 93 | "builtinexternal/ecmascriptexternal.js~int16array", 94 | "external/index.html", 95 | "BuiltinExternal/ECMAScriptExternal.js~Int16Array", 96 | "external" 97 | ], 98 | [ 99 | "builtinexternal/ecmascriptexternal.js~int32array", 100 | "external/index.html", 101 | "BuiltinExternal/ECMAScriptExternal.js~Int32Array", 102 | "external" 103 | ], 104 | [ 105 | "builtinexternal/ecmascriptexternal.js~int8array", 106 | "external/index.html", 107 | "BuiltinExternal/ECMAScriptExternal.js~Int8Array", 108 | "external" 109 | ], 110 | [ 111 | "builtinexternal/ecmascriptexternal.js~internalerror", 112 | "external/index.html", 113 | "BuiltinExternal/ECMAScriptExternal.js~InternalError", 114 | "external" 115 | ], 116 | [ 117 | "builtinexternal/ecmascriptexternal.js~json", 118 | "external/index.html", 119 | "BuiltinExternal/ECMAScriptExternal.js~JSON", 120 | "external" 121 | ], 122 | [ 123 | "builtinexternal/ecmascriptexternal.js~map", 124 | "external/index.html", 125 | "BuiltinExternal/ECMAScriptExternal.js~Map", 126 | "external" 127 | ], 128 | [ 129 | "builtinexternal/ecmascriptexternal.js~nan", 130 | "external/index.html", 131 | "BuiltinExternal/ECMAScriptExternal.js~NaN", 132 | "external" 133 | ], 134 | [ 135 | "builtinexternal/ecmascriptexternal.js~number", 136 | "external/index.html", 137 | "BuiltinExternal/ECMAScriptExternal.js~Number", 138 | "external" 139 | ], 140 | [ 141 | "builtinexternal/ecmascriptexternal.js~object", 142 | "external/index.html", 143 | "BuiltinExternal/ECMAScriptExternal.js~Object", 144 | "external" 145 | ], 146 | [ 147 | "builtinexternal/ecmascriptexternal.js~promise", 148 | "external/index.html", 149 | "BuiltinExternal/ECMAScriptExternal.js~Promise", 150 | "external" 151 | ], 152 | [ 153 | "builtinexternal/ecmascriptexternal.js~proxy", 154 | "external/index.html", 155 | "BuiltinExternal/ECMAScriptExternal.js~Proxy", 156 | "external" 157 | ], 158 | [ 159 | "builtinexternal/ecmascriptexternal.js~rangeerror", 160 | "external/index.html", 161 | "BuiltinExternal/ECMAScriptExternal.js~RangeError", 162 | "external" 163 | ], 164 | [ 165 | "builtinexternal/ecmascriptexternal.js~referenceerror", 166 | "external/index.html", 167 | "BuiltinExternal/ECMAScriptExternal.js~ReferenceError", 168 | "external" 169 | ], 170 | [ 171 | "builtinexternal/ecmascriptexternal.js~reflect", 172 | "external/index.html", 173 | "BuiltinExternal/ECMAScriptExternal.js~Reflect", 174 | "external" 175 | ], 176 | [ 177 | "builtinexternal/ecmascriptexternal.js~regexp", 178 | "external/index.html", 179 | "BuiltinExternal/ECMAScriptExternal.js~RegExp", 180 | "external" 181 | ], 182 | [ 183 | "builtinexternal/ecmascriptexternal.js~set", 184 | "external/index.html", 185 | "BuiltinExternal/ECMAScriptExternal.js~Set", 186 | "external" 187 | ], 188 | [ 189 | "builtinexternal/ecmascriptexternal.js~string", 190 | "external/index.html", 191 | "BuiltinExternal/ECMAScriptExternal.js~String", 192 | "external" 193 | ], 194 | [ 195 | "builtinexternal/ecmascriptexternal.js~symbol", 196 | "external/index.html", 197 | "BuiltinExternal/ECMAScriptExternal.js~Symbol", 198 | "external" 199 | ], 200 | [ 201 | "builtinexternal/ecmascriptexternal.js~syntaxerror", 202 | "external/index.html", 203 | "BuiltinExternal/ECMAScriptExternal.js~SyntaxError", 204 | "external" 205 | ], 206 | [ 207 | "builtinexternal/ecmascriptexternal.js~typeerror", 208 | "external/index.html", 209 | "BuiltinExternal/ECMAScriptExternal.js~TypeError", 210 | "external" 211 | ], 212 | [ 213 | "builtinexternal/ecmascriptexternal.js~urierror", 214 | "external/index.html", 215 | "BuiltinExternal/ECMAScriptExternal.js~URIError", 216 | "external" 217 | ], 218 | [ 219 | "builtinexternal/ecmascriptexternal.js~uint16array", 220 | "external/index.html", 221 | "BuiltinExternal/ECMAScriptExternal.js~Uint16Array", 222 | "external" 223 | ], 224 | [ 225 | "builtinexternal/ecmascriptexternal.js~uint32array", 226 | "external/index.html", 227 | "BuiltinExternal/ECMAScriptExternal.js~Uint32Array", 228 | "external" 229 | ], 230 | [ 231 | "builtinexternal/ecmascriptexternal.js~uint8array", 232 | "external/index.html", 233 | "BuiltinExternal/ECMAScriptExternal.js~Uint8Array", 234 | "external" 235 | ], 236 | [ 237 | "builtinexternal/ecmascriptexternal.js~uint8clampedarray", 238 | "external/index.html", 239 | "BuiltinExternal/ECMAScriptExternal.js~Uint8ClampedArray", 240 | "external" 241 | ], 242 | [ 243 | "builtinexternal/ecmascriptexternal.js~weakmap", 244 | "external/index.html", 245 | "BuiltinExternal/ECMAScriptExternal.js~WeakMap", 246 | "external" 247 | ], 248 | [ 249 | "builtinexternal/ecmascriptexternal.js~weakset", 250 | "external/index.html", 251 | "BuiltinExternal/ECMAScriptExternal.js~WeakSet", 252 | "external" 253 | ], 254 | [ 255 | "builtinexternal/ecmascriptexternal.js~boolean", 256 | "external/index.html", 257 | "BuiltinExternal/ECMAScriptExternal.js~boolean", 258 | "external" 259 | ], 260 | [ 261 | "builtinexternal/ecmascriptexternal.js~function", 262 | "external/index.html", 263 | "BuiltinExternal/ECMAScriptExternal.js~function", 264 | "external" 265 | ], 266 | [ 267 | "builtinexternal/ecmascriptexternal.js~null", 268 | "external/index.html", 269 | "BuiltinExternal/ECMAScriptExternal.js~null", 270 | "external" 271 | ], 272 | [ 273 | "builtinexternal/ecmascriptexternal.js~number", 274 | "external/index.html", 275 | "BuiltinExternal/ECMAScriptExternal.js~number", 276 | "external" 277 | ], 278 | [ 279 | "builtinexternal/ecmascriptexternal.js~object", 280 | "external/index.html", 281 | "BuiltinExternal/ECMAScriptExternal.js~object", 282 | "external" 283 | ], 284 | [ 285 | "builtinexternal/ecmascriptexternal.js~string", 286 | "external/index.html", 287 | "BuiltinExternal/ECMAScriptExternal.js~string", 288 | "external" 289 | ], 290 | [ 291 | "builtinexternal/ecmascriptexternal.js~undefined", 292 | "external/index.html", 293 | "BuiltinExternal/ECMAScriptExternal.js~undefined", 294 | "external" 295 | ], 296 | [ 297 | "builtinexternal/webapiexternal.js~audiocontext", 298 | "external/index.html", 299 | "BuiltinExternal/WebAPIExternal.js~AudioContext", 300 | "external" 301 | ], 302 | [ 303 | "builtinexternal/webapiexternal.js~canvasrenderingcontext2d", 304 | "external/index.html", 305 | "BuiltinExternal/WebAPIExternal.js~CanvasRenderingContext2D", 306 | "external" 307 | ], 308 | [ 309 | "builtinexternal/webapiexternal.js~documentfragment", 310 | "external/index.html", 311 | "BuiltinExternal/WebAPIExternal.js~DocumentFragment", 312 | "external" 313 | ], 314 | [ 315 | "builtinexternal/webapiexternal.js~element", 316 | "external/index.html", 317 | "BuiltinExternal/WebAPIExternal.js~Element", 318 | "external" 319 | ], 320 | [ 321 | "builtinexternal/webapiexternal.js~event", 322 | "external/index.html", 323 | "BuiltinExternal/WebAPIExternal.js~Event", 324 | "external" 325 | ], 326 | [ 327 | "builtinexternal/webapiexternal.js~node", 328 | "external/index.html", 329 | "BuiltinExternal/WebAPIExternal.js~Node", 330 | "external" 331 | ], 332 | [ 333 | "builtinexternal/webapiexternal.js~nodelist", 334 | "external/index.html", 335 | "BuiltinExternal/WebAPIExternal.js~NodeList", 336 | "external" 337 | ], 338 | [ 339 | "builtinexternal/webapiexternal.js~xmlhttprequest", 340 | "external/index.html", 341 | "BuiltinExternal/WebAPIExternal.js~XMLHttpRequest", 342 | "external" 343 | ], 344 | [ 345 | "js/app.js", 346 | "file/js/app.js.html", 347 | "js/app.js", 348 | "file" 349 | ], 350 | [ 351 | "js/foo.js", 352 | "file/js/foo.js.html", 353 | "js/foo.js", 354 | "file" 355 | ], 356 | [ 357 | "js/foo.js~foo#dosomething", 358 | "class/js/foo.js~Foo.html#instance-method-doSomething", 359 | "js/foo.js~Foo#doSomething", 360 | "method" 361 | ] 362 | ] -------------------------------------------------------------------------------- /docs/js/script/test-summary.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | function toggle(ev) { 3 | var button = ev.target; 4 | var parent = ev.target.parentElement; 5 | while(parent) { 6 | if (parent.tagName === 'TR' && parent.classList.contains('test-describe')) break; 7 | parent = parent.parentElement; 8 | } 9 | 10 | if (!parent) return; 11 | 12 | var direction; 13 | if (button.classList.contains('opened')) { 14 | button.classList.remove('opened'); 15 | button.classList.add('closed'); 16 | direction = 'closed'; 17 | } else { 18 | button.classList.remove('closed'); 19 | button.classList.add('opened'); 20 | direction = 'opened'; 21 | } 22 | 23 | var targetDepth = parseInt(parent.dataset.testDepth, 10) + 1; 24 | var nextElement = parent.nextElementSibling; 25 | while (nextElement) { 26 | var depth = parseInt(nextElement.dataset.testDepth, 10); 27 | if (depth >= targetDepth) { 28 | if (direction === 'opened') { 29 | if (depth === targetDepth) nextElement.style.display = ''; 30 | } else if (direction === 'closed') { 31 | nextElement.style.display = 'none'; 32 | var innerButton = nextElement.querySelector('.toggle'); 33 | if (innerButton && innerButton.classList.contains('opened')) { 34 | innerButton.classList.remove('opened'); 35 | innerButton.classList.add('closed'); 36 | } 37 | } 38 | } else { 39 | break; 40 | } 41 | nextElement = nextElement.nextElementSibling; 42 | } 43 | } 44 | 45 | var buttons = document.querySelectorAll('.test-summary tr.test-describe .toggle'); 46 | for (var i = 0; i < buttons.length; i++) { 47 | buttons[i].addEventListener('click', toggle); 48 | } 49 | 50 | var topDescribes = document.querySelectorAll('.test-summary tr[data-test-depth="0"]'); 51 | for (var i = 0; i < topDescribes.length; i++) { 52 | topDescribes[i].style.display = ''; 53 | } 54 | })(); 55 | -------------------------------------------------------------------------------- /docs/js/source.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Source | API Document 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
            17 | Home 18 | 19 | Reference 20 | Source 21 | 22 | Repository 23 |
            24 | 25 | 26 | 27 | 28 |
              29 |
              30 |
              31 | 32 |
              33 |
                34 | 35 |
              • CFoo
              • 36 |
              • Vhello
              • 37 |
              38 |
              39 |
              40 | 41 |

              Source 0/3

              42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 |
              FileIdentifierDocumentSizeLinesUpdated
              js/app.jshello0 %0/1171 byte82015-09-01 22:21:51 (UTC)
              js/foo.jsFoo0 %0/286 byte82015-09-01 22:21:51 (UTC)
              74 |
              75 | 76 |
              77 | Generated by ESDoc(0.4.4) 78 |
              79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /docs/js/variable/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Variable | API Document 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
              17 | Home 18 | 19 | Reference 20 | Source 21 | 22 | Repository 23 |
              24 | 25 | 26 | 27 | 28 |
                29 |
                30 |
                31 | 32 |
                33 |
                  34 | 35 |
                • CFoo
                • 36 |
                • Vhello
                • 37 |
                38 |
                39 |
                40 | 41 |

                Variable

                42 |
                43 | 44 | 45 | 46 | 47 | 54 | 66 | 70 | 71 | 72 |
                Static Public Summary
                48 | public 49 | 50 | 51 | 52 | 53 | 55 |
                56 |

                57 | hello: string 58 |

                59 |
                60 |
                61 | 62 | 63 | 64 |
                65 |
                67 | 68 | 69 |
                73 |
                74 |

                Static Public

                75 | 76 |
                77 |

                78 | public 79 | 80 | 81 | 82 | 83 | hello: string 84 | 85 | 86 | 87 | source 88 | 89 |

                90 | 91 |
                import {hello} from 'es6-jspm-gulp-boilerplate/js/app.js'
                92 | 93 | 94 | 95 | 96 | 97 | 98 |
                99 |
                100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 |
                116 |
                117 |
                118 | 119 |
                120 | Generated by ESDoc(0.4.4) 121 |
                122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | -------------------------------------------------------------------------------- /docs/sass/assets/css/main.css: -------------------------------------------------------------------------------- 1 | .container:after,.header:after,.searchbar:after{content:"";display:table;clear:both}.visually-hidden{width:1px;height:1px;position:absolute;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.sidebar__title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}code[class*='language-'],pre[class*='language-']{color:black;text-shadow:0 1px white;font-family:Consolas, Monaco, 'Andale Mono', monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*='language-']::-moz-selection,pre[class*='language-'] ::-moz-selection,code[class*='language-']::-moz-selection,code[class*='language-'] ::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*='language-']::selection,pre[class*='language-'] ::selection,code[class*='language-']::selection,code[class*='language-'] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*='language-'],pre[class*='language-']{text-shadow:none}}pre[class*='language-']{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*='language-'],pre[class*='language-']{background:white}:not(pre)>code[class*='language-']{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol{color:#905}.token.selector,.token.attr-name,.token.string,.token.builtin{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#a67f59;background:rgba(255,255,255,0.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.regex,.token.important{color:#e90}.token.important{font-weight:bold}.token.entity{cursor:help}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,*::after,*::before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{font:1em/1.35 "Open Sans","Helvetica Neue Light","Helvetica Neue","Helvetica","Arial",sans-serif;overflow:auto;margin:0}a{transition:0.15s;text-decoration:none;color:#dd5a6f}a:hover,a:hover code{color:#333}table p{margin:0 0 0.5rem}:not(pre)>code{color:#dd5a6f;white-space:nowrap;font-weight:normal}@media (max-width: 800px){table,tbody,tr,td,th{display:block}thead{width:1px;height:1px;position:absolute;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}tr{padding-bottom:1em;margin-bottom:1em;border-bottom:2px solid #ddd}td::before,th::before{content:attr(data-label) ": ";text-transform:capitalize;font-weight:bold}td p,th p{display:inline}}.layout-toggle{display:none}@media (min-width: 801px){.layout-toggle{position:absolute;top:8px;left:20px;font-size:2em;cursor:pointer;color:white;display:block}}@media (min-width: 801px){.sidebar-closed .sidebar{-webkit-transform:translateX(-280px);-ms-transform:translateX(-280px);transform:translateX(-280px)}.sidebar-closed .main{padding-left:0}.sidebar-closed .header{left:0}}.list-unstyled{padding-left:0;list-style:none;line-height:1.5;margin-top:0;margin-bottom:1.5rem}.list-inline li{display:inline-block}.container{max-width:100%;width:1170px;margin:0 auto;padding:0 2rem}.relative{position:relative}.clear{clear:both}.header{position:fixed;top:0;right:0;left:280px;box-shadow:0 2px 5px rgba(0,0,0,0.26);padding:1em 0;background:#dd5a6f;color:#e0e0e0;z-index:4000}@media (max-width: 800px){.header{left:0}}@media (min-width: 801px){.header{transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1)}}.header__title{font-weight:500;text-align:center;margin:0 0 0.5em 0}.header__title a{color:#e0e0e0}@media (min-width: 801px){.header__title{float:left;font-size:1em;margin-top:.25em;margin-bottom:0}}.searchbar{display:inline-block;float:right}@media (max-width: 800px){.searchbar{display:block;float:none}}.searchbar__form{float:right;position:relative}@media (max-width: 800px){.searchbar__form{float:none}}@media (min-width: 801px){.searchbar__form{min-width:15em}}.searchbar__field{border:none;padding:0.5em;font-size:1em;margin:0;width:100%;box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0}.searchbar__suggestions{position:absolute;top:100%;right:0;left:0;box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0;background:white;padding:0;margin:0;list-style:none;z-index:2}.searchbar__suggestions:empty{display:none}.searchbar__suggestions .selected{background:#ddd}.searchbar__suggestions li{border-bottom:1px solid #e0e0e0}.searchbar__suggestions li:last-of-type{border:none}.searchbar__suggestions a{display:block;padding:0.5em;font-size:0.9em}.searchbar__suggestions a:hover,.searchbar__suggestions a:active,.searchbar__suggestions a:focus{background:#e0e0e0}.searchbar__suggestions code{margin-right:.5em}@media (min-width: 801px){.sidebar{position:fixed;top:0;bottom:0;left:0;overflow:auto;box-shadow:1px 0 1.5px rgba(0,0,0,0.12);width:280px;z-index:2;border-right:1px solid #e0e0e0;transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1)}}@media (max-width: 800px){.sidebar{margin-top:4em}}.sidebar__annotation{color:#5c4863}.sidebar__item{font-size:0.9em}.sidebar__item a{padding:0.5em 4.5em;display:block;text-decoration:none;color:#333}.sidebar__item:hover,.sidebar__item:active,.sidebar__item:focus{background:#e0e0e0}.sidebar__item.is-collapsed+*{display:none}.sidebar__item--heading{padding:1em 1.5em}.sidebar__item--heading a{font-weight:bold}.sidebar__item--sub-heading{padding:0.5em 2.5em}.sidebar__item--sub-heading a{color:#888}.sidebar__item--heading,.sidebar__item--sub-heading{position:relative}.sidebar__item--heading:after,.sidebar__item--sub-heading:after{position:absolute;top:50%;right:2em;content:'\25BC';margin-top:-0.5em;color:#ddd;font-size:0.7em}.sidebar__item--heading.is-collapsed:after,.sidebar__item--sub-heading.is-collapsed:after{content:'\25B6'}.sidebar__item--heading a,.sidebar__item--sub-heading a{padding:0;display:inline}.sidebar__description{color:#e0e0e0;padding-right:2em}.sidebar__header{border-bottom:1px solid #e0e0e0}.sidebar__title{font-size:1em;margin:0;padding:1.45em}.btn-toggle{background:#EFEFEF;border:none;border-bottom:1px solid #e0e0e0;display:block;padding:1em;width:100%;cursor:pointer;color:#999;font-weight:bold;margin:0;transition:0.15s ease-out}.btn-toggle:hover,.btn-toggle:active,.btn-toggle:focus{background:#DFDFDF}.main{background:#f9f9f9;position:relative}@media (min-width: 801px){.main{transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1);padding-left:280px;padding-top:4em;min-height:45em}}.main__section{margin-top:5em;border-top:5px solid rgba(92,72,99,0.2)}.header+.main__section{margin-top:0;border-top:none}.main__heading,.main__heading--secondary{padding:1em 0;margin-top:0}@media (min-width: 801px){.main__heading,.main__heading--secondary{padding:2em 0 0}}.main__heading{color:#5c4863;font-size:3.5em;text-align:center;border-bottom:5px solid rgba(92,72,99,0.2);padding-bottom:.5em;margin-bottom:1em;background:rgba(92,72,99,0.1)}.main__heading--secondary{font-size:3em;color:#dd5a6f;text-transform:uppercase;font-weight:bold;padding-top:0;margin-bottom:-3rem;position:relative}.main__heading--secondary .container{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.main__heading--secondary::before{content:'';position:absolute;left:0;right:0;bottom:0.15em;height:0.2em;background-color:#dd5a6f}.footer{background:#e0e0e0;padding:1em 0}.footer .container{position:relative}.footer__project-info{float:left}.footer__watermark{position:absolute;right:0;top:-0.7em}.footer__watermark img{display:block;max-width:7em}.project-info__name,.project-info__version,.project-info__license{display:inline-block}.project-info__version,.project-info__license{color:#555}.project-info__license{text-indent:-0.25em}.main__section{margin-bottom:4.5rem}.item__heading{color:#333;margin:4.5rem 0 1.5rem 0;position:relative;font-size:2em;font-weight:300;float:left}.item__name{color:#dd5a6f}.item__example{margin-bottom:1.5rem}.item__example,.item__code{box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0;word-wrap:break-word;line-height:1.42}.item__code{padding-right:7em;clear:both;cursor:pointer}.item__code--togglable::after{position:absolute;right:0;bottom:-2.5em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;color:#c4c4c4;font-size:0.8em;transition:0.2s ease-out}.item__code--togglable:hover::after,.item__code--togglable:active::after,.item__code--togglable:focus::after{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.item__code--togglable[data-current-state='expanded']::after{content:'Click to collapse.'}.item__code--togglable[data-current-state='collapsed']::after{content:'Click to expand.'}.example__description{padding:1em;background:#EFEFEF}.example__description p{margin:0}.example__code[class*='language-']{margin:0}.item__anchor{font-size:0.6em;color:#eeafb9}@media (min-width: 801px){.item__anchor{position:absolute;right:101%;bottom:0.25em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0}.item:hover .item__anchor{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}}.item__deprecated{display:inline-block;overflow:hidden;margin-top:5.5em;margin-left:1em}.item__deprecated strong{float:left;color:#c00;text-transform:uppercase}.item__deprecated p{float:left;margin:0;padding-left:0.5em}.item__type{color:#ddd;text-transform:capitalize;font-size:0.75em}.item__alias,.item__aliased{color:#ddd;font-size:0.8em}.item__sub-heading{color:#333;margin-top:0;margin-bottom:1.5rem;font-size:1.2em}.item__parameters{width:100%;margin-bottom:1em;border-collapse:collapse}.item__parameters thead th{vertical-align:bottom;border-bottom:2px solid #ddd;border-top:none;text-align:left;color:#707070}.item__parameters tbody th{text-align:left}.item__parameters td,.item__parameters th{padding:0.5em 0.5em 0.5em 0;vertical-align:top}@media (min-width: 801px){tbody>.item__parameter:first-of-type>td{border-top:none}.item__parameters td,.item__parameters th{border-top:1px solid #ddd}}.item__access{text-transform:capitalize;color:#5c4863;font-size:0.8em}.item__since{float:right;padding-top:0.9em;color:#c4c4c4;margin-bottom:1em}.item__source-link{position:absolute;top:1px;right:1px;background:white;padding:1em;z-index:2;color:#c4c4c4}.item__cross-type{color:#4d4d4d;font-family:'Consolas', 'Monaco', 'Andale Mono', monospace;font-size:0.8em}.item__description{margin-bottom:1.5rem}li.item__description{margin-bottom:0}.item__description--inline>*{display:inline-block;margin:0}.item__code-wrapper{position:relative;clear:both;margin-bottom:1.5rem}.color-preview--inline{padding:2px 4px;border:1px solid rgba(0,0,0,0.1);border-radius:3px}.color-preview--block{width:2em;height:2em;position:absolute;top:140%;right:0;top:calc(100% + 20px);border:1px solid rgba(0,0,0,0.1);border-radius:3px} 2 | -------------------------------------------------------------------------------- /docs/sass/assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexweber/es6-jspm-gulp-boilerplate/7571c13c8c964a2a218fd1aaf4aa0d34663e5fa5/docs/sass/assets/images/favicon.png -------------------------------------------------------------------------------- /docs/sass/assets/images/logo_full_compact.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/sass/assets/images/logo_full_inline.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/sass/assets/images/logo_light_compact.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/sass/assets/images/logo_light_inline.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/sass/assets/js/main.js: -------------------------------------------------------------------------------- 1 | /* global document */ 2 | 3 | (function ($, global) { 4 | 'use strict'; 5 | 6 | // Constructor 7 | var App = function (conf) { 8 | this.conf = $.extend({ 9 | // Search module 10 | search: new global.Search(), 11 | 12 | // Sidebar module 13 | sidebar: new global.Sidebar(), 14 | 15 | // Initialisation 16 | init: true 17 | }, conf || {}); 18 | 19 | // Launch the module 20 | if (this.conf.init !== false) { 21 | this.initialize(); 22 | } 23 | }; 24 | 25 | // Initialisation method 26 | App.prototype.initialize = function () { 27 | this.codePreview(); 28 | }; 29 | 30 | // Toggle code preview collapsed/expanded modes 31 | App.prototype.codePreview = function () { 32 | var $item; 33 | var $code; 34 | var switchTo; 35 | 36 | $('.item__code--togglable').on('click', function () { 37 | $item = $(this); 38 | $code = $item.find('code'); 39 | switchTo = $item.attr('data-current-state') === 'expanded' ? 'collapsed' : 'expanded'; 40 | 41 | $item.attr('data-current-state', switchTo); 42 | $code.html($item.attr('data-' + switchTo)); 43 | Prism.highlightElement($code[0]); 44 | }); 45 | }; 46 | 47 | global.App = App; 48 | }(window.jQuery, window)); 49 | 50 | (function ($, global) { 51 | 52 | $(document).ready(function () { 53 | var app = new global.App(); 54 | }); 55 | 56 | }(window.jQuery, window)); -------------------------------------------------------------------------------- /docs/sass/assets/js/main.min.js: -------------------------------------------------------------------------------- 1 | !function(t){function e(t,n){this.list=t,this.options=n=n||{};var i,o,s;for(i=0,keys=["sort","includeScore","shouldSort"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=s in n?n[s]:e.defaultOptions[s];for(i=0,keys=["searchFn","sortFn","keys","getFn"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=n[s]||e.defaultOptions[s]}var n=function(t,e){if(e=e||{},this.options=e,this.options.location=e.location||n.defaultOptions.location,this.options.distance="distance"in e?e.distance:n.defaultOptions.distance,this.options.threshold="threshold"in e?e.threshold:n.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||n.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<i;)this._bitapScore(e,l+o)<=u?i=o:d=o,o=Math.floor((d-i)/2+i);for(d=o,s=Math.max(1,l-o+1),r=Math.min(l+o,c)+this.patternLen,a=Array(r+2),a[r+1]=(1<=s;n--)if(p=this.patternAlphabet[t.charAt(n-1)],a[n]=0===e?(a[n+1]<<1|1)&p:(a[n+1]<<1|1)&p|((h[n+1]|h[n])<<1|1)|h[n+1],a[n]&this.matchmask&&(g=this._bitapScore(e,n-1),u>=g)){if(u=g,f=n-1,m.push(f),!(f>l))break;s=Math.max(1,2*l-f)}if(this._bitapScore(e+1,l)>u)break;h=a}return{isMatch:f>=0,score:g}};var i={deepValue:function(t,e){for(var n=0,e=e.split("."),i=e.length;i>n;n++){if(!t)return null;t=t[e[n]]}return t}};e.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:n,sortFn:function(t,e){return t.score-e.score},getFn:i.deepValue,keys:[]},e.prototype.search=function(t){var e,n,o,s,r,a=new this.options.searchFn(t,this.options),h=this.list,p=h.length,c=this.options,l=this.options.keys,u=l.length,f=[],d={},g=[],m=function(t,e,n){void 0!==t&&null!==t&&"string"==typeof t&&(s=a.search(t),s.isMatch&&(r=d[n],r?r.score=Math.min(r.score,s.score):(d[n]={item:e,score:s.score},f.push(d[n]))))};if("string"==typeof h[0])for(var e=0;p>e;e++)m(h[e],e,e);else for(var e=0;p>e;e++)for(o=h[e],n=0;u>n;n++)m(this.options.getFn(o,l[n]),o,e);c.shouldSort&&f.sort(c.sortFn);for(var y=c.includeScore?function(t){return f[t]}:function(t){return f[t].item},L=c.id?function(t){return i.deepValue(y(t),c.id)}:function(t){return y(t)},e=0,v=f.length;v>e;e++)g.push(L(e));return g},"object"==typeof exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e}):t.Fuse=e}(this);(function($,global){var Sidebar=function(conf){this.conf=$.extend({collapsedClass:"is-collapsed",storageKey:"_sassdoc_sidebar_index",indexAttribute:"data-slug",toggleBtn:".js-btn-toggle",init:true},conf||{});if(this.conf.init===true){this.initialize()}};Sidebar.prototype.initialize=function(){this.conf.nodes=$("["+this.conf.indexAttribute+"]");this.load();this.updateDOM();this.bind();this.loadToggle()};Sidebar.prototype.loadToggle=function(){$("",{"class":"layout-toggle",html:"×","data-alt":"→"}).appendTo($(".header"));$(".layout-toggle").on("click",function(){var $this=$(this);var alt;$("body").toggleClass("sidebar-closed");alt=$this.html();$this.html($this.data("alt"));$this.data("alt",alt)})};Sidebar.prototype.load=function(){var index="localStorage"in global?global.localStorage.getItem(this.conf.storageKey):null;this.index=index?JSON.parse(index):this.buildIndex()};Sidebar.prototype.buildIndex=function(){var index={};var $item;this.conf.nodes.each($.proxy(function(index,item){$item=$(item);index[$item.attr(this.conf.indexAttribute)]=!$item.hasClass(this.conf.collapsedClass)},this));return index};Sidebar.prototype.updateDOM=function(){var item;for(item in this.index){if(this.index[item]===false){$("["+this.conf.indexAttribute+'="'+item+'"]').addClass(this.conf.collapsedClass)}}};Sidebar.prototype.save=function(){if(!("localStorage"in global)){return}global.localStorage.setItem(this.conf.storageKey,JSON.stringify(this.index))};Sidebar.prototype.bind=function(){var $item,slug,fn,text;var collapsed=false;global.onbeforeunload=$.proxy(function(){this.save()},this);$(this.conf.toggleBtn).on("click",$.proxy(function(event){$node=$(event.target);text=$node.attr("data-alt");$node.attr("data-alt",$node.text());$node.text(text);fn=collapsed===true?"removeClass":"addClass";this.conf.nodes.each($.proxy(function(index,item){$item=$(item);slug=$item.attr(this.conf.indexAttribute);this.index[slug]=collapsed;$("["+this.conf.indexAttribute+'="'+slug+'"]')[fn](this.conf.collapsedClass)},this));collapsed=!collapsed;this.save()},this));this.conf.nodes.on("click",$.proxy(function(event){$item=$(event.target);slug=$item.attr(this.conf.indexAttribute);this.index[slug]=!this.index[slug];$item.toggleClass(this.conf.collapsedClass)},this))};global.Sidebar=Sidebar})(window.jQuery,window);(function($,global){var Search=function(conf){this.conf=$.extend({search:{items:".sassdoc__item",input:"#js-search-input",form:"#js-search",suggestionsWrapper:"#js-search-suggestions"},fuse:{keys:["name"],threshold:.3},init:true},conf||{});if(this.conf.init===true){this.initialize()}};Search.prototype.initialize=function(){this.index=new Fuse($.map($(this.conf.search.items),function(item){var $item=$(item);return{name:$item.data("name"),type:$item.data("type"),node:$item}}),this.conf.fuse);this.initializeSearch()};Search.prototype.fillSuggestions=function(items){var searchSuggestions=$(this.conf.search.suggestionsWrapper);searchSuggestions.html("");var suggestions=$.map(items.slice(0,10),function(item){var $li=$("
              • ",{"data-type":item.type,"data-name":item.name,html:''+item.type.slice(0,3)+" "+item.name+""});searchSuggestions.append($li);return $li});return suggestions};Search.prototype.search=function(term){return this.fillSuggestions(this.index.search(term))};Search.prototype.initializeSearch=function(){var searchForm=$(this.conf.search.form);var searchInput=$(this.conf.search.input);var searchSuggestions=$(this.conf.search.suggestionsWrapper);var currentSelection=-1;var suggestions=[];var selected;var self=this;searchSuggestions.on("click",function(e){var target=$(event.target);if(target.nodeName==="A"){searchInput.val(target.parent().data("name"));suggestions=self.fillSuggestions([])}});searchForm.on("keyup",function(e){e.preventDefault();if(e.keyCode===13){if(selected){suggestions=self.fillSuggestions([]);searchInput.val(selected.data("name"));window.location=selected.children().first().attr("href")}e.stopPropagation()}if(e.keyCode===40){currentSelection=(currentSelection+1)%suggestions.length}if(e.keyCode===38){currentSelection=currentSelection-1;if(currentSelection<0){currentSelection=suggestions.length-1}}if(suggestions[currentSelection]){if(selected){selected.removeClass("selected")}selected=suggestions[currentSelection];selected.addClass("selected")}});searchInput.on("keyup",function(e){if(e.keyCode!==40&&e.keyCode!==38){currentSelection=-1;suggestions=self.search($(this).val())}else{e.preventDefault()}}).on("search",function(){suggestions=self.search($(this).val())})};global.Search=Search})(window.jQuery,window);(function($,global){"use strict";var App=function(conf){this.conf=$.extend({search:new global.Search,sidebar:new global.Sidebar,init:true},conf||{});if(this.conf.init!==false){this.initialize()}};App.prototype.initialize=function(){this.codePreview()};App.prototype.codePreview=function(){var $item;var $code;var switchTo;$(".item__code--togglable").on("click",function(){$item=$(this);$code=$item.find("code");switchTo=$item.attr("data-current-state")==="expanded"?"collapsed":"expanded";$item.attr("data-current-state",switchTo);$code.html($item.attr("data-"+switchTo));Prism.highlightElement($code[0])})};global.App=App})(window.jQuery,window);(function($,global){$(document).ready(function(){var app=new global.App})})(window.jQuery,window);var self=typeof window!="undefined"?window:{},Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content)):t.util.type(e)==="Array"?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+""};if(!self.document){if(!self.addEventListener)return self.Prism;self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return self.Prism}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}return self.Prism}();typeof module!="undefined"&&module.exports&&(module.exports=Prism);Prism.languages.markup={comment://g,prolog:/<\?.+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/\&#?[\da-z]{1,8};/gi};Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&/,"&"))});Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/gi,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,punctuation:/[\{\};:]/g,"function":/[-a-z0-9]+(?=\()/gi};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/[\w\W]*?<\/style>/gi,inside:{tag:{pattern:/|<\/style>/gi,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css}}});Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/g,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/g,"pseudo-class":/:[-\w]+(?:\(.*\))?/g,"class":/\.[-:\.\w]+/g,id:/#[-:\.\w]+/g}};Prism.languages.insertBefore("css","ignore",{hexcode:/#[\da-f]{3,6}/gi,entity:/\\[\da-f]{1,8}/gi,number:/[\d%\.]+/g});Prism.languages.clike={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g,lookbehind:!0},string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/gi,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/gi,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g};Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g});Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}});Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/[\w\W]*?<\/script>/gi,inside:{tag:{pattern:/|<\/script>/gi,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}});Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|\/\/.*?(\r?\n|$))/g,lookbehind:!0},atrule:/@[\w-]+(?=\s+(\(|\{|;))/gi,url:/([-a-z]+-)*url(?=\()/gi,selector:/([^@;\{\}\(\)]?([^@;\{\}\(\)]|&|\#\{\$[-_\w]+\})+)(?=\s*\{(\}|\s|[^\}]+(:|\{)[^\}]+))/gm});Prism.languages.insertBefore("scss","atrule",{keyword:/@(if|else if|else|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)|(?=@for\s+\$[-_\w]+\s)+from/i});Prism.languages.insertBefore("scss","property",{variable:/((\$[-_\w]+)|(#\{\$[-_\w]+\}))/i});Prism.languages.insertBefore("scss","ignore",{placeholder:/%[-_\w]+/i,statement:/\B!(default|optional)\b/gi,"boolean":/\b(true|false)\b/g,"null":/\b(null)\b/g,operator:/\s+([-+]{1,2}|={1,2}|!=|\|?\||\?|\*|\/|\%)\s+/g}); -------------------------------------------------------------------------------- /docs/sass/assets/js/search.js: -------------------------------------------------------------------------------- 1 | (function ($, global) { 2 | 3 | var Search = function (conf) { 4 | this.conf = $.extend({ 5 | // Search DOM 6 | search: { 7 | items: '.sassdoc__item', 8 | input: '#js-search-input', 9 | form: '#js-search', 10 | suggestionsWrapper: '#js-search-suggestions' 11 | }, 12 | 13 | // Fuse options 14 | fuse: { 15 | keys: ['name'], 16 | threshold: 0.3 17 | }, 18 | 19 | init: true 20 | }, conf || {}); 21 | 22 | if (this.conf.init === true) { 23 | this.initialize(); 24 | } 25 | }; 26 | 27 | Search.prototype.initialize = function () { 28 | // Fuse engine instanciation 29 | this.index = new Fuse($.map($(this.conf.search.items), function (item) { 30 | var $item = $(item); 31 | 32 | return { 33 | name: $item.data('name'), 34 | type: $item.data('type'), 35 | node: $item 36 | }; 37 | }), this.conf.fuse); 38 | 39 | this.initializeSearch(); 40 | }; 41 | 42 | // Fill DOM with search suggestions 43 | Search.prototype.fillSuggestions = function (items) { 44 | var searchSuggestions = $(this.conf.search.suggestionsWrapper); 45 | searchSuggestions.html(''); 46 | 47 | var suggestions = $.map(items.slice(0, 10), function (item) { 48 | var $li = $('
              • ', { 49 | 'data-type': item.type, 50 | 'data-name': item.name, 51 | 'html': '' + item.type.slice(0, 3) + ' ' + item.name + '' 52 | }); 53 | 54 | searchSuggestions.append($li); 55 | return $li; 56 | }); 57 | 58 | return suggestions; 59 | }; 60 | 61 | // Perform a search on a given term 62 | Search.prototype.search = function (term) { 63 | return this.fillSuggestions(this.index.search(term)); 64 | }; 65 | 66 | // Search logic 67 | Search.prototype.initializeSearch = function () { 68 | var searchForm = $(this.conf.search.form); 69 | var searchInput = $(this.conf.search.input); 70 | var searchSuggestions = $(this.conf.search.suggestionsWrapper); 71 | 72 | var currentSelection = -1; 73 | var suggestions = []; 74 | var selected; 75 | 76 | var self = this; 77 | 78 | // Clicking on a suggestion 79 | searchSuggestions.on('click', function (e) { 80 | var target = $(event.target); 81 | 82 | if (target.nodeName === 'A') { 83 | searchInput.val(target.parent().data('name')); 84 | suggestions = self.fillSuggestions([]); 85 | } 86 | }); 87 | 88 | // Filling the form 89 | searchForm.on('keyup', function (e) { 90 | e.preventDefault(); 91 | 92 | // Enter 93 | if (e.keyCode === 13) { 94 | if (selected) { 95 | suggestions = self.fillSuggestions([]); 96 | searchInput.val(selected.data('name')); 97 | window.location = selected.children().first().attr('href'); 98 | } 99 | 100 | e.stopPropagation(); 101 | } 102 | 103 | // KeyDown 104 | if (e.keyCode === 40) { 105 | currentSelection = (currentSelection + 1) % suggestions.length; 106 | } 107 | 108 | // KeyUp 109 | if (e.keyCode === 38) { 110 | currentSelection = currentSelection - 1; 111 | 112 | if (currentSelection < 0) { 113 | currentSelection = suggestions.length - 1; 114 | } 115 | } 116 | 117 | if (suggestions[currentSelection]) { 118 | if (selected) { 119 | selected.removeClass('selected'); 120 | } 121 | 122 | selected = suggestions[currentSelection]; 123 | selected.addClass('selected'); 124 | } 125 | 126 | }); 127 | 128 | searchInput.on('keyup', function (e) { 129 | if (e.keyCode !== 40 && e.keyCode !== 38) { 130 | currentSelection = -1; 131 | suggestions = self.search($(this).val()); 132 | } 133 | 134 | else { 135 | e.preventDefault(); 136 | } 137 | }).on('search', function () { 138 | suggestions = self.search($(this).val()); 139 | }); 140 | }; 141 | 142 | global.Search = Search; 143 | 144 | }(window.jQuery, window)); -------------------------------------------------------------------------------- /docs/sass/assets/js/sidebar.js: -------------------------------------------------------------------------------- 1 | (function ($, global) { 2 | 3 | var Sidebar = function (conf) { 4 | this.conf = $.extend({ 5 | 6 | // Collapsed class 7 | collapsedClass: 'is-collapsed', 8 | 9 | // Storage key 10 | storageKey: '_sassdoc_sidebar_index', 11 | 12 | // Index attribute 13 | indexAttribute: 'data-slug', 14 | 15 | // Toggle button 16 | toggleBtn: '.js-btn-toggle', 17 | 18 | // Automatic initialization 19 | init: true 20 | }, conf || {}); 21 | 22 | if (this.conf.init === true) { 23 | this.initialize(); 24 | } 25 | }; 26 | 27 | /** 28 | * Initialize module 29 | */ 30 | Sidebar.prototype.initialize = function () { 31 | this.conf.nodes = $('[' + this.conf.indexAttribute + ']'); 32 | 33 | this.load(); 34 | this.updateDOM(); 35 | this.bind(); 36 | this.loadToggle(); 37 | }; 38 | 39 | 40 | /** 41 | * Load sidebar toggle 42 | */ 43 | Sidebar.prototype.loadToggle = function () { 44 | $('', { 45 | 'class': 'layout-toggle', 46 | 'html': '×', 47 | 'data-alt': '→' 48 | }).appendTo( $('.header') ); 49 | 50 | $('.layout-toggle').on('click', function () { 51 | var $this = $(this); 52 | var alt; 53 | 54 | $('body').toggleClass('sidebar-closed'); 55 | 56 | alt = $this.html(); 57 | $this.html($this.data('alt')); 58 | $this.data('alt', alt); 59 | }); 60 | }; 61 | 62 | /** 63 | * Load data from storage or create fresh index 64 | */ 65 | Sidebar.prototype.load = function () { 66 | var index = 'localStorage' in global ? 67 | global.localStorage.getItem(this.conf.storageKey) : 68 | null; 69 | 70 | this.index = index ? JSON.parse(index) : this.buildIndex(); 71 | }; 72 | 73 | /** 74 | * Build a fresh index 75 | */ 76 | Sidebar.prototype.buildIndex = function () { 77 | var index = {}; 78 | var $item; 79 | 80 | this.conf.nodes.each($.proxy(function (index, item) { 81 | $item = $(item); 82 | 83 | index[$item.attr(this.conf.indexAttribute)] = !$item.hasClass(this.conf.collapsedClass); 84 | }, this)); 85 | 86 | return index; 87 | }; 88 | 89 | /** 90 | * Update DOM based on index 91 | */ 92 | Sidebar.prototype.updateDOM = function () { 93 | var item; 94 | 95 | for (item in this.index) { 96 | if (this.index[item] === false) { 97 | $('[' + this.conf.indexAttribute + '="' + item + '"]').addClass(this.conf.collapsedClass); 98 | } 99 | } 100 | }; 101 | 102 | /** 103 | * Save index in storage 104 | */ 105 | Sidebar.prototype.save = function () { 106 | if (!('localStorage' in global)) { 107 | return; 108 | } 109 | 110 | global.localStorage.setItem(this.conf.storageKey, JSON.stringify(this.index)); 111 | }; 112 | 113 | /** 114 | * Bind UI events 115 | */ 116 | Sidebar.prototype.bind = function () { 117 | var $item, slug, fn, text; 118 | var collapsed = false; 119 | 120 | // Save index in localStorage 121 | global.onbeforeunload = $.proxy(function () { 122 | this.save(); 123 | }, this); 124 | 125 | // Toggle all 126 | $(this.conf.toggleBtn).on('click', $.proxy(function (event) { 127 | $node = $(event.target); 128 | 129 | text = $node.attr('data-alt'); 130 | $node.attr('data-alt', $node.text()); 131 | $node.text(text); 132 | 133 | fn = collapsed === true ? 'removeClass' : 'addClass'; 134 | 135 | this.conf.nodes.each($.proxy(function (index, item) { 136 | $item = $(item); 137 | slug = $item.attr(this.conf.indexAttribute); 138 | 139 | this.index[slug] = collapsed; 140 | 141 | $('[' + this.conf.indexAttribute + '="' + slug + '"]')[fn](this.conf.collapsedClass); 142 | }, this)); 143 | 144 | collapsed = !collapsed; 145 | this.save(); 146 | }, this)); 147 | 148 | // Toggle item 149 | this.conf.nodes.on('click', $.proxy(function (event) { 150 | $item = $(event.target); 151 | slug = $item.attr(this.conf.indexAttribute); 152 | 153 | // Update index 154 | this.index[slug] = !this.index[slug]; 155 | 156 | // Update DOM 157 | $item.toggleClass(this.conf.collapsedClass); 158 | }, this)); 159 | }; 160 | 161 | global.Sidebar = Sidebar; 162 | 163 | }(window.jQuery, window)); 164 | -------------------------------------------------------------------------------- /docs/sass/assets/js/vendor/fuse.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Fuse - Lightweight fuzzy-search 4 | * 5 | * Copyright (c) 2012 Kirollos Risk . 6 | * All Rights Reserved. Apache Software License 2.0 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | !function(t){function e(t,n){this.list=t,this.options=n=n||{};var i,o,s;for(i=0,keys=["sort","includeScore","shouldSort"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=s in n?n[s]:e.defaultOptions[s];for(i=0,keys=["searchFn","sortFn","keys","getFn"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=n[s]||e.defaultOptions[s]}var n=function(t,e){if(e=e||{},this.options=e,this.options.location=e.location||n.defaultOptions.location,this.options.distance="distance"in e?e.distance:n.defaultOptions.distance,this.options.threshold="threshold"in e?e.threshold:n.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||n.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<i;)this._bitapScore(e,l+o)<=u?i=o:d=o,o=Math.floor((d-i)/2+i);for(d=o,s=Math.max(1,l-o+1),r=Math.min(l+o,c)+this.patternLen,a=Array(r+2),a[r+1]=(1<=s;n--)if(p=this.patternAlphabet[t.charAt(n-1)],a[n]=0===e?(a[n+1]<<1|1)&p:(a[n+1]<<1|1)&p|((h[n+1]|h[n])<<1|1)|h[n+1],a[n]&this.matchmask&&(g=this._bitapScore(e,n-1),u>=g)){if(u=g,f=n-1,m.push(f),!(f>l))break;s=Math.max(1,2*l-f)}if(this._bitapScore(e+1,l)>u)break;h=a}return{isMatch:f>=0,score:g}};var i={deepValue:function(t,e){for(var n=0,e=e.split("."),i=e.length;i>n;n++){if(!t)return null;t=t[e[n]]}return t}};e.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:n,sortFn:function(t,e){return t.score-e.score},getFn:i.deepValue,keys:[]},e.prototype.search=function(t){var e,n,o,s,r,a=new this.options.searchFn(t,this.options),h=this.list,p=h.length,c=this.options,l=this.options.keys,u=l.length,f=[],d={},g=[],m=function(t,e,n){void 0!==t&&null!==t&&"string"==typeof t&&(s=a.search(t),s.isMatch&&(r=d[n],r?r.score=Math.min(r.score,s.score):(d[n]={item:e,score:s.score},f.push(d[n]))))};if("string"==typeof h[0])for(var e=0;p>e;e++)m(h[e],e,e);else for(var e=0;p>e;e++)for(o=h[e],n=0;u>n;n++)m(this.options.getFn(o,l[n]),o,e);c.shouldSort&&f.sort(c.sortFn);for(var y=c.includeScore?function(t){return f[t]}:function(t){return f[t].item},L=c.id?function(t){return i.deepValue(y(t),c.id)}:function(t){return y(t)},e=0,v=f.length;v>e;e++)g.push(L(e));return g},"object"==typeof exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e}):t.Fuse=e}(this); -------------------------------------------------------------------------------- /docs/sass/assets/js/vendor/prism.min.js: -------------------------------------------------------------------------------- 1 | /* http://prismjs.com/download.html?themes=prism&languages=markup+css+css-extras+clike+javascript+scss */ 2 | var self=typeof window!="undefined"?window:{},Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content)):t.util.type(e)==="Array"?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+""};if(!self.document){if(!self.addEventListener)return self.Prism;self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return self.Prism}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}return self.Prism}();typeof module!="undefined"&&module.exports&&(module.exports=Prism);; 3 | Prism.languages.markup={comment://g,prolog:/<\?.+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/\&#?[\da-z]{1,8};/gi};Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&/,"&"))});; 4 | Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/ig,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,punctuation:/[\{\};:]/g,"function":/[-a-z0-9]+(?=\()/ig};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/[\w\W]*?<\/style>/ig,inside:{tag:{pattern:/|<\/style>/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css}}});; 5 | Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/g,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/g,"pseudo-class":/:[-\w]+(?:\(.*\))?/g,"class":/\.[-:\.\w]+/g,id:/#[-:\.\w]+/g}};Prism.languages.insertBefore("css","ignore",{hexcode:/#[\da-f]{3,6}/gi,entity:/\\[\da-f]{1,8}/gi,number:/[\d%\.]+/g});; 6 | Prism.languages.clike={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g,lookbehind:!0},string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/ig,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/ig,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g};; 7 | Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g});Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}});Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/[\w\W]*?<\/script>/ig,inside:{tag:{pattern:/|<\/script>/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}}); 8 | ; 9 | Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|\/\/.*?(\r?\n|$))/g,lookbehind:!0},atrule:/@[\w-]+(?=\s+(\(|\{|;))/gi,url:/([-a-z]+-)*url(?=\()/gi,selector:/([^@;\{\}\(\)]?([^@;\{\}\(\)]|&|\#\{\$[-_\w]+\})+)(?=\s*\{(\}|\s|[^\}]+(:|\{)[^\}]+))/gm});Prism.languages.insertBefore("scss","atrule",{keyword:/@(if|else if|else|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)|(?=@for\s+\$[-_\w]+\s)+from/i});Prism.languages.insertBefore("scss","property",{variable:/((\$[-_\w]+)|(#\{\$[-_\w]+\}))/i});Prism.languages.insertBefore("scss","ignore",{placeholder:/%[-_\w]+/i,statement:/\B!(default|optional)\b/gi,"boolean":/\b(true|false)\b/g,"null":/\b(null)\b/g,operator:/\s+([-+]{1,2}|={1,2}|!=|\|?\||\?|\*|\/|\%)\s+/g});; -------------------------------------------------------------------------------- /docs/sass/index.html: -------------------------------------------------------------------------------- 1 | Es6-jspm-gulp-boilerplate - v0.4.0

                Es6-jspm-gulp-boilerplate - v0.4.0

                No documented item.

                  Seems like nothing has been documented yet!

                  Es6-jspm-gulp-boilerplate - v0.4.0 , under Unlicense
                  SassDoc Logo
                  -------------------------------------------------------------------------------- /gulp/build.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'), 4 | autoprefixer = require('gulp-autoprefixer'), 5 | concat = require('gulp-concat'), 6 | imagemin = require('gulp-imagemin'), 7 | cssNano = require('gulp-cssnano'), 8 | htmlMin = require('gulp-htmlmin'), 9 | jspm = require('gulp-jspm'), 10 | pngquant = require('imagemin-pngquant'), 11 | rename = require('gulp-rename'), 12 | replace = require('gulp-replace'), 13 | runSeq = require('run-sequence'), 14 | sass = require('gulp-sass'), 15 | uglify = require('gulp-uglify'); 16 | 17 | // One build task to rule them all. 18 | gulp.task('build', function (done) { 19 | runSeq('clean', ['buildsass', 'buildimg', 'buildjs'], 'buildhtml', done); 20 | }); 21 | 22 | // Build SASS for distribution. 23 | gulp.task('buildsass', function () { 24 | gulp.src(global.paths.sass) 25 | .pipe(sass().on('error', sass.logError)) 26 | .pipe(concat('app.css')) 27 | .pipe(autoprefixer()) 28 | .pipe(cssNano()) 29 | .pipe(rename({ 30 | suffix: '.min' 31 | })) 32 | .pipe(gulp.dest(global.paths.dist)); 33 | }); 34 | 35 | // Build JS for distribution. 36 | gulp.task('buildjs', function () { 37 | gulp.src('./src/js/app.js') 38 | .pipe(jspm({ 39 | selfExecutingBundle: true, 40 | minify: true, 41 | skipSourceMaps: true 42 | })) 43 | .pipe(rename('app.min.js')) 44 | .pipe(gulp.dest(global.paths.dist)); 45 | }); 46 | 47 | // Build HTML for distribution. 48 | gulp.task('buildhtml', function () { 49 | gulp.src(global.paths.html) 50 | .pipe(replace('css/app.css', 'app.min.css')) 51 | .pipe(replace('lib/system.js', 'app.min.js')) 52 | .pipe(replace('', '')) 53 | .pipe(replace("", '')) 54 | .pipe(htmlMin({collapseWhitespace: true})) 55 | .pipe(gulp.dest(global.paths.dist)); 56 | }); 57 | 58 | // Build images for distribution. 59 | gulp.task('buildimg', function () { 60 | gulp.src(global.paths.img) 61 | .pipe(imagemin({ 62 | progressive: true, 63 | svgoPlugins: [{removeViewBox: false}], 64 | use: [pngquant()] 65 | })) 66 | .pipe(gulp.dest(global.paths.dist + '/img')); 67 | }); 68 | -------------------------------------------------------------------------------- /gulp/clean.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'), 4 | del = require('del'); 5 | 6 | // Empty the build dir. 7 | gulp.task('clean', function () { 8 | del([global.paths.dist + '/*']); 9 | }); 10 | -------------------------------------------------------------------------------- /gulp/connect.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'), 4 | connect = require('gulp-connect'); 5 | 6 | // Start local dev server. 7 | gulp.task('connect', function () { 8 | connect.server({ 9 | root: global.paths.src, 10 | livereload: true 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /gulp/html.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'), 4 | connect = require('gulp-connect'); 5 | 6 | // HTML livereload. 7 | gulp.task('html', function () { 8 | gulp.src(global.paths.html) 9 | .pipe(connect.reload()); 10 | }); 11 | -------------------------------------------------------------------------------- /gulp/javascript.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'), 4 | connect = require('gulp-connect'); 5 | 6 | // JavaScript livereload. 7 | gulp.task('js', function () { 8 | gulp.src(global.paths.js) 9 | .pipe(connect.reload()); 10 | }); 11 | -------------------------------------------------------------------------------- /gulp/lint.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'), 4 | cache = require('gulp-cached'), 5 | eslint = require('gulp-eslint'), 6 | sassLint = require('gulp-sass-lint'); 7 | 8 | // Lint JS. 9 | gulp.task('lintjs', function () { 10 | return gulp.src(global.paths.js) 11 | .pipe(cache('lintjs')) 12 | .pipe(eslint()) 13 | .pipe(eslint.format()); 14 | }); 15 | 16 | // Lint SASS. 17 | gulp.task('lintsass', function () { 18 | return gulp.src(global.paths.sass) 19 | .pipe(cache('lintsass')) 20 | .pipe(sassLint()) 21 | .pipe(sassLint.format()); 22 | }); 23 | 24 | // Lint all the things! 25 | gulp.task('lint', ['lintjs', 'lintsass']); 26 | -------------------------------------------------------------------------------- /gulp/sass.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'), 4 | autoprefixer = require('gulp-autoprefixer'), 5 | concat = require('gulp-concat'), 6 | connect = require('gulp-connect'), 7 | sass = require('gulp-sass'), 8 | sourcemaps = require('gulp-sourcemaps'); 9 | 10 | var sassOptions = { 11 | errLogToConsole: true, 12 | outputStyle: 'expanded' 13 | }; 14 | 15 | // Compile SASS with sourcemaps + livereload. 16 | gulp.task('sass', function () { 17 | gulp.src(global.paths.sass) 18 | .pipe(sourcemaps.init()) 19 | .pipe(sass(sassOptions).on('error', sass.logError)) 20 | .pipe(concat('app.css')) 21 | .pipe(autoprefixer()) 22 | .pipe(sourcemaps.write('.')) 23 | .pipe(gulp.dest(global.paths.css)) 24 | .pipe(connect.reload()); 25 | }); 26 | -------------------------------------------------------------------------------- /gulp/watch.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var gulp = require('gulp'), 4 | path = require('path'), 5 | util = require('gulp-util'); 6 | 7 | // Watch for changes. 8 | gulp.task('watch', ['lintjs', 'js', 'lintsass', 'sass', 'html'], function () { 9 | gulp.watch([global.paths.js], ['lintjs', 'js']).on('change', logChanges); 10 | gulp.watch([global.paths.sass], ['lintsass', 'sass']).on('change', logChanges); 11 | gulp.watch([global.paths.html], ['html']).on('change', logChanges); 12 | }); 13 | 14 | function logChanges(event) { 15 | util.log( 16 | util.colors.green('File ' + event.type + ': ') + 17 | util.colors.magenta(path.basename(event.path)) 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* 4 | * gulpfile.js 5 | * =========== 6 | * Rather than manage one giant configuration file responsible 7 | * for creating multiple tasks, each task has been broken out into 8 | * its own file in the 'gulp' folder. Any files in that directory get 9 | * automatically required below. 10 | * 11 | * To add a new task, simply add a new task file in that directory. 12 | */ 13 | 14 | var gulp = require('gulp'); 15 | var requireDir = require('require-dir'); 16 | 17 | // Specify paths & globbing patterns for tasks. 18 | global.paths = { 19 | // HTML sources. 20 | 'html': './src/*.html', 21 | // JS sources. 22 | 'js': './src/js/**/*.js', 23 | // SASS sources. 24 | 'sass': './src/scss/**/*.scss', 25 | // Image sources. 26 | 'img': './src/img/*', 27 | // Sources folder. 28 | 'src': './src', 29 | // Compiled CSS folder. 30 | 'css': './src/css', 31 | // Distribution folder. 32 | 'dist': './dist' 33 | }; 34 | 35 | // Require all tasks in the 'gulp' folder. 36 | requireDir('./gulp', { recurse: false }); 37 | 38 | // Default task; start local server & watch for changes. 39 | gulp.task('default', ['connect', 'watch']); 40 | -------------------------------------------------------------------------------- /karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration 2 | 3 | module.exports = function(config) { 4 | config.set({ 5 | 6 | // base path that will be used to resolve all patterns (eg. files, exclude) 7 | basePath: '', 8 | 9 | 10 | // frameworks to use 11 | // available frameworks: https://npmjs.org/browse/keyword/karma-adapter 12 | frameworks: [ 13 | 'jspm', 14 | 'mocha', 15 | 'chai-as-promised', 16 | 'sinon-chai' 17 | ], 18 | 19 | 20 | // list of files / patterns to load in the browser 21 | // files: [], 22 | 23 | // configuration for karma-jspm 24 | jspm: { 25 | useBundles: true, 26 | config: 'src/config.js', 27 | loadFiles: ['test/**/*.js'], 28 | serveFiles: ['src/js/**/*.js'], 29 | packages: 'src/lib' 30 | }, 31 | 32 | proxies: { 33 | '/base/lib/': '/base/src/lib/' 34 | }, 35 | 36 | // list of files to exclude 37 | exclude: [ 38 | ], 39 | 40 | 41 | // preprocess matching files before serving them to the browser 42 | // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor 43 | preprocessors: { 44 | }, 45 | 46 | 47 | // test results reporter to use 48 | // possible values: 'dots', 'progress' 49 | // available reporters: https://npmjs.org/browse/keyword/karma-reporter 50 | reporters: ['mocha'], 51 | 52 | 53 | // web server port 54 | port: 9876, 55 | 56 | 57 | // enable / disable colors in the output (reporters and logs) 58 | colors: true, 59 | 60 | 61 | // level of logging 62 | // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG 63 | logLevel: config.LOG_INFO, 64 | 65 | 66 | // enable / disable watching file and executing tests whenever any file changes 67 | autoWatch: true, 68 | 69 | 70 | // start these browsers 71 | // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher 72 | browsers: [ 73 | 'Chrome' 74 | ], 75 | 76 | 77 | // Continuous Integration mode 78 | // if true, Karma captures browsers, runs the tests and exits 79 | singleRun: true 80 | }); 81 | }; 82 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "es6-jspm-gulp-boilerplate", 3 | "version": "0.4.2", 4 | "description": "Boilerplate for ES6+ apps using JSPM + Babel", 5 | "main": "dist/index.html", 6 | "homepage": "https://github.com/alexweber/es6-jspm-gulp-boilerplate#readme", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/alexweber/es6-jspm-gulp-boilerplate.git" 10 | }, 11 | "bugs": "https://github.com/alexweber/es6-jspm-gulp-boilerplate/issues", 12 | "author": { 13 | "name": "Alex Weber", 14 | "email": "alexweber15@gmail.com", 15 | "url": "http://alexweber.com.br" 16 | }, 17 | "readmeFilename": "README.md", 18 | "license": "Unlicense", 19 | "scripts": { 20 | "test": "karma start", 21 | "test:watch": "karma start --no-single-run", 22 | "build": "gulp build", 23 | "docs": "npm run sassdocs && npm run jsdocs", 24 | "start": "gulp", 25 | "jsdocs": "esdoc -c .esdoc.json", 26 | "sassdocs": "sassdoc src/scss", 27 | "postinstall": "jspm install" 28 | }, 29 | "keywords": [ 30 | "es6", 31 | "jspm", 32 | "gulp", 33 | "boilerplate", 34 | "babel", 35 | "systemjs" 36 | ], 37 | "directories": { 38 | "doc": "docs", 39 | "test": "test", 40 | "baseURL": "src", 41 | "packages": "src/lib" 42 | }, 43 | "devDependencies": { 44 | "chai": "^3.5.0", 45 | "chai-as-promised": "^5.2.0", 46 | "del": "^2.2.0", 47 | "esdoc": "^0.4.4", 48 | "eslint": "^1.10.3", 49 | "eslint-config-standard": "^4.4.0", 50 | "eslint-plugin-promise": "^1.0.8", 51 | "eslint-plugin-standard": "^1.3.2", 52 | "gulp": "^3.9.1", 53 | "gulp-autoprefixer": "^3.1.0", 54 | "gulp-cached": "^1.1.0", 55 | "gulp-concat": "^2.6.0", 56 | "gulp-connect": "^2.3.1", 57 | "gulp-cssnano": "^2.1.1", 58 | "gulp-eslint": "^1.1.1", 59 | "gulp-htmlmin": "^1.3.0", 60 | "gulp-imagemin": "^2.4.0", 61 | "gulp-jspm": "^0.5.6", 62 | "gulp-rename": "^1.2.2", 63 | "gulp-replace": "^0.5.4", 64 | "gulp-sass": "^2.2.0", 65 | "gulp-sass-lint": "^1.1.1", 66 | "gulp-sourcemaps": "^1.6.0", 67 | "gulp-uglify": "^1.5.2", 68 | "gulp-util": "^3.0.7", 69 | "imagemin-pngquant": "^4.2.0", 70 | "jspm": "^0.16.27", 71 | "karma": "^0.13.19", 72 | "karma-chai": "^0.1.0", 73 | "karma-chai-as-promised": "^0.1.2", 74 | "karma-chrome-launcher": "^0.2.2", 75 | "karma-jspm": "^2.0.2", 76 | "karma-mocha": "^0.2.1", 77 | "karma-mocha-reporter": "^1.1.5", 78 | "karma-sinon-chai": "^1.1.0", 79 | "mocha": "^2.4.5", 80 | "require-dir": "^0.3.0", 81 | "run-sequence": "^1.1.5", 82 | "sassdoc": "^2.1.20" 83 | }, 84 | "jspm": { 85 | "directories": { 86 | "baseURL": "src", 87 | "doc": "docs", 88 | "packages": "src/lib", 89 | "test": "test" 90 | }, 91 | "devDependencies": { 92 | "babel": "npm:babel-core@^5.8.24", 93 | "babel-runtime": "npm:babel-runtime@^5.8.24", 94 | "core-js": "npm:core-js@^1.1.4" 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /src/config.js: -------------------------------------------------------------------------------- 1 | System.config({ 2 | defaultJSExtensions: true, 3 | transpiler: "babel", 4 | babelOptions: { 5 | "optional": [ 6 | "runtime" 7 | ] 8 | }, 9 | paths: { 10 | "github:*": "lib/github/*", 11 | "npm:*": "lib/npm/*" 12 | }, 13 | 14 | map: { 15 | "babel": "npm:babel-core@5.8.35", 16 | "babel-runtime": "npm:babel-runtime@5.8.35", 17 | "core-js": "npm:core-js@1.2.6", 18 | "pixi.js": "npm:pixi.js@3.0.6", 19 | "github:jspm/nodelibs-assert@0.1.0": { 20 | "assert": "npm:assert@1.3.0" 21 | }, 22 | "github:jspm/nodelibs-buffer@0.1.0": { 23 | "buffer": "npm:buffer@3.2.2" 24 | }, 25 | "github:jspm/nodelibs-events@0.1.1": { 26 | "events": "npm:events@1.0.2" 27 | }, 28 | "github:jspm/nodelibs-path@0.1.0": { 29 | "path-browserify": "npm:path-browserify@0.0.0" 30 | }, 31 | "github:jspm/nodelibs-process@0.1.2": { 32 | "process": "npm:process@0.11.2" 33 | }, 34 | "github:jspm/nodelibs-punycode@0.1.0": { 35 | "punycode": "npm:punycode@1.3.2" 36 | }, 37 | "github:jspm/nodelibs-querystring@0.1.0": { 38 | "querystring": "npm:querystring@0.2.0" 39 | }, 40 | "github:jspm/nodelibs-stream@0.1.0": { 41 | "stream-browserify": "npm:stream-browserify@1.0.0" 42 | }, 43 | "github:jspm/nodelibs-url@0.1.0": { 44 | "url": "npm:url@0.10.3" 45 | }, 46 | "github:jspm/nodelibs-util@0.1.0": { 47 | "util": "npm:util@0.10.3" 48 | }, 49 | "npm:acorn@1.2.2": { 50 | "fs": "github:jspm/nodelibs-fs@0.1.2", 51 | "path": "github:jspm/nodelibs-path@0.1.0", 52 | "process": "github:jspm/nodelibs-process@0.1.2", 53 | "stream": "github:jspm/nodelibs-stream@0.1.0" 54 | }, 55 | "npm:amdefine@0.1.1": { 56 | "fs": "github:jspm/nodelibs-fs@0.1.2", 57 | "module": "github:jspm/nodelibs-module@0.1.0", 58 | "path": "github:jspm/nodelibs-path@0.1.0", 59 | "process": "github:jspm/nodelibs-process@0.1.2" 60 | }, 61 | "npm:assert@1.3.0": { 62 | "util": "npm:util@0.10.3" 63 | }, 64 | "npm:async@0.9.2": { 65 | "process": "github:jspm/nodelibs-process@0.1.2", 66 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 67 | }, 68 | "npm:babel-runtime@5.8.35": { 69 | "process": "github:jspm/nodelibs-process@0.1.2" 70 | }, 71 | "npm:brfs@1.4.0": { 72 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 73 | "fs": "github:jspm/nodelibs-fs@0.1.2", 74 | "path": "github:jspm/nodelibs-path@0.1.0", 75 | "process": "github:jspm/nodelibs-process@0.1.2", 76 | "quote-stream": "npm:quote-stream@0.0.0", 77 | "resolve": "npm:resolve@1.1.6", 78 | "static-module": "npm:static-module@1.1.2", 79 | "systemjs-json": "github:systemjs/plugin-json@0.1.0", 80 | "through2": "npm:through2@0.4.2" 81 | }, 82 | "npm:buffer@3.2.2": { 83 | "base64-js": "npm:base64-js@0.0.8", 84 | "ieee754": "npm:ieee754@1.1.5", 85 | "is-array": "npm:is-array@1.0.1" 86 | }, 87 | "npm:concat-stream@1.4.8": { 88 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 89 | "inherits": "npm:inherits@2.0.1", 90 | "readable-stream": "npm:readable-stream@1.1.13", 91 | "typedarray": "npm:typedarray@0.0.6" 92 | }, 93 | "npm:core-js@1.2.6": { 94 | "fs": "github:jspm/nodelibs-fs@0.1.2", 95 | "path": "github:jspm/nodelibs-path@0.1.0", 96 | "process": "github:jspm/nodelibs-process@0.1.2", 97 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 98 | }, 99 | "npm:core-util-is@1.0.1": { 100 | "buffer": "github:jspm/nodelibs-buffer@0.1.0" 101 | }, 102 | "npm:duplexer2@0.0.2": { 103 | "readable-stream": "npm:readable-stream@1.1.13" 104 | }, 105 | "npm:earcut@2.0.1": { 106 | "process": "github:jspm/nodelibs-process@0.1.2" 107 | }, 108 | "npm:escodegen@0.0.28": { 109 | "esprima": "npm:esprima@1.0.4", 110 | "estraverse": "npm:estraverse@1.3.2", 111 | "fs": "github:jspm/nodelibs-fs@0.1.2", 112 | "path": "github:jspm/nodelibs-path@0.1.0", 113 | "process": "github:jspm/nodelibs-process@0.1.2", 114 | "source-map": "npm:source-map@0.1.43", 115 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 116 | }, 117 | "npm:escodegen@1.3.3": { 118 | "esprima": "npm:esprima@1.1.1", 119 | "estraverse": "npm:estraverse@1.5.1", 120 | "esutils": "npm:esutils@1.0.0", 121 | "fs": "github:jspm/nodelibs-fs@0.1.2", 122 | "path": "github:jspm/nodelibs-path@0.1.0", 123 | "process": "github:jspm/nodelibs-process@0.1.2", 124 | "source-map": "npm:source-map@0.1.43", 125 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 126 | }, 127 | "npm:esprima@1.0.4": { 128 | "fs": "github:jspm/nodelibs-fs@0.1.2", 129 | "process": "github:jspm/nodelibs-process@0.1.2" 130 | }, 131 | "npm:esprima@1.1.1": { 132 | "fs": "github:jspm/nodelibs-fs@0.1.2", 133 | "process": "github:jspm/nodelibs-process@0.1.2" 134 | }, 135 | "npm:falafel@1.1.0": { 136 | "acorn": "npm:acorn@1.2.2" 137 | }, 138 | "npm:inherits@2.0.1": { 139 | "util": "github:jspm/nodelibs-util@0.1.0" 140 | }, 141 | "npm:path-browserify@0.0.0": { 142 | "process": "github:jspm/nodelibs-process@0.1.2" 143 | }, 144 | "npm:pixi.js@3.0.6": { 145 | "async": "npm:async@0.9.2", 146 | "brfs": "npm:brfs@1.4.0", 147 | "child_process": "github:jspm/nodelibs-child_process@0.1.0", 148 | "earcut": "npm:earcut@2.0.1", 149 | "eventemitter3": "npm:eventemitter3@1.1.0", 150 | "fs": "github:jspm/nodelibs-fs@0.1.2", 151 | "object-assign": "npm:object-assign@2.1.1", 152 | "path": "github:jspm/nodelibs-path@0.1.0", 153 | "process": "github:jspm/nodelibs-process@0.1.2", 154 | "punycode": "github:jspm/nodelibs-punycode@0.1.0", 155 | "querystring": "github:jspm/nodelibs-querystring@0.1.0", 156 | "resource-loader": "npm:resource-loader@1.6.0", 157 | "systemjs-json": "github:systemjs/plugin-json@0.1.0", 158 | "url": "github:jspm/nodelibs-url@0.1.0" 159 | }, 160 | "npm:process@0.11.2": { 161 | "assert": "github:jspm/nodelibs-assert@0.1.0" 162 | }, 163 | "npm:punycode@1.3.2": { 164 | "process": "github:jspm/nodelibs-process@0.1.2" 165 | }, 166 | "npm:quote-stream@0.0.0": { 167 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 168 | "fs": "github:jspm/nodelibs-fs@0.1.2", 169 | "minimist": "npm:minimist@0.0.8", 170 | "process": "github:jspm/nodelibs-process@0.1.2", 171 | "through2": "npm:through2@0.4.2" 172 | }, 173 | "npm:readable-stream@1.0.33": { 174 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 175 | "core-util-is": "npm:core-util-is@1.0.1", 176 | "events": "github:jspm/nodelibs-events@0.1.1", 177 | "inherits": "npm:inherits@2.0.1", 178 | "isarray": "npm:isarray@0.0.1", 179 | "process": "github:jspm/nodelibs-process@0.1.2", 180 | "stream": "github:jspm/nodelibs-stream@0.1.0", 181 | "stream-browserify": "npm:stream-browserify@1.0.0", 182 | "string_decoder": "npm:string_decoder@0.10.31" 183 | }, 184 | "npm:readable-stream@1.1.13": { 185 | "buffer": "github:jspm/nodelibs-buffer@0.1.0", 186 | "core-util-is": "npm:core-util-is@1.0.1", 187 | "events": "github:jspm/nodelibs-events@0.1.1", 188 | "inherits": "npm:inherits@2.0.1", 189 | "isarray": "npm:isarray@0.0.1", 190 | "process": "github:jspm/nodelibs-process@0.1.2", 191 | "stream": "github:jspm/nodelibs-stream@0.1.0", 192 | "stream-browserify": "npm:stream-browserify@1.0.0", 193 | "string_decoder": "npm:string_decoder@0.10.31", 194 | "util": "github:jspm/nodelibs-util@0.1.0" 195 | }, 196 | "npm:resolve@1.1.6": { 197 | "fs": "github:jspm/nodelibs-fs@0.1.2", 198 | "path": "github:jspm/nodelibs-path@0.1.0", 199 | "process": "github:jspm/nodelibs-process@0.1.2", 200 | "systemjs-json": "github:systemjs/plugin-json@0.1.0" 201 | }, 202 | "npm:resource-loader@1.6.0": { 203 | "async": "npm:async@0.9.2", 204 | "child_process": "github:jspm/nodelibs-child_process@0.1.0", 205 | "eventemitter3": "npm:eventemitter3@1.1.0", 206 | "path": "github:jspm/nodelibs-path@0.1.0", 207 | "process": "github:jspm/nodelibs-process@0.1.2", 208 | "url": "github:jspm/nodelibs-url@0.1.0" 209 | }, 210 | "npm:source-map@0.1.43": { 211 | "amdefine": "npm:amdefine@0.1.1", 212 | "fs": "github:jspm/nodelibs-fs@0.1.2", 213 | "path": "github:jspm/nodelibs-path@0.1.0", 214 | "process": "github:jspm/nodelibs-process@0.1.2" 215 | }, 216 | "npm:static-eval@0.2.4": { 217 | "escodegen": "npm:escodegen@0.0.28" 218 | }, 219 | "npm:static-module@1.1.2": { 220 | "concat-stream": "npm:concat-stream@1.4.8", 221 | "duplexer2": "npm:duplexer2@0.0.2", 222 | "escodegen": "npm:escodegen@1.3.3", 223 | "falafel": "npm:falafel@1.1.0", 224 | "fs": "github:jspm/nodelibs-fs@0.1.2", 225 | "has": "npm:has@1.0.0", 226 | "object-inspect": "npm:object-inspect@0.4.0", 227 | "path": "github:jspm/nodelibs-path@0.1.0", 228 | "quote-stream": "npm:quote-stream@0.0.0", 229 | "readable-stream": "npm:readable-stream@1.0.33", 230 | "shallow-copy": "npm:shallow-copy@0.0.1", 231 | "static-eval": "npm:static-eval@0.2.4", 232 | "through2": "npm:through2@0.4.2" 233 | }, 234 | "npm:stream-browserify@1.0.0": { 235 | "events": "github:jspm/nodelibs-events@0.1.1", 236 | "inherits": "npm:inherits@2.0.1", 237 | "readable-stream": "npm:readable-stream@1.1.13" 238 | }, 239 | "npm:string_decoder@0.10.31": { 240 | "buffer": "github:jspm/nodelibs-buffer@0.1.0" 241 | }, 242 | "npm:through2@0.4.2": { 243 | "readable-stream": "npm:readable-stream@1.0.33", 244 | "util": "github:jspm/nodelibs-util@0.1.0", 245 | "xtend": "npm:xtend@2.1.2" 246 | }, 247 | "npm:url@0.10.3": { 248 | "assert": "github:jspm/nodelibs-assert@0.1.0", 249 | "punycode": "npm:punycode@1.3.2", 250 | "querystring": "npm:querystring@0.2.0", 251 | "util": "github:jspm/nodelibs-util@0.1.0" 252 | }, 253 | "npm:util@0.10.3": { 254 | "inherits": "npm:inherits@2.0.1", 255 | "process": "github:jspm/nodelibs-process@0.1.2" 256 | }, 257 | "npm:xtend@2.1.2": { 258 | "object-keys": "npm:object-keys@0.4.0" 259 | } 260 | } 261 | }); 262 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ES6 + JSPM + Gulp 6 | 7 | 8 | 9 |

                  Hello JSPM!

                  10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/js/app.js: -------------------------------------------------------------------------------- 1 | import Foo from './foo'; 2 | 3 | let foo = new Foo(); 4 | 5 | let textNode = document.createTextNode(foo.doSomething()); 6 | document.body.appendChild(textNode); 7 | 8 | export var hello = 'es6'; 9 | -------------------------------------------------------------------------------- /src/js/foo.js: -------------------------------------------------------------------------------- 1 | class Foo { 2 | 3 | doSomething () { 4 | return 'Do Something'; 5 | } 6 | } 7 | 8 | export default Foo; 9 | -------------------------------------------------------------------------------- /src/scss/app.scss: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #fff; 3 | } 4 | -------------------------------------------------------------------------------- /src/scss/foo.scss: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: #bada55; 3 | text-decoration: underline; 4 | } 5 | -------------------------------------------------------------------------------- /test/foo.test.js: -------------------------------------------------------------------------------- 1 | import Foo from 'src/js/foo'; 2 | 3 | describe('ES6 Foo', () => { 4 | let foo; 5 | 6 | beforeEach(() => { 7 | foo = new Foo(); 8 | }); 9 | 10 | afterEach(() => { 11 | 12 | }); 13 | 14 | it('should return "Do Something" when calling doSomething', () => { 15 | expect(foo.doSomething()).to.equal('Do Something'); 16 | }); 17 | }); 18 | --------------------------------------------------------------------------------