From 8364fb57a9ac1b211c09ff564fea6ad0dea94e61 Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 10 Dec 2014 21:13:23 -0700 Subject: [PATCH] feat(gestures): add built in gesture system, remove HammerJS --- .travis.yml | 4 +- README.md | 2 - bower.json | 3 +- config/karma.conf.js | 2 +- config/test-utils.js | 45 +- docs/app/js/app.js | 1 - docs/config/template/demo-index.template.html | 3 +- docs/config/template/index.template.html | 2 +- docs/gulpfile.js | 3 +- src/components/bottomSheet/bottomSheet.js | 113 +--- src/components/button/button.spec.js | 5 +- src/components/checkbox/checkbox.js | 8 +- src/components/checkbox/checkbox.spec.js | 1 - src/components/content/content.js | 31 +- src/components/dialog/dialog.js | 4 +- src/components/dialog/dialog.spec.js | 2 - .../radioButton/radioButton.spec.js | 1 - src/components/sidenav/sidenav.spec.js | 4 +- src/components/slider/slider.js | 237 ++++---- src/components/slider/slider.scss | 2 +- src/components/slider/slider.spec.js | 59 +- src/components/sticky/sticky.js | 2 +- src/components/sticky/sticky.spec.js | 7 +- src/components/swipe/swipe.js | 188 +----- .../switch/demoBasicUsage/index.html | 2 +- src/components/switch/switch.js | 56 +- src/components/switch/switch.spec.js | 62 -- src/components/tabs/js/inkBarDirective.js | 2 +- src/components/tabs/js/paginationDirective.js | 2 +- src/components/tabs/js/tabItemController.js | 41 +- src/components/tabs/js/tabItemDirective.js | 11 - src/components/tabs/tabs.spec.js | 20 +- src/components/toast/toast.js | 14 +- src/components/toolbar/toolbar.js | 2 +- src/components/toolbar/toolbar.spec.js | 13 +- src/components/tooltip/tooltip.js | 2 +- src/components/tooltip/tooltip.spec.js | 14 +- src/core/core.js | 70 +-- src/core/services/gesture/gesture.js | 375 ++++++++++++ src/core/services/gesture/gesture.spec.js | 570 ++++++++++++++++++ src/core/services/ripple/ripple.js | 95 +-- src/core/util/util.js | 102 +--- 42 files changed, 1358 insertions(+), 824 deletions(-) create mode 100644 src/core/services/gesture/gesture.js create mode 100644 src/core/services/gesture/gesture.spec.js diff --git a/.travis.yml b/.travis.yml index 915479e0b76..c317b8eb96c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,13 +10,15 @@ branches: - master before_script: + - export DISPLAY=:99.0 # firefox virtual screen + - sh -e /etc/init.d/xvfb start # firefox virtual screen - npm install -g bower - bower install - git config --global user.email "ngmaterial@googlegroups.com" - git config --global user.name "ngMaterial Bot" script: - - gulp karma --browsers=PhantomJS + - gulp karma --browsers=Firefox - ./scripts/travis-build-init.sh --sha=$TRAVIS_COMMIT notifications: diff --git a/README.md b/README.md index 59822a54d47..2c56a027cc8 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,6 @@ when using online tools such as [CodePen](http://codepen.io/), [Plunkr](http://p - @@ -149,7 +148,6 @@ pull directly from the distribution GitHub - diff --git a/bower.json b/bower.json index 7b9aa5fb0d4..3a22955ec3b 100644 --- a/bower.json +++ b/bower.json @@ -5,8 +5,7 @@ "dependencies": { "angular": "1.3.x", "angular-animate": "1.3.x", - "angular-aria": "1.3.x", - "hammerjs": "~2.0.2" + "angular-aria": "1.3.x" }, "devDependencies": { "angular": "1.3.x", diff --git a/config/karma.conf.js b/config/karma.conf.js index bcf701fc7ac..be110ec5a89 100644 --- a/config/karma.conf.js +++ b/config/karma.conf.js @@ -35,7 +35,7 @@ module.exports = function(config) { 'bower_components/angular-animate/angular-animate.js', 'bower_components/angular-aria/angular-aria.js', 'bower_components/angular-mocks/angular-mocks.js', - 'bower_components/hammerjs/hammer.js' + 'config/test-utils.js' ].concat(testSrc), port: 9876, diff --git a/config/test-utils.js b/config/test-utils.js index 3fe95db75c6..d2435f6efcd 100644 --- a/config/test-utils.js +++ b/config/test-utils.js @@ -21,26 +21,25 @@ var TestUtil = { }); }, +}; + +beforeEach(function() { + /** - * Create a fake version of $$rAF that does things asynchronously + * Create a fake version of $$rAF that does things synchronously */ - mockRaf: function() { - module('ng', function($provide) { - $provide.value('$$rAF', mockRaf); + module('ng', function($provide) { + $provide.value('$$rAF', mockRaf); - function mockRaf(cb) { - cb(); - } - mockRaf.debounce = function(cb) { - return function() { - cb.apply(this, arguments); - }; + function mockRaf(cb) { + cb(); + } + mockRaf.throttle = function(cb) { + return function() { + cb.apply(this, arguments); }; - }); - } -}; - -beforeEach(function() { + }; + }); module('material.core.theming', function($mdThemingProvider) { // Create a test version of every default palette, using a copy of the below palette. @@ -85,6 +84,20 @@ beforeEach(function() { (typeof this.actual) + (this.isNot ? ' not ' : '') + " to have type '" + type + "'."; }; return typeof this.actual == type; + }, + + toHaveFields: function(fields) { + this.message = function() { + return "Expected " + angular.mock.dump(this.actual) + (this.isNot ? ' not ' : ' ') + + "to have fields matching " + angular.mock.dump(fields); + }; + for (var key in fields) { + if (!(this.actual || {}).hasOwnProperty(key) || + !angular.equals(this.actual[key], fields[key])) { + return false; + } + } + return true; } }); diff --git a/docs/app/js/app.js b/docs/app/js/app.js index 99ec959e252..0868e57ab67 100644 --- a/docs/app/js/app.js +++ b/docs/app/js/app.js @@ -17,7 +17,6 @@ function(COMPONENTS, DEMOS, PAGES, $routeProvider, $mdThemingProvider) { } }); - $mdThemingProvider.theme('docs-dark', 'default') .dark(); diff --git a/docs/config/template/demo-index.template.html b/docs/config/template/demo-index.template.html index 1d1c3ac8a40..0eea212479d 100644 --- a/docs/config/template/demo-index.template.html +++ b/docs/config/template/demo-index.template.html @@ -8,7 +8,6 @@ - @@ -21,7 +20,7 @@ <% }); %> - + <%= index.contents %> diff --git a/docs/config/template/index.template.html b/docs/config/template/index.template.html index f90ae07461a..1c74a5f2f03 100644 --- a/docs/config/template/index.template.html +++ b/docs/config/template/index.template.html @@ -38,7 +38,7 @@

- +