@angular/router 5.2.7 → 5.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v5.2.7
2
+ * @license Angular v5.2.8
3
3
  * (c) 2010-2018 Google, Inc. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -10,7 +10,7 @@
10
10
  }(this, (function (exports,_angular_common,_angular_common_testing,_angular_core,_angular_router) { 'use strict';
11
11
 
12
12
  /**
13
- * @license Angular v5.2.7
13
+ * @license Angular v5.2.8
14
14
  * (c) 2010-2018 Google, Inc. https://angular.io/
15
15
  * License: MIT
16
16
  */
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v5.2.7
2
+ * @license Angular v5.2.8
3
3
  * (c) 2010-2018 Google, Inc. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
  !function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("@angular/common"),require("@angular/common/testing"),require("@angular/core"),require("@angular/router")):"function"==typeof define&&define.amd?define("@angular/router/testing",["exports","@angular/common","@angular/common/testing","@angular/core","@angular/router"],factory):factory((global.ng=global.ng||{},global.ng.router=global.ng.router||{},global.ng.router.testing={}),global.ng.common,global.ng.common.testing,global.ng.core,global.ng.router)}(this,function(exports,_angular_common,_angular_common_testing,_angular_core,_angular_router){"use strict";function isUrlHandlingStrategy(opts){return"shouldProcessUrl"in opts}function setupTestingRouter(urlSerializer,contexts,location,loader,compiler,injector,routes,opts,urlHandlingStrategy){var router=new _angular_router.Router(null,urlSerializer,contexts,location,injector,loader,compiler,_angular_router.ɵflatten(routes));return opts&&(isUrlHandlingStrategy(opts)?router.urlHandlingStrategy=opts:opts.paramsInheritanceStrategy&&(router.paramsInheritanceStrategy=opts.paramsInheritanceStrategy)),urlHandlingStrategy&&(router.urlHandlingStrategy=urlHandlingStrategy),router}/**
7
- * @license Angular v5.2.7
7
+ * @license Angular v5.2.8
8
8
  * (c) 2010-2018 Google, Inc. https://angular.io/
9
9
  * License: MIT
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["router-testing.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","router","testing","common","core","this","_angular_common","_angular_common_testing","_angular_core","_angular_router","isUrlHandlingStrategy","opts","setupTestingRouter","urlSerializer","contexts","location","loader","compiler","injector","routes","urlHandlingStrategy","Router","ɵflatten","paramsInheritanceStrategy","SpyNgModuleFactoryLoader","_stubbedModules","Object","defineProperty","prototype","get","set","modules","res","_i","_a","keys","length","t","compileModuleAsync","enumerable","configurable","load","path","Promise","reject","Error","decorators","type","Injectable","ctorParameters","Compiler","RouterTestingModule","withRoutes","config","ngModule","providers","provideRoutes","provide","ROUTER_CONFIGURATION","useValue","NgModule","args","RouterModule","ɵROUTER_PROVIDERS","Location","useClass","SpyLocation","LocationStrategy","MockLocationStrategy","NgModuleFactoryLoader","useFactory","deps","UrlSerializer","ChildrenOutletContexts","Injector","ROUTES","UrlHandlingStrategy","Optional","PreloadingStrategy","useExisting","NoPreloading","value"],"mappings":"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","file":"router-testing.umd.min.js","sourcesContent":["/**\n * @license Angular v5.2.7\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/common/testing'), require('@angular/core'), require('@angular/router')) :\n\ttypeof define === 'function' && define.amd ? define('@angular/router/testing', ['exports', '@angular/common', '@angular/common/testing', '@angular/core', '@angular/router'], factory) :\n\t(factory((global.ng = global.ng || {}, global.ng.router = global.ng.router || {}, global.ng.router.testing = {}),global.ng.common,global.ng.common.testing,global.ng.core,global.ng.router));\n}(this, (function (exports,_angular_common,_angular_common_testing,_angular_core,_angular_router) { 'use strict';\n\n/**\n * @license Angular v5.2.7\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * \\@whatItDoes Allows to simulate the loading of ng modules in tests.\n *\n * \\@howToUse\n *\n * ```\n * const loader = TestBed.get(NgModuleFactoryLoader);\n *\n * \\@Component({template: 'lazy-loaded'})\n * class LazyLoadedComponent {}\n * \\@NgModule({\n * declarations: [LazyLoadedComponent],\n * imports: [RouterModule.forChild([{path: 'loaded', component: LazyLoadedComponent}])]\n * })\n *\n * class LoadedModule {}\n *\n * // sets up stubbedModules\n * loader.stubbedModules = {lazyModule: LoadedModule};\n *\n * router.resetConfig([\n * {path: 'lazy', loadChildren: 'lazyModule'},\n * ]);\n *\n * router.navigateByUrl('/lazy/loaded');\n * ```\n *\n * \\@stable\n */\nvar SpyNgModuleFactoryLoader = /** @class */ (function () {\n function SpyNgModuleFactoryLoader(compiler) {\n this.compiler = compiler;\n /**\n * \\@docsNotRequired\n */\n this._stubbedModules = {};\n }\n Object.defineProperty(SpyNgModuleFactoryLoader.prototype, \"stubbedModules\", {\n /**\n * @docsNotRequired\n */\n get: /**\n * \\@docsNotRequired\n * @return {?}\n */\n function () { return this._stubbedModules; },\n /**\n * @docsNotRequired\n */\n set: /**\n * \\@docsNotRequired\n * @param {?} modules\n * @return {?}\n */\n function (modules) {\n var /** @type {?} */ res = {};\n for (var _i = 0, _a = Object.keys(modules); _i < _a.length; _i++) {\n var t = _a[_i];\n res[t] = this.compiler.compileModuleAsync(modules[t]);\n }\n this._stubbedModules = res;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} path\n * @return {?}\n */\n SpyNgModuleFactoryLoader.prototype.load = /**\n * @param {?} path\n * @return {?}\n */\n function (path) {\n if (this._stubbedModules[path]) {\n return this._stubbedModules[path];\n }\n else {\n return /** @type {?} */ (Promise.reject(new Error(\"Cannot find module \" + path)));\n }\n };\n SpyNgModuleFactoryLoader.decorators = [\n { type: _angular_core.Injectable },\n ];\n /** @nocollapse */\n SpyNgModuleFactoryLoader.ctorParameters = function () { return [\n { type: _angular_core.Compiler, },\n ]; };\n return SpyNgModuleFactoryLoader;\n}());\n/**\n * @param {?} opts\n * @return {?}\n */\nfunction isUrlHandlingStrategy(opts) {\n // This property check is needed because UrlHandlingStrategy is an interface and doesn't exist at\n // runtime.\n return 'shouldProcessUrl' in opts;\n}\n/**\n * Router setup factory function used for testing.\n *\n * \\@stable\n * @param {?} urlSerializer\n * @param {?} contexts\n * @param {?} location\n * @param {?} loader\n * @param {?} compiler\n * @param {?} injector\n * @param {?} routes\n * @param {?=} opts\n * @param {?=} urlHandlingStrategy\n * @return {?}\n */\nfunction setupTestingRouter(urlSerializer, contexts, location, loader, compiler, injector, routes, opts, urlHandlingStrategy) {\n var /** @type {?} */ router = new _angular_router.Router(/** @type {?} */ ((null)), urlSerializer, contexts, location, injector, loader, compiler, _angular_router.ɵflatten(routes));\n // Handle deprecated argument ordering.\n if (opts) {\n if (isUrlHandlingStrategy(opts)) {\n router.urlHandlingStrategy = opts;\n }\n else if (opts.paramsInheritanceStrategy) {\n router.paramsInheritanceStrategy = opts.paramsInheritanceStrategy;\n }\n }\n if (urlHandlingStrategy) {\n router.urlHandlingStrategy = urlHandlingStrategy;\n }\n return router;\n}\n/**\n * \\@whatItDoes Sets up the router to be used for testing.\n *\n * \\@howToUse\n *\n * ```\n * beforeEach(() => {\n * TestBed.configureTestModule({\n * imports: [\n * RouterTestingModule.withRoutes(\n * [{path: '', component: BlankCmp}, {path: 'simple', component: SimpleCmp}]\n * )\n * ]\n * });\n * });\n * ```\n *\n * \\@description\n *\n * The modules sets up the router to be used for testing.\n * It provides spy implementations of {\\@link Location}, {\\@link LocationStrategy}, and {\\@link\n * NgModuleFactoryLoader}.\n *\n * \\@stable\n */\nvar RouterTestingModule = /** @class */ (function () {\n function RouterTestingModule() {\n }\n /**\n * @param {?} routes\n * @param {?=} config\n * @return {?}\n */\n RouterTestingModule.withRoutes = /**\n * @param {?} routes\n * @param {?=} config\n * @return {?}\n */\n function (routes, config) {\n return {\n ngModule: RouterTestingModule,\n providers: [\n _angular_router.provideRoutes(routes),\n { provide: _angular_router.ROUTER_CONFIGURATION, useValue: config ? config : {} },\n ]\n };\n };\n RouterTestingModule.decorators = [\n { type: _angular_core.NgModule, args: [{\n exports: [_angular_router.RouterModule],\n providers: [\n _angular_router.ɵROUTER_PROVIDERS, { provide: _angular_common.Location, useClass: _angular_common_testing.SpyLocation },\n { provide: _angular_common.LocationStrategy, useClass: _angular_common_testing.MockLocationStrategy },\n { provide: _angular_core.NgModuleFactoryLoader, useClass: SpyNgModuleFactoryLoader }, {\n provide: _angular_router.Router,\n useFactory: setupTestingRouter,\n deps: [\n _angular_router.UrlSerializer, _angular_router.ChildrenOutletContexts, _angular_common.Location, _angular_core.NgModuleFactoryLoader, _angular_core.Compiler, _angular_core.Injector,\n _angular_router.ROUTES, _angular_router.ROUTER_CONFIGURATION, [_angular_router.UrlHandlingStrategy, new _angular_core.Optional()]\n ]\n },\n { provide: _angular_router.PreloadingStrategy, useExisting: _angular_router.NoPreloading }, _angular_router.provideRoutes([])\n ]\n },] },\n ];\n /** @nocollapse */\n RouterTestingModule.ctorParameters = function () { return []; };\n return RouterTestingModule;\n}());\n\nexports.SpyNgModuleFactoryLoader = SpyNgModuleFactoryLoader;\nexports.setupTestingRouter = setupTestingRouter;\nexports.RouterTestingModule = RouterTestingModule;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=router-testing.umd.js.map\n"]}
1
+ {"version":3,"sources":["router-testing.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","router","testing","common","core","this","_angular_common","_angular_common_testing","_angular_core","_angular_router","isUrlHandlingStrategy","opts","setupTestingRouter","urlSerializer","contexts","location","loader","compiler","injector","routes","urlHandlingStrategy","Router","ɵflatten","paramsInheritanceStrategy","SpyNgModuleFactoryLoader","_stubbedModules","Object","defineProperty","prototype","get","set","modules","res","_i","_a","keys","length","t","compileModuleAsync","enumerable","configurable","load","path","Promise","reject","Error","decorators","type","Injectable","ctorParameters","Compiler","RouterTestingModule","withRoutes","config","ngModule","providers","provideRoutes","provide","ROUTER_CONFIGURATION","useValue","NgModule","args","RouterModule","ɵROUTER_PROVIDERS","Location","useClass","SpyLocation","LocationStrategy","MockLocationStrategy","NgModuleFactoryLoader","useFactory","deps","UrlSerializer","ChildrenOutletContexts","Injector","ROUTES","UrlHandlingStrategy","Optional","PreloadingStrategy","useExisting","NoPreloading","value"],"mappings":"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","file":"router-testing.umd.min.js","sourcesContent":["/**\n * @license Angular v5.2.8\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/common/testing'), require('@angular/core'), require('@angular/router')) :\n\ttypeof define === 'function' && define.amd ? define('@angular/router/testing', ['exports', '@angular/common', '@angular/common/testing', '@angular/core', '@angular/router'], factory) :\n\t(factory((global.ng = global.ng || {}, global.ng.router = global.ng.router || {}, global.ng.router.testing = {}),global.ng.common,global.ng.common.testing,global.ng.core,global.ng.router));\n}(this, (function (exports,_angular_common,_angular_common_testing,_angular_core,_angular_router) { 'use strict';\n\n/**\n * @license Angular v5.2.8\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * \\@whatItDoes Allows to simulate the loading of ng modules in tests.\n *\n * \\@howToUse\n *\n * ```\n * const loader = TestBed.get(NgModuleFactoryLoader);\n *\n * \\@Component({template: 'lazy-loaded'})\n * class LazyLoadedComponent {}\n * \\@NgModule({\n * declarations: [LazyLoadedComponent],\n * imports: [RouterModule.forChild([{path: 'loaded', component: LazyLoadedComponent}])]\n * })\n *\n * class LoadedModule {}\n *\n * // sets up stubbedModules\n * loader.stubbedModules = {lazyModule: LoadedModule};\n *\n * router.resetConfig([\n * {path: 'lazy', loadChildren: 'lazyModule'},\n * ]);\n *\n * router.navigateByUrl('/lazy/loaded');\n * ```\n *\n * \\@stable\n */\nvar SpyNgModuleFactoryLoader = /** @class */ (function () {\n function SpyNgModuleFactoryLoader(compiler) {\n this.compiler = compiler;\n /**\n * \\@docsNotRequired\n */\n this._stubbedModules = {};\n }\n Object.defineProperty(SpyNgModuleFactoryLoader.prototype, \"stubbedModules\", {\n /**\n * @docsNotRequired\n */\n get: /**\n * \\@docsNotRequired\n * @return {?}\n */\n function () { return this._stubbedModules; },\n /**\n * @docsNotRequired\n */\n set: /**\n * \\@docsNotRequired\n * @param {?} modules\n * @return {?}\n */\n function (modules) {\n var /** @type {?} */ res = {};\n for (var _i = 0, _a = Object.keys(modules); _i < _a.length; _i++) {\n var t = _a[_i];\n res[t] = this.compiler.compileModuleAsync(modules[t]);\n }\n this._stubbedModules = res;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} path\n * @return {?}\n */\n SpyNgModuleFactoryLoader.prototype.load = /**\n * @param {?} path\n * @return {?}\n */\n function (path) {\n if (this._stubbedModules[path]) {\n return this._stubbedModules[path];\n }\n else {\n return /** @type {?} */ (Promise.reject(new Error(\"Cannot find module \" + path)));\n }\n };\n SpyNgModuleFactoryLoader.decorators = [\n { type: _angular_core.Injectable },\n ];\n /** @nocollapse */\n SpyNgModuleFactoryLoader.ctorParameters = function () { return [\n { type: _angular_core.Compiler, },\n ]; };\n return SpyNgModuleFactoryLoader;\n}());\n/**\n * @param {?} opts\n * @return {?}\n */\nfunction isUrlHandlingStrategy(opts) {\n // This property check is needed because UrlHandlingStrategy is an interface and doesn't exist at\n // runtime.\n return 'shouldProcessUrl' in opts;\n}\n/**\n * Router setup factory function used for testing.\n *\n * \\@stable\n * @param {?} urlSerializer\n * @param {?} contexts\n * @param {?} location\n * @param {?} loader\n * @param {?} compiler\n * @param {?} injector\n * @param {?} routes\n * @param {?=} opts\n * @param {?=} urlHandlingStrategy\n * @return {?}\n */\nfunction setupTestingRouter(urlSerializer, contexts, location, loader, compiler, injector, routes, opts, urlHandlingStrategy) {\n var /** @type {?} */ router = new _angular_router.Router(/** @type {?} */ ((null)), urlSerializer, contexts, location, injector, loader, compiler, _angular_router.ɵflatten(routes));\n // Handle deprecated argument ordering.\n if (opts) {\n if (isUrlHandlingStrategy(opts)) {\n router.urlHandlingStrategy = opts;\n }\n else if (opts.paramsInheritanceStrategy) {\n router.paramsInheritanceStrategy = opts.paramsInheritanceStrategy;\n }\n }\n if (urlHandlingStrategy) {\n router.urlHandlingStrategy = urlHandlingStrategy;\n }\n return router;\n}\n/**\n * \\@whatItDoes Sets up the router to be used for testing.\n *\n * \\@howToUse\n *\n * ```\n * beforeEach(() => {\n * TestBed.configureTestModule({\n * imports: [\n * RouterTestingModule.withRoutes(\n * [{path: '', component: BlankCmp}, {path: 'simple', component: SimpleCmp}]\n * )\n * ]\n * });\n * });\n * ```\n *\n * \\@description\n *\n * The modules sets up the router to be used for testing.\n * It provides spy implementations of {\\@link Location}, {\\@link LocationStrategy}, and {\\@link\n * NgModuleFactoryLoader}.\n *\n * \\@stable\n */\nvar RouterTestingModule = /** @class */ (function () {\n function RouterTestingModule() {\n }\n /**\n * @param {?} routes\n * @param {?=} config\n * @return {?}\n */\n RouterTestingModule.withRoutes = /**\n * @param {?} routes\n * @param {?=} config\n * @return {?}\n */\n function (routes, config) {\n return {\n ngModule: RouterTestingModule,\n providers: [\n _angular_router.provideRoutes(routes),\n { provide: _angular_router.ROUTER_CONFIGURATION, useValue: config ? config : {} },\n ]\n };\n };\n RouterTestingModule.decorators = [\n { type: _angular_core.NgModule, args: [{\n exports: [_angular_router.RouterModule],\n providers: [\n _angular_router.ɵROUTER_PROVIDERS, { provide: _angular_common.Location, useClass: _angular_common_testing.SpyLocation },\n { provide: _angular_common.LocationStrategy, useClass: _angular_common_testing.MockLocationStrategy },\n { provide: _angular_core.NgModuleFactoryLoader, useClass: SpyNgModuleFactoryLoader }, {\n provide: _angular_router.Router,\n useFactory: setupTestingRouter,\n deps: [\n _angular_router.UrlSerializer, _angular_router.ChildrenOutletContexts, _angular_common.Location, _angular_core.NgModuleFactoryLoader, _angular_core.Compiler, _angular_core.Injector,\n _angular_router.ROUTES, _angular_router.ROUTER_CONFIGURATION, [_angular_router.UrlHandlingStrategy, new _angular_core.Optional()]\n ]\n },\n { provide: _angular_router.PreloadingStrategy, useExisting: _angular_router.NoPreloading }, _angular_router.provideRoutes([])\n ]\n },] },\n ];\n /** @nocollapse */\n RouterTestingModule.ctorParameters = function () { return []; };\n return RouterTestingModule;\n}());\n\nexports.SpyNgModuleFactoryLoader = SpyNgModuleFactoryLoader;\nexports.setupTestingRouter = setupTestingRouter;\nexports.RouterTestingModule = RouterTestingModule;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=router-testing.umd.js.map\n"]}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v5.2.7
2
+ * @license Angular v5.2.8
3
3
  * (c) 2010-2018 Google, Inc. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -10,7 +10,7 @@
10
10
  }(this, (function (exports,_angular_core,_angular_router,_angular_upgrade_static) { 'use strict';
11
11
 
12
12
  /**
13
- * @license Angular v5.2.7
13
+ * @license Angular v5.2.8
14
14
  * (c) 2010-2018 Google, Inc. https://angular.io/
15
15
  * License: MIT
16
16
  */
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v5.2.7
2
+ * @license Angular v5.2.8
3
3
  * (c) 2010-2018 Google, Inc. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
  !function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("@angular/core"),require("@angular/router"),require("@angular/upgrade/static")):"function"==typeof define&&define.amd?define("@angular/router/upgrade",["exports","@angular/core","@angular/router","@angular/upgrade/static"],factory):factory((global.ng=global.ng||{},global.ng.router=global.ng.router||{},global.ng.router.upgrade={}),global.ng.core,global.ng.router,global.ng.upgrade.static)}(this,function(exports,_angular_core,_angular_router,_angular_upgrade_static){"use strict";function locationSyncBootstrapListener(ngUpgrade){return function(){setUpLocationSync(ngUpgrade)}}function setUpLocationSync(ngUpgrade){if(!ngUpgrade.$injector)throw new Error("\n RouterUpgradeInitializer can be used only after UpgradeModule.bootstrap has been called.\n Remove RouterUpgradeInitializer and call setUpLocationSync after UpgradeModule.bootstrap.\n ");var router=ngUpgrade.injector.get(_angular_router.Router),url=document.createElement("a");ngUpgrade.$injector.get("$rootScope").$on("$locationChangeStart",function(_,next,__){url.href=next,router.navigateByUrl(url.pathname+url.search+url.hash)})}/**
7
- * @license Angular v5.2.7
7
+ * @license Angular v5.2.8
8
8
  * (c) 2010-2018 Google, Inc. https://angular.io/
9
9
  * License: MIT
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["router-upgrade.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","router","upgrade","core","static","this","_angular_core","_angular_router","_angular_upgrade_static","locationSyncBootstrapListener","ngUpgrade","setUpLocationSync","$injector","Error","injector","get","Router","url","document","createElement","$on","_","next","__","href","navigateByUrl","pathname","search","hash","RouterUpgradeInitializer","provide","APP_BOOTSTRAP_LISTENER","multi","useFactory","deps","UpgradeModule","Object","defineProperty","value"],"mappings":";;;;;CAKC,SAAUA,OAAQC,SACC,gBAAZC,UAA0C,mBAAXC,QAAyBF,QAAQC,QAASE,QAAQ,iBAAkBA,QAAQ,mBAAoBA,QAAQ,4BAC5H,kBAAXC,SAAyBA,OAAOC,IAAMD,OAAO,2BAA4B,UAAW,gBAAiB,kBAAmB,2BAA4BJ,SAC1JA,SAASD,OAAOO,GAAKP,OAAOO,OAAUP,OAAOO,GAAGC,OAASR,OAAOO,GAAGC,WAAcR,OAAOO,GAAGC,OAAOC,YAAcT,OAAOO,GAAGG,KAAKV,OAAOO,GAAGC,OAAOR,OAAOO,GAAGE,QAAQE,SAClKC,KAAM,SAAWV,QAAQW,cAAcC,gBAAgBC,yBAA2B,YAoDpF,SAASC,+BAA8BC,WACnC,MAAO,YAAcC,kBAAkBD,YAY3C,QAASC,mBAAkBD,WACvB,IAAKA,UAAUE,UACX,KAAM,IAAIC,OAAM,gNAEpB,IAAqBZ,QAASS,UAAUI,SAASC,IAAIR,gBAAgBS,QAChDC,IAAMC,SAASC,cAAc,IAClDT,WAAUE,UAAUG,IAAI,cACnBK,IAAI,uBAAwB,SAAUC,EAAGC,KAAMC,IAChDN,IAAIO,KAAOF,KACXrB,OAAOwB,cAAcR,IAAIS,SAAWT,IAAIU,OAASV,IAAIW;;;;;;;;;;;;AAjC7D,GAAIC,2BACAC,QAASxB,cAAcyB,uBACvBC,OAAO,EACPC,WAAYxB,8BACZyB,MAAO1B,wBAAwB2B,eAiCnCxC,SAAQkC,yBAA2BA,yBACnClC,QAAQc,8BAAgCA,8BACxCd,QAAQgB,kBAAoBA,kBAE5ByB,OAAOC,eAAe1C,QAAS,cAAgB2C,OAAO","file":"router-upgrade.umd.min.js","sourcesContent":["/**\n * @license Angular v5.2.7\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/router'), require('@angular/upgrade/static')) :\n\ttypeof define === 'function' && define.amd ? define('@angular/router/upgrade', ['exports', '@angular/core', '@angular/router', '@angular/upgrade/static'], factory) :\n\t(factory((global.ng = global.ng || {}, global.ng.router = global.ng.router || {}, global.ng.router.upgrade = {}),global.ng.core,global.ng.router,global.ng.upgrade.static));\n}(this, (function (exports,_angular_core,_angular_router,_angular_upgrade_static) { 'use strict';\n\n/**\n * @license Angular v5.2.7\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * \\@whatItDoes Creates an initializer that in addition to setting up the Angular\n * router sets up the ngRoute integration.\n *\n * \\@howToUse\n *\n * ```\n * \\@NgModule({\n * imports: [\n * RouterModule.forRoot(SOME_ROUTES),\n * UpgradeModule\n * ],\n * providers: [\n * RouterUpgradeInitializer\n * ]\n * })\n * export class AppModule {\n * ngDoBootstrap() {}\n * }\n * ```\n *\n * \\@experimental\n */\nvar RouterUpgradeInitializer = {\n provide: _angular_core.APP_BOOTSTRAP_LISTENER,\n multi: true,\n useFactory: locationSyncBootstrapListener,\n deps: [_angular_upgrade_static.UpgradeModule]\n};\n/**\n * \\@internal\n * @param {?} ngUpgrade\n * @return {?}\n */\nfunction locationSyncBootstrapListener(ngUpgrade) {\n return function () { setUpLocationSync(ngUpgrade); };\n}\n/**\n * \\@whatItDoes Sets up a location synchronization.\n *\n * History.pushState does not fire onPopState, so the Angular location\n * doesn't detect it. The workaround is to attach a location change listener\n *\n * \\@experimental\n * @param {?} ngUpgrade\n * @return {?}\n */\nfunction setUpLocationSync(ngUpgrade) {\n if (!ngUpgrade.$injector) {\n throw new Error(\"\\n RouterUpgradeInitializer can be used only after UpgradeModule.bootstrap has been called.\\n Remove RouterUpgradeInitializer and call setUpLocationSync after UpgradeModule.bootstrap.\\n \");\n }\n var /** @type {?} */ router = ngUpgrade.injector.get(_angular_router.Router);\n var /** @type {?} */ url = document.createElement('a');\n ngUpgrade.$injector.get('$rootScope')\n .$on('$locationChangeStart', function (_, next, __) {\n url.href = next;\n router.navigateByUrl(url.pathname + url.search + url.hash);\n });\n}\n\nexports.RouterUpgradeInitializer = RouterUpgradeInitializer;\nexports.locationSyncBootstrapListener = locationSyncBootstrapListener;\nexports.setUpLocationSync = setUpLocationSync;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=router-upgrade.umd.js.map\n"]}
1
+ {"version":3,"sources":["router-upgrade.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","router","upgrade","core","static","this","_angular_core","_angular_router","_angular_upgrade_static","locationSyncBootstrapListener","ngUpgrade","setUpLocationSync","$injector","Error","injector","get","Router","url","document","createElement","$on","_","next","__","href","navigateByUrl","pathname","search","hash","RouterUpgradeInitializer","provide","APP_BOOTSTRAP_LISTENER","multi","useFactory","deps","UpgradeModule","Object","defineProperty","value"],"mappings":";;;;;CAKC,SAAUA,OAAQC,SACC,gBAAZC,UAA0C,mBAAXC,QAAyBF,QAAQC,QAASE,QAAQ,iBAAkBA,QAAQ,mBAAoBA,QAAQ,4BAC5H,kBAAXC,SAAyBA,OAAOC,IAAMD,OAAO,2BAA4B,UAAW,gBAAiB,kBAAmB,2BAA4BJ,SAC1JA,SAASD,OAAOO,GAAKP,OAAOO,OAAUP,OAAOO,GAAGC,OAASR,OAAOO,GAAGC,WAAcR,OAAOO,GAAGC,OAAOC,YAAcT,OAAOO,GAAGG,KAAKV,OAAOO,GAAGC,OAAOR,OAAOO,GAAGE,QAAQE,SAClKC,KAAM,SAAWV,QAAQW,cAAcC,gBAAgBC,yBAA2B,YAoDpF,SAASC,+BAA8BC,WACnC,MAAO,YAAcC,kBAAkBD,YAY3C,QAASC,mBAAkBD,WACvB,IAAKA,UAAUE,UACX,KAAM,IAAIC,OAAM,gNAEpB,IAAqBZ,QAASS,UAAUI,SAASC,IAAIR,gBAAgBS,QAChDC,IAAMC,SAASC,cAAc,IAClDT,WAAUE,UAAUG,IAAI,cACnBK,IAAI,uBAAwB,SAAUC,EAAGC,KAAMC,IAChDN,IAAIO,KAAOF,KACXrB,OAAOwB,cAAcR,IAAIS,SAAWT,IAAIU,OAASV,IAAIW;;;;;;;;;;;;AAjC7D,GAAIC,2BACAC,QAASxB,cAAcyB,uBACvBC,OAAO,EACPC,WAAYxB,8BACZyB,MAAO1B,wBAAwB2B,eAiCnCxC,SAAQkC,yBAA2BA,yBACnClC,QAAQc,8BAAgCA,8BACxCd,QAAQgB,kBAAoBA,kBAE5ByB,OAAOC,eAAe1C,QAAS,cAAgB2C,OAAO","file":"router-upgrade.umd.min.js","sourcesContent":["/**\n * @license Angular v5.2.8\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/router'), require('@angular/upgrade/static')) :\n\ttypeof define === 'function' && define.amd ? define('@angular/router/upgrade', ['exports', '@angular/core', '@angular/router', '@angular/upgrade/static'], factory) :\n\t(factory((global.ng = global.ng || {}, global.ng.router = global.ng.router || {}, global.ng.router.upgrade = {}),global.ng.core,global.ng.router,global.ng.upgrade.static));\n}(this, (function (exports,_angular_core,_angular_router,_angular_upgrade_static) { 'use strict';\n\n/**\n * @license Angular v5.2.8\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * \\@whatItDoes Creates an initializer that in addition to setting up the Angular\n * router sets up the ngRoute integration.\n *\n * \\@howToUse\n *\n * ```\n * \\@NgModule({\n * imports: [\n * RouterModule.forRoot(SOME_ROUTES),\n * UpgradeModule\n * ],\n * providers: [\n * RouterUpgradeInitializer\n * ]\n * })\n * export class AppModule {\n * ngDoBootstrap() {}\n * }\n * ```\n *\n * \\@experimental\n */\nvar RouterUpgradeInitializer = {\n provide: _angular_core.APP_BOOTSTRAP_LISTENER,\n multi: true,\n useFactory: locationSyncBootstrapListener,\n deps: [_angular_upgrade_static.UpgradeModule]\n};\n/**\n * \\@internal\n * @param {?} ngUpgrade\n * @return {?}\n */\nfunction locationSyncBootstrapListener(ngUpgrade) {\n return function () { setUpLocationSync(ngUpgrade); };\n}\n/**\n * \\@whatItDoes Sets up a location synchronization.\n *\n * History.pushState does not fire onPopState, so the Angular location\n * doesn't detect it. The workaround is to attach a location change listener\n *\n * \\@experimental\n * @param {?} ngUpgrade\n * @return {?}\n */\nfunction setUpLocationSync(ngUpgrade) {\n if (!ngUpgrade.$injector) {\n throw new Error(\"\\n RouterUpgradeInitializer can be used only after UpgradeModule.bootstrap has been called.\\n Remove RouterUpgradeInitializer and call setUpLocationSync after UpgradeModule.bootstrap.\\n \");\n }\n var /** @type {?} */ router = ngUpgrade.injector.get(_angular_router.Router);\n var /** @type {?} */ url = document.createElement('a');\n ngUpgrade.$injector.get('$rootScope')\n .$on('$locationChangeStart', function (_, next, __) {\n url.href = next;\n router.navigateByUrl(url.pathname + url.search + url.hash);\n });\n}\n\nexports.RouterUpgradeInitializer = RouterUpgradeInitializer;\nexports.locationSyncBootstrapListener = locationSyncBootstrapListener;\nexports.setUpLocationSync = setUpLocationSync;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=router-upgrade.umd.js.map\n"]}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v5.2.7
2
+ * @license Angular v5.2.8
3
3
  * (c) 2010-2018 Google, Inc. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -44,7 +44,7 @@ var __assign = Object.assign || function __assign(t) {
44
44
  };
45
45
 
46
46
  /**
47
- * @license Angular v5.2.7
47
+ * @license Angular v5.2.8
48
48
  * (c) 2010-2018 Google, Inc. https://angular.io/
49
49
  * License: MIT
50
50
  */
@@ -1247,7 +1247,7 @@ var DefaultUrlSerializer = /** @class */ (function () {
1247
1247
  function (tree) {
1248
1248
  var /** @type {?} */ segment = "/" + serializeSegment(tree.root, true);
1249
1249
  var /** @type {?} */ query = serializeQueryParams(tree.queryParams);
1250
- var /** @type {?} */ fragment = typeof tree.fragment === "string" ? "#" + encodeURI((/** @type {?} */ ((tree.fragment)))) : '';
1250
+ var /** @type {?} */ fragment = typeof tree.fragment === "string" ? "#" + encodeUriQuery((/** @type {?} */ ((tree.fragment)))) : '';
1251
1251
  return "" + segment + query + fragment;
1252
1252
  };
1253
1253
  return DefaultUrlSerializer;
@@ -1292,9 +1292,10 @@ function serializeSegment(segment, root) {
1292
1292
  }
1293
1293
  }
1294
1294
  /**
1295
- * This method is intended for encoding *key* or *value* parts of query component. We need a custom
1296
- * method because encodeURIComponent is too aggressive and encodes stuff that doesn't have to be
1297
- * encoded per http://tools.ietf.org/html/rfc3986:
1295
+ * Encodes a URI string with the default encoding. This function will only ever be called from
1296
+ * `encodeUriQuery` or `encodeUriSegment` as it's the base set of encodings to be used. We need
1297
+ * a custom encoding because encodeURIComponent is too aggressive and encodes stuff that doesn't
1298
+ * have to be encoded per http://tools.ietf.org/html/rfc3986:
1298
1299
  * query = *( pchar / "/" / "?" )
1299
1300
  * pchar = unreserved / pct-encoded / sub-delims / ":" / "\@"
1300
1301
  * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
@@ -1304,13 +1305,35 @@ function serializeSegment(segment, root) {
1304
1305
  * @param {?} s
1305
1306
  * @return {?}
1306
1307
  */
1307
- function encode(s) {
1308
+ function encodeUriString(s) {
1308
1309
  return encodeURIComponent(s)
1309
1310
  .replace(/%40/g, '@')
1310
1311
  .replace(/%3A/gi, ':')
1311
1312
  .replace(/%24/g, '$')
1312
- .replace(/%2C/gi, ',')
1313
- .replace(/%3B/gi, ';');
1313
+ .replace(/%2C/gi, ',');
1314
+ }
1315
+ /**
1316
+ * This function should be used to encode both keys and values in a query string key/value or the
1317
+ * URL fragment. In the following URL, you need to call encodeUriQuery on "k", "v" and "f":
1318
+ *
1319
+ * http://www.site.org/html;mk=mv?k=v#f
1320
+ * @param {?} s
1321
+ * @return {?}
1322
+ */
1323
+ function encodeUriQuery(s) {
1324
+ return encodeUriString(s).replace(/%3B/gi, ';');
1325
+ }
1326
+ /**
1327
+ * This function should be run on any URI segment as well as the key and value in a key/value
1328
+ * pair for matrix params. In the following URL, you need to call encodeUriSegment on "html",
1329
+ * "mk", and "mv":
1330
+ *
1331
+ * http://www.site.org/html;mk=mv?k=v#f
1332
+ * @param {?} s
1333
+ * @return {?}
1334
+ */
1335
+ function encodeUriSegment(s) {
1336
+ return encodeUriString(s).replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/%26/gi, '&');
1314
1337
  }
1315
1338
  /**
1316
1339
  * @param {?} s
@@ -1319,19 +1342,28 @@ function encode(s) {
1319
1342
  function decode(s) {
1320
1343
  return decodeURIComponent(s);
1321
1344
  }
1345
+ /**
1346
+ * @param {?} s
1347
+ * @return {?}
1348
+ */
1349
+ function decodeQuery(s) {
1350
+ return decode(s.replace(/\+/g, '%20'));
1351
+ }
1322
1352
  /**
1323
1353
  * @param {?} path
1324
1354
  * @return {?}
1325
1355
  */
1326
1356
  function serializePath(path) {
1327
- return "" + encode(path.path) + serializeParams(path.parameters);
1357
+ return "" + encodeUriSegment(path.path) + serializeMatrixParams(path.parameters);
1328
1358
  }
1329
1359
  /**
1330
1360
  * @param {?} params
1331
1361
  * @return {?}
1332
1362
  */
1333
- function serializeParams(params) {
1334
- return Object.keys(params).map(function (key) { return ";" + encode(key) + "=" + encode(params[key]); }).join('');
1363
+ function serializeMatrixParams(params) {
1364
+ return Object.keys(params)
1365
+ .map(function (key) { return ";" + encodeUriSegment(key) + "=" + encodeUriSegment(params[key]); })
1366
+ .join('');
1335
1367
  }
1336
1368
  /**
1337
1369
  * @param {?} params
@@ -1340,8 +1372,9 @@ function serializeParams(params) {
1340
1372
  function serializeQueryParams(params) {
1341
1373
  var /** @type {?} */ strParams = Object.keys(params).map(function (name) {
1342
1374
  var /** @type {?} */ value = params[name];
1343
- return Array.isArray(value) ? value.map(function (v) { return encode(name) + "=" + encode(v); }).join('&') :
1344
- encode(name) + "=" + encode(value);
1375
+ return Array.isArray(value) ?
1376
+ value.map(function (v) { return encodeUriQuery(name) + "=" + encodeUriQuery(v); }).join('&') :
1377
+ encodeUriQuery(name) + "=" + encodeUriQuery(value);
1345
1378
  });
1346
1379
  return strParams.length ? "?" + strParams.join("&") : '';
1347
1380
  }
@@ -1413,7 +1446,7 @@ var UrlParser = /** @class */ (function () {
1413
1446
  * @return {?}
1414
1447
  */
1415
1448
  function () {
1416
- return this.consumeOptional('#') ? decodeURI(this.remaining) : null;
1449
+ return this.consumeOptional('#') ? decodeURIComponent(this.remaining) : null;
1417
1450
  };
1418
1451
  /**
1419
1452
  * @return {?}
@@ -1521,8 +1554,8 @@ var UrlParser = /** @class */ (function () {
1521
1554
  this.capture(value);
1522
1555
  }
1523
1556
  }
1524
- var /** @type {?} */ decodedKey = decode(key);
1525
- var /** @type {?} */ decodedVal = decode(value);
1557
+ var /** @type {?} */ decodedKey = decodeQuery(key);
1558
+ var /** @type {?} */ decodedVal = decodeQuery(value);
1526
1559
  if (params.hasOwnProperty(decodedKey)) {
1527
1560
  // Append to existing values
1528
1561
  var /** @type {?} */ currentVal = params[decodedKey];
@@ -7467,7 +7500,7 @@ function provideRouterInitializer() {
7467
7500
  /**
7468
7501
  * \@stable
7469
7502
  */
7470
- var VERSION = new _angular_core.Version('5.2.7');
7503
+ var VERSION = new _angular_core.Version('5.2.8');
7471
7504
 
7472
7505
  exports.RouterLink = RouterLink;
7473
7506
  exports.RouterLinkWithHref = RouterLinkWithHref;