@angular-wave/angular.ts 0.0.11 → 0.0.13

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.
Files changed (79) hide show
  1. package/dist/angular-ts.esm.js +1 -1
  2. package/dist/angular-ts.umd.js +1 -1
  3. package/package.json +4 -1
  4. package/src/exts/messages.md +30 -30
  5. package/src/index.js +1 -0
  6. package/src/public.js +2 -0
  7. package/src/router/adapter/directives/stateDirectives.js +695 -0
  8. package/src/router/adapter/directives/viewDirective.js +514 -0
  9. package/src/router/adapter/injectables.js +314 -0
  10. package/src/router/adapter/interface.js +1 -0
  11. package/src/router/adapter/locationServices.js +84 -0
  12. package/src/router/adapter/services.js +126 -0
  13. package/src/router/adapter/stateFilters.js +43 -0
  14. package/src/router/adapter/stateProvider.js +137 -0
  15. package/src/router/adapter/statebuilders/onEnterExitRetain.js +30 -0
  16. package/src/router/adapter/statebuilders/views.js +146 -0
  17. package/src/router/adapter/templateFactory.js +218 -0
  18. package/src/router/adapter/viewScroll.js +31 -0
  19. package/src/router/core/common/common.js +496 -0
  20. package/src/router/core/common/coreservices.js +15 -0
  21. package/src/router/core/common/glob.js +75 -0
  22. package/src/router/core/common/hof.js +194 -0
  23. package/src/router/core/common/predicates.js +44 -0
  24. package/src/router/core/common/queue.js +41 -0
  25. package/src/router/core/common/safeConsole.js +38 -0
  26. package/src/router/core/common/strings.js +141 -0
  27. package/src/router/core/common/trace.js +232 -0
  28. package/src/router/core/globals.js +29 -0
  29. package/src/router/core/hooks/coreResolvables.js +33 -0
  30. package/src/router/core/hooks/ignoredTransition.js +25 -0
  31. package/src/router/core/hooks/invalidTransition.js +14 -0
  32. package/src/router/core/hooks/lazyLoad.js +102 -0
  33. package/src/router/core/hooks/onEnterExitRetain.js +55 -0
  34. package/src/router/core/hooks/redirectTo.js +36 -0
  35. package/src/router/core/hooks/resolve.js +57 -0
  36. package/src/router/core/hooks/updateGlobals.js +30 -0
  37. package/src/router/core/hooks/url.js +25 -0
  38. package/src/router/core/hooks/views.js +39 -0
  39. package/src/router/core/interface.js +3 -0
  40. package/src/router/core/params/README.md +8 -0
  41. package/src/router/core/params/param.js +232 -0
  42. package/src/router/core/params/paramType.js +139 -0
  43. package/src/router/core/params/paramTypes.js +163 -0
  44. package/src/router/core/params/stateParams.js +35 -0
  45. package/src/router/core/path/pathNode.js +77 -0
  46. package/src/router/core/path/pathUtils.js +199 -0
  47. package/src/router/core/resolve/interface.js +10 -0
  48. package/src/router/core/resolve/resolvable.js +124 -0
  49. package/src/router/core/resolve/resolveContext.js +211 -0
  50. package/src/router/core/router.js +203 -0
  51. package/src/router/core/state/README.md +21 -0
  52. package/src/router/core/state/stateBuilder.js +332 -0
  53. package/src/router/core/state/stateMatcher.js +65 -0
  54. package/src/router/core/state/stateObject.js +117 -0
  55. package/src/router/core/state/stateQueueManager.js +89 -0
  56. package/src/router/core/state/stateRegistry.js +175 -0
  57. package/src/router/core/state/stateService.js +592 -0
  58. package/src/router/core/state/targetState.js +159 -0
  59. package/src/router/core/transition/hookBuilder.js +127 -0
  60. package/src/router/core/transition/hookRegistry.js +175 -0
  61. package/src/router/core/transition/interface.js +14 -0
  62. package/src/router/core/transition/rejectFactory.js +122 -0
  63. package/src/router/core/transition/transition.js +739 -0
  64. package/src/router/core/transition/transitionEventType.js +27 -0
  65. package/src/router/core/transition/transitionHook.js +199 -0
  66. package/src/router/core/transition/transitionService.js +311 -0
  67. package/src/router/core/url/interface.js +1 -0
  68. package/src/router/core/url/urlConfig.js +165 -0
  69. package/src/router/core/url/urlMatcher.js +548 -0
  70. package/src/router/core/url/urlMatcherFactory.js +123 -0
  71. package/src/router/core/url/urlRouter.js +115 -0
  72. package/src/router/core/url/urlRule.js +202 -0
  73. package/src/router/core/url/urlRules.js +348 -0
  74. package/src/router/core/url/urlService.js +268 -0
  75. package/src/router/core/view/interface.js +1 -0
  76. package/src/router/core/view/view.js +312 -0
  77. package/src/router/router.js +58 -0
  78. package/test/module-test.html +6 -2
  79. package/test/module-test.js +0 -0
