Commit 1dd17f9c authored by Arthur Verschaeve's avatar Arthur Verschaeve

Merge pull request #1304 from tastejs/sjs/angular2

angular2: App Example
parents 11c77bd9 f774572d
node_modules/.bin
node_modules/node-uuid
!node_modules/node-uuid/uuid.js
node_modules/store.js
node_modules/store.js/store.js
node_modules/systemjs/bower.json
node_modules/systemjs/.npmignore
node_modules/systemjs/.agignore
node_modules/systemjs/test
node_modules/systemjs/package.json
node_modules/systemjs/LICENSE
node_modules/systemjs/Makefile
node_modules/systemjs/README.md
node_modules/systemjs/lib
node_modules/systemjs/node_modules
node_modules/systemjs/dist/
!node_modules/systemjs/dist/system.js.map
!node_modules/systemjs/dist/system.js
!node_modules/systemjs/dist/es6-module-loader.js
node_modules/tsd
node_modules/typescript
node_modules/todomvc-app-css
!node_modules/todomvc-app-css/index.css
node_modules/todomvc-common
!node_modules/todomvc-common/base.css
node_modules/bower-traceur-runtime
node_modules/bower-traceur-runtime/traceur-runtime.js
typings
if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) {
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc);
switch (arguments.length) {
case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);
case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);
case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);
}
};
if (typeof __metadata !== "function") __metadata = function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
/// <reference path="typings/angular2/angular2.d.ts" />
var angular2_1 = require('angular2/angular2');
var store_1 = require('services/store');
var ESC_KEY = 27;
var ENTER_KEY = 13;
var TodoApp = (function () {
function TodoApp() {
this.todoStore = new store_1.TodoStore();
}
TodoApp.prototype.stopEditing = function (todo, editedTitle) {
todo.setTitle(editedTitle.value);
todo.editing = false;
};
TodoApp.prototype.cancelEditingTodo = function (todo) { todo.editing = false; };
TodoApp.prototype.updateEditingTodo = function (editedTitle, todo) {
editedTitle = editedTitle.value.trim();
todo.editing = false;
if (editedTitle.length === 0) {
return this.todoStore.remove(todo.uid);
}
todo.setTitle(editedTitle);
};
TodoApp.prototype.editTodo = function (todo) {
todo.editing = true;
};
TodoApp.prototype.removeCompleted = function () {
this.todoStore.removeCompleted();
};
TodoApp.prototype.toggleCompletion = function (uid) {
this.todoStore.toggleCompletion(uid);
};
TodoApp.prototype.remove = function (uid) {
this.todoStore.remove(uid);
};
TodoApp.prototype.addTodo = function ($event, newtodo) {
if ($event.which === ENTER_KEY && newtodo.value.trim().length) {
this.todoStore.add(newtodo.value);
newtodo.value = '';
}
};
TodoApp = __decorate([
angular2_1.Component({
selector: 'todo-app',
}),
angular2_1.View({
directives: [angular2_1.NgIf, angular2_1.NgFor],
template: "\n\t\t<section class=\"todoapp\">\n\t\t\t<header class=\"header\">\n\t\t\t\t<h1>todos</h1>\n\t\t\t\t<input class=\"new-todo\" placeholder=\"What needs to be done?\" autofocus=\"\" #newtodo (keyup)=\"addTodo($event, newtodo)\">\n\t\t\t</header>\n\t\t\t<section class=\"main\" *ng-if=\"todoStore.todos.length > 0\">\n\t\t\t\t<input class=\"toggle-all\" type=\"checkbox\" *ng-if=\"todoStore.todos.length\" #toggleall [checked]=\"todoStore.allCompleted()\" (click)=\"todoStore.setAllTo(toggleall)\">\n\t\t\t\t<ul class=\"todo-list\">\n\t\t\t\t\t<li *ng-for=\"#todo of todoStore.todos\" [class.completed]=\"todo.completed\" [class.editing]=\"todo.editing\">\n\t\t\t\t\t\t<div class=\"view\">\n\t\t\t\t\t\t\t<input class=\"toggle\" type=\"checkbox\" (click)=\"toggleCompletion(todo.uid)\" [checked]=\"todo.completed\">\n\t\t\t\t\t\t\t<label (dblclick)=\"editTodo(todo)\">{{todo.title}}</label>\n\t\t\t\t\t\t\t<button class=\"destroy\" (click)=\"remove(todo.uid)\"></button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<input class=\"edit\" *ng-if=\"todo.editing\" [value]=\"todo.title\" #editedtodo (blur)=\"stopEditing(todo, editedtodo)\" (keyup.enter)=\"updateEditingTodo(editedtodo, todo)\" (keyup.escape)=\"cancelEditingTodo(todo)\">\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</section>\n\t\t\t<footer class=\"footer\" *ng-if=\"todoStore.todos.length > 0\">\n\t\t\t\t<span class=\"todo-count\"><strong>{{todoStore.getRemaining().length}}</strong> {{todoStore.getRemaining().length == 1 ? 'item' : 'items'}} left</span>\n\t\t\t\t<button class=\"clear-completed\" *ng-if=\"todoStore.getCompleted().length > 0\" (click)=\"removeCompleted()\">Clear completed</button>\n\t\t\t</footer>\n\t\t</section>"
}),
__metadata('design:paramtypes', [])
], TodoApp);
return TodoApp;
})();
angular2_1.bootstrap(TodoApp);
/// <reference path="typings/angular2/angular2.d.ts" />
import {Component, View, bootstrap, NgIf, NgFor} from 'angular2/angular2';
import {TodoStore, Todo} from 'services/store';
const ESC_KEY = 27;
const ENTER_KEY = 13;
@Component({
selector: 'todo-app',
})
@View({
directives: [NgIf, NgFor],
template: `
<section class="todoapp">
<header class="header">
<h1>todos</h1>
<input class="new-todo" placeholder="What needs to be done?" autofocus="" #newtodo (keyup)="addTodo($event, newtodo)">
</header>
<section class="main" *ng-if="todoStore.todos.length > 0">
<input class="toggle-all" type="checkbox" *ng-if="todoStore.todos.length" #toggleall [checked]="todoStore.allCompleted()" (click)="todoStore.setAllTo(toggleall)">
<ul class="todo-list">
<li *ng-for="#todo of todoStore.todos" [class.completed]="todo.completed" [class.editing]="todo.editing">
<div class="view">
<input class="toggle" type="checkbox" (click)="toggleCompletion(todo.uid)" [checked]="todo.completed">
<label (dblclick)="editTodo(todo)">{{todo.title}}</label>
<button class="destroy" (click)="remove(todo.uid)"></button>
</div>
<input class="edit" *ng-if="todo.editing" [value]="todo.title" #editedtodo (blur)="stopEditing(todo, editedtodo)" (keyup.enter)="updateEditingTodo(editedtodo, todo)" (keyup.escape)="cancelEditingTodo(todo)">
</li>
</ul>
</section>
<footer class="footer" *ng-if="todoStore.todos.length > 0">
<span class="todo-count"><strong>{{todoStore.getRemaining().length}}</strong> {{todoStore.getRemaining().length == 1 ? 'item' : 'items'}} left</span>
<button class="clear-completed" *ng-if="todoStore.getCompleted().length > 0" (click)="removeCompleted()">Clear completed</button>
</footer>
</section>`
})
class TodoApp {
todoStore: TodoStore;
constructor() {
this.todoStore = new TodoStore();
}
stopEditing(todo: Todo, editedTitle) {
todo.setTitle(editedTitle.value);
todo.editing = false;
}
cancelEditingTodo(todo: Todo) { todo.editing = false; }
updateEditingTodo(editedTitle, todo: Todo) {
editedTitle = editedTitle.value.trim();
todo.editing = false;
if (editedTitle.length === 0) {
return this.todoStore.remove(todo.uid);
}
todo.setTitle(editedTitle);
}
editTodo(todo: Todo) {
todo.editing = true;
}
removeCompleted() {
this.todoStore.removeCompleted();
}
toggleCompletion(uid: String) {
this.todoStore.toggleCompletion(uid);
}
remove(uid: String){
this.todoStore.remove(uid);
}
addTodo($event, newtodo) {
if ($event.which === ENTER_KEY && newtodo.value.trim().length) {
this.todoStore.add(newtodo.value);
newtodo.value = '';
}
}
}
bootstrap(TodoApp);
<!doctype html>
<html lang="en" data-framework="angular2">
<head>
<meta charset="utf-8">
<title>Angular2 • TodoMVC</title>
<link rel="stylesheet" href="node_modules/todomvc-common/base.css">
<link rel="stylesheet" href="node_modules/todomvc-app-css/index.css">
<script src="node_modules/bower-traceur-runtime/traceur-runtime.js"></script>
<script src="node_modules/systemjs/dist/system.js"></script>
<script src="node_modules/store.js/store.js"></script>
<script src="vendor/angular2.dev.js"></script>
</head>
<body>
<todo-app></todo-app>
<footer class="info">
<p>Double-click to edit a todo</p>
<p>
Created by <a href="http://github.com/samccone">Sam Saccone</a>
using <a href="http://angular.io">Angular2</a>
</p>
<p>Part of <a href="http://todomvc.com">TodoMVC</a></p>
</footer>
<script>
System.paths['node-uuid'] = 'node_modules/node-uuid/uuid.js';
System.import('app');
</script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
// uuid.js
//
// Copyright (c) 2010-2012 Robert Kieffer
// MIT License - http://opensource.org/licenses/mit-license.php
(function() {
var _global = this;
// Unique ID creation requires a high quality random # generator. We feature
// detect to determine the best RNG source, normalizing to a function that
// returns 128-bits of randomness, since that's what's usually required
var _rng;
// Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html
//
// Moderately fast, high quality
if (typeof(_global.require) == 'function') {
try {
var _rb = _global.require('crypto').randomBytes;
_rng = _rb && function() {return _rb(16);};
} catch(e) {}
}
if (!_rng && _global.crypto && crypto.getRandomValues) {
// WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
//
// Moderately fast, high quality
var _rnds8 = new Uint8Array(16);
_rng = function whatwgRNG() {
crypto.getRandomValues(_rnds8);
return _rnds8;
};
}
if (!_rng) {
// Math.random()-based (RNG)
//
// If all else fails, use Math.random(). It's fast, but is of unspecified
// quality.
var _rnds = new Array(16);
_rng = function() {
for (var i = 0, r; i < 16; i++) {
if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
_rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
}
return _rnds;
};
}
// Buffer class to use
var BufferClass = typeof(_global.Buffer) == 'function' ? _global.Buffer : Array;
// Maps for number <-> hex string conversion
var _byteToHex = [];
var _hexToByte = {};
for (var i = 0; i < 256; i++) {
_byteToHex[i] = (i + 0x100).toString(16).substr(1);
_hexToByte[_byteToHex[i]] = i;
}
// **`parse()` - Parse a UUID into it's component bytes**
function parse(s, buf, offset) {
var i = (buf && offset) || 0, ii = 0;
buf = buf || [];
s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {
if (ii < 16) { // Don't overflow!
buf[i + ii++] = _hexToByte[oct];
}
});
// Zero out remaining bytes if string was short
while (ii < 16) {
buf[i + ii++] = 0;
}
return buf;
}
// **`unparse()` - Convert UUID byte array (ala parse()) into a string**
function unparse(buf, offset) {
var i = offset || 0, bth = _byteToHex;
return bth[buf[i++]] + bth[buf[i++]] +
bth[buf[i++]] + bth[buf[i++]] + '-' +
bth[buf[i++]] + bth[buf[i++]] + '-' +
bth[buf[i++]] + bth[buf[i++]] + '-' +
bth[buf[i++]] + bth[buf[i++]] + '-' +
bth[buf[i++]] + bth[buf[i++]] +
bth[buf[i++]] + bth[buf[i++]] +
bth[buf[i++]] + bth[buf[i++]];
}
// **`v1()` - Generate time-based UUID**
//
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html
// random #'s we need to init node and clockseq
var _seedBytes = _rng();
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
var _nodeId = [
_seedBytes[0] | 0x01,
_seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
];
// Per 4.2.2, randomize (14 bit) clockseq
var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
// Previous uuid creation time
var _lastMSecs = 0, _lastNSecs = 0;
// See https://github.com/broofa/node-uuid for API details
function v1(options, buf, offset) {
var i = buf && offset || 0;
var b = buf || [];
options = options || {};
var clockseq = options.clockseq != null ? options.clockseq : _clockseq;
// UUID timestamps are 100 nano-second units since the Gregorian epoch,
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
var msecs = options.msecs != null ? options.msecs : new Date().getTime();
// Per 4.2.1.2, use count of uuid's generated during the current clock
// cycle to simulate higher resolution clock
var nsecs = options.nsecs != null ? options.nsecs : _lastNSecs + 1;
// Time since last uuid creation (in msecs)
var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
// Per 4.2.1.2, Bump clockseq on clock regression
if (dt < 0 && options.clockseq == null) {
clockseq = clockseq + 1 & 0x3fff;
}
// Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
// time interval
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) {
nsecs = 0;
}
// Per 4.2.1.2 Throw error if too many uuids are requested
if (nsecs >= 10000) {
throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
}
_lastMSecs = msecs;
_lastNSecs = nsecs;
_clockseq = clockseq;
// Per 4.1.4 - Convert from unix epoch to Gregorian epoch
msecs += 12219292800000;
// `time_low`
var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
b[i++] = tl >>> 24 & 0xff;
b[i++] = tl >>> 16 & 0xff;
b[i++] = tl >>> 8 & 0xff;
b[i++] = tl & 0xff;
// `time_mid`
var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
b[i++] = tmh >>> 8 & 0xff;
b[i++] = tmh & 0xff;
// `time_high_and_version`
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
b[i++] = tmh >>> 16 & 0xff;
// `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
b[i++] = clockseq >>> 8 | 0x80;
// `clock_seq_low`
b[i++] = clockseq & 0xff;
// `node`
var node = options.node || _nodeId;
for (var n = 0; n < 6; n++) {
b[i + n] = node[n];
}
return buf ? buf : unparse(b);
}
// **`v4()` - Generate random UUID**
// See https://github.com/broofa/node-uuid for API details
function v4(options, buf, offset) {
// Deprecated - 'format' argument, as supported in v1.2
var i = buf && offset || 0;
if (typeof(options) == 'string') {
buf = options == 'binary' ? new BufferClass(16) : null;
options = null;
}
options = options || {};
var rnds = options.random || (options.rng || _rng)();
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
rnds[6] = (rnds[6] & 0x0f) | 0x40;
rnds[8] = (rnds[8] & 0x3f) | 0x80;
// Copy bytes to buffer, if provided
if (buf) {
for (var ii = 0; ii < 16; ii++) {
buf[i + ii] = rnds[ii];
}
}
return buf || unparse(rnds);
}
// Export public API
var uuid = v4;
uuid.v1 = v1;
uuid.v4 = v4;
uuid.parse = parse;
uuid.unparse = unparse;
uuid.BufferClass = BufferClass;
if (typeof(module) != 'undefined' && module.exports) {
// Publish as node.js module
module.exports = uuid;
} else if (typeof define === 'function' && define.amd) {
// Publish as AMD module
define(function() {return uuid;});
} else {
// Publish as global (in browsers)
var _previousRoot = _global.uuid;
// **`noConflict()` - (browser only) to reset global 'uuid' var**
uuid.noConflict = function() {
_global.uuid = _previousRoot;
return uuid;
};
_global.uuid = uuid;
}
}).call(this);
/* Copyright (c) 2010 Marcus Westin
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
var store = (function(){
var api = {},
win = window,
doc = win.document,
localStorageName = 'localStorage',
globalStorageName = 'globalStorage',
storage
api.disabled = false
api.set = function(key, value) {}
api.get = function(key) {}
api.remove = function(key) {}
api.clear = function() {}
api.transact = function(key, transactionFn) {
var val = api.get(key)
if (typeof val == 'undefined') { val = {} }
transactionFn(val)
api.set(key, val)
}
api.serialize = function(value) {
return JSON.stringify(value)
}
api.deserialize = function(value) {
if (typeof value != 'string') { return undefined }
return JSON.parse(value)
}
// Functions to encapsulate questionable FireFox 3.6.13 behavior
// when about.config::dom.storage.enabled === false
// See https://github.com/marcuswestin/store.js/issues#issue/13
function isLocalStorageNameSupported() {
try { return (localStorageName in win && win[localStorageName]) }
catch(err) { return false }
}
function isGlobalStorageNameSupported() {
try { return (globalStorageName in win && win[globalStorageName] && win[globalStorageName][win.location.hostname]) }
catch(err) { return false }
}
if (isLocalStorageNameSupported()) {
storage = win[localStorageName]
api.set = function(key, val) { storage.setItem(key, api.serialize(val)) }
api.get = function(key) { return api.deserialize(storage.getItem(key)) }
api.remove = function(key) { storage.removeItem(key) }
api.clear = function() { storage.clear() }
} else if (isGlobalStorageNameSupported()) {
storage = win[globalStorageName][win.location.hostname]
api.set = function(key, val) { storage[key] = api.serialize(val) }
api.get = function(key) { return api.deserialize(storage[key] && storage[key].value) }
api.remove = function(key) { delete storage[key] }
api.clear = function() { for (var key in storage ) { delete storage[key] } }
} else if (doc.documentElement.addBehavior) {
var storage = doc.createElement('div')
function withIEStorage(storeFunction) {
return function() {
var args = Array.prototype.slice.call(arguments, 0)
args.unshift(storage)
// See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx
// and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx
doc.body.appendChild(storage)
storage.addBehavior('#default#userData')
storage.load(localStorageName)
var result = storeFunction.apply(api, args)
doc.body.removeChild(storage)
return result
}
}
api.set = withIEStorage(function(storage, key, val) {
storage.setAttribute(key, api.serialize(val))
storage.save(localStorageName)
})
api.get = withIEStorage(function(storage, key) {
return api.deserialize(storage.getAttribute(key))
})
api.remove = withIEStorage(function(storage, key) {
storage.removeAttribute(key)
storage.save(localStorageName)
})
api.clear = withIEStorage(function(storage) {
var attributes = storage.XMLDocument.documentElement.attributes
storage.load(localStorageName)
for (var i=0, attr; attr = attributes[i]; i++) {
storage.removeAttribute(attr.name)
}
storage.save(localStorageName)
})
} else {
api.disabled = true
}
return api
})();
/*
* es6-module-loader v0.16.6
* https://github.com/ModuleLoader/es6-module-loader
* Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT
*/
!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b){var c=a("../lib/decorators/unhandledRejection"),d=c(a("../lib/Promise"));b.exports="undefined"!=typeof global?global.Promise=d:"undefined"!=typeof self?self.Promise=d:d},{"../lib/Promise":2,"../lib/decorators/unhandledRejection":4}],2:[function(b,c){!function(a){"use strict";a(function(a){var b=a("./makePromise"),c=a("./Scheduler"),d=a("./env").asap;return b({scheduler:new c(d)})})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Scheduler":3,"./env":5,"./makePromise":7}],3:[function(b,c){!function(a){"use strict";a(function(){function a(a){this._async=a,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var b=this;this.drain=function(){b._drain()}}return a.prototype.enqueue=function(a){this._queue[this._queueLen++]=a,this.run()},a.prototype.afterQueue=function(a){this._afterQueue[this._afterQueueLen++]=a,this.run()},a.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},a.prototype._drain=function(){for(var a=0;a<this._queueLen;++a)this._queue[a].run(),this._queue[a]=void 0;for(this._queueLen=0,this._running=!1,a=0;a<this._afterQueueLen;++a)this._afterQueue[a].run(),this._afterQueue[a]=void 0;this._afterQueueLen=0},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){function b(a){throw a}function c(){}var d=a("../env").setTimer,e=a("../format");return function(a){function f(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+e.formatError(a.value)))}function g(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return _}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m<d.length&&!i.resolved;++m)g=d[m],void 0!==g||m in d?l(d,h,m,g,i):--j;return 0===j&&i.become(new y(k)),new b(t,i)}function l(a,b,c,d,e){if(J(d)){var f=r(d),g=f.state();0===g?f.fold(b,c,void 0,e):g>0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;d<a.length;++d)n(q(a[d]),c)}function n(a,b){if(a!==b){var c=a.state();0===c?a.visit(a,void 0,a._unreport):0>c&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c<a.length;++c)if(d=a[c],void 0!==d||c in a){if(e=q(d),0!==e.state()){f.become(e),m(a,c+1,e);break}e.visit(f,f.resolve,f.reject)}return new b(t,f)}function q(a){return I(a)?a._handler.join():J(a)?s(a):new y(a)}function r(a){return I(a)?a._handler.join():s(a)}function s(a){try{var b=a.then;return"function"==typeof b?new x(b,a):new y(a)}catch(c){return new z(c)}}function t(){}function u(){}function v(a,c){b.createContext(this,c),this.consumers=void 0,this.receiver=a,this.handler=void 0,this.resolved=!1}function w(a){this.handler=a}function x(a,b){v.call(this),V.enqueue(new F(a,b,this))}function y(a){b.createContext(this),this.value=a}function z(a){b.createContext(this),this.id=++Z,this.value=a,this.handled=!1,this.reported=!1,this._report()}function A(a,b){this.rejection=a,this.context=b}function B(a){this.rejection=a}function C(){return new z(new TypeError("Promise cycle"))}function D(a,b){this.continuation=a,this.handler=b}function E(a,b){this.handler=b,this.value=a}function F(a,b,c){this._then=a,this.thenable=b,this.resolver=c}function G(a,b,c,d,e){try{a.call(b,c,d,e)}catch(f){d(f)}}function H(a,b,c,d){this.f=a,this.z=b,this.c=c,this.to=d,this.resolver=Y,this.receiver=this}function I(a){return a instanceof b}function J(a){return("object"==typeof a||"function"==typeof a)&&null!==a}function K(a,c,d,e){return"function"!=typeof a?e.become(c):(b.enterContext(c),O(a,c.value,d,e),void b.exitContext())}function L(a,c,d,e,f){return"function"!=typeof a?f.become(d):(b.enterContext(d),P(a,c,d.value,e,f),void b.exitContext())}function M(a,c,d,e,f){return"function"!=typeof a?f.notify(c):(b.enterContext(d),Q(a,c,e,f),void b.exitContext())}function N(a,b,c){try{return a(b,c)}catch(d){return e(d)}}function O(a,b,c,d){try{d.become(q(a.call(c,b)))}catch(e){d.become(new z(e))}}function P(a,b,c,d,e){try{a.call(d,b,c,e)}catch(f){e.become(new z(f))}}function Q(a,b,c,d){try{d.notify(a.call(c,b))}catch(e){d.notify(e)}}function R(a,b){b.prototype=X(a.prototype),b.prototype.constructor=b}function S(a,b){return b}function T(){}function U(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.emit?function(a,b){return"unhandledRejection"===a?process.emit(a,b.value,b):process.emit(a,b)}:"undefined"!=typeof self&&"function"==typeof CustomEvent?function(a,b,c){var d=!1;try{var e=new c("unhandledRejection");d=e instanceof c}catch(f){}return d?function(a,d){var e=new c(a,{detail:{reason:d.value,key:d},bubbles:!1,cancelable:!0});return!b.dispatchEvent(e)}:a}(T,self,CustomEvent):T}var V=a.scheduler,W=U(),X=Object.create||function(a){function b(){}return b.prototype=a,new b};b.resolve=d,b.reject=e,b.never=f,b._defer=g,b._handler=q,b.prototype.then=function(a,b,c){var d=this._handler,e=d.join().state();if("function"!=typeof a&&e>0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(Y,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var Y=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var c=0;c<a.length;++c)b.when(a[c])},v.prototype.become=function(a){this.resolved||(this.resolved=!0,this.handler=a,void 0!==this.consumers&&V.enqueue(this),void 0!==this.context&&a._report(this.context))},v.prototype.when=function(a){this.resolved?V.enqueue(new D(a,this.handler)):void 0===this.consumers?this.consumers=[a]:this.consumers.push(a)},v.prototype.notify=function(a){this.resolved||V.enqueue(new E(a,this))},v.prototype.fail=function(a){var b="undefined"==typeof a?this.context:a;this.resolved&&this.handler.join().fail(b)},v.prototype._report=function(a){this.resolved&&this.handler.join()._report(a)},v.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},R(t,w),w.prototype.when=function(a){V.enqueue(new D(a,this))},w.prototype._report=function(a){this.join()._report(a)},w.prototype._unreport=function(){this.join()._unreport()},R(v,x),R(t,y),y.prototype._state=1,y.prototype.fold=function(a,b,c,d){L(a,b,this,c,d)},y.prototype.when=function(a){K(a.fulfilled,this,a.receiver,a.resolver)};var Z=0;R(t,z),z.prototype._state=-1,z.prototype.fold=function(a,b,c,d){d.become(this)},z.prototype.when=function(a){"function"==typeof a.rejected&&this._unreport(),K(a.rejected,this,a.receiver,a.resolver)},z.prototype._report=function(a){V.afterQueue(new A(this,a))},z.prototype._unreport=function(){this.handled||(this.handled=!0,V.afterQueue(new B(this)))},z.prototype.fail=function(a){this.reported=!0,W("unhandledRejection",this),b.onFatalRejection(this,void 0===a?this.context:a)},A.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,W("unhandledRejection",this.rejection)||b.onPotentiallyUnhandledRejection(this.rejection,this.context))},B.prototype.run=function(){this.rejection.reported&&(W("rejectionHandled",this.rejection)||b.onPotentiallyUnhandledRejectionHandled(this.rejection))},b.createContext=b.enterContext=b.exitContext=b.onPotentiallyUnhandledRejection=b.onPotentiallyUnhandledRejectionHandled=b.onFatalRejection=T;var $=new t,_=new b(t,$);return D.prototype.run=function(){this.handler.join().when(this.continuation)},E.prototype.run=function(){var a=this.handler.consumers;if(void 0!==a)for(var b,c=0;c<a.length;++c)b=a[c],M(b.progress,this.value,this.handler,b.receiver,b.resolver)},F.prototype.run=function(){function a(a){d.resolve(a)}function b(a){d.reject(a)}function c(a){d.notify(a)}var d=this.resolver;G(this._then,this.thenable,a,b,c)},H.prototype.fulfilled=function(a){this.f.call(this.c,this.z,a,this.to)},H.prototype.rejected=function(a){this.to.reject(a)},H.prototype.progress=function(a){this.to.notify(a)},b}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}]},{},[1])(1)}),function(__global){function __eval(__source,__global,__load){try{eval('(function() { var __moduleName = "'+(__load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(__load.name||load.address)+"\n "+e.message),e}}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(d){return"loading"==b.status?A.resolve(a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:d})).then(function(c){return b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})}).then(function(c){if(void 0===c)return b.address=b.address||"<Anonymous Module "+ ++D+">",b.isDeclarative=!0,a.loaderObj.transpile(b).then(function(a){var c=__global.System,d=c.register;c.register=function(a,c,d){"string"!=typeof a&&(d=c,c=a),b.declare=d,b.depsList=c},__eval(a,__global,b),c.register=d});if("object"!=typeof c)throw TypeError("Invalid instantiate return value");b.depsList=c.deps||[],b.execute=c.execute,b.isDeclarative=!1}).then(function(){b.dependencies=[];for(var d=b.depsList,e=[],f=0,g=d.length;g>f;f++)(function(d,f){e.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[f]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,g=c.length;g>e;e++)i(c[e],a)}))})(d[f],f);return A.all(e)}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)}):void 0})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;b&&a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"<unknown>")+"\n")),b&&(c=w(c,'Error loading "'+b.name+'" at '+(b.address||"<unknown>")+"\n"));for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g<a.dependencies.length;g++)if(f.name==a.dependencies[g].value){var h=a.groupIndex+(f.isDeclarative!=a.isDeclarative);if(void 0===f.groupIndex||f.groupIndex<h){if(void 0!==f.groupIndex&&(c[f.groupIndex].splice(B.call(c[f.groupIndex],f),1),0==c[f.groupIndex].length))throw new TypeError("Mixed dependency cycle detected");f.groupIndex=h}n(f,b,c)}}}function o(a,b,c){try{var d=b.execute()}catch(e){return void c(b,e)}return d&&d instanceof y?d:void c(b,new TypeError("Execution must define a Module instance"))}function p(a,b){var c=a.loader;if(a.loads.length){var d=[],e=a.loads[0];e.groupIndex=0,n(e,a.loads,d);for(var f=e.isDeclarative==d.length%2,g=d.length-1;g>=0;g--){for(var h=d[g],i=0;i<h.length;i++){var j=h[i];if(f)r(j,a.loads,c);else{var k=o(a,j,b);if(!k)return;j.module={name:j.name,module:k},j.status="linked"}m(c,j)}f=!f}}}function q(a,b){var c=b.moduleRecords;return c[a]||(c[a]={name:a,dependencies:[],module:new y,importers:[]})}function r(a,b,c){if(!a.module){var d=a.module=q(a.name,c),e=a.module.module,f=a.declare.call(__global,function(a,b){d.locked=!0,e[a]=b;for(var c=0,f=d.importers.length;f>c;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;k<b.length;k++)b[k].name==i&&(b[k].module?j=q(i,c):(r(b[k],b,c),j=b[k].module));j.importers?(d.dependencies.push(j),j.importers.push(d)):d.dependencies.push(null),d.setters[g]&&d.setters[g](j.module)}a.status="linked"}}function s(a,b){return u(b.module,[],a),b.module.module}function t(a){try{a.execute.call(__global)}catch(b){return b}}function u(a,b,c){var d=v(a,b,c);if(d)throw d}function v(a,b,c){if(!a.evaluated&&a.dependencies){b.push(a);for(var d,e=a.dependencies,f=0,g=e.length;g>f;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b,c=new y;if(Object.getOwnPropertyNames&&null!=a)b=Object.getOwnPropertyNames(a);else{b=[];for(var d in a)b.push(d)}for(var e=0;e<b.length;e++)(function(b){C(c,b,{configurable:!1,enumerable:!0,get:function(){return a[b]}})})(b[e]);return Object.preventExtensions&&Object.preventExtensions(c),c},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a,b){return a.newModule({"default":f[b],__useDefault:!0})}function c(a,b){var c=this.traceurOptions||{};c.modules="instantiate",c.script=!1,c.sourceMaps="inline",c.filename=a.address,c.inputSourceMap=a.metadata.sourceMap,c.moduleName=!1;var e=new b.Compiler(c),f=d(a.source,e,c.filename);return f+"\n//# sourceURL="+a.address+"!eval"}function d(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function e(a,b){var c=this.babelOptions||{};c.modules="system",c.sourceMap="inline",c.filename=a.address,c.code=!0,c.ast=!1,c.blacklist||(c.blacklist=["react"]);var d=b.transform(a.source,c).code;return d+"\n//# sourceURL="+a.address+"!eval"}var f=__global;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){var d=this;return d.transpilerHasRun||(f.traceur&&!d.has("traceur")&&d.set("traceur",b(d,"traceur")),f.babel&&!d.has("babel")&&d.set("babel",b(d,"babel")),d.transpilerHasRun=!0),d["import"](d.transpiler).then(function(b){return b.__useDefault&&(b=b["default"]),'var __moduleAddress = "'+a.address+'";'+(b.Compiler?c:e).call(d,a,b)})},a.prototype.instantiate=function(a){var c=this;return Promise.resolve(c.normalize(c.transpiler)).then(function(d){return a.name===d?{deps:[],execute:function(){var d=f.System,e=f.Reflect.Loader;return __eval("(function(require,exports,module){"+a.source+"})();",f,a),f.System=d,f.Reflect.Loader=e,b(c,a.name)}}:void 0})}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return h&&(d=d.replace(/\\/g,"/")),d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b<a.length;b++){var c=a[b];if("module"==c.type){var d=c.innerHTML.substr(1);__global.System.module(d)["catch"](function(a){setTimeout(function(){throw a})})}}}var f,g="undefined"!=typeof window&&"undefined"!=typeof document,h="undefined"!=typeof process&&!!process.platform.match(/^win/),i=__global.Promise||require("when/es6-shim/Promise");if("undefined"!=typeof XMLHttpRequest)f=function(a,b,c){function d(){b(f.responseText)}function e(){c(f.statusText+": "+a||"XHR error")}var f=new XMLHttpRequest,g=!0,h=!1;if(!("withCredentials"in f)){var i=/^(\w+:)?\/\/([^\/]+)/.exec(a);i&&(g=i[2]===window.location.host,i[1]&&(g&=i[1]===window.location.protocol))}g||"undefined"==typeof XDomainRequest||(f=new XDomainRequest,f.onload=d,f.onerror=e,f.ontimeout=e,f.onprogress=function(){},f.timeout=0,h=!0),f.onreadystatechange=function(){4===f.readyState&&(200===f.status||0==f.status&&f.responseText?d():e())},f.open("GET",a,!0),h&&setTimeout(function(){f.send()},0),f.send(null)};else{if("undefined"==typeof require)throw new TypeError("No environment fetch API available.");var j;f=function(a,b,c){if("file:"!=a.substr(0,5))throw"Only file URLs of the form file: allowed running in Node.";return j=j||require("fs"),a=a.substr(5),h&&(a=a.replace(/\//g,"\\")),j.readFile(a,function(a,d){return a?c(a):void b(d+"")})}}var k=function(a){function b(b){if(a.call(this,b||{}),"undefined"!=typeof location&&location.href){var c=__global.location.href.split("#")[0].split("?")[0];this.baseURL=c.substring(0,c.lastIndexOf("/")+1)}else{if("undefined"==typeof process||!process.cwd)throw new TypeError("No environment baseURL");this.baseURL="file:"+process.cwd()+"/",h&&(this.baseURL=this.baseURL.replace(/\\/g,"/"))}this.paths={"*":"*.js"}}return b.__proto__=null!==a?a:Function.prototype,b.prototype=$__Object$create(null!==a?a.prototype:null),$__Object$defineProperty(b.prototype,"constructor",{value:b}),$__Object$defineProperty(b.prototype,"global",{get:function(){return __global},enumerable:!1}),$__Object$defineProperty(b.prototype,"strict",{get:function(){return!0},enumerable:!1}),$__Object$defineProperty(b.prototype,"normalize",{value:function(a,b){if("string"!=typeof a)throw new TypeError("Module name must be a string");var c=a.split("/");if(0==c.length)throw new TypeError("No module name provided");var d=0,e=!1,f=0;if("."==c[0]){if(d++,d==c.length)throw new TypeError('Illegal module name "'+a+'"');e=!0}else{for(;".."==c[d];)if(d++,d==c.length)throw new TypeError('Illegal module name "'+a+'"');d&&(e=!0),f=d}for(var g=d;g<c.length;g++){var h=c[g];if(""==h||"."==h||".."==h)throw new TypeError('Illegal module name "'+a+'"')}if(!e)return a;{var i=[],j=(b||"").split("/");j.length-1-f}return i=i.concat(j.splice(0,j.length-1-f)),i=i.concat(c.splice(d,c.length-d)),i.join("/")},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"locate",{value:function(a){var b,d=a.name,e="";for(var f in this.paths){var h=f.split("*");if(h.length>2)throw new TypeError("Only one wildcard in a path is permitted");if(1==h.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,h[0].length)==h[0]&&d.substr(d.length-h[1].length)==h[1]&&(e=f,b=d.substr(h[0].length,d.length-h[1].length-h[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),g&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new i(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),l=new k;if("object"==typeof exports&&(module.exports=l),__global.System=l,g&&document.getElementsByTagName){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof global?global:self);
//# sourceMappingURL=es6-module-loader.js.map
\ No newline at end of file
!function($__global,$__globalName){$__global.upgradeSystemLoader=function(){function e(e){var t=String(e).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return t?{href:t[0]||"",protocol:t[1]||"",authority:t[2]||"",host:t[3]||"",hostname:t[4]||"",port:t[5]||"",pathname:t[6]||"",search:t[7]||"",hash:t[8]||""}:null}function t(t,a){function r(e){var t=[];return e.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(e){"/.."===e?t.pop():t.push(e)}),t.join("").replace(/^\//,"/"===e.charAt(0)?"/":"")}return v&&(a=a.replace(/\\/g,"/")),a=e(a||""),t=e(t||""),a&&t?(a.protocol||t.protocol)+(a.protocol||a.authority?a.authority:t.authority)+r(a.protocol||a.authority||"/"===a.pathname.charAt(0)?a.pathname:a.pathname?(t.authority&&!t.pathname?"/":"")+t.pathname.slice(0,t.pathname.lastIndexOf("/")+1)+a.pathname:t.pathname)+(a.protocol||a.authority||a.pathname?a.search:a.search||t.search)+a.hash:null}function a(e){function r(e,t){t._extensions=[];for(var a=0,r=e.length;r>a;a++)e[a](t)}var n=e["import"];e["import"]=function(e,t){return n.call(this,e,t).then(function(e){return e.__useDefault?e["default"]:e})},e.set("@empty",e.newModule({})),"undefined"!=typeof require&&(e._nodeRequire=require),e.config=function(e){for(var t in e){var a=e[t];if("object"!=typeof a||a instanceof Array)this[t]=a;else{this[t]=this[t]||{};for(var r in a)this[t][r]=a[r]}}};var o;if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope&&"undefined"!=typeof process)o="file:"+process.cwd()+"/",v&&(o=o.replace(/\\/g,"/"));else if("undefined"==typeof window)o=location.href;else if(o=document.baseURI,!o){var i=document.getElementsByTagName("base");o=i[0]&&i[0].href||window.location.href}var s,l=e.locate;e.locate=function(e){return this.baseURL!=s&&(s=t(o,this.baseURL),"/"!=s.substr(s.length-1,1)&&(s+="/"),this.baseURL=s),Promise.resolve(l.call(this,e))},e._extensions=e._extensions||[],e._extensions.push(a),e.clone=function(){var e=this,t=new LoaderPolyfill(g);return t.baseURL=e.baseURL,t.paths={"*":"*.js"},r(e._extensions,t),t}}function r(e){function t(e,t){var a=e.meta&&e.meta[t.name];if(a)for(var r in a)t.metadata[r]=t.metadata[r]||a[r]}var a=/^(\s*\/\*.*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/,n=/\/\*.*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;e.meta={},e._extensions=e._extensions||[],e._extensions.push(r);var o=e.locate;e.locate=function(e){return t(this,e),o.call(this,e)};var i=e.translate;e.translate=function(e){var r=e.source.match(a);if(r)for(var o=r[0].match(n),s=0;s<o.length;s++){var l=o[s].length,u=o[s].substr(0,1);if(";"==o[s].substr(l-1,1)&&l--,'"'==u||"'"==u){var d=o[s].substr(1,o[s].length-3),c=d.substr(0,d.indexOf(" "));if(c){var f=d.substr(c.length+1,d.length-c.length-1);e.metadata[c]instanceof Array?e.metadata[c].push(f):e.metadata[c]||(e.metadata[c]=f)}}}return t(this,e),i.call(this,e)}}function n(e){function a(e){var a,r=e.source.lastIndexOf("\n");-1!=r&&"//# sourceMappingURL="==e.source.substr(r+1,21)&&(a=e.source.substr(r+22,e.source.length-r-22),"undefined"!=typeof t&&(a=t(e.address,a))),__eval(e.source,e.address,a)}function r(e){for(var t=[],a=0,r=e.length;r>a;a++)-1==h.call(t,e[a])&&t.push(e[a]);return t}function o(t,a,r,n){"string"!=typeof t&&(n=r,r=a,a=t,t=null),g=!0;var o;if(o="boolean"==typeof r?{declarative:!1,deps:a,execute:n,executingRequire:r}:{declarative:!0,deps:a,declare:r},t)o.name=t,t in e.defined||(e.defined[t]=o);else if(o.declarative){if(v)throw new TypeError("Multiple anonymous System.register calls in the same module file.");v=o}}function i(e){if(!e.register){e.register=o,e.defined||(e.defined={});var t=e.onScriptLoad;e.onScriptLoad=function(e){t(e),v&&(e.metadata.entry=v),g&&(e.metadata.format=e.metadata.format||"register",e.metadata.registered=!0)}}}function s(e,t,a){if(a[e.groupIndex]=a[e.groupIndex]||[],-1==h.call(a[e.groupIndex],e)){a[e.groupIndex].push(e);for(var r=0,n=e.normalizedDeps.length;n>r;r++){var o=e.normalizedDeps[r],i=t.defined[o];if(i&&!i.evaluated){var l=e.groupIndex+(i.declarative!=e.declarative);if(void 0===i.groupIndex||i.groupIndex<l){if(void 0!==i.groupIndex&&(a[i.groupIndex].splice(h.call(a[i.groupIndex],i),1),0==a[i.groupIndex].length))throw new TypeError("Mixed dependency cycle detected");i.groupIndex=l}s(i,t,a)}}}}function l(e,t){var a=t.defined[e];if(!a.module){a.groupIndex=0;var r=[];s(a,t,r);for(var n=!!a.declarative==r.length%2,o=r.length-1;o>=0;o--){for(var i=r[o],l=0;l<i.length;l++){var u=i[l];n?d(u,t):f(u,t)}n=!n}}}function u(e){return b[e]||(b[e]={name:e,dependencies:[],exports:{},importers:[]})}function d(e,t){if(!e.module){var a=e.module=u(e.name),r=e.module.exports,n=e.declare.call(t.global,function(e,t){a.locked=!0,r[e]=t;for(var n=0,o=a.importers.length;o>n;n++){var i=a.importers[n];if(!i.locked){var s=h.call(i.dependencies,a);i.setters[s](r)}}return a.locked=!1,t});if(a.setters=n.setters,a.execute=n.execute,!a.setters||!a.execute)throw new TypeError("Invalid System.register form for "+e.name);for(var o=0,i=e.normalizedDeps.length;i>o;o++){var s,l=e.normalizedDeps[o],c=t.defined[l],f=b[l];f?s=f.exports:c&&!c.declarative?s=c.module.exports&&c.module.exports.__esModule?c.module.exports:{"default":c.module.exports,__useDefault:!0}:c?(d(c,t),f=c.module,s=f.exports):s=t.get(l),f&&f.importers?(f.importers.push(a),a.dependencies.push(f)):a.dependencies.push(null),a.setters[o]&&a.setters[o](s)}}}function c(e,t){var a,r=t.defined[e];if(r)r.declarative?m(e,[],t):r.evaluated||f(r,t),a=r.module.exports;else if(a=t.get(e),!a)throw new Error("Unable to load dependency "+e+".");return(!r||r.declarative)&&a&&a.__useDefault?a["default"]:a}function f(e,t){if(!e.module){var a={},r=e.module={exports:a,id:e.name};if(!e.executingRequire)for(var n=0,o=e.normalizedDeps.length;o>n;n++){var i=e.normalizedDeps[n],s=t.defined[i];s&&f(s,t)}e.evaluated=!0;var l=e.execute.call(t.global,function(a){for(var r=0,n=e.deps.length;n>r;r++)if(e.deps[r]==a)return c(e.normalizedDeps[r],t);throw new TypeError("Module "+a+" not declared as a dependency.")},a,r);l&&(r.exports=l)}}function m(e,t,a){var r=a.defined[e];if(r&&!r.evaluated&&r.declarative){t.push(e);for(var n=0,o=r.normalizedDeps.length;o>n;n++){var i=r.normalizedDeps[n];-1==h.call(t,i)&&(a.defined[i]?m(i,t,a):a.get(i))}r.evaluated||(r.evaluated=!0,r.module.execute.call(a.global))}}"undefined"==typeof h&&(h=Array.prototype.indexOf),("undefined"==typeof __eval||"undefined"!=typeof document&&!document.addEventListener)&&(__eval=0||eval),e._extensions=e._extensions||[],e._extensions.push(n);e.__exec=a;var v,g;i(e);var b={},y=e["delete"];e["delete"]=function(e){return delete b[e],y.call(this,e)};var x=/System\.register/,_=e.fetch;e.fetch=function(e){var t=this;return i(t),t.defined[e.name]?(e.metadata.format="defined",""):(v=null,g=!1,_.call(t,e))};var w=e.translate;e.translate=function(e){return this.register=o,this.__exec=a,e.metadata.deps=e.metadata.deps||[],Promise.resolve(w.call(this,e)).then(function(t){return(e.metadata.init||e.metadata.exports)&&(e.metadata.format=e.metadata.format||"global"),("register"==e.metadata.format||!e.metadata.format&&e.source.match(x))&&(e.metadata.format="register"),t})};var z=e.instantiate;e.instantiate=function(e){var t,a=this;if(a.defined[e.name])t=a.defined[e.name],t.deps=t.deps.concat(e.metadata.deps);else if(e.metadata.entry)t=e.metadata.entry;else if(e.metadata.execute)t={declarative:!1,deps:e.metadata.deps||[],execute:e.metadata.execute,executingRequire:e.metadata.executingRequire};else if("register"==e.metadata.format){v=null,g=!1;var n=a.global.System;if(a.global.System=a,a.__exec(e),a.global.System=n,v?t=v:e.metadata.bundle=!0,!t&&p.defined[e.name]&&(t=p.defined[e.name]),!g&&!e.metadata.registered)throw new TypeError(e.name+" detected as System.register but didn't execute.")}if(!t&&"es6"!=e.metadata.format)return{deps:e.metadata.deps,execute:function(){return a.newModule({})}};if(!t)return z.call(this,e);a.defined[e.name]=t,t.deps=r(t.deps),t.name=e.name;for(var o=[],i=0,s=t.deps.length;s>i;i++)o.push(Promise.resolve(a.normalize(t.deps[i],e.name)));return Promise.all(o).then(function(r){return t.normalizedDeps=r,{deps:t.deps,execute:function(){l(e.name,a),m(e.name,[],a),a.defined[e.name]=void 0;var r=t.module.exports;return(!r||!t.declarative&&r.__esModule!==!0)&&(r={"default":r,__useDefault:!0}),a.newModule(r)}}})}}function o(e){function t(e,t,r,n){e.meta=e.meta||{};var o=e.meta[t]=e.meta[t]||{};if(o.format=o.format||"global",!e.paths[t]){var i=a(r,n);i&&(e.paths[t]=i)}}function a(e,t){if(d){var a=t?"/package.json":"";try{var r=d(e+a);return"file:"+r.substr(0,r.length-a.length)+(t?"/*.js":"")}catch(n){}}}e._extensions.push(o);var r,n,i=/(^\s*|[}\);\n]\s*)(import\s+(['"]|(\*\s+as\s+)?[^"'\(\)\n;]+\s+from\s+['"]|\{)|export\s+\*\s+from\s+["']|export\s+(\{|default|function|class|var|const|let|async\s+function))/,s=/\$traceurRuntime\s*\./,l=/babelHelpers\s*\./,u=!0,d="undefined"!=typeof process&&"undefined"!=typeof require&&require.resolve,c=e.locate;e.locate=function(e){var a=this;return u&&("traceur"==a.transpiler?(t(a,"traceur","traceur/bin/traceur.js"),a.meta.traceur.exports="traceur",t(a,"traceur-runtime","traceur/bin/traceur-runtime.js")):"babel"==a.transpiler&&(t(a,"babel","babel-core/browser.js"),t(a,"babel/external-helpers","babel-core/external-helpers.js"),t(a,"babel-runtime/*","babel-runtime",!0)),u=!1),c.call(a,e)};var f=e.translate;e.translate=function(e){var t=this;return f.call(t,e).then(function(a){if("es6"==e.metadata.format||!e.metadata.format&&a.match(i))return e.metadata.format="es6",a;if("register"==e.metadata.format){if(!t.global.$traceurRuntime&&e.source.match(s))return t["import"]("traceur-runtime").then(function(){return a});if(!t.global.babelHelpers&&e.source.match(l))return t["import"]("babel/external-helpers").then(function(){return a})}return"traceur"==t.transpiler?Promise.all([r||(r=t.normalize(t.transpiler)),n||(n=t.normalize(t.transpiler+"-runtime"))]).then(function(t){return e.name==t[0]||e.name==t[1]?"(function() { var curSystem = System; "+a+"\nSystem = curSystem; })();":a}):a})}}function i(e){function t(e,t){for(var a=e.split(".");a.length;)t=t[a.shift()];return t}function a(t){if(Object.keys)Object.keys(e.global).forEach(t);else for(var a in e.global)s.call(e.global,a)&&t(a)}function r(t){a(function(a){if(-1==h.call(o,a)){try{var r=e.global[a]}catch(n){o.push(a)}t(a,r)}})}function n(e){if(!e.has("@@global-helpers")){var a,n={};e.set("@@global-helpers",e.newModule({prepareGlobal:function(t,o){for(var i=0;i<o.length;i++){var s=n[o[i]];if(s)for(var l in s)e.global[l]=s[l]}a={},r(function(e,t){a[e]=t})},retrieveGlobal:function(o,i,s){var l,u,d={};if(s)l=s.call(e.global);else if(i){var c=i.split(".")[0];l=t(i,e.global),d[c]=e.global[c]}else r(function(e,t){a[e]!==t&&"undefined"!=typeof t&&(d[e]=t,"undefined"!=typeof l?u||l===t||(u=!0):l=t)});return n[o]=d,u?d:l}}))}}e._extensions.push(i);var o=["sessionStorage","localStorage","clipboardData","frames","external"],s=Object.prototype.hasOwnProperty;n(e);var l=e.instantiate;e.instantiate=function(e){var t=this;n(t);var a=e.metadata.exports;return e.metadata.format||(e.metadata.format="global"),"global"==e.metadata.format&&(e.metadata.execute=function(r,n,o){t.get("@@global-helpers").prepareGlobal(o.id,e.metadata.deps),a&&(e.source+=$__globalName+'["'+a+'"] = '+a+";");var i=t.global.define,r=t.global.require;return t.global.define=void 0,t.global.module=void 0,t.global.exports=void 0,t.__exec(e),t.global.require=r,t.global.define=i,t.get("@@global-helpers").retrieveGlobal(o.id,a,e.metadata.init)}),l.call(t,e)}}function s(e){function t(e){r.lastIndex=0;var t=[];e.length/e.split("\n").length<200&&(e=e.replace(n,""));for(var a;a=r.exec(e);)t.push(a[1].substr(1,a[1].length-2));return t}e._extensions.push(s);var a=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.]|module\.)exports\s*(\[['"]|\.)|(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])module\.exports\s*[=,]/,r=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')\s*\)/g,n=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm;if("undefined"!=typeof location&&location.origin)var o=location.protocol+"//"+location.hostname+(location.port?":"+location.port:"");var i=e.instantiate;e.instantiate=function(n){return n.metadata.format||(a.lastIndex=0,r.lastIndex=0,(r.exec(n.source)||a.exec(n.source))&&(n.metadata.format="cjs")),"cjs"==n.metadata.format&&(n.metadata.deps=n.metadata.deps?n.metadata.deps.concat(t(n.source)):t(n.source),n.metadata.executingRequire=!0,n.metadata.execute=function(t,a,r){var i=(n.address||"").split("/");i.pop(),i=i.join("/");var s=n.address;o&&s.substr(0,o.length)===o?(s=s.substr(o.length),i=i.substr(o.length)):"file:"==s.substr(0,5)&&(s=s.substr(5),i=i.substr(5)),p._nodeRequire&&(i=i.substr(5));var l=(e.global._g={global:e.global,exports:a,module:r,require:t,__filename:s,__dirname:i},"(function(global, exports, module, require, __filename, __dirname) { "+n.source+"\n}).call(_g.exports, _g.global, _g.exports, _g.module, _g.require, _g.__filename, _g.__dirname);"),u=e.global.define;e.global.define=void 0,e.__exec({name:n.name,address:n.address,source:l}),e.global.define=u,e.global._g=void 0}),i.call(this,n)}}function l(e){function t(e,t){e=e.replace(c,"");var a=e.match(v),r=(a[1].split(",")[t]||"require").replace(g,""),n=b[r]||(b[r]=new RegExp(f+r+m,"g"));n.lastIndex=0;for(var o,i=[];o=n.exec(e);)i.push(o[2]||o[3]);return i}function a(e,t,r,n){var o=this;if("object"==typeof e&&!(e instanceof Array))return a.apply(null,Array.prototype.splice.call(arguments,1,arguments.length-1));if(!(e instanceof Array)){if("string"==typeof e){var i=o.get(e);return i.__useDefault?i["default"]:i}throw new TypeError("Invalid require")}for(var s=[],l=0;l<e.length;l++)s.push(o["import"](e[l],n));Promise.all(s).then(function(e){t&&t.apply(null,e)},r)}function r(e,t,r){return function(n,o,i){if("string"==typeof n){if("function"!=typeof o)return t(n);n=[n]}return a.call(r,n,o,i,{name:e})}}function n(e){function a(a,n,o){"string"!=typeof a&&(o=n,n=a,a=null),n instanceof Array||(o=n,n=["require","exports","module"]),"function"!=typeof o&&(o=function(e){return function(){return e}}(o)),void 0===n[n.length-1]&&n.pop();var s,l,u;if(-1!=(s=h.call(n,"require"))){n.splice(s,1);var d=o.toString();n=n.concat(t(d,s))}-1!=(l=h.call(n,"exports"))&&n.splice(l,1),-1!=(u=h.call(n,"module"))&&n.splice(u,1);var c={deps:n,execute:function(t,a,d){for(var c=[],f=0;f<n.length;f++)c.push(t(n[f]));d.uri=e.baseURL+d.id,d.config=function(){},-1!=u&&c.splice(u,0,d),-1!=l&&c.splice(l,0,a),-1!=s&&c.splice(s,0,r(d.id,t,e));var m=i.require;i.require=p.amdRequire;var h=o.apply(i,c);return i.require=m,"undefined"==typeof h&&d&&(h=d.exports),"undefined"!=typeof h?h:void 0}};if(a)y=0!=n.length||y||x?null:c,x=!0,e.register(a,c.deps,!1,c.execute);else{if(y)throw new TypeError("Multiple defines for anonymous module");y=c}}var n=e.onScriptLoad;e.onScriptLoad=function(e){n(e),(y||x)&&(e.metadata.format="defined",e.metadata.registered=!0),y&&(e.metadata.deps=e.metadata.deps?e.metadata.deps.concat(y.deps):y.deps,e.metadata.execute=y.execute)},a.amd={},e.amdDefine=a}function o(e){e.amdDefine||n(e),y=null,x=null;var t=e.global;_=t.module,w=t.exports,z=t.define,t.module=void 0,t.exports=void 0,t.define&&t.define===e.amdDefine||(t.define=e.amdDefine)}function s(e){var t=e.global;t.define=z,t.module=_,t.exports=w}var u="undefined"!=typeof module&&module.exports;e._extensions.push(l);var d=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])define\s*\(\s*("[^"]+"\s*,\s*|'[^']+'\s*,\s*)?\s*(\[(\s*(("[^"]+"|'[^']+')\s*,|\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*(\s*("[^"]+"|'[^']+')\s*,?)?(\s*(\/\/.*\r?\n|\/\*(.|\s)*?\*\/))*\s*\]|function\s*|{|[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*\))/,c=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,f="(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])",m="\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)",v=/\(([^\)]*)\)/,g=/^\s+|\s+$/g,b={};e.amdRequire=function(){return a.apply(this,arguments)};var y,x,_,w,z;if(n(e),e.scriptLoader){var S=e.fetch;e.fetch=function(e){return o(this),S.call(this,e)}}var $=e.instantiate;e.instantiate=function(e){var t=this;if("amd"==e.metadata.format||!e.metadata.format&&e.source.match(d)){if(e.metadata.format="amd",t.execute!==!1&&(o(t),t.__exec(e),s(t),!y&&!x&&!u))throw new TypeError("AMD module "+e.name+" did not define");y&&(e.metadata.deps=e.metadata.deps?e.metadata.deps.concat(y.deps):y.deps,e.metadata.execute=y.execute)}return $.call(t,e)}}function u(e){function t(e,t){return e.length<t.length?!1:e.substr(0,t.length)!=t?!1:e[t.length]&&"/"!=e[t.length]?!1:!0}function a(e){for(var t=1,a=0,r=e.length;r>a;a++)"/"===e[a]&&t++;return t}function r(e,t,a){return a+e.substr(t)}function n(e,n,o){var i,s,l,u,d=0,c=0;if(n)for(var f in o.map){var m=o.map[f];if("object"==typeof m&&t(n,f)&&(l=a(f),!(c>=l)))for(var p in m)t(e,p)&&(u=a(p),d>=u||(i=p,d=u,s=f,c=l))}if(i)return r(e,i.length,o.map[s][i]);for(var f in o.map){var m=o.map[f];if("string"==typeof m&&t(e,f)){var u=a(f);d>=u||(i=f,d=u)}}return i?r(e,i.length,o.map[i]):e}e.map=e.map||{},e._extensions.push(u);var o=e.normalize;e.normalize=function(e,t,a){var r=this;r.map||(r.map={});var i=!1;return"/"==e.substr(e.length-1,1)&&(i=!0,e+="#"),Promise.resolve(o.call(r,e,t,a)).then(function(e){if(e=n(e,t,r),i){var a=e.split("/");a.pop();var o=a.pop();a.push(o),a.push(o),e=a.join("/")}return e})}}function d(e){"undefined"==typeof h&&(h=Array.prototype.indexOf),e._extensions.push(d);var t=e.normalize;e.normalize=function(e,a,r){var n,o=this;return a&&-1!=(n=a.indexOf("!"))&&(a=a.substr(0,n)),Promise.resolve(t.call(o,e,a,r)).then(function(e){var t=e.lastIndexOf("!");if(-1!=t){var n=e.substr(0,t),i=e.substr(t+1)||n.substr(n.lastIndexOf(".")+1);return new Promise(function(e){e(o.normalize(i,a,r))}).then(function(e){return i=e,o.normalize(n,a,r)}).then(function(e){return e+"!"+i})}return e})};var a=e.locate;e.locate=function(e){var t=this,r=e.name;if(this.defined&&this.defined[r])return a.call(this,e);var n=r.lastIndexOf("!");if(-1!=n){var o=r.substr(n+1);e.name=r.substr(0,n);var i=t.pluginLoader||t;return i["import"](o).then(function(){var a=i.get(o);return a=a["default"]||a,a.build===!1&&t.pluginLoader&&(e.metadata.build=!1),e.metadata.plugin=a,e.metadata.pluginName=o,e.metadata.pluginArgument=e.name,a.locate?a.locate.call(t,e):Promise.resolve(t.locate(e)).then(function(e){return e.replace(/\.js$/,"")})})}return a.call(this,e)};var r=e.fetch;e.fetch=function(e){var t=this;return e.metadata.build===!1&&t.pluginLoader?"":e.metadata.plugin&&e.metadata.plugin.fetch&&!e.metadata.pluginFetchCalled?(e.metadata.pluginFetchCalled=!0,e.metadata.plugin.fetch.call(t,e,r)):r.call(t,e)};var n=e.translate;e.translate=function(e){var t=this;return e.metadata.plugin&&e.metadata.plugin.translate?Promise.resolve(e.metadata.plugin.translate.call(t,e)).then(function(a){return"string"==typeof a&&(e.source=a),n.call(t,e)}):n.call(t,e)};var o=e.instantiate;e.instantiate=function(e){var t=this;return e.metadata.plugin&&e.metadata.plugin.instantiate?Promise.resolve(e.metadata.plugin.instantiate.call(t,e)).then(function(a){return e.metadata.format="defined",e.metadata.execute=function(){return a},o.call(t,e)}):e.metadata.plugin&&e.metadata.plugin.build===!1?(e.metadata.format="defined",e.metadata.deps.push(e.metadata.pluginName),e.metadata.execute=function(){return t.newModule({})},o.call(t,e)):o.call(t,e)}}function c(e){function t(e,t){return Promise.resolve(e.normalize(t)).then(function(r){return-1==h.call(a,r)&&(a.push(r),e.bundles[r]=e.bundles[r]||e.bundles[t],e.meta=e.meta||{},e.meta[r]=e.meta[r]||{},e.meta[r].bundle=!0),e.load(r)}).then(function(){return""})}"undefined"==typeof h&&(h=Array.prototype.indexOf),e._extensions.push(c),e.bundles=e.bundles||{};var a=[],r=e.fetch;e.fetch=function(e){var n=this;if(n.trace)return r.call(this,e);n.bundles||(n.bundles={});for(var o=0;o<a.length;o++)if(-1!=h.call(n.bundles[a[o]],e.name))return t(n,a[o]);for(var i in n.bundles)if(-1!=h.call(n.bundles[i],e.name))return t(n,i);return r.call(this,e)}}function f(e){function t(e){return parseInt(e,10)}function a(e){var a=e.match(s);return a?{major:t(a[1]),minor:t(a[2]),patch:t(a[3]),pre:a[4]&&a[4].split(".")}:{tag:e}}function r(e,a){if(e.tag&&a.tag)return 0;if(e.tag)return-1;if(a.tag)return 1;for(var r=0;r<u.length;r++){var n=u[r],o=e[n],i=a[n];if(o!=i)return isNaN(o)?-1:isNaN(i)?1:o>i?1:-1}if(!e.pre&&!a.pre)return 0;if(!e.pre)return 1;if(!a.pre)return-1;for(var r=0,s=Math.min(e.pre.length,a.pre.length);s>r;r++)if(e.pre[r]!=a.pre[r]){var d=e.pre[r].match(l),c=a.pre[r].match(l);return d&&!c?-1:c&&!d?1:d&&c?t(e.pre[r])>t(a.pre[r])?1:-1:e.pre[r]>a.pre[r]?1:-1}return e.pre.length==a.pre.length?0:e.pre.length>a.pre.length?1:-1}function n(e,t){var a=e.version;return a.tag?a.tag==t.tag:1==r(a,t)?!1:isNaN(t.minor)||isNaN(t.patch)?!1:t.pre?a.major!=t.major||a.minor!=t.minor||a.patch!=t.patch?!1:e.semver||e.fuzzy||a.pre.join(".")==t.pre.join("."):e.semver?0==a.major&&isNaN(a.minor)?t.major<1:a.major>=1?a.major==t.major:a.minor>=1?a.minor==t.minor:(a.patch||0)==t.patch:e.fuzzy?t.major==a.major&&t.minor<(a.minor||0)+1:!a.pre&&a.major==t.major&&a.minor==t.minor&&a.patch==t.patch}function o(e){var t={};((t.semver="^"==e.substr(0,1))||(t.fuzzy="~"==e.substr(0,1)))&&(e=e.substr(1));var r=t.version=a(e);return r.tag?t:(t.fuzzy||t.semver||!isNaN(r.minor)&&!isNaN(r.patch)||(t.fuzzy=!0),t.fuzzy&&isNaN(r.minor)&&(t.semver=!0,t.fuzzy=!1),t.semver&&!isNaN(r.minor)&&isNaN(r.patch)&&(t.semver=!1,t.fuzzy=!0),t)}function i(e,t){return r(a(e),a(t))}"undefined"==typeof h&&(h=Array.prototype.indexOf),e._extensions.push(f);var s=/^(\d+)(?:\.(\d+)(?:\.(\d+)(?:-([\da-z-]+(?:\.[\da-z-]+)*)(?:\+([\da-z-]+(?:\.[\da-z-]+)*))?)?)?)?$/i,l=/^\d+$/,u=["major","minor","patch"];e.versions=e.versions||{};var d=e.normalize;e.normalize=function(e,t,r){this.versions||(this.versions={});var s,l,u=this.versions,c=-1!=e.indexOf("!")?0:e.lastIndexOf("@");if(c>0){var f=e.substr(c+1,e.length-c-1).split("/");s=f[0],l=f.length,e=e.substr(0,c)+e.substr(c+s.length+1,e.length-c-s.length-1)}return Promise.resolve(d.call(this,e,t,r)).then(function(e){var t=-1!=e.indexOf("!")?0:e.indexOf("@");if(s&&(-1==t||0==t)){var r=e.split("/");r[r.length-l]+="@"+s,e=r.join("/"),t=e.indexOf("@")}var d,c;if(-1==t||0==t){for(var f in u)if(c=u[f],e.substr(0,f.length)==f&&(d=e.substr(f.length,1),!d||"/"==d))return f+"@"+("string"==typeof c?c:c[c.length-1])+e.substr(f.length);return e}var m=e.substr(0,t),p=e.substr(t+1).split("/")[0],h=p.length,v=o(e.substr(t+1).split("/")[0]);c=u[e.substr(0,t)]||[],"string"==typeof c&&(c=[c]);for(var g=c.length-1;g>=0;g--)if(n(v,a(c[g])))return m+"@"+c[g]+e.substr(t+h+1);var b;return v.semver?b=0!=v.version.major||isNaN(v.version.minor)?v.version.major:"0."+v.version.minor:v.fuzzy?b=v.version.major+"."+v.version.minor:(b=p,c.push(p),c.sort(i),u[m]=1==c.length?c[0]:c),m+"@"+b+e.substr(t+h+1)})}}function m(e){e.depCache=e.depCache||{},e._extensions.push(m);var t=e.locate;e.locate=function(e){var a=this;a.depCache||(a.depCache={});var r=a.depCache[e.name];if(r)for(var n=0;n<r.length;n++)a.load(r[n]);return t.call(a,e)}}$__global.upgradeSystemLoader=void 0;var p,h=Array.prototype.indexOf||function(e){for(var t=0,a=this.length;a>t;t++)if(this[t]===e)return t;return-1},v="undefined"!=typeof process&&!!process.platform.match(/^win/);!function(){var e=$__global.System;p=$__global.System=new LoaderPolyfill(e),p.baseURL=e.baseURL,p.paths={"*":"*.js"},p.originalSystem=e}(),p.noConflict=function(){$__global.SystemJS=p,$__global.System=p.originalSystem};var g=$__global.System.originalSystem;a(p),r(p),n(p),o(p),i(p),s(p),l(p),u(p),d(p),c(p),f(p),m(p)};var $__curScript,__eval;!function(){var doEval;if(__eval=function(e,t,a){e+="\n//# sourceURL="+t+(a?"\n//# sourceMappingURL="+a:"");try{doEval(e)}catch(r){var n="Error evaluating "+t+"\n";throw r instanceof Error?r.message=n+r.message:r=n+r,r}},"undefined"!=typeof document){var head,scripts=document.getElementsByTagName("script");if($__curScript=scripts[scripts.length-1],doEval=function(e){head||(head=document.head||document.body||document.documentElement);var t=document.createElement("script");t.text=e;var a,r=window.onerror;if(window.onerror=function(e){a=e},head.appendChild(t),head.removeChild(t),window.onerror=r,a)throw a},$__global.System&&$__global.LoaderPolyfill)$__global.upgradeSystemLoader();else{var curPath=$__curScript.src,basePath=curPath.substr(0,curPath.lastIndexOf("/")+1);document.write('<script type="text/javascript" src="'+basePath+'es6-module-loader.js" data-init="upgradeSystemLoader"></script>')}}else if("undefined"!=typeof importScripts)if(doEval=function(source){try{eval(source)}catch(e){throw e}},$__global.System&&$__global.LoaderPolyfill)$__global.upgradeSystemLoader();else{var basePath="";try{throw new Error("Get worker base path via error stack")}catch(e){e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/,function(e,t){basePath=t.replace(/\/[^\/]*$/,"/")})}importScripts(basePath+"es6-module-loader.js"),$__global.upgradeSystemLoader()}else{var es6ModuleLoader=require("es6-module-loader");$__global.System=es6ModuleLoader.System,$__global.Loader=es6ModuleLoader.Loader,$__global.upgradeSystemLoader(),module.exports=$__global.System;var vm=require("vm");doEval=function(e){vm.runInThisContext(e)}}}()}("undefined"!=typeof window?window:"undefined"!=typeof global?global:self,"undefined"!=typeof window?"window":"undefined"!=typeof global?"global":"self");
//# sourceMappingURL=system.js.map
\ No newline at end of file
{"version":3,"sources":["system.src.js"],"names":["$__global","$__globalName","upgradeSystemLoader","parseURI","url","m","String","replace","match","href","protocol","authority","host","hostname","port","pathname","search","hash","toAbsoluteURL","base","removeDotSegments","input","output","p","pop","push","join","charAt","isWindows","slice","lastIndexOf","core","loader","applyExtensions","extensions","_extensions","i","len","length","loaderImport","name","options","call","this","then","module","__useDefault","set","newModule","require","_nodeRequire","config","cfg","c","v","Array","baseURI","window","WorkerGlobalScope","process","cwd","location","document","bases","getElementsByTagName","normalizedBaseURL","loaderLocate","locate","load","baseURL","substr","Promise","resolve","clone","originalLoader","LoaderPolyfill","originalSystem","paths","*","meta","setConfigMeta","metadata","metaRegEx","metaPartRegEx","loaderTranslate","translate","source","metaParts","firstChar","metaString","metaName","indexOf","metaValue","register","exec","sourceMappingURL","lastLineIndex","address","__eval","dedupe","deps","newDeps","l","registerModule","declare","execute","calledRegister","declarative","executingRequire","defined","anonRegister","TypeError","defineRegister","onScriptLoad","entry","format","registered","buildGroups","groups","groupIndex","normalizedDeps","depName","depEntry","evaluated","depGroupIndex","undefined","splice","link","startEntry","curGroupDeclarative","group","j","linkDeclarativeModule","linkDynamicModule","getOrCreateModuleRecord","moduleRecords","dependencies","exports","importers","declaration","global","value","locked","importerModule","importerIndex","setters","depExports","depModule","__esModule","default","get","getModule","ensureEvaluated","Error","id","moduleName","seen","prototype","addEventListener","eval","__exec","loaderDelete","registerRegEx","loaderFetch","fetch","init","loaderInstantiate","instantiate","concat","curSystem","System","bundle","normalizePromises","normalize","all","es6","configNodeGlobal","nodeModule","wilcardDummy","path","resolvePath","wildcard","nodeResolver","ext","e","transpilerNormalized","transpilerRuntimeNormalized","es6RegEx","traceurRuntimeRegEx","babelHelpersRegEx","firstLoad","self","transpiler","$traceurRuntime","babelHelpers","normalized","readGlobalProperty","pParts","split","shift","iterateGlobals","callback","Object","keys","forEach","g","hasOwnProperty","forEachGlobal","globalName","ignoredGlobalProps","createHelpers","has","globalSnapshot","moduleGlobals","prepareGlobal","moduleGlobal","retrieveGlobal","exportName","singleGlobal","multipleExports","firstPart","define","cjs","getCJSDeps","cjsRequireRegEx","lastIndex","commentRegEx","cjsExportsRegEx","origin","curOrigin","dirname","_g","__filename","__dirname","amd","requireIndex","params","fnBracketRegEx","requireAlias","wsRegEx","requireRegEx","requireRegExs","RegExp","cjsRequirePre","cjsRequirePost","names","errback","referer","apply","arguments","dynamicRequires","modules","makeRequire","parentName","staticRequire","generateDefine","factory","exportsIndex","moduleIndex","factoryText","toString","depValues","uri","curRequire","amdRequire","anonDefine","defineBundle","amdDefine","createDefine","oldModule","oldExports","oldDefine","removeDefine","isNode","amdRegEx","scriptLoader","map","prefixMatch","prefix","pathLen","doMap","matchLen","applyMap","curMatch","curParent","tmpParentLength","tmpPrefixLength","curMatchLength","curParentMatchLength","curMap","q","loaderNormalize","parentAddress","isPackage","nameParts","pkgName","plugins","parentPluginIndex","pluginIndex","argumentName","pluginName","_pluginName","pluginLoader","plugin","build","pluginArgument","pluginFetchCalled","result","bundles","loadFromBundle","loadedBundles","trace","b","versions","toInt","num","parseInt","parseSemver","semver","semverRegEx","major","minor","patch","pre","tag","semverCompareParsed","v1","v2","parts","part","part1","part2","isNaN","Math","min","isNum1","numRegEx","isNum2","matchParsed","range","version","rangeVersion","fuzzy","parseRange","rangeObj","semverCompare","stripVersion","stripSubPathLength","packageVersions","versionIndex","index","nextChar","packageName","rangeLength","parsedRange","versionRequest","sort","depCache","item","platform","noConflict","SystemJS","$__curScript","doEval","sourceMap","msg","message","head","scripts","body","documentElement","script","createElement","text","onerror","_e","appendChild","removeChild","curPath","src","basePath","write","importScripts","stack","es6ModuleLoader","Loader","vm","runInThisContext"],"mappings":"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"}
\ No newline at end of file
html,
body {
margin: 0;
padding: 0;
}
button {
margin: 0;
padding: 0;
border: 0;
background: none;
font-size: 100%;
vertical-align: baseline;
font-family: inherit;
font-weight: inherit;
color: inherit;
-webkit-appearance: none;
appearance: none;
-webkit-font-smoothing: antialiased;
-moz-font-smoothing: antialiased;
font-smoothing: antialiased;
}
body {
font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif;
line-height: 1.4em;
background: #f5f5f5;
color: #4d4d4d;
min-width: 230px;
max-width: 550px;
margin: 0 auto;
-webkit-font-smoothing: antialiased;
-moz-font-smoothing: antialiased;
font-smoothing: antialiased;
font-weight: 300;
}
button,
input[type="checkbox"] {
outline: none;
}
.hidden {
display: none;
}
.todoapp {
background: #fff;
margin: 130px 0 40px 0;
position: relative;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2),
0 25px 50px 0 rgba(0, 0, 0, 0.1);
}
.todoapp input::-webkit-input-placeholder {
font-style: italic;
font-weight: 300;
color: #e6e6e6;
}
.todoapp input::-moz-placeholder {
font-style: italic;
font-weight: 300;
color: #e6e6e6;
}
.todoapp input::input-placeholder {
font-style: italic;
font-weight: 300;
color: #e6e6e6;
}
.todoapp h1 {
position: absolute;
top: -155px;
width: 100%;
font-size: 100px;
font-weight: 100;
text-align: center;
color: rgba(175, 47, 47, 0.15);
-webkit-text-rendering: optimizeLegibility;
-moz-text-rendering: optimizeLegibility;
text-rendering: optimizeLegibility;
}
.new-todo,
.edit {
position: relative;
margin: 0;
width: 100%;
font-size: 24px;
font-family: inherit;
font-weight: inherit;
line-height: 1.4em;
border: 0;
outline: none;
color: inherit;
padding: 6px;
border: 1px solid #999;
box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2);
box-sizing: border-box;
-webkit-font-smoothing: antialiased;
-moz-font-smoothing: antialiased;
font-smoothing: antialiased;
}
.new-todo {
padding: 16px 16px 16px 60px;
border: none;
background: rgba(0, 0, 0, 0.003);
box-shadow: inset 0 -2px 1px rgba(0,0,0,0.03);
}
.main {
position: relative;
z-index: 2;
border-top: 1px solid #e6e6e6;
}
label[for='toggle-all'] {
display: none;
}
.toggle-all {
position: absolute;
top: -55px;
left: -12px;
width: 60px;
height: 34px;
text-align: center;
border: none; /* Mobile Safari */
}
.toggle-all:before {
content: '❯';
font-size: 22px;
color: #e6e6e6;
padding: 10px 27px 10px 27px;
}
.toggle-all:checked:before {
color: #737373;
}
.todo-list {
margin: 0;
padding: 0;
list-style: none;
}
.todo-list li {
position: relative;
font-size: 24px;
border-bottom: 1px solid #ededed;
}
.todo-list li:last-child {
border-bottom: none;
}
.todo-list li.editing {
border-bottom: none;
padding: 0;
}
.todo-list li.editing .edit {
display: block;
width: 506px;
padding: 13px 17px 12px 17px;
margin: 0 0 0 43px;
}
.todo-list li.editing .view {
display: none;
}
.todo-list li .toggle {
text-align: center;
width: 40px;
/* auto, since non-WebKit browsers doesn't support input styling */
height: auto;
position: absolute;
top: 0;
bottom: 0;
margin: auto 0;
border: none; /* Mobile Safari */
-webkit-appearance: none;
appearance: none;
}
.todo-list li .toggle:after {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="-10 -18 100 135"><circle cx="50" cy="50" r="50" fill="none" stroke="#ededed" stroke-width="3"/></svg>');
}
.todo-list li .toggle:checked:after {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="-10 -18 100 135"><circle cx="50" cy="50" r="50" fill="none" stroke="#bddad5" stroke-width="3"/><path fill="#5dc2af" d="M72 25L42 71 27 56l-4 4 20 20 34-52z"/></svg>');
}
.todo-list li label {
white-space: pre;
word-break: break-word;
padding: 15px 60px 15px 15px;
margin-left: 45px;
display: block;
line-height: 1.2;
transition: color 0.4s;
}
.todo-list li.completed label {
color: #d9d9d9;
text-decoration: line-through;
}
.todo-list li .destroy {
display: none;
position: absolute;
top: 0;
right: 10px;
bottom: 0;
width: 40px;
height: 40px;
margin: auto 0;
font-size: 30px;
color: #cc9a9a;
margin-bottom: 11px;
transition: color 0.2s ease-out;
}
.todo-list li .destroy:hover {
color: #af5b5e;
}
.todo-list li .destroy:after {
content: '×';
}
.todo-list li:hover .destroy {
display: block;
}
.todo-list li .edit {
display: none;
}
.todo-list li.editing:last-child {
margin-bottom: -1px;
}
.footer {
color: #777;
padding: 10px 15px;
height: 20px;
text-align: center;
border-top: 1px solid #e6e6e6;
}
.footer:before {
content: '';
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 50px;
overflow: hidden;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2),
0 8px 0 -3px #f6f6f6,
0 9px 1px -3px rgba(0, 0, 0, 0.2),
0 16px 0 -6px #f6f6f6,
0 17px 2px -6px rgba(0, 0, 0, 0.2);
}
.todo-count {
float: left;
text-align: left;
}
.todo-count strong {
font-weight: 300;
}
.filters {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
right: 0;
left: 0;
}
.filters li {
display: inline;
}
.filters li a {
color: inherit;
margin: 3px;
padding: 3px 7px;
text-decoration: none;
border: 1px solid transparent;
border-radius: 3px;
}
.filters li a.selected,
.filters li a:hover {
border-color: rgba(175, 47, 47, 0.1);
}
.filters li a.selected {
border-color: rgba(175, 47, 47, 0.2);
}
.clear-completed,
html .clear-completed:active {
float: right;
position: relative;
line-height: 20px;
text-decoration: none;
cursor: pointer;
position: relative;
}
.clear-completed:hover {
text-decoration: underline;
}
.info {
margin: 65px auto 0;
color: #bfbfbf;
font-size: 10px;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
text-align: center;
}
.info p {
line-height: 1;
}
.info a {
color: inherit;
text-decoration: none;
font-weight: 400;
}
.info a:hover {
text-decoration: underline;
}
/*
Hack to remove background from Mobile Safari.
Can't use it globally since it destroys checkboxes in Firefox
*/
@media screen and (-webkit-min-device-pixel-ratio:0) {
.toggle-all,
.todo-list li .toggle {
background: none;
}
.todo-list li .toggle {
height: 40px;
}
.toggle-all {
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
-webkit-appearance: none;
appearance: none;
}
}
@media (max-width: 430px) {
.footer {
height: 50px;
}
.filters {
bottom: 10px;
}
}
hr {
margin: 20px 0;
border: 0;
border-top: 1px dashed #c5c5c5;
border-bottom: 1px dashed #f7f7f7;
}
.learn a {
font-weight: normal;
text-decoration: none;
color: #b83f45;
}
.learn a:hover {
text-decoration: underline;
color: #787e7e;
}
.learn h3,
.learn h4,
.learn h5 {
margin: 10px 0;
font-weight: 500;
line-height: 1.2;
color: #000;
}
.learn h3 {
font-size: 24px;
}
.learn h4 {
font-size: 18px;
}
.learn h5 {
margin-bottom: 0;
font-size: 14px;
}
.learn ul {
padding: 0;
margin: 0 0 30px 25px;
}
.learn li {
line-height: 20px;
}
.learn p {
font-size: 15px;
font-weight: 300;
line-height: 1.3;
margin-top: 0;
margin-bottom: 0;
}
#issue-count {
display: none;
}
.quote {
border: none;
margin: 20px 0 60px 0;
}
.quote p {
font-style: italic;
}
.quote p:before {
content: '“';
font-size: 50px;
opacity: .15;
position: absolute;
top: -20px;
left: 3px;
}
.quote p:after {
content: '”';
font-size: 50px;
opacity: .15;
position: absolute;
bottom: -42px;
right: 3px;
}
.quote footer {
position: absolute;
bottom: -40px;
right: 0;
}
.quote footer img {
border-radius: 3px;
}
.quote footer a {
margin-left: 5px;
vertical-align: middle;
}
.speech-bubble {
position: relative;
padding: 10px;
background: rgba(0, 0, 0, .04);
border-radius: 5px;
}
.speech-bubble:after {
content: '';
position: absolute;
top: 100%;
right: 30px;
border: 13px solid transparent;
border-top-color: rgba(0, 0, 0, .04);
}
.learn-bar > .learn {
position: absolute;
width: 272px;
top: 8px;
left: -300px;
padding: 10px;
border-radius: 5px;
background-color: rgba(255, 255, 255, .6);
transition-property: left;
transition-duration: 500ms;
}
@media (min-width: 899px) {
.learn-bar {
width: auto;
padding-left: 300px;
}
.learn-bar > .learn {
left: 8px;
}
}
{
"private": true,
"scripts": {
"postinstall": "cp node_modules/systemjs/node_modules/es6-module-loader/dist/es6-module-loader.js node_modules/systemjs/dist && ./node_modules/.bin/tsd query angular2 node-uuid storejs node --action install",
"dev": "tsc --watch -m commonjs -t es5 --emitDecoratorMetadata app.ts"
},
"devDependencies": {
"tsd": "^0.6.0",
"typescript": "^1.5.0-beta"
},
"dependencies": {
"bower-traceur-runtime": "git://github.com/jmcriffey/bower-traceur-runtime#0.0.87",
"node-uuid": "^1.4.3",
"store.js": "^1.0.4",
"systemjs": "^0.16.11",
"todomvc-app-css": "^2.0.0",
"todomvc-common": "^1.0.1"
}
}
# Angular 2 • [TodoMVC](http://todomvc.com)
> Angular is a development platform for creating applications using modern web standards. Angular includes a wealth of essential features such as mobile gestures, animations, filtering, routing, data binding, security, internationalization, and beautiful UI components. It's extremely modular, lightweight, and easy to learn.
## Resources
- [Website](https://angular.io/)
- [Documentation](https://angular.io/docs/js/latest/)
### Articles
- [Angular 2 Status preview](http://ng-learn.org/2014/03/AngularJS-2-Status-Preview/)
### Support
- [StackOverflow](http://stackoverflow.com/questions/tagged/angular2)
- [Google Groups](https://groups.google.com/forum/#!forum/angular)
- [Twitter](http://twitter.com/angularjs)
- [Google+](https://plus.sandbox.google.com/+AngularJS/posts)
*Let us [know](https://github.com/tastejs/todomvc/issues) if you discover anything worth sharing.*
## Implementation
This app was built using typescript and angular2. To make changes simply
* `npm i`
* `npm run dev`
## Credit
Created by [Sam Saccone](http://github.com/samcone)
/// <reference path="../typings/node-uuid/node-uuid.d.ts" />
/// <reference path="../typings/storejs/storejs.d.ts" />
/// <reference path="../typings/angular2/angular2.d.ts" />
if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) {
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc);
switch (arguments.length) {
case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);
case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);
case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);
}
};
var angular2_1 = require('angular2/angular2');
var uuid = require('node-uuid');
var Todo = (function () {
function Todo(title) {
this.uid = uuid.v4();
this.completed = false;
this.editing = false;
this.title = title.trim();
}
Todo.prototype.setTitle = function (title) {
this.title = title.trim();
};
return Todo;
})();
exports.Todo = Todo;
var TodoStore = (function () {
function TodoStore() {
var persistedTodos = store.get('angular2-todos') || [];
// Normalize back into classes
this.todos = persistedTodos.map(function (todo) {
var ret = new Todo(todo.title);
ret.completed = todo.completed;
ret.uid = todo.uid;
return ret;
});
}
TodoStore.prototype._updateStore = function () {
store.set('angular2-todos', this.todos);
};
TodoStore.prototype.get = function (state) {
return this.todos.filter(function (todo) { return todo.completed === state.completed; });
};
TodoStore.prototype.allCompleted = function () {
return this.todos.length === this.getCompleted().length;
};
TodoStore.prototype.setAllTo = function (toggler) {
this.todos.forEach(function (t) { return t.completed = toggler.checked; });
this._updateStore();
};
TodoStore.prototype.removeCompleted = function () {
this.todos = this.get({ completed: false });
};
TodoStore.prototype.getRemaining = function () {
return this.get({ completed: false });
};
TodoStore.prototype.getCompleted = function () {
return this.get({ completed: true });
};
TodoStore.prototype.toggleCompletion = function (uid) {
for (var _i = 0, _a = this.todos; _i < _a.length; _i++) {
var todo = _a[_i];
if (todo.uid === uid) {
todo.completed = !todo.completed;
break;
}
}
;
this._updateStore();
};
TodoStore.prototype.remove = function (uid) {
for (var _i = 0, _a = this.todos; _i < _a.length; _i++) {
var todo = _a[_i];
if (todo.uid === uid) {
this.todos.splice(this.todos.indexOf(todo), 1);
break;
}
}
this._updateStore();
};
TodoStore.prototype.add = function (title) {
this.todos.push(new Todo(title));
this._updateStore();
};
TodoStore = __decorate([
angular2_1.Injectable()
], TodoStore);
return TodoStore;
})();
exports.TodoStore = TodoStore;
/// <reference path="../typings/node-uuid/node-uuid.d.ts" />
/// <reference path="../typings/storejs/storejs.d.ts" />
/// <reference path="../typings/angular2/angular2.d.ts" />
import {Injectable} from 'angular2/angular2';
import * as uuid from 'node-uuid';
export class Todo {
completed: Boolean;
editing: Boolean;
title: String;
uid: String;
setTitle(title: String) {
this.title = title.trim();
}
constructor(title: String) {
this.uid = uuid.v4();
this.completed = false;
this.editing = false;
this.title = title.trim();
}
}
@Injectable()
export class TodoStore {
todos: Array<Todo>;
constructor() {
let persistedTodos = store.get('angular2-todos') || [];
// Normalize back into classes
this.todos = persistedTodos.map( (todo: {title: String, completed: Boolean, uid: String}) => {
let ret = new Todo(todo.title);
ret.completed = todo.completed;
ret.uid = todo.uid;
return ret;
});
}
_updateStore() {
store.set('angular2-todos', this.todos);
}
get(state: {completed: Boolean}) {
return this.todos.filter((todo: Todo) => todo.completed === state.completed);
}
allCompleted() {
return this.todos.length === this.getCompleted().length;
}
setAllTo(toggler) {
this.todos.forEach((t: Todo) => t.completed = toggler.checked);
this._updateStore();
}
removeCompleted() {
this.todos = this.get({completed: false});
}
getRemaining() {
return this.get({completed: false});
}
getCompleted() {
return this.get({completed: true});
}
toggleCompletion(uid: String) {
for (let todo of this.todos) {
if (todo.uid === uid) {
todo.completed = !todo.completed;
break;
}
};
this._updateStore();
}
remove(uid: String) {
for (let todo of this.todos) {
if (todo.uid === uid) {
this.todos.splice(this.todos.indexOf(todo), 1);
break;
}
}
this._updateStore();
}
add(title: String) {
this.todos.push(new Todo(title));
this._updateStore();
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -278,6 +278,9 @@ ...@@ -278,6 +278,9 @@
<li class="routing"> <li class="routing">
<a href="examples/webrx/" data-source="http://webrxjs.org" data-content="WebRx is a Javascript MVVM-Framework that combines functional-reactive programming with declarative Data-Binding, Templating and Client-Side Routing. The framework is built on top of ReactiveX for Javascript (RxJs) which is a powerful set of libraries for processing and querying asynchronous data-streams that can originate from diverse sources such as Http-Requests, Input-Events, Timers and much more.">WebRx</a> <a href="examples/webrx/" data-source="http://webrxjs.org" data-content="WebRx is a Javascript MVVM-Framework that combines functional-reactive programming with declarative Data-Binding, Templating and Client-Side Routing. The framework is built on top of ReactiveX for Javascript (RxJs) which is a powerful set of libraries for processing and querying asynchronous data-streams that can originate from diverse sources such as Http-Requests, Input-Events, Timers and much more.">WebRx</a>
</li> </li>
<li>
<a href="examples/angular2/" data-source="http://angular.io" data-content="Angular is a development platform for building mobile and desktop web applications">Angular 2.0</a>
</li>
</ul> </ul>
</div> </div>
......
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
"url": "http://gcloud-todos.appspot.com", "url": "http://gcloud-todos.appspot.com",
"source_url": "https://github.com/GoogleCloudPlatform/gcloud-node-todos", "source_url": "https://github.com/GoogleCloudPlatform/gcloud-node-todos",
"type": "backend" "type": "backend"
}, {
"name": "Angular2",
"url": "examples/angular2"
}], }],
"link_groups": [{ "link_groups": [{
"heading": "Official Resources", "heading": "Official Resources",
...@@ -2284,7 +2287,23 @@ ...@@ -2284,7 +2287,23 @@
"name": "WebRx on Twitter", "name": "WebRx on Twitter",
"url": "http://twitter.com/webrxjs" "url": "http://twitter.com/webrxjs"
}] }]
}, {
"angular2": {
"name": "Angular2",
"description": "Angular is a development platform for building mobile and desktop web applications",
"homepage": "https://angular.io/",
"examples": [{
"name": "Example",
"url": "examples/angular2"
}],
"link_groups": [{
"heading": "Official Resources",
"links": [{
"name": "Tutorial",
"url": "https://angular.io/docs/js/latest/quickstart.html"
}]
}] }]
}}]
}, },
"templates": { "templates": {
"todomvc": "<header> <h3><%= name %></h3> <span class=\"source-links\"> <% if (typeof examples !== 'undefined') { %> <% examples.forEach(function (example) { %> <h5><%= example.name %></h5> <% if (!location.href.match(example.url + '/')) { %> <a class=\"demo-link\" data-type=\"<%= example.type === 'backend' ? 'external' : 'local' %>\" href=\"<%= example.url %>\">Demo</a>, <% } if (example.type === 'backend') { %><a href=\"<%= example.source_url %>\"><% } else { %><a href=\"https://github.com/tastejs/todomvc/tree/gh-pages/<%= example.source_url ? example.source_url : example.url %>\"><% } %>Source</a> <% }); %> <% } %> </span> </header> <hr> <blockquote class=\"quote speech-bubble\"> <p><%= description %></p> <footer> <a href=\"http://<%= homepage %>\"><%= name %></a> </footer> </blockquote> <% if (typeof link_groups !== 'undefined') { %> <hr> <% link_groups.forEach(function (link_group) { %> <h4><%= link_group.heading %></h4> <ul> <% link_group.links.forEach(function (link) { %> <li> <a href=\"<%= link.url %>\"><%= link.name %></a> </li> <% }); %> </ul> <% }); %> <% } %> <footer> <hr> <em>If you have other helpful links to share, or find any of the links above no longer work, please <a href=\"https://github.com/tastejs/todomvc/issues\">let us know</a>.</em> </footer>" "todomvc": "<header> <h3><%= name %></h3> <span class=\"source-links\"> <% if (typeof examples !== 'undefined') { %> <% examples.forEach(function (example) { %> <h5><%= example.name %></h5> <% if (!location.href.match(example.url + '/')) { %> <a class=\"demo-link\" data-type=\"<%= example.type === 'backend' ? 'external' : 'local' %>\" href=\"<%= example.url %>\">Demo</a>, <% } if (example.type === 'backend') { %><a href=\"<%= example.source_url %>\"><% } else { %><a href=\"https://github.com/tastejs/todomvc/tree/gh-pages/<%= example.source_url ? example.source_url : example.url %>\"><% } %>Source</a> <% }); %> <% } %> </span> </header> <hr> <blockquote class=\"quote speech-bubble\"> <p><%= description %></p> <footer> <a href=\"http://<%= homepage %>\"><%= name %></a> </footer> </blockquote> <% if (typeof link_groups !== 'undefined') { %> <hr> <% link_groups.forEach(function (link_group) { %> <h4><%= link_group.heading %></h4> <ul> <% link_group.links.forEach(function (link) { %> <li> <a href=\"<%= link.url %>\"><%= link.name %></a> </li> <% }); %> </ul> <% }); %> <% } %> <footer> <hr> <em>If you have other helpful links to share, or find any of the links above no longer work, please <a href=\"https://github.com/tastejs/todomvc/issues\">let us know</a>.</em> </footer>"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment