Compare commits

..

303 Commits

Author SHA1 Message Date
Manuel Mtz-Almeida
6b92a5a8c2 fix(inputs): ionChange is fired after updating ngModel 2017-04-06 20:49:22 +02:00
Manuel Mtz-Almeida
59f9737d9b fix(tapclick): 300ms click delay 2017-04-06 18:05:47 +02:00
Manuel Mtz-Almeida
0967b63a51 fix(virtual-list): empty list crashes
fixes #11093
2017-04-06 18:05:20 +02:00
Manuel Mtz-Almeida
db37072c40 fix(scroll): scroll issues in UIWebView
fixes #11081
fixes #10976
fixes #10966
fixes #10936
fixes #11051
fixes #10889
2017-04-06 15:09:06 +02:00
perry
9316f73b81 chore(demos): send demos to content/docs/demos/src not …/src/src 2017-04-05 13:49:12 -05:00
Manuel Mtz-Almeida
55dfd254e5 Merge branch 'decorator-inheritance' 2017-04-05 20:35:16 +02:00
Musa Haidari
0a97cf2d5f docs(platform): removes extra word (typo) 2017-04-05 20:27:48 +02:00
Manuel Mtz-Almeida
94a33a74d2 Merge branch 'refactor-inputs' 2017-04-05 20:07:28 +02:00
Brandy Carney
b4c6cea760 docs(demos): remove custom css from label demo 2017-04-05 12:21:13 -04:00
Brandy Carney
0b440edc51 chore(ionic): release 3.0.0 2017-04-05 11:11:21 -04:00
Brandy Carney
e10f9b1a06 test(menu): update directory structure for menu/multiple 2017-04-05 10:26:36 -04:00
Brandy Carney
8586cc11ed fix(navigation): update the URL if there are no children navs 2017-04-04 17:01:26 -04:00
Ross Holdway
33be36d070 fix(slides): negative number indicates position starting at end (#10997)
* fix(slides): negative number indicates position starting at end

* refactor(slides): use var instead of let
2017-04-02 17:30:18 +02:00
JamesM
a0554573de docs(avatar): fix typo
'avatars' rather than 'avatar's' for plural
2017-04-02 15:05:05 +02:00
Manuel Mtz-Almeida
fa7ea0c617 feat(split-pane): adds enabled input
fixes #10949
2017-04-02 15:03:14 +02:00
Manuel Mtz-Almeida
c72598a810 docs(content): add docs about content.resize() 2017-04-02 15:03:14 +02:00
Vlad Topala
4ac8ffb6ed fix(datetime): emit ioncancel event on backdrop click for datetime (#10532)
* fix(datetime): emit ioncancel event on backdrop click for datetime component

* fix(datetime): emit ioncancel event on backdrop click for datetime component - fix for all picker components instead of specifically for datetime
2017-04-01 21:48:19 +02:00
Manuel Mtz-Almeida
979ca63a6a feat(split-pane): sizing via scss variables
fixes #10893
2017-04-01 21:42:18 +02:00
Manuel Mtz-Almeida
57f3f9742b fix(split-pane): rtf support
fixes #10903
2017-04-01 21:28:11 +02:00
Adam Bradley
74f90e6d57 chore(error): update ionic error handler 2017-03-31 21:45:20 -05:00
Perry Govier
44f36c4509 chore(CI): upgrade to Circle CI v2 and leverage multiple containers for demo builds (#10991)
* trying Circle CI v2

* paths are fun

* seeing how long a demos build takes

* Batching Demo builds

* testing demo builds on CI2

* batches count from 0

* ok, looks good. preparing for master branch

* forgot `production=true` flag. let’s test that quick.

* forgot to save the file

* making sure that docs are still copied over to ionic-site in the deploy phase

* getting ready for the PR again
2017-03-30 21:32:29 -05:00
Brandy Carney
eb468d2530 test(e2e): fix broken e2e tests for snapshot
removed the e2e.ts files from 3 split pane tests so they won’t show up
in snapshot
2017-03-30 11:09:55 -04:00
Manuel Mtz-Almeida
156b982510 fix(segment): fix disabled segment 2017-03-29 20:28:25 +02:00
Manuel Mtz-Almeida
84e84d3280 Misc 6 2017-03-29 19:32:26 +02:00
Manuel Mtz-Almeida
8eef99d82f Misc 5 2017-03-29 19:14:15 +02:00
Manuel Mtz-Almeida
404d977c81 fix(nav-controller): remove duplicated swipeBackEnabled input 2017-03-29 18:51:54 +02:00
Manuel Mtz-Almeida
682ce49592 fix(virtual-list): updates to angular 4 2017-03-29 18:37:12 +02:00
Manuel Mtz-Almeida
0cd9a373e7 Merge branch 'fix-autoenable-scroll-listener' 2017-03-29 18:33:09 +02:00
perry
41e34fc4ce chore(docs): moving docs from /docs/v2 to /docs 2017-03-29 11:00:52 -05:00
Manuel Mtz-Almeida
d9a7652912 fix(content): scroll listener is auto enabled
fixes #10938
2017-03-29 17:38:41 +02:00
Manuel Mtz-Almeida
515de26a8b Misc 4 2017-03-29 16:47:12 +02:00
Manuel Mtz-Almeida
c9851442c6 Misc 3 2017-03-29 14:11:19 +02:00
Manuel Mtz-Almeida
47e1cdce9d misc changes 3 2017-03-28 21:51:01 +02:00
Manuel Mtz-Almeida
6360d41f6a Misc changes 2 2017-03-28 21:37:11 +02:00
Manuel Mtz-Almeida
c19615ed11 Rever input refactor 2017-03-28 21:26:01 +02:00
Manuel Mtz-Almeida
b5c7ab2e98 misc changes 2017-03-28 21:21:37 +02:00
Manuel Mtz-Almeida
3d569eb88a test(select/segment): adds unit test for select and segment 2017-03-28 17:57:49 +02:00
Manuel Mtz-Almeida
9be5751eeb refactor(select): using BaseInput correctly + unit tests 2017-03-28 17:57:49 +02:00
Manu Mtz.-Almeida
9a4d81b329 refactor(all): consistent inputs
fixes #8578
2017-03-28 17:57:49 +02:00
Dan Bucholtz
54acc74fdb refactor(packaging): points to es5 code with es2015 import/header, points to umd cod
points to es5 code with es2015 import/header,  points to umd code,  points to
pure es2015 code
2017-03-27 16:42:01 -05:00
Max Lynch
3819740998 Update ts.tmpl 2017-03-27 16:18:12 -05:00
Brandy Carney
e8ba41aac2 docs(grid): update breakpoints map to begin with 0
closes driftcyo/ionic-site#1021
2017-03-27 16:59:36 -04:00
Brandy Carney
43de89f096 chore(dependencies): remove unused dependencies, update app scripts 2017-03-27 16:03:36 -04:00
Brandy Carney
9fd231a04c refactor(grid): add the css from the old grid
edit the existing grid tests to use latest attributes

fixes #10912
2017-03-27 14:37:46 -04:00
Brandy Carney
ccc3696b9a chore(dependencies): add angular animations 2017-03-27 13:38:29 -04:00
Brandy Carney
36b7d338f6 docs(navigation): move deep linker docs to ionic page 2017-03-27 13:33:47 -04:00
Brandy Carney
5974dcea9e docs(demos): update paths for fonts and stylesheet 2017-03-27 13:33:47 -04:00
Brandy Carney
9e4a5cb496 chore(package): update sassdoc dependency
closes #10774
2017-03-27 13:33:47 -04:00
jgw96
d403638d71 chore(package): update to angular 4 final 2017-03-24 12:12:00 -05:00
perry
93cfa17638 chore(demos): make sure version file is generated before demo gen 2017-03-23 18:06:07 -05:00
Manu Mtz.-Almeida
7272b5a42a refactor(all): color/mode inputs are not longer needed 2017-03-23 23:32:47 +01:00
Manu Mtz.-Almeida
7cee7b0eaf fix(content): bounding does not make sense in desktop 2017-03-23 23:13:50 +01:00
Manuel Mtz-Almeida
f20dda9da7 chore(virtual-list): fixes typescript types 2017-03-23 23:10:50 +01:00
Manuel Mtz-Almeida
ccb49f36d6 fix(virtual-list): several issues 2017-03-23 23:02:11 +01:00
Brandy Carney
8ac2ff485a test(img): remove extra app.module.ts file 2017-03-23 15:49:38 -04:00
Brandy Carney
63fd63e72e Merge branch 'master' into 3.0 2017-03-23 15:36:40 -04:00
Brandy Carney
a252a94136 refactor(slides): remove deprecated input, outputs, and function
BREAKING CHANGES

Slides input `options` has been removed. Please use the input
properties instead.

Slide event `ionWillChange` has been removed, please use
`ionSlideWillChange` instead.

Slide event `ionDidChange` has been removed, please use
`ionSlideDidChange` instead.

Slide event `ionDrag` has been removed, please use `ionSlideDrag`
instead.

Slides `getSlider()` method has been removed, please use the instance
of ion-slides.
2017-03-23 14:50:53 -04:00
Brandy Carney
19c36deea3 refactor(grid): remove the old grid system
BREAKING CHANGES:

Removed the deprecated (old) grid. See the blog post for more
information including steps to migrate:
http://blog.ionic.io/build-awesome-desktop-apps-with-ionics-new-responsi
ve-grid/
2017-03-23 14:42:19 -04:00
Brandy Carney
2827275da6 refactor(typography): remove the native element selectors
BREAKING CHANGES:

The following selectors to style the text color of the native text
elements have been removed:

```
h1[color], h2[color], h3[color], h4[color], h5[color], h6[color],
a[color]:not([ion-button]):not([ion-item]):not([ion-fab]), p[color],
span[color], b[color], i[color], strong[color], em[color],
small[color], sub[color], sup[color]
```

These have been throwing a deprecation warning since rc.3 but still
working. They are officially gone and therefore these elements will not
get the color unless the `ion-text` attribute is added. Please see the
documentation.
2017-03-23 13:02:54 -04:00
Manu Mtz.-Almeida
58b57c0ca7 fix(infinite-scroll): regression in #8099
references #10889
2017-03-23 17:54:14 +01:00
Manu Mtz.-Almeida
a3ead3d7c8 test(alert): adds usage of button.cssClass
references #10887
2017-03-23 17:38:56 +01:00
Manu Mtz.-Almeida
c78e0d21ec Merge branch 'master' of https://github.com/FdezRomero/ionic 2017-03-23 17:37:44 +01:00
jgw96
af6b54cda6 chore(templates): clean up generator templates 2017-03-23 11:09:25 -05:00
Daniel Imhoff
d04650c130 chore(templates): update component templates 2017-03-23 10:59:06 -05:00
mhartington
4e4e06898a docs(alert): fix input table 2017-03-23 08:44:10 -05:00
Rodrigo Fernández
4fbcda7440 fix(alert): add missing cssClass property for buttons
Commit 46fe1ff53c defined the `AlertButton` interface for the `buttons` array, but it's missing the `cssClass` property as described in the **Button options** section of the docs: http://ionicframework.com/docs/v2/api/components/alert/AlertController/#advanced
2017-03-23 12:52:15 +01:00
Brandy Carney
e07aad460d chore(ionic): release 2.3.0 2017-03-22 15:15:56 -04:00
Brandy Carney
d3e6b36a28 test(img): fix source path for the img 2017-03-22 15:05:42 -04:00
jgw96
4b9f673594 chore(templates): entryComponents are not needed with code splitting 2017-03-22 13:39:55 -05:00
jgw96
09b01baa4e chore(templates): clean up templates for new generators 2017-03-22 13:37:40 -05:00
Dan Bucholtz
a63f760786 chore(e2e): remove experimental deeplink arg, add deepLinksDir 2017-03-21 21:19:31 -05:00
Dan Bucholtz
e0b09615bd test(range): fix range/basic test 2017-03-21 21:19:03 -05:00
Dan Bucholtz
f88f588d2d test(img): img/basic test export MyImg component from NgModule 2017-03-21 16:56:15 -05:00
Manu Mtz.-Almeida
99142f8ebe fix(datetime): fixes date time in 3.0 + perf improvements 2017-03-21 19:47:52 +01:00
Dan Bucholtz
02f8f11e74 test(e2e): fix broken tests
fix broken tests
2017-03-21 12:10:03 -05:00
Dan Bucholtz
daab927fbd chore(readme): update readme for e2e tests with concurrency and dev flags 2017-03-21 12:09:32 -05:00
Dan Bucholtz
945cd8ff52 test(e2e): restructure e2e to tests to import modules
restructure e2e to tests to import modules
2017-03-21 10:49:11 -05:00
Manu Mtz.-Almeida
e1617c1433 chore(build): fix early return 2017-03-21 16:32:51 +01:00
Brandy Carney
a2a77f06d1 test(datetime): fix failing karma test 2017-03-21 10:12:07 -04:00
Brandy Carney
042f698555 Merge branch 'master' into 3.0
# Conflicts:
#	src/components/action-sheet/test/basic/pages/page-one/page-one.ts
#	src/components/alert/alert.ts
#	src/components/content/content.ts
#	src/components/datetime/datetime.ts
#	src/components/datetime/test/datetime.spec.ts
#	src/components/loading/loading.ts
#	src/components/modal/test/basic/app.module.ts
#	src/components/picker/picker-component.ts
#	src/components/toast/toast.ts
#	src/components/toolbar/toolbar.ios.scss
#	src/components/toolbar/toolbar.md.scss
#	src/components/toolbar/toolbar.wp.scss
#	src/components/virtual-scroll/test/basic/app.module.ts
#	src/util/util.ts
2017-03-20 18:07:38 -04:00
Brandy Carney
5c612aa33e chore(zone): update zone dependency to 0.8.4 2017-03-20 15:38:22 -04:00
jgw96
b56b0e8105 chore(templates): change from deeplink to IonicPage 2017-03-20 14:04:51 -05:00
Brandy Carney
0ccd96e8b5 fix(item-sliding): add forwardRef for item options 2017-03-20 13:06:29 -04:00
Dan Bucholtz
af16846568 chore(e2e): rename to to standardize on format
rename  to  to standardize on format
2017-03-20 11:57:26 -05:00
Dan Bucholtz
d5ba56f144 test(item): item/sliding test structure updated
item/sliding test structure updated
2017-03-20 11:54:34 -05:00
Dan Bucholtz
67ddafca25 chore(dependencies): update to angular 4 rc 5
update to angular 4 rc 5
2017-03-20 11:38:36 -05:00
Dan Bucholtz
b10ec68087 refactor(deep-linking): rename to
rename  to
2017-03-20 10:42:00 -05:00
Dan Bucholtz
52081a471a refactor(deep-linking): change to
change  to
2017-03-20 10:14:36 -05:00
Job
56364a0503 fix(scroll-view): do not set initialized until it is enabled (#10817)
regression caused by 7e9bad5
2017-03-17 23:05:10 +01:00
Brandy Carney
5c2aa2adaf test(toolbar): add missing main.ts from toolbar test 2017-03-17 12:07:59 -04:00
Brandy Carney
fbed3c5b04 chore(e2e): catch errors from app-scripts to continue
also return empty array so that if the exact folder isn’t matched it
won’t continue to filter and run tests. For example, if you pass
`--f=toolbar/color` it will error because that doesn't exist, but still
tries to run `toolbar/colors`.
2017-03-17 11:06:46 -04:00
Daniel Imhoff
da8ce042b6 chore(templates): directive template 2017-03-16 15:44:33 -05:00
Brandy Carney
960e529b43 chore(demos): remove unused code and add concurrency arg 2017-03-16 15:56:43 -04:00
Brandy Carney
ae56039ba1 chore(e2e): log an error if the test doesn't exist, add concurrency arg
- If the e2e test doesn’t exist then throw an error
- Don’t log anything if no tests are being built
- Add concurrency arg to change the number of tests being ran at once
2017-03-16 15:56:43 -04:00
Manu Mtz.-Almeida
7e9bad5092 perf(content): scrollview magic activated on demand 2017-03-16 20:12:49 +01:00
Manu Mtz.-Almeida
963cdcbe76 feat(split-pane): support for side=right 2017-03-16 19:41:19 +01:00
Manu Mtz.-Almeida
c79bd5ab81 test(date time): datetime without max value 2017-03-16 19:19:31 +01:00
Florian MC [Mint]
7cc617e84e docs(datetime): update docs
Closes #10795
2017-03-16 14:10:48 -04:00
mhartington
fa24e4052a docs(): hide icon ngmodule 2017-03-16 14:08:06 -04:00
mhartington
546003037e docs(): hide modules from docs 2017-03-16 11:49:46 -04:00
Brandy Carney
25dd7b5fce refactor(components): import button module on picker 2017-03-16 11:38:08 -04:00
Manu Mtz.-Almeida
74191c3e92 fix(datetime): update selectedIndex according to ngModel value 2017-03-16 16:34:11 +01:00
Brandy Carney
f7bcc4603c refactor(components): add icon module and missing imports 2017-03-16 11:30:54 -04:00
Manu Mtz.-Almeida
afd99baba0 fix(datetime): respect time limits in hours and minutes
fixes #6850
2017-03-16 00:38:33 +01:00
Daniel Imhoff
06b388bb68 chore(templates): update tabs templates for 3.0 2017-03-15 15:15:41 -05:00
Daniel Imhoff
305848274d chore(templates): wip: update templates for 3.0 2017-03-15 15:09:46 -05:00
Brandy Carney
ddcd3cf1c5 refactor(components): convert components to separate modules 2017-03-15 16:07:06 -04:00
jgw96
5d668036e6 chore(templates): modify tabs template to code-split 2017-03-15 14:54:17 -05:00
Mike Hartington
e191321193 fix(slides): simulate touch events for query params (#10579)
* fix(slides): simulate touch events for query params
Slide fail to swipe when platform via query params.
This lets touch events be simulated is ionicPlatform is set.
Closes #10577

* style(remove debug log):
2017-03-15 19:20:03 +01:00
Manu Mtz.-Almeida
c236a4bf4b test(infinite-scroll): nested <ion-infinite-scroll>
references #10507
2017-03-15 19:00:25 +01:00
Manu Mtz.-Almeida
19302a9fbf Merge branch 'ion-infinite-component-fix' of https://github.com/thielCole/ionic 2017-03-15 18:57:51 +01:00
Manu Mtz.-Almeida
cff4c01bf0 test(datetime): adds test for issue #10641 2017-03-15 18:46:09 +01:00
Felix Livni
769e7dc2aa Prefer nested var over nested let 2017-03-15 18:45:22 +01:00
Felix Livni
eff420f4c7 fix(datetime): not always disabling day values when dayValues set 2017-03-15 18:45:22 +01:00
Toru Yoshikawa
53feb3f699 fix(infinite-scroll): event.timeStamp polyfill for firefox (#10752)
* Event.timeStamp polyfill for firefox

* fix(infinite-scroll): event.timeStamp polyfill for firefox
2017-03-15 18:27:45 +01:00
Manu Mtz.-Almeida
999efaca9a fix(virtual-list): works with infinite-scroll
fixes #9350
fixes #9722
fixes #9247
fixes #10778
2017-03-15 17:38:31 +01:00
Manu Mtz.-Almeida
1222c56d23 Merge branch 'feature/fixVirtualScrollDissapearing' of https://github.com/masimplo/ionic into fix-virtual-list2 2017-03-15 17:11:14 +01:00
Quentin
05f1e24cb6 docs(config): update page-transition
Closes #10789
Updated page transition animation sample and description.
2017-03-15 12:05:58 -04:00
Manu Mtz.-Almeida
505ee58407 Merge branch '10590-alert-input-min-max-attributes' of https://github.com/TomDemulierChevret/ionic
# Conflicts:
#	src/components/alert/alert-component.ts
#	src/components/alert/alert-options.ts
2017-03-15 17:03:30 +01:00
Manu Mtz.-Almeida
1efc4aea0f style(range): removes trailing white spaces 2017-03-15 16:56:27 +01:00
Amit Moryossef
8f310eba4a feat(range): add ionFocus and ionBlur events (#10761)
* Added ionLeave output event to be emitted on leave

* Changed `ionLeave` to `ionDragEnd`

* Changed ionDragEnd to ionBlur. Added ionFocus
2017-03-15 16:54:35 +01:00
Manu Mtz.-Almeida
46fe1ff53c fix(alert): inputs have id
fixes #10603
2017-03-15 16:48:15 +01:00
Manu Mtz.-Almeida
aa287ce56f Merge branch 'select-floating-label' of https://github.com/imgx64/ionic 2017-03-15 15:12:28 +01:00
Manu Mtz.-Almeida
e53bad1bc3 docs(infinity-scroll): algorithm used when position is Top 2017-03-15 15:06:42 +01:00
Job
6918275bd3 feat(infinite): add scroll in opposite direction (#8099)
* feat(infinite): add scroll in opposite direction

fixes

* test(infinite-scroll): opposite direction e2e test

* fix(infinite-scroll): keep scroll position

* feat(content): scroll down on load

* fix(infinite-scroll): scroll the content down on load

* Requested changes
2017-03-15 14:58:45 +01:00
Manu Mtz.-Almeida
f9f9a1b441 test(content): fix unit test by using new elementRef api 2017-03-14 22:14:01 +01:00
Dan Bucholtz
d93ca82666 refactor(deep-linking): fix url when navigating back to url w/ params 2017-03-14 16:08:15 -05:00
Dan Bucholtz
0ae638a6a0 refactor(picker): if opts are null, initialize to empty object 2017-03-14 16:08:15 -05:00
Dan Bucholtz
e5f7812798 test(modal): fix broken unit tests 2017-03-14 16:08:15 -05:00
Dan Bucholtz
06246df3ce chore(build): fix to ensure all unit tests are run independent of state of dist directory 2017-03-14 16:08:15 -05:00
Manu Mtz.-Almeida
7a9f88fcda Merge branch 'refactor-content2' of https://github.com/manucorporat/ionic 2017-03-14 21:43:22 +01:00
perry
396f891f33 chore(docs): updating dgeni typescript package 2017-03-14 14:50:31 -05:00
Ibrahim Ghazal
8c483f2529 fix(select): make floating labels work for ion-select
fixes #10751
2017-03-14 12:42:12 +03:00
Brandy Carney
4354fc212e docs(deep-linker): copy editing 2017-03-13 17:59:14 -04:00
Brandy Carney
ddb8ef23e0 docs(deep-linker): update deep linker docs with new decorator 2017-03-13 17:37:18 -04:00
Dan Bucholtz
0964c850d4 test(e2e): refactor e2e to use deeplink decorator, lazy load more pages 2017-03-11 00:15:38 -06:00
Dan Bucholtz
3118bbbd1b chore(dependencies): have app-scripts use nightly for now
have app-scripts use nightly for now
2017-03-10 11:00:56 -06:00
alex-pl
446e468b59 docs(split-pane): copy editing (#10708)
Fixed typo in word "also".
2017-03-10 10:41:32 -05:00
Dan Bucholtz
f84d38346e refactor(ng-module-loader): simplify the ng-module-loader internals
simplify the ng-module-loader internals
2017-03-09 15:44:12 -06:00
Brandy Carney
eaadea7569 chore(navigation): update NavController and NavPush types 2017-03-09 15:36:59 -05:00
Dan Bucholtz
c90fcb07e7 chore(e2e): add --dev option to e2e.prod to speed up builds for faster but less thorough verification 2017-03-09 12:13:36 -06:00
Dan Bucholtz
a7ea189fa3 chore(navigation): remove private, old property on interface
remove private, old property on interface
2017-03-09 10:46:30 -06:00
Adam Bradley
67cbcdea3b chore(toolbar): move button strong to toolbar sass property 2017-03-09 09:35:59 -06:00
Manu Mtz.-Almeida
ba3530657b fix(picker): selectionIndex always initialized 2017-03-08 23:44:15 +01:00
Manu Mtz.-Almeida
f4c9ba6614 test(datetime): min/max failing cases 2017-03-08 23:44:15 +01:00
Manu Mtz.-Almeida
62bf2bee28 style(infinite-scroll): add missing type 2017-03-08 23:44:15 +01:00
Manu Mtz.-Almeida
5b1126f7f2 style(slides): adds missing final linebreak 2017-03-08 23:44:15 +01:00
Sergii Stotskyi
84e25a17c2 feat(infinite-scroll): add waitFor method to InfiniteScroll
This allows to use `$event.waitFor(request())` inside template within `infinite` event. So that, user components do not depend on InifiniteScroll inside javascript.
2017-03-08 23:44:15 +01:00
patricknolan
30980b6798 fix(toggle/checkbox): trigger ui update when using virtalScroll with
Angular Reactive Forms
2017-03-08 23:44:15 +01:00
Ahmad Amri
e90d692b1f fix(slides): fix rtl support.
- fix rtl functionalities in slides when attribute (dir=“rtl”) added to
ion-slides.
- e2e test added: ‘slides/test/rtl’
2017-03-08 23:44:15 +01:00
Manu Mtz.-Almeida
bee75f7d00 feat(overlay): method chaining pattern to configure overlays 2017-03-08 23:44:15 +01:00
Manu Mtz.-Almeida
d538245178 fix(range): knob B can only be actived if range is dual 2017-03-08 23:44:15 +01:00
Manu Mtz.-Almeida
b541832749 fix(range): bar width works as expected
fixes  #10150
2017-03-08 23:44:15 +01:00
Mohsen Sarkar
05859dba40 fix(searchbar): add IE support
remove() as a method on HTMLElements is not supported on IE.
2017-03-08 23:44:15 +01:00
Felix Livni
58beea30f5 fix(datetime): picker.refresh() in generate(...) called too early 2017-03-08 23:44:15 +01:00
Brandy Carney
c7ad3ce4bf feat(module-loader): run outside of angular and in requestIdleCallback 2017-03-08 17:07:53 -05:00
Brandy Carney
1d68d1f91f chore(npm): update ionic-angular readme to remove 2.x 2017-03-08 15:46:35 -05:00
Brandy Carney
0cd87f1078 chore(ionic): release 2.2.0 2017-03-08 14:38:31 -05:00
Brandy Carney
7dfe061a7c test(split-pane): fix ionic import path and structure 2017-03-08 10:41:05 -05:00
jgw96
8c75c214d7 chore(util): add requestIdleCallback polyfill 2017-03-07 16:12:02 -06:00
Brandy Carney
5a4f8b9b5d feat(module-loader): preload modules based on priority 2017-03-07 16:15:15 -05:00
Manu Mtz.-Almeida
f43444bf51 Merge branch '3.0' of github.com:driftyco/ionic into 3.0 2017-03-07 21:28:59 +01:00
Manu Mtz.-Almeida
37c198414d Merge branch 'master' into 3.0 2017-03-07 21:28:18 +01:00
jgw96
5d178534c2 refactor(http): remove HttpModule 2017-03-07 13:55:38 -06:00
jgw96
4852b4a3a4 chore(angular): fix deprecation warnings and breaking changes 2017-03-07 12:36:19 -06:00
jgw96
d25943f27f chore(angular): update to angular 4.0.0-rc.2 2017-03-07 12:35:15 -06:00
Brandy Carney
bdbd521b13 feat(module-loader): add preloadModules config option, set to false
set nav/basic to preload modules
2017-03-07 12:04:04 -05:00
Brandy Carney
759fe607c8 test(module-loader): add test for two modules loaded at once 2017-03-07 10:46:10 -05:00
Brandy Carney
17359b7b8c feat(module-loader): add caching for ngModuleLoader on load 2017-03-06 18:23:47 -05:00
Daniel Imhoff
c6343951ae test(e2e): modal/basic: lazy load modals 2017-03-06 17:13:11 -06:00
Daniel Imhoff
e8f6e0134e test(e2e): menu/basic: lazy load modal 2017-03-06 16:52:36 -06:00
Brandy Carney
a1a762c0e6 test(module-loader): add unit tests for module-loader load 2017-03-06 17:16:25 -05:00
Manu Mtz.-Almeida
88a7f3e1c5 test(toolbar): fix model header 2017-03-06 22:28:21 +01:00
Daniel Imhoff
999f33a5b9 test(e2e): tabs/colors 2017-03-06 15:16:25 -06:00
Daniel Imhoff
7c713e1a62 test(e2e): tabs/basic 2017-03-06 15:06:35 -06:00
Daniel Imhoff
5b91317d39 test(e2e): tabs/badges 2017-03-06 12:44:48 -06:00
Daniel Imhoff
6d8490e393 test(e2e): searchbar/nav 2017-03-06 12:31:23 -06:00
mhartington
a4748fca69 docs(splitPane): add split-pane docs 2017-03-06 13:24:07 -05:00
jgw96
2143f7198e style(lint): fix linter errors 2017-03-06 11:23:42 -06:00
jgw96
f2894be061 test(tabs): update final tabs test 2017-03-06 11:18:55 -06:00
jgw96
1105bcda86 test(toolbar): update toolbar tests 2017-03-06 11:15:05 -06:00
mhartington
33f2f09c5e test(tabs, segments, select, searchbar): update test to be lazy loaded 2017-03-06 12:11:00 -05:00
Manu Mtz.-Almeida
e56bad9977 fix(menu): menuToggle always visible outside navbar 2017-03-06 17:58:12 +01:00
Manu Mtz.-Almeida
8b3991cc78 fix(tabs): reverts 9e4c3a6e3e 2017-03-06 17:23:07 +01:00
jgw96
a2e469d408 test(e2e): update toolbar, typography and virtual scroll 2017-03-06 10:03:26 -06:00
Tom Demulier
b53219a67c feat(alert): add attributes min & max to alert inputs of type number 2017-03-06 09:55:03 +01:00
Manu Mtz.-Almeida
61a5317b25 fix(ViewController): nav must be set as soon as possible
fixes regression in 5a4c6093a7
fixes #10654
2017-03-05 16:00:47 +01:00
Manu Mtz.-Almeida
1dd88830f9 fix(refresher): events manager must not be destroyed (part 2)
fixes #10652
2017-03-05 14:41:14 +01:00
Manu Mtz.-Almeida
930869476a fix(refresher): events manager must not be destroyed
fixes #10652
2017-03-05 12:30:52 +01:00
Manu Mtz.-Almeida
c65bb4e64b style(menu): removes unused method 2017-03-04 19:21:21 +01:00
Manu Mtz.-Almeida
28754926b5 refactor(content): implemented the angular way 2017-03-04 19:12:56 +01:00
Daniel Imhoff
656ea66632 test(e2e): radio/basic 2017-03-03 17:07:19 -06:00
Daniel Imhoff
7b5bb940c9 test(e2e): popover/basic 2017-03-03 16:58:05 -06:00
Dan Bucholtz
8674aaf419 style(linting): fix validate issues
fix validate issues
2017-03-03 16:46:12 -06:00
Daniel Imhoff
ced9bd2bb8 test(e2e): picker/basic 2017-03-03 16:41:39 -06:00
Daniel Imhoff
3dfaa4c019 test(e2e): nav/child-navs 2017-03-03 16:27:35 -06:00
Daniel Imhoff
1fc1305dd5 test(e2e): modal/basic 2017-03-03 16:06:25 -06:00
jgw96
90f9650d7a style(lint): fix linter errors 2017-03-03 16:02:24 -06:00
jgw96
00d128f87f Merge branch '3.0' of https://github.com/driftyco/ionic into 3.0 2017-03-03 15:58:10 -06:00
jgw96
040981f585 test(e2e): update range, searchbar, toast 2017-03-03 15:57:28 -06:00
Dan Bucholtz
b47848ceb2 feat(navigation): add optional priority to deep link config
add optional priority to deep link config
2017-03-03 15:47:42 -06:00
Dan Bucholtz
3e70856c0b feat(navigation): @DeepLink decorator
@DeepLink decorator
2017-03-03 15:36:05 -06:00
mhartington
b7df0d8efb test(list, loading): update test for lazyloading 2017-03-03 16:31:00 -05:00
Dan Bucholtz
b12186bad1 feature(popover): support lazy loading of popover pages 2017-03-03 15:13:15 -06:00
Dan Bucholtz
3ebc3656c1 feature(modal): support lazy loading of modal pages 2017-03-03 15:13:15 -06:00
Dan Bucholtz
3b43a872a6 docs(nav): move a template to separate file in nav/basic 2017-03-03 15:13:15 -06:00
Dan Bucholtz
25f942e70f docs(e2e): lazy load modals in action-sheet/basic, alert/basic, app/cordova 2017-03-03 15:13:15 -06:00
Daniel Imhoff
a43386a405 test(e2e): menu/basic 2017-03-03 14:48:03 -06:00
Manu Mtz.-Almeida
5a4c6093a7 refactor(NavController): adds better error handling
fixes #10090
2017-03-03 21:11:58 +01:00
Manu Mtz.-Almeida
beed9989ed Merge branch 'simplify-bar-button' of https://github.com/manucorporat/ionic 2017-03-03 21:07:03 +01:00
Manu Mtz.-Almeida
6e1ae9710e refactor(Tabs): moves markup to TabButton component 2017-03-03 21:06:34 +01:00
Manu Mtz.-Almeida
dc53c8e9f6 fix(menu): all menus can be disabled 2017-03-03 20:44:40 +01:00
Brandy Carney
552a88c73b chore(module): set up preloading 2017-03-03 14:18:20 -05:00
Manu MA
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
Daniel Imhoff
3c4ed81845 test(e2e) loading/tabs 2017-03-03 12:00:55 -06:00
jgw96
73b7a00771 test(icon): remove duplicate main.ts 2017-03-03 10:30:30 -06:00
Brandy Carney
19ec0caebb style(lint): fix linter errors 2017-03-03 11:25:30 -05:00
Brandy Carney
719f6b194e test(icon): refactor to modular structure 2017-03-03 11:13:14 -05:00
Justin Willis
66fcaa7a63 chore(angular): update to 2.4.8 (#10592)
* chore(angular): update to 2.4.8

* chore(index): export extra utils that we import and use
2017-03-03 10:14:22 -05:00
Dan Bucholtz
beabe32cf5 feat(util): system.js ng-module loader
system.js ng-module loader
2017-03-02 15:10:27 -06:00
Dan Bucholtz
1dede2305f refactor(util): update mocks
update mocks
2017-03-02 15:09:43 -06:00
Dan Bucholtz
145fcd24f2 refactor(transitions): remove transition registry
remove transition registry
2017-03-02 15:09:17 -06:00
Dan Bucholtz
ca55907e46 refactor(tap-click): move to constants from enum
move to constants from enum
2017-03-02 15:08:07 -06:00
Dan Bucholtz
15eaad6044 refactor(platform): move to constants from enum, fix type definition
move to constants from enum, fix type definition
2017-03-02 15:07:34 -06:00
Dan Bucholtz
72c2b623e5 refactor(index): update import/exports for component refactors, add DeepLinkModule
update import/exports for component refactors, add DeepLinkModule
2017-03-02 15:06:44 -06:00
Dan Bucholtz
96657535f1 refactor(navigation): async component loading (aka lazy loading)
async component loading (aka lazy loading)
2017-03-02 15:05:35 -06:00
Dan Bucholtz
e40590d68c refactor(gestures): move to constants from enum
move to constants from enum
2017-03-02 15:04:34 -06:00
Dan Bucholtz
56e36c0754 refactor(virtual-scroll): restructure virtual-scroll component to separate modules
restructure virtual-scroll component to separate modules
2017-03-02 15:03:44 -06:00
Dan Bucholtz
49723c3b81 refactor(toolbar): restructure toolbar component to separate modules
restructure toolbar component to separate modules
2017-03-02 15:03:13 -06:00
Dan Bucholtz
5364d00671 refactor(toggle): move to constants from enum
move to constants from enum
2017-03-02 15:02:43 -06:00
Dan Bucholtz
9f71fde276 refactor(toast): restructure toast component to separate modules
restructure toast component to separate modules
2017-03-02 15:02:07 -06:00
Dan Bucholtz
a26b054a3f refactor(tabs): support async loading
support async loading
2017-03-02 15:01:42 -06:00
Dan Bucholtz
d5149313e6 refactor(show-hide-when): restructure show-when, hide-when component to separate modules
restructure show-when, hide-when component to separate modules
2017-03-02 15:01:02 -06:00
Dan Bucholtz
2ef6d0ca75 refactor(select): pass config to overlay
pass config to overlay
2017-03-02 15:00:16 -06:00
Dan Bucholtz
7880d44c07 refactor(refresher): move to constants from enum
move to constants from enum
2017-03-02 14:59:26 -06:00
Dan Bucholtz
ed2e76b607 refactor(segment): restructure segment component to separate modules
restructure segment component to separate modules
2017-03-02 14:58:45 -06:00
Dan Bucholtz
07ffddca9a refactor(range): move to constants from enum
move to constants from enum
2017-03-02 14:58:09 -06:00
Dan Bucholtz
51f4c19d77 refactor(popover): restructure popover component to separate modules
restructure popover component to separate modules
2017-03-02 14:57:09 -06:00
Dan Bucholtz
1786f1b897 refactor(picker): restructure picker component to separate modules
restructure picker component to separate modules
2017-03-02 14:56:39 -06:00
Dan Bucholtz
e001967fa8 refactor(navbar): restructure navbar component to use separate toolbar module
restructure navbar component to use separate toolbar module
2017-03-02 14:56:07 -06:00
Dan Bucholtz
68f3c6c0c8 refactor(nav): restructure nav component to separate modules, support async component loading
restructure nav component to separate modules, support async component loading
2017-03-02 14:55:10 -06:00
Dan Bucholtz
d896682799 refactor(modal): restructure modal component to separate modules
restructure modal component to separate modules
2017-03-02 14:53:49 -06:00
Dan Bucholtz
7ad8d47aea refactor(menu): move from enum to constants
move from enum to constants
2017-03-02 14:53:10 -06:00
Dan Bucholtz
5b299a000f refactor(loading): restructure loading component to separate modules
restructure loading component to separate modules
2017-03-02 14:52:28 -06:00
Dan Bucholtz
b0986f5d6d refactor(item): restructure item component to separate modules
restructure item component to separate modules
2017-03-02 14:50:52 -06:00
Dan Bucholtz
ece5047b6c refactor(input): restructure input component to separate modules
restructure input component to separate modules
2017-03-02 14:50:07 -06:00
Dan Bucholtz
a7ce20f990 refactor(fab): restructure fab component to separate modules
restructure fab component to separate modules
2017-03-02 14:48:16 -06:00
Dan Bucholtz
caf2f55a77 refactor(datetime): move datetime controller to separate module
move datetime controller to separate module
2017-03-02 14:47:17 -06:00
Dan Bucholtz
4495663cea refactor(content): refactor content to remove hard reference to tabs
refactor content to remove hard reference to tabs
2017-03-02 14:45:50 -06:00
Dan Bucholtz
5c61cb23ac refactor(card): restructure card component to separate modules
restructure card component to separate modules
2017-03-02 14:44:31 -06:00
Dan Bucholtz
6d787553a3 refactor(app): restructure app component to separate modules, move from enum to constants
restructure app component to separate modules, move from enum to constants
2017-03-02 14:43:46 -06:00
Dan Bucholtz
702330478c refactor(alert): restructure alert, move controller to separate module
restructure alert, move controller to separate module
2017-03-02 14:40:09 -06:00
Dan Bucholtz
42a0c7fa61 refactor(action-sheet): restructure action-sheet, move controller to separate module
restructure action-sheet, move controller to separate module
2017-03-02 14:39:19 -06:00
Dan Bucholtz
c144580a49 chore(dependencies): update dependencies for build process
update dependencies for build process
2017-03-02 14:38:02 -06:00
Dan Bucholtz
be79382386 test(e2e): refactor e2e tests to modular structure and utilize lazy loading where possible
refactor e2e tests to modular structure and utilize lazy loading where possible
2017-03-02 14:37:01 -06:00
Dan Bucholtz
0d32e5e791 chore(gulp): updates to build process to use app-scripts for watch/build
updates to build process to use app-scripts for watch/build
2017-03-02 14:28:15 -06:00
Dan Bucholtz
0fdff89b67 docs(demos): update api demos to modular structure
update api demos to modular structure
2017-03-02 14:26:30 -06:00
Dan Bucholtz
7281f020f4 chore(tsconfig): add target of es2015, systemjs to types 2017-03-02 14:15:54 -06:00
Tom Demulier
d666e8b8e5 feat(alert): add attributes min & max to alert inputs 2017-03-01 15:54:07 +01:00
Manu Mtz.-Almeida
fdd50ba47c refactor(navcontroller): clean up and algorithm documented 2017-02-28 17:53:49 +01:00
Manu Mtz.-Almeida
738515879b fix(tabs): popToRoot catches the rejected promise 2017-02-28 17:50:42 +01:00
Manu Mtz.-Almeida
8d9f374065 fix(all): memory leaks
fixes #10459
fixes #10416
fixes #10286
2017-02-28 17:50:42 +01:00
Manu Mtz.-Almeida
be0b6a8872 refactor(all): cosmetic changes + app.resize as event emitter 2017-02-28 17:34:12 +01:00
Srecko Smodis
f577e54f38 feat(alert): add ability to set the mode on alert 2017-02-27 18:05:54 -05:00
Dan Bucholtz
6797ce536d test(icon): adding main.ts entry point 2017-02-27 15:51:37 -06:00
Brandy Carney
7b97fb7487 fix(infinite-scroll): use icon color from Sass var and add var for text color
fixes #10574
2017-02-27 16:44:34 -05:00
Brandy Carney
116ae38ade fix(refresher): use refresher icon color from Sass var
fixes #10479
2017-02-27 16:44:25 -05:00
Victor
176aa2303f fix(radio): calculate radio-inner width/height with border width (#10495)
* Fix incorrect .radio-inner width/height calculation

* Add additional fix to the .radio-inner width/height calculation of the android radio button icon
2017-02-27 15:25:05 -05:00
Thahzan Mohomed
1128c8b8a2 docs(virtual-scroll): fix broken link to ion-img (#10555) 2017-02-27 15:14:52 -05:00
Jan
2c2b87b0b9 feat(typography): add text-wrap attribute for all elements
fixes #7051
2017-02-27 13:02:12 -05:00
Rob
4e8176431a docs(slides): fix references to old callback names (#10575)
In the slidePrev, slideNext, and slideTo docs it still shows the old callback names.
2017-02-27 12:42:03 -05:00
Brandy Carney
2408e94f5d docs(grid): copy editing 2017-02-27 11:30:44 -05:00
Andrew Royappa
3959272620 docs(input): copy editing (#10561)
Tiny rewording.
2017-02-27 11:21:39 -05:00
HassanCehef
c65ec9899a docs(grid): fixes typo 2017-02-27 16:41:51 +01:00
Brandy Carney
ec40ea4256 chore(readme): remove issue stats since site is erroring
closes #10546
2017-02-24 16:11:39 -05:00
Brandy Carney
42e6d7dfab docs(grid): replace the placeholder descriptions for row/col 2017-02-24 13:59:08 -05:00
Palisanka
b9a436278b docs(alert): add import in usage example (#10434)
add : `import { AlertController } from 'ionic-angular';` in usage section
2017-02-24 12:03:43 -05:00
Dominic Watson
2182cf341b refactor(menu): remove unused $z-index-menu-backdrop (#10394) 2017-02-24 11:40:33 -05:00
Gary Gitton
32e4e3191b docs(slides): include import statements in usage (#10378)
Improve example - add import of slides for viewChild use
2017-02-24 11:38:03 -05:00
Manu Mtz.-Almeida
ac1a886158 fix(tabs): ionChange is emitted after the tab is selected
fixes #10538
2017-02-23 19:35:44 +01:00
Brandy Carney
0fa98b4728 chore(ionic): add commit to release 2.1.0 2017-02-23 13:14:05 -05:00
Brandy Carney
10f39b07c8 chore(ionic): release 2.1.0 2017-02-23 13:03:33 -05:00
Brandy Carney
8bbaee7064 docs(grid): typo 2017-02-22 16:29:23 -05:00
Justin Willis
98e8158b9c chore(deps): revert angular version 2017-02-22 13:02:04 -06:00
Brandy Carney
2f0ecf112f docs(grid): fill in how it works, spelling fixes 2017-02-22 13:19:34 -05:00
Justin Willis
555519da62 chore(deps): update to Angular 2.4.8
* chore(angular): update to latest stable angular

* chore(deps): update app-scripts

* chore(deps): sw-toolbox

* chore(deps): bump to 1.1.1 app-scripts

* chore(deps): abc order sw-toolbox

* chore(deps): update to angular 2.4.8

* chore(build): pass appNgModule path to app-scripts, make run AoT instead of Prod when using --debug

pass appNgModule path to app-scripts, make run AoT instead of Prod when using --debug
2017-02-21 16:43:38 -06:00
Brandy Carney
6ceec7ad4d feat(grid): improve grid to a column layout with more flexibility (#10485)
The old grid is still supported but will be deprecated in the future.

closes #6050 closes #7508
2017-02-21 17:10:16 -05:00
mhartington
43b90973ef docs(navController): fix setPages signature 2017-02-21 17:05:13 -05:00
perry
38717155a8 chore(docs): it’s not 2.0.0-nightly, it’s just “nightly” 2017-02-21 10:58:35 -06:00
Andrew
fd53e04a47 fix(infinite-scroll):infinite-scroll can be placed in child componenets, fixes #6531 2017-02-20 18:30:11 -08:00
mhartington
aa528fdb42 docs(navController): better type setPages
Closes https://github.com/driftyco/ionic-site/issues/970
2017-02-17 16:38:25 -05:00
Justin Willis
54e50f48e5 chore(platform): resize works correctly
* chore(platform): resize works correctly

* chore(platform): height correct after resize

* test(platform): add new dimensions unit tests

* chore(platform): works with keyboard too

* chore(platform): store values

* chore(platform): change const to var
2017-02-17 18:01:34 +01:00
mhartington
da14042094 docs(input): add note about text input events
Closes https://github.com/driftyco/ionic-site/issues/991
2017-02-17 11:48:28 -05:00
mhartington
fae38f910c docs(navController): argument is not optional 2017-02-17 11:27:40 -05:00
Olivier Goguel
52a6d41c86 feat(datetime): add placeholder attribute
fixes #7966
2017-02-13 14:59:22 -05:00
Justin Willis
6a0c92c509 fix(content): check for scroll element before modifying it (#10374)
* test(refresher): add nav based refresher e2e test

* test(refresher): tweak test to repro issue

* fix(content): check for scroll element

* chore(content): double check for a scroll element
2017-02-13 12:39:29 -05:00
Brandy Carney
f47d4927d3 refactor(typography): move main typography styles to app 2017-02-13 11:43:56 -05:00
mhartington
41b063b7ae docs(content): add note about multiple ionContents
Closes https://github.com/driftyco/ionic-site/issues/956
2017-02-10 17:20:56 -05:00
Alan Agius
9cd42dd297 feat(alert): add sass variables for checkbox and radio button text color (#10331)
* feat(alert): add sass variables for checkbox and radio button text color

* style(alert): remove extra spaces

* Replace initial value with `initial` instead of `null`

* Remove submodule

* fix ios variable usage

* style(alert wp): remove whitespace
2017-02-10 13:12:22 -06:00
Adam Bradley
87e4fc6af8 chore(fonts): add roboto woff2 fonts 2017-02-08 10:19:30 -06:00
Adam Bradley
caef5b2f7a chore(fonts): add noto-sans woff fonts 2017-02-08 10:08:16 -06:00
Brandy Carney
7e33963daf chore(ionic): release 2.0.1 2017-02-08 10:28:00 -05:00
Michael Asimakopoulos
51c398d614 fix(virtualscroll): Populate nodes at correct height 2017-01-30 12:10:34 +02:00
1746 changed files with 29008 additions and 18731 deletions

View File

@@ -1,3 +1,287 @@
<a name="3.0.0"></a>
# [3.0.0](https://github.com/driftyco/ionic/compare/v2.3.0...v3.0.0) (2017-04-05)
### Steps to Upgrade
With this release comes a major update to Angular (Angular 4.0!), the latest version of TypeScript, and some optional structural changes to your application.
1. Update your package.json to match the following dependencies, remove the existing `node_modules` directory, and then run `npm install`:
```
"dependencies": {
"@angular/common": "4.0.0",
"@angular/compiler": "4.0.0",
"@angular/compiler-cli": "4.0.0",
"@angular/core": "4.0.0",
"@angular/forms": "4.0.0",
"@angular/http": "4.0.0",
"@angular/platform-browser": "4.0.0",
"@angular/platform-browser-dynamic": "4.0.0",
"@ionic-native/core": "3.4.2",
"@ionic-native/splash-screen": "3.4.2",
"@ionic-native/status-bar": "3.4.2",
"@ionic/storage": "2.0.1",
"ionic-angular": "3.0.0",
"ionicons": "3.0.0",
"rxjs": "5.1.1",
"sw-toolbox": "3.4.0",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@ionic/app-scripts": "1.3.0",
"typescript": "~2.2.1"
}
```
2. Import the `BrowserModule` in your `app/app.module.ts` file:
```
import { BrowserModule } from '@angular/platform-browser';
```
and then add it to the imports in the same file:
```
imports: [
BrowserModule,
IonicModule.forRoot(MyApp)
],
```
3. If you are using Http, Import the `HttpModule` in your `app/app.module.ts` file:
```
imports: [
BrowserModule,
HttpModule,
IonicModule.forRoot(MyApp)
],
```
4. Upgrading to Ionic Native 3.x will result in a smaller bundle size. With Ionic Native 3, native functionality was moved from static methods to using Angular injectables.
- Blog Post: http://blog.ionic.io/ionic-native-3-x/
- Example Upgrade Commit: https://github.com/driftyco/ionic-conference-app/commit/62088
And thats it! Your app should still function the same without any issues.
### Bug Fixes
* **alert:** add missing cssClass property for buttons ([4fbcda7](https://github.com/driftyco/ionic/commit/4fbcda7))
* **content:** remove scroll bouncing from desktop ([7cee7b0](https://github.com/driftyco/ionic/commit/7cee7b0))
* **content:** enable scroll listener automatically ([d9a7652](https://github.com/driftyco/ionic/commit/d9a7652)), closes [#10938](https://github.com/driftyco/ionic/issues/10938)
* **datetime:** emit ionCancel event on backdrop click ([#10532](https://github.com/driftyco/ionic/issues/10532)) ([4ac8ffb](https://github.com/driftyco/ionic/commit/4ac8ffb))
* **datetime:** remove unnecessary calls and performance improvements ([99142f8](https://github.com/driftyco/ionic/commit/99142f8))
* **infinite-scroll:** don't call `complete` if the state isn't loading ([58b57c0](https://github.com/driftyco/ionic/commit/58b57c0))
* **item-sliding:** add forwardRef for item options ([0ccd96e](https://github.com/driftyco/ionic/commit/0ccd96e))
* **navigation:** update the URL if there are no children navs ([8586cc1](https://github.com/driftyco/ionic/commit/8586cc1))
* **slides:** negative number indicates position starting at end ([#10997](https://github.com/driftyco/ionic/issues/10997)) ([33be36d](https://github.com/driftyco/ionic/commit/33be36d))
* **split-pane:** add RTL support ([57f3f97](https://github.com/driftyco/ionic/commit/57f3f97)), closes [#10903](https://github.com/driftyco/ionic/issues/10903)
* **virtual-list:** fix the rendering of the first item ([ccb49f3](https://github.com/driftyco/ionic/commit/ccb49f3))
* **virtual-list:** update compatibility with angular ([682ce49](https://github.com/driftyco/ionic/commit/682ce49))
### Code Refactoring
* **grid:** remove the old grid system ([19c36de](https://github.com/driftyco/ionic/commit/19c36de))
* **typography:** remove the native element selectors ([2827275](https://github.com/driftyco/ionic/commit/2827275))
### Features
* **module-loader:** add caching for ngModuleLoader on load ([17359b7](https://github.com/driftyco/ionic/commit/17359b7))
* **module-loader:** add preloadModules config option, set to false ([bdbd521](https://github.com/driftyco/ionic/commit/bdbd521))
* **module-loader:** preload modules based on priority ([5a4f8b9](https://github.com/driftyco/ionic/commit/5a4f8b9))
* **module-loader:** run outside of angular and in requestIdleCallback ([c7ad3ce](https://github.com/driftyco/ionic/commit/c7ad3ce))
* **navigation:** [@DeepLink](https://github.com/DeepLink) decorator ([3e70856](https://github.com/driftyco/ionic/commit/3e70856))
* **navigation:** add optional priority to deep link config ([b47848c](https://github.com/driftyco/ionic/commit/b47848c))
* **split-pane:** adds enabled input ([fa7ea0c](https://github.com/driftyco/ionic/commit/fa7ea0c)), closes [#10949](https://github.com/driftyco/ionic/issues/10949)
* **split-pane:** sizing via scss variables ([979ca63](https://github.com/driftyco/ionic/commit/979ca63)), closes [#10893](https://github.com/driftyco/ionic/issues/10893)
* **util:** system.js ng-module loader ([beabe32](https://github.com/driftyco/ionic/commit/beabe32))
### BREAKING CHANGES
#### Grid
Removed the deprecated (old) grid. See the blog post for more information including steps to migrate:
http://blog.ionic.io/build-awesome-desktop-apps-with-ionics-new-responsive-grid/
#### Typography
The following selectors to style the text color of the native text elements have been removed:
```
h1[color], h2[color], h3[color], h4[color], h5[color], h6[color], a[color]:not([ion-button]):not([ion-item]):not([ion-fab]), p[color], span[color], b[color], i[color], strong[color], em[color], small[color], sub[color], sup[color]
```
These have been throwing a deprecation warning since rc.3 but still working. They are officially gone and therefore these elements will not get the color unless the `ion-text` attribute is added. Please see the documentation for more information: http://ionicframework.com/docs/api/components/typography/Typography/
#### Slides
The following properties and functions have been printing console warnings and are officially removed:
Slides input `options` has been removed. Please use the input
properties instead.
Slide event `ionWillChange` has been removed, please use
`ionSlideWillChange` instead.
Slide event `ionDidChange` has been removed, please use
`ionSlideDidChange` instead.
Slide event `ionDrag` has been removed, please use `ionSlideDrag`
instead.
Slides `getSlider()` method has been removed, please use the instance
of ion-slides.
<a name="2.3.0"></a>
# [2.3.0](https://github.com/driftyco/ionic/compare/v2.2.0...v2.3.0) (2017-03-22)
### Bug Fixes
* **alert:** pass id to alert inputs ([46fe1ff](https://github.com/driftyco/ionic/commit/46fe1ff)), closes [#10603](https://github.com/driftyco/ionic/issues/10603)
* **datetime:** don't always disable day values when dayValues is set ([eff420f](https://github.com/driftyco/ionic/commit/eff420f))
* **datetime:** move the call to picker.refresh() in generate ([58beea3](https://github.com/driftyco/ionic/commit/58beea3))
* **datetime:** respect time limits in hours and minutes ([afd99ba](https://github.com/driftyco/ionic/commit/afd99ba)), closes [#6850](https://github.com/driftyco/ionic/issues/6850)
* **datetime:** update selectedIndex according to ngModel value ([74191c3](https://github.com/driftyco/ionic/commit/74191c3))
* **infinite-scroll:** add event.timeStamp polyfill for firefox ([#10752](https://github.com/driftyco/ionic/issues/10752)) ([53feb3f](https://github.com/driftyco/ionic/commit/53feb3f))
* **picker:** initialize the selectionIndex ([ba35306](https://github.com/driftyco/ionic/commit/ba35306))
* **range:** update the bar width correctly ([b541832](https://github.com/driftyco/ionic/commit/b541832)), closes [#10150](https://github.com/driftyco/ionic/issues/10150)
* **range:** only activate knob B if range is dual ([d538245](https://github.com/driftyco/ionic/commit/d538245))
* **scroll-view:** do not set initialized until it is enabled ([#10817](https://github.com/driftyco/ionic/issues/10817)) ([56364a0](https://github.com/driftyco/ionic/commit/56364a0))
* **searchbar:** add IE support ([05859db](https://github.com/driftyco/ionic/commit/05859db))
* **select:** make floating labels work for ion-select ([8c483f2](https://github.com/driftyco/ionic/commit/8c483f2)), closes [#10751](https://github.com/driftyco/ionic/issues/10751)
* **slides:** fix rtl support ([e90d692](https://github.com/driftyco/ionic/commit/e90d692))
* **slides:** simulate touch events for query params ([#10579](https://github.com/driftyco/ionic/issues/10579)) ([e191321](https://github.com/driftyco/ionic/commit/e191321)), closes [#10577](https://github.com/driftyco/ionic/issues/10577)
* **toggle/checkbox:** trigger ui update when using virtalScroll with Angular Reactive Forms ([30980b6](https://github.com/driftyco/ionic/commit/30980b6))
* **virtual-list:** make virtual-scroll work with infinite-scroll ([999efac](https://github.com/driftyco/ionic/commit/999efac)), closes [#9350](https://github.com/driftyco/ionic/issues/9350) [#9722](https://github.com/driftyco/ionic/issues/9722) [#9247](https://github.com/driftyco/ionic/issues/9247) [#10778](https://github.com/driftyco/ionic/issues/10778)
* **virtualscroll:** populate the nodes at the correct height ([51c398d](https://github.com/driftyco/ionic/commit/51c398d))
### Features
* **alert:** add attributes min & max to alert inputs ([d666e8b](https://github.com/driftyco/ionic/commit/d666e8b))
* **alert:** add attributes min & max to alert inputs of type number ([b53219a](https://github.com/driftyco/ionic/commit/b53219a))
* **infinite:** add scroll in opposite direction ([#8099](https://github.com/driftyco/ionic/issues/8099)) ([6918275](https://github.com/driftyco/ionic/commit/6918275))
* **infinite-scroll:** add `waitFor` method to InfiniteScroll ([84e25a1](https://github.com/driftyco/ionic/commit/84e25a1))
* **overlay:** add method chaining pattern to configure overlays ([bee75f7](https://github.com/driftyco/ionic/commit/bee75f7))
* **range:** add ionFocus and ionBlur events ([#10761](https://github.com/driftyco/ionic/issues/10761)) ([8f310eb](https://github.com/driftyco/ionic/commit/8f310eb))
* **split-pane:** support for side=right ([963cdcb](https://github.com/driftyco/ionic/commit/963cdcb))
### Performance Improvements
* **content:** scrollview magic activated on demand ([7e9bad5](https://github.com/driftyco/ionic/commit/7e9bad5))
<a name="2.2.0"></a>
# [2.2.0](https://github.com/driftyco/ionic/compare/v2.1.0...v2.2.0) (2017-03-08)
### Updating to 2.2.0
1. Update your `package.json` to match the following dependencies, remove the existing `node_modules` directory, and then run `npm install`:
```
"dependencies": {
"@angular/common": "2.4.8",
"@angular/compiler": "2.4.8",
"@angular/compiler-cli": "2.4.8",
"@angular/core": "2.4.8",
"@angular/forms": "2.4.8",
"@angular/http": "2.4.8",
"@angular/platform-browser": "2.4.8",
"@angular/platform-browser-dynamic": "2.4.8",
"@angular/platform-server": "2.4.8",
"@ionic/storage": "2.0.0",
"ionic-angular": "2.2.0",
"ionic-native": "2.4.1",
"ionicons": "3.0.0",
"rxjs": "5.0.1",
"sw-toolbox": "3.4.0",
"zone.js": "0.7.2"
},
"devDependencies": {
"@ionic/app-scripts": "1.1.4",
"typescript": "2.0.9"
}
```
Note: If you are using `ionic-storage`, you need to update it to `2.0.0` or you will run into an error similar to this: `Error: Can't resolve all parameters for Storage: (?, ?).`. For more information, see the [Storage Documentation](https://ionicframework.com/docs/v2/storage/).
### What's new
#### Split Pane
As part of our initiative to improve desktop support we have introduced a new component called [Split Pane](http://ionicframework.com/docs/v2/api/components/split-pane/SplitPane/). Split Pane makes it possible to easily create multi-view layouts. It allows elements, such as a menu or another navigation pane, to be displayed on large viewports. Split Pane can be used to achieve a layout similar to the Gmail (Android) or Mail (Apple) applications.
#### Angular 2.4.8
Ionic has been updated to depend on Angular 2.4.8, which is the latest version that we have tested and confirmed to be compatible with Ionic. This means that updating to the 2.2.0 release of Ionic will automatically work with all of the performance updates, bug fixes and features in Angular 2.4.8!
### Ionic Storage
We recently released the 2.0.0 version of `ionic-storage`. If you are using Ionic Storage in your application, you need to update to this version of `ionic-storage`. Attempting to use an older version of `ionic-storage` with Ionic 2.2.0 will cause errors. You can read about how to update to `ionic-storage` 2.0.0 [here](https://github.com/driftyco/ionic-storage/releases/tag/v2.0.0).
### Bug Fixes
* **components:** clean up event listeners to stop memory leaks ([8d9f374](https://github.com/driftyco/ionic/commit/8d9f374)), closes [#10459](https://github.com/driftyco/ionic/issues/10459) [#10416](https://github.com/driftyco/ionic/issues/10416) [#10286](https://github.com/driftyco/ionic/issues/10286)
* **infinite-scroll:** use icon color from Sass var and add var for text color ([7b97fb7](https://github.com/driftyco/ionic/commit/7b97fb7)), closes [#10574](https://github.com/driftyco/ionic/issues/10574)
* **menu:** disable the menus when they should be ([dc53c8e](https://github.com/driftyco/ionic/commit/dc53c8e))
* **menu:** don't hide menuToggle outside navbar ([e56bad9](https://github.com/driftyco/ionic/commit/e56bad9))
* **radio:** calculate radio-inner width/height with border width ([#10495](https://github.com/driftyco/ionic/issues/10495)) ([176aa23](https://github.com/driftyco/ionic/commit/176aa23))
* **refresher:** don't destroy events manager ([9308694](https://github.com/driftyco/ionic/commit/9308694)), ([1dd8883](https://github.com/driftyco/ionic/commit/1dd8883)), closes [#10652](https://github.com/driftyco/ionic/issues/10652)
* **refresher:** use refresher icon color from Sass var ([116ae38](https://github.com/driftyco/ionic/commit/116ae38)), closes [#10479](https://github.com/driftyco/ionic/issues/10479)
* **tabs:** emit ionChange after the tab is selected ([ac1a886](https://github.com/driftyco/ionic/commit/ac1a886)), closes [#10538](https://github.com/driftyco/ionic/issues/10538)
* **tabs:** catch the rejected promise with popToRoot ([7385158](https://github.com/driftyco/ionic/commit/7385158))
* **view-controller:** set navigation so dimiss() will work synchronously. ([61a5317](https://github.com/driftyco/ionic/commit/61a5317)), closes [#10654](https://github.com/driftyco/ionic/issues/10654)
### Features
* **alert:** add ability to set the mode on alert ([f577e54](https://github.com/driftyco/ionic/commit/f577e54))
* **split-pane:** split pane support for ion-nav and ion-menu ([#10343](https://github.com/driftyco/ionic/issues/10343)) ([9e4c3a6](https://github.com/driftyco/ionic/commit/9e4c3a6))
* **typography:** add text-wrap attribute for all elements ([2c2b87b](https://github.com/driftyco/ionic/commit/2c2b87b)), closes [#7051](https://github.com/driftyco/ionic/issues/7051)
<a name="2.1.0"></a>
# [2.1.0](https://github.com/driftyco/ionic/compare/v2.0.1...v2.1.0) (2017-02-23)
### Bug Fixes
* **content:** check for scroll element before modifying it ([#10374](https://github.com/driftyco/ionic/issues/10374)) ([6a0c92c](https://github.com/driftyco/ionic/commit/6a0c92c))
* **platform:** resize platform correctly ([54e50f](https://github.com/driftyco/ionic/commit/54e50f))
### Features
* **alert:** add sass variables for checkbox and radio button text color ([#10331](https://github.com/driftyco/ionic/issues/10331)) ([9cd42dd](https://github.com/driftyco/ionic/commit/9cd42dd))
* **datetime:** add placeholder attribute ([52a6d41](https://github.com/driftyco/ionic/commit/52a6d41)), closes [#7966](https://github.com/driftyco/ionic/issues/7966)
* **grid:** improve grid to a column layout with more flexibility ([#10485](https://github.com/driftyco/ionic/issues/10485)) ([6ceec7a](https://github.com/driftyco/ionic/commit/6ceec7a)), closes [#6050](https://github.com/driftyco/ionic/issues/6050) [#7508](https://github.com/driftyco/ionic/issues/7508)
<a name="2.0.1"></a>
## [2.0.1](https://github.com/driftyco/ionic/compare/v2.0.0...v2.0.1) (2017-02-08)
### Bug Fixes
* **chip:** align icon in the center ([ace727e](https://github.com/driftyco/ionic/commit/ace727e)), closes [#5386](https://github.com/driftyco/ionic/issues/5386)
* **content:** check for this._scroll when reading dimensions ([#10216](https://github.com/driftyco/ionic/issues/10216)) ([96f550c](https://github.com/driftyco/ionic/commit/96f550c))
* **datetime:** set input-has-value class without formControlName ([#8947](https://github.com/driftyco/ionic/issues/8947)) ([81c3394](https://github.com/driftyco/ionic/commit/81c3394))
* **input:** add variables for alert and input placeholder color ([4ca9f2c](https://github.com/driftyco/ionic/commit/4ca9f2c)), closes [#10153](https://github.com/driftyco/ionic/issues/10153)
* **input:** add max, min, step as inputs and pass to native ([803782a](https://github.com/driftyco/ionic/commit/803782a)), closes [#10189](https://github.com/driftyco/ionic/issues/10189)
* **input:** don't allow focus when disabled is set ([#10214](https://github.com/driftyco/ionic/issues/10214)) ([eba0866](https://github.com/driftyco/ionic/commit/eba0866)), closes [#10155](https://github.com/driftyco/ionic/issues/10155)
* **platform:** detect iPad Pro correctly ([#10292](https://github.com/driftyco/ionic/issues/10292)) ([f12fc61](https://github.com/driftyco/ionic/commit/f12fc61))
* **toggle/checkbox:** allow value to be programmatically updated while disabled ([#10304](https://github.com/driftyco/ionic/issues/10304)) ([b8ee301](https://github.com/driftyco/ionic/commit/b8ee301)), closes [#9730](https://github.com/driftyco/ionic/issues/9730)
<a name="2.0.0"></a>
# [2.0.0](https://github.com/driftyco/ionic/compare/v2.0.0-rc.6...v2.0.0) (2017-01-25)

View File

@@ -1,6 +1,4 @@
[![npm version](https://badge.fury.io/js/ionic-angular.svg)](https://badge.fury.io/js/ionic-angular)
[![Issue Stats](http://issuestats.com/github/driftyco/ionic/badge/pr?style=flat)](http://issuestats.com/github/driftyco/ionic)
[![Issue Stats](http://issuestats.com/github/driftyco/ionic/badge/issue?style=flat)](http://issuestats.com/github/driftyco/ionic)
[![Circle CI](https://circleci.com/gh/driftyco/ionic.svg?style=shield&circle-token=:circle-token)](https://circleci.com/gh/driftyco/ionic)
# Ionic

View File

@@ -1,22 +1,45 @@
general:
branches:
ignore:
- ins_n_outs
machine:
node:
version: 4.1.0
post:
- npm install -g npm@3.x.x
dependencies:
pre:
- ./scripts/docs/prepare.sh
cache_directories:
- "~/ionic-site" # cache ionic-site
test:
override:
- gulp lint.ts
deployment:
tasks:
branch: "master"
commands:
- ./scripts/ci/deploy.sh
version: 2
jobs:
build:
working_directory: ~/ionic/
docker:
- image: node:7
steps:
- checkout
- restore_cache:
key: ionic-site
- run:
name: Prepare ionic-site repo
command: ./scripts/docs/prepare.sh
- save_cache:
key: ionic-site
paths:
- ~/ionic-site/
- restore_cache:
key: node_modules_{{ checksum "package.json" }}
- run:
name: Install node modules
command: npm i
- save_cache:
key: node_modules_{{ checksum "package.json" }}
paths:
- ~/ionic/node_modules/
- run:
name: Run tslint
command: ./node_modules/.bin/gulp lint.ts
- run:
name: Build Demos
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
./node_modules/.bin/gulp demos.prod --production=true --batch=$CIRCLE_NODE_INDEX --batches=$CIRCLE_NODE_TOTAL
fi
- add_ssh_keys
- deploy:
name: Update docs
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
./scripts/ci/deploy.sh
else
./scripts/ci/deploy.sh
echo "We are on ${CIRCLE_BRANCH} branch, not going to update docs."
fi

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -1,11 +1,11 @@
import { Component, NgModule } from '@angular/core';
import { ActionSheetController, IonicApp, IonicModule, Platform } from '../../ionic-angular';
import { Component } from '@angular/core';
import { ActionSheetController, Platform } from '../../../../../src';
@Component({
templateUrl: 'page.html'
templateUrl: 'page-one.html'
})
export class ApiDemoPage {
export class PageOne {
constructor(public alertCtrl: ActionSheetController, public platform: Platform) { }
present() {
@@ -55,26 +55,3 @@ export class ApiDemoPage {
actionSheet.present();
}
}
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -1,11 +1,10 @@
import { Component, NgModule } from '@angular/core';
import { AlertController, IonicApp, IonicModule } from '../../ionic-angular';
import { Component } from '@angular/core';
import { AlertController } from '../../../../../src';
@Component({
templateUrl: 'page.html'
templateUrl: 'page-one.html'
})
export class ApiDemoPage {
export class PageOne {
testRadioOpen = false;
testRadioResult: any;
testCheckboxOpen = false;
@@ -59,13 +58,13 @@ export class ApiDemoPage {
buttons: [
{
text: 'Cancel',
handler: (data: any) => {
handler: (data) => {
console.log('Cancel clicked');
}
},
{
text: 'Save',
handler: (data: any) => {
handler: (data) => {
console.log('Saved clicked');
}
}
@@ -208,25 +207,3 @@ export class ApiDemoPage {
}
}
@Component({
template: `<ion-nav [root]="root"></ion-nav>`
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -1,32 +0,0 @@
import { Component, NgModule } from '@angular/core';
import { IonicApp, IonicModule } from '../../ionic-angular';
@Component({
templateUrl: 'page.html'
})
export class ApiDemoPage {}
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -0,0 +1,6 @@
import { Component } from '@angular/core';
@Component({
templateUrl: 'page-one.html'
})
export class PageOne {}

View File

@@ -1,49 +0,0 @@
import { Component, NgModule } from '@angular/core';
import { IonicApp, IonicModule } from '../../ionic-angular';
@Component({
templateUrl: 'page.html'
})
export class ApiDemoPage {
data = {
jon: true,
daenerys: true,
arya: false,
tyroin: false,
sansa: true,
khal: false,
cersei: true,
stannis: true,
petyr: false,
hodor: true,
catelyn: true,
bronn: false
};
}
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -0,0 +1,22 @@
import { Component } from '@angular/core';
@Component({
templateUrl: 'page-one.html'
})
export class PageOne {
data = {
jon: true,
daenerys: true,
arya: false,
tyroin: false,
sansa: true,
khal: false,
cersei: true,
stannis: true,
petyr: false,
hodor: true,
catelyn: true,
bronn: false
};
}

View File

@@ -1,35 +0,0 @@
import { Component, NgModule } from '@angular/core';
import { IonicApp, IonicModule } from '../../ionic-angular';
@Component({
templateUrl: 'page.html'
})
export class ApiDemoPage {
delete(chip: Element) {
chip.remove();
}
}
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -0,0 +1,10 @@
import { Component } from '@angular/core';
@Component({
templateUrl: 'page-one.html'
})
export class PageOne {
delete(chip: Element) {
chip.remove();
}
}

View File

@@ -0,0 +1,39 @@
import { Component } from '@angular/core';
import { Config, Platform } from '../../../../src';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
config: any;
root = PageOne;
constructor(public _config: Config, public platform: Platform) {
if (window.localStorage.getItem('configDemo') !== null) {
this.config = JSON.parse(window.localStorage.getItem('configDemo'));
} else if (platform.is('ios')) {
this.config = {
'backButtonIcon': 'ios-arrow-back',
'iconMode': 'ios',
'tabsPlacement': 'bottom'
};
} else if (platform.is('windows')) {
this.config = {
'backButtonIcon': 'ios-arrow-back',
'iconMode': 'ios',
'tabsPlacement': 'top'
};
} else {
this.config = {
'backButtonIcon': 'md-arrow-back',
'iconMode': 'md',
'tabsPlacement': 'bottom'
};
}
this._config.set('tabsPlacement', this.config.tabsPlacement);
this._config.set('iconMode', this.config.iconMode);
this._config.set('backButtonIcon', this.config.backButtonIcon);
}
}

View File

@@ -1,5 +1,26 @@
import { Component, NgModule } from '@angular/core';
import { Config, IonicApp, IonicModule, Platform, NavController } from '../../ionic-angular';
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
import { PageTwoModule } from '../pages/page-two/page-two.module';
import { PageThreeModule } from '../pages/page-three/page-three.module';
@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent, CONFIG_DEMO),
PageOneModule,
PageTwoModule,
PageThreeModule
],
bootstrap: [IonicApp],
})
export class AppModule {}
if (!window.localStorage) {
Object.defineProperty(window, 'localStorage', new (function () {
@@ -19,7 +40,7 @@ if (!window.localStorage) {
Object.defineProperty(oStorage, 'setItem', {
value: function (sKey: string, sValue: string) {
if (!sKey) { return; }
document.cookie = encodeURI(sKey) + '=' + encodeURI(sValue) + '; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/';
document.cookie = encodeURI(sKey) + '=' + encodeURI(sValue) + '; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=';
},
writable: false,
configurable: false,
@@ -33,7 +54,7 @@ if (!window.localStorage) {
Object.defineProperty(oStorage, 'removeItem', {
value: function (sKey: string) {
if (!sKey) { return; }
document.cookie = encodeURI(sKey) + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/';
document.cookie = encodeURI(sKey) + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=';
},
writable: false,
configurable: false,
@@ -70,102 +91,3 @@ var CONFIG_DEMO: any = null;
if (window.localStorage.getItem('configDemo')) {
CONFIG_DEMO = JSON.parse(window.localStorage.getItem('configDemo'));
}
@Component({
templateUrl: 'tabs.html'
})
export class TabPage {
tabOne = ApiDemoPage;
}
@Component({
templateUrl: 'page.html'
})
export class ApiDemoPage {
config: any;
initialConfig: any;
constructor(_config: Config, public navCtrl: NavController) {
this.config = _config.settings();
this.initialConfig = this.config;
}
load() {
window.localStorage.setItem('configDemo', JSON.stringify(this.config));
window.location.reload();
}
push() {
this.navCtrl.push(PushPage);
}
}
@Component({
templateUrl: 'push-page.html'
})
export class PushPage {
constructor(public navCtrl: NavController) {}
pop() {
this.navCtrl.pop();
}
}
@Component({
template: '<ion-nav [root]="root" #content></ion-nav>'
})
export class ApiDemoApp {
config: any;
root = TabPage;
constructor(public _config: Config, public platform: Platform) {
if (window.localStorage.getItem('configDemo') !== null) {
this.config = JSON.parse(window.localStorage.getItem('configDemo'));
} else if (platform.is('ios')) {
this.config = {
'backButtonIcon': 'ios-arrow-back',
'iconMode': 'ios',
'tabsPlacement': 'bottom'
};
} else if (platform.is('windows')) {
this.config = {
'backButtonIcon': 'ios-arrow-back',
'iconMode': 'ios',
'tabsPlacement': 'top'
};
} else {
this.config = {
'backButtonIcon': 'md-arrow-back',
'iconMode': 'md',
'tabsPlacement': 'bottom'
};
}
this._config.set('tabsPlacement', this.config.tabsPlacement);
this._config.set('iconMode', this.config.iconMode);
this._config.set('backButtonIcon', this.config.backButtonIcon);
}
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage,
PushPage,
TabPage
],
imports: [
IonicModule.forRoot(ApiDemoApp, CONFIG_DEMO)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage,
PushPage,
TabPage
]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageTwo } from '../page-two/page-two';
@Component({
templateUrl: 'page-one.html'
})
export class PageOne {
tabOne = PageTwo;
}

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageThree } from './page-three';
@NgModule({
declarations: [
PageThree,
],
imports: [
IonicPageModule.forChild(PageThree),
],
entryComponents: [
PageThree,
]
})
export class PageThreeModule {}

View File

@@ -0,0 +1,13 @@
import { Component } from '@angular/core';
import { NavController } from '../../../../../src';
@Component({
templateUrl: 'page-three.html'
})
export class PageThree {
constructor(public navCtrl: NavController) {}
pop() {
this.navCtrl.pop();
}
}

View File

@@ -52,6 +52,7 @@
<pre margin>
&#64;NgModule(&#123;
imports: [
BrowserModule,
IonicModule.forRoot(MyApp, &#123;
backButtonIcon: "{{initialConfig?.backButtonIcon}}"
iconMode: "{{initialConfig?.iconMode}}"

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageTwo } from './page-two';
@NgModule({
declarations: [
PageTwo,
],
imports: [
IonicPageModule.forChild(PageTwo),
],
entryComponents: [
PageTwo,
]
})
export class PageTwoModule {}

View File

@@ -0,0 +1,24 @@
import { Component } from '@angular/core';
import { Config, NavController } from '../../../../../src';
import { PageThree } from '../page-three/page-three';
@Component({
templateUrl: 'page-two.html'
})
export class PageTwo {
config: any;
initialConfig: any;
constructor(_config: Config, public navCtrl: NavController) {
this.config = _config.settings();
this.initialConfig = this.config;
}
load() {
window.localStorage.setItem('configDemo', JSON.stringify(this.config));
window.location.reload();
}
push() {
this.navCtrl.push(PageThree);
}
}

View File

@@ -0,0 +1,11 @@
<ion-header>
<ion-navbar>
<ion-title>Page</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<div padding>
<button ion-button block (click)="pop()">Go Back to Config</button>
</div>
</ion-content>

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -1,11 +1,9 @@
import { Component, NgModule } from '@angular/core';
import { IonicApp, IonicModule } from '../../ionic-angular';
import { Component } from '@angular/core';
@Component({
templateUrl: 'page.html'
templateUrl: 'page-one.html'
})
export class ApiDemoPage {
export class PageOne {
wwwReleased = '1991';
netscapeReleased = '1994-12-15T13:47:20.789';
operaReleased = '1995-04-15';
@@ -40,7 +38,7 @@ export class ApiDemoPage {
}
}
calculateTime(offset) {
calculateTime(offset: any) {
// create Date object for current location
let d = new Date();
@@ -52,37 +50,13 @@ export class ApiDemoPage {
}
// Determine if the client uses DST
stdTimezoneOffset(today) {
stdTimezoneOffset(today: any) {
let jan = new Date(today.getFullYear(), 0, 1);
let jul = new Date(today.getFullYear(), 6, 1);
return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
}
dst(today) {
dst(today: any) {
return today.getTimezoneOffset() < this.stdTimezoneOffset(today);
}
}
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -1,89 +0,0 @@
import { Component, NgModule, ViewChild } from '@angular/core';
import { Events, IonicApp, IonicModule, Nav } from '../../ionic-angular';
@Component({
templateUrl: 'login.html'
})
export class Login {
user = {
name: 'Administrator',
username: 'admin'
};
constructor(private events: Events) {}
login() {
this.events.publish('user:login');
}
}
@Component({
templateUrl: 'logout.html'
})
export class Logout {
constructor(private events: Events) {}
logout() {
this.events.publish('user:logout');
}
}
@Component({
templateUrl: 'app.html'
})
export class ApiDemoApp {
@ViewChild(Nav) nav: Nav;
root = Login;
loggedIn = false;
loggedInPages = [
{ title: 'Logout', component: Logout }
];
loggedOutPages = [
{ title: 'Login', component: Login }
];
constructor(private events: Events) {
this.listenToLoginEvents();
}
openPage(menu, page) {
// find the nav component and set what the root page should be
// reset the nav to remove previous pages and only have this page
// we wouldn't want the back button to show in this scenario
this.nav.setRoot(page.component);
}
listenToLoginEvents() {
this.events.subscribe('user:login', () => {
this.loggedIn = true;
});
this.events.subscribe('user:logout', () => {
this.loggedIn = false;
});
}
}
@NgModule({
declarations: [
ApiDemoApp,
Login,
Logout
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
Login,
Logout
]
})
export class AppModule {}

View File

@@ -0,0 +1,45 @@
import { Component, ViewChild } from '@angular/core';
import { Events, Nav } from '../../../../src';
import { PageOne } from '../pages/page-one/page-one';
import { PageTwo } from '../pages/page-two/page-two';
@Component({
templateUrl: 'app.component.html'
})
export class AppComponent {
@ViewChild(Nav) nav: Nav;
root = PageOne;
loggedIn = false;
loggedInPages = [
{ title: 'Logout', component: PageTwo }
];
loggedOutPages = [
{ title: 'Login', component: PageOne }
];
constructor(private events: Events) {
this.listenToLoginEvents();
}
openPage(menu: any, page: any) {
// find the nav component and set what the root page should be
// reset the nav to remove previous pages and only have this page
// we wouldn't want the back button to show in this scenario
this.nav.setRoot(page.component);
}
listenToLoginEvents() {
this.events.subscribe('user:login', () => {
this.loggedIn = true;
});
this.events.subscribe('user:logout', () => {
this.loggedIn = false;
});
}
}

View File

@@ -0,0 +1,21 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
import { PageTwoModule } from '../pages/page-two/page-two.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule,
PageTwoModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -0,0 +1,18 @@
import { Component } from '@angular/core';
import { Events } from '../../../../../src';
@Component({
templateUrl: 'page-one.html'
})
export class PageOne {
user = {
name: 'Administrator',
username: 'admin'
};
constructor(private events: Events) {}
login() {
this.events.publish('user:login');
}
}

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageTwo } from './page-two';
@NgModule({
declarations: [
PageTwo,
],
imports: [
IonicPageModule.forChild(PageTwo),
],
entryComponents: [
PageTwo,
]
})
export class PageTwoModule {}

View File

@@ -0,0 +1,13 @@
import { Component } from '@angular/core';
import { Events } from '../../../../../src';
@Component({
templateUrl: 'page-two.html'
})
export class PageTwo {
constructor(private events: Events) {}
logout() {
this.events.publish('user:logout');
}
}

View File

@@ -1,48 +0,0 @@
import { Component, NgModule } from '@angular/core';
import { FabContainer, IonicApp, IonicModule } from '../../ionic-angular';
@Component({
templateUrl: 'page.html'
})
export class ApiDemoPage {
array: number[] = [];
add() {
this.array.push(1);
}
clickMainFAB() {
console.log('Clicked open social menu');
}
openSocial(network: string, fab: FabContainer) {
console.log('Share in ' + network);
fab.close();
}
}
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -0,0 +1,22 @@
import { Component } from '@angular/core';
import { FabContainer } from '../../../../../src';
@Component({
templateUrl: 'page-one.html'
})
export class PageOne {
array: number[] = [];
add() {
this.array.push(1);
}
clickMainFAB() {
console.log('Clicked open social menu');
}
openSocial(network: string, fab: FabContainer) {
console.log('Share in ' + network);
fab.close();
}
}

View File

@@ -1,32 +0,0 @@
import { Component, NgModule } from '@angular/core';
import { IonicApp, IonicModule } from '../../ionic-angular';
@Component({
templateUrl: 'page.html'
})
export class ApiDemoPage {}
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -0,0 +1,6 @@
import { Component } from '@angular/core';
@Component({
templateUrl: 'page-one.html'
})
export class PageOne {}

View File

@@ -1,32 +0,0 @@
import { Component, NgModule } from '@angular/core';
import { IonicApp, IonicModule } from '../../ionic-angular';
@Component({
templateUrl: 'page.html'
})
export class ApiDemoPage {}
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
]
})
export class PageOneModule {}

View File

@@ -0,0 +1,6 @@
import { Component } from '@angular/core';
@Component({
templateUrl: 'page-one.html'
})
export class PageOne {}

View File

@@ -1,117 +0,0 @@
import { Component, Injectable, NgModule } from '@angular/core';
import { InfiniteScroll, IonicApp, IonicModule } from '../../ionic-angular';
/**
* Mock Data Access Object
**/
@Injectable()
export class MockProvider {
getData(): any[] {
// return mock data synchronously
let data = [];
for (var i = 0; i < 20; i++) {
data.push( this._getRandomData() );
}
return data;
}
getAsyncData(): Promise<any[]> {
// async receive mock data
return new Promise(resolve => {
setTimeout(() => {
resolve(this.getData());
}, 1000);
});
}
private _getRandomData() {
let i = Math.floor( Math.random() * this._data.length );
return this._data[i];
}
private _data = [
'Fast Times at Ridgemont High',
'Peggy Sue Got Married',
'Raising Arizona',
'Moonstruck',
'Fire Birds',
'Honeymoon in Vegas',
'Amos & Andrew',
'It Could Happen to You',
'Trapped in Paradise',
'Leaving Las Vegas',
'The Rock',
'Con Air',
'Face/Off',
'City of Angels',
'Gone in Sixty Seconds',
'The Family Man',
'Windtalkers',
'Matchstick Men',
'National Treasure',
'Ghost Rider',
'Grindhouse',
'Next',
'Kick-Ass',
'Drive Angry',
];
}
@Component({
templateUrl: 'page.html'
})
export class ApiDemoPage {
items: string[];
constructor(private mockProvider: MockProvider) {
this.items = mockProvider.getData();
}
doInfinite(infiniteScroll: InfiniteScroll) {
this.mockProvider.getAsyncData().then((newData) => {
for (var i = 0; i < newData.length; i++) {
this.items.push( newData[i] );
}
infiniteScroll.complete();
if (this.items.length > 90) {
infiniteScroll.enable(false);
}
});
}
}
@Component({
template: '<ion-nav [root]="rootPage"></ion-nav>'
})
export class ApiDemoApp {
rootPage = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoApp,
ApiDemoPage
],
providers: [
MockProvider
]
})
export class AppModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

View File

@@ -0,0 +1,21 @@
import { NgModule } from '@angular/core';
import { IonicPageModule } from '../../../../../src';
import { PageOne } from './page-one';
import { MockProvider } from './provider';
@NgModule({
declarations: [
PageOne,
],
imports: [
IonicPageModule.forChild(PageOne),
],
entryComponents: [
PageOne,
],
providers: [
MockProvider
]
})
export class PageOneModule {}

View File

@@ -0,0 +1,28 @@
import { Component } from '@angular/core';
import { MockProvider} from './provider';
import { InfiniteScroll } from '../../../../../src';
@Component({
templateUrl: 'page-one.html'
})
export class PageOne {
items: string[];
constructor(private mockProvider: MockProvider) {
this.items = mockProvider.getData();
}
doInfinite(infiniteScroll: InfiniteScroll) {
this.mockProvider.getAsyncData().then((newData) => {
for (var i = 0; i < newData.length; i++) {
this.items.push( newData[i] );
}
infiniteScroll.complete();
if (this.items.length > 90) {
infiniteScroll.enable(false);
}
});
}
}

View File

@@ -0,0 +1,58 @@
import { Injectable } from '@angular/core';
@Injectable()
export class MockProvider {
getData(): any[] {
// return mock data synchronously
let data: any[] = [];
for (var i = 0; i < 20; i++) {
data.push( this._getRandomData() );
}
return data;
}
getAsyncData(): Promise<any[]> {
// async receive mock data
return new Promise(resolve => {
setTimeout(() => {
resolve(this.getData());
}, 1000);
});
}
private _getRandomData() {
let i = Math.floor( Math.random() * this._data.length );
return this._data[i];
}
private _data = [
'Fast Times at Ridgemont High',
'Peggy Sue Got Married',
'Raising Arizona',
'Moonstruck',
'Fire Birds',
'Honeymoon in Vegas',
'Amos & Andrew',
'It Could Happen to You',
'Trapped in Paradise',
'Leaving Las Vegas',
'The Rock',
'Con Air',
'Face/Off',
'City of Angels',
'Gone in Sixty Seconds',
'The Family Man',
'Windtalkers',
'Matchstick Men',
'National Treasure',
'Ghost Rider',
'Grindhouse',
'Next',
'Kick-Ass',
'Drive Angry',
];
}

View File

@@ -1,33 +0,0 @@
import { Component, NgModule } from '@angular/core';
import { IonicApp, IonicModule } from '../../ionic-angular';
@Component({
templateUrl: 'page.html'
})
export class ApiDemoPage {}
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class ApiDemoApp {
root = ApiDemoPage;
}
@NgModule({
declarations: [
ApiDemoApp,
ApiDemoPage
],
imports: [
IonicModule.forRoot(ApiDemoApp)
],
bootstrap: [IonicApp],
entryComponents: [
ApiDemoPage
]
})
export class AppModule {}

View File

@@ -0,0 +1,9 @@
import { Component } from '@angular/core';
import { PageOne } from '../pages/page-one/page-one';
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class AppComponent {
root = PageOne;
}

View File

@@ -0,0 +1,19 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule } from '../../../../src';
import { AppComponent } from './app.component';
import { PageOneModule } from '../pages/page-one/page-one.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(AppComponent),
PageOneModule
],
bootstrap: [IonicApp]
})
export class AppModule {}

View File

@@ -0,0 +1,5 @@
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

Some files were not shown because too many files have changed in this diff Show More