@@ -0,0 +1,29 @@
1
+ import { StateParams } from "./params/stateParams";
2
+ import { Queue } from "./common/queue";
3
+ /**
4
+ * Global router state
5
+ *
6
+ * This is where we hold the global mutable state such as current state, current
7
+ * params, current transition, etc.
8
+ */
9
+ export class UIRouterGlobals {
10
+ constructor() {
11
+ /**
12
+ * Current parameter values
13
+ *
14
+ * The parameter values from the latest successful transition
15
+ */
16
+ this.params = new StateParams();
17
+ /** @internal */
18
+ this.lastStartedTransitionId = -1;
19
+ /** @internal */
20
+ this.transitionHistory = new Queue([], 1);
21
+ /** @internal */
22
+ this.successfulTransitions = new Queue([], 1);
23
+ }
24
+ dispose() {
25
+ this.transitionHistory.clear();
26
+ this.successfulTransitions.clear();
27
+ this.transition = null;
28
+ }
29
+ }
@@ -0,0 +1,33 @@
1
+ import { Transition } from "../transition/transition";
2
+ import { UIRouter } from "../router";
3
+ import { Resolvable } from "../resolve/resolvable";
4
+ import { inArray, uniqR, unnestR } from "../common/common";
5
+ function addCoreResolvables(trans) {
6
+ trans.addResolvable(Resolvable.fromData(UIRouter, trans.router), "");
7
+ trans.addResolvable(Resolvable.fromData(Transition, trans), "");
8
+ trans.addResolvable(Resolvable.fromData("$transition$", trans), "");
9
+ trans.addResolvable(Resolvable.fromData("$stateParams", trans.params()), "");
10
+ trans.entering().forEach((state) => {
11
+ trans.addResolvable(Resolvable.fromData("$state$", state), state);
12
+ });
13
+ }
14
+ export const registerAddCoreResolvables = (transitionService) =>
15
+ transitionService.onCreate({}, addCoreResolvables);
16
+ const TRANSITION_TOKENS = ["$transition$", Transition];
17
+ const isTransition = inArray(TRANSITION_TOKENS);
18
+ // References to Transition in the treeChanges pathnodes makes all
19
+ // previous Transitions reachable in memory, causing a memory leak
20
+ // This function removes resolves for '$transition$' and `Transition` from the treeChanges.
21
+ // Do not use this on current transitions, only on old ones.
22
+ export const treeChangesCleanup = (trans) => {
23
+ const nodes = Object.values(trans.treeChanges())
24
+ .reduce(unnestR, [])
25
+ .reduce(uniqR, []);
26
+ // If the resolvable is a Transition, return a new resolvable with null data
27
+ const replaceTransitionWithNull = (r) => {
28
+ return isTransition(r.token) ? Resolvable.fromData(r.token, null) : r;
29
+ };
30
+ nodes.forEach((node) => {
31
+ node.resolvables = node.resolvables.map(replaceTransitionWithNull);
32
+ });
33
+ };
@@ -0,0 +1,25 @@
1
+ import { trace } from "../common/trace";
2
+ import { Rejection } from "../transition/rejectFactory";
3
+ /**
4
+ * A [[TransitionHookFn]] that skips a transition if it should be ignored
5
+ *
6
+ * This hook is invoked at the end of the onBefore phase.
7
+ *
8
+ * If the transition should be ignored (because no parameter or states changed)
9
+ * then the transition is ignored and not processed.
10
+ */
11
+ function ignoredHook(trans) {
12
+ const ignoredReason = trans._ignoredReason();
13
+ if (!ignoredReason) return;
14
+ trace.traceTransitionIgnored(trans);
15
+ const pending = trans.router.globals.transition;
16
+ // The user clicked a link going back to the *current state* ('A')
17
+ // However, there is also a pending transition in flight (to 'B')
18
+ // Abort the transition to 'B' because the user now wants to be back at 'A'.
19
+ if (ignoredReason === "SameAsCurrent" && pending) {
20
+ pending.abort();
21
+ }
22
+ return Rejection.ignored().toPromise();
23
+ }
24
+ export const registerIgnoredTransitionHook = (transitionService) =>
25
+ transitionService.onBefore({}, ignoredHook, { priority: -9999 });
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A [[TransitionHookFn]] that rejects the Transition if it is invalid
3
+ *
4
+ * This hook is invoked at the end of the onBefore phase.
5
+ * If the transition is invalid (for example, param values do not validate)
6
+ * then the transition is rejected.
7
+ */
8
+ function invalidTransitionHook(trans) {
9
+ if (!trans.valid()) {
10
+ throw new Error(trans.error().toString());
11
+ }
12
+ }
13
+ export const registerInvalidTransitionHook = (transitionService) =>
14
+ transitionService.onBefore({}, invalidTransitionHook, { priority: -10000 });
@@ -0,0 +1,102 @@
1
+ import { services } from "../common/coreservices";
2
+ /**
3
+ * A [[TransitionHookFn]] that performs lazy loading
4
+ *
5
+ * When entering a state "abc" which has a `lazyLoad` function defined:
6
+ * - Invoke the `lazyLoad` function (unless it is already in process)
7
+ * - Flag the hook function as "in process"
8
+ * - The function should return a promise (that resolves when lazy loading is complete)
9
+ * - Wait for the promise to settle
10
+ * - If the promise resolves to a [[LazyLoadResult]], then register those states
11
+ * - Flag the hook function as "not in process"
12
+ * - If the hook was successful
13
+ * - Remove the `lazyLoad` function from the state declaration
14
+ * - If all the hooks were successful
15
+ * - Retry the transition (by returning a TargetState)
16
+ *
17
+ * ```
18
+ * .state('abc', {
19
+ * component: 'fooComponent',
20
+ * lazyLoad: () => import('./fooComponent')
21
+ * });
22
+ * ```
23
+ *
24
+ * See [[StateDeclaration.lazyLoad]]
25
+ */
26
+ const lazyLoadHook = (transition) => {
27
+ const router = transition.router;
28
+ function retryTransition() {
29
+ if (transition.originalTransition().options().source !== "url") {
30
+ // The original transition was not triggered via url sync
31
+ // The lazy state should be loaded now, so re-try the original transition
32
+ const orig = transition.targetState();
33
+ return router.stateService.target(
34
+ orig.identifier(),
35
+ orig.params(),
36
+ orig.options(),
37
+ );
38
+ }
39
+ // The original transition was triggered via url sync
40
+ // Run the URL rules and find the best match
41
+ const $url = router.urlService;
42
+ const result = $url.match($url.parts());
43
+ const rule = result && result.rule;
44
+ // If the best match is a state, redirect the transition (instead
45
+ // of calling sync() which supersedes the current transition)
46
+ if (rule && rule.type === "STATE") {
47
+ const state = rule.state;
48
+ const params = result.match;
49
+ return router.stateService.target(state, params, transition.options());
50
+ }
51
+ // No matching state found, so let .sync() choose the best non-state match/otherwise
52
+ router.urlService.sync();
53
+ }
54
+ const promises = transition
55
+ .entering()
56
+ .filter((state) => !!state.$$state().lazyLoad)
57
+ .map((state) => lazyLoadState(transition, state));
58
+ return services.$q.all(promises).then(retryTransition);
59
+ };
60
+ export const registerLazyLoadHook = (transitionService) =>
61
+ transitionService.onBefore(
62
+ { entering: (state) => !!state.lazyLoad },
63
+ lazyLoadHook,
64
+ );
65
+ /**
66
+ * Invokes a state's lazy load function
67
+ *
68
+ * @param transition a Transition context
69
+ * @param state the state to lazy load
70
+ * @returns A promise for the lazy load result
71
+ */
72
+ export function lazyLoadState(transition, state) {
73
+ const lazyLoadFn = state.$$state().lazyLoad;
74
+ // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked
75
+ let promise = lazyLoadFn["_promise"];
76
+ if (!promise) {
77
+ const success = (result) => {
78
+ delete state.lazyLoad;
79
+ delete state.$$state().lazyLoad;
80
+ delete lazyLoadFn["_promise"];
81
+ return result;
82
+ };
83
+ const error = (err) => {
84
+ delete lazyLoadFn["_promise"];
85
+ return services.$q.reject(err);
86
+ };
87
+ promise = lazyLoadFn["_promise"] = services.$q
88
+ .when(lazyLoadFn(transition, state))
89
+ .then(updateStateRegistry)
90
+ .then(success, error);
91
+ }
92
+ /** Register any lazy loaded state definitions */
93
+ function updateStateRegistry(result) {
94
+ if (result && Array.isArray(result.states)) {
95
+ result.states.forEach((_state) =>
96
+ transition.router.stateRegistry.register(_state),
97
+ );
98
+ }
99
+ return result;
100
+ }
101
+ return promise;
102
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * A factory which creates an onEnter, onExit or onRetain transition hook function
3
+ *
4
+ * The returned function invokes the (for instance) state.onEnter hook when the
5
+ * state is being entered.
6
+ */
7
+ function makeEnterExitRetainHook(hookName) {
8
+ return (transition, state) => {
9
+ const _state = state.$$state();
10
+ const hookFn = _state[hookName];
11
+ return hookFn(transition, state);
12
+ };
13
+ }
14
+ /**
15
+ * The [[TransitionStateHookFn]] for onExit
16
+ *
17
+ * When the state is being exited, the state's .onExit function is invoked.
18
+ *
19
+ * Registered using `transitionService.onExit({ exiting: (state) => !!state.onExit }, onExitHook);`
20
+ *
21
+ * See: [[IHookRegistry.onExit]]
22
+ */
23
+ const onExitHook = makeEnterExitRetainHook("onExit");
24
+ export const registerOnExitHook = (transitionService) =>
25
+ transitionService.onExit({ exiting: (state) => !!state.onExit }, onExitHook);
26
+ /**
27
+ * The [[TransitionStateHookFn]] for onRetain
28
+ *
29
+ * When the state was already entered, and is not being exited or re-entered, the state's .onRetain function is invoked.
30
+ *
31
+ * Registered using `transitionService.onRetain({ retained: (state) => !!state.onRetain }, onRetainHook);`
32
+ *
33
+ * See: [[IHookRegistry.onRetain]]
34
+ */
35
+ const onRetainHook = makeEnterExitRetainHook("onRetain");
36
+ export const registerOnRetainHook = (transitionService) =>
37
+ transitionService.onRetain(
38
+ { retained: (state) => !!state.onRetain },
39
+ onRetainHook,
40
+ );
41
+ /**
42
+ * The [[TransitionStateHookFn]] for onEnter
43
+ *
44
+ * When the state is being entered, the state's .onEnter function is invoked.
45
+ *
46
+ * Registered using `transitionService.onEnter({ entering: (state) => !!state.onEnter }, onEnterHook);`
47
+ *
48
+ * See: [[IHookRegistry.onEnter]]
49
+ */
50
+ const onEnterHook = makeEnterExitRetainHook("onEnter");
51
+ export const registerOnEnterHook = (transitionService) =>
52
+ transitionService.onEnter(
53
+ { entering: (state) => !!state.onEnter },
54
+ onEnterHook,
55
+ );
@@ -0,0 +1,36 @@
1
+ import { isString, isFunction } from "../common/predicates";
2
+ import { services } from "../common/coreservices";
3
+ import { TargetState } from "../state/targetState";
4
+ /**
5
+ * A [[TransitionHookFn]] that redirects to a different state or params
6
+ *
7
+ * Registered using `transitionService.onStart({ to: (state) => !!state.redirectTo }, redirectHook);`
8
+ *
9
+ * See [[StateDeclaration.redirectTo]]
10
+ */
11
+ const redirectToHook = (trans) => {
12
+ const redirect = trans.to().redirectTo;
13
+ if (!redirect) return;
14
+ const $state = trans.router.stateService;
15
+ function handleResult(result) {
16
+ if (!result) return;
17
+ if (result instanceof TargetState) return result;
18
+ if (isString(result))
19
+ return $state.target(result, trans.params(), trans.options());
20
+ if (result["state"] || result["params"])
21
+ return $state.target(
22
+ result["state"] || trans.to(),
23
+ result["params"] || trans.params(),
24
+ trans.options(),
25
+ );
26
+ }
27
+ if (isFunction(redirect)) {
28
+ return services.$q.when(redirect(trans)).then(handleResult);
29
+ }
30
+ return handleResult(redirect);
31
+ };
32
+ export const registerRedirectToHook = (transitionService) =>
33
+ transitionService.onStart(
34
+ { to: (state) => !!state.redirectTo },
35
+ redirectToHook,
36
+ );
@@ -0,0 +1,57 @@
1
+ import { noop } from "../common/common";
2
+ import { ResolveContext } from "../resolve/resolveContext";
3
+ import { val } from "../common/hof";
4
+ export const RESOLVE_HOOK_PRIORITY = 1000;
5
+ /**
6
+ * A [[TransitionHookFn]] which resolves all EAGER Resolvables in the To Path
7
+ *
8
+ * Registered using `transitionService.onStart({}, eagerResolvePath, { priority: 1000 });`
9
+ *
10
+ * When a Transition starts, this hook resolves all the EAGER Resolvables, which the transition then waits for.
11
+ *
12
+ * See [[StateDeclaration.resolve]]
13
+ */
14
+ const eagerResolvePath = (trans) =>
15
+ new ResolveContext(trans.treeChanges().to)
16
+ .resolvePath("EAGER", trans)
17
+ .then(noop);
18
+ export const registerEagerResolvePath = (transitionService) =>
19
+ transitionService.onStart({}, eagerResolvePath, {
20
+ priority: RESOLVE_HOOK_PRIORITY,
21
+ });
22
+ /**
23
+ * A [[TransitionHookFn]] which resolves all LAZY Resolvables for the state (and all its ancestors) in the To Path
24
+ *
25
+ * Registered using `transitionService.onEnter({ entering: () => true }, lazyResolveState, { priority: 1000 });`
26
+ *
27
+ * When a State is being entered, this hook resolves all the Resolvables for this state, which the transition then waits for.
28
+ *
29
+ * See [[StateDeclaration.resolve]]
30
+ */
31
+ const lazyResolveState = (trans, state) =>
32
+ new ResolveContext(trans.treeChanges().to)
33
+ .subContext(state.$$state())
34
+ .resolvePath("LAZY", trans)
35
+ .then(noop);
36
+ export const registerLazyResolveState = (transitionService) =>
37
+ transitionService.onEnter({ entering: val(true) }, lazyResolveState, {
38
+ priority: RESOLVE_HOOK_PRIORITY,
39
+ });
40
+ /**
41
+ * A [[TransitionHookFn]] which resolves any dynamically added (LAZY or EAGER) Resolvables.
42
+ *
43
+ * Registered using `transitionService.onFinish({}, eagerResolvePath, { priority: 1000 });`
44
+ *
45
+ * After all entering states have been entered, this hook resolves any remaining Resolvables.
46
+ * These are typically dynamic resolves which were added by some Transition Hook using [[Transition.addResolvable]].
47
+ *
48
+ * See [[StateDeclaration.resolve]]
49
+ */
50
+ const resolveRemaining = (trans) =>
51
+ new ResolveContext(trans.treeChanges().to)
52
+ .resolvePath("LAZY", trans)
53
+ .then(noop);
54
+ export const registerResolveRemaining = (transitionService) =>
55
+ transitionService.onFinish({}, resolveRemaining, {
56
+ priority: RESOLVE_HOOK_PRIORITY,
57
+ });
@@ -0,0 +1,30 @@
1
+ import { copy } from "../common/common";
2
+ /**
3
+ * A [[TransitionHookFn]] which updates global UI-Router state
4
+ *
5
+ * Registered using `transitionService.onBefore({}, updateGlobalState);`
6
+ *
7
+ * Before a [[Transition]] starts, updates the global value of "the current transition" ([[Globals.transition]]).
8
+ * After a successful [[Transition]], updates the global values of "the current state"
9
+ * ([[Globals.current]] and [[Globals.$current]]) and "the current param values" ([[Globals.params]]).
10
+ *
11
+ * See also the deprecated properties:
12
+ * [[StateService.transition]], [[StateService.current]], [[StateService.params]]
13
+ */
14
+ const updateGlobalState = (trans) => {
15
+ const globals = trans.router.globals;
16
+ const transitionSuccessful = () => {
17
+ globals.successfulTransitions.enqueue(trans);
18
+ globals.$current = trans.$to();
19
+ globals.current = globals.$current.self;
20
+ copy(trans.params(), globals.params);
21
+ };
22
+ const clearCurrentTransition = () => {
23
+ // Do not clear globals.transition if a different transition has started in the meantime
24
+ if (globals.transition === trans) globals.transition = null;
25
+ };
26
+ trans.onSuccess({}, transitionSuccessful, { priority: 10000 });
27
+ trans.promise.then(clearCurrentTransition, clearCurrentTransition);
28
+ };
29
+ export const registerUpdateGlobalState = (transitionService) =>
30
+ transitionService.onCreate({}, updateGlobalState);
@@ -0,0 +1,25 @@
1
+ /**
2
+ * A [[TransitionHookFn]] which updates the URL after a successful transition
3
+ *
4
+ * Registered using `transitionService.onSuccess({}, updateUrl);`
5
+ */
6
+ const updateUrl = (transition) => {
7
+ const options = transition.options();
8
+ const $state = transition.router.stateService;
9
+ const $urlRouter = transition.router.urlRouter;
10
+ // Dont update the url in these situations:
11
+ // The transition was triggered by a URL sync (options.source === 'url')
12
+ // The user doesn't want the url to update (options.location === false)
13
+ // The destination state, and all parents have no navigable url
14
+ if (
15
+ options.source !== "url" &&
16
+ options.location &&
17
+ $state.$current.navigable
18
+ ) {
19
+ const urlOptions = { replace: options.location === "replace" };
20
+ $urlRouter.push($state.$current.navigable.url, $state.params, urlOptions);
21
+ }
22
+ $urlRouter.update(true);
23
+ };
24
+ export const registerUpdateUrl = (transitionService) =>
25
+ transitionService.onSuccess({}, updateUrl, { priority: 9999 });
@@ -0,0 +1,39 @@
1
+ import { noop } from "../common/common";
2
+ import { services } from "../common/coreservices";
3
+ /**
4
+ * A [[TransitionHookFn]] which waits for the views to load
5
+ *
6
+ * Registered using `transitionService.onStart({}, loadEnteringViews);`
7
+ *
8
+ * Allows the views to do async work in [[ViewConfig.load]] before the transition continues.
9
+ * In angular 1, this includes loading the templates.
10
+ */
11
+ const loadEnteringViews = (transition) => {
12
+ const $q = services.$q;
13
+ const enteringViews = transition.views("entering");
14
+ if (!enteringViews.length) return;
15
+ return $q.all(enteringViews.map((view) => $q.when(view.load()))).then(noop);
16
+ };
17
+ export const registerLoadEnteringViews = (transitionService) =>
18
+ transitionService.onFinish({}, loadEnteringViews);
19
+ /**
20
+ * A [[TransitionHookFn]] which activates the new views when a transition is successful.
21
+ *
22
+ * Registered using `transitionService.onSuccess({}, activateViews);`
23
+ *
24
+ * After a transition is complete, this hook deactivates the old views from the previous state,
25
+ * and activates the new views from the destination state.
26
+ *
27
+ * See [[ViewService]]
28
+ */
29
+ const activateViews = (transition) => {
30
+ const enteringViews = transition.views("entering");
31
+ const exitingViews = transition.views("exiting");
32
+ if (!enteringViews.length && !exitingViews.length) return;
33
+ const $view = transition.router.viewService;
34
+ exitingViews.forEach((vc) => $view.deactivateViewConfig(vc));
35
+ enteringViews.forEach((vc) => $view.activateViewConfig(vc));
36
+ $view.sync();
37
+ };
38
+ export const registerActivateViews = (transitionService) =>
39
+ transitionService.onSuccess({}, activateViews);
@@ -0,0 +1,3 @@
1
+ export class UIRouterPluginBase {
2
+ dispose(router) {}
3
+ }
@@ -0,0 +1,8 @@
1
+ /\*\*
2
+
3
+ - This module contains code for State Parameters.
4
+ -
5
+ - See [[ParamDeclaration]]
6
+ -
7
+ - @packageDocumentation @preferred
8
+ \*/