UNPKG

9.25 kBSource Map (JSON)View Raw
1{
2 "version": 3,
3 "file": "urlRouter.js",
4 "sourceRoot": "",
5 "sources": [
6 "@uirouter/core/url/urlRouter.ts"
7 ],
8 "names": [],
9 "mappings": "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",
10 "sourcesContent": [
11 "import { stripLastPathElement } from '../common';\nimport { UrlMatcher } from './urlMatcher';\nimport { RawParams } from '../params';\nimport { UIRouter } from '../router';\nimport { UrlRuleFactory } from './urlRule';\nimport { MatchResult, UrlParts, UrlRule, UrlRuleHandlerFn } from './interface';\nimport { TargetState, TargetStateDef } from '../state';\n\nfunction appendBasePath(url: string, isHtml5: boolean, absolute: boolean, baseHref: string): string {\n if (baseHref === '/') return url;\n if (isHtml5) return stripLastPathElement(baseHref) + url;\n if (absolute) return baseHref.slice(1) + url;\n return url;\n}\n\n/**\n * Updates URL and responds to URL changes\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRules]] which can be found as [[UrlService.rules]].\n */\nexport class UrlRouter {\n /** used to create [[UrlRule]] objects for common cases */\n public urlRuleFactory: UrlRuleFactory;\n /** @internal */ private location: string;\n\n /** @internal */\n constructor(/** @internal */ private router: UIRouter) {\n this.urlRuleFactory = new UrlRuleFactory(router);\n }\n\n /** Internal API. */\n update(read?: boolean) {\n const $url = this.router.locationService;\n if (read) {\n this.location = $url.url();\n return;\n }\n if ($url.url() === this.location) return;\n\n $url.url(this.location, true);\n }\n\n /**\n * Internal API.\n *\n * Pushes a new location to the browser history.\n *\n * @internal\n * @param urlMatcher\n * @param params\n * @param options\n */\n push(urlMatcher: UrlMatcher, params?: RawParams, options?: { replace?: string | boolean }) {\n const replace = options && !!options.replace;\n this.router.urlService.url(urlMatcher.format(params || {}), replace);\n }\n\n /**\n * Builds and returns a URL with interpolated parameters\n *\n * #### Example:\n * ```js\n * matcher = $umf.compile(\"/about/:person\");\n * params = { person: \"bob\" };\n * $bob = $urlRouter.href(matcher, params);\n * // $bob == \"/about/bob\";\n * ```\n *\n * @param urlMatcher The [[UrlMatcher]] object which is used as the template of the URL to generate.\n * @param params An object of parameter values to fill the matcher's required parameters.\n * @param options Options object. The options are:\n *\n * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. \"http://www.example.com/fullurl\".\n *\n * @returns Returns the fully compiled URL, or `null` if `params` fail validation against `urlMatcher`\n */\n href(urlMatcher: UrlMatcher, params?: any, options?: { absolute: boolean }): string {\n let url = urlMatcher.format(params);\n if (url == null) return null;\n\n options = options || { absolute: false };\n\n const cfg = this.router.urlService.config;\n const isHtml5 = cfg.html5Mode();\n if (!isHtml5 && url !== null) {\n url = '#' + cfg.hashPrefix() + url;\n }\n url = appendBasePath(url, isHtml5, options.absolute, cfg.baseHref());\n\n if (!options.absolute || !url) {\n return url;\n }\n\n const slash = !isHtml5 && url ? '/' : '';\n const cfgPort = cfg.port();\n const port = <any>(cfgPort === 80 || cfgPort === 443 ? '' : ':' + cfgPort);\n\n return [cfg.protocol(), '://', cfg.host(), port, slash, url].join('');\n }\n\n // Delegate these calls to [[UrlService]]\n /** @deprecated use [[UrlService.sync]]*/\n public sync = (evt?) => this.router.urlService.sync(evt);\n /** @deprecated use [[UrlService.listen]]*/\n public listen = (enabled?: boolean): Function => this.router.urlService.listen(enabled);\n /** @deprecated use [[UrlService.deferIntercept]]*/\n public deferIntercept = (defer?: boolean) => this.router.urlService.deferIntercept(defer);\n /** @deprecated use [[UrlService.interceptDeferred]]*/\n public get interceptDeferred() {\n return this.router.urlService.interceptDeferred;\n }\n /** @deprecated use [[UrlService.match]]*/\n public match = (urlParts: UrlParts): MatchResult => this.router.urlService.match(urlParts);\n\n // Delegate these calls to [[UrlRules]]\n /** @deprecated use [[UrlRules.initial]]*/\n public initial = (handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef): void =>\n this.router.urlService.rules.initial(handler);\n /** @deprecated use [[UrlRules.otherwise]]*/\n public otherwise = (handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef): void =>\n this.router.urlService.rules.otherwise(handler);\n /** @deprecated use [[UrlRules.removeRule]]*/\n public removeRule = (rule: UrlRule): void => this.router.urlService.rules.removeRule(rule);\n /** @deprecated use [[UrlRules.rule]]*/\n public rule = (rule: UrlRule): Function => this.router.urlService.rules.rule(rule);\n /** @deprecated use [[UrlRules.rules]]*/\n public rules = (): UrlRule[] => this.router.urlService.rules.rules();\n /** @deprecated use [[UrlRules.sort]]*/\n public sort = (compareFn?: (a: UrlRule, b: UrlRule) => number) => this.router.urlService.rules.sort(compareFn);\n /** @deprecated use [[UrlRules.when]]*/\n public when = (\n matcher: RegExp | UrlMatcher | string,\n handler: string | UrlRuleHandlerFn,\n options?: { priority: number }\n ): UrlRule => this.router.urlService.rules.when(matcher, handler, options);\n}\n"
12 ]
13}
\No newline at end of file