190 Commits

Author SHA1 Message Date
Jason Aden
553a680817 fix(router): correct the segment parsing so it won't break on ampersand ()
PR Close 
2018-05-10 07:53:53 -07:00
Steven Liekens
4cfa571258 fix(router): cache route handle if found ()
When asking the route reuse strategy to retrieve a detached route handle, store the
return value in a local variable for further processing instead of asking again later.

resolves 

PR Close 
2018-04-23 13:35:59 -07:00
Steven Liekens
d37064ce28 test(router): fix typo in expectation ()
PR Close 
2018-04-04 08:22:03 -07:00
Igor Minar
22cb2c9441 build: add missing dependencies on @rxjs//operators needed for rxjs@6.0.0-beta.4 ()
PR Close 
2018-03-30 13:07:03 -07:00
Veres Lajos
de90314304 style: typos fixed - https://github.com/vlajos/misspell-fixer ()
PR Close 
2018-03-27 14:51:53 -04:00
Igor Minar
b43f8bc7d3 feat(core): upgrade rxjs to 6.0.0-alpha.4 ()
PR Close 
2018-03-19 21:51:51 -07:00
Alex Eagle
f9247e4b2e build: enable importHelpers in tsconfig ()
This is the primary tsconfig file used for Bazel builds.
Previously, we enabled this option only for releases.

PR Close 
2018-03-15 21:16:03 -07:00
Jason Aden
0bf6fa5b32 fix(router): correct over-encoding of URL fragment ()
Relates to:  

PR Close 
2018-03-11 22:15:01 -07:00
Jason Aden
fa974c7d4e fix(router): fix URL serialization so special characters are only encoded where needed ()
This change brings Angular largely in line with how AngularJS previously serialized URLs. This is based on RFC 3986 and resolves issues such as the above  where URLs could be parsed, re-serialized, then parsed again producing a different result on the second parsing.

Adjustments to be aware of in this commit:

* URI fragments will now serialize the same as query strings
* In the URI path or segments (portion prior to query string and/or fragment), the plus sign (`+`) and ampersand (`&`) will appear decoded
* In the URL path or segments, parentheses values (`(` and `)`) will now appear percent encoded as `%28` and `%29` respectively
* In the URL path or segments, semicolons will be encoded in their percent encoding `%3B`

NOTE: Parentheses and semicolons denoting auxillary routes or matrix params will still appear in their decoded form -- only parentheses and semicolons used as values in a segment or key/value pair for matrix params will be encoded.

While these changes are not considered breaking because applications should be decoding URLs and key/value pairs, it is possible that some unit tests will break if comparing hard-coded URLs in tests since that hard coded string will represent the old encoding. Therefore we are releasing this fix in the upcoming Angular v6 rather than adding it to a patch for v5.

Fixes: 

PR Close 
2018-03-06 06:58:08 -08:00
Victor Berchet
a4032296cc
Revert "fix(router): fix URL serialization so special characters are only encoded where needed ()"
This reverts commit 094666da17527333d66750d25154ee0c126d6745.
2018-02-23 18:12:40 -08:00
Jason Aden
094666da17 fix(router): fix URL serialization so special characters are only encoded where needed ()
Fixes: 

