54 Commits

Author SHA1 Message Date
61a5317b25 fix(ViewController): nav must be set as soon as possible
fixes regression in 5a4c6093a72059577544dafe372e06018ee1ed19
fixes #10654
2017-03-05 16:00:47 +01:00
5a4c6093a7 refactor(NavController): adds better error handling
fixes #10090
2017-03-03 21:11:58 +01:00
9e4c3a6e3e feat(split-panel): split panel support for ion-nav and ion-menu (#10343)
* feat(split-panel): split panel support for ion-nav and ion-menu

Revert some changes

adds support split-panel support for tabs

Removes .orig

removes e2e.ts

Removes unneeded changes in menu.ts

improves stuff

* fix(split-panel): resize is called when menu wraps a ion-nav

* test(split-panel): improves split-panel/basic test

* feat(split-panel): ionChange is an ng2 @Output()

* fix(split-panel): fix tabs as side content

* fix(menu): forzedClose works as expected

* feat(split-panel): split-panel works with several menus

* chore(split-panel): renames to split-pane

* refactor(split-pane): splitPane can be injected

* fix(split-pane): it is a directive

* fix(slides): integration with split-panel

* Make gulp validate happy
2017-03-03 20:13:07 +01:00
fdd50ba47c refactor(navcontroller): clean up and algorithm documented 2017-02-28 17:53:49 +01:00
8d9f374065 fix(all): memory leaks
fixes #10459
fixes #10416
fixes #10286
2017-02-28 17:50:42 +01:00
eaa62484d7 fix(nav): fixes #9558 (#9767) 2017-01-13 14:24:21 -05:00
d46b3e8e9f docs(nav): fix typos in comments for NavControllerBase and ViewController (#9953)
* docs(nav): fix typo

* docs(view): fix typo
2017-01-11 16:23:18 -05:00
8ca9797c0f fix(clickblock): add NavOptions.minClickBlockDuration
* feat(clickblock): ability to set a minimum duration for click block

* fix(clickblock): add NavOptions.minClickBlockDuration
2017-01-09 16:44:37 -06:00
7000b1b173 refactor: improve tree shaking abilities
Internal refactor completed in order to improve tree shaking and dead
code removal. The public API, with an exception to ion-slides, has
stayed the same. However, internally many changes were required so
bundlers could better exclude modules which should not be bundled.
Ultimately most changes resorted to removing references to `window` or
`document`, or a module that referenced one of those.

BREAKING CHANGES

ion-slides was refactored to remove the external dependencies, and
rewritten in TypeScript/ES6 modules to again improve tree shaking
abilities.
2017-01-09 09:51:39 -06:00
68eb1b7cb5 fix(viewcontroller): onDidDismiss() is always called
fixes #8223
2016-12-05 14:53:24 -06:00
db20af7498 chore(): fixes compilation 2016-10-01 19:13:36 +02:00
8de253a9b1 fix(app): go back navigation can close menus 2016-12-02 14:06:51 +01:00
c08c21a4a0 refactor(gestures): using new DomController 2016-12-02 11:45:26 +01:00
bdf02d4280 chore(util): add removeArrayItem fn 2016-11-29 10:21:47 -06:00
6b3e2ed447 fix(nav): popTo() uses the new removeView API 2016-11-28 01:39:25 +01:00
16bfb49395 fix(nav): prevents to remove all views in the nav stack
fixes #9140
2016-11-28 01:38:21 +01:00
4aa1ada7d5 perf(nav): minor performance improvements 2016-11-28 01:34:19 +01:00
5ff7072242 fix(nav): async removing for views 2016-11-26 18:33:06 +01:00
75186b447c fix(toast): toast does not disable the app
fixes #9339
2016-11-26 18:32:21 +01:00
4be47bd3dd fix(animation): improve menu and go back swipe 2016-11-21 23:09:57 +01:00
70f8a8e5eb fix(nav): zIndex in overlays 2016-11-16 12:17:25 -06:00
b77b2ae440 fix(nav): willLeave is called before willEnter
fixes #9163
2016-11-15 10:42:03 +01:00
909293a735 fix(nav): fixes empty stack condition 2016-11-14 21:11:31 +01:00
d6418e1dc4 fix(nav): do not allow removing all views from a nav
* fix(nav): controller is initialized

* fix(nav): transitioning state is a boolean not a timer

long async promises in canLeave / canEnter can lead to a false negative of isTransitioning()
It is key for the internal consistency of NavController to always know the correct state

* fix(nav): returning Promise<false> in canLeave / canEnter works as expected

* fix(nav): it is not allowed to pop all the views
2016-11-14 09:46:45 -06:00
dec5a0b35c perf(item): reorder is only added to the DOM if needed
I have measured the performance impact of this change, since we use the push change detector strategy, the *ngIf is only evaluated once.

Items wrapped around an element with the ListReorder directive will receive a hidden `<ion-reorder>` in their DOM, but items that are not wrapped (i.e. they CAN NOT be reordered) will not even have the `<ion-reorder>` element in their DOM.

fixes #9065
2016-11-08 13:22:12 +01:00
be72d39bd9 perf(nav): avoid running zone when it is not needed 2016-11-07 20:59:48 +01:00
0ab990c015 fix(nav): it is not allowed to pop all the views 2016-11-04 20:18:29 +01:00
5f1a86265c fix(nav): returning Promise<false> in canLeave / canEnter works as expected 2016-11-04 20:18:09 +01:00
63d495ae43 fix(nav): transitioning state is a boolean not a timer
long async promises in canLeave / canEnter can lead to a false negative of isTransitioning()
It is key for the internal consistency of NavController to always know the correct state
2016-11-04 20:16:56 +01:00
beab06f7ce fix(nav): controller is initialized 2016-11-04 20:12:04 +01:00
17dbf695c7 fix(nav): willLoad() does not have to be zone wrapped 2016-11-01 23:56:50 +01:00
04d61ee47a fix(nav): swipe to go back gesture
- smoother by debouncing touch events (reduces bank)
- dynamic animation duration
- intelligent behavior based in the position, speed and direccion of the swipe (sharing logic with sliding item)

fixes #8919
fixes #8958
fixes #7934
2016-11-01 13:38:27 -05:00
033e1eae17 fix(nav): adds public willLoad lifecycle event
* fix(nav): adds public willLoad lifecycle event

* test(menu): adds more asserts
2016-11-01 13:12:29 -05:00
c1ba120b74 fix(picker): fixes regression in picker but introduces new bug.
OnDidLoad is called before ngonInit() is not called in children
2016-10-27 01:13:07 +02:00
e89f3b0206 fix(nav): ionViewDidLoad fires before children components have been loaded
fixes #8449
2016-10-24 23:12:07 +02:00
8b65398044 fix(nav): view.id is not overridden
fixes #8794
2016-10-20 22:06:43 +02:00
d84d8a6471 fix(tabs): regression in nav-controller-base 2016-10-19 01:14:27 +02:00
13b32896fa refactor(nav): adds some asserts and small changes 2016-10-18 19:09:38 +02:00
d9e8b1bec6 refactor(nav-controller-base): cleanup some logic
NavControllerBase is the core of ionic 2 navigation. It handles all the transitions and it is complicated code to follow.
I am refactoring it to allow future developers and contributors to follow it better.

!node.parent now becomes node.isRoot()

ViewController does not remove itself from the stack, but two new auxiliar function in nav controller: _insertView() and _removeView() are used to add a view to the stack.

And so on...

All e2e and unit tests passing...
2016-10-18 16:36:55 +02:00
ff1f340285 test(assert): adds new debugging assert() util
improves removing of console.debug statements

fixes #8483
2016-10-18 09:10:00 -05:00
eb317d410c fix(nav): clickblock is disabled longer
fixes #8713
2016-10-16 02:52:15 +02:00
ba557acb4f fix(nav): ion-nav inside ion-content work properly 2016-10-15 02:59:57 +02:00
35568ba85f chore: removed deprecated APIs 2016-10-13 11:02:45 -05:00
a40b42c055 fix(modal): canEnter is called in modals 2016-10-12 22:56:24 +02:00
1300cbd7c0 test(modal): adds canLeave test 2016-10-12 22:47:31 +02:00
451ffe1133 fix(nav): ionViewDidLoad is called in modals
fixes #8449
2016-10-12 11:38:44 -05:00
c8954d8a16 fix(nav): ionViewCanLeave does not break navigation
fixes #8408
2016-10-10 21:45:58 +02:00
6496c7a996 fix(nav): remove incorrectly used removeStart as a starting index in for loop. Fixes #8442 2016-10-08 20:22:11 -05:00
88da70c386 test(nav): pushing/pop pages from lifecycle events
references #8510
2016-10-08 18:11:57 +02:00
8878e70227 feat(events): handler argument is optional in unsubscribe()
fixes #8235
2016-10-01 01:07:00 +02:00