diff --git a/CHANGELOG.md b/CHANGELOG.md index 6605d32db22..cb8fadcde12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,1443 @@ + +### 1.0.0-rc.3 "radium-raccoon" (2015-04-13) + + +#### Bug Fixes + +* initialize $scope.$tabSelected when nested tabs selected. ([ec7bf202](https://github.com/driftyco/ionic/commit/ec7bf202)) +* **$ionNavView:** prevent read property 'name' of null ([4831f489](https://github.com/driftyco/ionic/commit/4831f489), closes [#1587](https://github.com/driftyco/ionic/issues/1587)) +* **$ionicActionSheet:** + * stop memory leak due to hidden element staying in dom ([b7646a56](https://github.com/driftyco/ionic/commit/b7646a56)) + * fix problems with cancel() not being called ([323e2ce2](https://github.com/driftyco/ionic/commit/323e2ce2), closes [#1013](https://github.com/driftyco/ionic/issues/1013), [#1576](https://github.com/driftyco/ionic/issues/1576)) + * provide default functions for options ([ba39fb00](https://github.com/driftyco/ionic/commit/ba39fb00), closes [#1013](https://github.com/driftyco/ionic/issues/1013)) +* **$ionicHistory:** pop duplicate view registers ([4833467d](https://github.com/driftyco/ionic/commit/4833467d)) +* **$ionicLoading:** + * make `hideOnStateChange` work if loader is delayed ([878c8170](https://github.com/driftyco/ionic/commit/878c8170), closes [#3022](https://github.com/driftyco/ionic/issues/3022)) + * do not flicker when showing long loading messages ([90e7395e](https://github.com/driftyco/ionic/commit/90e7395e), closes [#1252](https://github.com/driftyco/ionic/issues/1252)) + * stop race condition with show and hide ([eb1dee93](https://github.com/driftyco/ionic/commit/eb1dee93), closes [#1100](https://github.com/driftyco/ionic/issues/1100)) +* **$ionicModal:** + * do not inherit has-header etc from parent scope ([6c0c8350](https://github.com/driftyco/ionic/commit/6c0c8350), closes [#1191](https://github.com/driftyco/ionic/issues/1191)) + * make it use jqLite#remove() ([104c6420](https://github.com/driftyco/ionic/commit/104c6420), closes [#1138](https://github.com/driftyco/ionic/issues/1138)) +* **$ionicNavBarDelegate:** update method names ([04cf629f](https://github.com/driftyco/ionic/commit/04cf629f)) +* **$ionicPopup:** + * stop race condition with show then hide ([698c93fc](https://github.com/driftyco/ionic/commit/698c93fc)) + * make it work if jquery is included ([21ff7547](https://github.com/driftyco/ionic/commit/21ff7547), closes [#1027](https://github.com/driftyco/ionic/issues/1027)) +* **$ionicTabsDelegate:** find active tab instance ([0fd6e915](https://github.com/driftyco/ionic/commit/0fd6e915)) +* **.pane:** + * Remove overflow:hidden from .pane,.view ([64f0030b](https://github.com/driftyco/ionic/commit/64f0030b)) + * make pane class have overflow: hidden ([dca87e2c](https://github.com/driftyco/ionic/commit/dca87e2c), closes [#1218](https://github.com/driftyco/ionic/issues/1218)) +* **.slide-in-right:** fix leave animation being same as enter ([024f51d3](https://github.com/driftyco/ionic/commit/024f51d3), closes [#1610](https://github.com/driftyco/ionic/issues/1610)) +* **.slide-left-right-ios7:** do not give borders to header/footer bars ([30a9da19](https://github.com/driftyco/ionic/commit/30a9da19), closes [#1232](https://github.com/driftyco/ionic/issues/1232)) +* **.tab-item:** make it work with activator ([1b1c234f](https://github.com/driftyco/ionic/commit/1b1c234f), closes [#1317](https://github.com/driftyco/ionic/issues/1317)) +* **.tabs-icon-*:** only work on directly descendant tabs ([77f26831](https://github.com/driftyco/ionic/commit/77f26831), closes [#1261](https://github.com/driftyco/ionic/issues/1261)) +* **CustomEvent:** fix IE CustomEvent polyfill ([191464c9](https://github.com/driftyco/ionic/commit/191464c9)) +* **actionSheet:** run $apply when closing actionSheet with back button ([d3ed66e0](https://github.com/driftyco/ionic/commit/d3ed66e0)) +* **actionsheet:** + * Use transition instead of animation for backdrop, fix for Android 2.3 ([c91622b7](https://github.com/driftyco/ionic/commit/c91622b7)) + * Dismiss actionsheet when tapping backdrop, ([668c646f](https://github.com/driftyco/ionic/commit/668c646f), closes [#733](https://github.com/driftyco/ionic/issues/733)) + * Fix slide-up animation, ([44b31e18](https://github.com/driftyco/ionic/commit/44b31e18), closes [#713](https://github.com/driftyco/ionic/issues/713)) + * Actionsheet in modal has pointer-events enabled, ([1503cc72](https://github.com/driftyco/ionic/commit/1503cc72), closes [#660](https://github.com/driftyco/ionic/issues/660)) +* **activator:** + * adds activated class to buttons in nav-bar and header-bars ([36df5086](https://github.com/driftyco/ionic/commit/36df5086), closes [#3348](https://github.com/driftyco/ionic/issues/3348)) + * check classList exists ([0bed91f3](https://github.com/driftyco/ionic/commit/0bed91f3), closes [#3295](https://github.com/driftyco/ionic/issues/3295)) + * properly activate elements nested inside an item. ([3c15b118](https://github.com/driftyco/ionic/commit/3c15b118)) +* **active:** + * Taps/clicks now use .activated instead of .active, ([870dcd6f](https://github.com/driftyco/ionic/commit/870dcd6f), closes [#913](https://github.com/driftyco/ionic/issues/913)) + * Updated which elements to set active class along w/ tests, ([423f9e4f](https://github.com/driftyco/ionic/commit/423f9e4f), closes [#857](https://github.com/driftyco/ionic/issues/857)) +* **anchorScroll:** find offset of nested elements correctly ([17cc0408](https://github.com/driftyco/ionic/commit/17cc0408), closes [#618](https://github.com/driftyco/ionic/issues/618)) +* **android:** when keyboard comes up, ensure input is in view ([9327ac71](https://github.com/driftyco/ionic/commit/9327ac71), closes [#314](https://github.com/driftyco/ionic/issues/314)) +* **android-2.2:** use dot notation for reserved 'class' keyword ([3bcf06f2](https://github.com/driftyco/ionic/commit/3bcf06f2), closes [#1228](https://github.com/driftyco/ionic/issues/1228)) +* **angular:** `.finally` syntax error in Android 2.3 ([1f2d900e](https://github.com/driftyco/ionic/commit/1f2d900e)) +* **back button:** do not animate back button transition if the title doesn't change. ([d3c8a1b2](https://github.com/driftyco/ionic/commit/d3c8a1b2), closes [#1858](https://github.com/driftyco/ionic/issues/1858)) +* **back-button:** Fade in/out back button instead of animating left/right, ([7deefe1d](https://github.com/driftyco/ionic/commit/7deefe1d), closes [#624](https://github.com/driftyco/ionic/issues/624)) +* **backButton:** + * dynamic icon/text updates ([a0c3c557](https://github.com/driftyco/ionic/commit/a0c3c557), closes [#3281](https://github.com/driftyco/ionic/issues/3281)) + * add .header-item class ([57bf4f16](https://github.com/driftyco/ionic/commit/57bf4f16)) + * able to hide back button if any back button attr set in navBar, ([74a05a03](https://github.com/driftyco/ionic/commit/74a05a03), closes [#564](https://github.com/driftyco/ionic/issues/564)) + * Do not show back button if no attributes set, ([2d39418d](https://github.com/driftyco/ionic/commit/2d39418d), closes [#549](https://github.com/driftyco/ionic/issues/549)) +* **backbutton:** Allow only one back button listener to run per click, ([a491f22c](https://github.com/driftyco/ionic/commit/a491f22c), closes [#693](https://github.com/driftyco/ionic/issues/693)) +* **backdrop:** + * use sass vars ([a56bbc97](https://github.com/driftyco/ionic/commit/a56bbc97)) + * disable tap longer after backdrop close ([7faeeda0](https://github.com/driftyco/ionic/commit/7faeeda0), closes [#1536](https://github.com/driftyco/ionic/issues/1536)) + * Changed z-index for loading backdrop only. ([4c700e9c](https://github.com/driftyco/ionic/commit/4c700e9c), closes [#1428](https://github.com/driftyco/ionic/issues/1428)) +* **badge:** + * Badge horizontal alignment over item right side buttons, ([ded46931](https://github.com/driftyco/ionic/commit/ded46931), closes [#826](https://github.com/driftyco/ionic/issues/826)) + * Vertical align a badge in an item-divider, ([cb5510c1](https://github.com/driftyco/ionic/commit/cb5510c1), closes [#707](https://github.com/driftyco/ionic/issues/707)) + * Update badge alignment in tab items, ([c4eed02f](https://github.com/driftyco/ionic/commit/c4eed02f), closes [#694](https://github.com/driftyco/ionic/issues/694)) +* **bar:** + * do not disable pointer-events in nav-bar ([5c1d0fa2](https://github.com/driftyco/ionic/commit/5c1d0fa2)) + * move font weight to variable ([86ea0473](https://github.com/driftyco/ionic/commit/86ea0473)) + * fix title font weight ([48087e4e](https://github.com/driftyco/ionic/commit/48087e4e)) + * properly align titles if switching to view with no buttons ([ade143ed](https://github.com/driftyco/ionic/commit/ade143ed), closes [#1242](https://github.com/driftyco/ionic/issues/1242)) + * Increased button icon font size ([8847774f](https://github.com/driftyco/ionic/commit/8847774f)) +* **barSubheader:** fix border-bottom on android ([b2841190](https://github.com/driftyco/ionic/commit/b2841190)) +* **browser:** on first hash-set, dont set scrollTop ([1c4d4a8b](https://github.com/driftyco/ionic/commit/1c4d4a8b)) +* **button:** + * fix button overflow causing whole screen to overflow left/right ([114dad8c](https://github.com/driftyco/ionic/commit/114dad8c), closes [#1780](https://github.com/driftyco/ionic/issues/1780)) + * fix icon vertical alignments for IE 10 ([930794cd](https://github.com/driftyco/ionic/commit/930794cd)) + * Correct vertical alignment of header right buttons, ([438f5fba](https://github.com/driftyco/ionic/commit/438f5fba), closes [#704](https://github.com/driftyco/ionic/issues/704)) + * Tweak vertical alignment of button icons, ([7ec0605e](https://github.com/driftyco/ionic/commit/7ec0605e), closes [#739](https://github.com/driftyco/ionic/issues/739)) +* **buttonIcon:** + * fix vertical-align in safari, ([6acba8da](https://github.com/driftyco/ionic/commit/6acba8da), closes [#554](https://github.com/driftyco/ionic/issues/554)) + * float left icon-left, ([38420c81](https://github.com/driftyco/ionic/commit/38420c81), closes [#515](https://github.com/driftyco/ionic/issues/515)) +* **buttons:** + * update clear button text weight to match native styles ([11b774da](https://github.com/driftyco/ionic/commit/11b774da)) + * centering icons on tag buttons. ([69442d5a](https://github.com/driftyco/ionic/commit/69442d5a), closes [#2074](https://github.com/driftyco/ionic/issues/2074)) +* **cache:** + * remove between histories using maxCache(0) ([460dc4fc](https://github.com/driftyco/ionic/commit/460dc4fc)) + * do not cache view after history change ([129e69b0](https://github.com/driftyco/ionic/commit/129e69b0)) +* **cancelAnimationFrame:** polyfill in ionic.DomUtil ([a0577346](https://github.com/driftyco/ionic/commit/a0577346)) +* **card:** less intense box shadow ([95d3f2e3](https://github.com/driftyco/ionic/commit/95d3f2e3)) +* **cards:** No more double margin if inside padding container ([03903239](https://github.com/driftyco/ionic/commit/03903239)) +* **checkbox:** + * Remove tap highlight and fix checkbox appearance in Firefox, ([b0b446d5](https://github.com/driftyco/ionic/commit/b0b446d5), closes [#496](https://github.com/driftyco/ionic/issues/496)) + * stretch checkbox's clickable area to full width ([5238f8f3](https://github.com/driftyco/ionic/commit/5238f8f3)) + * Entire row of an .item w/ a checkbox is now tappable, ([ac94bb23](https://github.com/driftyco/ionic/commit/ac94bb23), closes [#995](https://github.com/driftyco/ionic/issues/995)) + * Fix checkmark in Android 2.3 ([717148d9](https://github.com/driftyco/ionic/commit/717148d9)) +* **classList:** error on svg elements ([98629d42](https://github.com/driftyco/ionic/commit/98629d42), closes [#1795](https://github.com/driftyco/ionic/issues/1795)) +* **click:** + * remove native click prevent 400ms later ([20d567f8](https://github.com/driftyco/ionic/commit/20d567f8), closes [#2204](https://github.com/driftyco/ionic/issues/2204)) + * fix mouseup click for ion-option-button ([29ee6407](https://github.com/driftyco/ionic/commit/29ee6407)) + * Increase the ghost click prevent delay for grade C devices ([001bcca4](https://github.com/driftyco/ionic/commit/001bcca4)) + * enter key submission blocked. ([72ee799c](https://github.com/driftyco/ionic/commit/72ee799c), closes [#819](https://github.com/driftyco/ionic/issues/819)) + * Click Events In SlideBox Fire Multiple Times, ([f8a71377](https://github.com/driftyco/ionic/commit/f8a71377), closes [#808](https://github.com/driftyco/ionic/issues/808)) + * event.preventDefault() when setting focus() on an input, closes 583 ([fc8ab4b8](https://github.com/driftyco/ionic/commit/fc8ab4b8)) + * Clicks firing twice, ([2132d292](https://github.com/driftyco/ionic/commit/2132d292), closes [#573](https://github.com/driftyco/ionic/issues/573)) +* **clickBlock:** cancel pending show if already hidden ([09678498](https://github.com/driftyco/ionic/commit/09678498)) +* **collectionRepeat:** + * compute width when height is not given ([1e36afc6](https://github.com/driftyco/ionic/commit/1e36afc6), closes [#3357](https://github.com/driftyco/ionic/issues/3357)) + * properly resize when aside is exposed ([6c08b780](https://github.com/driftyco/ionic/commit/6c08b780), closes [#3352](https://github.com/driftyco/ionic/issues/3352)) + * properly delete items when setting size to 0 ([3dc6ab6a](https://github.com/driftyco/ionic/commit/3dc6ab6a), closes [#3299](https://github.com/driftyco/ionic/issues/3299)) + * fix a dom problem with margins and position:relative ([83a20c61](https://github.com/driftyco/ionic/commit/83a20c61), closes [#3277](https://github.com/driftyco/ionic/issues/3277)) + * fix problem with option & delete buttons ([2c2662fe](https://github.com/driftyco/ionic/commit/2c2662fe), closes [#3280](https://github.com/driftyco/ionic/issues/3280)) + * make it work performantly with exposeAsideWhen ([4f35d8e6](https://github.com/driftyco/ionic/commit/4f35d8e6), closes [#3244](https://github.com/driftyco/ionic/issues/3244)) + * fix data change while page disconnected, computed dimensions while no data ([4325025d](https://github.com/driftyco/ionic/commit/4325025d), closes [#3240](https://github.com/driftyco/ionic/issues/3240), [#3238](https://github.com/driftyco/ionic/issues/3238)) + * restore scrollView's normal behavior when repeater is destroyed ([864b46aa](https://github.com/driftyco/ionic/commit/864b46aa), closes [#2078](https://github.com/driftyco/ionic/issues/2078)) + * resize scrollView when data changes ([88aebad3](https://github.com/driftyco/ionic/commit/88aebad3), closes [#2523](https://github.com/driftyco/ionic/issues/2523)) + * properly resize, but only when scrollView size actually changes ([b7a09689](https://github.com/driftyco/ionic/commit/b7a09689), closes [#2935](https://github.com/driftyco/ionic/issues/2935), [#3054](https://github.com/driftyco/ionic/issues/3054)) + * don't rerender on window resize when view is cached ([4f0598dd](https://github.com/driftyco/ionic/commit/4f0598dd), closes [#2677](https://github.com/driftyco/ionic/issues/2677)) + * properly display sibling elements after a collection-repeat ([7913ee0f](https://github.com/driftyco/ionic/commit/7913ee0f)) + * Properly calcuate list height and show ion-infinite-scroll. ([83899681](https://github.com/driftyco/ionic/commit/83899681), closes [#2376](https://github.com/driftyco/ionic/issues/2376)) + * parse collection-item-height/width to int ([a49e577d](https://github.com/driftyco/ionic/commit/a49e577d), closes [#2633](https://github.com/driftyco/ionic/issues/2633)) + * rerender after resize/enter ([3ddaf347](https://github.com/driftyco/ionic/commit/3ddaf347)) + * fix error when switching back to collection-repeat after resizing ([c1f4cbd7](https://github.com/driftyco/ionic/commit/c1f4cbd7)) + * always render data correctly with before/after isblings ([120f99ee](https://github.com/driftyco/ionic/commit/120f99ee), closes [#2025](https://github.com/driftyco/ionic/issues/2025)) + * simplify item reusing process to fix rare reuse error ([8c6d5f2c](https://github.com/driftyco/ionic/commit/8c6d5f2c), closes [#1777](https://github.com/driftyco/ionic/issues/1777)) + * with ngHref, make href attr erase if falsy ([977f6818](https://github.com/driftyco/ionic/commit/977f6818), closes [#1674](https://github.com/driftyco/ionic/issues/1674)) + * rerender when $ionicScrollDelegate resizes ([5e025fbb](https://github.com/driftyco/ionic/commit/5e025fbb), closes [#1777](https://github.com/driftyco/ionic/issues/1777)) + * ignore spacing of hidden elements (ion-refresher) ([9bfa3bd1](https://github.com/driftyco/ionic/commit/9bfa3bd1), closes [#1970](https://github.com/driftyco/ionic/issues/1970)) + * properly display collection repeat inside a modal ([1fbd3c56](https://github.com/driftyco/ionic/commit/1fbd3c56)) + * patch ngSrc/ngHref to fix a bug with falsy values ([208ef13d](https://github.com/driftyco/ionic/commit/208ef13d), closes [#1674](https://github.com/driftyco/ionic/issues/1674)) + * fix scroll when item bigger than viewport ([b2585f19](https://github.com/driftyco/ionic/commit/b2585f19), closes [#1621](https://github.com/driftyco/ionic/issues/1621)) + * remove elements at correct time when leaving page ([30a3c8e0](https://github.com/driftyco/ionic/commit/30a3c8e0)) + * use $rootScope when checking if digest is needed ([74a46122](https://github.com/driftyco/ionic/commit/74a46122), closes [#1518](https://github.com/driftyco/ionic/issues/1518)) + * fix rare NPE error on android 4.1 ([94f0b5b7](https://github.com/driftyco/ionic/commit/94f0b5b7), closes [#1292](https://github.com/driftyco/ionic/issues/1292)) + * correctly save user scroll position on back ([0a640758](https://github.com/driftyco/ionic/commit/0a640758)) + * allow angular expressions properly ([94bcbf75](https://github.com/driftyco/ionic/commit/94bcbf75)) +* **colors:** Update all #4A87EE colors to use $positive color, ([d113ddfa](https://github.com/driftyco/ionic/commit/d113ddfa), closes [#731](https://github.com/driftyco/ionic/issues/731)) +* **content:** + * don't resize content on keyboard open if it's inside a modal. ([84f18a1c](https://github.com/driftyco/ionic/commit/84f18a1c), closes [#2212](https://github.com/driftyco/ionic/issues/2212)) + * scroll=false in sidemenu hides content ([53c17104](https://github.com/driftyco/ionic/commit/53c17104), closes [#1485](https://github.com/driftyco/ionic/issues/1485)) +* **css:** + * fix header bar in modals with top tabs ([0675792b](https://github.com/driftyco/ionic/commit/0675792b)) + * add height to item-image and fix nav-bar ([c1ef4718](https://github.com/driftyco/ionic/commit/c1ef4718)) + * reset FirefoxOS default gradients ([5f1ea5f6](https://github.com/driftyco/ionic/commit/5f1ea5f6), closes [#1426](https://github.com/driftyco/ionic/issues/1426)) +* **delegate:** + * find delegate when multiple parent histories ([61916c61](https://github.com/driftyco/ionic/commit/61916c61)) + * isActiveScope climb parent scopes ([03d2f1ca](https://github.com/driftyco/ionic/commit/03d2f1ca)) +* **delegates:** find active instance ([0951b97f](https://github.com/driftyco/ionic/commit/0951b97f)) +* **demos:** fix HTML validation issue ([c47fcccc](https://github.com/driftyco/ionic/commit/c47fcccc)) +* **disconnect:** move scope disconnect before enter ([fb81f970](https://github.com/driftyco/ionic/commit/fb81f970)) +* **domready:** Fixed if firing off callbacks when DOM was already ready ([a637fb4d](https://github.com/driftyco/ionic/commit/a637fb4d)) +* **e2e-tests:** disable ionic-tap during e2e tests ([636ca943](https://github.com/driftyco/ionic/commit/636ca943), closes [#1310](https://github.com/driftyco/ionic/issues/1310)) +* **exposeAsideWhen:** + * trigger a resize event when the aside is exposed ([27298e92](https://github.com/driftyco/ionic/commit/27298e92), closes [#3054](https://github.com/driftyco/ionic/issues/3054)) + * disable with isEnabled=false ([6f79a5e5](https://github.com/driftyco/ionic/commit/6f79a5e5), closes [#2210](https://github.com/driftyco/ionic/issues/2210)) +* **firefox:** Add FF 19+ style vendor prefixing (bit.ly/1tLz8Qp) ([5286a0c4](https://github.com/driftyco/ionic/commit/5286a0c4), closes [#1574](https://github.com/driftyco/ionic/issues/1574)) +* **fonts:** missing comma ([4f8bbc18](https://github.com/driftyco/ionic/commit/4f8bbc18)) +* **footer:** + * Fix placement of .bar-footer.item-input-inset ([eaee564d](https://github.com/driftyco/ionic/commit/eaee564d), closes [#1325](https://github.com/driftyco/ionic/issues/1325)) + * Show footers within tab content, ([9c5772f3](https://github.com/driftyco/ionic/commit/9c5772f3), closes [#728](https://github.com/driftyco/ionic/issues/728)) +* **footerBar:** fixed top border position on retina displays. ([f4043e67](https://github.com/driftyco/ionic/commit/f4043e67), closes [#1661](https://github.com/driftyco/ionic/issues/1661)) +* **forms:** Normalized form styles ([89999cad](https://github.com/driftyco/ionic/commit/89999cad)) +* **gesture:** fix onSwipeDown ([2dce7a74](https://github.com/driftyco/ionic/commit/2dce7a74), closes [#1810](https://github.com/driftyco/ionic/issues/1810)) +* **gestureDirectives:** fix problem with event being passed in ([b4b94073](https://github.com/driftyco/ionic/commit/b4b94073)) +* **gestures:** improve drag/swipe response ([a5881eae](https://github.com/driftyco/ionic/commit/a5881eae), closes [#1729](https://github.com/driftyco/ionic/issues/1729), [#2674](https://github.com/driftyco/ionic/issues/2674)) +* **grid:** Correct responsive grid breaks for col-XX, ([8fae85e9](https://github.com/driftyco/ionic/commit/8fae85e9), closes [#803](https://github.com/driftyco/ionic/issues/803)) +* **header:** + * remove bottom border when footer has tabs-top ([11e1bab0](https://github.com/driftyco/ionic/commit/11e1bab0)) + * update title align after rAF ([e53581b8](https://github.com/driftyco/ionic/commit/e53581b8)) + * buttons do not align in Android 4.4 ([06086ee9](https://github.com/driftyco/ionic/commit/06086ee9), closes [#1614](https://github.com/driftyco/ionic/issues/1614)) + * add iOS 8 support to iOS header fix. assumes all iOS will have 7 style headers. ([4a2296dc](https://github.com/driftyco/ionic/commit/4a2296dc), closes [#1625](https://github.com/driftyco/ionic/issues/1625)) + * Set a height for `.bar .title` ([0c960b54](https://github.com/driftyco/ionic/commit/0c960b54)) + * Header input too long on Android 4.2, ([b654e02e](https://github.com/driftyco/ionic/commit/b654e02e), closes [#1081](https://github.com/driftyco/ionic/issues/1081)) + * Header icon button css fix for Safari, ([801d2d7b](https://github.com/driftyco/ionic/commit/801d2d7b), closes [#576](https://github.com/driftyco/ionic/issues/576)) +* **headerBar:** + * pass attrs from ionNavBar ([48726297](https://github.com/driftyco/ionic/commit/48726297), closes [#2563](https://github.com/driftyco/ionic/issues/2563)) + * view header bars stay under nav bars ([b3d1cc04](https://github.com/driftyco/ionic/commit/b3d1cc04)) + * scroll to top ([6eefee3d](https://github.com/driftyco/ionic/commit/6eefee3d)) + * More accurate scroll-to-top detection ([1a7c1f1d](https://github.com/driftyco/ionic/commit/1a7c1f1d)) + * tap to scroll to top only on the nearest scrollview ([58c97e0d](https://github.com/driftyco/ionic/commit/58c97e0d), closes [#1329](https://github.com/driftyco/ionic/issues/1329)) +* **headerBarView:** check for null in getTextBounds ([be351ce1](https://github.com/driftyco/ionic/commit/be351ce1), closes [#1377](https://github.com/driftyco/ionic/issues/1377)) +* **hideNavBar:** send data in $ionicView.beforeEnter ([1395513a](https://github.com/driftyco/ionic/commit/1395513a)) +* **history:** + * index check before forwardViewId = null ([2885258d](https://github.com/driftyco/ionic/commit/2885258d)) + * tabs lose history after switching tabs ([68de8ed9](https://github.com/driftyco/ionic/commit/68de8ed9), closes [#1978](https://github.com/driftyco/ionic/issues/1978)) + * Separate histories and views, clear other views in clearHistory(), ([c99427aa](https://github.com/driftyco/ionic/commit/c99427aa), closes [#724](https://github.com/driftyco/ionic/issues/724)) +* **iframe:** add .iframe-wrapper for scrollable iframe ([b7cd6cb1](https://github.com/driftyco/ionic/commit/b7cd6cb1), closes [#1151](https://github.com/driftyco/ionic/issues/1151)) +* **infiniteScroll:** allow to fire if list does not fill up screen ([e35b95e1](https://github.com/driftyco/ionic/commit/e35b95e1)) +* **input:** + * Fix inline input flexbox model to prevent input from being cut off ([d68ecc16](https://github.com/driftyco/ionic/commit/d68ecc16)) + * long input text adjusts left on focus ([e6b5ff22](https://github.com/driftyco/ionic/commit/e6b5ff22), closes [#1390](https://github.com/driftyco/ionic/issues/1390)) + * vertically align date input text ([e5af75fa](https://github.com/driftyco/ionic/commit/e5af75fa), closes [#1147](https://github.com/driftyco/ionic/issues/1147)) + * transparent bg for .item-input-inset input ([08f0adb1](https://github.com/driftyco/ionic/commit/08f0adb1)) + * Fix to hide input overlays on old Android ([0e9072e4](https://github.com/driftyco/ionic/commit/0e9072e4)) + * Fix input label from shifting when text is too long on iOS, ([b8d4c51f](https://github.com/driftyco/ionic/commit/b8d4c51f), closes [#801](https://github.com/driftyco/ionic/issues/801)) + * Correct vertical alignment of inputs and their labels, ([6547ca60](https://github.com/driftyco/ionic/commit/6547ca60), closes [#799](https://github.com/driftyco/ionic/issues/799)) +* **ion-header-bar:** when hidden, correctly offset the ion-content ([efa61844](https://github.com/driftyco/ionic/commit/efa61844), closes [#1351](https://github.com/driftyco/ionic/issues/1351)) +* **ion-scroll:** + * removed 100% height ([f0d33981](https://github.com/driftyco/ionic/commit/f0d33981)) + * added display block ([d295aee4](https://github.com/driftyco/ionic/commit/d295aee4)) +* **ionCheckbox:** make ng-checked and ng-change work ([a006d896](https://github.com/driftyco/ionic/commit/a006d896), closes [#1349](https://github.com/driftyco/ionic/issues/1349), [#1361](https://github.com/driftyco/ionic/issues/1361)) +* **ionContent:** + * fix rare positioning bug when overflow-scroll is enabled ([84b5e919](https://github.com/driftyco/ionic/commit/84b5e919), closes [#1281](https://github.com/driftyco/ionic/issues/1281)) + * make scrollable content work as child of non-scrollable ([488bd5c0](https://github.com/driftyco/ionic/commit/488bd5c0), closes [#1421](https://github.com/driftyco/ionic/issues/1421)) + * fix scoping with ngController ([6abce8f7](https://github.com/driftyco/ionic/commit/6abce8f7), closes [#1155](https://github.com/driftyco/ionic/issues/1155)) + * do not let child scopes inherit has-* classes ([a5eb48b9](https://github.com/driftyco/ionic/commit/a5eb48b9), closes [#924](https://github.com/driftyco/ionic/issues/924)) + * Update scss for ion-infinite-scroll element ([788df524](https://github.com/driftyco/ionic/commit/788df524)) + * Use new name to find ion-infinite-scroll element ([1702f5c9](https://github.com/driftyco/ionic/commit/1702f5c9)) +* **ionFooterBar:** properly offset content for bar-subfooter ([46e33664](https://github.com/driftyco/ionic/commit/46e33664)) +* **ionHeaderBar:** + * have no side effects with content in other views ([7fd31b6a](https://github.com/driftyco/ionic/commit/7fd31b6a), closes [#1095](https://github.com/driftyco/ionic/issues/1095)) + * do not tapScrollToTop for inputs ([5722900a](https://github.com/driftyco/ionic/commit/5722900a), closes [#1199](https://github.com/driftyco/ionic/issues/1199)) + * make it align after elements properly load ([d00aaa59](https://github.com/driftyco/ionic/commit/d00aaa59)) +* **ionInfiniteScroll:** + * remove listener on $destroy ([08da6f75](https://github.com/driftyco/ionic/commit/08da6f75)) + * work properly if past horizontal boundaries ([d58fff72](https://github.com/driftyco/ionic/commit/d58fff72), closes [#1073](https://github.com/driftyco/ionic/issues/1073)) +* **ionItem:** + * vertically center select in an item ([6df89d78](https://github.com/driftyco/ionic/commit/6df89d78), closes [#3517](https://github.com/driftyco/ionic/issues/3517)) + * properly hide option buttons on scroll in collection-repeat ([7fec8480](https://github.com/driftyco/ionic/commit/7fec8480), closes [#1811](https://github.com/driftyco/ionic/issues/1811), [#2804](https://github.com/driftyco/ionic/issues/2804)) + * make target attribute work properly ([f5f5851b](https://github.com/driftyco/ionic/commit/f5f5851b), closes [#1521](https://github.com/driftyco/ionic/issues/1521)) + * Pass target attributes on tags on to the actual tag. ([4136db00](https://github.com/driftyco/ionic/commit/4136db00), closes [#1492](https://github.com/driftyco/ionic/issues/1492)) + * transform to `` tag for ui-sref ([c6c1300b](https://github.com/driftyco/ionic/commit/c6c1300b)) + * fix error when repeating ([f370db45](https://github.com/driftyco/ionic/commit/f370db45)) +* **ionList:** + * allow scrolling while reorder or delete is active ([2e9d0965](https://github.com/driftyco/ionic/commit/2e9d0965), closes [#1703](https://github.com/driftyco/ionic/issues/1703)) + * make reorder follow an offset list as it scrolls ([3a68a2c9](https://github.com/driftyco/ionic/commit/3a68a2c9)) + * disable swiping of items while option buttons are shown ([81676e6e](https://github.com/driftyco/ionic/commit/81676e6e)) + * do not let option button click propagate to item ([a845ff34](https://github.com/driftyco/ionic/commit/a845ff34)) + * disable tap on element being edited ([634b3971](https://github.com/driftyco/ionic/commit/634b3971)) + * make reorder position work if list is offset ([90da2da6](https://github.com/driftyco/ionic/commit/90da2da6)) + * show reorder/delete on item creation if list is showing ([09a77299](https://github.com/driftyco/ionic/commit/09a77299), closes [#1181](https://github.com/driftyco/ionic/issues/1181)) + * only stop side menu drag if canSwipe ([c653e83c](https://github.com/driftyco/ionic/commit/c653e83c), closes [#709](https://github.com/driftyco/ionic/issues/709)) +* **ionLoadingConfig:** fix default loading template ([9749bb97](https://github.com/driftyco/ionic/commit/9749bb97)) +* **ionModal:** fix header bar in modals with top tabs. ([40604681](https://github.com/driftyco/ionic/commit/40604681), closes [#3347](https://github.com/driftyco/ionic/issues/3347), [#3346](https://github.com/driftyco/ionic/issues/3346)) +* **ionNavBackButton:** stop flicker when pressing back on ios ([cec3a422](https://github.com/driftyco/ionic/commit/cec3a422)) +* **ionNavBar:** adjust has-header if ionNavBar is hidden ([41b73abf](https://github.com/driftyco/ionic/commit/41b73abf), closes [#927](https://github.com/driftyco/ionic/issues/927)) +* **ionNavButtons:** + * do not append if page is removed very quickly ([24a488bb](https://github.com/driftyco/ionic/commit/24a488bb)) + * fix side="left" flicker with back button on ios ([b6266889](https://github.com/driftyco/ionic/commit/b6266889)) + * multiple ionNavButtons elements align correctly ([58de2671](https://github.com/driftyco/ionic/commit/58de2671), closes [#930](https://github.com/driftyco/ionic/issues/930)) +* **ionOptionButton:** vertically align content ([456c2ec7](https://github.com/driftyco/ionic/commit/456c2ec7), closes [#2348](https://github.com/driftyco/ionic/issues/2348)) +* **ionPrefix:** disableRegisterByTagName updated w/ `ion-` prefix for correct view history ([2494b5f9](https://github.com/driftyco/ionic/commit/2494b5f9)) +* **ionRadio:** + * fix ng-change being reported before model changes ([53c437e2](https://github.com/driftyco/ionic/commit/53c437e2), closes [#1741](https://github.com/driftyco/ionic/issues/1741)) + * make `value` attribute work ([5fd5e009](https://github.com/driftyco/ionic/commit/5fd5e009)) + * correctly interpolate ngValue instead of compiling ([948cffeb](https://github.com/driftyco/ionic/commit/948cffeb), closes [#1464](https://github.com/driftyco/ionic/issues/1464)) + * pass name property down to input element ([9995f46b](https://github.com/driftyco/ionic/commit/9995f46b), closes [#1229](https://github.com/driftyco/ionic/issues/1229)) +* **ionRefresher:** + * be sure to run on-refresh with an angular digest ([979f7b52](https://github.com/driftyco/ionic/commit/979f7b52), closes [#1465](https://github.com/driftyco/ionic/issues/1465)) + * do not animate pulling-text ([5c893ab8](https://github.com/driftyco/ionic/commit/5c893ab8), closes [#909](https://github.com/driftyco/ionic/issues/909)) +* **ionReorder:** stop icon from hiding on reorder ([c5b35eee](https://github.com/driftyco/ionic/commit/c5b35eee)) +* **ionReorderButton:** + * stop `ngRepeat:dupes` error when reordering ([ba1859b3](https://github.com/driftyco/ionic/commit/ba1859b3), closes [#1601](https://github.com/driftyco/ionic/issues/1601)) + * fix onReorder not triggering angular digest ([cc46735c](https://github.com/driftyco/ionic/commit/cc46735c)) +* **ionScroll:** let zoom work on android devices ([e88659c6](https://github.com/driftyco/ionic/commit/e88659c6), closes [#1440](https://github.com/driftyco/ionic/issues/1440)) +* **ionSideMenu:** use manual transclude instead of ngTransclude ([991d3cfd](https://github.com/driftyco/ionic/commit/991d3cfd), closes [#666](https://github.com/driftyco/ionic/issues/666)) +* **ionSlideBox:** + * fix regression allowing slide past boundaries ([ec5a2763](https://github.com/driftyco/ionic/commit/ec5a2763), closes [#1414](https://github.com/driftyco/ionic/issues/1414), [#1405](https://github.com/driftyco/ionic/issues/1405), [#1409](https://github.com/driftyco/ionic/issues/1409), [#1321](https://github.com/driftyco/ionic/issues/1321)) + * fix disable-scroll attr, deprecate in favor of $ionicScrollDelegate ([1bdb5e8d](https://github.com/driftyco/ionic/commit/1bdb5e8d), closes [#1113](https://github.com/driftyco/ionic/issues/1113)) + * prevent NPE during drag ([920dc59d](https://github.com/driftyco/ionic/commit/920dc59d), closes [#1240](https://github.com/driftyco/ionic/issues/1240)) +* **ionTab:** + * make it so tabNav works with ngRepeat ([288d4ac2](https://github.com/driftyco/ionic/commit/288d4ac2)) + * make sure all tab-nav attributes are re-interpolated on change ([757f1819](https://github.com/driftyco/ionic/commit/757f1819), closes [#955](https://github.com/driftyco/ionic/issues/955), [#1071](https://github.com/driftyco/ionic/issues/1071)) + * stop browser-tooltip from appearing due to `title` attr ([aa30faf8](https://github.com/driftyco/ionic/commit/aa30faf8), closes [#804](https://github.com/driftyco/ionic/issues/804)) +* **ionTabBar:** fix iconOn and iconOff being wrong ([bcca397c](https://github.com/driftyco/ionic/commit/bcca397c)) +* **ionTabs:** + * do not pre-transclude; stops error on compile ([ecfdbaa6](https://github.com/driftyco/ionic/commit/ecfdbaa6), closes [#730](https://github.com/driftyco/ionic/issues/730)) + * cleanup and fix many issues ([0f1b6f47](https://github.com/driftyco/ionic/commit/0f1b6f47), closes [#597](https://github.com/driftyco/ionic/issues/597), [#634](https://github.com/driftyco/ionic/issues/634), [#334](https://github.com/driftyco/ionic/issues/334), [#175](https://github.com/driftyco/ionic/issues/175), [#646](https://github.com/driftyco/ionic/issues/646), [#647](https://github.com/driftyco/ionic/issues/647)) +* **ionToggle:** stop error in edge case of drag ending before raf ([d108a29e](https://github.com/driftyco/ionic/commit/d108a29e)) +* **ionView:** + * observe for attr changes ([9e5caf59](https://github.com/driftyco/ionic/commit/9e5caf59)) + * make it set navbar if title changes back to old value ([919d4f8d](https://github.com/driftyco/ionic/commit/919d4f8d), closes [#1121](https://github.com/driftyco/ionic/issues/1121)) + * make sure title is set correctly in edge cases ([4814a63b](https://github.com/driftyco/ionic/commit/4814a63b)) + * initialize hideBack/hideNav to false if undefined ([5e56c2d6](https://github.com/driftyco/ionic/commit/5e56c2d6)) + * only $watch attributes if defined ([12e5f6c1](https://github.com/driftyco/ionic/commit/12e5f6c1), closes [#1216](https://github.com/driftyco/ionic/issues/1216)) + * do not set navbar title if no title attr set ([d53eab81](https://github.com/driftyco/ionic/commit/d53eab81), closes [#915](https://github.com/driftyco/ionic/issues/915)) +* **ionicLoading:** make showDelay default to 0 (was 2000) ([0d3718cc](https://github.com/driftyco/ionic/commit/0d3718cc)) +* **ionicPopup:** if input exists, focus it. else, focus first button ([93aa16a7](https://github.com/driftyco/ionic/commit/93aa16a7), closes [#1176](https://github.com/driftyco/ionic/issues/1176)) +* **ionicScrollDelegate:** + * do not error if no scrollTop/Left values ([9e942f89](https://github.com/driftyco/ionic/commit/9e942f89), closes [#659](https://github.com/driftyco/ionic/issues/659)) + * tapScrollToTop won't fire for button tap ([70d95249](https://github.com/driftyco/ionic/commit/70d95249), closes [#557](https://github.com/driftyco/ionic/issues/557)) + * trigger resize before scrolling to top/bottom ([ea289b81](https://github.com/driftyco/ionic/commit/ea289b81), closes [#522](https://github.com/driftyco/ionic/issues/522)) +* **ionicTabBar:** detect if matches state in all cases ([ee2b7686](https://github.com/driftyco/ionic/commit/ee2b7686)) +* **ionicTouch:** use ionic.tapElement ([ed848dde](https://github.com/driftyco/ionic/commit/ed848dde)) +* **ionicView:** erase saved scroll for a view on back ([40fcd01e](https://github.com/driftyco/ionic/commit/40fcd01e)) +* **ionicons:** + * animated icons may rotate on older android devices ([df23a596](https://github.com/driftyco/ionic/commit/df23a596)) + * only apply spin to :before, and not the entire element ([76405d75](https://github.com/driftyco/ionic/commit/76405d75), closes [#2416](https://github.com/driftyco/ionic/issues/2416)) +* **isActiveScope:** find active scope ([7b39bc44](https://github.com/driftyco/ionic/commit/7b39bc44)) +* **item:** + * option button enables swiping ([35173c8d](https://github.com/driftyco/ionic/commit/35173c8d)) + * clicks climb 5 levels looking for an item to activate, but not 6. ([840c014b](https://github.com/driftyco/ionic/commit/840c014b), closes [#1921](https://github.com/driftyco/ionic/issues/1921)) + * Vertically align nav icon w/out flexbox to prevent android crashes, #928 ([5b0f5d02](https://github.com/driftyco/ionic/commit/5b0f5d02)) + * Fix css overflow overrides for .item-text-wrap ([04b4d771](https://github.com/driftyco/ionic/commit/04b4d771)) + * Fix delete icon alignment in .item-icon.left, ([044211de](https://github.com/driftyco/ionic/commit/044211de), closes [#946](https://github.com/driftyco/ionic/issues/946)) + * Restructure item editing css for added reusability and organization ([07c824db](https://github.com/driftyco/ionic/commit/07c824db)) + * fix avatar/thumbnail in .item-complex, and avatar misspelling ([947b8d69](https://github.com/driftyco/ionic/commit/947b8d69)) + * Fix badge moving to new line when text is too long, ([4d366710](https://github.com/driftyco/ionic/commit/4d366710), closes [#551](https://github.com/driftyco/ionic/issues/551)) + * Fix item-icon-left / right animating Ionicon not centered, ([11a4338d](https://github.com/driftyco/ionic/commit/11a4338d), closes [#670](https://github.com/driftyco/ionic/issues/670)) + * degrade .item right arrows by grade for low end devices ([3a69bb34](https://github.com/driftyco/ionic/commit/3a69bb34)) +* **keyboard:** + * reset modal scroll view on show ([c64a10b1](https://github.com/driftyco/ionic/commit/c64a10b1)) + * enable keyboard accessory bar more quickly after focus ([7bf1207a](https://github.com/driftyco/ionic/commit/7bf1207a), closes [#3113](https://github.com/driftyco/ionic/issues/3113)) + * shrink scrollView on date and select focus on iOS ([4636cb0e](https://github.com/driftyco/ionic/commit/4636cb0e)) + * android scroll stuck ([74de015c](https://github.com/driftyco/ionic/commit/74de015c)) + * screen.height fallback for window.innerHeight ([77847f49](https://github.com/driftyco/ionic/commit/77847f49), closes [#2168](https://github.com/driftyco/ionic/issues/2168)) + * add link to plugin repo ([cb0d17c0](https://github.com/driftyco/ionic/commit/cb0d17c0)) +* **labels:** Fix .input-label's width for androids w/out full flex box support, #998 ([096a01c1](https://github.com/driftyco/ionic/commit/096a01c1)) +* **list:** + * make reorder/delete button animation work well on all devices ([4f10a723](https://github.com/driftyco/ionic/commit/4f10a723)) + * add extra margin-bottom to the last list if the list is also a card. ([306fe047](https://github.com/driftyco/ionic/commit/306fe047), closes [#1708](https://github.com/driftyco/ionic/issues/1708)) + * Drag to expose list option buttons, ([25650005](https://github.com/driftyco/ionic/commit/25650005), closes [#701](https://github.com/driftyco/ionic/issues/701)) + * css: don't make last .list on page have margin-bottom ([fb5a0d4c](https://github.com/driftyco/ionic/commit/fb5a0d4c)) +* **listButtons:** Update list button sizes, ([91652112](https://github.com/driftyco/ionic/commit/91652112), closes [#478](https://github.com/driftyco/ionic/issues/478)) +* **listItem:** apply color styles to complex list items ([9ff1b965](https://github.com/driftyco/ionic/commit/9ff1b965)) +* **listView:** + * do not scroll freeze when no scrollView ([811cc272](https://github.com/driftyco/ionic/commit/811cc272), closes [#3174](https://github.com/driftyco/ionic/issues/3174)) + * ionic.extend not extend ([7557c58e](https://github.com/driftyco/ionic/commit/7557c58e)) + * unchecked null pointer ([3c4f15c7](https://github.com/driftyco/ionic/commit/3c4f15c7)) + * avoiding potential memory leak from assigning properties directly to an element ([d7793463](https://github.com/driftyco/ionic/commit/d7793463)) + * position dragged list item properly when list view's parent is offset. ([afdf0ad7](https://github.com/driftyco/ionic/commit/afdf0ad7), closes [#1583](https://github.com/driftyco/ionic/issues/1583)) + * reordering up is more responsive, fix scrolling error ([df9c0747](https://github.com/driftyco/ionic/commit/df9c0747), closes [#1202](https://github.com/driftyco/ionic/issues/1202)) + * fixed active state on scroll ([040af824](https://github.com/driftyco/ionic/commit/040af824)) + * send index on delete. ([75107771](https://github.com/driftyco/ionic/commit/75107771), closes [#849](https://github.com/driftyco/ionic/issues/849)) + * only allow one swipeable item open. ([73b750fb](https://github.com/driftyco/ionic/commit/73b750fb), closes [#763](https://github.com/driftyco/ionic/issues/763)) + * No slide drag if no hidden buttons. ([4e605979](https://github.com/driftyco/ionic/commit/4e605979), closes [#847](https://github.com/driftyco/ionic/issues/847)) +* **loading:** + * options.hideOnStateChange: also hide on stateChangeError ([3d128535](https://github.com/driftyco/ionic/commit/3d128535), closes [#3051](https://github.com/driftyco/ionic/issues/3051)) + * prevent loading service from disabling all future back button behavior. ([34934f63](https://github.com/driftyco/ionic/commit/34934f63), closes [#2214](https://github.com/driftyco/ionic/issues/2214)) + * subsequent calls use config defaults and not last call's options., #2088 ([cffe6318](https://github.com/driftyco/ionic/commit/cffe6318), closes [#2066](https://github.com/driftyco/ionic/issues/2066)) + * prevent spinners in loading view from causing reflows when hidden. ([767ce6a3](https://github.com/driftyco/ionic/commit/767ce6a3), closes [#2013](https://github.com/driftyco/ionic/issues/2013)) + * potential race condition with showing and hiding loading in same watch cycle ([65aece2a](https://github.com/driftyco/ionic/commit/65aece2a)) + * stop resize flicker when showing & changing text ([cb368698](https://github.com/driftyco/ionic/commit/cb368698)) + * Prevent clicks on modal views when loading is active. ([7630bd41](https://github.com/driftyco/ionic/commit/7630bd41), closes [#1720](https://github.com/driftyco/ionic/issues/1720)) + * backdrop higher z-index ([bfce8e27](https://github.com/driftyco/ionic/commit/bfce8e27)) + * fix not hiding after two shows, always cancel delay ([4216266f](https://github.com/driftyco/ionic/commit/4216266f), closes [#1130](https://github.com/driftyco/ionic/issues/1130)) + * make showDelay option work correctly ([7281e2ab](https://github.com/driftyco/ionic/commit/7281e2ab), closes [#562](https://github.com/driftyco/ionic/issues/562)) +* **menu:** safari z-index fix for `.menu .scroll-content` ([754ef461](https://github.com/driftyco/ionic/commit/754ef461), closes [#1408](https://github.com/driftyco/ionic/issues/1408)) +* **menuClose:** + * expire nextViewOptions ([bba9e795](https://github.com/driftyco/ionic/commit/bba9e795)) + * add resetHistory() to menuClose ([49aaed7e](https://github.com/driftyco/ionic/commit/49aaed7e)) + * do not close if aside exposed ([b239eb9e](https://github.com/driftyco/ionic/commit/b239eb9e)) +* **menuContent:** gestures do not stop_browser_behavior ([df578585](https://github.com/driftyco/ionic/commit/df578585), closes [#421](https://github.com/driftyco/ionic/issues/421)) +* **modal:** + * remove overflow: visible on modal content ([1a4e36bc](https://github.com/driftyco/ionic/commit/1a4e36bc)) + * prevent ghost clicks on close ([a416c66d](https://github.com/driftyco/ionic/commit/a416c66d)) + * focus on inputs under keyboard ([12bb8de5](https://github.com/driftyco/ionic/commit/12bb8de5)) + * align header title after viewable ([3bcda3f2](https://github.com/driftyco/ionic/commit/3bcda3f2)) + * remove iOS style header padding from inset headers in modal popups on iPad in po ([e6dda6a5](https://github.com/driftyco/ionic/commit/e6dda6a5), closes [#1605](https://github.com/driftyco/ionic/issues/1605)) + * error message for modal show after remove ([003659b6](https://github.com/driftyco/ionic/commit/003659b6)) + * Remove modal flicker, ([d2ebed84](https://github.com/driftyco/ionic/commit/d2ebed84), closes [#1150](https://github.com/driftyco/ionic/issues/1150)) + * Increase delay of removing .modal-open to prevent focus under modals ([83fd11c5](https://github.com/driftyco/ionic/commit/83fd11c5)) + * Do not apply the same modal animation to all of its children, ([9cff5d03](https://github.com/driftyco/ionic/commit/9cff5d03), closes [#683](https://github.com/driftyco/ionic/issues/683)) + * Fix removing modal from DOM on .remove(), ([c4ca7a85](https://github.com/driftyco/ionic/commit/c4ca7a85), closes [#755](https://github.com/driftyco/ionic/issues/755)) + * Improve slide-up/down animations, remove flickers ([b593cf1b](https://github.com/driftyco/ionic/commit/b593cf1b)) + * Fix modal animation for firefox, ([0033c880](https://github.com/driftyco/ionic/commit/0033c880), closes [#671](https://github.com/driftyco/ionic/issues/671)) + * do not click buttons underneath modal ([9bc928f0](https://github.com/driftyco/ionic/commit/9bc928f0)) +* **nav:** + * back btn and bar hide/show ([0936f78c](https://github.com/driftyco/ionic/commit/0936f78c)) + * correct element structure for nav-vew ([2b239575](https://github.com/driftyco/ionic/commit/2b239575)) + * prevent nav-bar flicker w/ no animation ([4366bd57](https://github.com/driftyco/ionic/commit/4366bd57)) + * prevent flickers between views ([03086ed2](https://github.com/driftyco/ionic/commit/03086ed2)) + * Removed border on animation ([a9a52f64](https://github.com/driftyco/ionic/commit/a9a52f64)) + * remove disabled-pointer-events ([5b50e120](https://github.com/driftyco/ionic/commit/5b50e120), closes [#1383](https://github.com/driftyco/ionic/issues/1383)) + * make fewer z-index assumptions while animating in ios7 animation ([02f5fcb7](https://github.com/driftyco/ionic/commit/02f5fcb7)) +* **navBar:** + * check existence of leaving controller ([8c105ad2](https://github.com/driftyco/ionic/commit/8c105ad2), closes [#2868](https://github.com/driftyco/ionic/issues/2868)) + * use $attrs['class'], not $attrs.class ([892516d4](https://github.com/driftyco/ionic/commit/892516d4), closes [#3062](https://github.com/driftyco/ionic/issues/3062)) + * calc correct button width before enter ([74cc9803](https://github.com/driftyco/ionic/commit/74cc9803)) + * only add default animation if there is no custom animation ([cdba48f1](https://github.com/driftyco/ionic/commit/cdba48f1), closes [#1671](https://github.com/driftyco/ionic/issues/1671)) + * animations, hide back button, no flicker ([465ea769](https://github.com/driftyco/ionic/commit/465ea769), closes [#653](https://github.com/driftyco/ionic/issues/653)) + * animations work properly ([749cd382](https://github.com/driftyco/ionic/commit/749cd382)) + * Remove duplicate back button arrows, ([4808e80d](https://github.com/driftyco/ionic/commit/4808e80d), closes [#547](https://github.com/driftyco/ionic/issues/547)) + * Back button w/ text to use inner ([738ace89](https://github.com/driftyco/ionic/commit/738ace89)) +* **navButtons:** + * fixed case where buttons would display under each other in 4.4 ([eef1d32b](https://github.com/driftyco/ionic/commit/eef1d32b)) + * correct show/hide ([ff055d6f](https://github.com/driftyco/ionic/commit/ff055d6f)) +* **navClear:** + * only set viewOptions if click leads to state change ([4dffc5f6](https://github.com/driftyco/ionic/commit/4dffc5f6), closes [#1043](https://github.com/driftyco/ionic/issues/1043)) + * be sure it runs before ngClick ([4f47bf24](https://github.com/driftyco/ionic/commit/4f47bf24), closes [#1047](https://github.com/driftyco/ionic/issues/1047)) +* **navDirection:** use correct direction value ([4ba4b44f](https://github.com/driftyco/ionic/commit/4ba4b44f)) +* **navView:** + * _getView renamed to _getViewById, ([78206d0e](https://github.com/driftyco/ionic/commit/78206d0e), closes [#736](https://github.com/driftyco/ionic/issues/736)) + * if !$animate.enabled(), do not animate ([990d14e8](https://github.com/driftyco/ionic/commit/990d14e8), closes [#426](https://github.com/driftyco/ionic/issues/426)) +* **navViewController:** create navBarCtrl.title ([ed8bd94f](https://github.com/driftyco/ionic/commit/ed8bd94f)) +* **navbar:** re-align title after show ([0e1689d5](https://github.com/driftyco/ionic/commit/0e1689d5), closes [#3064](https://github.com/driftyco/ionic/issues/3064)) +* **platform:** + * revert b1f94da27e265ca32698b86785073d53208e6679, #3279 ([1c7b2883](https://github.com/driftyco/ionic/commit/1c7b2883), closes [#3175](https://github.com/driftyco/ionic/issues/3175)) + * fullscreen method will not offset footer by 20px ([b1f94da2](https://github.com/driftyco/ionic/commit/b1f94da2)) + * Fix Platform.showStatusBar so it can be used multiple times, ([a6c47cd3](https://github.com/driftyco/ionic/commit/a6c47cd3), closes [#702](https://github.com/driftyco/ionic/issues/702)) + * Update ionic.Platform.is() to check all platforms, ([fcd0fa73](https://github.com/driftyco/ionic/commit/fcd0fa73), closes [#604](https://github.com/driftyco/ionic/issues/604)) +* **pointer:** Add pointer styling to .item[ng-click], ([aa280910](https://github.com/driftyco/ionic/commit/aa280910), closes [#858](https://github.com/driftyco/ionic/issues/858)) +* **popover:** + * fix popover position on Internet Explorer ([893fcbec](https://github.com/driftyco/ionic/commit/893fcbec), closes [#2861](https://github.com/driftyco/ionic/issues/2861)) + * only pop upwards if there's room above ([56171a26](https://github.com/driftyco/ionic/commit/56171a26), closes [#3047](https://github.com/driftyco/ionic/issues/3047), [#3074](https://github.com/driftyco/ionic/issues/3074)) + * fix border radius styling on header bar ([dcac56ae](https://github.com/driftyco/ionic/commit/dcac56ae), closes [#3179](https://github.com/driftyco/ionic/issues/3179)) + * extend options to modal service ([71cb2023](https://github.com/driftyco/ionic/commit/71cb2023), closes [#2724](https://github.com/driftyco/ionic/issues/2724)) + * default values overwrites options ([916b276b](https://github.com/driftyco/ionic/commit/916b276b)) + * reposition popover on window resize. ([1224902e](https://github.com/driftyco/ionic/commit/1224902e), closes [#2189](https://github.com/driftyco/ionic/issues/2189)) +* **popup:** + * prevent scrollbars from showing on desktop unecessarily. ([b8df44d4](https://github.com/driftyco/ionic/commit/b8df44d4), closes [#3204](https://github.com/driftyco/ionic/issues/3204)) + * release backdrop when multiple popups ([dd71524e](https://github.com/driftyco/ionic/commit/dd71524e)) + * add animation keyframes ([083ae7b5](https://github.com/driftyco/ionic/commit/083ae7b5)) + * hide buttons div if there's no buttons to show. ([d3026edf](https://github.com/driftyco/ionic/commit/d3026edf), closes [#2344](https://github.com/driftyco/ionic/issues/2344)) + * prevent back to back popups from dismissing background. ([5658a4df](https://github.com/driftyco/ionic/commit/5658a4df), closes [#2071](https://github.com/driftyco/ionic/issues/2071)) + * set popup head padding equal to popup body padding ([b873190b](https://github.com/driftyco/ionic/commit/b873190b)) + * fill popup width of Android 4.1-4.3 buttons ([581656fd](https://github.com/driftyco/ionic/commit/581656fd), closes [#2209](https://github.com/driftyco/ionic/issues/2209)) + * fix alignment, backdrop not fading out ([6d859f48](https://github.com/driftyco/ionic/commit/6d859f48)) + * only override prompt input if template includes HTML ([044fac4d](https://github.com/driftyco/ionic/commit/044fac4d)) + * backdrop release fires with every close ([ae87c66b](https://github.com/driftyco/ionic/commit/ae87c66b)) + * if popup is taller than the window, shrink the popup body and make it scrollable ([3e6ce183](https://github.com/driftyco/ionic/commit/3e6ce183), closes [#1679](https://github.com/driftyco/ionic/issues/1679)) + * focus on first input ([71efd51b](https://github.com/driftyco/ionic/commit/71efd51b), closes [#822](https://github.com/driftyco/ionic/issues/822)) + * Backwards compatible remove popup from DOM, ([441a21c4](https://github.com/driftyco/ionic/commit/441a21c4), closes [#851](https://github.com/driftyco/ionic/issues/851)) + * Ensure popup is usable on top of a modal, ([6ebfe776](https://github.com/driftyco/ionic/commit/6ebfe776), closes [#838](https://github.com/driftyco/ionic/issues/838)) + * focus popup. ([dddc34d8](https://github.com/driftyco/ionic/commit/dddc34d8), closes [#820](https://github.com/driftyco/ionic/issues/820)) +* **pull to refresh:** minor optimization to prevent flicker on deactivate ([8787760a](https://github.com/driftyco/ionic/commit/8787760a)) +* **pullToRefresh:** fix animated icon sometimes not showing ([eb265c58](https://github.com/driftyco/ionic/commit/eb265c58)) +* **radio:** suport ng-disabled. ([704fe402](https://github.com/driftyco/ionic/commit/704fe402), closes [#1684](https://github.com/driftyco/ionic/issues/1684)) +* **radioButtons:** Correcting a bug introduced by 521164db786a0b836b5b8149816f50da55c6a82a. ([ead5e026](https://github.com/driftyco/ionic/commit/ead5e026), closes [#1599](https://github.com/driftyco/ionic/issues/1599)) +* **range:** + * Fix range being able to slide when in a side menu, ([2fbdebcd](https://github.com/driftyco/ionic/commit/2fbdebcd), closes [#318](https://github.com/driftyco/ionic/issues/318)) + * Clicking Line For Range Causes Drag Button To Follow Mouse, close #779 ([26c8f304](https://github.com/driftyco/ionic/commit/26c8f304)) + * Update range for android 4.0-4.3 ([e7eefeef](https://github.com/driftyco/ionic/commit/e7eefeef)) +* **refresher:** + * Fix refreshing icon in Android 4.3 and lower ([5a28bbb1](https://github.com/driftyco/ionic/commit/5a28bbb1)) + * finish animating before changing icon, hide when not in use ([c336e8ed](https://github.com/driftyco/ionic/commit/c336e8ed)) + * make arrow spin correctly ([2ec01733](https://github.com/driftyco/ionic/commit/2ec01733), closes [#1319](https://github.com/driftyco/ionic/issues/1319)) + * get rid of flickers except on droid-4.4 ([ad671848](https://github.com/driftyco/ionic/commit/ad671848), closes [#1014](https://github.com/driftyco/ionic/issues/1014)) + * make refresher css not create gap at end of list ([79387a4e](https://github.com/driftyco/ionic/commit/79387a4e)) +* **reorder:** + * reorder drag threshold are equal for going up and down. ([6f5b6c24](https://github.com/driftyco/ionic/commit/6f5b6c24), closes [#1394](https://github.com/driftyco/ionic/issues/1394)) + * item click handlers dont fire when tapping on reorder icon ([cc18a64b](https://github.com/driftyco/ionic/commit/cc18a64b)) + * Prevent scroll w/ data-prevent-scroll attr on reorder btn, ([f1ed4b00](https://github.com/driftyco/ionic/commit/f1ed4b00), closes [#848](https://github.com/driftyco/ionic/issues/848)) +* **requirejs:** fix bug with loading order of angular & taps ([36181091](https://github.com/driftyco/ionic/commit/36181091)) +* **scroll:** + * hide the scrollbar on desktop so it matches content size of mobile ([0e04f391](https://github.com/driftyco/ionic/commit/0e04f391)) + * cleanup native scroll listeners only if activated ([df6dcb96](https://github.com/driftyco/ionic/commit/df6dcb96)) + * fix IE mousewheel scroll ([be094336](https://github.com/driftyco/ionic/commit/be094336)) + * show scrollbars during native scrolling ([ecfd0e07](https://github.com/driftyco/ionic/commit/ecfd0e07)) + * do not click when scroll decelerating ([e8a70f37](https://github.com/driftyco/ionic/commit/e8a70f37), closes [#1438](https://github.com/driftyco/ionic/issues/1438), [#2223](https://github.com/driftyco/ionic/issues/2223), [#2665](https://github.com/driftyco/ionic/issues/2665)) + * ion-scroll swallows scroll events by default. ([9f437a8c](https://github.com/driftyco/ionic/commit/9f437a8c), closes [#2695](https://github.com/driftyco/ionic/issues/2695)) + * prevent 'cannot read' exception ([7faed0a0](https://github.com/driftyco/ionic/commit/7faed0a0)) + * prevent 'cannot read' exception ([417c3d4e](https://github.com/driftyco/ionic/commit/417c3d4e)) + * $historyId should default to root ([00aa24fc](https://github.com/driftyco/ionic/commit/00aa24fc)) + * find delegate by historyId ([46cbaf95](https://github.com/driftyco/ionic/commit/46cbaf95), closes [#2572](https://github.com/driftyco/ionic/issues/2572)) + * calling ionic scroll methods blur any selected input elements. ([8ee83777](https://github.com/driftyco/ionic/commit/8ee83777), closes [#2244](https://github.com/driftyco/ionic/issues/2244)) + * ensure scrollView objects exist ([8883c6cc](https://github.com/driftyco/ionic/commit/8883c6cc)) + * calculate padding-bottom ([ba3600df](https://github.com/driftyco/ionic/commit/ba3600df), closes [#2174](https://github.com/driftyco/ionic/issues/2174)) + * remove isContentEditable from ignoreScrollStart ([caf12721](https://github.com/driftyco/ionic/commit/caf12721), closes [#2091](https://github.com/driftyco/ionic/issues/2091)) + * prevent native webkit scrollbars from showing ([951a9d35](https://github.com/driftyco/ionic/commit/951a9d35)) + * anchor scroll should scroll to IDs that are multiple levels beneath the scroll v ([3d0a46ef](https://github.com/driftyco/ionic/commit/3d0a46ef), closes [#1804](https://github.com/driftyco/ionic/issues/1804)) + * safari scroll content height ([96b2243f](https://github.com/driftyco/ionic/commit/96b2243f)) + * input text selecting w/ mouse events ([86e1fe9a](https://github.com/driftyco/ionic/commit/86e1fe9a), closes [#1475](https://github.com/driftyco/ionic/issues/1475)) + * larger release tolerance for buttons ([fab4a41d](https://github.com/driftyco/ionic/commit/fab4a41d), closes [#1378](https://github.com/driftyco/ionic/issues/1378)) + * scroll inputs correctly with footer ([373c0cd4](https://github.com/driftyco/ionic/commit/373c0cd4)) + * Scrolling using pointer events ([ed3ee1d0](https://github.com/driftyco/ionic/commit/ed3ee1d0)) + * Allow scrolling when touchstart target is an input, #1078 ([8af018b1](https://github.com/driftyco/ionic/commit/8af018b1)) + * Fix input focus when tapped, do not scroll when target is an input, ([66ecec70](https://github.com/driftyco/ionic/commit/66ecec70), closes [#1020](https://github.com/driftyco/ionic/issues/1020)) + * Do not ignore taps if the target was an input, #997 ([e6f56237](https://github.com/driftyco/ionic/commit/e6f56237)) + * Fix scroll for devices w/out dataset support, ([bfcf2650](https://github.com/driftyco/ionic/commit/bfcf2650), closes [#976](https://github.com/driftyco/ionic/issues/976)) + * `` is now registered with $ionicScrollDelegate ([2c7ce763](https://github.com/driftyco/ionic/commit/2c7ce763)) +* **scroll-view:** make it take up only 100% height ([d2f9e94b](https://github.com/driftyco/ionic/commit/d2f9e94b)) +* **scrollController:** allow tab $historyId to remember scroll ([9b601b55](https://github.com/driftyco/ionic/commit/9b601b55), closes [#1654](https://github.com/driftyco/ionic/issues/1654)) +* **scrollDelegate:** revert change that made all scroll* methods blur inputs ([0145dc37](https://github.com/driftyco/ionic/commit/0145dc37), closes [#2745](https://github.com/driftyco/ionic/issues/2745)) +* **scrollView:** + * only refocus clonedInput if keyboard is still up ([b8522390](https://github.com/driftyco/ionic/commit/b8522390)) + * remove bottom margin on scroll content. ([4f9d6fe7](https://github.com/driftyco/ionic/commit/4f9d6fe7), closes [#2910](https://github.com/driftyco/ionic/issues/2910)) + * higher velocity threshold for sliding ([93643c41](https://github.com/driftyco/ionic/commit/93643c41)) + * make mousewheel events firefox-compatible ([0a8eb391](https://github.com/driftyco/ionic/commit/0a8eb391), closes [#2616](https://github.com/driftyco/ionic/issues/2616)) + * fix null pointer exception on scrollbar ([037d2c36](https://github.com/driftyco/ionic/commit/037d2c36)) + * check that element has not yet been GC'd before removing event listeners in $des ([5e8250b1](https://github.com/driftyco/ionic/commit/5e8250b1)) + * resolve memory leaks with holding element references ([c5966bba](https://github.com/driftyco/ionic/commit/c5966bba)) + * cloned input for keyboard-scroll now matches original ([5da1ecd0](https://github.com/driftyco/ionic/commit/5da1ecd0), closes [#1721](https://github.com/driftyco/ionic/issues/1721)) + * always stay exactly within boundaries after bounce ([1c789f8a](https://github.com/driftyco/ionic/commit/1c789f8a), closes [#1736](https://github.com/driftyco/ionic/issues/1736)) + * clonedInputs get placeholder text if any ([f2f55199](https://github.com/driftyco/ionic/commit/f2f55199)) + * make xy scrolling work on ionScroll and ionContent ([49f06f9c](https://github.com/driftyco/ionic/commit/49f06f9c), closes [#1462](https://github.com/driftyco/ionic/issues/1462)) + * fix clonedInputs not being removed for large textareas on keyboardshow ([88e41e1a](https://github.com/driftyco/ionic/commit/88e41e1a), closes [#1420](https://github.com/driftyco/ionic/issues/1420)) + * on desktop, mousewheel only scrolls the right scrollView ([3250d10d](https://github.com/driftyco/ionic/commit/3250d10d), closes [#1376](https://github.com/driftyco/ionic/issues/1376)) + * stop memory-leak when destroying scrollView ([4a210130](https://github.com/driftyco/ionic/commit/4a210130), closes [#1096](https://github.com/driftyco/ionic/issues/1096)) + * recalculate size on mousewheel scroll ([89a9ed15](https://github.com/driftyco/ionic/commit/89a9ed15)) + * stop polluting global.core ([8992e7c9](https://github.com/driftyco/ionic/commit/8992e7c9)) + * browserify issue: undefined core ([cd27e1b7](https://github.com/driftyco/ionic/commit/cd27e1b7), closes [#825](https://github.com/driftyco/ionic/issues/825)) + * pull to refresh spin back. ([049aabc7](https://github.com/driftyco/ionic/commit/049aabc7), closes [#774](https://github.com/driftyco/ionic/issues/774)) + * show bar with mouse wheel. ([d5a69575](https://github.com/driftyco/ionic/commit/d5a69575), closes [#809](https://github.com/driftyco/ionic/issues/809)) + * don't show bars if not scrolling. ([cb686636](https://github.com/driftyco/ionic/commit/cb686636), closes [#805](https://github.com/driftyco/ionic/issues/805)) + * allow contenteditable element to be pressed normally ([39ad3e0b](https://github.com/driftyco/ionic/commit/39ad3e0b), closes [#421](https://github.com/driftyco/ionic/issues/421)) + * fix error from checking device before ready ([a5d96473](https://github.com/driftyco/ionic/commit/a5d96473)) + * cancel scrollTop every time hash is set ([e1b6fd4f](https://github.com/driftyco/ionic/commit/e1b6fd4f)) + * do not stop scrolling if stopped beyond boundaries ([1aef593f](https://github.com/driftyco/ionic/commit/1aef593f)) + * start scroll again if it stops beyond boundaries ([eed6b19b](https://github.com/driftyco/ionic/commit/eed6b19b)) + * nested scrollViews now work independently ([4cc4a18c](https://github.com/driftyco/ionic/commit/4cc4a18c), closes [#278](https://github.com/driftyco/ionic/issues/278)) + * if bouncing past boundaries, do not stick. ([59c10d4f](https://github.com/driftyco/ionic/commit/59c10d4f), closes [#482](https://github.com/driftyco/ionic/issues/482)) +* **scrolling:** + * Prevent gestures from breaking native scrolling ([e917cae3](https://github.com/driftyco/ionic/commit/e917cae3)) + * fix overflow scrolling when side menu and main content both use overflow scrolli ([622667b3](https://github.com/driftyco/ionic/commit/622667b3)) +* **scss:** make tabs,header,footer aligned right with statusbar ([c2a38a6d](https://github.com/driftyco/ionic/commit/c2a38a6d)) +* **select:** + * prevent ion-item text from overlapping select input. ([a56e647b](https://github.com/driftyco/ionic/commit/a56e647b), closes [#1735](https://github.com/driftyco/ionic/issues/1735)) + * hide .item-select arrow in WP8 ([cb597d76](https://github.com/driftyco/ionic/commit/cb597d76)) + * select option in desktop Firefox ([65749a40](https://github.com/driftyco/ionic/commit/65749a40), closes [#1251](https://github.com/driftyco/ionic/issues/1251)) + * Open select options on Android 2.3 ([d839f4da](https://github.com/driftyco/ionic/commit/d839f4da), closes [#1298](https://github.com/driftyco/ionic/issues/1298)) + * Select options w/ mouse events, ([e3306293](https://github.com/driftyco/ionic/commit/e3306293), closes [#1251](https://github.com/driftyco/ionic/issues/1251)) +* **sideMenu:** + * check whether drag is enabled before dragging ([acd0ff8f](https://github.com/driftyco/ionic/commit/acd0ff8f)) + * enable menu w/ different historyId back view ([6a1c5330](https://github.com/driftyco/ionic/commit/6a1c5330)) + * allow expose-aside-when on the right side. ([29d6dc81](https://github.com/driftyco/ionic/commit/29d6dc81), closes [#2207](https://github.com/driftyco/ionic/issues/2207)) + * Prevent is-enabled="false" from blocking current view interaction. ([cedee574](https://github.com/driftyco/ionic/commit/cedee574), closes [#1973](https://github.com/driftyco/ionic/issues/1973)) + * allow `edge-drag-threshold` for right side menus. ([cb066434](https://github.com/driftyco/ionic/commit/cb066434), closes [#2081](https://github.com/driftyco/ionic/issues/2081)) + * close menu w/ drag on Android 4.4 ([a49f3747](https://github.com/driftyco/ionic/commit/a49f3747), closes [#2102](https://github.com/driftyco/ionic/issues/2102)) + * fix stopping content scrolling ([944d2595](https://github.com/driftyco/ionic/commit/944d2595)) + * remove .menu-open on destroy ([f246c5aa](https://github.com/driftyco/ionic/commit/f246c5aa)) + * when a drag on content is disallowed, do not prevent default ([ab500f2e](https://github.com/driftyco/ionic/commit/ab500f2e), closes [#1725](https://github.com/driftyco/ionic/issues/1725)) + * when drag-content=false, allow drag-to-close ([e3db0856](https://github.com/driftyco/ionic/commit/e3db0856), closes [#1419](https://github.com/driftyco/ionic/issues/1419)) + * do not let it be scrolled as part of the body ([6e149eef](https://github.com/driftyco/ionic/commit/6e149eef)) + * fix disabled menu links ([fa8aa6a8](https://github.com/driftyco/ionic/commit/fa8aa6a8), closes [#1388](https://github.com/driftyco/ionic/issues/1388)) + * Disable content interaction when menu open ([76d4c083](https://github.com/driftyco/ionic/commit/76d4c083), closes [#1339](https://github.com/driftyco/ionic/issues/1339)) + * Not snapping on close on certain conditions #795 ([a5899918](https://github.com/driftyco/ionic/commit/a5899918)) + * Fix flashing when closing right side menu, ([a0d60d52](https://github.com/driftyco/ionic/commit/a0d60d52), closes [#556](https://github.com/driftyco/ionic/issues/556)) + * Close side-menu if open and content tapped, ([0c5c6751](https://github.com/driftyco/ionic/commit/0c5c6751), closes [#648](https://github.com/driftyco/ionic/issues/648)) + * remove translate3d when not needed, close #636 ([07092f00](https://github.com/driftyco/ionic/commit/07092f00)) +* **sideMenuContent:** make dragContent default to true ([61a280bd](https://github.com/driftyco/ionic/commit/61a280bd)) +* **sideMenuController:** sticking issue #738 ([ea04e393](https://github.com/driftyco/ionic/commit/ea04e393)) +* **sidemen:** scroll false causes sidemenu content to disappear. ([6b218042](https://github.com/driftyco/ionic/commit/6b218042), closes [#1485](https://github.com/driftyco/ionic/issues/1485)) +* **sidemenu:** + * prevent scroll during menu drag ([51ed1824](https://github.com/driftyco/ionic/commit/51ed1824), closes [#2808](https://github.com/driftyco/ionic/issues/2808)) + * Side menu always needs to have translate3d applied, ([16ac2ff1](https://github.com/driftyco/ionic/commit/16ac2ff1), closes [#710](https://github.com/driftyco/ionic/issues/710)) +* **slideBox:** + * disable autoPlay when disconnected ([8ec3979c](https://github.com/driftyco/ionic/commit/8ec3979c)) + * if selected binding is string, parse to integer ([ee1d5d9c](https://github.com/driftyco/ionic/commit/ee1d5d9c)) + * allow disable dragging on slide boxes ([09247f12](https://github.com/driftyco/ionic/commit/09247f12), closes [#2436](https://github.com/driftyco/ionic/issues/2436), [#2457](https://github.com/driftyco/ionic/issues/2457)) + * do not require scroll parent ([0d2f54e6](https://github.com/driftyco/ionic/commit/0d2f54e6)) + * make `does-continue` attribute work continuously ([f6ec6a3c](https://github.com/driftyco/ionic/commit/f6ec6a3c), closes [#575](https://github.com/driftyco/ionic/issues/575)) +* **slidebox:** + * prevent scrolling while sliding ([db7f0eee](https://github.com/driftyco/ionic/commit/db7f0eee), closes [#2814](https://github.com/driftyco/ionic/issues/2814)) + * `show-pager` defaults to true ([95688d6a](https://github.com/driftyco/ionic/commit/95688d6a)) + * add delegate filter ([9f4faa4a](https://github.com/driftyco/ionic/commit/9f4faa4a)) + * refactor for performance and stability ([7ef9ad74](https://github.com/driftyco/ionic/commit/7ef9ad74), closes [#2336](https://github.com/driftyco/ionic/issues/2336), [#2317](https://github.com/driftyco/ionic/issues/2317), [#2290](https://github.com/driftyco/ionic/issues/2290), [#2228](https://github.com/driftyco/ionic/issues/2228), [#2067](https://github.com/driftyco/ionic/issues/2067), [#1890](https://github.com/driftyco/ionic/issues/1890), [#1865](https://github.com/driftyco/ionic/issues/1865), [#1850](https://github.com/driftyco/ionic/issues/1850), [#1755](https://github.com/driftyco/ionic/issues/1755), [#1688](https://github.com/driftyco/ionic/issues/1688), [#1578](https://github.com/driftyco/ionic/issues/1578), [#1501](https://github.com/driftyco/ionic/issues/1501), [#1353](https://github.com/driftyco/ionic/issues/1353), [#1342](https://github.com/driftyco/ionic/issues/1342), [#782](https://github.com/driftyco/ionic/issues/782), [#416](https://github.com/driftyco/ionic/issues/416), [#2288](https://github.com/driftyco/ionic/issues/2288)) + * default to not autoplay ([81a7342f](https://github.com/driftyco/ionic/commit/81a7342f)) +* **sliderView:** + * "getBoundClientRect" typo ([0dad2ed6](https://github.com/driftyco/ionic/commit/0dad2ed6)) + * find width properly when element is transformed ([86ce4806](https://github.com/driftyco/ionic/commit/86ce4806), closes [#1313](https://github.com/driftyco/ionic/issues/1313)) +* **splitView:** disable menu toggles on exposed aside ([ed3e9e30](https://github.com/driftyco/ionic/commit/ed3e9e30), closes [#2182](https://github.com/driftyco/ionic/issues/2182)) +* **styles:** fix to tables in _variable.scss #2949 ([9d676b0d](https://github.com/driftyco/ionic/commit/9d676b0d)) +* **subHeader:** removes borders on android subheaders ([ebe32265](https://github.com/driftyco/ionic/commit/ebe32265), closes [#3265](https://github.com/driftyco/ionic/issues/3265)) +* **tabs:** + * correct tab leaving lifecycle events ([082f30e6](https://github.com/driftyco/ionic/commit/082f30e6), closes [#2869](https://github.com/driftyco/ionic/issues/2869)) + * fire leaving life cycle events ([9cc61ecd](https://github.com/driftyco/ionic/commit/9cc61ecd), closes [#2869](https://github.com/driftyco/ionic/issues/2869)) + * reload tab after previous clearHistory() ([3628ebac](https://github.com/driftyco/ionic/commit/3628ebac), closes [#2664](https://github.com/driftyco/ionic/issues/2664)) + * corectly size ion-content when used with inline tabs. ([65ab5f35](https://github.com/driftyco/ionic/commit/65ab5f35), closes [#2781](https://github.com/driftyco/ionic/issues/2781)) + * correct border visibility with android style tabs ([bf40b222](https://github.com/driftyco/ionic/commit/bf40b222)) + * fix non-retina border color when tabs color and bg color are used together ([3a92fe46](https://github.com/driftyco/ionic/commit/3a92fe46)) + * fix scss compile error on some versions of sass ([5304c963](https://github.com/driftyco/ionic/commit/5304c963), closes [#2719](https://github.com/driftyco/ionic/issues/2719)) + * removed active color inherit for tabs striped ([81e22f50](https://github.com/driftyco/ionic/commit/81e22f50)) + * don't show color for active android tabs ([3ddf1954](https://github.com/driftyco/ionic/commit/3ddf1954)) + * properly style ios tabs-top ([ae4a3bbd](https://github.com/driftyco/ionic/commit/ae4a3bbd)) + * corrected default tabs-striped colors ([b75708ad](https://github.com/driftyco/ionic/commit/b75708ad)) + * slide box within modal within tabs ([c86962fb](https://github.com/driftyco/ionic/commit/c86962fb)) + * Fixed font sizes ([05e3ab30](https://github.com/driftyco/ionic/commit/05e3ab30)) + * remove cache=false tab view element ([ab99b13b](https://github.com/driftyco/ionic/commit/ab99b13b)) + * remove unselected tabs on clearCache ([767362be](https://github.com/driftyco/ionic/commit/767362be)) + * wrap inline tab content ([3e31614f](https://github.com/driftyco/ionic/commit/3e31614f), closes [#2637](https://github.com/driftyco/ionic/issues/2637)) + * fix goToHistoryRoot ([d1a80d49](https://github.com/driftyco/ionic/commit/d1a80d49)) + * android tabs stay under 2nd view ([e3f51ca8](https://github.com/driftyco/ionic/commit/e3f51ca8)) + * fix android untyled android tab ([aa7e9dd7](https://github.com/driftyco/ionic/commit/aa7e9dd7)) + * vertically center text and icons on tabs-icon-left/right ([93d586de](https://github.com/driftyco/ionic/commit/93d586de), closes [#1827](https://github.com/driftyco/ionic/issues/1827)) + * remove important flag from `.tabs{border-bottom:none;} Fixes: 1652 ([bf1c1bc9](https://github.com/driftyco/ionic/commit/bf1c1bc9)) + * Tab icon align within nested tabs, ([2a6f7029](https://github.com/driftyco/ionic/commit/2a6f7029), closes [#1093](https://github.com/driftyco/ionic/issues/1093)) + * Renamed .tab-item active state from .active to .tab-item-active, ([24160aa0](https://github.com/driftyco/ionic/commit/24160aa0), closes [#866](https://github.com/driftyco/ionic/issues/866)) + * Double tapping a tab would set the wrong view history, ([f0faae16](https://github.com/driftyco/ionic/commit/f0faae16), closes [#656](https://github.com/driftyco/ionic/issues/656)) + * broadcast tab.shown/tab.hidden to only child scopes ([69fda4e5](https://github.com/driftyco/ionic/commit/69fda4e5)) +* **tabs-item-hide:** only hide tab nav items ([a7eb521c](https://github.com/driftyco/ionic/commit/a7eb521c)) +* **tap:** + * prevent possible click error in specifc android devices. ([8fae4742](https://github.com/driftyco/ionic/commit/8fae4742), closes [#2235](https://github.com/driftyco/ionic/issues/2235)) + * only check classList on tap target if it has classList ([5bf75321](https://github.com/driftyco/ionic/commit/5bf75321), closes [#1677](https://github.com/driftyco/ionic/issues/1677)) + * fire input behavior when tap/clicking file input label. ([889482e0](https://github.com/driftyco/ionic/commit/889482e0), closes [#1699](https://github.com/driftyco/ionic/issues/1699)) + * get containing label of deeply nested element ([2e3b8546](https://github.com/driftyco/ionic/commit/2e3b8546), closes [#1643](https://github.com/driftyco/ionic/issues/1643)) + * error when releasing outside of browser ([8da9f34b](https://github.com/driftyco/ionic/commit/8da9f34b), closes [#1612](https://github.com/driftyco/ionic/issues/1612)) + * ignoreScrollStart w/ data-tap-disabled ([772459df](https://github.com/driftyco/ionic/commit/772459df), closes [#1505](https://github.com/driftyco/ionic/issues/1505)) + * cancel simulated click w/ hold events ([f5bb023e](https://github.com/driftyco/ionic/commit/f5bb023e)) + * select tag not working in IE ([7059b818](https://github.com/driftyco/ionic/commit/7059b818), closes [#1435](https://github.com/driftyco/ionic/issues/1435)) + * Normalize taps w/ pointer events also ([1a2e501f](https://github.com/driftyco/ionic/commit/1a2e501f)) + * Prevent different input focus after 300ms delay ([8730e62e](https://github.com/driftyco/ionic/commit/8730e62e), closes [#1370](https://github.com/driftyco/ionic/issues/1370)) + * input[file] clicks within ion-content, ([05a6d7cc](https://github.com/driftyco/ionic/commit/05a6d7cc), closes [#1237](https://github.com/driftyco/ionic/issues/1237)) + * Do not preventDefault after input focus, #1068 ([a977332f](https://github.com/driftyco/ionic/commit/a977332f)) + * Remove 300ms delay when tapping select elements ([cf686548](https://github.com/driftyco/ionic/commit/cf686548)) + * Prevent clicks from firing after scrolling, #579 ([cb602b58](https://github.com/driftyco/ionic/commit/cb602b58)) + * Deactivate elements during scroll at the same time click is ignored, #997 ([3ee5ea77](https://github.com/driftyco/ionic/commit/3ee5ea77)) + * Do not simulate a click if it was from a touchcanel event, ([78510099](https://github.com/driftyco/ionic/commit/78510099), closes [#1015](https://github.com/driftyco/ionic/issues/1015)) + * Prevent multiple clicks when overriding cordova object, ([5f3a1d21](https://github.com/driftyco/ionic/commit/5f3a1d21), closes [#1022](https://github.com/driftyco/ionic/issues/1022)) + * Prevent "clicking" when scrolling ([f3bd258c](https://github.com/driftyco/ionic/commit/f3bd258c)) + * Increate isScrolledSinceStart from 2px radius to 15px, #970 ([9a49129a](https://github.com/driftyco/ionic/commit/9a49129a)) + * Trigger clicks if touch/click held for more than 250ms, ([60e45333](https://github.com/driftyco/ionic/commit/60e45333), closes [#791](https://github.com/driftyco/ionic/issues/791)) + * Reset startCoordinates on touchend/mouseup, ([76a53134](https://github.com/driftyco/ionic/commit/76a53134), closes [#874](https://github.com/driftyco/ionic/issues/874)) + * Remove select element from tap checking, ([3d917c83](https://github.com/driftyco/ionic/commit/3d917c83), closes [#836](https://github.com/driftyco/ionic/issues/836)) + * Do not trigger a click if the element was scrolled after touchstart/mousedown ([98e7e1aa](https://github.com/driftyco/ionic/commit/98e7e1aa)) + * Do not detect taps for input[type=file], ([6f2d6e7c](https://github.com/driftyco/ionic/commit/6f2d6e7c), closes [#652](https://github.com/driftyco/ionic/issues/652)) +* **templateCache:** make sure $state is passed config options before checking what they are ([cb9b81d5](https://github.com/driftyco/ionic/commit/cb9b81d5)) +* **test:** Use HTML5 doctype on all tests., #1524 ([18391589](https://github.com/driftyco/ionic/commit/18391589), closes [#1539](https://github.com/driftyco/ionic/issues/1539)) +* **text-rendering:** Disable text-rendering:optimizeLegibility for low end devices ([10289466](https://github.com/driftyco/ionic/commit/10289466)) +* **textarea:** Allow scroll in textarea when focused ([5f2fdfdd](https://github.com/driftyco/ionic/commit/5f2fdfdd), closes [#1280](https://github.com/driftyco/ionic/issues/1280)) +* **thumbnail:** Correctly apply thumbnail style to item directive, ([977c1cc6](https://github.com/driftyco/ionic/commit/977c1cc6), closes [#509](https://github.com/driftyco/ionic/issues/509)) +* **title:** use defined viewTitle attrs ([72167b2a](https://github.com/driftyco/ionic/commit/72167b2a)) +* **titles:** error during quick transition changes ([fe9f43d1](https://github.com/driftyco/ionic/commit/fe9f43d1)) +* **toggle:** + * fix toggle-class attribute ([6fbd1a43](https://github.com/driftyco/ionic/commit/6fbd1a43), closes [#1851](https://github.com/driftyco/ionic/issues/1851)) + * fix ngChange being reported before model changes ([537b29d0](https://github.com/driftyco/ionic/commit/537b29d0), closes [#1349](https://github.com/driftyco/ionic/issues/1349), [#1741](https://github.com/driftyco/ionic/issues/1741)) + * Right side padding for item-complex, ([45106a6a](https://github.com/driftyco/ionic/commit/45106a6a), closes [#1091](https://github.com/driftyco/ionic/issues/1091)) + * Changed tap listener to use "release", #881 ([b1a7c199](https://github.com/driftyco/ionic/commit/b1a7c199), closes [#882](https://github.com/driftyco/ionic/issues/882)) + * Fix toggle handle on Android 2.3 ([72f2e840](https://github.com/driftyco/ionic/commit/72f2e840)) +* **transform:** Polyfill `style.transform` to work w/ non-webkit ([52671c18](https://github.com/driftyco/ionic/commit/52671c18)) +* **transitions:** Disable transitions on Android 2, ([9c58d47b](https://github.com/driftyco/ionic/commit/9c58d47b), closes [#780](https://github.com/driftyco/ionic/issues/780)) +* **video:** prevent styles from bleeding into html video tag ([7e762b9c](https://github.com/driftyco/ionic/commit/7e762b9c)) +* **view:** + * do not register abstract states ([37dd84c6](https://github.com/driftyco/ionic/commit/37dd84c6), closes [#2642](https://github.com/driftyco/ionic/issues/2642)) + * digest view scope before transition ([8640924b](https://github.com/driftyco/ionic/commit/8640924b)) + * prevent flicker ([5966c675](https://github.com/driftyco/ionic/commit/5966c675)) + * don't affect history when inside a modal ([b7f45e7c](https://github.com/driftyco/ionic/commit/b7f45e7c), closes [#1667](https://github.com/driftyco/ionic/issues/1667)) +* **viewController:** use $watch instead of $observe ([b75bd9d8](https://github.com/driftyco/ionic/commit/b75bd9d8)) +* **viewService:** No error on clearHistory for empty history ([64641b1b](https://github.com/driftyco/ionic/commit/64641b1b)) +* **viewSwitcher:** do not finish transition from bubbled transitionend events ([6fa75b7f](https://github.com/driftyco/ionic/commit/6fa75b7f), closes [#3006](https://github.com/driftyco/ionic/issues/3006), [#3063](https://github.com/driftyco/ionic/issues/3063)) +* **viewport:** + * Auto update viewport tag ([5f8e9040](https://github.com/driftyco/ionic/commit/5f8e9040)) + * Remove height value on iOS browser ([0ad10ede](https://github.com/driftyco/ionic/commit/0ad10ede)) + + +#### Features + +* **$ionicActionSheet:** + * add cancelOnStateChange option, default true ([087e55f3](https://github.com/driftyco/ionic/commit/087e55f3), closes [#1318](https://github.com/driftyco/ionic/issues/1318)) + * allow html binding ([3e5b39f2](https://github.com/driftyco/ionic/commit/3e5b39f2), closes [#1219](https://github.com/driftyco/ionic/issues/1219)) +* **$ionicBackdrop:** add backdrop show/hide service ([730a33b9](https://github.com/driftyco/ionic/commit/730a33b9), closes [#1084](https://github.com/driftyco/ionic/issues/1084)) +* **$ionicBody:** service to simplify body ele interaction ([2c3f1c9f](https://github.com/driftyco/ionic/commit/2c3f1c9f)) +* **$ionicConfig:** chaining config properties ([786c6d97](https://github.com/driftyco/ionic/commit/786c6d97)) +* **$ionicConfigProvider:** add $ionicConfigProvider ([2643cffc](https://github.com/driftyco/ionic/commit/2643cffc)) +* **$ionicLoading:** + * allow options.hideOnStateChange ([8d7c8903](https://github.com/driftyco/ionic/commit/8d7c8903), closes [#2676](https://github.com/driftyco/ionic/issues/2676)) + * add $ionicLoadingConfig constant for default options ([26ca840d](https://github.com/driftyco/ionic/commit/26ca840d), closes [#1800](https://github.com/driftyco/ionic/issues/1800)) + * on android, no back button action while loading ([fc8711c7](https://github.com/driftyco/ionic/commit/fc8711c7), closes [#1273](https://github.com/driftyco/ionic/issues/1273)) + * implement backdrop class ([57d71ed6](https://github.com/driftyco/ionic/commit/57d71ed6), closes [#837](https://github.com/driftyco/ionic/issues/837)) +* **$ionicModal:** + * add `hardwareBackButtonClose` as option, default true ([9ffca1e4](https://github.com/driftyco/ionic/commit/9ffca1e4), closes [#1397](https://github.com/driftyco/ionic/issues/1397)) + * allow configuration of backdropClickToClose ([291d723a](https://github.com/driftyco/ionic/commit/291d723a)) + * close on backdrop click on desktop/tablet ([554c4398](https://github.com/driftyco/ionic/commit/554c4398), closes [#1087](https://github.com/driftyco/ionic/issues/1087)) + * pass modal instance to modal.shown/modal.hidden events ([a19e3b62](https://github.com/driftyco/ionic/commit/a19e3b62), closes [#1065](https://github.com/driftyco/ionic/issues/1065)) + * show/hide/remove return promises for animating ([39385008](https://github.com/driftyco/ionic/commit/39385008)) +* **$ionicNavBarDelegate:** + * showBackButton returns whether bar is shown ([933a555e](https://github.com/driftyco/ionic/commit/933a555e), closes [#1076](https://github.com/driftyco/ionic/issues/1076)) + * showBar returns whether navbar is shown ([24a415c3](https://github.com/driftyco/ionic/commit/24a415c3)) +* **$ionicPopup:** on android, make back button close popup ([b87bcb30](https://github.com/driftyco/ionic/commit/b87bcb30), closes [#1222](https://github.com/driftyco/ionic/issues/1222)) +* **$ionicScrollDelegate:** + * expose zoomBy and zoomTo methods ([029f8f33](https://github.com/driftyco/ionic/commit/029f8f33), closes [#1977](https://github.com/driftyco/ionic/issues/1977)) + * add getScrollView(), getScrollPosition() ([b5ef9313](https://github.com/driftyco/ionic/commit/b5ef9313), closes [#1117](https://github.com/driftyco/ionic/issues/1117)) + * add scrollBy(left,top,animate) to delegate ([f847c208](https://github.com/driftyco/ionic/commit/f847c208), closes [#987](https://github.com/driftyco/ionic/issues/987)) + * rememberScrollPosition, scrollToRememberedPosition ([5a0efece](https://github.com/driftyco/ionic/commit/5a0efece)) + * add scrollTo(left,top,animate) to delegate ([c119498d](https://github.com/driftyco/ionic/commit/c119498d)) + * allow anchorScroll to animate with param ([36691bba](https://github.com/driftyco/ionic/commit/36691bba)) + * add .anchorScroll() function ([c2bbd9e9](https://github.com/driftyco/ionic/commit/c2bbd9e9)) +* **$ionicSideMenuDelegate:** + * add isOpen() method ([518e54ee](https://github.com/driftyco/ionic/commit/518e54ee), closes [#1074](https://github.com/driftyco/ionic/issues/1074), [#1075](https://github.com/driftyco/ionic/issues/1075)) + * add getOpenRatio() method ([ac0e981f](https://github.com/driftyco/ionic/commit/ac0e981f), closes [#944](https://github.com/driftyco/ionic/issues/944)) +* **$ionicSlideBoxDelegate:** + * add `start()` to resume after stop ([e4ab045e](https://github.com/driftyco/ionic/commit/e4ab045e), closes [#1584](https://github.com/driftyco/ionic/issues/1584)) + * add enableSlide(true/false) method ([e003bf18](https://github.com/driftyco/ionic/commit/e003bf18), closes [#1122](https://github.com/driftyco/ionic/issues/1122)) +* **$ionicView.unloaded:** emit when view unloaded ([d6bff564](https://github.com/driftyco/ionic/commit/d6bff564)) +* **actionsheet:** + * android style/layout, iOS update ([b837fb24](https://github.com/driftyco/ionic/commit/b837fb24)) + * cssClass option ([69c733a7](https://github.com/driftyco/ionic/commit/69c733a7)) +* **active:** Removing use of :active in favor of .active for more control of active state ([baa04cde](https://github.com/driftyco/ionic/commit/baa04cde)) +* **angular:** + * upgrade to AngularJS v1.2.25 ([bcfecb4f](https://github.com/driftyco/ionic/commit/bcfecb4f)) + * upgrade to AngularJS v1.2.24 ([487e7a97](https://github.com/driftyco/ionic/commit/487e7a97)) + * update to AngularJS v1.2.17 ([89d5553d](https://github.com/driftyco/ionic/commit/89d5553d)) + * Update to Angular v1.2.13, ([97f4f6ea](https://github.com/driftyco/ionic/commit/97f4f6ea), closes [#600](https://github.com/driftyco/ionic/issues/600)) +* **animation:** + * Javascript Animation Service ([73d2eabc](https://github.com/driftyco/ionic/commit/73d2eabc)) + * Add right to left animations, and their reverse, for RTL support, ([4628b9fb](https://github.com/driftyco/ionic/commit/4628b9fb), closes [#643](https://github.com/driftyco/ionic/issues/643)) +* **avatar:** + * circle avatars by default ([97be8302](https://github.com/driftyco/ionic/commit/97be8302)) + * Adding .item-avatar-left and deprecating .item-avatar ([9bac6050](https://github.com/driftyco/ionic/commit/9bac6050)) +* **button:** Increase hit area size of a button ([c168b489](https://github.com/driftyco/ionic/commit/c168b489)) +* **card:** box-shadow update ([a571c7ab](https://github.com/driftyco/ionic/commit/a571c7ab)) +* **checkbox:** + * checkbox-square/platform updates ([0c1b23d9](https://github.com/driftyco/ionic/commit/0c1b23d9)) + * add disabled and emotion styles to ion-checkbox. and #1509 ([79fb1e49](https://github.com/driftyco/ionic/commit/79fb1e49), closes [#1683](https://github.com/driftyco/ionic/issues/1683)) + * right align w/ .item-checkbox-right ([610e2328](https://github.com/driftyco/ionic/commit/610e2328), closes [#1290](https://github.com/driftyco/ionic/issues/1290)) +* **clearCache:** create $ionicHistory.clearCache() ([2683ffd0](https://github.com/driftyco/ionic/commit/2683ffd0)) +* **collection-repeat:** add repeat lsdirective for huge lists ([f0a1c037](https://github.com/driftyco/ionic/commit/f0a1c037)) +* **collectionRepeat:** + * in grid, use height of tallest item in row ([40bedd7d](https://github.com/driftyco/ionic/commit/40bedd7d), closes [#3387](https://github.com/driftyco/ionic/issues/3387)) + * resize on $ionicScrollDelegate.resize() ([a3014830](https://github.com/driftyco/ionic/commit/a3014830), closes [#3292](https://github.com/driftyco/ionic/issues/3292)) + * if item-width/item-height not given, compute dimensions ([432c7dca](https://github.com/driftyco/ionic/commit/432c7dca)) + * add collection-buffer-size, collection-refresh-images attrs ([b49444c3](https://github.com/driftyco/ionic/commit/b49444c3), closes [#1742](https://github.com/driftyco/ionic/issues/1742)) + * automatically set width/height style to match collection-item-{width,height} ([34e350b0](https://github.com/driftyco/ionic/commit/34e350b0), closes [#3034](https://github.com/driftyco/ionic/issues/3034), [#1806](https://github.com/driftyco/ionic/issues/1806)) + * other children of ion-content element fit in ([7ddb57e6](https://github.com/driftyco/ionic/commit/7ddb57e6), closes [#1920](https://github.com/driftyco/ionic/issues/1920), [#1866](https://github.com/driftyco/ionic/issues/1866), [#1380](https://github.com/driftyco/ionic/issues/1380)) + * huge optimization upgrades ([6af5d68d](https://github.com/driftyco/ionic/commit/6af5d68d), closes [#1597](https://github.com/driftyco/ionic/issues/1597)) +* **content:** + * automatically add/remove has-* classes to content ([e94d4006](https://github.com/driftyco/ionic/commit/e94d4006), closes [#619](https://github.com/driftyco/ionic/issues/619)) + * remember scroll of previous page ([2d1b71c8](https://github.com/driftyco/ionic/commit/2d1b71c8)) +* **cordovaEvents:** $ionicPlatform.on method ([046ad53b](https://github.com/driftyco/ionic/commit/046ad53b), closes [#2219](https://github.com/driftyco/ionic/issues/2219)) +* **delegateService:** create filterFn to find active ([6276506d](https://github.com/driftyco/ionic/commit/6276506d)) +* **divider:** platform specific dividers ([d257c736](https://github.com/driftyco/ionic/commit/d257c736)) +* **domUtil:** add getPositionInParent function ([a970f0bd](https://github.com/driftyco/ionic/commit/a970f0bd)) +* **doubletap:** add onDoubleTap directive ([42569cca](https://github.com/driftyco/ionic/commit/42569cca), closes [#2292](https://github.com/driftyco/ionic/issues/2292)) +* **event:** Created stopEvent directive to use for certain ng-click cases, ([8b308a17](https://github.com/driftyco/ionic/commit/8b308a17), closes [#550](https://github.com/driftyco/ionic/issues/550)) +* **fonts:** platform specific fonts ([dfcbef1a](https://github.com/driftyco/ionic/commit/dfcbef1a)) +* **footer:** keyboard-attach attribute directive to position footer above keyboard ([09d1197a](https://github.com/driftyco/ionic/commit/09d1197a)) +* **gestures:** added gesture directives ([a2dcaf13](https://github.com/driftyco/ionic/commit/a2dcaf13), closes [#829](https://github.com/driftyco/ionic/issues/829)) +* **goBack:** add $ionicHistory.goBack() ([25dddce6](https://github.com/driftyco/ionic/commit/25dddce6)) +* **grade:** Set grade in body class depending on platform performance ([b69b40c8](https://github.com/driftyco/ionic/commit/b69b40c8)) +* **grid:** + * Added .row-baseline and .row-stretch ([e0e7a83b](https://github.com/driftyco/ionic/commit/e0e7a83b)) + * Remove column offset with responsive grid breaks ([73ba2a40](https://github.com/driftyco/ionic/commit/73ba2a40)) + * Added classes, variables and mixins for responsive grid options ([1cdb999e](https://github.com/driftyco/ionic/commit/1cdb999e)) +* **header:** remove bottom border when tabs top ([f6566726](https://github.com/driftyco/ionic/commit/f6566726)) +* **icons:** svg loaders and ionicons v2.0.1 ([6f50c87e](https://github.com/driftyco/ionic/commit/6f50c87e)) +* **infiniteScroll:** upgrade infinite scrolling spinner to use new ion-spinner directive ([65aa2af9](https://github.com/driftyco/ionic/commit/65aa2af9)) +* **ion-content:** watch padding attribute ([532d473e](https://github.com/driftyco/ionic/commit/532d473e)) +* **ionCheckbox:** allow ng-disabled attribute ([d2e54a82](https://github.com/driftyco/ionic/commit/d2e54a82), closes [#939](https://github.com/driftyco/ionic/issues/939)) +* **ionContent:** + * add `locking` option ([af229072](https://github.com/driftyco/ionic/commit/af229072), closes [#2034](https://github.com/driftyco/ionic/issues/2034)) + * don't wrap in a .scroll element if scroll="false" ([73da93d4](https://github.com/driftyco/ionic/commit/73da93d4), closes [#841](https://github.com/driftyco/ionic/issues/841), [#897](https://github.com/driftyco/ionic/issues/897)) + * use child scope instead of isolate scope ([49e0dac9](https://github.com/driftyco/ionic/commit/49e0dac9), closes [#555](https://github.com/driftyco/ionic/issues/555), [#669](https://github.com/driftyco/ionic/issues/669)) +* **ionInfiniteScroll:** + * allow configuration of icon ([5f2c32ea](https://github.com/driftyco/ionic/commit/5f2c32ea)) + * use event system ([7b0716c2](https://github.com/driftyco/ionic/commit/7b0716c2), closes [#661](https://github.com/driftyco/ionic/issues/661)) +* **ionModalView:** ion-modal-view to wrap template instead of `', link: function($scope, $element, $attr, slideBoxCtrl) { + // if showPager is undefined, show the pager + if (!isDefined($attr.showPager)) { + $scope.showPager = true; + getPager().toggleClass('hide', !true); + } + $attr.$observe('showPager', function(show) { show = $scope.$eval(show); getPager().toggleClass('hide', !show); diff --git a/release/js/ionic-angular.min.js b/release/js/ionic-angular.min.js index 596ac18a2aa..c5d5e32991a 100644 --- a/release/js/ionic-angular.min.js +++ b/release/js/ionic-angular.min.js @@ -2,7 +2,7 @@ * Copyright 2014 Drifty Co. * http://drifty.com/ * - * Ionic, v1.0.0-rc.2 + * Ionic, v1.0.0-rc.3 * A powerful HTML5 mobile app framework. * http://ionicframework.com/ * @@ -12,7 +12,10 @@ * */ -!function(){function e(e,t,n,i,o,r){function a(i,a,c,s,l){function u(){M.resizeRequiresRefresh(w.__clientWidth,w.__clientHeight)&&g()}function d(){var e;return e={dataLength:0,width:0,height:0,resizeRequiresRefresh:function(t,n){var i=e.dataLength&&t&&n&&(t!==e.width||n!==e.height);return e.width=t,e.height=n,!!i},dataChangeRequiresRefresh:function(t){var n=t.length>0||t.length'),w.options.scrollingX&&e.addClass("horizontal"),e.append(n),w.__content.appendChild(e[0])}return e}function v(){_||N?(_?m(_,x):x.computed=!0,N||(N='"100%"'),m(N,A)):x.computed=A.computed=!0}function g(){var e=P.length>0;if(e&&(x.computed||A.computed)&&$(),e&&x.computed){if(x.value=V.height,!x.value)throw new Error('collection-repeat tried to compute the height of repeated elements "'+S+'", but was unable to. Please provide the "item-height" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!x.dynamic&&x.getValue&&(x.value=x.getValue());if(e&&A.computed){if(A.value=V.width,!A.value)throw new Error('collection-repeat tried to compute the width of repeated elements "'+S+'", but was unable to. Please provide the "item-width" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!A.dynamic&&A.getValue&&(A.value=A.getValue());h().refreshLayout()}function m(e,n){if(e){var i;try{i=t(e)}catch(o){e.trim().match(/\d+(px|%)$/)&&(e='"'+e+'"'),i=t(e)}var r=e.replace(/(\'|\"|px|%)/g,"").trim(),a=r.length&&!/([a-zA-Z]|\$|:|\?)/.test(r);if(n.attrValue=e,a){var c=parseInt(i());if(e.indexOf("%")>-1){var s=c/100;n.getValue=n===x?function(){return Math.floor(s*w.__clientHeight)}:function(){return Math.floor(s*w.__clientWidth)}}else n.value=c}else n.dynamic=!0,n.getValue=n===x?function(e,t){var n=i(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseInt(n)/100*w.__clientHeight):parseInt(n)}:function(e,t){var n=i(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseInt(n)/100*w.__clientWidth):parseInt(n)}}}function $(){z||l(O=i.$new(),function(e){e[0].removeAttribute("collection-repeat"),z=e[0]}),O[T]=(I(i)||[])[0],o.$$phase||O.$digest(),y.appendChild(z);var e=n.getComputedStyle(z);V.width=parseInt(e.width),V.height=parseInt(e.height),y.removeChild(z)}var w=s.scrollView,b=a[0],y=angular.element('
')[0];if(b.parentNode.replaceChild(y,b),w.options.scrollingX&&w.options.scrollingY)throw new Error("collection-repeat expected a parent x or y scrollView, not an xy scrollView.");var S=c.collectionRepeat,k=S.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!k)throw new Error("collection-repeat expected expression in form of '_item_ in _collection_[ track by _id_]' but got '"+c.collectionRepeat+"'.");var C,T=k[1],B=k[2],I=t(B),x={},A={},V={},P=[],D=c.itemRenderBuffer||c.collectionBufferSize,L=angular.isDefined(D)?parseInt(D):E,_=c.itemHeight||c.collectionItemHeight,N=c.itemWidth||c.collectionItemWidth,R=p(),M=d();v(),s.$element.on("scroll.resize",g),angular.element(n).on("resize",u);var H=o.$on("$ionicExposeAside",u);r(g,0,!1),i.$watchCollection(I,function(e){if(P=e||(e=[]),!angular.isArray(e))throw new Error("collection-repeat expected an array for '"+B+"', but got a "+typeof value);i.$$postDigest(function(){h().setData(P),M.dataChangeRequiresRefresh(P)&&g()})}),i.$on("$destroy",function(){angular.element(n).off("resize",u),H(),s.$element&&s.$element.off("scroll.resize",g),z&&z.parentNode&&z.parentNode.removeChild(z),O&&O.$destroy(),O=z=null,C&&C.destroy(),C=null});var z,O}return{restrict:"A",priority:1e3,transclude:"element",$$tlb:!0,require:"^^$ionicScroll",link:a}}function t(e,t,n){var o={primaryPos:0,secondaryPos:0,primarySize:0,secondarySize:0};return function(r){function a(){return c(!0)}function c(t){if(!c.destroyed){var n,i,r,a,u=tt.getScrollValue(),d=u+tt.scrollPrimarySize;tt.updateRenderRange(u,d),F=Math.max(0,F-C),X=Math.min(E.length-1,X+C);for(n in J)(F>n||n>X)&&(i=J[n],delete J[n],Z.push(i),i.isShown=!1);for(n=F;X>=n;n++)n>=E.length||J[n]&&!t||(i=J[n]||(J[n]=Z.length?Z.pop():j.length?j.shift():new l),K.push(i),i.isShown=!0,a=i.scope,a.$index=n,a[k]=E[n],a.$first=0===n,a.$last=n===E.length-1,a.$middle=!(a.$first||a.$last),a.$odd=!(a.$even=0===(1&n)),a.$$disconnected&&ionic.Utils.reconnectScope(i.scope),r=tt.getDimensions(n),(i.secondaryPos!==r.secondaryPos||i.primaryPos!==r.primaryPos)&&(i.node.style[ionic.CSS.TRANSFORM]=O.replace(H,i.primaryPos=r.primaryPos).replace(z,i.secondaryPos=r.secondaryPos)),(i.secondarySize!==r.secondarySize||i.primarySize!==r.primarySize)&&(i.node.style.cssText=i.node.style.cssText.replace(A,U.replace(H,(i.primarySize=r.primarySize)+1).replace(z,i.secondarySize=r.secondarySize))));for(X===E.length-1&&(r=tt.getDimensions(E.length-1)||o,$.style[ionic.CSS.TRANSFORM]=O.replace(H,r.primaryPos+r.primarySize).replace(z,0));Z.length;)i=Z.pop(),i.scope.$broadcast("$collectionRepeatLeave"),ionic.Utils.disconnectScope(i.scope),j.push(i),i.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",i.primaryPos=i.secondaryPos=null;if(b)for(n=0,ii=K.length;nh&&(f=i.images[h]);h++){var v=f.src;f.src=x,f.src=v}if(t)for(var g=e.$$phase;K.length;)i=K.pop(),g||i.scope.$digest();else s()}}function s(){var t;s.running||(s.running=!0,n(function(){for(var n=e.$$phase;K.length;)t=K.pop(),t.isShown&&(n||t.scope.$digest());s.running=!1}))}function l(){var e=this;this.scope=T.$new(),this.id="item"+Q++,I(this.scope,function(t){e.element=t,e.element.data("$$collectionRepeatItem",e),e.node=t[0],e.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",e.node.style.cssText+=" height: 0px; width: 0px;",ionic.Utils.disconnectScope(e.scope),w.appendChild(e.node),e.images=t[0].getElementsByTagName("img")})}function u(){this.getItemPrimarySize=D,this.getItemSecondarySize=_,this.getScrollValue=function(){return Math.max(0,Math.min(B.__scrollTop-q,B.__maxScrollTop-q-W))},this.refreshDirection=function(){this.scrollPrimarySize=B.__clientHeight,this.scrollSecondarySize=B.__clientWidth,this.estimatedPrimarySize=g,this.estimatedSecondarySize=m,this.estimatedItemsAcross=R&&Math.floor(B.__clientWidth/m)||1}}function d(){this.getItemPrimarySize=_,this.getItemSecondarySize=D,this.getScrollValue=function(){return Math.max(0,Math.min(B.__scrollLeft-q,B.__maxScrollLeft-q-W))},this.refreshDirection=function(){this.scrollPrimarySize=B.__clientWidth,this.scrollSecondarySize=B.__clientHeight,this.estimatedPrimarySize=m,this.estimatedSecondarySize=g,this.estimatedItemsAcross=R&&Math.floor(B.__clientHeight/g)||1}}function f(){this.getEstimatedSecondaryPos=function(e){return e%this.estimatedItemsAcross*this.estimatedSecondarySize},this.getEstimatedPrimaryPos=function(e){return Math.floor(e/this.estimatedItemsAcross)*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)*this.estimatedItemsAcross}}function h(){this.getEstimatedSecondaryPos=function(){return 0},this.getEstimatedPrimaryPos=function(e){return e*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)}}function p(){this.getContentSize=function(){return this.getEstimatedPrimaryPos(E.length-1)+this.estimatedPrimarySize+q+W};var e={};this.getDimensions=function(t){return e.primaryPos=this.getEstimatedPrimaryPos(t),e.secondaryPos=this.getEstimatedSecondaryPos(t),e.primarySize=this.estimatedPrimarySize,e.secondarySize=this.estimatedSecondarySize,e},this.updateRenderRange=function(e,t){F=Math.max(0,this.getEstimatedIndex(e)),X=Math.min(E.length-1,this.getEstimatedIndex(t)+this.estimatedItemsAcross-1),G=Math.max(0,this.getEstimatedPrimaryPos(F)),Y=this.getEstimatedPrimaryPos(X)+this.estimatedPrimarySize}}function v(){function e(e){var t,i,a;for(t=Math.max(0,n);e>=t&&(a=s[t]);t++)i=s[t-1]||o,a.primarySize=r.getItemPrimarySize(t,E[t]),a.secondarySize=r.scrollSecondarySize,a.primaryPos=i.primaryPos+i.primarySize,a.secondaryPos=0}function t(e){var t,i,a;for(t=Math.max(n,0);e>=t&&(a=s[t]);t++)i=s[t-1]||o,a.secondarySize=Math.min(r.getItemSecondarySize(t,E[t]),r.scrollSecondarySize),a.secondaryPos=i.secondaryPos+i.secondarySize,0===t||a.secondaryPos+a.secondarySize>r.scrollSecondarySize?(a.rowStartIndex=t,a.secondaryPos=0,a.primarySize=r.getItemPrimarySize(t,E[t]),a.primaryPos=i.primaryPos+i.primarySize):(a.rowStartIndex=i.rowStartIndex,a.primarySize=i.primarySize,a.primaryPos=i.primaryPos)}var n,r=this,a=ionic.debounce(et,25,!0),c=R?t:e,s=[];this.getContentSize=function(){var e=s[n]||o;return(e.primaryPos+e.primarySize||0)+this.getEstimatedPrimaryPos(E.length-n-1)+q+W},this.onDestroy=function(){s.length=0},this.onRefreshData=function(){for(i=s.length,len=E.length;in&&(e>.9*E.length?(c(E.length-1),n=E.length-1,et()):(c(e),n=e,a())),s[e]};var l=-1,u=-1;this.updateRenderRange=function(e,t){var n,i,o;if(this.getDimensions(2*this.getEstimatedIndex(t)),-1===l||0===e)n=0;else if(e>=u)for(n=l,i=E.length;i>n&&!((o=this.getDimensions(n))&&o.primaryPos+o.primarySize>=e);n++);else for(n=l;n>=0;n--)if((o=this.getDimensions(n))&&o.primaryPos<=e){n=R?o.rowStartIndex:n;break}F=Math.min(Math.max(0,n),E.length-1),G=-1!==F?this.getDimensions(F).primaryPos:-1;var r;for(n=F+1,i=E.length;i>n;n++)if((o=this.getDimensions(n))&&o.primaryPos+o.primarySize>t){if(R)for(r=o;i-1>n&&(o=this.getDimensions(n+1)).primaryPos===r.primaryPos;)n++;break}X=Math.min(n,E.length-1),Y=-1!==X?(o=this.getDimensions(X)).primaryPos+o.primarySize:-1,u=e,l=F}}var g,m,$=r.afterItemsNode,w=r.containerNode,b=r.forceRefreshImages,y=r.heightData,S=r.widthData,k=r.keyExpression,C=r.renderBuffer,T=r.scope,B=r.scrollView,I=r.transclude,E=[],V={},P=y.getValue||function(){return y.value},D=function(e,t){return V[k]=t,V.$index=e,P(T,V)},L=S.getValue||function(){return S.value},_=function(e,t){return V[k]=t,V.$index=e,L(T,V)},N=!!B.options.scrollingY,R=N?S.dynamic||S.value!==B.__clientWidth:y.dynamic||y.value!==B.__clientHeight,M=!y.dynamic&&!S.dynamic,H="PRIMARY",z="SECONDARY",O=N?"translate3d(SECONDARYpx,PRIMARYpx,0)":"translate3d(PRIMARYpx,SECONDARYpx,0)",U=N?"height: PRIMARYpx; width: SECONDARYpx;":"height: SECONDARYpx; width: PRIMARYpx;",q=0,W=0,F=-1,X=-1,Y=-1,G=-1,j=[],Z=[],K=[],J={},Q=0,et=N?function(){B.setDimensions(null,null,null,tt.getContentSize(),!0)}:function(){B.setDimensions(null,null,tt.getContentSize(),null,!0)},tt=N?new u:new d;(R?f:h).call(tt),(M?p:v).call(tt);var nt=N?"getContentHeight":"getContentWidth",it=B.options[nt];B.options[nt]=angular.bind(tt,tt.getContentSize),B.__$callback=B.__callback,B.__callback=function(e,t,n,i){var o=tt.getScrollValue();(-1===F||o+tt.scrollPrimarySize>Y||G>o)&&c(),B.__$callback(e,t,n,i)};var ot=!1,rt=!1;this.refreshLayout=function(){g=D(0,E[0]),m=_(0,E[0]);var e=getComputedStyle($)||{},n=$.firstElementChild&&getComputedStyle($.firstElementChild)||{},i=$.lastElementChild&&getComputedStyle($.lastElementChild)||{};W=(parseInt(e[N?"height":"width"])||0)+(n&&parseInt(n[N?"marginTop":"marginLeft"])||0)+(i&&parseInt(i[N?"marginBottom":"marginRight"])||0),q=0;var o=w;do q+=o[N?"offsetTop":"offsetLeft"];while(ionic.DomUtil.contains(B.__content,o=o.offsetParent));var r=w.previousElementSibling,c=r?t.getComputedStyle(r):{},s=parseInt(c[N?"marginBottom":"marginRight"]||0);if(w.style[ionic.CSS.TRANSFORM]=O.replace(H,-s).replace(z,0),q-=s,B.__clientHeight&&B.__clientWidth||(B.__clientWidth=B.__container.clientWidth,B.__clientHeight=B.__container.clientHeight),(tt.onRefreshLayout||angular.noop)(),tt.refreshDirection(),et(),!ot)for(var u=Math.max(20,3*C),d=0;u>d;d++)j.push(new l);ot=!0,ot&&rt&&((B.__scrollLeft>B.__maxScrollLeft||B.__scrollTop>B.__maxScrollTop)&&B.resize(),a(!0))},this.setData=function(e){E=e,(tt.onRefreshData||angular.noop)(),rt=!0},this.destroy=function(){c.destroyed=!0,j.forEach(function(e){e.scope.$destroy(),e.scope=e.element=e.node=e.images=null}),j.length=K.length=Z.length=0,J={},B.options[nt]=it,B.__callback=B.__$callback,B.resize(),(tt.onDestroy||angular.noop)()}}}function n(e){return["$ionicGesture","$parse",function(t,n){var i=e.substr(2).toLowerCase();return function(o,r,a){var c=n(a[e]),s=function(e){o.$apply(function(){c(o,{$event:e})})},l=t.on(i,s,r);o.$on("$destroy",function(){t.off(l,i,s)})}}]}function o(){return["$ionicScrollDelegate",function(e){return{restrict:"E",link:function(t,n,i){function o(t){for(var i=3,o=t.target;i--&&o;){if(o.classList.contains("button")||o.tagName.match(/input|textarea|select/i)||o.isContentEditable)return;o=o.parentNode}var r=t.gesture&&t.gesture.touches[0]||t.detail.touches[0],a=n[0].getBoundingClientRect();ionic.DomUtil.rectContains(r.pageX,r.pageY,a.left,a.top-20,a.left+a.width,a.top+a.height)&&e.scrollTop(!0)}"true"!=i.noTapScroll&&(ionic.on("tap",o,n[0]),t.$on("$destroy",function(){ionic.off("tap",o,n[0])}))}}}]}function r(e){return["$document","$timeout",function(t,n){return{restrict:"E",controller:"$ionicHeaderBar",compile:function(i){function o(t,n,i,o){e?(t.$watch(function(){return n[0].className},function(e){var n=-1===e.indexOf("ng-hide"),i=-1!==e.indexOf("bar-subheader");t.$hasHeader=n&&!i,t.$hasSubheader=n&&i,t.$emit("$ionicSubheader",t.$hasSubheader)}),t.$on("$destroy",function(){delete t.$hasHeader,delete t.$hasSubheader}),o.align(),t.$on("$ionicHeader.align",function(){ionic.requestAnimationFrame(function(){o.align()})})):(t.$watch(function(){return n[0].className},function(e){var n=-1===e.indexOf("ng-hide"),i=-1!==e.indexOf("bar-subfooter");t.$hasFooter=n&&!i,t.$hasSubfooter=n&&i}),t.$on("$destroy",function(){delete t.$hasFooter,delete t.$hasSubfooter}),t.$watch("$hasTabs",function(e){n.toggleClass("has-tabs",!!e)}))}return i.addClass(e?"bar bar-header":"bar bar-footer"),n(function(){e&&t[0].getElementsByClassName("tabs-top").length&&i.addClass("has-tabs-top")}),{pre:o}}}}]}function a(e){return e.clientHeight}function c(e){e.stopPropagation()}var s={method:function(e,t,n){var i=!1;return function(){return i||(i=!0,t(e)),n.apply(this,arguments)}},field:function(e,t,n,i,o){var r=!1,a=function(){return r||(r=!0,t(e)),o},c=function(n){return r||(r=!0,t(e)),o=n,n};Object.defineProperty(n,i,{get:a,set:c,enumerable:!0})}},l=angular.module("ionic",["ngAnimate","ngSanitize","ui.router"]),u=angular.extend,d=angular.forEach,f=angular.isDefined,h=angular.isNumber,p=angular.isString,v=angular.element,g=angular.noop;l.factory("$ionicActionSheet",["$rootScope","$compile","$animate","$timeout","$ionicTemplateLoader","$ionicPlatform","$ionicBody",function(e,t,n,i,o,r,a){function c(o){function c(e){e&&/icon/.test(e)&&(s.$actionSheetHasIcon=!0)}var s=e.$new(!0);u(s,{cancel:g,destructiveButtonClicked:g,buttonClicked:g,$deregisterBackButton:g,buttons:[],cancelOnStateChange:!0},o||{});for(var l=0;l')(s),f=v(d[0].querySelector(".action-sheet-wrapper")),h=s.cancelOnStateChange?e.$on("$stateChangeSuccess",function(){s.cancel()}):g;return s.removeSheet=function(e){s.removed||(s.removed=!0,f.removeClass("action-sheet-up"),i(function(){a.removeClass("action-sheet-open")},400),s.$deregisterBackButton(),h(),n.removeClass(d,"active").then(function(){s.$destroy(),d.remove(),s.cancel.$scope=f=null,(e||g)()}))},s.showSheet=function(e){s.removed||(a.append(d).addClass("action-sheet-open"),n.addClass(d,"active").then(function(){s.removed||(e||g)()}),i(function(){s.removed||f.addClass("action-sheet-up")},20,!1))},s.$deregisterBackButton=r.registerBackButtonAction(function(){i(s.cancel)},C),s.cancel=function(){s.removeSheet(o.cancel)},s.buttonClicked=function(e){o.buttonClicked(e,o.buttons[e])===!0&&s.removeSheet()},s.destructiveButtonClicked=function(){o.destructiveButtonClicked()===!0&&s.removeSheet()},s.showSheet(),s.cancel.$scope=s,s.cancel}return{show:c}}]),v.prototype.addClass=function(e){var t,n,i,o,r,a;if(e&&"ng-scope"!=e&&"ng-isolate-scope"!=e)for(t=0;t'),a=0;return e[0].body.appendChild(r[0]),{retain:n,release:i,getElement:o,_element:r}}]),l.factory("$ionicBind",["$parse","$interpolate",function(e,t){var n=/^\s*([@=&])(\??)\s*(\w*)\s*$/;return function(i,o,r){d(r||{},function(r,a){var c,s,l=r.match(n)||[],u=l[3]||a,d=l[1];switch(d){case"@":if(!o[u])return;o.$observe(u,function(e){i[a]=e}),o[u]&&(i[a]=t(o[u])(i));break;case"=":if(!o[u])return;s=i.$watch(o[u],function(e){i[a]=e}),i.$on("$destroy",s);break;case"&":if(o[u]&&o[u].match(RegExp(a+"(.*?)")))throw new Error('& expression binding "'+a+'" looks like it will recursively call "'+o[u]+'" and cause a stack overflow! Please choose a different scopeName.');c=e(o[u]),i[a]=function(e){return c(i,e)}}})}}]),l.factory("$ionicBody",["$document",function(e){return{addClass:function(){for(var t=0;t-1&&m.stack.length>0&&m.cursor=N.index;a--){var q=i.stack[a];q&&q.destroy&&q.destroy(),i.stack.splice(a)}z=N.historyId}m.historyId===L.historyId?H=I:L.historyId!==m.historyId&&(H=x,i=d(L.historyId),i&&i.parentHistoryId===m.parentHistoryId?H=E:(i=d(i.parentHistoryId),i&&i.historyId===m.historyId&&(H=A)))}else M=S;2>P&&(H=V),D.views[R]=this.createView({viewId:R,index:m.stack.length,historyId:m.historyId,backViewId:L&&L.viewId?L.viewId:null,forwardViewId:null,stateId:u,stateName:this.currentStateName(),stateParams:g(),url:O}),m.stack.push(D.views[R])}if(o.cancel(b),w){if(w.disableAnimate&&(H=V),w.disableBack&&(D.views[R].backViewId=null),w.historyRoot){for(a=0;a0&&(m.stack[a-1].forwardViewId=null),D.forwardView=null,D.currentView.index=D.backView.index,D.currentView.backViewId=D.backView.backViewId,D.backView=s(D.backView),m.stack.splice(a,1);break}return m.cursor=D.currentView.index,{viewId:R,action:M,direction:H,historyId:z,enableBack:this.enabledBack(D.currentView),isHistoryRoot:0===D.currentView.index,ele:l}},registerHistory:function(e){e.$historyId=ionic.Utils.nextUid()},createView:function(e){var t=new L;return t.initialize(e)},getViewById:c,viewHistory:function(){return D},currentView:function(e){return arguments.length&&(D.currentView=e),D.currentView},currentHistoryId:function(){return D.currentView?D.currentView.historyId:null},currentTitle:function(e){return D.currentView?(arguments.length&&(D.currentView.title=e),D.currentView.title):void 0},backView:function(e){return arguments.length&&(D.backView=e),D.backView},backTitle:function(e){var t=e&&c(e.backViewId)||D.backView;return t&&t.title},forwardView:function(e){return arguments.length&&(D.forwardView=e),D.forwardView},currentStateName:function(){return t&&t.current?t.current.name:null},isCurrentStateNavView:function(e){return!!(t&&t.current&&t.current.views&&t.current.views[e])},goToHistoryRoot:function(e){if(e){var t=d(e);if(t&&t.stack.length){if(D.currentView&&D.currentView.viewId===t.stack[0].viewId)return;y={viewId:t.stack[0].viewId,action:C,direction:B},t.stack[0].go()}}},goBack:function(){D.backView&&D.backView.go()},enabledBack:function(e){var t=s(e);return!(!t||t.historyId!==e.historyId)},clearHistory:function(){var e=D.histories,t=D.currentView;if(e)for(var n in e)e[n].stack&&(e[n].stack=[],e[n].cursor=-1),t&&t.historyId===n?(t.backViewId=t.forwardViewId=null,e[n].stack.push(t)):e[n].destroy&&e[n].destroy();for(var i in D.views)i!==t.viewId&&delete D.views[i];t&&p(t.viewId)},clearCache:function(){a._instances.forEach(function(e){e.clearCache()})},nextViewOptions:function(e){return arguments.length&&(o.cancel(b),null===e?w=e:(w=w||{},u(w,e),w.expire&&(b=o(function(){w=null},w.expire)))),w},isAbstractEle:function(e,t){return t&&t.$$state&&t.$$state.self["abstract"]?!0:!(!e||!m(e)&&!m(e.children()))},isActiveScope:function(e){if(!e)return!1;for(var t,n=e,i=this.currentHistoryId();n;){if(n.$$disconnected)return!1;if(!t&&n.hasOwnProperty("$historyId")&&(t=!0),i){if(n.hasOwnProperty("$historyId")&&i==n.$historyId)return!0;if(n.hasOwnProperty("$activeHistoryId")&&i==n.$activeHistoryId){if(n.hasOwnProperty("$historyId"))return!0;if(!t)return!0}}t&&n.hasOwnProperty("$activeHistoryId")&&(t=!1),n=n.$parent}return i?"root"==i:!0}}}]).run(["$rootScope","$state","$location","$document","$ionicPlatform","$ionicHistory",function(e,t,n,i,o,r){function a(e){var t=r.backView();return t?t.go():ionic.Platform.exitApp(),e.preventDefault(),!1}e.$on("$ionicView.beforeEnter",function(){ionic.keyboard&&ionic.keyboard.hide&&ionic.keyboard.hide()}),e.$on("$ionicHistory.change",function(e,i){if(i){var o=r.viewHistory(),a=i.historyId?o.histories[i.historyId]:null;if(a&&a.cursor>-1&&a.cursor-1&&(o.boxShadow="0 0 10px rgba(0,0,0,"+(r.shouldAnimate?.45*i:.3)+")"),o[ionic.CSS.TRANSFORM]="translate3d("+n+"%,0,0)",ionic.DomUtil.cachedStyles(e,o)}var r={run:function(i){"forward"==n?(o(e,1,99*(1-i),1-i),o(t,1-.1*i,-33*i,-1)):"back"==n?(o(e,1-.1*(1-i),-33*(1-i),-1),o(t,1,100*i,1-i)):(o(e,1,0,-1),o(t,0,0,-1))},shouldAnimate:i&&("forward"==n||"back"==n)};return r},o.transitions.navBar.ios=function(e,t,n,i){function o(e,t,n,i){var o={};o[ionic.CSS.TRANSITION_DURATION]=c.shouldAnimate?"":0,o.opacity=1===t?"":t,e.setCss("buttons-left",o),e.setCss("buttons-right",o),e.setCss("back-button",o),o[ionic.CSS.TRANSFORM]="translate3d("+i+"px,0,0)",e.setCss("back-text",o),o[ionic.CSS.TRANSFORM]="translate3d("+n+"px,0,0)",e.setCss("title",o)}function r(e,t,n){if(e&&t){var i=(e.titleTextX()+e.titleWidth())*(1-n),r=t&&(t.titleTextX()-e.backButtonTextLeft())*(1-n)||0;o(e,n,i,r)}}function a(e,t,n){if(e&&t){var i=(-(e.titleTextX()-t.backButtonTextLeft())-e.titleLeftRight())*n;o(e,1-n,i,0)}}var c={run:function(n){var i=e.controller(),o=t&&t.controller();"back"==c.direction?(a(i,o,1-n),r(o,i,1-n)):(r(i,o,n),a(o,i,n))},direction:n,shouldAnimate:i&&("forward"==n||"back"==n)};return c},o.transitions.views.android=function(e,t,n,i){function o(e,t){var n={};n[ionic.CSS.TRANSITION_DURATION]=r.shouldAnimate?"":0,n[ionic.CSS.TRANSFORM]="translate3d("+t+"%,0,0)",ionic.DomUtil.cachedStyles(e,n)}i=i&&("forward"==n||"back"==n);var r={run:function(i){"forward"==n?(o(e,99*(1-i)),o(t,-100*i)):"back"==n?(o(e,-100*(1-i)),o(t,100*i)):(o(e,0),o(t,0))},shouldAnimate:i};return r},o.transitions.navBar.android=function(e,t,n,i){function o(e,t){if(e){var n={};n.opacity=1===t?"":t,e.setCss("buttons-left",n),e.setCss("buttons-right",n),e.setCss("back-button",n),e.setCss("back-text",n),e.setCss("title",n)}}return{run:function(n){o(e.controller(),n),o(t&&t.controller(),1-n)},shouldAnimate:i&&("forward"==n||"back"==n)}},o.transitions.views.none=function(e,t){return{run:function(n){o.transitions.views.android(e,t,!1,!1).run(n)},shouldAnimate:!1}},o.transitions.navBar.none=function(e,t){return{run:function(n){o.transitions.navBar.ios(e,t,!1,!1).run(n),o.transitions.navBar.android(e,t,!1,!1).run(n)},shouldAnimate:!1}},o.setPlatformConfig=e,o.$get=function(){return o}});var m='
',$="$ionicLoading instance.hide() has been deprecated. Use $ionicLoading.hide().",w="$ionicLoading instance.show() has been deprecated. Use $ionicLoading.show().",b="$ionicLoading instance.setContent() has been deprecated. Use $ionicLoading.show({ template: 'my content' }).";l.constant("$ionicLoadingConfig",{template:""}).factory("$ionicLoading",["$ionicLoadingConfig","$ionicBody","$ionicTemplateLoader","$ionicBackdrop","$timeout","$q","$log","$compile","$ionicPlatform","$rootScope",function(e,t,n,i,o,r,a,c,l,d){function f(){return v||(v=n.compile({template:m,appendTo:t.get()}).then(function(e){return e.show=function(a){var s=a.templateUrl?n.load(a.templateUrl):r.when(a.template||a.content||""); -e.scope=a.scope||e.scope,e.isShown||(e.hasBackdrop=!a.noBackdrop&&a.showBackdrop!==!1,e.hasBackdrop&&(i.retain(),i.getElement().addClass("backdrop-loading"))),a.duration&&(o.cancel(e.durationTimeout),e.durationTimeout=o(angular.bind(e,e.hide),+a.duration)),y(),y=l.registerBackButtonAction(g,B),s.then(function(n){if(n){var i=e.element.children();i.html(n),c(i.contents())(e.scope)}e.isShown&&(e.element.addClass("visible"),ionic.requestAnimationFrame(function(){e.isShown&&(e.element.addClass("active"),t.addClass("loading-active"))}))}),e.isShown=!0},e.hide=function(){y(),e.isShown&&(e.hasBackdrop&&(i.release(),i.getElement().removeClass("backdrop-loading")),e.element.removeClass("active"),t.removeClass("loading-active"),setTimeout(function(){!e.isShown&&e.element.removeClass("visible")},200)),o.cancel(e.durationTimeout),e.isShown=!1},e})),v}function h(t){t=u({},e||{},t||{});var n=t.delay||t.showDelay||0;return S(),k(),t.hideOnStateChange&&(S=d.$on("$stateChangeSuccess",p),k=d.$on("$stateChangeError",p)),o.cancel(C),C=o(g,n),C.then(f).then(function(e){return e.show(t)}),{hide:s.method($,a.error,p),show:s.method(w,a.error,function(){h(t)}),setContent:s.method(b,a.error,function(e){f().then(function(t){t.show({template:e})})})}}function p(){S(),k(),o.cancel(C),f().then(function(e){e.hide()})}var v,y=g,S=g,k=g,C=r.when();return{show:h,hide:p,_getLoader:f}}]),l.factory("$ionicModal",["$rootScope","$ionicBody","$compile","$timeout","$ionicPlatform","$ionicTemplateLoader","$q","$log",function(e,t,n,i,o,r,a,c){var s=ionic.views.Modal.inherit({initialize:function(e){ionic.views.Modal.prototype.initialize.call(this,e),this.animation=e.animation||"slide-in-up"},show:function(e){var n=this;if(n.scope.$$destroyed)return void c.error("Cannot call "+n.viewType+".show() after remove(). Please create a new "+n.viewType+" instance.");var r=v(n.modalEl);return n.el.classList.remove("hide"),i(function(){t.addClass(n.viewType+"-open")},400),n.el.parentElement||(r.addClass(n.animation),t.append(n.el)),e&&n.positionView&&(n.positionView(e,r),ionic.on("resize",function(){ionic.off("resize",null,window),n.positionView(e,r)},window)),r.addClass("ng-enter active").removeClass("ng-leave ng-leave-active"),n._isShown=!0,n._deregisterBackButton=o.registerBackButtonAction(n.hardwareBackButtonClose?angular.bind(n,n.hide):g,k),ionic.views.Modal.prototype.show.call(n),i(function(){r.addClass("ng-enter-active"),ionic.trigger("resize"),n.scope.$parent&&n.scope.$parent.$broadcast(n.viewType+".shown",n),n.el.classList.add("active"),n.scope.$broadcast("$ionicHeader.align")},20),i(function(){n.$el.on("click",function(e){n.backdropClickToClose&&e.target===n.el&&n.hide()})},400)},hide:function(){var e=this,n=v(e.modalEl);return e.el.classList.remove("active"),n.addClass("ng-leave"),i(function(){n.addClass("ng-leave-active").removeClass("ng-enter ng-enter-active active")},20),e.$el.off("click"),e._isShown=!1,e.scope.$parent&&e.scope.$parent.$broadcast(e.viewType+".hidden",e),e._deregisterBackButton&&e._deregisterBackButton(),ionic.views.Modal.prototype.hide.call(e),e.positionView&&ionic.off("resize",null,window),i(function(){t.removeClass(e.viewType+"-open"),e.el.classList.add("hide")},e.hideDelay||320)},remove:function(){var e=this;return e.scope.$parent&&e.scope.$parent.$broadcast(e.viewType+".removed",e),e.hide().then(function(){e.scope.$destroy(),e.$el.remove()})},isShown:function(){return!!this._isShown}}),l=function(t,i){var o=i.scope&&i.scope.$new()||e.$new(!0);i.viewType=i.viewType||"modal",u(o,{$hasHeader:!1,$hasSubheader:!1,$hasFooter:!1,$hasSubfooter:!1,$hasTabs:!1,$hasTabsTop:!1});var r=n(""+t+"")(o);i.$el=r,i.el=r[0],i.modalEl=i.el.querySelector("."+i.viewType);var a=new s(i);return a.scope=o,i.scope||(o[i.viewType]=a),a};return{fromTemplate:function(e,t){var n=l(e,t||{});return n},fromTemplateUrl:function(e,t,n){var i;return angular.isFunction(t)&&(i=t,t=n),r.load(e).then(function(e){var n=l(e,t||{});return i&&i(n),n})}}}]),l.service("$ionicNavBarDelegate",ionic.DelegateService(["align","showBackButton","showBar","title","changeTitle","setTitle","getTitle","back","getPreviousTitle"])),l.service("$ionicNavViewDelegate",ionic.DelegateService(["clearCache"]));var y=100,S=150,k=200,C=300,T=400,B=500;l.provider("$ionicPlatform",function(){return{$get:["$q","$rootScope",function(e){var t={onHardwareBackButton:function(e){ionic.Platform.ready(function(){document.addEventListener("backbutton",e,!1)})},offHardwareBackButton:function(e){ionic.Platform.ready(function(){document.removeEventListener("backbutton",e)})},$backButtonActions:{},registerBackButtonAction:function(e,n,i){t._hasBackButtonHandler||(t.$backButtonActions={},t.onHardwareBackButton(t.hardwareBackButtonClick),t._hasBackButtonHandler=!0);var o={id:i?i:ionic.Utils.nextUid(),priority:n?n:0,fn:e};return t.$backButtonActions[o.id]=o,function(){delete t.$backButtonActions[o.id]}},hardwareBackButtonClick:function(e){var n,i;for(i in t.$backButtonActions)(!n||t.$backButtonActions[i].priority>=n.priority)&&(n=t.$backButtonActions[i]);return n?(n.fn(e),n):void 0},is:function(e){return ionic.Platform.is(e)},on:function(e,t){return ionic.Platform.ready(function(){document.addEventListener(e,t,!1)}),function(){ionic.Platform.ready(function(){document.removeEventListener(e,t)})}},ready:function(t){var n=e.defer();return ionic.Platform.ready(function(){n.resolve(),t&&t()}),n.promise}};return t}]}}),l.factory("$ionicPopover",["$ionicModal","$ionicPosition","$document","$window",function(e,t,n,i){function o(e,n){var o=v(e.target||e),a=t.offset(o),c=n.prop("offsetWidth"),s=n.prop("offsetHeight"),l=i.innerWidth,u=i.innerHeight,d={left:a.left+a.width/2-c/2},f=v(n[0].querySelector(".popover-arrow"));d.leftl&&(d.left=l-c-r),a.top+a.height+s>u&&a.top-s>0?(d.top=a.top-s,n.addClass("popover-bottom")):(d.top=a.top+a.height,n.removeClass("popover-bottom")),f.css({left:a.left+a.width/2-f.prop("offsetWidth")/2-d.left+"px"}),n.css({top:d.top+"px",left:d.left+"px",marginLeft:"0",opacity:"1"})}var r=6,a={viewType:"popover",hideDelay:1,animation:"none",positionView:o};return{fromTemplate:function(t,n){return e.fromTemplate(t,ionic.Utils.extend(a,n||{}))},fromTemplateUrl:function(t,n){return e.fromTemplateUrl(t,ionic.Utils.extend(a,n||{}))}}}]);var I='';l.factory("$ionicPopup",["$ionicTemplateLoader","$ionicBackdrop","$q","$timeout","$rootScope","$ionicBody","$compile","$ionicPlatform",function(e,t,n,i,o,r,a,c){function s(t){t=u({scope:null,title:"",buttons:[]},t||{});var o=e.compile({template:I,scope:t.scope&&t.scope.$new(),appendTo:r.get()}),c=t.templateUrl?e.load(t.templateUrl):n.when(t.template||t.content||"");return n.all([o,c]).then(function(e){var o=e[0],r=e[1],c=n.defer();o.responseDeferred=c;var s=v(o.element[0].querySelector(".popup-body"));return r?(s.html(r),a(s.contents())(o.scope)):s.remove(),u(o.scope,{title:t.title,buttons:t.buttons,subTitle:t.subTitle,cssClass:t.cssClass,$buttonTapped:function(e,t){var n=(e.onTap||g)(t);t=t.originalEvent||t,t.defaultPrevented||c.resolve(n)}}),o.show=function(){o.isShown||(o.isShown=!0,ionic.requestAnimationFrame(function(){o.isShown&&(o.element.removeClass("popup-hidden"),o.element.addClass("popup-showing active"),f(o.element))}))},o.hide=function(e){return e=e||g,o.isShown?(o.isShown=!1,o.element.removeClass("active"),o.element.addClass("popup-hidden"),void i(e,250)):e()},o.remove=function(){o.removed||(o.hide(function(){o.element.remove(),o.scope.$destroy()}),o.removed=!0)},o})}function l(){w[0]&&w[0].responseDeferred.resolve()}function d(e){function n(e){o.then(function(t){t.removed||t.responseDeferred.resolve(e)})}var o=b._createPopup(e),a=w[0];a&&a.hide();var s=i(g,a?$.stackPushDelay:0).then(function(){return o}).then(function(e){return a||(r.addClass("popup-open"),t.retain(),b._backButtonActionDone=c.registerBackButtonAction(l,T)),w.unshift(e),e.show(),e.responseDeferred.notify({close:s.close}),e.responseDeferred.promise.then(function(n){var o=w.indexOf(e);-1!==o&&w.splice(o,1),e.remove();var a=w[0];return a?a.show():(i(function(){r.removeClass("popup-open")},400),i(function(){t.release()},$.stackPushDelay||0),(b._backButtonActionDone||g)()),n})});return s.close=n,s}function f(e){var t=e[0].querySelector("[autofocus]");t&&t.focus()}function h(e){return d(u({buttons:[{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))}function p(e){return d(u({buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){return!1}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))}function m(e){var t=o.$new(!0);t.data={};var n="";return e.template&&/<[a-z][\s\S]*>/i.test(e.template)===!1&&(n=""+e.template+"",delete e.template),d(u({template:n+'',scope:t,buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return t.data.response||""}}]},e||{}))}var $={stackPushDelay:75},w=[],b={show:d,alert:h,confirm:p,prompt:m,_createPopup:s,_popupStack:w};return b}]),l.factory("$ionicPosition",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function i(e){return"static"===(n(e,"position")||"static")}var o=function(t){for(var n=e[0],o=t.offsetParent||n;o&&o!==n&&i(o);)o=o.offsetParent;return o||n};return{position:function(t){var n=this.offset(t),i={top:0,left:0},r=o(t[0]);r!=e[0]&&(i=this.offset(v(r)),i.top+=r.clientTop-r.scrollTop,i.left+=r.clientLeft-r.scrollLeft);var a=t[0].getBoundingClientRect();return{width:a.width||t.prop("offsetWidth"),height:a.height||t.prop("offsetHeight"),top:n.top-i.top,left:n.left-i.left}},offset:function(n){var i=n[0].getBoundingClientRect();return{width:i.width||n.prop("offsetWidth"),height:i.height||n.prop("offsetHeight"),top:i.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:i.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}}}}]),l.service("$ionicScrollDelegate",ionic.DelegateService(["resize","scrollTop","scrollBottom","scrollTo","scrollBy","zoomTo","zoomBy","getScrollPosition","anchorScroll","freezeScroll","freezeAllScrolls","getScrollView"])),l.service("$ionicSideMenuDelegate",ionic.DelegateService(["toggleLeft","toggleRight","getOpenRatio","isOpen","isOpenLeft","isOpenRight","canDragContent","edgeDragThreshold"])),l.service("$ionicSlideBoxDelegate",ionic.DelegateService(["update","slide","select","enableSlide","previous","next","stop","autoPlay","start","currentIndex","selected","slidesCount","count","loop"])),l.service("$ionicTabsDelegate",ionic.DelegateService(["select","selectedIndex"])),function(){var e=[];l.factory("$ionicTemplateCache",["$http","$templateCache","$timeout",function(t,n,i){function o(e){return"undefined"==typeof e?r():(p(e)&&(e=[e]),d(e,function(e){c.push(e)}),void(a&&r()))}function r(){if(o._runCount++,a=!0,0!==c.length){for(var e=0;4>e&&(template=c.pop());)p(template)&&t.get(template,{cache:n}),e++;c.length&&i(r,1e3)}}var a,c=e;return o._runCount=0,o}]).config(["$stateProvider","$ionicConfigProvider",function(t,n){var i=t.state;t.state=function(o,r){if("object"==typeof r){var a=r.prefetchTemplate!==!1&&e.length").html(i).contents();return n.controller&&(r=t(n.controller,u(n.locals,{$scope:a})),c.children().data("$ngControllerController",r)),n.appendTo&&v(n.appendTo).append(c),e(c)(a),{element:c,scope:a}})}return{load:a,compile:c}}]),l.factory("$ionicViewService",["$ionicHistory","$log",function(e,t){function n(e,n){t.warn("$ionicViewService"+e+" is deprecated, please use $ionicHistory"+n+" instead: http://ionicframework.com/docs/nightly/api/service/$ionicHistory/")}n("","");var i={getCurrentView:"currentView",getBackView:"backView",getForwardView:"forwardView",getCurrentStateName:"currentStateName",nextViewOptions:"nextViewOptions",clearHistory:"clearHistory"};return d(i,function(t,o){i[o]=function(){return n("."+o,"."+t),e[t].apply(this,arguments)}}),i}]),l.factory("$ionicViewSwitcher",["$timeout","$document","$q","$ionicClickBlock","$ionicConfig","$ionicNavBarDelegate",function(e,t,n,i,o,r){function a(e,t){return c(e)["abstract"]?c(e).name:t?t.stateId||t.viewId:ionic.Utils.nextUid()}function c(e){return e&&e.$$state&&e.$$state.self||{}}function s(e,t,n,i){var r=c(e),a=g||V(t,"view-transition")||r.viewTransition||o.views.transition()||"ios",s=o.navBar.transition();return n=m||V(t,"view-direction")||r.viewDirection||n||"none",u(l(i),{transition:a,navBarTransition:"view"===s?a:s,direction:n,shouldAnimate:"none"!==a&&"none"!==n})}function l(e){return e=e||{},{viewId:e.viewId,historyId:e.historyId,stateId:e.stateId,stateName:e.stateName,stateParams:e.stateParams}}function h(e,t){return arguments.length>1?void V(e,T,t):V(e,T)}function p(e){if(e&&e.length){var t=e.scope();t&&(t.$emit("$ionicView.unloaded",e.data(C)),t.$destroy()),e.remove()}}var g,m,$="webkitTransitionEnd transitionend",w="$noCache",b="$destroyEle",y="$eleId",S="$accessed",k="$fallbackTimer",C="$viewData",T="nav-view",B="active",I="cached",x="stage",A=0;ionic.transition=ionic.transition||{},ionic.transition.isActive=!1;var E,V=ionic.DomUtil.cachedAttr,P=[],D=1100,L={create:function(t,d,v,T,E,_){var N,R,M,H=++A,z={init:function(e,t){L.isTransitioning(!0),z.loadViewElements(e),z.render(e,function(){t&&t()})},loadViewElements:function(e){var n,i,o,r=t.getViewElements(),c=a(d,v),s=t.activeEleId();for(n=0,i=r.length;i>n&&(o=r.eq(n),o.data(y)===c?o.data(w)?(o.data(y,c+ionic.Utils.nextUid()),o.data(b,!0)):N=o:f(s)&&o.data(y)===s&&(R=o),!N||!R);n++);M=!!N,M||(N=e.ele||L.createViewEle(d),N.data(y,c)),_&&t.activeEleId(c),e.ele=null},render:function(e,n){if(M)ionic.Utils.reconnectScope(N.scope());else{h(N,x);var i=s(d,N,e.direction,v),r=o.transitions.views[i.transition]||o.transitions.views.none;r(N,null,i.direction,!0).run(0),N.data(C,{viewId:i.viewId,historyId:i.historyId,stateName:i.stateName,stateParams:i.stateParams}),(c(d).cache===!1||"false"===c(d).cache||"false"==N.attr("cache-view")||0===o.views.maxCache())&&N.data(w,!0);var a=t.appendViewElement(N,d);delete i.direction,delete i.transition,a.$emit("$ionicView.loaded",i)}N.data(S,Date.now()),n&&n()},transition:function(a,c,f){function p(){h(N,W.shouldAnimate?"entering":B),h(R,W.shouldAnimate?"leaving":I),W.run(1),r._instances.forEach(function(e){e.triggerTransitionStart(H)}),W.shouldAnimate||b()}function w(e){e.target===this&&b()}function b(){b.x||(b.x=!0,N.off($,w),e.cancel(N.data(k)),R&&e.cancel(R.data(k)),z.emit("after",O,U),C&&C.resolve(t),H===A&&(n.all(P).then(L.transitionEnd),z.cleanup(O)),r._instances.forEach(function(e){e.triggerTransitionEnd()}),g=m=v=T=N=R=null)}function y(e){e.target===this&&S()}function S(){h(N,I),h(R,B),N.off($,y),e.cancel(N.data(k)),L.transitionEnd([t])}var C,O=s(d,N,a,v),U=u(u({},O),l(T));O.transitionId=U.transitionId=H,O.fromCache=!!M,O.enableBack=!!c,O.renderStart=E,O.renderEnd=_,V(N.parent(),"nav-view-transition",O.transition),V(N.parent(),"nav-view-direction",O.direction),e.cancel(N.data(k));var q=o.transitions.views[O.transition]||o.transitions.views.none,W=q(N,R,O.direction,O.shouldAnimate&&f&&_);if(W.shouldAnimate&&(N.on($,w),N.data(k,e(b,D)),i.show(D)),E&&(z.emit("before",O,U),h(N,x),W.run(0)),_&&(C=n.defer(),P.push(C.promise)),E&&_)e(p,16);else{if(!_)return h(N,"entering"),h(R,"leaving"),{run:W.run,cancel:function(t){t?(N.on($,y),N.data(k,e(S,D)),i.show(D)):S(),W.shouldAnimate=t,W.run(0),W=null}};_&&p()}},emit:function(e,t,n){var i=N.scope();i&&(i.$emit("$ionicView."+e+"Enter",t),"after"==e&&i.$emit("$ionicView.enter",t)),R?(i=R.scope(),i&&(i.$emit("$ionicView."+e+"Leave",n),"after"==e&&i.$emit("$ionicView.leave",n))):i&&n&&n.viewId&&(i.$emit("$ionicNavView."+e+"Leave",n),"after"==e&&i.$emit("$ionicNavView.leave",n))},cleanup:function(e){R&&"back"==e.direction&&!o.views.forwardCache()&&p(R);var n,i,r,a=t.getViewElements(),c=a.length,s=c-1>o.views.maxCache(),l=Date.now();for(n=0;c>n;n++)i=a.eq(n),s&&i.data(S)t&&(e=t+(g-m-5)),e},h.titleTextX=function(){return t[0].offsetWidth/2-h.titleWidth()/2},h.titleLeftRight=function(){return g-m},h.backButtonTextLeft=function(){for(var e=0,t=a(s);t;)e+=t.offsetLeft,t=t.parentElement;return e},h.resetBackButton=function(e){if(o.backButton.previousTitleText()){var t=a(d);if(t){t.classList.remove(f);var n=e&&r.getViewById(e.viewId),i=r.backTitle(n);i!==v&&(v=t.innerHTML=i)}var c=a(u);c&&c.classList.remove(f)}},h.align=function(e){var i=a(c);e=e||n.alignTitle||o.navBar.alignTitle();var r=h.calcWidths(e,!1);if(b&&v&&o.backButton.previousTitleText()){var s=h.calcWidths(e,!0),l=t[0].offsetWidth-s.titleLeft-s.titleRight;h.titleTextWidth()<=l&&(r=s)}return h.updatePositions(i,r.titleLeft,r.titleRight,r.buttonsLeft,r.buttonsRight,r.css,r.showPrevTitle)},h.calcWidths=function(e,n){var i,o,r,h,p,v,g,m,$,w=a(c),y=a(l),S=t[0].childNodes,k=0,C=0,T=0,B=0,I="",x=0;for(i=0;i10&&(T=B=A)}return{backButtonWidth:x,buttonsLeft:k,buttonsRight:C,titleLeft:T,titleRight:B,showPrevTitle:n,css:I}},h.updatePositions=function(e,n,r,c,s,l,p){var v=i.defer();if(e&&(n!==g&&(e.style.left=n?n+"px":"",g=n),r!==m&&(e.style.right=r?r+"px":"",m=r),l!==$&&(l&&e.classList.add(l),$&&e.classList.remove($),$=l)),o.backButton.previousTitleText()){var w=a(d),b=a(u);w&&w.classList[p?"remove":"add"](f),b&&b.classList[p?"add":"remove"](f)}return ionic.requestAnimationFrame(function(){if(e&&e.offsetWidth+10i?n:i,r!==m&&(e.style.right=r+"px",m=r)}v.resolve()}),v.promise},h.setCss=function(e,t){ionic.DomUtil.cachedStyles(a(e),t)};var C={};e.$on("$destroy",function(){for(var e in C)C[e]=null})}]),l.controller("$ionInfiniteScroll",["$scope","$attrs","$element","$timeout",function(e,t,n,i){function o(){ionic.requestAnimationFrame(function(){n[0].classList.add("active")}),s.isLoading=!0,e.$parent&&e.$parent.$apply(t.onInfinite||"")}function r(){ionic.requestAnimationFrame(function(){n[0].classList.remove("active")}),i(function(){s.jsScrolling&&s.scrollView.resize(),s.checkBounds()},30,!1),s.isLoading=!1}function a(){if(!s.isLoading){var e={};if(s.jsScrolling){e=s.getJSMaxScroll();var t=s.scrollView.getValues();(-1!==e.left&&t.left>=e.left||-1!==e.top&&t.top>=e.top)&&o()}else e=s.getNativeMaxScroll(),(-1!==e.left&&s.scrollEl.scrollLeft>=e.left-s.scrollEl.clientWidth||-1!==e.top&&s.scrollEl.scrollTop>=e.top-s.scrollEl.clientHeight)&&o()}}function c(e){return distance=(t.distance||"2.5%").trim(),isPercent=-1!==distance.indexOf("%"),isPercent?e*(1-parseFloat(distance)/100):e-parseFloat(distance)}var s=this;s.isLoading=!1,e.icon=function(){return f(t.icon)?t.icon:"ion-load-d"},e.spinner=function(){return f(t.spinner)?t.spinner:""},e.$on("scroll.infiniteScrollComplete",function(){r()}),e.$on("$destroy",function(){s.scrollCtrl&&s.scrollCtrl.$element&&s.scrollCtrl.$element.off("scroll",s.checkBounds),s.scrollEl&&s.scrollEl.removeEventListener&&s.scrollEl.removeEventListener("scroll",s.checkBounds)}),s.checkBounds=ionic.Utils.throttle(a,300),s.getJSMaxScroll=function(){var e=s.scrollView.getScrollMax();return{left:s.scrollView.options.scrollingX?c(e.left):-1,top:s.scrollView.options.scrollingY?c(e.top):-1}},s.getNativeMaxScroll=function(){var e={left:s.scrollEl.scrollWidth,top:s.scrollEl.scrollHeight},t=window.getComputedStyle(s.scrollEl)||{};return{left:"scroll"===t.overflowX||"auto"===t.overflowX||"scroll"===s.scrollEl.style["overflow-x"]?c(e.left):-1,top:"scroll"===t.overflowY||"auto"===t.overflowY||"scroll"===s.scrollEl.style["overflow-y"]?c(e.top):-1}}}]),l.service("$ionicListDelegate",ionic.DelegateService(["showReorder","showDelete","canSwipeItems","closeOptionButtons"])).controller("$ionicList",["$scope","$attrs","$ionicListDelegate","$ionicHistory",function(e,t,n,i){var o=this,r=!0,a=!1,c=!1,s=n._registerInstance(o,t.delegateHandle,function(){return i.isActiveScope(e)});e.$on("$destroy",s),o.showReorder=function(e){return arguments.length&&(a=!!e),a},o.showDelete=function(e){return arguments.length&&(c=!!e),c},o.canSwipeItems=function(e){return arguments.length&&(r=!!e),r},o.closeOptionButtons=function(){o.listView&&o.listView.clearDragEffects()}}]),l.controller("$ionicNavBar",["$scope","$element","$attrs","$compile","$timeout","$ionicNavBarDelegate","$ionicConfig","$ionicHistory",function(e,t,n,i,o,r,a,c){function s(e,t){var n=console.warn||console.log;n&&n.call(console,"navBarController."+e+" is deprecated, please use "+t+" instead")}function l(e){return x[e]?v(x[e]):void 0}function u(){for(var e=0;e'),u.append(p)),t==k?p.append(e):p.prepend(e)):(h||(h=v('
'),m[C]?m[C].after(h):u.prepend(h)),t==k?h.append(e):h.prepend(e)))}var c=v('