This change brings Angular largely in line with how AngularJS previously serialized URLs. This is based on [RFC 3986](http://tools.ietf.org/html/rfc3986) and resolves issues such as the above  where URLs could be parsed, re-serialized, then parsed again producing a different result on the second parsing.

Adjustments to be aware of in this commit:

* Query strings will now serialize with decoded slash (`/`) and question mark (`?`)
* URI fragments will now serialize the same as query strings, but hash sign (`#`) will also appear decoded
* In the URI path or segments (portion prior to query string and/or fragment), the plus sign (`+`) and ampersand (`&`) will appear decoded
* In the URL path or segments, parentheses values (`(` and `)`) will now appear percent encoded as `%28` and `%29` respectively
* In the URL path or segments, semicolons will be encoded in their percent encoding `%3B`

NOTE: Parentheses and semicolons denoting auxillary routes or matrix params will still appear in their decoded form -- only parentheses and semicolons used as values in a segment or key/value pair for matrix params will be encoded.

While these changes are not considered breaking because applications should be decoding URLs and key/value pairs, it is possible that some unit tests will break if comparing hard-coded URLs in tests since that hard coded string will represent the old encoding. Therefore we are releasing this fix in the upcoming Angular v6 rather than adding it to a patch for v5.

PR Close 
2018-02-23 13:20:51 -08:00
Jason Aden
45eff4cc65 fix(router): don't mutate route configs ()
Fixes 

PR Close 
2018-02-22 13:35:38 -08:00
Oussama Ben Brahim
f1a063298e feat(core): set preserveWhitespaces to false by default ()
Fixes 

PR Close 
2018-02-16 09:06:14 -08:00
vsavkin
c40ae7f7cf feat(router): add navigationSource and restoredState to NavigationStart event ()
Currently, NavigationStart there is no way to know if an navigation was triggered imperatively or via the location change. These two use cases should be handled differently for a variety of use cases (e.g., scroll position restoration). This PR adds a navigation source field and restored navigation id (passed to navigations triggered by a URL change).

PR Close 
2018-01-29 10:22:59 -08:00
Jason Aden
ede9cb7c2f Revert: "feat(router): add navigationSource and restoredState to NavigationStart event ()"
This reverts commit 3b7bab7d22064d545f1745dc3e062fcb1d91073b. Will be re-merged after fixing integration of minor breaking change.
2018-01-26 16:24:56 -08:00
vsavkin
3b7bab7d22 feat(router): add navigationSource and restoredState to NavigationStart event ()
Currently, NavigationStart there is no way to know if an navigation was triggered imperatively or via the location change. These two use cases should be handled differently for a variety of use cases (e.g., scroll position restoration). This PR adds a navigation source field and restored navigation id (passed to navigations triggered by a URL change).

PR Close 
2018-01-26 10:25:32 -08:00
Alex Eagle
a1492a73ce build: Remove angular_src nested workspace ()
PR Close 
2018-01-19 10:17:37 -08:00
Alex Eagle
c4f02e21dd build: move repeated tsconfig attributes to a macro ()
This helps ensure we use the same tsconfig.json file for all compilations.
Next steps are to make it the same tsconfig.json file used by the editor

PR Close 
2018-01-10 12:30:19 -08:00
Miško Hevery
ae97920fe2 build: move _testing_init into tools; limit web_test concurrency ()
PR Close 
2017-12-22 13:10:51 -08:00
Misko Hevery
40dfe39e64 build(router): enable bazel tests for router ()
Bazel runs on newer version of RxJs than is installed in Yarn. The never version subclasses `EmptyError` in a different way which fails the `instanceof` check. This change makes the `instanceof` check more robust with respect to `EmptyError`.

PR Close 
2017-12-22 13:10:51 -08:00
Misko Hevery
3d50fd7cac build: add bazel test rules for remainder of packages ()
PR Close 
2017-12-22 13:10:51 -08:00
Jason Aden
5ba1cf1063 fix(router): fix wildcard route with lazy loaded module (again) ()
Closes 

Description:
We doesn't handle children of wildcard route properly link. It's always an empty array.

Created from 

PR Close 
2017-12-22 09:20:11 -08:00
Zaven Muradyan
5efea2f6a0 feat(router): add "paramsInheritanceStrategy" router configuration option
Previously, the router would merge path and matrix params, as well as
data/resolve, with special rules (only merging down when the route has
an empty path, or is component-less). This change adds an extra option
"paramsInheritanceStrategy" which, when set to 'always', makes child
routes unconditionally inherit params from parent routes.

Closes .
2017-12-20 10:06:24 -08:00
vsavkin
d8cc09b76c fix(router): NavigatonError and NavigationCancel should be emitted after resetting the URL ()
PR Close 
2017-12-07 13:34:20 -08:00
Mark Kennedy
a622e19df6 fix(router): 'merge' queryParamHandling strategy should be able to remove query params ()
Closes , 

PR Close 
2017-11-14 11:01:04 -08:00
vsavkin
d3211a2468 feat(router): add "onSameUrlNavigation" router configuration option ()
PR Close 
2017-10-23 20:56:53 -04:00
vsavkin
adab4f3e49 fix(router): do not call location.go when skipping a navigation ()
Closes 

PR Close 
2017-10-23 20:56:52 -04:00
vsavkin
82fed62af2 fix(router): navigating to the current location works ()
Closes 

PR Close 
2017-10-23 20:56:52 -04:00
vsavkin
6f2939da62 fix(router): RouterLinkActive should update its state right after checking the children ()
Closes 

PR Close 
2017-10-18 11:17:55 -07:00
Tobias Bosch
b0c7ea8181 Revert "fix(router): RouterLinkActive should update its state right after checking the children ()"
This reverts commit c569b7524974200040c2abae6923cd4e6f59a13b.
As it was synched together with 5a9ed2de272912ac74ed56bfec4bdf4551f7b38e
which broke an internal test.
2017-10-18 09:58:41 -07:00
vsavkin
c569b75249 fix(router): RouterLinkActive should update its state right after checking the children ()
Closes 

PR Close 
2017-10-17 20:57:30 -07:00
Chuck Jazdzewski
d7eac7ee56 Revert "fix(router): navigating to the current location works ()"
This reverts commit 43c5b638b96a0c63f041a0b31e4c646ead72341b.
2017-10-09 16:38:12 -07:00
Chuck Jazdzewski
d53b96f2a2 Revert "fix(router): do not call location.go when skipping a navigation ()"
This reverts commit 66515412308138ad083bdd91ab2e80cd2bdf7fac.
2017-10-09 16:37:31 -07:00
vsavkin
6651541230 fix(router): do not call location.go when skipping a navigation ()
Closes 

PR Close 
2017-10-09 11:45:13 -07:00
vsavkin
43c5b638b9 fix(router): navigating to the current location works ()
Closes 

PR Close 
2017-10-09 11:45:13 -07:00
Chuck Jazdzewski
8e5b582b61 Revert "fix(router): navigating to the current location works ()"
This reverts commit b67d574a9562d76ab0a838f4d1b42501e5c5f09b.
2017-10-06 18:15:19 -07:00
Chuck Jazdzewski
0cc87c5ba1 Revert "fix(router): do not call location.go when skipping a navigation ()"
This reverts commit fdfa31798befb57d90770956cc95511d9b3b7bd1.
2017-10-06 18:15:16 -07:00
vsavkin
fdfa31798b fix(router): do not call location.go when skipping a navigation ()
Closes 

PR Close 
2017-10-06 15:35:25 -07:00
vsavkin
b67d574a95 fix(router): navigating to the current location works ()
Closes 

PR Close 
2017-10-06 15:35:24 -07:00
Victor Savkin
a9d32a3f89 fix(router): resolve and guards should be able to reject with null and undefined ()
Closes 
2017-09-28 11:06:08 -07:00
Olivier Combe
0f5c70d563 build: update npm dependencies ()
PR Close 
2017-09-22 13:20:52 -07:00
Jason Aden
8f7915022c feat(router): add ActivationStart/End events 2017-09-08 13:24:26 -04:00
Jason Aden
66f0ab0371 fix(router): adjust ChildActivation events to only fire when the child is actually changing ()
* The problem was with the `fireChildActivationStart` function. It was taking a `path` param, which was an
array of `ActivatedRouteSnapshot`s. The function was being fired for each piece of the route that was being
activated. This resulted in far too many `ChildActivationStart` events being fired, and being fired on routes
that weren't actually getting activated. This change fires the event only for those routes that are actually
being activated.

fixes 

PR Close 
2017-09-05 15:46:29 -05:00
Jason Aden
dce36751f5 refactor(router): remove RouteEvent base class ()
* Introduced with , `RouteEvents` don't actually have a common constructor. Reverting here to be able to add new functionality to ChildActivation events.

PR Close 
2017-09-05 15:46:29 -05:00
Miško Hevery
a80ecf6a77 Revert "refactor(router): remove deprecated initialNavigation options ()"
This reverts commit d76761bf0136e03dd998e614f0ddd74393bd6332.
2017-08-22 18:39:06 -05:00
Olivier Combe
d76761bf01 refactor(router): remove deprecated initialNavigation options ()
BREAKING CHANGE: the values `true`, `false`, `legacy_enabled` and `legacy_disabled` for the router parameter `initialNavigation` have been removed as they were deprecated. Use `enabled` or `disabled` instead.

PR Close 
2017-08-22 16:53:00 -05:00
Chuck Jazdzewski
3a227a1f6f refactor(router): compile router cleanly with TypeScript 2.4 () 2017-08-02 17:32:02 -07:00
Jason Aden
49cd8513e4 feat(router): add events tracking activation of individual routes
* Adds `ChildActivationStart` and `ChildActivationEnd`
* Adds test to verify the PreActivation phase of routing
2017-08-01 10:44:00 -07:00
Victor Berchet
9479a106bb build: enable TSLint on the packages folder 2017-07-31 15:47:57 -07:00
Miško Hevery
a7f2468184 Revert "fix(router): should throw when lazy loaded module doesn't define any routes ()"
This reverts commit 82923a381d96a7078d8b422e4ce6949e6c14950c.
2017-07-27 10:53:01 -07:00