UNPKG

7.08 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.getLocals = exports.watchDigests = void 0;
4/* eslint-disable @typescript-eslint/no-empty-function */
5/* eslint-disable @typescript-eslint/no-unused-vars */
6/**
7 * # Angular 1 types
8 *
9 * UI-Router core provides various Typescript types which you can use for code completion and validating parameter values, etc.
10 * The customizations to the core types for Angular UI-Router are documented here.
11 *
12 * The optional [[$resolve]] service is also documented here.
13 *
14 * @preferred @publicapi @module ng1
15 */ /** */
16var angular_1 = require("./angular");
17var core_1 = require("@uirouter/core");
18var views_1 = require("./statebuilders/views");
19var templateFactory_1 = require("./templateFactory");
20var stateProvider_1 = require("./stateProvider");
21var onEnterExitRetain_1 = require("./statebuilders/onEnterExitRetain");
22var locationServices_1 = require("./locationServices");
23var urlRouterProvider_1 = require("./urlRouterProvider");
24angular_1.ng.module('ui.router.angular1', []);
25var mod_init = angular_1.ng.module('ui.router.init', ['ng']);
26var mod_util = angular_1.ng.module('ui.router.util', ['ui.router.init']);
27var mod_rtr = angular_1.ng.module('ui.router.router', ['ui.router.util']);
28var mod_state = angular_1.ng.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']);
29var mod_main = angular_1.ng.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']);
30var mod_cmpt = angular_1.ng.module('ui.router.compat', ['ui.router']);
31var router = null;
32$uiRouterProvider.$inject = ['$locationProvider'];
33/** This angular 1 provider instantiates a Router and exposes its services via the angular injector */
34function $uiRouterProvider($locationProvider) {
35 // Create a new instance of the Router when the $uiRouterProvider is initialized
36 router = this.router = new core_1.UIRouter();
37 router.stateProvider = new stateProvider_1.StateProvider(router.stateRegistry, router.stateService);
38 // Apply ng1 specific StateBuilder code for `views`, `resolve`, and `onExit/Retain/Enter` properties
39 router.stateRegistry.decorator('views', views_1.ng1ViewsBuilder);
40 router.stateRegistry.decorator('onExit', onEnterExitRetain_1.getStateHookBuilder('onExit'));
41 router.stateRegistry.decorator('onRetain', onEnterExitRetain_1.getStateHookBuilder('onRetain'));
42 router.stateRegistry.decorator('onEnter', onEnterExitRetain_1.getStateHookBuilder('onEnter'));
43 router.viewService._pluginapi._viewConfigFactory('ng1', views_1.getNg1ViewConfigFactory());
44 // Disable decoding of params by UrlMatcherFactory because $location already handles this
45 router.urlService.config._decodeParams = false;
46 var ng1LocationService = (router.locationService = router.locationConfig = new locationServices_1.Ng1LocationServices($locationProvider));
47 locationServices_1.Ng1LocationServices.monkeyPatchPathParameterType(router);
48 // backwards compat: also expose router instance as $uiRouterProvider.router
49 router['router'] = router;
50 router['$get'] = $get;
51 $get.$inject = ['$location', '$browser', '$window', '$sniffer', '$rootScope', '$http', '$templateCache'];
52 function $get($location, $browser, $window, $sniffer, $rootScope, $http, $templateCache) {
53 ng1LocationService._runtimeServices($rootScope, $location, $sniffer, $browser, $window);
54 delete router['router'];
55 delete router['$get'];
56 return router;
57 }
58 return router;
59}
60var getProviderFor = function (serviceName) { return [
61 '$uiRouterProvider',
62 function ($urp) {
63 var service = $urp.router[serviceName];
64 service['$get'] = function () { return service; };
65 return service;
66 },
67]; };
68// This effectively calls $get() on `$uiRouterProvider` to trigger init (when ng enters runtime)
69runBlock.$inject = ['$injector', '$q', '$uiRouter'];
70function runBlock($injector, $q, $uiRouter) {
71 core_1.services.$injector = $injector;
72 core_1.services.$q = $q;
73 // https://github.com/angular-ui/ui-router/issues/3678
74 if (!Object.prototype.hasOwnProperty.call($injector, 'strictDi')) {
75 try {
76 $injector.invoke(function (checkStrictDi) { });
77 }
78 catch (error) {
79 $injector.strictDi = !!/strict mode/.exec(error && error.toString());
80 }
81 }
82 // The $injector is now available.
83 // Find any resolvables that had dependency annotation deferred
84 $uiRouter.stateRegistry
85 .get()
86 .map(function (x) { return x.$$state().resolvables; })
87 .reduce(core_1.unnestR, [])
88 .filter(function (x) { return x.deps === 'deferred'; })
89 .forEach(function (resolvable) { return (resolvable.deps = $injector.annotate(resolvable.resolveFn, $injector.strictDi)); });
90}
91// $urlRouter service and $urlRouterProvider
92var getUrlRouterProvider = function (uiRouter) { return (uiRouter.urlRouterProvider = new urlRouterProvider_1.UrlRouterProvider(uiRouter)); };
93// $state service and $stateProvider
94// $urlRouter service and $urlRouterProvider
95var getStateProvider = function () { return core_1.extend(router.stateProvider, { $get: function () { return router.stateService; } }); };
96watchDigests.$inject = ['$rootScope'];
97function watchDigests($rootScope) {
98 $rootScope.$watch(function () {
99 core_1.trace.approximateDigests++;
100 });
101}
102exports.watchDigests = watchDigests;
103mod_init.provider('$uiRouter', $uiRouterProvider);
104mod_rtr.provider('$urlRouter', ['$uiRouterProvider', getUrlRouterProvider]);
105mod_util.provider('$urlService', getProviderFor('urlService'));
106mod_util.provider('$urlMatcherFactory', ['$uiRouterProvider', function () { return router.urlMatcherFactory; }]);
107mod_util.provider('$templateFactory', function () { return new templateFactory_1.TemplateFactory(); });
108mod_state.provider('$stateRegistry', getProviderFor('stateRegistry'));
109mod_state.provider('$uiRouterGlobals', getProviderFor('globals'));
110mod_state.provider('$transitions', getProviderFor('transitionService'));
111mod_state.provider('$state', ['$uiRouterProvider', getStateProvider]);
112mod_state.factory('$stateParams', ['$uiRouter', function ($uiRouter) { return $uiRouter.globals.params; }]);
113mod_main.factory('$view', function () { return router.viewService; });
114mod_main.service('$trace', function () { return core_1.trace; });
115mod_main.run(watchDigests);
116mod_util.run(['$urlMatcherFactory', function ($urlMatcherFactory) { }]);
117mod_state.run(['$state', function ($state) { }]);
118mod_rtr.run(['$urlRouter', function ($urlRouter) { }]);
119mod_init.run(runBlock);
120/** @hidden TODO: find a place to move this */
121exports.getLocals = function (ctx) {
122 var tokens = ctx.getTokens().filter(core_1.isString);
123 var tuples = tokens.map(function (key) {
124 var resolvable = ctx.getResolvable(key);
125 var waitPolicy = ctx.getPolicy(resolvable).async;
126 return [key, waitPolicy === 'NOWAIT' ? resolvable.promise : resolvable.data];
127 });
128 return tuples.reduce(core_1.applyPairs, {});
129};
130//# sourceMappingURL=services.js.map
\No newline at end of file