UNPKG

71.4 kBSource Map (JSON)View Raw
1{"version":3,"sources":["packages/common/common-upgrade.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","common","upgrade","core","static","this","_static","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","PATH_MATCH","DOUBLE_SLASH_REGEX","IGNORE_URI_REGEXP","DEFAULT_PORTS","http:","https:","ftp:","$locationShim","$injector","location","platformLocation","urlCodec","locationStrategy","_this","initalizing","updateBrowser","$$absUrl","$$url","$$host","$$replace","$$path","$$search","$$hash","$$changeListeners","cachedState","lastBrowserUrl","lastCachedState","initialUrl","browserUrl","parsedUrl","parse","$$protocol","protocol","hostname","$$port","parseInt","port","$$parseLinkUrl","cacheState","$$state","browserState","isPromise","obj","then","$i","initialize","$rootScope","get","$rootElement","on","event","ctrlKey","metaKey","shiftKey","which","button","elm","target","nodeName","toLowerCase","parentNode","isAnchor","el","undefined","href","absHref","relHref","getAttribute","test","isDefaultPrevented","preventDefault","absUrl","$apply","onUrlChange","newUrl","newState","oldUrl","oldState","$$parse","defaultPrevented","$broadcast","state","setBrowserUrlWithFallback","$$notifyChangeListeners","url","resetBrowserUpdate","$$phase","$digest","$watch","oldUrl_1","oldState_1","currentReplace_1","urlOrStateChanged_1","areEqual","$evalAsync","replace","sameState","lastHistoryState","stripBaseUrl","getServerBase","replaceState","pushState","getState","deepEqual","a","b","Array","isArray","JSON","stringify","e","base","startsWith","substr","_a","getBaseHref","endsWith","parseAppUrl","Error","prefixed","charAt","match","path","pathname","substring","decodePath","decodeSearch","search","decodeHash","hash","onChange","fn","err","push","forEach","_b","__read","o","m","Symbol","iterator","r","ar","next","done","value","error","pathUrl","composeUrls","slice","rewrittenUrl","appUrl","normalize","exec","host","toString","paramValue","key","currentSearch","$locationShimProvider","ngUpgrade","$get","hashPrefix","prefix","html5Mode","mode","UrlCodec","AngularJSUrlCodec","encodePath","segments","split","encodeUriSegment","_stripIndexHtml","join","encodeSearch","parseKeyValue","toKeyValue","parts","_loop_1","arrayValue","encodeUriQuery","encodeHash","decodeURIComponent","pathOrHref","baseUrl","parsed","serverUrl","encPath","encSearch","encHash","joinedPath","valA","valB","URL","tryDecodeURIComponent","keyValue","splitPoint","val","indexOf","pctEncodeSpaces","encodeURIComponent","LOCATION_UPGRADE_CONFIGURATION","InjectionToken","APP_BASE_HREF_RESOLVED","LocationUpgradeModule","LocationUpgradeModule_1","config","ngModule","providers","Location","provide","useFactory","provide$location","deps","UpgradeModule","PlatformLocation","LocationStrategy","useValue","provideUrlCodec","provideAppBaseHref","Inject","APP_BASE_HREF","Optional","provideLocationStrategy","__decorate","decorators","desc","d","c","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","NgModule","imports","CommonModule","appBaseHref","baseHref","options","useHash","HashLocationStrategy","PathLocationStrategy","ɵangular_packages_common_upgrade_upgrade_a","ɵangular_packages_common_upgrade_upgrade_b","ɵangular_packages_common_upgrade_upgrade_c","ɵangular_packages_common_upgrade_upgrade_d"],"mappings":"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","sourcesContent":["/**\n * @license Angular v9.0.3\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/upgrade/static')) :\n typeof define === 'function' && define.amd ? define('@angular/common/upgrade', ['exports', '@angular/common', '@angular/core', '@angular/upgrade/static'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.common = global.ng.common || {}, global.ng.common.upgrade = {}), global.ng.common, global.ng.core, global.ng.upgrade.static));\n}(this, (function (exports, common, core, _static) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n }\r\n\r\n function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n }\r\n\r\n function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n }\r\n\r\n function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n }\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\r\n\r\n function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n }\r\n\r\n function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n\r\n function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n }\r\n\r\n function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n }\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n }\r\n\r\n function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n }\r\n\r\n function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n }\r\n\r\n function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n }\r\n\r\n function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n }\r\n\r\n function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n }\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 function stripPrefix(val, prefix) {\n return val.startsWith(prefix) ? val.substring(prefix.length) : val;\n }\n function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n else if (!a || !b) {\n return false;\n }\n else {\n try {\n if ((a.prototype !== b.prototype) || (Array.isArray(a) && Array.isArray(b))) {\n return false;\n }\n return JSON.stringify(a) === JSON.stringify(b);\n }\n catch (e) {\n return false;\n }\n }\n }\n function isAnchor(el) {\n return el.href !== undefined;\n }\n function isPromise(obj) {\n // allow any Promise/A+ compliant thenable.\n // It's up to the caller to ensure that obj.then conforms to the spec\n return !!obj && typeof obj.then === 'function';\n }\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 var PATH_MATCH = /^([^?#]*)(\\?([^#]*))?(#(.*))?$/;\n var DOUBLE_SLASH_REGEX = /^\\s*[\\\\/]{2,}/;\n var IGNORE_URI_REGEXP = /^\\s*(javascript|mailto):/i;\n var DEFAULT_PORTS = {\n 'http:': 80,\n 'https:': 443,\n 'ftp:': 21\n };\n /**\n * Location service that provides a drop-in replacement for the $location service\n * provided in AngularJS.\n *\n * @see [Using the Angular Unified Location Service](guide/upgrade#using-the-unified-angular-location-service)\n *\n * @publicApi\n */\n var $locationShim = /** @class */ (function () {\n function $locationShim($injector, location, platformLocation, urlCodec, locationStrategy) {\n var _this = this;\n this.location = location;\n this.platformLocation = platformLocation;\n this.urlCodec = urlCodec;\n this.locationStrategy = locationStrategy;\n this.initalizing = true;\n this.updateBrowser = false;\n this.$$absUrl = '';\n this.$$url = '';\n this.$$host = '';\n this.$$replace = false;\n this.$$path = '';\n this.$$search = '';\n this.$$hash = '';\n this.$$changeListeners = [];\n this.cachedState = null;\n this.lastBrowserUrl = '';\n // This variable should be used *only* inside the cacheState function.\n this.lastCachedState = null;\n var initialUrl = this.browserUrl();\n var parsedUrl = this.urlCodec.parse(initialUrl);\n if (typeof parsedUrl === 'string') {\n throw 'Invalid URL';\n }\n this.$$protocol = parsedUrl.protocol;\n this.$$host = parsedUrl.hostname;\n this.$$port = parseInt(parsedUrl.port) || DEFAULT_PORTS[parsedUrl.protocol] || null;\n this.$$parseLinkUrl(initialUrl, initialUrl);\n this.cacheState();\n this.$$state = this.browserState();\n if (isPromise($injector)) {\n $injector.then(function ($i) { return _this.initialize($i); });\n }\n else {\n this.initialize($injector);\n }\n }\n $locationShim.prototype.initialize = function ($injector) {\n var _this = this;\n var $rootScope = $injector.get('$rootScope');\n var $rootElement = $injector.get('$rootElement');\n $rootElement.on('click', function (event) {\n if (event.ctrlKey || event.metaKey || event.shiftKey || event.which === 2 ||\n event.button === 2) {\n return;\n }\n var elm = event.target;\n // traverse the DOM up to find first A tag\n while (elm && elm.nodeName.toLowerCase() !== 'a') {\n // ignore rewriting if no A tag (reached root element, or no parent - removed from document)\n if (elm === $rootElement[0] || !(elm = elm.parentNode)) {\n return;\n }\n }\n if (!isAnchor(elm)) {\n return;\n }\n var absHref = elm.href;\n var relHref = elm.getAttribute('href');\n // Ignore when url is started with javascript: or mailto:\n if (IGNORE_URI_REGEXP.test(absHref)) {\n return;\n }\n if (absHref && !elm.getAttribute('target') && !event.isDefaultPrevented()) {\n if (_this.$$parseLinkUrl(absHref, relHref)) {\n // We do a preventDefault for all urls that are part of the AngularJS application,\n // in html5mode and also without, so that we are able to abort navigation without\n // getting double entries in the location history.\n event.preventDefault();\n // update location manually\n if (_this.absUrl() !== _this.browserUrl()) {\n $rootScope.$apply();\n }\n }\n }\n });\n this.location.onUrlChange(function (newUrl, newState) {\n var oldUrl = _this.absUrl();\n var oldState = _this.$$state;\n _this.$$parse(newUrl);\n newUrl = _this.absUrl();\n _this.$$state = newState;\n var defaultPrevented = $rootScope.$broadcast('$locationChangeStart', newUrl, oldUrl, newState, oldState)\n .defaultPrevented;\n // if the location was changed by a `$locationChangeStart` handler then stop\n // processing this location change\n if (_this.absUrl() !== newUrl)\n return;\n // If default was prevented, set back to old state. This is the state that was locally\n // cached in the $location service.\n if (defaultPrevented) {\n _this.$$parse(oldUrl);\n _this.state(oldState);\n _this.setBrowserUrlWithFallback(oldUrl, false, oldState);\n _this.$$notifyChangeListeners(_this.url(), _this.$$state, oldUrl, oldState);\n }\n else {\n _this.initalizing = false;\n $rootScope.$broadcast('$locationChangeSuccess', newUrl, oldUrl, newState, oldState);\n _this.resetBrowserUpdate();\n }\n if (!$rootScope.$$phase) {\n $rootScope.$digest();\n }\n });\n // update browser\n $rootScope.$watch(function () {\n if (_this.initalizing || _this.updateBrowser) {\n _this.updateBrowser = false;\n var oldUrl_1 = _this.browserUrl();\n var newUrl = _this.absUrl();\n var oldState_1 = _this.browserState();\n var currentReplace_1 = _this.$$replace;\n var urlOrStateChanged_1 = !_this.urlCodec.areEqual(oldUrl_1, newUrl) || oldState_1 !== _this.$$state;\n // Fire location changes one time to on initialization. This must be done on the\n // next tick (thus inside $evalAsync()) in order for listeners to be registered\n // before the event fires. Mimicing behavior from $locationWatch:\n // https://github.com/angular/angular.js/blob/master/src/ng/location.js#L983\n if (_this.initalizing || urlOrStateChanged_1) {\n _this.initalizing = false;\n $rootScope.$evalAsync(function () {\n // Get the new URL again since it could have changed due to async update\n var newUrl = _this.absUrl();\n var defaultPrevented = $rootScope\n .$broadcast('$locationChangeStart', newUrl, oldUrl_1, _this.$$state, oldState_1)\n .defaultPrevented;\n // if the location was changed by a `$locationChangeStart` handler then stop\n // processing this location change\n if (_this.absUrl() !== newUrl)\n return;\n if (defaultPrevented) {\n _this.$$parse(oldUrl_1);\n _this.$$state = oldState_1;\n }\n else {\n // This block doesn't run when initalizing because it's going to perform the update to\n // the URL which shouldn't be needed when initalizing.\n if (urlOrStateChanged_1) {\n _this.setBrowserUrlWithFallback(newUrl, currentReplace_1, oldState_1 === _this.$$state ? null : _this.$$state);\n _this.$$replace = false;\n }\n $rootScope.$broadcast('$locationChangeSuccess', newUrl, oldUrl_1, _this.$$state, oldState_1);\n if (urlOrStateChanged_1) {\n _this.$$notifyChangeListeners(_this.url(), _this.$$state, oldUrl_1, oldState_1);\n }\n }\n });\n }\n }\n _this.$$replace = false;\n });\n };\n $locationShim.prototype.resetBrowserUpdate = function () {\n this.$$replace = false;\n this.$$state = this.browserState();\n this.updateBrowser = false;\n this.lastBrowserUrl = this.browserUrl();\n };\n $locationShim.prototype.browserUrl = function (url, replace, state) {\n // In modern browsers `history.state` is `null` by default; treating it separately\n // from `undefined` would cause `$browser.url('/foo')` to change `history.state`\n // to undefined via `pushState`. Instead, let's change `undefined` to `null` here.\n if (typeof state === 'undefined') {\n state = null;\n }\n // setter\n if (url) {\n var sameState = this.lastHistoryState === state;\n // Normalize the inputted URL\n url = this.urlCodec.parse(url).href;\n // Don't change anything if previous and current URLs and states match.\n if (this.lastBrowserUrl === url && sameState) {\n return this;\n }\n this.lastBrowserUrl = url;\n this.lastHistoryState = state;\n // Remove server base from URL as the Angular APIs for updating URL require\n // it to be the path+.\n url = this.stripBaseUrl(this.getServerBase(), url) || url;\n // Set the URL\n if (replace) {\n this.locationStrategy.replaceState(state, '', url, '');\n }\n else {\n this.locationStrategy.pushState(state, '', url, '');\n }\n this.cacheState();\n return this;\n // getter\n }\n else {\n return this.platformLocation.href;\n }\n };\n $locationShim.prototype.cacheState = function () {\n // This should be the only place in $browser where `history.state` is read.\n this.cachedState = this.platformLocation.getState();\n if (typeof this.cachedState === 'undefined') {\n this.cachedState = null;\n }\n // Prevent callbacks fo fire twice if both hashchange & popstate were fired.\n if (deepEqual(this.cachedState, this.lastCachedState)) {\n this.cachedState = this.lastCachedState;\n }\n this.lastCachedState = this.cachedState;\n this.lastHistoryState = this.cachedState;\n };\n /**\n * This function emulates the $browser.state() function from AngularJS. It will cause\n * history.state to be cached unless changed with deep equality check.\n */\n $locationShim.prototype.browserState = function () { return this.cachedState; };\n $locationShim.prototype.stripBaseUrl = function (base, url) {\n if (url.startsWith(base)) {\n return url.substr(base.length);\n }\n return undefined;\n };\n $locationShim.prototype.getServerBase = function () {\n var _a = this.platformLocation, protocol = _a.protocol, hostname = _a.hostname, port = _a.port;\n var baseHref = this.locationStrategy.getBaseHref();\n var url = protocol + \"//\" + hostname + (port ? ':' + port : '') + (baseHref || '/');\n return url.endsWith('/') ? url : url + '/';\n };\n $locationShim.prototype.parseAppUrl = function (url) {\n if (DOUBLE_SLASH_REGEX.test(url)) {\n throw new Error(\"Bad Path - URL cannot start with double slashes: \" + url);\n }\n var prefixed = (url.charAt(0) !== '/');\n if (prefixed) {\n url = '/' + url;\n }\n var match = this.urlCodec.parse(url, this.getServerBase());\n if (typeof match === 'string') {\n throw new Error(\"Bad URL - Cannot parse URL: \" + url);\n }\n var path = prefixed && match.pathname.charAt(0) === '/' ? match.pathname.substring(1) : match.pathname;\n this.$$path = this.urlCodec.decodePath(path);\n this.$$search = this.urlCodec.decodeSearch(match.search);\n this.$$hash = this.urlCodec.decodeHash(match.hash);\n // make sure path starts with '/';\n if (this.$$path && this.$$path.charAt(0) !== '/') {\n this.$$path = '/' + this.$$path;\n }\n };\n /**\n * Registers listeners for URL changes. This API is used to catch updates performed by the\n * AngularJS framework. These changes are a subset of the `$locationChangeStart` and\n * `$locationChangeSuccess` events which fire when AngularJS updates its internally-referenced\n * version of the browser URL.\n *\n * It's possible for `$locationChange` events to happen, but for the browser URL\n * (window.location) to remain unchanged. This `onChange` callback will fire only when AngularJS\n * actually updates the browser URL (window.location).\n *\n * @param fn The callback function that is triggered for the listener when the URL changes.\n * @param err The callback function that is triggered when an error occurs.\n */\n $locationShim.prototype.onChange = function (fn, err) {\n if (err === void 0) { err = function (e) { }; }\n this.$$changeListeners.push([fn, err]);\n };\n /** @internal */\n $locationShim.prototype.$$notifyChangeListeners = function (url, state, oldUrl, oldState) {\n if (url === void 0) { url = ''; }\n if (oldUrl === void 0) { oldUrl = ''; }\n this.$$changeListeners.forEach(function (_a) {\n var _b = __read(_a, 2), fn = _b[0], err = _b[1];\n try {\n fn(url, state, oldUrl, oldState);\n }\n catch (e) {\n err(e);\n }\n });\n };\n /**\n * Parses the provided URL, and sets the current URL to the parsed result.\n *\n * @param url The URL string.\n */\n $locationShim.prototype.$$parse = function (url) {\n var pathUrl;\n if (url.startsWith('/')) {\n pathUrl = url;\n }\n else {\n // Remove protocol & hostname if URL starts with it\n pathUrl = this.stripBaseUrl(this.getServerBase(), url);\n }\n if (typeof pathUrl === 'undefined') {\n throw new Error(\"Invalid url \\\"\" + url + \"\\\", missing path prefix \\\"\" + this.getServerBase() + \"\\\".\");\n }\n this.parseAppUrl(pathUrl);\n if (!this.$$path) {\n this.$$path = '/';\n }\n this.composeUrls();\n };\n /**\n * Parses the provided URL and its relative URL.\n *\n * @param url The full URL string.\n * @param relHref A URL string relative to the full URL string.\n */\n $locationShim.prototype.$$parseLinkUrl = function (url, relHref) {\n // When relHref is passed, it should be a hash and is handled separately\n if (relHref && relHref[0] === '#') {\n this.hash(relHref.slice(1));\n return true;\n }\n var rewrittenUrl;\n var appUrl = this.stripBaseUrl(this.getServerBase(), url);\n if (typeof appUrl !== 'undefined') {\n rewrittenUrl = this.getServerBase() + appUrl;\n }\n else if (this.getServerBase() === url + '/') {\n rewrittenUrl = this.getServerBase();\n }\n // Set the URL\n if (rewrittenUrl) {\n this.$$parse(rewrittenUrl);\n }\n return !!rewrittenUrl;\n };\n $locationShim.prototype.setBrowserUrlWithFallback = function (url, replace, state) {\n var oldUrl = this.url();\n var oldState = this.$$state;\n try {\n this.browserUrl(url, replace, state);\n // Make sure $location.state() returns referentially identical (not just deeply equal)\n // state object; this makes possible quick checking if the state changed in the digest\n // loop. Checking deep equality would be too expensive.\n this.$$state = this.browserState();\n }\n catch (e) {\n // Restore old values if pushState fails\n this.url(oldUrl);\n this.$$state = oldState;\n throw e;\n }\n };\n $locationShim.prototype.composeUrls = function () {\n this.$$url = this.urlCodec.normalize(this.$$path, this.$$search, this.$$hash);\n this.$$absUrl = this.getServerBase() + this.$$url.substr(1); // remove '/' from front of URL\n this.updateBrowser = true;\n };\n /**\n * Retrieves the full URL representation with all segments encoded according to\n * rules specified in\n * [RFC 3986](http://www.ietf.org/rfc/rfc3986.txt).\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * let absUrl = $location.absUrl();\n * // => \"http://example.com/#/some/path?foo=bar&baz=xoxo\"\n * ```\n */\n $locationShim.prototype.absUrl = function () { return this.$$absUrl; };\n $locationShim.prototype.url = function (url) {\n if (typeof url === 'string') {\n if (!url.length) {\n url = '/';\n }\n var match = PATH_MATCH.exec(url);\n if (!match)\n return this;\n if (match[1] || url === '')\n this.path(this.urlCodec.decodePath(match[1]));\n if (match[2] || match[1] || url === '')\n this.search(match[3] || '');\n this.hash(match[5] || '');\n // Chainable method\n return this;\n }\n return this.$$url;\n };\n /**\n * Retrieves the protocol of the current URL.\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * let protocol = $location.protocol();\n * // => \"http\"\n * ```\n */\n $locationShim.prototype.protocol = function () { return this.$$protocol; };\n /**\n * Retrieves the protocol of the current URL.\n *\n * In contrast to the non-AngularJS version `location.host` which returns `hostname:port`, this\n * returns the `hostname` portion only.\n *\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * let host = $location.host();\n * // => \"example.com\"\n *\n * // given URL http://user:password@example.com:8080/#/some/path?foo=bar&baz=xoxo\n * host = $location.host();\n * // => \"example.com\"\n * host = location.host;\n * // => \"example.com:8080\"\n * ```\n */\n $locationShim.prototype.host = function () { return this.$$host; };\n /**\n * Retrieves the port of the current URL.\n *\n * ```js\n * // given URL http://example.com/#/some/path?foo=bar&baz=xoxo\n * let port = $location.port();\n * // => 80\n * ```\n */\n $locationShim.prototype.port = function () { return this.$$port; };\n $locationShim.prototype.path = function (path) {\n if (typeof path === 'undefined') {\n return this.$$path;\n }\n // null path converts to empty string. Prepend with \"/\" if needed.\n path = path !== null ? path.toString() : '';\n path = path.charAt(0) === '/' ? path : '/' + path;\n this.$$path = path;\n this.composeUrls();\n return this;\n };\n $locationShim.prototype.search = function (search, paramValue) {\n switch (arguments.length) {\n case 0:\n return this.$$search;\n case 1:\n if (typeof search === 'string' || typeof search === 'number') {\n this.$$search = this.urlCodec.decodeSearch(search.toString());\n }\n else if (typeof search === 'object' && search !== null) {\n // Copy the object so it's never mutated\n search = __assign({}, search);\n // remove object undefined or null properties\n for (var key in search) {\n if (search[key] == null)\n delete search[key];\n }\n this.$$search = search;\n }\n else {\n throw new Error('LocationProvider.search(): First argument must be a string or an object.');\n }\n break;\n default:\n if (typeof search === 'string') {\n var currentSearch = this.search();\n if (typeof paramValue === 'undefined' || paramValue === null) {\n delete currentSearch[search];\n return this.search(currentSearch);\n }\n else {\n currentSearch[search] = paramValue;\n return this.search(currentSearch);\n }\n }\n }\n this.composeUrls();\n return this;\n };\n $locationShim.prototype.hash = function (hash) {\n if (typeof hash === 'undefined') {\n return this.$$hash;\n }\n this.$$hash = hash !== null ? hash.toString() : '';\n this.composeUrls();\n return this;\n };\n /**\n * Changes to `$location` during the current `$digest` will replace the current\n * history record, instead of adding a new one.\n */\n $locationShim.prototype.replace = function () {\n this.$$replace = true;\n return this;\n };\n $locationShim.prototype.state = function (state) {\n if (typeof state === 'undefined') {\n return this.$$state;\n }\n this.$$state = state;\n return this;\n };\n return $locationShim;\n }());\n /**\n * The factory function used to create an instance of the `$locationShim` in Angular,\n * and provides an API-compatiable `$locationProvider` for AngularJS.\n *\n * @publicApi\n */\n var $locationShimProvider = /** @class */ (function () {\n function $locationShimProvider(ngUpgrade, location, platformLocation, urlCodec, locationStrategy) {\n this.ngUpgrade = ngUpgrade;\n this.location = location;\n this.platformLocation = platformLocation;\n this.urlCodec = urlCodec;\n this.locationStrategy = locationStrategy;\n }\n /**\n * Factory method that returns an instance of the $locationShim\n */\n $locationShimProvider.prototype.$get = function () {\n return new $locationShim(this.ngUpgrade.$injector, this.location, this.platformLocation, this.urlCodec, this.locationStrategy);\n };\n /**\n * Stub method used to keep API compatible with AngularJS. This setting is configured through\n * the LocationUpgradeModule's `config` method in your Angular app.\n */\n $locationShimProvider.prototype.hashPrefix = function (prefix) {\n throw new Error('Configure LocationUpgrade through LocationUpgradeModule.config method.');\n };\n /**\n * Stub method used to keep API compatible with AngularJS. This setting is configured through\n * the LocationUpgradeModule's `config` method in your Angular app.\n */\n $locationShimProvider.prototype.html5Mode = function (mode) {\n throw new Error('Configure LocationUpgrade through LocationUpgradeModule.config method.');\n };\n return $locationShimProvider;\n }());\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 * A codec for encoding and decoding URL parts.\n *\n * @publicApi\n **/\n var UrlCodec = /** @class */ (function () {\n function UrlCodec() {\n }\n return UrlCodec;\n }());\n /**\n * A `UrlCodec` that uses logic from AngularJS to serialize and parse URLs\n * and URL parameters.\n *\n * @publicApi\n */\n var AngularJSUrlCodec = /** @class */ (function () {\n function AngularJSUrlCodec() {\n }\n // https://github.com/angular/angular.js/blob/864c7f0/src/ng/location.js#L15\n AngularJSUrlCodec.prototype.encodePath = function (path) {\n var segments = path.split('/');\n var i = segments.length;\n while (i--) {\n // decode forward slashes to prevent them from being double encoded\n segments[i] = encodeUriSegment(segments[i].replace(/%2F/g, '/'));\n }\n path = segments.join('/');\n return _stripIndexHtml((path && path[0] !== '/' && '/' || '') + path);\n };\n // https://github.com/angular/angular.js/blob/864c7f0/src/ng/location.js#L42\n AngularJSUrlCodec.prototype.encodeSearch = function (search) {\n if (typeof search === 'string') {\n search = parseKeyValue(search);\n }\n search = toKeyValue(search);\n return search ? '?' + search : '';\n };\n // https://github.com/angular/angular.js/blob/864c7f0/src/ng/location.js#L44\n AngularJSUrlCodec.prototype.encodeHash = function (hash) {\n hash = encodeUriSegment(hash);\n return hash ? '#' + hash : '';\n };\n // https://github.com/angular/angular.js/blob/864c7f0/src/ng/location.js#L27\n AngularJSUrlCodec.prototype.decodePath = function (path, html5Mode) {\n if (html5Mode === void 0) { html5Mode = true; }\n var segments = path.split('/');\n var i = segments.length;\n while (i--) {\n segments[i] = decodeURIComponent(segments[i]);\n if (html5Mode) {\n // encode forward slashes to prevent them from being mistaken for path separators\n segments[i] = segments[i].replace(/\\//g, '%2F');\n }\n }\n return segments.join('/');\n };\n // https://github.com/angular/angular.js/blob/864c7f0/src/ng/location.js#L72\n AngularJSUrlCodec.prototype.decodeSearch = function (search) { return parseKeyValue(search); };\n // https://github.com/angular/angular.js/blob/864c7f0/src/ng/location.js#L73\n AngularJSUrlCodec.prototype.decodeHash = function (hash) {\n hash = decodeURIComponent(hash);\n return hash[0] === '#' ? hash.substring(1) : hash;\n };\n AngularJSUrlCodec.prototype.normalize = function (pathOrHref, search, hash, baseUrl) {\n if (arguments.length === 1) {\n var parsed = this.parse(pathOrHref, baseUrl);\n if (typeof parsed === 'string') {\n return parsed;\n }\n var serverUrl = parsed.protocol + \"://\" + parsed.hostname + (parsed.port ? ':' + parsed.port : '');\n return this.normalize(this.decodePath(parsed.pathname), this.decodeSearch(parsed.search), this.decodeHash(parsed.hash), serverUrl);\n }\n else {\n var encPath = this.encodePath(pathOrHref);\n var encSearch = search && this.encodeSearch(search) || '';\n var encHash = hash && this.encodeHash(hash) || '';\n var joinedPath = (baseUrl || '') + encPath;\n if (!joinedPath.length || joinedPath[0] !== '/') {\n joinedPath = '/' + joinedPath;\n }\n return joinedPath + encSearch + encHash;\n }\n };\n AngularJSUrlCodec.prototype.areEqual = function (valA, valB) { return this.normalize(valA) === this.normalize(valB); };\n // https://github.com/angular/angular.js/blob/864c7f0/src/ng/urlUtils.js#L60\n AngularJSUrlCodec.prototype.parse = function (url, base) {\n try {\n // Safari 12 throws an error when the URL constructor is called with an undefined base.\n var parsed = !base ? new URL(url) : new URL(url, base);\n return {\n href: parsed.href,\n protocol: parsed.protocol ? parsed.protocol.replace(/:$/, '') : '',\n host: parsed.host,\n search: parsed.search ? parsed.search.replace(/^\\?/, '') : '',\n hash: parsed.hash ? parsed.hash.replace(/^#/, '') : '',\n hostname: parsed.hostname,\n port: parsed.port,\n pathname: (parsed.pathname.charAt(0) === '/') ? parsed.pathname : '/' + parsed.pathname\n };\n }\n catch (e) {\n throw new Error(\"Invalid URL (\" + url + \") with base (\" + base + \")\");\n }\n };\n return AngularJSUrlCodec;\n }());\n function _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\n }\n /**\n * Tries to decode the URI component without throwing an exception.\n *\n * @param str value potential URI component to check.\n * @returns the decoded URI if it can be decoded or else `undefined`.\n */\n function tryDecodeURIComponent(value) {\n try {\n return decodeURIComponent(value);\n }\n catch (e) {\n // Ignore any invalid uri component.\n return undefined;\n }\n }\n /**\n * Parses an escaped url query string into key-value pairs. Logic taken from\n * https://github.com/angular/angular.js/blob/864c7f0/src/Angular.js#L1382\n */\n function parseKeyValue(keyValue) {\n var obj = {};\n (keyValue || '').split('&').forEach(function (keyValue) {\n var splitPoint, key, val;\n if (keyValue) {\n key = keyValue = keyValue.replace(/\\+/g, '%20');\n splitPoint = keyValue.indexOf('=');\n if (splitPoint !== -1) {\n key = keyValue.substring(0, splitPoint);\n val = keyValue.substring(splitPoint + 1);\n }\n key = tryDecodeURIComponent(key);\n if (typeof key !== 'undefined') {\n val = typeof val !== 'undefined' ? tryDecodeURIComponent(val) : true;\n if (!obj.hasOwnProperty(key)) {\n obj[key] = val;\n }\n else if (Array.isArray(obj[key])) {\n obj[key].push(val);\n }\n else {\n obj[key] = [obj[key], val];\n }\n }\n }\n });\n return obj;\n }\n /**\n * Serializes into key-value pairs. Logic taken from\n * https://github.com/angular/angular.js/blob/864c7f0/src/Angular.js#L1409\n */\n function toKeyValue(obj) {\n var parts = [];\n var _loop_1 = function (key) {\n var value = obj[key];\n if (Array.isArray(value)) {\n value.forEach(function (arrayValue) {\n parts.push(encodeUriQuery(key, true) +\n (arrayValue === true ? '' : '=' + encodeUriQuery(arrayValue, true)));\n });\n }\n else {\n parts.push(encodeUriQuery(key, true) +\n (value === true ? '' : '=' + encodeUriQuery(value, true)));\n }\n };\n for (var key in obj) {\n _loop_1(key);\n }\n return parts.length ? parts.join('&') : '';\n }\n /**\n * We need our custom method because encodeURIComponent is too aggressive and doesn't follow\n * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path\n * segments:\n * segment = *pchar\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n * pct-encoded = \"%\" HEXDIG HEXDIG\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\n * / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n *\n * Logic from https://github.com/angular/angular.js/blob/864c7f0/src/Angular.js#L1437\n */\n function encodeUriSegment(val) {\n return encodeUriQuery(val, true)\n .replace(/%26/gi, '&')\n .replace(/%3D/gi, '=')\n .replace(/%2B/gi, '+');\n }\n /**\n * This method is intended for encoding *key* or *value* parts of query component. We need a custom\n * method because encodeURIComponent is too aggressive and encodes stuff that doesn't have to be\n * encoded per http://tools.ietf.org/html/rfc3986:\n * query = *( pchar / \"/\" / \"?\" )\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * pct-encoded = \"%\" HEXDIG HEXDIG\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\n * / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n *\n * Logic from https://github.com/angular/angular.js/blob/864c7f0/src/Angular.js#L1456\n */\n function encodeUriQuery(val, pctEncodeSpaces) {\n if (pctEncodeSpaces === void 0) { pctEncodeSpaces = false; }\n return encodeURIComponent(val)\n .replace(/%40/gi, '@')\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%3B/gi, ';')\n .replace(/%20/g, (pctEncodeSpaces ? '%20' : '+'));\n }\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 * A provider token used to configure the location upgrade module.\n *\n * @publicApi\n */\n var LOCATION_UPGRADE_CONFIGURATION = new core.InjectionToken('LOCATION_UPGRADE_CONFIGURATION');\n var APP_BASE_HREF_RESOLVED = new core.InjectionToken('APP_BASE_HREF_RESOLVED');\n /**\n * `NgModule` used for providing and configuring Angular's Unified Location Service for upgrading.\n *\n * @see [Using the Unified Angular Location Service](guide/upgrade#using-the-unified-angular-location-service)\n *\n * @publicApi\n */\n var LocationUpgradeModule = /** @class */ (function () {\n function LocationUpgradeModule() {\n }\n LocationUpgradeModule_1 = LocationUpgradeModule;\n LocationUpgradeModule.config = function (config) {\n return {\n ngModule: LocationUpgradeModule_1,\n providers: [\n common.Location,\n {\n provide: $locationShim,\n useFactory: provide$location,\n deps: [_static.UpgradeModule, common.Location, common.PlatformLocation, UrlCodec, common.LocationStrategy]\n },\n { provide: LOCATION_UPGRADE_CONFIGURATION, useValue: config ? config : {} },\n { provide: UrlCodec, useFactory: provideUrlCodec, deps: [LOCATION_UPGRADE_CONFIGURATION] },\n {\n provide: APP_BASE_HREF_RESOLVED,\n useFactory: provideAppBaseHref,\n deps: [LOCATION_UPGRADE_CONFIGURATION, [new core.Inject(common.APP_BASE_HREF), new core.Optional()]]\n },\n {\n provide: common.LocationStrategy,\n useFactory: provideLocationStrategy,\n deps: [\n common.PlatformLocation,\n APP_BASE_HREF_RESOLVED,\n LOCATION_UPGRADE_CONFIGURATION,\n ]\n },\n ],\n };\n };\n var LocationUpgradeModule_1;\n LocationUpgradeModule = LocationUpgradeModule_1 = __decorate([\n core.NgModule({ imports: [common.CommonModule] })\n ], LocationUpgradeModule);\n return LocationUpgradeModule;\n }());\n function provideAppBaseHref(config, appBaseHref) {\n if (config && config.appBaseHref != null) {\n return config.appBaseHref;\n }\n else if (appBaseHref != null) {\n return appBaseHref;\n }\n return '';\n }\n function provideUrlCodec(config) {\n var codec = config && config.urlCodec || AngularJSUrlCodec;\n return new codec();\n }\n function provideLocationStrategy(platformLocation, baseHref, options) {\n if (options === void 0) { options = {}; }\n return options.useHash ? new common.HashLocationStrategy(platformLocation, baseHref) :\n new common.PathLocationStrategy(platformLocation, baseHref);\n }\n function provide$location(ngUpgrade, location, platformLocation, urlCodec, locationStrategy) {\n var $locationProvider = new $locationShimProvider(ngUpgrade, location, platformLocation, urlCodec, locationStrategy);\n return $locationProvider.$get();\n }\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 /**\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 // This file only reexports content of the `src` folder. Keep it that way.\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 /**\n * Generated bundle index. Do not edit.\n */\n\n exports.$locationShim = $locationShim;\n exports.$locationShimProvider = $locationShimProvider;\n exports.AngularJSUrlCodec = AngularJSUrlCodec;\n exports.LOCATION_UPGRADE_CONFIGURATION = LOCATION_UPGRADE_CONFIGURATION;\n exports.LocationUpgradeModule = LocationUpgradeModule;\n exports.UrlCodec = UrlCodec;\n exports.ɵangular_packages_common_upgrade_upgrade_a = provideAppBaseHref;\n exports.ɵangular_packages_common_upgrade_upgrade_b = provideUrlCodec;\n exports.ɵangular_packages_common_upgrade_upgrade_c = provideLocationStrategy;\n exports.ɵangular_packages_common_upgrade_upgrade_d = provide$location;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=common-upgrade.umd.js.map\n"]}
\No newline at end of file