UNPKG

6.46 kBSource Map (JSON)View Raw
1{
2 "version": 3,
3 "file": "locationServices.js",
4 "sourceRoot": "",
5 "sources": [
6 "@uirouter\\angularjs\\locationServices.ts"
7 ],
8 "names": [],
9 "mappings": "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",
10 "sourcesContent": [
11 "/** @publicapi @module ng1 */ /** */\r\nimport { LocationConfig, LocationServices, UIRouter, ParamType, isDefined } from '@uirouter/core';\r\nimport { val, createProxyFunctions, removeFrom, isObject } from '@uirouter/core';\r\nimport { ILocationService, ILocationProvider, IWindowService } from 'angular';\r\n\r\n/**\r\n * Implements UI-Router LocationServices and LocationConfig using Angular 1's $location service\r\n * @internalapi\r\n */\r\nexport class Ng1LocationServices implements LocationConfig, LocationServices {\r\n private $locationProvider: ILocationProvider;\r\n private $location: ILocationService;\r\n private $sniffer: any;\r\n private $browser: any;\r\n private $window: IWindowService;\r\n\r\n path;\r\n search;\r\n hash;\r\n hashPrefix;\r\n port;\r\n protocol;\r\n host;\r\n\r\n private _baseHref: string;\r\n\r\n // .onChange() registry\r\n private _urlListeners: Function[] = [];\r\n\r\n /**\r\n * Applys ng1-specific path parameter encoding\r\n *\r\n * The Angular 1 `$location` service is a bit weird.\r\n * It doesn't allow slashes to be encoded/decoded bi-directionally.\r\n *\r\n * See the writeup at https://github.com/angular-ui/ui-router/issues/2598\r\n *\r\n * This code patches the `path` parameter type so it encoded/decodes slashes as ~2F\r\n *\r\n * @param router\r\n */\r\n static monkeyPatchPathParameterType(router: UIRouter) {\r\n const pathType: ParamType = router.urlMatcherFactory.type('path');\r\n\r\n pathType.encode = (x: any) =>\r\n x != null ? x.toString().replace(/(~|\\/)/g, (m) => ({ '~': '~~', '/': '~2F' }[m])) : x;\r\n\r\n pathType.decode = (x: string) =>\r\n x != null ? x.toString().replace(/(~~|~2F)/g, (m) => ({ '~~': '~', '~2F': '/' }[m])) : x;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n dispose() {}\r\n\r\n constructor($locationProvider: ILocationProvider) {\r\n this.$locationProvider = $locationProvider;\r\n const _lp = val($locationProvider);\r\n createProxyFunctions(_lp, this, _lp, ['hashPrefix']);\r\n }\r\n\r\n onChange(callback: Function) {\r\n this._urlListeners.push(callback);\r\n return () => removeFrom(this._urlListeners)(callback);\r\n }\r\n\r\n html5Mode() {\r\n let html5Mode: any = this.$locationProvider.html5Mode();\r\n html5Mode = isObject(html5Mode) ? html5Mode.enabled : html5Mode;\r\n return html5Mode && this.$sniffer.history;\r\n }\r\n\r\n baseHref() {\r\n return this._baseHref || (this._baseHref = this.$browser.baseHref() || this.$window.location.pathname);\r\n }\r\n\r\n url(newUrl?: string, replace = false, state?) {\r\n if (isDefined(newUrl)) this.$location.url(newUrl);\r\n if (replace) this.$location.replace();\r\n if (state) this.$location.state(state);\r\n return this.$location.url();\r\n }\r\n\r\n _runtimeServices($rootScope, $location: ILocationService, $sniffer, $browser, $window: IWindowService) {\r\n this.$location = $location;\r\n this.$sniffer = $sniffer;\r\n this.$browser = $browser;\r\n this.$window = $window;\r\n\r\n // Bind $locationChangeSuccess to the listeners registered in LocationService.onChange\r\n $rootScope.$on('$locationChangeSuccess', (evt) => this._urlListeners.forEach((fn) => fn(evt)));\r\n const _loc = val($location);\r\n\r\n // Bind these LocationService functions to $location\r\n createProxyFunctions(_loc, this, _loc, ['replace', 'path', 'search', 'hash']);\r\n // Bind these LocationConfig functions to $location\r\n createProxyFunctions(_loc, this, _loc, ['port', 'protocol', 'host']);\r\n }\r\n}\r\n"
12 ]
13}
\No newline at end of file