├── .gitignore ├── LICENSE ├── README.md ├── demo-1 ├── index.html └── src │ └── app.ts ├── demo-2 ├── index.html └── src │ ├── app.html │ └── app.ts ├── lib ├── angular2-http.beta-6.js ├── angular2-polyfills.beta-6.js ├── angular2.beta-6.js ├── rx-global.beta-0.js ├── rx.beta-0.js ├── system.js └── typescript.js ├── package.json └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # ========================= 18 | # Operating System Files 19 | # ========================= 20 | 21 | # OSX 22 | # ========================= 23 | 24 | .DS_Store 25 | .AppleDouble 26 | .LSOverride 27 | 28 | # Icon must end with two \r 29 | Icon 30 | 31 | 32 | # Thumbnails 33 | ._* 34 | 35 | # Files that might appear on external disk 36 | .Spotlight-V100 37 | .Trashes 38 | 39 | # Directories potentially created on remote AFP share 40 | .AppleDB 41 | .AppleDesktop 42 | Network Trash Folder 43 | Temporary Items 44 | .apdisk 45 | 46 | 47 | # Project Build Files 48 | /node_modules/* 49 | 50 | # WebStorm Solution 51 | .idea/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Cory Rylan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # observable-rxjs-demos 2 | 3 | This repo has been moved https://github.com/coryrylan/beginner-reactive-programming-with-rxjs 4 | -------------------------------------------------------------------------------- /demo-1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |

Observable Demo

7 | 8 | 9 | 10 |
0
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /demo-1/src/app.ts: -------------------------------------------------------------------------------- 1 | import {Observable} from 'rxjs/Observable'; 2 | import 'rxjs/Rx'; 3 | 4 | console.clear(); 5 | 6 | //#region Example 1 7 | let promise = new Promise(resolve => { 8 | setTimeout(() => { 9 | resolve('promise timeout'); 10 | }, 2000) 11 | }); 12 | 13 | promise.then(value => console.log(value)); 14 | 15 | let stream1$ = new Observable(observer => { 16 | let timeout = setTimeout(() => { 17 | observer.next('observable timeout'); 18 | }, 2000); 19 | 20 | return () => { 21 | clearTimeout(timeout); 22 | } 23 | }); 24 | 25 | let disposable = stream1$.subscribe(value => console.log(value)); 26 | setTimeout(() => { 27 | disposable.unsubscribe(); 28 | }, 1000); 29 | //#endregion 30 | 31 | //#region Example 2 32 | let stream2$ = new Observable(observer => { 33 | let count = 0; 34 | let interval = setInterval(() => { 35 | observer.next(count++); 36 | }, 1000); 37 | 38 | return () => { 39 | clearInterval(interval); 40 | } 41 | }); 42 | 43 | // stream2$ 44 | // .filter(value => value % 2 == 0) 45 | // .subscribe(value => console.log(value)); 46 | 47 | // ----1----2----3----4---> 48 | // filter 49 | // ---------2---------4---> 50 | 51 | // stream2$ 52 | // .map(value => value * value) 53 | // .subscribe(value => console.log(value)); 54 | 55 | // ----1----2----3----4---> 56 | // map => x * x 57 | // ----1----4----9----16---> 58 | //#endregion 59 | 60 | //#region Example 3 61 | let incrementBtn = document.getElementById('increment'); 62 | let decrementBtn = document.getElementById('decrement'); 63 | let counter = document.getElementById('counter'); 64 | 65 | let incrementClick$ = Observable.fromEvent(incrementBtn, 'click'); 66 | let decrementClick$ = Observable.fromEvent(decrementBtn, 'click'); 67 | 68 | let clicks$ = Observable 69 | .merge(incrementClick$, decrementClick$) 70 | .map((event: any) => parseInt(event.target.value, 10)); 71 | 72 | let total$ = clicks$ 73 | .scan((total, value) => total + value, 0); 74 | 75 | total$.subscribe(total => { 76 | counter.innerText = total.toString(); 77 | }); 78 | 79 | // ----i------------------> 80 | // -------d---------d-----> 81 | // merge 82 | // ----i--d---------d-----> 83 | // map 84 | // ----p--n---------n-----> 85 | // scan 86 | // 0---1--0-------(-1)----> 87 | //#endregion -------------------------------------------------------------------------------- /demo-2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Angular 2 QuickStart 5 | 6 | 7 | 8 | Loading... 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 26 | 27 | -------------------------------------------------------------------------------- /demo-2/src/app.html: -------------------------------------------------------------------------------- 1 | 2 |

Angular 2 Observables Demo

3 | 4 |
5 |
6 | 7 |
8 | 9 |
10 | 11 |

{{result.snippet.title}}

12 |
13 |

{{result.snippet.description}}

14 | 15 |
-------------------------------------------------------------------------------- /demo-2/src/app.ts: -------------------------------------------------------------------------------- 1 | import {Component} from 'angular2/core'; 2 | import {bootstrap} from 'angular2/platform/browser'; 3 | import {FORM_PROVIDERS, FormBuilder, Validators} from 'angular2/common'; 4 | import {Http, HTTP_PROVIDERS} from 'angular2/http'; 5 | import {Observable} from 'rxjs/Observable'; 6 | import 'rxjs/Rx'; 7 | 8 | @Component({ 9 | selector: 'demo-app', 10 | templateUrl: 'src/app.html' 11 | }) 12 | export class App { 13 | searchForm: any; 14 | results$: Observable; 15 | 16 | constructor(private _formBuilder: FormBuilder, private _http: Http) { 17 | const API_URL = 'https://www.googleapis.com/youtube/v3/search'; 18 | const API_KEY = ''; 19 | 20 | this.searchForm = this._formBuilder.group({ 21 | 'search': ['', Validators.required] 22 | }); 23 | 24 | this.results$ = this.searchForm.controls.search.valueChanges // <- Observable Form 25 | .debounceTime(500) 26 | .switchMap(query => this._http.get(`${API_URL}?q=${query}&key=${API_KEY}&part=snippet`)) // <-- Observable Http 27 | .map(res => res.json()) 28 | .map(res => res.items); 29 | } 30 | } 31 | 32 | bootstrap(App, [ 33 | FORM_PROVIDERS, 34 | HTTP_PROVIDERS 35 | ]); 36 | -------------------------------------------------------------------------------- /lib/angular2-http.beta-6.js: -------------------------------------------------------------------------------- 1 | "format register"; 2 | System.register("angular2/src/http/interfaces", [], true, function(require, exports, module) { 3 | var global = System.global, 4 | __define = global.define; 5 | global.define = undefined; 6 | var ConnectionBackend = (function() { 7 | function ConnectionBackend() {} 8 | return ConnectionBackend; 9 | })(); 10 | exports.ConnectionBackend = ConnectionBackend; 11 | var Connection = (function() { 12 | function Connection() {} 13 | return Connection; 14 | })(); 15 | exports.Connection = Connection; 16 | global.define = __define; 17 | return module.exports; 18 | }); 19 | 20 | System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection"], true, function(require, exports, module) { 21 | var global = System.global, 22 | __define = global.define; 23 | global.define = undefined; 24 | var lang_1 = require("angular2/src/facade/lang"); 25 | var exceptions_1 = require("angular2/src/facade/exceptions"); 26 | var collection_1 = require("angular2/src/facade/collection"); 27 | var Headers = (function() { 28 | function Headers(headers) { 29 | var _this = this; 30 | if (headers instanceof Headers) { 31 | this._headersMap = headers._headersMap; 32 | return ; 33 | } 34 | this._headersMap = new collection_1.Map(); 35 | if (lang_1.isBlank(headers)) { 36 | return ; 37 | } 38 | collection_1.StringMapWrapper.forEach(headers, function(v, k) { 39 | _this._headersMap.set(k, collection_1.isListLikeIterable(v) ? v : [v]); 40 | }); 41 | } 42 | Headers.fromResponseHeaderString = function(headersString) { 43 | return headersString.trim().split('\n').map(function(val) { 44 | return val.split(':'); 45 | }).map(function(_a) { 46 | var key = _a[0], 47 | parts = _a.slice(1); 48 | return ([key.trim(), parts.join(':').trim()]); 49 | }).reduce(function(headers, _a) { 50 | var key = _a[0], 51 | value = _a[1]; 52 | return !headers.set(key, value) && headers; 53 | }, new Headers()); 54 | }; 55 | Headers.prototype.append = function(name, value) { 56 | var mapName = this._headersMap.get(name); 57 | var list = collection_1.isListLikeIterable(mapName) ? mapName : []; 58 | list.push(value); 59 | this._headersMap.set(name, list); 60 | }; 61 | Headers.prototype.delete = function(name) { 62 | this._headersMap.delete(name); 63 | }; 64 | Headers.prototype.forEach = function(fn) { 65 | this._headersMap.forEach(fn); 66 | }; 67 | Headers.prototype.get = function(header) { 68 | return collection_1.ListWrapper.first(this._headersMap.get(header)); 69 | }; 70 | Headers.prototype.has = function(header) { 71 | return this._headersMap.has(header); 72 | }; 73 | Headers.prototype.keys = function() { 74 | return collection_1.MapWrapper.keys(this._headersMap); 75 | }; 76 | Headers.prototype.set = function(header, value) { 77 | var list = []; 78 | if (collection_1.isListLikeIterable(value)) { 79 | var pushValue = value.join(','); 80 | list.push(pushValue); 81 | } else { 82 | list.push(value); 83 | } 84 | this._headersMap.set(header, list); 85 | }; 86 | Headers.prototype.values = function() { 87 | return collection_1.MapWrapper.values(this._headersMap); 88 | }; 89 | Headers.prototype.toJSON = function() { 90 | var serializableHeaders = {}; 91 | this._headersMap.forEach(function(values, name) { 92 | var list = []; 93 | collection_1.iterateListLike(values, function(val) { 94 | return list = collection_1.ListWrapper.concat(list, val.split(',')); 95 | }); 96 | serializableHeaders[name] = list; 97 | }); 98 | return serializableHeaders; 99 | }; 100 | Headers.prototype.getAll = function(header) { 101 | var headers = this._headersMap.get(header); 102 | return collection_1.isListLikeIterable(headers) ? headers : []; 103 | }; 104 | Headers.prototype.entries = function() { 105 | throw new exceptions_1.BaseException('"entries" method is not implemented on Headers class'); 106 | }; 107 | return Headers; 108 | })(); 109 | exports.Headers = Headers; 110 | global.define = __define; 111 | return module.exports; 112 | }); 113 | 114 | System.register("angular2/src/http/enums", [], true, function(require, exports, module) { 115 | var global = System.global, 116 | __define = global.define; 117 | global.define = undefined; 118 | (function(RequestMethod) { 119 | RequestMethod[RequestMethod["Get"] = 0] = "Get"; 120 | RequestMethod[RequestMethod["Post"] = 1] = "Post"; 121 | RequestMethod[RequestMethod["Put"] = 2] = "Put"; 122 | RequestMethod[RequestMethod["Delete"] = 3] = "Delete"; 123 | RequestMethod[RequestMethod["Options"] = 4] = "Options"; 124 | RequestMethod[RequestMethod["Head"] = 5] = "Head"; 125 | RequestMethod[RequestMethod["Patch"] = 6] = "Patch"; 126 | })(exports.RequestMethod || (exports.RequestMethod = {})); 127 | var RequestMethod = exports.RequestMethod; 128 | (function(ReadyState) { 129 | ReadyState[ReadyState["Unsent"] = 0] = "Unsent"; 130 | ReadyState[ReadyState["Open"] = 1] = "Open"; 131 | ReadyState[ReadyState["HeadersReceived"] = 2] = "HeadersReceived"; 132 | ReadyState[ReadyState["Loading"] = 3] = "Loading"; 133 | ReadyState[ReadyState["Done"] = 4] = "Done"; 134 | ReadyState[ReadyState["Cancelled"] = 5] = "Cancelled"; 135 | })(exports.ReadyState || (exports.ReadyState = {})); 136 | var ReadyState = exports.ReadyState; 137 | (function(ResponseType) { 138 | ResponseType[ResponseType["Basic"] = 0] = "Basic"; 139 | ResponseType[ResponseType["Cors"] = 1] = "Cors"; 140 | ResponseType[ResponseType["Default"] = 2] = "Default"; 141 | ResponseType[ResponseType["Error"] = 3] = "Error"; 142 | ResponseType[ResponseType["Opaque"] = 4] = "Opaque"; 143 | })(exports.ResponseType || (exports.ResponseType = {})); 144 | var ResponseType = exports.ResponseType; 145 | global.define = __define; 146 | return module.exports; 147 | }); 148 | 149 | System.register("angular2/src/http/url_search_params", ["angular2/src/facade/lang", "angular2/src/facade/collection"], true, function(require, exports, module) { 150 | var global = System.global, 151 | __define = global.define; 152 | global.define = undefined; 153 | var lang_1 = require("angular2/src/facade/lang"); 154 | var collection_1 = require("angular2/src/facade/collection"); 155 | function paramParser(rawParams) { 156 | if (rawParams === void 0) { 157 | rawParams = ''; 158 | } 159 | var map = new collection_1.Map(); 160 | if (rawParams.length > 0) { 161 | var params = rawParams.split('&'); 162 | params.forEach(function(param) { 163 | var split = param.split('='); 164 | var key = split[0]; 165 | var val = split[1]; 166 | var list = lang_1.isPresent(map.get(key)) ? map.get(key) : []; 167 | list.push(val); 168 | map.set(key, list); 169 | }); 170 | } 171 | return map; 172 | } 173 | var URLSearchParams = (function() { 174 | function URLSearchParams(rawParams) { 175 | if (rawParams === void 0) { 176 | rawParams = ''; 177 | } 178 | this.rawParams = rawParams; 179 | this.paramsMap = paramParser(rawParams); 180 | } 181 | URLSearchParams.prototype.clone = function() { 182 | var clone = new URLSearchParams(); 183 | clone.appendAll(this); 184 | return clone; 185 | }; 186 | URLSearchParams.prototype.has = function(param) { 187 | return this.paramsMap.has(param); 188 | }; 189 | URLSearchParams.prototype.get = function(param) { 190 | var storedParam = this.paramsMap.get(param); 191 | if (collection_1.isListLikeIterable(storedParam)) { 192 | return collection_1.ListWrapper.first(storedParam); 193 | } else { 194 | return null; 195 | } 196 | }; 197 | URLSearchParams.prototype.getAll = function(param) { 198 | var mapParam = this.paramsMap.get(param); 199 | return lang_1.isPresent(mapParam) ? mapParam : []; 200 | }; 201 | URLSearchParams.prototype.set = function(param, val) { 202 | var mapParam = this.paramsMap.get(param); 203 | var list = lang_1.isPresent(mapParam) ? mapParam : []; 204 | collection_1.ListWrapper.clear(list); 205 | list.push(val); 206 | this.paramsMap.set(param, list); 207 | }; 208 | URLSearchParams.prototype.setAll = function(searchParams) { 209 | var _this = this; 210 | searchParams.paramsMap.forEach(function(value, param) { 211 | var mapParam = _this.paramsMap.get(param); 212 | var list = lang_1.isPresent(mapParam) ? mapParam : []; 213 | collection_1.ListWrapper.clear(list); 214 | list.push(value[0]); 215 | _this.paramsMap.set(param, list); 216 | }); 217 | }; 218 | URLSearchParams.prototype.append = function(param, val) { 219 | var mapParam = this.paramsMap.get(param); 220 | var list = lang_1.isPresent(mapParam) ? mapParam : []; 221 | list.push(val); 222 | this.paramsMap.set(param, list); 223 | }; 224 | URLSearchParams.prototype.appendAll = function(searchParams) { 225 | var _this = this; 226 | searchParams.paramsMap.forEach(function(value, param) { 227 | var mapParam = _this.paramsMap.get(param); 228 | var list = lang_1.isPresent(mapParam) ? mapParam : []; 229 | for (var i = 0; i < value.length; ++i) { 230 | list.push(value[i]); 231 | } 232 | _this.paramsMap.set(param, list); 233 | }); 234 | }; 235 | URLSearchParams.prototype.replaceAll = function(searchParams) { 236 | var _this = this; 237 | searchParams.paramsMap.forEach(function(value, param) { 238 | var mapParam = _this.paramsMap.get(param); 239 | var list = lang_1.isPresent(mapParam) ? mapParam : []; 240 | collection_1.ListWrapper.clear(list); 241 | for (var i = 0; i < value.length; ++i) { 242 | list.push(value[i]); 243 | } 244 | _this.paramsMap.set(param, list); 245 | }); 246 | }; 247 | URLSearchParams.prototype.toString = function() { 248 | var paramsList = []; 249 | this.paramsMap.forEach(function(values, k) { 250 | values.forEach(function(v) { 251 | return paramsList.push(k + '=' + v); 252 | }); 253 | }); 254 | return paramsList.join('&'); 255 | }; 256 | URLSearchParams.prototype.delete = function(param) { 257 | this.paramsMap.delete(param); 258 | }; 259 | return URLSearchParams; 260 | })(); 261 | exports.URLSearchParams = URLSearchParams; 262 | global.define = __define; 263 | return module.exports; 264 | }); 265 | 266 | System.register("angular2/src/http/static_response", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/http/http_utils"], true, function(require, exports, module) { 267 | var global = System.global, 268 | __define = global.define; 269 | global.define = undefined; 270 | var lang_1 = require("angular2/src/facade/lang"); 271 | var exceptions_1 = require("angular2/src/facade/exceptions"); 272 | var http_utils_1 = require("angular2/src/http/http_utils"); 273 | var Response = (function() { 274 | function Response(responseOptions) { 275 | this._body = responseOptions.body; 276 | this.status = responseOptions.status; 277 | this.statusText = responseOptions.statusText; 278 | this.headers = responseOptions.headers; 279 | this.type = responseOptions.type; 280 | this.url = responseOptions.url; 281 | } 282 | Response.prototype.blob = function() { 283 | throw new exceptions_1.BaseException('"blob()" method not implemented on Response superclass'); 284 | }; 285 | Response.prototype.json = function() { 286 | var jsonResponse; 287 | if (http_utils_1.isJsObject(this._body)) { 288 | jsonResponse = this._body; 289 | } else if (lang_1.isString(this._body)) { 290 | jsonResponse = lang_1.Json.parse(this._body); 291 | } 292 | return jsonResponse; 293 | }; 294 | Response.prototype.text = function() { 295 | return this._body.toString(); 296 | }; 297 | Response.prototype.arrayBuffer = function() { 298 | throw new exceptions_1.BaseException('"arrayBuffer()" method not implemented on Response superclass'); 299 | }; 300 | return Response; 301 | })(); 302 | exports.Response = Response; 303 | global.define = __define; 304 | return module.exports; 305 | }); 306 | 307 | System.register("angular2/src/http/base_response_options", ["angular2/core", "angular2/src/facade/lang", "angular2/src/http/headers", "angular2/src/http/enums"], true, function(require, exports, module) { 308 | var global = System.global, 309 | __define = global.define; 310 | global.define = undefined; 311 | var __extends = (this && this.__extends) || function(d, b) { 312 | for (var p in b) 313 | if (b.hasOwnProperty(p)) 314 | d[p] = b[p]; 315 | function __() { 316 | this.constructor = d; 317 | } 318 | d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 319 | }; 320 | var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) { 321 | var c = arguments.length, 322 | r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, 323 | d; 324 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") 325 | r = Reflect.decorate(decorators, target, key, desc); 326 | else 327 | for (var i = decorators.length - 1; i >= 0; i--) 328 | if (d = decorators[i]) 329 | r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 330 | return c > 3 && r && Object.defineProperty(target, key, r), r; 331 | }; 332 | var __metadata = (this && this.__metadata) || function(k, v) { 333 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") 334 | return Reflect.metadata(k, v); 335 | }; 336 | var core_1 = require("angular2/core"); 337 | var lang_1 = require("angular2/src/facade/lang"); 338 | var headers_1 = require("angular2/src/http/headers"); 339 | var enums_1 = require("angular2/src/http/enums"); 340 | var ResponseOptions = (function() { 341 | function ResponseOptions(_a) { 342 | var _b = _a === void 0 ? {} : _a, 343 | body = _b.body, 344 | status = _b.status, 345 | headers = _b.headers, 346 | statusText = _b.statusText, 347 | type = _b.type, 348 | url = _b.url; 349 | this.body = lang_1.isPresent(body) ? body : null; 350 | this.status = lang_1.isPresent(status) ? status : null; 351 | this.headers = lang_1.isPresent(headers) ? headers : null; 352 | this.statusText = lang_1.isPresent(statusText) ? statusText : null; 353 | this.type = lang_1.isPresent(type) ? type : null; 354 | this.url = lang_1.isPresent(url) ? url : null; 355 | } 356 | ResponseOptions.prototype.merge = function(options) { 357 | return new ResponseOptions({ 358 | body: lang_1.isPresent(options) && lang_1.isPresent(options.body) ? options.body : this.body, 359 | status: lang_1.isPresent(options) && lang_1.isPresent(options.status) ? options.status : this.status, 360 | headers: lang_1.isPresent(options) && lang_1.isPresent(options.headers) ? options.headers : this.headers, 361 | statusText: lang_1.isPresent(options) && lang_1.isPresent(options.statusText) ? options.statusText : this.statusText, 362 | type: lang_1.isPresent(options) && lang_1.isPresent(options.type) ? options.type : this.type, 363 | url: lang_1.isPresent(options) && lang_1.isPresent(options.url) ? options.url : this.url 364 | }); 365 | }; 366 | return ResponseOptions; 367 | })(); 368 | exports.ResponseOptions = ResponseOptions; 369 | var BaseResponseOptions = (function(_super) { 370 | __extends(BaseResponseOptions, _super); 371 | function BaseResponseOptions() { 372 | _super.call(this, { 373 | status: 200, 374 | statusText: 'Ok', 375 | type: enums_1.ResponseType.Default, 376 | headers: new headers_1.Headers() 377 | }); 378 | } 379 | BaseResponseOptions = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], BaseResponseOptions); 380 | return BaseResponseOptions; 381 | })(ResponseOptions); 382 | exports.BaseResponseOptions = BaseResponseOptions; 383 | global.define = __define; 384 | return module.exports; 385 | }); 386 | 387 | System.register("angular2/src/http/backends/browser_xhr", ["angular2/core"], true, function(require, exports, module) { 388 | var global = System.global, 389 | __define = global.define; 390 | global.define = undefined; 391 | var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) { 392 | var c = arguments.length, 393 | r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, 394 | d; 395 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") 396 | r = Reflect.decorate(decorators, target, key, desc); 397 | else 398 | for (var i = decorators.length - 1; i >= 0; i--) 399 | if (d = decorators[i]) 400 | r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 401 | return c > 3 && r && Object.defineProperty(target, key, r), r; 402 | }; 403 | var __metadata = (this && this.__metadata) || function(k, v) { 404 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") 405 | return Reflect.metadata(k, v); 406 | }; 407 | var core_1 = require("angular2/core"); 408 | var BrowserXhr = (function() { 409 | function BrowserXhr() {} 410 | BrowserXhr.prototype.build = function() { 411 | return (new XMLHttpRequest()); 412 | }; 413 | BrowserXhr = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], BrowserXhr); 414 | return BrowserXhr; 415 | })(); 416 | exports.BrowserXhr = BrowserXhr; 417 | global.define = __define; 418 | return module.exports; 419 | }); 420 | 421 | System.register("angular2/src/http/backends/browser_jsonp", ["angular2/core", "angular2/src/facade/lang"], true, function(require, exports, module) { 422 | var global = System.global, 423 | __define = global.define; 424 | global.define = undefined; 425 | var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) { 426 | var c = arguments.length, 427 | r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, 428 | d; 429 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") 430 | r = Reflect.decorate(decorators, target, key, desc); 431 | else 432 | for (var i = decorators.length - 1; i >= 0; i--) 433 | if (d = decorators[i]) 434 | r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 435 | return c > 3 && r && Object.defineProperty(target, key, r), r; 436 | }; 437 | var __metadata = (this && this.__metadata) || function(k, v) { 438 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") 439 | return Reflect.metadata(k, v); 440 | }; 441 | var core_1 = require("angular2/core"); 442 | var lang_1 = require("angular2/src/facade/lang"); 443 | var _nextRequestId = 0; 444 | exports.JSONP_HOME = '__ng_jsonp__'; 445 | var _jsonpConnections = null; 446 | function _getJsonpConnections() { 447 | if (_jsonpConnections === null) { 448 | _jsonpConnections = lang_1.global[exports.JSONP_HOME] = {}; 449 | } 450 | return _jsonpConnections; 451 | } 452 | var BrowserJsonp = (function() { 453 | function BrowserJsonp() {} 454 | BrowserJsonp.prototype.build = function(url) { 455 | var node = document.createElement('script'); 456 | node.src = url; 457 | return node; 458 | }; 459 | BrowserJsonp.prototype.nextRequestID = function() { 460 | return "__req" + _nextRequestId++; 461 | }; 462 | BrowserJsonp.prototype.requestCallback = function(id) { 463 | return exports.JSONP_HOME + "." + id + ".finished"; 464 | }; 465 | BrowserJsonp.prototype.exposeConnection = function(id, connection) { 466 | var connections = _getJsonpConnections(); 467 | connections[id] = connection; 468 | }; 469 | BrowserJsonp.prototype.removeConnection = function(id) { 470 | var connections = _getJsonpConnections(); 471 | connections[id] = null; 472 | }; 473 | BrowserJsonp.prototype.send = function(node) { 474 | document.body.appendChild((node)); 475 | }; 476 | BrowserJsonp.prototype.cleanup = function(node) { 477 | if (node.parentNode) { 478 | node.parentNode.removeChild((node)); 479 | } 480 | }; 481 | BrowserJsonp = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], BrowserJsonp); 482 | return BrowserJsonp; 483 | })(); 484 | exports.BrowserJsonp = BrowserJsonp; 485 | global.define = __define; 486 | return module.exports; 487 | }); 488 | 489 | System.register("angular2/src/http/http_utils", ["angular2/src/facade/lang", "angular2/src/http/enums", "angular2/src/facade/exceptions", "angular2/src/facade/lang"], true, function(require, exports, module) { 490 | var global = System.global, 491 | __define = global.define; 492 | global.define = undefined; 493 | var lang_1 = require("angular2/src/facade/lang"); 494 | var enums_1 = require("angular2/src/http/enums"); 495 | var exceptions_1 = require("angular2/src/facade/exceptions"); 496 | function normalizeMethodName(method) { 497 | if (lang_1.isString(method)) { 498 | var originalMethod = method; 499 | method = method.replace(/(\w)(\w*)/g, function(g0, g1, g2) { 500 | return g1.toUpperCase() + g2.toLowerCase(); 501 | }); 502 | method = enums_1.RequestMethod[method]; 503 | if (typeof method !== 'number') 504 | throw exceptions_1.makeTypeError("Invalid request method. The method \"" + originalMethod + "\" is not supported."); 505 | } 506 | return method; 507 | } 508 | exports.normalizeMethodName = normalizeMethodName; 509 | exports.isSuccess = function(status) { 510 | return (status >= 200 && status < 300); 511 | }; 512 | function getResponseURL(xhr) { 513 | if ('responseURL' in xhr) { 514 | return xhr.responseURL; 515 | } 516 | if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) { 517 | return xhr.getResponseHeader('X-Request-URL'); 518 | } 519 | return ; 520 | } 521 | exports.getResponseURL = getResponseURL; 522 | var lang_2 = require("angular2/src/facade/lang"); 523 | exports.isJsObject = lang_2.isJsObject; 524 | global.define = __define; 525 | return module.exports; 526 | }); 527 | 528 | System.register("angular2/src/http/base_request_options", ["angular2/src/facade/lang", "angular2/src/http/headers", "angular2/src/http/enums", "angular2/core", "angular2/src/http/url_search_params", "angular2/src/http/http_utils"], true, function(require, exports, module) { 529 | var global = System.global, 530 | __define = global.define; 531 | global.define = undefined; 532 | var __extends = (this && this.__extends) || function(d, b) { 533 | for (var p in b) 534 | if (b.hasOwnProperty(p)) 535 | d[p] = b[p]; 536 | function __() { 537 | this.constructor = d; 538 | } 539 | d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 540 | }; 541 | var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) { 542 | var c = arguments.length, 543 | r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, 544 | d; 545 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") 546 | r = Reflect.decorate(decorators, target, key, desc); 547 | else 548 | for (var i = decorators.length - 1; i >= 0; i--) 549 | if (d = decorators[i]) 550 | r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 551 | return c > 3 && r && Object.defineProperty(target, key, r), r; 552 | }; 553 | var __metadata = (this && this.__metadata) || function(k, v) { 554 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") 555 | return Reflect.metadata(k, v); 556 | }; 557 | var lang_1 = require("angular2/src/facade/lang"); 558 | var headers_1 = require("angular2/src/http/headers"); 559 | var enums_1 = require("angular2/src/http/enums"); 560 | var core_1 = require("angular2/core"); 561 | var url_search_params_1 = require("angular2/src/http/url_search_params"); 562 | var http_utils_1 = require("angular2/src/http/http_utils"); 563 | var RequestOptions = (function() { 564 | function RequestOptions(_a) { 565 | var _b = _a === void 0 ? {} : _a, 566 | method = _b.method, 567 | headers = _b.headers, 568 | body = _b.body, 569 | url = _b.url, 570 | search = _b.search; 571 | this.method = lang_1.isPresent(method) ? http_utils_1.normalizeMethodName(method) : null; 572 | this.headers = lang_1.isPresent(headers) ? headers : null; 573 | this.body = lang_1.isPresent(body) ? body : null; 574 | this.url = lang_1.isPresent(url) ? url : null; 575 | this.search = lang_1.isPresent(search) ? (lang_1.isString(search) ? new url_search_params_1.URLSearchParams((search)) : (search)) : null; 576 | } 577 | RequestOptions.prototype.merge = function(options) { 578 | return new RequestOptions({ 579 | method: lang_1.isPresent(options) && lang_1.isPresent(options.method) ? options.method : this.method, 580 | headers: lang_1.isPresent(options) && lang_1.isPresent(options.headers) ? options.headers : this.headers, 581 | body: lang_1.isPresent(options) && lang_1.isPresent(options.body) ? options.body : this.body, 582 | url: lang_1.isPresent(options) && lang_1.isPresent(options.url) ? options.url : this.url, 583 | search: lang_1.isPresent(options) && lang_1.isPresent(options.search) ? (lang_1.isString(options.search) ? new url_search_params_1.URLSearchParams((options.search)) : (options.search).clone()) : this.search 584 | }); 585 | }; 586 | return RequestOptions; 587 | })(); 588 | exports.RequestOptions = RequestOptions; 589 | var BaseRequestOptions = (function(_super) { 590 | __extends(BaseRequestOptions, _super); 591 | function BaseRequestOptions() { 592 | _super.call(this, { 593 | method: enums_1.RequestMethod.Get, 594 | headers: new headers_1.Headers() 595 | }); 596 | } 597 | BaseRequestOptions = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], BaseRequestOptions); 598 | return BaseRequestOptions; 599 | })(RequestOptions); 600 | exports.BaseRequestOptions = BaseRequestOptions; 601 | global.define = __define; 602 | return module.exports; 603 | }); 604 | 605 | System.register("angular2/src/http/backends/xhr_backend", ["angular2/src/http/enums", "angular2/src/http/static_response", "angular2/src/http/headers", "angular2/src/http/base_response_options", "angular2/core", "angular2/src/http/backends/browser_xhr", "angular2/src/facade/lang", "rxjs/Observable", "angular2/src/http/http_utils"], true, function(require, exports, module) { 606 | var global = System.global, 607 | __define = global.define; 608 | global.define = undefined; 609 | var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) { 610 | var c = arguments.length, 611 | r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, 612 | d; 613 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") 614 | r = Reflect.decorate(decorators, target, key, desc); 615 | else 616 | for (var i = decorators.length - 1; i >= 0; i--) 617 | if (d = decorators[i]) 618 | r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 619 | return c > 3 && r && Object.defineProperty(target, key, r), r; 620 | }; 621 | var __metadata = (this && this.__metadata) || function(k, v) { 622 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") 623 | return Reflect.metadata(k, v); 624 | }; 625 | var enums_1 = require("angular2/src/http/enums"); 626 | var static_response_1 = require("angular2/src/http/static_response"); 627 | var headers_1 = require("angular2/src/http/headers"); 628 | var base_response_options_1 = require("angular2/src/http/base_response_options"); 629 | var core_1 = require("angular2/core"); 630 | var browser_xhr_1 = require("angular2/src/http/backends/browser_xhr"); 631 | var lang_1 = require("angular2/src/facade/lang"); 632 | var Observable_1 = require("rxjs/Observable"); 633 | var http_utils_1 = require("angular2/src/http/http_utils"); 634 | var XHRConnection = (function() { 635 | function XHRConnection(req, browserXHR, baseResponseOptions) { 636 | var _this = this; 637 | this.request = req; 638 | this.response = new Observable_1.Observable(function(responseObserver) { 639 | var _xhr = browserXHR.build(); 640 | _xhr.open(enums_1.RequestMethod[req.method].toUpperCase(), req.url); 641 | var onLoad = function() { 642 | var body = lang_1.isPresent(_xhr.response) ? _xhr.response : _xhr.responseText; 643 | var headers = headers_1.Headers.fromResponseHeaderString(_xhr.getAllResponseHeaders()); 644 | var url = http_utils_1.getResponseURL(_xhr); 645 | var status = _xhr.status === 1223 ? 204 : _xhr.status; 646 | if (status === 0) { 647 | status = body ? 200 : 0; 648 | } 649 | var responseOptions = new base_response_options_1.ResponseOptions({ 650 | body: body, 651 | status: status, 652 | headers: headers, 653 | url: url 654 | }); 655 | if (lang_1.isPresent(baseResponseOptions)) { 656 | responseOptions = baseResponseOptions.merge(responseOptions); 657 | } 658 | var response = new static_response_1.Response(responseOptions); 659 | if (http_utils_1.isSuccess(status)) { 660 | responseObserver.next(response); 661 | responseObserver.complete(); 662 | return ; 663 | } 664 | responseObserver.error(response); 665 | }; 666 | var onError = function(err) { 667 | var responseOptions = new base_response_options_1.ResponseOptions({ 668 | body: err, 669 | type: enums_1.ResponseType.Error 670 | }); 671 | if (lang_1.isPresent(baseResponseOptions)) { 672 | responseOptions = baseResponseOptions.merge(responseOptions); 673 | } 674 | responseObserver.error(new static_response_1.Response(responseOptions)); 675 | }; 676 | if (lang_1.isPresent(req.headers)) { 677 | req.headers.forEach(function(values, name) { 678 | return _xhr.setRequestHeader(name, values.join(',')); 679 | }); 680 | } 681 | _xhr.addEventListener('load', onLoad); 682 | _xhr.addEventListener('error', onError); 683 | _xhr.send(_this.request.text()); 684 | return function() { 685 | _xhr.removeEventListener('load', onLoad); 686 | _xhr.removeEventListener('error', onError); 687 | _xhr.abort(); 688 | }; 689 | }); 690 | } 691 | return XHRConnection; 692 | })(); 693 | exports.XHRConnection = XHRConnection; 694 | var XHRBackend = (function() { 695 | function XHRBackend(_browserXHR, _baseResponseOptions) { 696 | this._browserXHR = _browserXHR; 697 | this._baseResponseOptions = _baseResponseOptions; 698 | } 699 | XHRBackend.prototype.createConnection = function(request) { 700 | return new XHRConnection(request, this._browserXHR, this._baseResponseOptions); 701 | }; 702 | XHRBackend = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [browser_xhr_1.BrowserXhr, base_response_options_1.ResponseOptions])], XHRBackend); 703 | return XHRBackend; 704 | })(); 705 | exports.XHRBackend = XHRBackend; 706 | global.define = __define; 707 | return module.exports; 708 | }); 709 | 710 | System.register("angular2/src/http/backends/jsonp_backend", ["angular2/src/http/interfaces", "angular2/src/http/enums", "angular2/src/http/static_response", "angular2/src/http/base_response_options", "angular2/core", "angular2/src/http/backends/browser_jsonp", "angular2/src/facade/exceptions", "angular2/src/facade/lang", "rxjs/Observable"], true, function(require, exports, module) { 711 | var global = System.global, 712 | __define = global.define; 713 | global.define = undefined; 714 | var __extends = (this && this.__extends) || function(d, b) { 715 | for (var p in b) 716 | if (b.hasOwnProperty(p)) 717 | d[p] = b[p]; 718 | function __() { 719 | this.constructor = d; 720 | } 721 | d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 722 | }; 723 | var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) { 724 | var c = arguments.length, 725 | r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, 726 | d; 727 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") 728 | r = Reflect.decorate(decorators, target, key, desc); 729 | else 730 | for (var i = decorators.length - 1; i >= 0; i--) 731 | if (d = decorators[i]) 732 | r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 733 | return c > 3 && r && Object.defineProperty(target, key, r), r; 734 | }; 735 | var __metadata = (this && this.__metadata) || function(k, v) { 736 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") 737 | return Reflect.metadata(k, v); 738 | }; 739 | var interfaces_1 = require("angular2/src/http/interfaces"); 740 | var enums_1 = require("angular2/src/http/enums"); 741 | var static_response_1 = require("angular2/src/http/static_response"); 742 | var base_response_options_1 = require("angular2/src/http/base_response_options"); 743 | var core_1 = require("angular2/core"); 744 | var browser_jsonp_1 = require("angular2/src/http/backends/browser_jsonp"); 745 | var exceptions_1 = require("angular2/src/facade/exceptions"); 746 | var lang_1 = require("angular2/src/facade/lang"); 747 | var Observable_1 = require("rxjs/Observable"); 748 | var JSONP_ERR_NO_CALLBACK = 'JSONP injected script did not invoke callback.'; 749 | var JSONP_ERR_WRONG_METHOD = 'JSONP requests must use GET request method.'; 750 | var JSONPConnection = (function() { 751 | function JSONPConnection() {} 752 | return JSONPConnection; 753 | })(); 754 | exports.JSONPConnection = JSONPConnection; 755 | var JSONPConnection_ = (function(_super) { 756 | __extends(JSONPConnection_, _super); 757 | function JSONPConnection_(req, _dom, baseResponseOptions) { 758 | var _this = this; 759 | _super.call(this); 760 | this._dom = _dom; 761 | this.baseResponseOptions = baseResponseOptions; 762 | this._finished = false; 763 | if (req.method !== enums_1.RequestMethod.Get) { 764 | throw exceptions_1.makeTypeError(JSONP_ERR_WRONG_METHOD); 765 | } 766 | this.request = req; 767 | this.response = new Observable_1.Observable(function(responseObserver) { 768 | _this.readyState = enums_1.ReadyState.Loading; 769 | var id = _this._id = _dom.nextRequestID(); 770 | _dom.exposeConnection(id, _this); 771 | var callback = _dom.requestCallback(_this._id); 772 | var url = req.url; 773 | if (url.indexOf('=JSONP_CALLBACK&') > -1) { 774 | url = lang_1.StringWrapper.replace(url, '=JSONP_CALLBACK&', "=" + callback + "&"); 775 | } else if (url.lastIndexOf('=JSONP_CALLBACK') === url.length - '=JSONP_CALLBACK'.length) { 776 | url = url.substring(0, url.length - '=JSONP_CALLBACK'.length) + ("=" + callback); 777 | } 778 | var script = _this._script = _dom.build(url); 779 | var onLoad = function(event) { 780 | if (_this.readyState === enums_1.ReadyState.Cancelled) 781 | return ; 782 | _this.readyState = enums_1.ReadyState.Done; 783 | _dom.cleanup(script); 784 | if (!_this._finished) { 785 | var responseOptions_1 = new base_response_options_1.ResponseOptions({ 786 | body: JSONP_ERR_NO_CALLBACK, 787 | type: enums_1.ResponseType.Error, 788 | url: url 789 | }); 790 | if (lang_1.isPresent(baseResponseOptions)) { 791 | responseOptions_1 = baseResponseOptions.merge(responseOptions_1); 792 | } 793 | responseObserver.error(new static_response_1.Response(responseOptions_1)); 794 | return ; 795 | } 796 | var responseOptions = new base_response_options_1.ResponseOptions({ 797 | body: _this._responseData, 798 | url: url 799 | }); 800 | if (lang_1.isPresent(_this.baseResponseOptions)) { 801 | responseOptions = _this.baseResponseOptions.merge(responseOptions); 802 | } 803 | responseObserver.next(new static_response_1.Response(responseOptions)); 804 | responseObserver.complete(); 805 | }; 806 | var onError = function(error) { 807 | if (_this.readyState === enums_1.ReadyState.Cancelled) 808 | return ; 809 | _this.readyState = enums_1.ReadyState.Done; 810 | _dom.cleanup(script); 811 | var responseOptions = new base_response_options_1.ResponseOptions({ 812 | body: error.message, 813 | type: enums_1.ResponseType.Error 814 | }); 815 | if (lang_1.isPresent(baseResponseOptions)) { 816 | responseOptions = baseResponseOptions.merge(responseOptions); 817 | } 818 | responseObserver.error(new static_response_1.Response(responseOptions)); 819 | }; 820 | script.addEventListener('load', onLoad); 821 | script.addEventListener('error', onError); 822 | _dom.send(script); 823 | return function() { 824 | _this.readyState = enums_1.ReadyState.Cancelled; 825 | script.removeEventListener('load', onLoad); 826 | script.removeEventListener('error', onError); 827 | if (lang_1.isPresent(script)) { 828 | _this._dom.cleanup(script); 829 | } 830 | }; 831 | }); 832 | } 833 | JSONPConnection_.prototype.finished = function(data) { 834 | this._finished = true; 835 | this._dom.removeConnection(this._id); 836 | if (this.readyState === enums_1.ReadyState.Cancelled) 837 | return ; 838 | this._responseData = data; 839 | }; 840 | return JSONPConnection_; 841 | })(JSONPConnection); 842 | exports.JSONPConnection_ = JSONPConnection_; 843 | var JSONPBackend = (function(_super) { 844 | __extends(JSONPBackend, _super); 845 | function JSONPBackend() { 846 | _super.apply(this, arguments); 847 | } 848 | return JSONPBackend; 849 | })(interfaces_1.ConnectionBackend); 850 | exports.JSONPBackend = JSONPBackend; 851 | var JSONPBackend_ = (function(_super) { 852 | __extends(JSONPBackend_, _super); 853 | function JSONPBackend_(_browserJSONP, _baseResponseOptions) { 854 | _super.call(this); 855 | this._browserJSONP = _browserJSONP; 856 | this._baseResponseOptions = _baseResponseOptions; 857 | } 858 | JSONPBackend_.prototype.createConnection = function(request) { 859 | return new JSONPConnection_(request, this._browserJSONP, this._baseResponseOptions); 860 | }; 861 | JSONPBackend_ = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [browser_jsonp_1.BrowserJsonp, base_response_options_1.ResponseOptions])], JSONPBackend_); 862 | return JSONPBackend_; 863 | })(JSONPBackend); 864 | exports.JSONPBackend_ = JSONPBackend_; 865 | global.define = __define; 866 | return module.exports; 867 | }); 868 | 869 | System.register("angular2/src/http/static_request", ["angular2/src/http/headers", "angular2/src/http/http_utils", "angular2/src/facade/lang"], true, function(require, exports, module) { 870 | var global = System.global, 871 | __define = global.define; 872 | global.define = undefined; 873 | var headers_1 = require("angular2/src/http/headers"); 874 | var http_utils_1 = require("angular2/src/http/http_utils"); 875 | var lang_1 = require("angular2/src/facade/lang"); 876 | var Request = (function() { 877 | function Request(requestOptions) { 878 | var url = requestOptions.url; 879 | this.url = requestOptions.url; 880 | if (lang_1.isPresent(requestOptions.search)) { 881 | var search = requestOptions.search.toString(); 882 | if (search.length > 0) { 883 | var prefix = '?'; 884 | if (lang_1.StringWrapper.contains(this.url, '?')) { 885 | prefix = (this.url[this.url.length - 1] == '&') ? '' : '&'; 886 | } 887 | this.url = url + prefix + search; 888 | } 889 | } 890 | this._body = requestOptions.body; 891 | this.method = http_utils_1.normalizeMethodName(requestOptions.method); 892 | this.headers = new headers_1.Headers(requestOptions.headers); 893 | } 894 | Request.prototype.text = function() { 895 | return lang_1.isPresent(this._body) ? this._body.toString() : ''; 896 | }; 897 | return Request; 898 | })(); 899 | exports.Request = Request; 900 | global.define = __define; 901 | return module.exports; 902 | }); 903 | 904 | System.register("angular2/src/http/http", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/core", "angular2/src/http/interfaces", "angular2/src/http/static_request", "angular2/src/http/base_request_options", "angular2/src/http/enums"], true, function(require, exports, module) { 905 | var global = System.global, 906 | __define = global.define; 907 | global.define = undefined; 908 | var __extends = (this && this.__extends) || function(d, b) { 909 | for (var p in b) 910 | if (b.hasOwnProperty(p)) 911 | d[p] = b[p]; 912 | function __() { 913 | this.constructor = d; 914 | } 915 | d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 916 | }; 917 | var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) { 918 | var c = arguments.length, 919 | r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, 920 | d; 921 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") 922 | r = Reflect.decorate(decorators, target, key, desc); 923 | else 924 | for (var i = decorators.length - 1; i >= 0; i--) 925 | if (d = decorators[i]) 926 | r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 927 | return c > 3 && r && Object.defineProperty(target, key, r), r; 928 | }; 929 | var __metadata = (this && this.__metadata) || function(k, v) { 930 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") 931 | return Reflect.metadata(k, v); 932 | }; 933 | var lang_1 = require("angular2/src/facade/lang"); 934 | var exceptions_1 = require("angular2/src/facade/exceptions"); 935 | var core_1 = require("angular2/core"); 936 | var interfaces_1 = require("angular2/src/http/interfaces"); 937 | var static_request_1 = require("angular2/src/http/static_request"); 938 | var base_request_options_1 = require("angular2/src/http/base_request_options"); 939 | var enums_1 = require("angular2/src/http/enums"); 940 | function httpRequest(backend, request) { 941 | return backend.createConnection(request).response; 942 | } 943 | function mergeOptions(defaultOpts, providedOpts, method, url) { 944 | var newOptions = defaultOpts; 945 | if (lang_1.isPresent(providedOpts)) { 946 | return newOptions.merge(new base_request_options_1.RequestOptions({ 947 | method: providedOpts.method || method, 948 | url: providedOpts.url || url, 949 | search: providedOpts.search, 950 | headers: providedOpts.headers, 951 | body: providedOpts.body 952 | })); 953 | } 954 | if (lang_1.isPresent(method)) { 955 | return newOptions.merge(new base_request_options_1.RequestOptions({ 956 | method: method, 957 | url: url 958 | })); 959 | } else { 960 | return newOptions.merge(new base_request_options_1.RequestOptions({url: url})); 961 | } 962 | } 963 | var Http = (function() { 964 | function Http(_backend, _defaultOptions) { 965 | this._backend = _backend; 966 | this._defaultOptions = _defaultOptions; 967 | } 968 | Http.prototype.request = function(url, options) { 969 | var responseObservable; 970 | if (lang_1.isString(url)) { 971 | responseObservable = httpRequest(this._backend, new static_request_1.Request(mergeOptions(this._defaultOptions, options, enums_1.RequestMethod.Get, url))); 972 | } else if (url instanceof static_request_1.Request) { 973 | responseObservable = httpRequest(this._backend, url); 974 | } else { 975 | throw exceptions_1.makeTypeError('First argument must be a url string or Request instance.'); 976 | } 977 | return responseObservable; 978 | }; 979 | Http.prototype.get = function(url, options) { 980 | return httpRequest(this._backend, new static_request_1.Request(mergeOptions(this._defaultOptions, options, enums_1.RequestMethod.Get, url))); 981 | }; 982 | Http.prototype.post = function(url, body, options) { 983 | return httpRequest(this._backend, new static_request_1.Request(mergeOptions(this._defaultOptions.merge(new base_request_options_1.RequestOptions({body: body})), options, enums_1.RequestMethod.Post, url))); 984 | }; 985 | Http.prototype.put = function(url, body, options) { 986 | return httpRequest(this._backend, new static_request_1.Request(mergeOptions(this._defaultOptions.merge(new base_request_options_1.RequestOptions({body: body})), options, enums_1.RequestMethod.Put, url))); 987 | }; 988 | Http.prototype.delete = function(url, options) { 989 | return httpRequest(this._backend, new static_request_1.Request(mergeOptions(this._defaultOptions, options, enums_1.RequestMethod.Delete, url))); 990 | }; 991 | Http.prototype.patch = function(url, body, options) { 992 | return httpRequest(this._backend, new static_request_1.Request(mergeOptions(this._defaultOptions.merge(new base_request_options_1.RequestOptions({body: body})), options, enums_1.RequestMethod.Patch, url))); 993 | }; 994 | Http.prototype.head = function(url, options) { 995 | return httpRequest(this._backend, new static_request_1.Request(mergeOptions(this._defaultOptions, options, enums_1.RequestMethod.Head, url))); 996 | }; 997 | Http = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [interfaces_1.ConnectionBackend, base_request_options_1.RequestOptions])], Http); 998 | return Http; 999 | })(); 1000 | exports.Http = Http; 1001 | var Jsonp = (function(_super) { 1002 | __extends(Jsonp, _super); 1003 | function Jsonp(backend, defaultOptions) { 1004 | _super.call(this, backend, defaultOptions); 1005 | } 1006 | Jsonp.prototype.request = function(url, options) { 1007 | var responseObservable; 1008 | if (lang_1.isString(url)) { 1009 | url = new static_request_1.Request(mergeOptions(this._defaultOptions, options, enums_1.RequestMethod.Get, url)); 1010 | } 1011 | if (url instanceof static_request_1.Request) { 1012 | if (url.method !== enums_1.RequestMethod.Get) { 1013 | exceptions_1.makeTypeError('JSONP requests must use GET request method.'); 1014 | } 1015 | responseObservable = httpRequest(this._backend, url); 1016 | } else { 1017 | throw exceptions_1.makeTypeError('First argument must be a url string or Request instance.'); 1018 | } 1019 | return responseObservable; 1020 | }; 1021 | Jsonp = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [interfaces_1.ConnectionBackend, base_request_options_1.RequestOptions])], Jsonp); 1022 | return Jsonp; 1023 | })(Http); 1024 | exports.Jsonp = Jsonp; 1025 | global.define = __define; 1026 | return module.exports; 1027 | }); 1028 | 1029 | System.register("angular2/http", ["angular2/core", "angular2/src/http/http", "angular2/src/http/backends/xhr_backend", "angular2/src/http/backends/jsonp_backend", "angular2/src/http/backends/browser_xhr", "angular2/src/http/backends/browser_jsonp", "angular2/src/http/base_request_options", "angular2/src/http/base_response_options", "angular2/src/http/static_request", "angular2/src/http/static_response", "angular2/src/http/interfaces", "angular2/src/http/backends/browser_xhr", "angular2/src/http/base_request_options", "angular2/src/http/base_response_options", "angular2/src/http/backends/xhr_backend", "angular2/src/http/backends/jsonp_backend", "angular2/src/http/http", "angular2/src/http/headers", "angular2/src/http/enums", "angular2/src/http/url_search_params"], true, function(require, exports, module) { 1030 | var global = System.global, 1031 | __define = global.define; 1032 | global.define = undefined; 1033 | var core_1 = require("angular2/core"); 1034 | var http_1 = require("angular2/src/http/http"); 1035 | var xhr_backend_1 = require("angular2/src/http/backends/xhr_backend"); 1036 | var jsonp_backend_1 = require("angular2/src/http/backends/jsonp_backend"); 1037 | var browser_xhr_1 = require("angular2/src/http/backends/browser_xhr"); 1038 | var browser_jsonp_1 = require("angular2/src/http/backends/browser_jsonp"); 1039 | var base_request_options_1 = require("angular2/src/http/base_request_options"); 1040 | var base_response_options_1 = require("angular2/src/http/base_response_options"); 1041 | var static_request_1 = require("angular2/src/http/static_request"); 1042 | exports.Request = static_request_1.Request; 1043 | var static_response_1 = require("angular2/src/http/static_response"); 1044 | exports.Response = static_response_1.Response; 1045 | var interfaces_1 = require("angular2/src/http/interfaces"); 1046 | exports.Connection = interfaces_1.Connection; 1047 | exports.ConnectionBackend = interfaces_1.ConnectionBackend; 1048 | var browser_xhr_2 = require("angular2/src/http/backends/browser_xhr"); 1049 | exports.BrowserXhr = browser_xhr_2.BrowserXhr; 1050 | var base_request_options_2 = require("angular2/src/http/base_request_options"); 1051 | exports.BaseRequestOptions = base_request_options_2.BaseRequestOptions; 1052 | exports.RequestOptions = base_request_options_2.RequestOptions; 1053 | var base_response_options_2 = require("angular2/src/http/base_response_options"); 1054 | exports.BaseResponseOptions = base_response_options_2.BaseResponseOptions; 1055 | exports.ResponseOptions = base_response_options_2.ResponseOptions; 1056 | var xhr_backend_2 = require("angular2/src/http/backends/xhr_backend"); 1057 | exports.XHRBackend = xhr_backend_2.XHRBackend; 1058 | exports.XHRConnection = xhr_backend_2.XHRConnection; 1059 | var jsonp_backend_2 = require("angular2/src/http/backends/jsonp_backend"); 1060 | exports.JSONPBackend = jsonp_backend_2.JSONPBackend; 1061 | exports.JSONPConnection = jsonp_backend_2.JSONPConnection; 1062 | var http_2 = require("angular2/src/http/http"); 1063 | exports.Http = http_2.Http; 1064 | exports.Jsonp = http_2.Jsonp; 1065 | var headers_1 = require("angular2/src/http/headers"); 1066 | exports.Headers = headers_1.Headers; 1067 | var enums_1 = require("angular2/src/http/enums"); 1068 | exports.ResponseType = enums_1.ResponseType; 1069 | exports.ReadyState = enums_1.ReadyState; 1070 | exports.RequestMethod = enums_1.RequestMethod; 1071 | var url_search_params_1 = require("angular2/src/http/url_search_params"); 1072 | exports.URLSearchParams = url_search_params_1.URLSearchParams; 1073 | exports.HTTP_PROVIDERS = [core_1.provide(http_1.Http, { 1074 | useFactory: function(xhrBackend, requestOptions) { 1075 | return new http_1.Http(xhrBackend, requestOptions); 1076 | }, 1077 | deps: [xhr_backend_1.XHRBackend, base_request_options_1.RequestOptions] 1078 | }), browser_xhr_1.BrowserXhr, core_1.provide(base_request_options_1.RequestOptions, {useClass: base_request_options_1.BaseRequestOptions}), core_1.provide(base_response_options_1.ResponseOptions, {useClass: base_response_options_1.BaseResponseOptions}), xhr_backend_1.XHRBackend]; 1079 | exports.HTTP_BINDINGS = exports.HTTP_PROVIDERS; 1080 | exports.JSONP_PROVIDERS = [core_1.provide(http_1.Jsonp, { 1081 | useFactory: function(jsonpBackend, requestOptions) { 1082 | return new http_1.Jsonp(jsonpBackend, requestOptions); 1083 | }, 1084 | deps: [jsonp_backend_1.JSONPBackend, base_request_options_1.RequestOptions] 1085 | }), browser_jsonp_1.BrowserJsonp, core_1.provide(base_request_options_1.RequestOptions, {useClass: base_request_options_1.BaseRequestOptions}), core_1.provide(base_response_options_1.ResponseOptions, {useClass: base_response_options_1.BaseResponseOptions}), core_1.provide(jsonp_backend_1.JSONPBackend, {useClass: jsonp_backend_1.JSONPBackend_})]; 1086 | exports.JSON_BINDINGS = exports.JSONP_PROVIDERS; 1087 | global.define = __define; 1088 | return module.exports; 1089 | }); 1090 | 1091 | -------------------------------------------------------------------------------- /lib/system.js: -------------------------------------------------------------------------------- 1 | /* 2 | * SystemJS v0.19.20 3 | */ 4 | !function(){function e(){!function(e){function t(e,t){var n;return e instanceof Error?(n=new Error(e.message,e.fileName,e.lineNumber),M?(n.message=e.message+"\n "+t,n.stack=e.stack):(n.message=e.message,n.stack=e.stack+"\n "+t)):n=e+"\n "+t,n}function n(e,n,r){try{new Function(e).call(r)}catch(a){throw t(a,"Evaluating "+n)}}function r(){}function a(t){this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},z(this,"global",{get:function(){return e}})}function o(){a.call(this),this.paths={}}function s(e,t){var n,r="",a=0;for(var o in e){var s=o.split("*");if(s.length>2)throw new TypeError("Only one wildcard in a path is permitted");if(1==s.length){if(t==o)return e[o];if(t.substr(0,o.length-1)==o.substr(0,o.length-1)&&(t.lengtho.length?"/"+t.substr(o.length):"")}else{var i=s[0].length;i>=a&&t.substr(0,s[0].length)==s[0]&&t.substr(t.length-s[1].length)==s[1]&&(a=i,r=o,n=t.substr(s[0].length,t.length-s[1].length-s[0].length))}}var l=e[r];return"string"==typeof n&&(l=l.replace("*",n)),l}function i(){}function l(){o.call(this),q.call(this)}function u(){}function d(e,t){l.prototype[e]=t(l.prototype[e]||function(){})}function c(e){q=e(q||function(){})}function f(e){for(var t=[],n=[],r=0,a=e.length;a>r;r++){var o=T.call(t,e[r]);-1===o?(t.push(e[r]),n.push([r])):n[o].push(r)}return{names:t,indices:n}}function m(e){var t={};if("object"==typeof e||"function"==typeof e)if(U){var n;for(var r in e)(n=Object.getOwnPropertyDescriptor(e,r))&&z(t,r,n)}else{var a=e&&e.hasOwnProperty;for(var r in e)(!a||e.hasOwnProperty(r))&&(t[r]=e[r])}return t["default"]=e,z(t,"__useDefault",{value:!0}),t}function p(e,t,n){for(var r in t)n&&r in e||(e[r]=t[r]);return e}function h(e,t,n){for(var r in t){var a=t[r];r in e?a instanceof Array&&e[r]instanceof Array?e[r]=[].concat(n?a:e[r]).concat(n?e[r]:a):"object"==typeof a&&null!==a&&"object"==typeof e[r]?e[r]=p(p({},e[r]),a,n):n||(e[r]=a):e[r]=a}}function g(e){this.warnings&&"undefined"!=typeof console&&console.warn}function v(e,t){for(var n=e.split(".");n.length;)t=t[n.shift()];return t}function b(){if(X[this.baseURL])return X[this.baseURL];"/"!=this.baseURL[this.baseURL.length-1]&&(this.baseURL+="/");var e=new F(this.baseURL,I);return this.baseURL=e.href,X[this.baseURL]=e}function y(e,t){var n,r=0;for(var a in e)if(t.substr(0,a.length)==a&&(t.length==a.length||"/"==t[a.length])){var o=a.split("/").length;if(r>=o)continue;n=a,r=o}return n}function x(e){this.set("@system-env",this.newModule({browser:M,node:!!this._nodeRequire,production:e}))}function w(e){var t=e.match(V);return t&&"System.register"==e.substr(t[0].length,15)}function S(){return{name:null,deps:null,originalIndices:null,declare:null,execute:null,executingRequire:!1,declarative:!1,normalizedDeps:null,groupIndex:null,evaluated:!1,module:null,esModule:null,esmExports:!1}}function E(e){var t,n,r,r="~"==e[0],a=e.lastIndexOf("|");return-1!=a?(t=e.substr(a+1),n=e.substr(r,a-r)||"@system-env"):(t=null,n=e.substr(r)),{module:n,prop:t,negate:r}}function j(e){return(e.negate?"~":"")+e.module+(e.prop?"|"+e.prop:"")}function _(e,t,n){return this["import"](e.module,t).then(function(t){return e.prop?t=v(e.prop,t):"object"==typeof t&&t+""=="Module"&&(t=t["default"]),e.negate?!t:t})}function k(e,t){var n=e.match(Y);if(!n)return Promise.resolve(e);var r=E(n[0].substr(2,n[0].length-3));return this.builder?this.normalize(r.module,t).then(function(t){return r.module=t,e.replace(Y,"#{"+j(r)+"}")}):_.call(this,r,t,!1).then(function(n){if("string"!=typeof n)throw new TypeError("The condition value for "+e+" doesn't resolve to a string.");if(-1!=n.indexOf("/"))throw new TypeError("Unabled to interpolate conditional "+e+(t?" in "+t:"")+"\n The condition value "+n+' cannot contain a "/" separator.');return e.replace(Y,n)})}function P(e,t){var n=e.lastIndexOf("#?");if(-1==n)return Promise.resolve(e);var r=E(e.substr(n+2));return this.builder?this.normalize(r.module,t).then(function(t){return r.module=t,e.substr(0,n)+"#?"+j(r)}):_.call(this,r,t,!0).then(function(t){return t?e.substr(0,n):"@empty"})}var R="undefined"==typeof window&&"undefined"!=typeof self&&"undefined"!=typeof importScripts,M="undefined"!=typeof window&&"undefined"!=typeof document,O="undefined"!=typeof process&&"undefined"!=typeof process.platform&&!!process.platform.match(/^win/);e.console||(e.console={assert:function(){}});var z,T=Array.prototype.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1};!function(){try{Object.defineProperty({},"a",{})&&(z=Object.defineProperty)}catch(e){z=function(e,t,n){try{e[t]=n.value||n.get.call(e)}catch(r){}}}}();var I;if("undefined"!=typeof document&&document.getElementsByTagName){if(I=document.baseURI,!I){var L=document.getElementsByTagName("base");I=L[0]&&L[0].href||window.location.href}I=I.split("#")[0].split("?")[0],I=I.substr(0,I.lastIndexOf("/")+1)}else if("undefined"!=typeof process&&process.cwd)I="file://"+(O?"/":"")+process.cwd()+"/",O&&(I=I.replace(/\\/g,"/"));else{if("undefined"==typeof location)throw new TypeError("No environment baseURI");I=e.location.href}var F=e.URLPolyfill||e.URL;z(r.prototype,"toString",{value:function(){return"Module"}}),function(){function o(e){return{status:"loading",name:e,linkSets:[],dependencies:[],metadata:{}}}function s(e,t,n){return new Promise(c({step:n.address?"fetch":"locate",loader:e,moduleName:t,moduleMetadata:n&&n.metadata||{},moduleSource:n.source,moduleAddress:n.address}))}function i(e,t,n,r){return new Promise(function(a,o){a(e.loaderObj.normalize(t,n,r))}).then(function(t){var n;if(e.modules[t])return n=o(t),n.status="linked",n.module=e.modules[t],n;for(var r=0,a=e.loads.length;a>r;r++)if(n=e.loads[r],n.name==t)return n;return n=o(t),e.loads.push(n),l(e,n),n})}function l(e,t){u(e,t,Promise.resolve().then(function(){return e.loaderObj.locate({name:t.name,metadata:t.metadata})}))}function u(e,t,n){d(e,t,n.then(function(n){return"loading"==t.status?(t.address=n,e.loaderObj.fetch({name:t.name,metadata:t.metadata,address:n})):void 0}))}function d(t,r,a){a.then(function(a){return"loading"==r.status?Promise.resolve(t.loaderObj.translate({name:r.name,metadata:r.metadata,address:r.address,source:a})).then(function(e){return r.source=e,t.loaderObj.instantiate({name:r.name,metadata:r.metadata,address:r.address,source:e})}).then(function(a){if(void 0===a)return r.address=r.address||"",r.isDeclarative=!0,E.call(t.loaderObj,r).then(function(t){var a=e.System,o=a.register;a.register=function(e,t,n){"string"!=typeof e&&(n=t,t=e),r.declare=n,r.depsList=t},n(t,r.address,{}),a.register=o});if("object"!=typeof a)throw TypeError("Invalid instantiate return value");r.depsList=a.deps||[],r.execute=a.execute,r.isDeclarative=!1}).then(function(){r.dependencies=[];for(var e=r.depsList,n=[],a=0,o=e.length;o>a;a++)(function(e,a){n.push(i(t,e,r.name,r.address).then(function(t){if(r.dependencies[a]={key:e,value:t.name},"linked"!=t.status)for(var n=r.linkSets.concat([]),o=0,s=n.length;s>o;o++)m(n[o],t)}))})(e[a],a);return Promise.all(n)}).then(function(){r.status="loaded";for(var e=r.linkSets.concat([]),t=0,n=e.length;n>t;t++)h(e[t],r)}):void 0})["catch"](function(e){r.status="failed",r.exception=e;for(var t=r.linkSets.concat([]),n=0,a=t.length;a>n;n++)g(t[n],r,e)})}function c(e){return function(t,n){var r=e.loader,a=e.moduleName,s=e.step;if(r.modules[a])throw new TypeError('"'+a+'" already exists in the module table');for(var i,c=0,m=r.loads.length;m>c;c++)if(r.loads[c].name==a&&(i=r.loads[c],"translate"!=s||i.source||(i.address=e.moduleAddress,d(r,i,Promise.resolve(e.moduleSource))),i.linkSets.length&&i.linkSets[0].loads[0].name==i.name))return i.linkSets[0].done.then(function(){t(i)});var p=i||o(a);p.metadata=e.moduleMetadata;var h=f(r,p);r.loads.push(p),t(h.done),"locate"==s?l(r,p):"fetch"==s?u(r,p,Promise.resolve(e.moduleAddress)):(p.address=e.moduleAddress,d(r,p,Promise.resolve(e.moduleSource)))}}function f(e,t){var n={loader:e,loads:[],startingLoad:t,loadingCount:0};return n.done=new Promise(function(e,t){n.resolve=e,n.reject=t}),m(n,t),n}function m(e,t){if("failed"!=t.status){for(var n=0,r=e.loads.length;r>n;n++)if(e.loads[n]==t)return;e.loads.push(t),t.linkSets.push(e),"loaded"!=t.status&&e.loadingCount++;for(var a=e.loader,n=0,r=t.dependencies.length;r>n;n++)if(t.dependencies[n]){var o=t.dependencies[n].value;if(!a.modules[o])for(var s=0,i=a.loads.length;i>s;s++)if(a.loads[s].name==o){m(e,a.loads[s]);break}}}}function p(e){var t=!1;try{x(e,function(n,r){g(e,n,r),t=!0})}catch(n){g(e,null,n),t=!0}return t}function h(e,t){if(e.loadingCount--,!(e.loadingCount>0)){var n=e.startingLoad;if(e.loader.loaderObj.execute===!1){for(var r=[].concat(e.loads),a=0,o=r.length;o>a;a++){var t=r[a];t.module=t.isDeclarative?{name:t.name,module:_({}),evaluated:!0}:{module:_({})},t.status="linked",v(e.loader,t)}return e.resolve(n)}var s=p(e);s||e.resolve(n)}}function g(e,n,r){var a=e.loader;e:if(n)if(e.loads[0].name==n.name)r=t(r,"Error loading "+n.name);else{for(var o=0;oo;o++){var n=u[o];a.loaderObj.failed=a.loaderObj.failed||[],-1==T.call(a.loaderObj.failed,n)&&a.loaderObj.failed.push(n);var c=T.call(n.linkSets,e);if(n.linkSets.splice(c,1),0==n.linkSets.length){var f=T.call(e.loader.loads,n);-1!=f&&e.loader.loads.splice(f,1)}}e.reject(r)}function v(e,t){if(e.loaderObj.trace){e.loaderObj.loads||(e.loaderObj.loads={});var n={};t.dependencies.forEach(function(e){n[e.key]=e.value}),e.loaderObj.loads[t.name]={name:t.name,deps:t.dependencies.map(function(e){return e.key}),depMap:n,address:t.address,metadata:t.metadata,source:t.source,kind:t.isDeclarative?"declarative":"dynamic"}}t.name&&(e.modules[t.name]=t.module);var r=T.call(e.loads,t);-1!=r&&e.loads.splice(r,1);for(var a=0,o=t.linkSets.length;o>a;a++)r=T.call(t.linkSets[a].loads,t),-1!=r&&t.linkSets[a].loads.splice(r,1);t.linkSets.splice(0,t.linkSets.length)}function b(e,t,n){try{var a=t.execute()}catch(o){return void n(t,o)}return a&&a instanceof r?a:void n(t,new TypeError("Execution must define a Module instance"))}function y(e,t,n){var r=e._loader.importPromises;return r[t]=n.then(function(e){return r[t]=void 0,e},function(e){throw r[t]=void 0,e})}function x(e,t){var n=e.loader;if(e.loads.length)for(var r=e.loads.concat([]),a=0;aa&&(n=o,a=r));return n}function t(e){var t=e.basePath&&"."!=e.basePath?e.basePath:"";return t&&("./"==t.substr(0,2)&&(t=t.substr(2)),"/"!=t[t.length-1]&&(t+="/")),t}function n(e,t,n,r,a,o){if(!a||"/"==a[a.length-1]||o||t.defaultExtension===!1)return a;if(a.match(Y))return a;var s=!1;if(t.meta&&p(t.meta,a,function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?s=!0:void 0}),!s&&e.meta&&p(e.meta,n+"/"+r+a,function(e,t,n){return 0==n||e.lastIndexOf("*")!=e.length-1?s=!0:void 0}),s)return a;var i="."+(t.defaultExtension||"js");return a.substr(a.length-i.length)!=i?a+i:a}function r(e,r,o,s,i){if(!s){if(!r.main)return o+(e.defaultJSExtensions?".js":"");s="./"==r.main.substr(0,2)?r.main.substr(2):r.main}var l=t(r);if(r.map){var u="./"+s,d=y(r.map,u);if(d||(u="./"+n(e,r,o,l,s,i),u!="./"+s&&(d=y(r.map,u))),d)return a(e,r,o,l,d,u,i)}return o+"/"+l+n(e,r,o,l,s,i)}function a(e,t,r,a,o,s,i){var l=t.map[o];if("string"!=typeof l&&(l=o=s),"."==l)l=r;else if("./"==l.substr(0,2))return r+"/"+a+n(e,t,r,a,l.substr(2)+s.substr(o.length),i);return e.normalizeSync(l+s.substr(o.length),r+"/")}function o(e,r,a,o,s){if(!o){if(!r.main)return Promise.resolve(a+(e.defaultJSExtensions?".js":""));o="./"==r.main.substr(0,2)?r.main.substr(2):r.main}var l,u,d=t(r);return r.map&&(l="./"+o,u=y(r.map,l),u||(l="./"+n(e,r,a,d,o,s),l!="./"+o&&(u=y(r.map,l)))),(u?i(e,r,a,d,u,l,s):Promise.resolve()).then(function(t){return t?Promise.resolve(t):Promise.resolve(a+"/"+d+n(e,r,a,d,o,s))})}function s(e,t,r,a,o,s,i,l){if("."==s)s=r;else if("./"==s.substr(0,2))return Promise.resolve(r+"/"+a+n(e,t,r,a,s.substr(2)+i.substr(o.length),l)).then(function(t){return k.call(e,t,r+"/")});return e.normalize(s+i.substr(o.length),r+"/")}function i(e,t,n,r,a,o,i){var l=t.map[a];return"string"==typeof l?s(e,t,n,r,a,l,o,i):e.builder?Promise.resolve(n+"/#:"+o):e["import"](t.map["@env"]||"@system-env",n).then(function(e){for(var t in l){var n="~"==t[0],r=v(n?t.substr(1):t,e);if(!n&&r||n&&!r)return l[t]}}).then(function(l){return l?s(e,t,n,r,a,l,o,i):void 0})}function u(e){var t=e.lastIndexOf("*"),n=Math.max(t+1,e.lastIndexOf("/"));return{length:n,regEx:new RegExp("^("+e.substr(0,n).replace(/\*/g,"[^\\/]+")+")(\\/|$)"),wildcard:-1!=t}}function f(e,t){for(var n,r,a=!1,o=0;od&&(d=n),h(u,t,n&&d>n)}),u.alias&&"./"==u.alias.substr(0,2)&&(u.alias=o+u.alias.substr(1)),u.loader&&"./"==u.loader.substr(0,2)&&(u.loader=o+u.loader.substr(1)),h(r.metadata,u)}}return n})}})}(),function(){function t(){if(o&&"interactive"===o.script.readyState)return o.load;for(var e=0;ea;a++){var s=e.normalizedDeps[a],i=n.defined[s];if(i&&!i.evaluated){var l=e.groupIndex+(i.declarative!=e.declarative);if(null===i.groupIndex||i.groupIndex=0;l--){for(var u=a[l],d=0;dr;r++){var o=s.importers[r];if(!o.locked){var l=T.call(o.dependencies,s);o.setters[l](i)}}return s.locked=!1,t},{id:t.name});if(s.setters=l.setters,s.execute=l.execute,!s.setters||!s.execute)throw new TypeError("Invalid System.register form for "+t.name);for(var u=0,d=t.normalizedDeps.length;d>u;u++){var c,f=t.normalizedDeps[u],m=n.defined[f],p=r[f];p?c=p.exports:m&&!m.declarative?c=m.esModule:m?(o(m,n),p=m.module,c=p.exports):c=n.get(f),p&&p.importers?(p.importers.push(s),s.dependencies.push(p)):s.dependencies.push(null);for(var h=t.originalIndices[u],g=0,v=h.length;v>g;++g){var b=h[g];s.setters[b]&&s.setters[b](c)}}}}function s(e,t){var n,r=t.defined[e];if(r)r.declarative?u(e,[],t):r.evaluated||i(r,t),n=r.module.exports;else if(n=t.get(e),!n)throw new Error("Unable to load dependency "+e+".");return(!r||r.declarative)&&n&&n.__useDefault?n["default"]:n}function i(t,n){if(!t.module){var r={},a=t.module={exports:r,id:t.name};if(!t.executingRequire)for(var o=0,l=t.normalizedDeps.length;l>o;o++){var u=t.normalizedDeps[o],d=n.defined[u];d&&i(d,n)}t.evaluated=!0;var c=t.execute.call(e,function(e){for(var r=0,a=t.deps.length;a>r;r++)if(t.deps[r]==e)return s(t.normalizedDeps[r],n);throw new Error("Module "+e+" not declared as a dependency.")},r,a);c&&(a.exports=c),r=a.exports,r&&r.__esModule?t.esModule=r:t.esmExports&&r!==e?t.esModule=m(r):t.esModule={"default":r}}}function u(t,n,r){var a=r.defined[t];if(a&&!a.evaluated&&a.declarative){n.push(t);for(var o=0,s=a.normalizedDeps.length;s>o;o++){var i=a.normalizedDeps[o];-1==T.call(n,i)&&(r.defined[i]?u(i,n,r):r.get(i))}a.evaluated||(a.evaluated=!0,a.module.execute.call(e))}}l.prototype.register=function(e,t,n){if("string"!=typeof e&&(n=t,t=e,e=null),"boolean"==typeof n)return this.registerDynamic.apply(this,arguments);var r=S();r.name=e&&(this.decanonicalize||this.normalize).call(this,e),r.declarative=!0,r.deps=t,r.declare=n,this.pushRegister_({amd:!1,entry:r})},l.prototype.registerDynamic=function(e,t,n,r){"string"!=typeof e&&(r=n,n=t,t=e,e=null);var a=S();a.name=e&&(this.decanonicalize||this.normalize).call(this,e),a.deps=t,a.execute=r,a.executingRequire=n,this.pushRegister_({amd:!1,entry:a})},d("reduceRegister_",function(){return function(e,t){if(t){var n=t.entry,r=e&&e.metadata;if(n.name&&(n.name in this.defined||(this.defined[n.name]=n),r&&(r.bundle=!0)),!n.name||e&&n.name==e.name){if(!r)throw new TypeError("Unexpected anonymous System.register call.");if(r.entry)throw"register"==r.format?new Error("Multiple anonymous System.register calls in module "+e.name+". If loading a bundle, ensure all the System.register calls are named."):new Error("Module "+e.name+" interpreted as "+r.format+" module format, but called System.register.");r.format||(r.format="register"),r.entry=n}}}}),c(function(e){return function(){e.call(this),this.defined={},this._loader.moduleRecords={}}}),z(r,"toString",{value:function(){return"Module"}}),d("delete",function(e){return function(t){return delete this._loader.moduleRecords[t],delete this.defined[t],e.call(this,t)}}),d("fetch",function(e){return function(t){return this.defined[t.name]?(t.metadata.format="defined",""):(t.metadata.deps=t.metadata.deps||[],e.call(this,t))}}),d("translate",function(e){return function(t){return t.metadata.deps=t.metadata.deps||[],Promise.resolve(e.call(this,t)).then(function(e){return("register"==t.metadata.format||!t.metadata.format&&w(t.source))&&(t.metadata.format="register"),e})}}),d("instantiate",function(e){return function(t){"detect"==t.metadata.format&&(t.metadata.format=void 0),e.call(this,t);var r,a=this;if(a.defined[t.name])r=a.defined[t.name],r.declarative||(r.deps=r.deps.concat(t.metadata.deps));else if(t.metadata.entry)r=t.metadata.entry,r.deps=r.deps.concat(t.metadata.deps);else if(!(a.builder&&t.metadata.bundle||"register"!=t.metadata.format&&"esm"!=t.metadata.format&&"es6"!=t.metadata.format)){if("undefined"!=typeof $&&$.call(a,t),!t.metadata.entry&&!t.metadata.bundle)throw new Error(t.name+" detected as "+t.metadata.format+" but didn't execute.");r=t.metadata.entry,r&&t.metadata.deps&&(r.deps=r.deps.concat(t.metadata.deps))}r||(r=S(),r.deps=t.metadata.deps,r.execute=function(){}),a.defined[t.name]=r;var o=f(r.deps);r.deps=o.names,r.originalIndices=o.indices,r.name=t.name,r.esmExports=t.metadata.esmExports!==!1;for(var s=[],i=0,l=r.deps.length;l>i;i++)s.push(Promise.resolve(a.normalize(r.deps[i],t.name)));return Promise.all(s).then(function(e){return r.normalizedDeps=e,{deps:r.deps,execute:function(){return n(t.name,a),u(t.name,[],a),a.defined[t.name]=void 0,a.newModule(r.declarative?r.module.exports:r.esModule)}}})}})}(),function(){var t=/(^\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))/,n=/\$traceurRuntime\s*\./,r=/babelHelpers\s*\./;d("translate",function(a){return function(o){var s=this;return a.call(s,o).then(function(a){if("esm"==o.metadata.format||"es6"==o.metadata.format||!o.metadata.format&&s.transpiler!==!1&&a.match(t)){if("es6"==o.metadata.format&&g.call(s,"Module "+o.name+' has metadata setting its format to "es6", which is deprecated.\nThis should be updated to "esm".'),o.metadata.format="esm",s.transpiler===!1){if(s.builder)return a;throw new TypeError("Unable to dynamically transpile ES module as SystemJS.transpiler set to false.")}return s._loader.loadedTranspiler=s._loader.loadedTranspiler||!1,s.pluginLoader&&(s.pluginLoader._loader.loadedTranspiler=s._loader.loadedTranspiler||!1),(s._loader.transpilerPromise||(s._loader.transpilerPromise=Promise.resolve(e["typescript"==s.transpiler?"ts":s.transpiler]||(s.pluginLoader||s)["import"](s.transpiler)))).then(function(e){return s._loader.loadedTranspilerRuntime=!0,e.translate?e==o.metadata.loaderModule?o.source:("string"==typeof o.metadata.sourceMap&&(o.metadata.sourceMap=JSON.parse(o.metadata.sourceMap)),Promise.resolve(e.translate.call(s,o)).then(function(e){var t=o.metadata.sourceMap;if(t&&"object"==typeof t){var n=o.name.split("!")[0];t.file=n+"!transpiled",(!t.sources||t.sources.length<=1)&&(t.sources=[n])}return"esm"==o.metadata.format&&!s.builder&&w(e)&&(o.metadata.format="register"),e})):(s.builder&&(o.metadata.originalSource=o.source),J.call(s,o).then(function(e){return o.metadata.sourceMap=void 0,e}))})}if(s.transpiler===!1)return a;if(s._loader.loadedTranspiler!==!1||"traceur"!=s.transpiler&&"typescript"!=s.transpiler&&"babel"!=s.transpiler||o.name!=s.normalizeSync(s.transpiler)||(a.length>100&&!o.metadata.format&&(o.metadata.format="global","traceur"===s.transpiler&&(o.metadata.exports="traceur"),"typescript"===s.transpiler&&(o.metadata.exports="ts")),s._loader.loadedTranspiler=!0),s._loader.loadedTranspilerRuntime===!1&&(o.name==s.normalizeSync("traceur-runtime")||o.name==s.normalizeSync("babel/external-helpers*"))&&(a.length>100&&(o.metadata.format=o.metadata.format||"global"),s._loader.loadedTranspilerRuntime=!0),("register"==o.metadata.format||o.metadata.bundle)&&s._loader.loadedTranspilerRuntime!==!0){if(!e.$traceurRuntime&&o.source.match(n))return s._loader.loadedTranspilerRuntime=s._loader.loadedTranspilerRuntime||!1,s["import"]("traceur-runtime").then(function(){return a});if(!e.babelHelpers&&o.source.match(r))return s._loader.loadedTranspilerRuntime=s._loader.loadedTranspilerRuntime||!1,s["import"]("babel/external-helpers").then(function(){return a})}return a})}})}();var K="undefined"!=typeof self?"self":"global";d("fetch",function(e){return function(t){return t.metadata.exports&&!t.metadata.format&&(t.metadata.format="global"),e.call(this,t)}}),d("instantiate",function(e){return function(t){var n=this;if(t.metadata.format||(t.metadata.format="global"),"global"==t.metadata.format&&!t.metadata.registered){var r=S();t.metadata.entry=r,r.deps=[];for(var a in t.metadata.globals){var o=t.metadata.globals[a];o&&r.deps.push(o)}r.execute=function(e,r,a){var o;if(t.metadata.globals){o={};for(var s in t.metadata.globals)t.metadata.globals[s]&&(o[s]=e(t.metadata.globals[s]))}var i=t.metadata.exports;i&&(t.source+="\n"+K+'["'+i+'"] = '+i+";");var l=n.get("@@global-helpers").prepareGlobal(a.id,i,o);return $.call(n,t),l()}}return e.call(this,t)}}),d("reduceRegister_",function(t){return function(n,r){if(r||!n.metadata.exports)return t.call(this,n,r);n.metadata.format="global";var a=n.metadata.entry=S();a.deps=n.metadata.deps;var o=v(n.metadata.exports,e);a.execute=function(){return o}}}),c(function(t){return function(){function n(t){if(Object.keys)Object.keys(e).forEach(t);else for(var n in e)s.call(e,n)&&t(n)}function r(t){n(function(n){if(-1==T.call(i,n)){try{var r=e[n]}catch(a){i.push(n)}t(n,r)}})}var a=this;t.call(a);var o,s=Object.prototype.hasOwnProperty,i=["_g","sessionStorage","localStorage","clipboardData","frames","frameElement","external","mozAnimationStartTime","webkitStorageInfo","webkitIndexedDB","mozInnerScreenY","mozInnerScreenX"];a.set("@@global-helpers",a.newModule({prepareGlobal:function(t,n,a){var s=e.define;e.define=void 0,e.exports=void 0,e.module&&e.module.exports&&(e.module=void 0);var i;if(a){i={};for(var l in a)i[l]=e[l],e[l]=a[l]}return n||(o={},r(function(e,t){o[e]=t})),function(){var t;if(n)t=v(n,e);else{var a,l,u={};r(function(e,t){o[e]!==t&&"undefined"!=typeof t&&(u[e]=t,"undefined"!=typeof a?l||a===t||(l=!0):a=t)}),t=l?u:a}if(i)for(var d in i)e[d]=i[d];return e.define=s,t}}}))}}),function(){function t(e){function t(e,t){for(var n=0;nt.index)return!0;return!1}r.lastIndex=a.lastIndex=o.lastIndex=0;var n,s=[],i=[],l=[];if(e.length/e.split("\n").length<200){for(;n=o.exec(e);)i.push([n.index,n.index+n[0].length]);for(;n=a.exec(e);)t(i,n)||l.push([n.index,n.index+n[0].length])}for(;n=r.exec(e);)if(!t(i,n)&&!t(l,n)){var u=n[1].substr(1,n[1].length-2);if(u.match(/"|'/))continue;"/"==u[u.length-1]&&(u=u.substr(0,u.length-1)),s.push(u)}return s}var n=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])(exports\s*(\[['"]|\.)|module(\.exports|\['exports'\]|\["exports"\])\s*(\[['"]|[=,\.]))/,r=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')\s*\)/g,a=/(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,o=/("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g;d("instantiate",function(a){return function(o){var s=this;if(o.metadata.format||(n.lastIndex=0,r.lastIndex=0,(r.exec(o.source)||n.exec(o.source))&&(o.metadata.format="cjs")),"cjs"==o.metadata.format){var i=o.metadata.deps,l=o.metadata.cjsRequireDetection===!1?[]:t(o.source);for(var u in o.metadata.globals)o.metadata.globals[u]&&l.push(o.metadata.globals[u]);var d=S();o.metadata.entry=d,d.deps=l,d.executingRequire=!0,d.execute=function(t,n,r){function a(e){return"/"==e[e.length-1]&&(e=e.substr(0,e.length-1)),t.apply(this,arguments)}for(var l=0;l1;)r=a.shift(),e=e[r]=e[r]||{};r=a.shift(),r in e||(e[r]=n)}c(function(e){return function(){this.meta={},e.call(this)}}),d("locate",function(e){return function(t){var n,r=this.meta,a=t.name,o=0;for(var s in r)if(n=s.indexOf("*"),-1!==n&&s.substr(0,n)===a.substr(0,n)&&s.substr(n+1)===a.substr(a.length-s.length+n+1)){var i=s.split("/").length;i>o&&(o=i),h(t.metadata,r[s],o!=i)}return r[a]&&h(t.metadata,r[a]),e.call(this,t)}});var t=/^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/,n=/\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;d("translate",function(r){return function(a){var o=a.source.match(t);if(o)for(var s=o[0].match(n),i=0;i')}else if("undefined"!=typeof importScripts){var o="";try{throw new Error("_")}catch(n){n.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/,function(e,t){o=t.replace(/\/[^\/]*$/,"/")})}importScripts(o+"system-polyfills.js"),e()}else e()}(); 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "gulpfile.js", 6 | "directories": { 7 | "doc": "docs", 8 | "test": "test" 9 | }, 10 | "scripts": { 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "author": "", 14 | "license": "ISC", 15 | "dependencies": { 16 | "angular2": "2.0.0-beta.6", 17 | "systemjs": "0.19.17", 18 | "es6-promise": "^3.0.2", 19 | "es6-shim": "^0.33.3", 20 | "reflect-metadata": "0.1.2", 21 | "rxjs": "5.0.0-beta.0", 22 | "zone.js": "0.5.14" 23 | }, 24 | "devDependencies": { 25 | 26 | } 27 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": false, 4 | "emitDecoratorMetadata": true, 5 | "experimentalDecorators": true, 6 | "module": "commonjs", 7 | "noImplicitAny": false, 8 | "noLib": false, 9 | "removeComments": true, 10 | "target": "es5" 11 | }, 12 | "version": "1.6.2" 13 | } --------------------------------------------------------------------------------