summaryrefslogtreecommitdiff
path: root/www/lib/ionic-scroll-sista
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2016-09-28 20:25:25 -0400
committerPliable Pixels <pliablepixels@gmail.com>2016-09-28 20:25:25 -0400
commit0d9a9353e756b7cdcabae85b4d4a4840910ed3df (patch)
tree56a700baa0d04e81656a86df05c6c0f9b5ad24bf /www/lib/ionic-scroll-sista
parentd78c434d088d1fee3f9d805347a2c5a5a88d19e3 (diff)
switched to "scroll-sista" for sqeezing headers
Former-commit-id: 55992626fea99156d7d1531efaa830c11186d8ca
Diffstat (limited to 'www/lib/ionic-scroll-sista')
-rw-r--r--www/lib/ionic-scroll-sista/.bower.json54
-rw-r--r--www/lib/ionic-scroll-sista/bower.json43
-rw-r--r--www/lib/ionic-scroll-sista/dist/ionic.scroll.sista.js303
-rw-r--r--www/lib/ionic-scroll-sista/dist/ionic.scroll.sista.min.js1
-rw-r--r--www/lib/ionic-scroll-sista/karma.conf.js32
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/icon/drawable-hdpi-icon.pngbin0 -> 2875 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/icon/drawable-ldpi-icon.pngbin0 -> 1155 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/icon/drawable-mdpi-icon.pngbin0 -> 1802 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/icon/drawable-xhdpi-icon.pngbin0 -> 4317 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/icon/drawable-xxhdpi-icon.pngbin0 -> 7793 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/icon/drawable-xxxhdpi-icon.pngbin0 -> 11783 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-hdpi-screen.pngbin0 -> 13657 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-ldpi-screen.pngbin0 -> 3740 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-mdpi-screen.pngbin0 -> 7116 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xhdpi-screen.pngbin0 -> 39781 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xxhdpi-screen.pngbin0 -> 58987 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xxxhdpi-screen.pngbin0 -> 89363 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-hdpi-screen.pngbin0 -> 13298 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-ldpi-screen.pngbin0 -> 3628 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-mdpi-screen.pngbin0 -> 7214 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xhdpi-screen.pngbin0 -> 38625 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xxhdpi-screen.pngbin0 -> 55504 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xxxhdpi-screen.pngbin0 -> 81831 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/icon.pngbin0 -> 60857 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-40.pngbin0 -> 1248 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-40@2x.pngbin0 -> 3564 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-50.pngbin0 -> 1902 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-50@2x.pngbin0 -> 4691 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-60.pngbin0 -> 2452 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-60@2x.pngbin0 -> 6042 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-60@3x.pngbin0 -> 10875 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-72.pngbin0 -> 2866 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-72@2x.pngbin0 -> 7793 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-76.pngbin0 -> 3319 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-76@2x.pngbin0 -> 8305 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-small.pngbin0 -> 818 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-small@2x.pngbin0 -> 2287 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon-small@3x.pngbin0 -> 3856 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon.pngbin0 -> 2112 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/icon/icon@2x.pngbin0 -> 5718 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default-568h@2x~iphone.pngbin0 -> 31992 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default-667h.pngbin0 -> 40444 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default-736h.pngbin0 -> 45098 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape-736h.pngbin0 -> 44906 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape@2x~ipad.pngbin0 -> 102289 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape~ipad.pngbin0 -> 22655 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default-Portrait@2x~ipad.pngbin0 -> 99461 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default-Portrait~ipad.pngbin0 -> 22692 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default@2x~iphone.pngbin0 -> 18852 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/ios/splash/Default~iphone.pngbin0 -> 7214 bytes
-rw-r--r--www/lib/ionic-scroll-sista/resources/splash.pngbin0 -> 62210 bytes
-rw-r--r--www/lib/ionic-scroll-sista/scss/ionic.scroll.sista.scss16
52 files changed, 449 insertions, 0 deletions
diff --git a/www/lib/ionic-scroll-sista/.bower.json b/www/lib/ionic-scroll-sista/.bower.json
new file mode 100644
index 00000000..dcbf10a7
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/.bower.json
@@ -0,0 +1,54 @@
+{
+ "name": "ionic-scroll-sista",
+ "version": "1.0.7",
+ "description": "An Ionic plugin that will push your headers and tabs away while scrolling to free up more space",
+ "author": "Devin Jett <djett41@gmail.com> (https://github.com/djett41)",
+ "main": [
+ "dist/ionic.scroll.sista.js"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/djett41/ionic-scroll-sista.git"
+ },
+ "ignore": [
+ "demo",
+ "js",
+ "test",
+ ".gitignore",
+ "gulpfile.js",
+ "LICENSE",
+ "package.json",
+ "README.md"
+ ],
+ "dependencies": {},
+ "devDependencies": {
+ "ionic": "^1.0.0-rc.0",
+ "angular-mocks": "1.4.3"
+ },
+ "keywords": [
+ "mobile",
+ "html5",
+ "ionic",
+ "cordova",
+ "phonegap",
+ "scroll",
+ "header",
+ "shrink",
+ "tabs",
+ "angularjs",
+ "angular"
+ ],
+ "license": "MIT",
+ "private": false,
+ "homepage": "https://github.com/djett41/ionic-scroll-sista",
+ "_release": "1.0.7",
+ "_resolution": {
+ "type": "version",
+ "tag": "v1.0.7",
+ "commit": "a5199fc2b4ee1bb73a62a8fa2efcd0e3512000c6"
+ },
+ "_source": "https://github.com/djett41/ionic-scroll-sista.git",
+ "_target": "~1.0.7",
+ "_originalSource": "ionic-scroll-sista",
+ "_direct": true
+} \ No newline at end of file
diff --git a/www/lib/ionic-scroll-sista/bower.json b/www/lib/ionic-scroll-sista/bower.json
new file mode 100644
index 00000000..58c0c10a
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/bower.json
@@ -0,0 +1,43 @@
+{
+ "name": "ionic-scroll-sista",
+ "version": "1.0.7",
+ "description": "An Ionic plugin that will push your headers and tabs away while scrolling to free up more space",
+ "author": "Devin Jett <djett41@gmail.com> (https://github.com/djett41)",
+ "main": [
+ "dist/ionic.scroll.sista.js"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/djett41/ionic-scroll-sista.git"
+ },
+ "ignore": [
+ "demo",
+ "js",
+ "test",
+ ".gitignore",
+ "gulpfile.js",
+ "LICENSE",
+ "package.json",
+ "README.md"
+ ],
+ "dependencies": {},
+ "devDependencies": {
+ "ionic": "^1.0.0-rc.0",
+ "angular-mocks": "1.4.3"
+ },
+ "keywords": [
+ "mobile",
+ "html5",
+ "ionic",
+ "cordova",
+ "phonegap",
+ "scroll",
+ "header",
+ "shrink",
+ "tabs",
+ "angularjs",
+ "angular"
+ ],
+ "license": "MIT",
+ "private": false
+}
diff --git a/www/lib/ionic-scroll-sista/dist/ionic.scroll.sista.js b/www/lib/ionic-scroll-sista/dist/ionic.scroll.sista.js
new file mode 100644
index 00000000..dc57ac26
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/dist/ionic.scroll.sista.js
@@ -0,0 +1,303 @@
+/* global angular,ionic */
+(function (angular, ionic) {
+ 'use strict';
+
+ angular.module('jett.ionic.scroll.sista', ['ionic'])
+ .directive('scrollSista', ['$document', '$timeout', '$rootScope', '$ionicScrollDelegate', function($document, $timeout, $rootScope, $ionicScrollDelegate) {
+ var TRANSITION_DELAY = 400;
+ var defaultDelay = TRANSITION_DELAY * 2;
+ var defaultDuration = TRANSITION_DELAY + 'ms';
+ var scaleHeaderElements = ionic.Platform.isAndroid() ? false : true;
+
+ function getParentWithAttr (e, attrName, attrValue, depth) {
+ var attr;
+
+ depth = depth || 10;
+ while (e.parentNode && depth--) {
+ attr = e.parentNode.getAttribute(attrName);
+ if (attr && attr === attrValue) {
+ return e.parentNode;
+ }
+ e = e.parentNode;
+ }
+ return null;
+ }
+
+ return {
+ restrict: 'A',
+ link: function($scope, $element, $attr) {
+ var isNavBarTransitioning = true;
+ var body = $document[0].body;
+ var scrollDelegate = $attr.delegateHandle ? $ionicScrollDelegate.$getByHandle($attr.delegateHandle) : $ionicScrollDelegate;
+ var scrollView = scrollDelegate.getScrollView();
+
+ //coordinates
+ var y, prevY, prevScrollTop;
+ //headers
+ var cachedHeader, activeHeader, headerHeight, contentTop;
+ //subheader
+ var subHeader, subHeaderHeight;
+ //tabs
+ var tabs, tabsHeight, hasTabsTop = false, hasTabsBottom = false;
+
+ //y position that will indicate where specific elements should start and end their transition.
+ var headerStart = 0;
+ var tabsStart = 0;
+ var subheaderStart = 0;
+ var defaultEnd, headerEnd, tabsEnd, subheaderEnd;
+
+ /**
+ * translates an element along the y axis by the supplied value. if duration is passed in,
+ * a transition duration is set
+ * @param element
+ * @param y
+ * @param duration
+ */
+ function translateY (element, y, duration) {
+ if (duration && !element.style[ionic.CSS.TRANSITION_DURATION]) {
+ element.style[ionic.CSS.TRANSITION_DURATION] = duration;
+ $timeout(function () {
+ element.style[ionic.CSS.TRANSITION_DURATION] = '';
+ }, defaultDelay, false);
+ }
+ element.style[ionic.CSS.TRANSFORM] = 'translate3d(0, ' + (-y) + 'px, 0)';
+ }
+
+ /**
+ * Initializes y and scroll variables
+ */
+ function initCoordinates () {
+ y = 0;
+ prevY = 0;
+ prevScrollTop = 0;
+ }
+
+ /**
+ * Initializes headers, tabs, and subheaders, and determines how they will transition on scroll
+ */
+ function init () {
+ var activeView;
+
+ cachedHeader = body.querySelector('[nav-bar="cached"] .bar-header');
+ activeHeader = body.querySelector('[nav-bar="active"] .bar-header');
+
+ if (!activeHeader) {
+ return;
+ }
+
+ headerHeight = activeHeader.offsetHeight;
+ contentTop = headerHeight;
+
+ //since some people can have nested tabs, get the last tabs
+ tabs = body.querySelectorAll('.tabs');
+ tabs = tabs[tabs.length - 1];
+ if (tabs) {
+ tabsHeight = tabs.offsetHeight;
+ if (tabs.parentNode.classList.contains('tabs-top')) {
+ hasTabsTop = true;
+ contentTop += tabsHeight;
+ } else if (tabs.parentNode.classList.contains('tabs-bottom')) {
+ hasTabsBottom = true;
+ }
+ }
+
+ //subheader
+ //since subheader is going to be nested in the active view, get the closest active view from $element and
+ activeView = getParentWithAttr($element[0], 'nav-view', 'active');
+ subHeader = activeView && activeView.querySelector('.bar-subheader');
+ if (subHeader) {
+ subHeaderHeight = subHeader.offsetHeight;
+ contentTop += subHeaderHeight;
+ }
+
+ //set default end for header/tabs elements to scroll out of the scroll view and set elements end to default
+ defaultEnd = contentTop * 2;
+ headerEnd = tabsEnd = subheaderEnd = defaultEnd;
+
+ //if tabs or subheader aren't available, set height to 0
+ tabsHeight = tabsHeight || 0;
+ subHeaderHeight = subHeaderHeight || 0;
+
+ switch($attr.scrollSista) {
+ case 'header':
+ subheaderEnd = headerHeight;
+ tabsEnd = hasTabsTop ? headerHeight : 0;
+ break;
+ case 'header-tabs':
+ headerStart = hasTabsTop ? tabsHeight : 0;
+ subheaderEnd = hasTabsTop ? headerHeight + tabsHeight : headerHeight;
+ break;
+ case 'tabs-subheader':
+ headerEnd = 0;
+ headerStart = hasTabsTop ? contentTop - headerHeight : subHeaderHeight;
+ tabsStart = hasTabsTop ? subHeaderHeight : 0;
+ break;
+ case 'tabs':
+ headerEnd = 0;
+ subheaderEnd = hasTabsTop ? tabsHeight : 0;
+ break;
+ case 'subheader':
+ headerEnd = 0;
+ tabsEnd = 0;
+ break;
+ case 'header-subheader':
+ tabsEnd = hasTabsTop ? headerHeight : 0;
+ break;
+ case 'subheader-header':
+ headerStart = subHeaderHeight;
+ tabsStart = hasTabsTop ? subHeaderHeight : 0;
+ tabsEnd = hasTabsTop ? headerHeight : 0;
+ break;
+ //defaults to header-tabs-subheader
+ default:
+ headerStart = hasTabsTop ? contentTop - headerHeight : subHeaderHeight;
+ tabsStart = hasTabsTop ? subHeaderHeight : 0;
+ }
+ }
+
+ /**
+ * Translates active and cached headers, and animates active children
+ * @param y
+ * @param duration
+ */
+ function translateHeaders (y, duration) {
+ var fadeAmt = Math.max(0, 1 - (y / headerHeight));
+
+ //translate active header
+ if (activeHeader) {
+ translateY(activeHeader, y, duration);
+ angular.forEach(activeHeader.children, function (child) {
+ child.style.opacity = fadeAmt;
+ if (scaleHeaderElements) {
+ child.style[ionic.CSS.TRANSFORM] = 'scale(' + fadeAmt + ',' + fadeAmt + ')';
+ }
+ });
+ }
+
+ //translate cached header
+ if (cachedHeader) {
+ translateY(cachedHeader, y, duration);
+ }
+ }
+
+ /**
+ * Translates header, tabs, subheader elements and resets content top and/or bottom
+ * When the active view leaves, we need sync functionality to reset headers and clear
+ * @param y
+ * @param duration
+ */
+ function translateElementsSync (y, duration) {
+ var contentStyle = $element[0].style;
+ var headerY = y > headerStart ? y - headerStart : 0;
+ var tabsY, subheaderY;
+
+ //subheader
+ if (subHeader) {
+ subheaderY = y > subheaderStart ? y - subheaderStart : 0;
+ translateY(subHeader, Math.min(subheaderEnd, subheaderY), duration);
+ }
+
+ //tabs
+ if (tabs) {
+ tabsY = Math.min(tabsEnd, y > tabsStart ? y - tabsStart : 0);
+
+ if (hasTabsBottom) {
+ tabsY = -tabsY;
+ contentStyle.bottom = Math.max(0, tabsHeight - y) + 'px';
+ }
+ translateY(tabs, tabsY, duration);
+ }
+
+ //headers
+ translateHeaders(Math.min(headerEnd, headerY), duration);
+
+ //readjust top of ion-content
+ contentStyle.top = Math.max(0, contentTop - y) + 'px';
+ }
+
+ /**
+ * Translates header, tabs, subheader elements and resets content top and/or bottom
+ * Wraps translate functionality in an animation frame request
+ * @param y
+ * @param duration
+ */
+ function translateElements (y, duration) {
+ ionic.requestAnimationFrame(function() {
+ translateElementsSync(y, duration);
+ });
+ }
+
+ //Need to reinitialize the values on refreshComplete or things will get out of wack
+ $scope.$on('scroll.refreshComplete', function () {
+ initCoordinates();
+ });
+
+ /**
+ * Before the active view leaves, reset elements, and reset the scroll container
+ */
+ $scope.$parent.$on('$ionicView.beforeLeave', function () {
+ isNavBarTransitioning = true;
+ translateElementsSync(0);
+ activeHeader = null;
+ cachedHeader = null;
+ });
+
+ /**
+ * Scroll to the top when entering to reset then scrollView scrollTop. (prevents jumping)
+ */
+ $scope.$parent.$on('$ionicView.beforeEnter', function () {
+ if (scrollView) {
+ scrollView.scrollTo(0, 0);
+ }
+ });
+
+ /**
+ * Ionic sets the active/cached nav-bar AFTER the afterEnter event is called, so we need to set a small
+ * timeout to let the nav-bar logic run.
+ */
+ $scope.$parent.$on('$ionicView.afterEnter', function () {
+ initCoordinates();
+
+ $timeout(function () {
+ init();
+ isNavBarTransitioning = false;
+ }, 20, false);
+ });
+
+ /**
+ * Called onScroll. computes coordinates based on scroll position and translates accordingly
+ */
+ $element.bind('scroll', function (e) {
+ if (isNavBarTransitioning) {
+ return;
+ }
+ //support for jQuery event as well
+ e = e.originalEvent || e;
+
+ var duration = 0;
+ var scrollTop = e.detail.scrollTop;
+
+ y = scrollTop >= 0 ? Math.min(defaultEnd, Math.max(0, y + scrollTop - prevScrollTop)) : 0;
+
+ //if we are at the bottom, animate the header/tabs back in
+ if (scrollView.getScrollMax().top - scrollTop <= contentTop) {
+ y = 0;
+ duration = defaultDuration;
+ }
+
+ prevScrollTop = scrollTop;
+
+ //if previous and current y are the same, no need to continue
+ if (prevY === y) {
+ return;
+ }
+ prevY = y;
+
+ translateElements(y, duration);
+ });
+
+ }
+ }
+ }]);
+
+})(angular, ionic);
diff --git a/www/lib/ionic-scroll-sista/dist/ionic.scroll.sista.min.js b/www/lib/ionic-scroll-sista/dist/ionic.scroll.sista.min.js
new file mode 100644
index 00000000..8bd3716d
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/dist/ionic.scroll.sista.min.js
@@ -0,0 +1 @@
+!function(e,t){"use strict";e.module("jett.ionic.scroll.sista",["ionic"]).directive("scrollSista",["$document","$timeout","$rootScope","$ionicScrollDelegate",function(a,n,r,o){function i(e,t,a,n){var r;for(n=n||10;e.parentNode&&n--;){if(r=e.parentNode.getAttribute(t),r&&r===a)return e.parentNode;e=e.parentNode}return null}var c=400,l=2*c,s=c+"ms",u=t.Platform.isAndroid()?!1:!0;return{restrict:"A",link:function(r,c,f){function d(e,a,r){r&&!e.style[t.CSS.TRANSITION_DURATION]&&(e.style[t.CSS.TRANSITION_DURATION]=r,n(function(){e.style[t.CSS.TRANSITION_DURATION]=""},l,!1)),e.style[t.CSS.TRANSFORM]="translate3d(0, "+-a+"px, 0)"}function b(){N=0,v=0,$=0}function h(){var e;if(y=q.querySelector('[nav-bar="cached"] .bar-header'),g=q.querySelector('[nav-bar="active"] .bar-header'))switch(A=g.offsetHeight,T=A,I=q.querySelectorAll(".tabs"),I=I[I.length-1],I&&(k=I.offsetHeight,I.parentNode.classList.contains("tabs-top")?(V=!0,T+=k):I.parentNode.classList.contains("tabs-bottom")&&(F=!0)),e=i(c[0],"nav-view","active"),M=e&&e.querySelector(".bar-subheader"),M&&(R=M.offsetHeight,T+=R),x=2*T,O=w=C=x,k=k||0,R=R||0,f.scrollSista){case"header":C=A,w=V?A:0;break;case"header-tabs":L=V?k:0,C=V?A+k:A;break;case"tabs-subheader":O=0,L=V?T-A:R,U=V?R:0;break;case"tabs":O=0,C=V?k:0;break;case"subheader":O=0,w=0;break;case"header-subheader":w=V?A:0;break;case"subheader-header":L=R,U=V?R:0,w=V?A:0;break;default:L=V?T-A:R,U=V?R:0}}function S(a,n){var r=Math.max(0,1-a/A);g&&(d(g,a,n),e.forEach(g.children,function(e){e.style.opacity=r,u&&(e.style[t.CSS.TRANSFORM]="scale("+r+","+r+")")})),y&&d(y,a,n)}function p(e,t){var a,n,r=c[0].style,o=e>L?e-L:0;M&&(n=e>_?e-_:0,d(M,Math.min(C,n),t)),I&&(a=Math.min(w,e>U?e-U:0),F&&(a=-a,r.bottom=Math.max(0,k-e)+"px"),d(I,a,t)),S(Math.min(O,o),t),r.top=Math.max(0,T-e)+"px"}function m(e,a){t.requestAnimationFrame(function(){p(e,a)})}var N,v,$,y,g,A,T,M,R,I,k,x,O,w,C,H=!0,q=a[0].body,D=f.delegateHandle?o.$getByHandle(f.delegateHandle):o,E=D.getScrollView(),V=!1,F=!1,L=0,U=0,_=0;r.$on("scroll.refreshComplete",function(){b()}),r.$parent.$on("$ionicView.beforeLeave",function(){H=!0,p(0),g=null,y=null}),r.$parent.$on("$ionicView.beforeEnter",function(){E&&E.scrollTo(0,0)}),r.$parent.$on("$ionicView.afterEnter",function(){b(),n(function(){h(),H=!1},20,!1)}),c.bind("scroll",function(e){if(!H){e=e.originalEvent||e;var t=0,a=e.detail.scrollTop;N=a>=0?Math.min(x,Math.max(0,N+a-$)):0,E.getScrollMax().top-a<=T&&(N=0,t=s),$=a,v!==N&&(v=N,m(N,t))}})}}}])}(angular,ionic); \ No newline at end of file
diff --git a/www/lib/ionic-scroll-sista/karma.conf.js b/www/lib/ionic-scroll-sista/karma.conf.js
new file mode 100644
index 00000000..625b7758
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/karma.conf.js
@@ -0,0 +1,32 @@
+module.exports = {
+ files: [
+ 'bower_components/angular/angular.js',
+ 'bower_components/angular-animate/angular-animate.js',
+ 'bower_components/angular-sanitize/angular-sanitize.js',
+ 'bower_components/angular-ui-router/release/angular-ui-router.js',
+ 'bower_components/ionic/release/js/ionic.js',
+ 'bower_components/ionic/release/js/ionic-angular.js',
+ 'bower_components/angular-mocks/angular-mocks.js',
+ 'js/ionic.scroll.sista.js'
+ ],
+
+ frameworks: ['jasmine'],
+ reporters: ['progress'],
+ port: 9876,
+ colors: true,
+ // possible values: 'OFF', 'ERROR', 'WARN', 'INFO', 'DEBUG'
+ logLevel: 'INFO',
+ autoWatch: true,
+ captureTimeout: 60000,
+ singleRun: false,
+
+ // Start these browsers, currently available:
+ // - Chrome
+ // - ChromeCanary
+ // - Firefox
+ // - Opera (has to be installed with `npm install karma-opera-launcher`)
+ // - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`)
+ // - PhantomJS
+ // - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)
+ browsers: ['PhantomJS']
+}; \ No newline at end of file
diff --git a/www/lib/ionic-scroll-sista/resources/android/icon/drawable-hdpi-icon.png b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-hdpi-icon.png
new file mode 100644
index 00000000..b9100934
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-hdpi-icon.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/icon/drawable-ldpi-icon.png b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-ldpi-icon.png
new file mode 100644
index 00000000..16cd5dba
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-ldpi-icon.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/icon/drawable-mdpi-icon.png b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-mdpi-icon.png
new file mode 100644
index 00000000..64a6cbc5
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-mdpi-icon.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/icon/drawable-xhdpi-icon.png b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-xhdpi-icon.png
new file mode 100644
index 00000000..1605f695
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-xhdpi-icon.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/icon/drawable-xxhdpi-icon.png b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-xxhdpi-icon.png
new file mode 100644
index 00000000..56fb29e6
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-xxhdpi-icon.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/icon/drawable-xxxhdpi-icon.png b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-xxxhdpi-icon.png
new file mode 100644
index 00000000..e4a91525
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/icon/drawable-xxxhdpi-icon.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-hdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-hdpi-screen.png
new file mode 100644
index 00000000..66b12fea
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-hdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-ldpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-ldpi-screen.png
new file mode 100644
index 00000000..7dceec7b
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-ldpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-mdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-mdpi-screen.png
new file mode 100644
index 00000000..0dc2ba75
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-mdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xhdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xhdpi-screen.png
new file mode 100644
index 00000000..39ae00c3
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xhdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xxhdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xxhdpi-screen.png
new file mode 100644
index 00000000..3f591b1e
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xxhdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xxxhdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xxxhdpi-screen.png
new file mode 100644
index 00000000..253e6f18
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-land-xxxhdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-hdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-hdpi-screen.png
new file mode 100644
index 00000000..e0dbb62f
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-hdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-ldpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-ldpi-screen.png
new file mode 100644
index 00000000..8e93c2d6
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-ldpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-mdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-mdpi-screen.png
new file mode 100644
index 00000000..0aaad62b
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-mdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xhdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xhdpi-screen.png
new file mode 100644
index 00000000..64c27f8a
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xhdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xxhdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xxhdpi-screen.png
new file mode 100644
index 00000000..f605e6a3
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xxhdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xxxhdpi-screen.png b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xxxhdpi-screen.png
new file mode 100644
index 00000000..2b993cff
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/android/splash/drawable-port-xxxhdpi-screen.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/icon.png b/www/lib/ionic-scroll-sista/resources/icon.png
new file mode 100644
index 00000000..bee77667
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/icon.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-40.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-40.png
new file mode 100644
index 00000000..76cc53c3
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-40.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-40@2x.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-40@2x.png
new file mode 100644
index 00000000..64b49069
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-40@2x.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-50.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-50.png
new file mode 100644
index 00000000..8bd51dfd
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-50.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-50@2x.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-50@2x.png
new file mode 100644
index 00000000..2676f8f6
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-50@2x.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-60.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-60.png
new file mode 100644
index 00000000..11f39124
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-60.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-60@2x.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-60@2x.png
new file mode 100644
index 00000000..b5210482
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-60@2x.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-60@3x.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-60@3x.png
new file mode 100644
index 00000000..dbc83030
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-60@3x.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-72.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-72.png
new file mode 100644
index 00000000..4e5a8276
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-72.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-72@2x.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-72@2x.png
new file mode 100644
index 00000000..56fb29e6
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-72@2x.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-76.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-76.png
new file mode 100644
index 00000000..e66a90ed
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-76.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-76@2x.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-76@2x.png
new file mode 100644
index 00000000..3f5c942f
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-76@2x.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-small.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-small.png
new file mode 100644
index 00000000..de3146dc
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-small.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-small@2x.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-small@2x.png
new file mode 100644
index 00000000..916a02ec
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-small@2x.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon-small@3x.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-small@3x.png
new file mode 100644
index 00000000..0efa99d8
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon-small@3x.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon.png
new file mode 100644
index 00000000..89f8c00f
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/icon/icon@2x.png b/www/lib/ionic-scroll-sista/resources/ios/icon/icon@2x.png
new file mode 100644
index 00000000..a6687a10
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/icon/icon@2x.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default-568h@2x~iphone.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-568h@2x~iphone.png
new file mode 100644
index 00000000..d2128a63
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-568h@2x~iphone.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default-667h.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-667h.png
new file mode 100644
index 00000000..fc23e64c
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-667h.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default-736h.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-736h.png
new file mode 100644
index 00000000..71b16ca4
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-736h.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape-736h.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape-736h.png
new file mode 100644
index 00000000..aaff74ad
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape-736h.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape@2x~ipad.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape@2x~ipad.png
new file mode 100644
index 00000000..19770a2c
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape@2x~ipad.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape~ipad.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape~ipad.png
new file mode 100644
index 00000000..6fe89255
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Landscape~ipad.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Portrait@2x~ipad.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Portrait@2x~ipad.png
new file mode 100644
index 00000000..3d06d86d
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Portrait@2x~ipad.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Portrait~ipad.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Portrait~ipad.png
new file mode 100644
index 00000000..53ad4c4c
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default-Portrait~ipad.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default@2x~iphone.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default@2x~iphone.png
new file mode 100644
index 00000000..6a133168
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default@2x~iphone.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/ios/splash/Default~iphone.png b/www/lib/ionic-scroll-sista/resources/ios/splash/Default~iphone.png
new file mode 100644
index 00000000..0aaad62b
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/ios/splash/Default~iphone.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/resources/splash.png b/www/lib/ionic-scroll-sista/resources/splash.png
new file mode 100644
index 00000000..cbddba06
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/resources/splash.png
Binary files differ
diff --git a/www/lib/ionic-scroll-sista/scss/ionic.scroll.sista.scss b/www/lib/ionic-scroll-sista/scss/ionic.scroll.sista.scss
new file mode 100644
index 00000000..5c203370
--- /dev/null
+++ b/www/lib/ionic-scroll-sista/scss/ionic.scroll.sista.scss
@@ -0,0 +1,16 @@
+//Scroll Sista
+
+//places subheader underneath top tabs. Don't forget to import ionic scss before this file!
+.tabs-top .bar-subheader {
+ top: $bar-height + $tabs-height;
+}
+.platform-ios.platform-cordova {
+ // iOS has a status bar which sits on top of the header.
+ // Bump down everything to make room for it. However, if
+ // if its in Cordova, and set to fullscreen, then disregard the bump.
+ &:not(.fullscreen) {
+ .tabs-top .bar-subheader {
+ top: $bar-height + $tabs-height + $ios-statusbar-height;
+ }
+ }
+} \ No newline at end of file