| /*! |
| * Angular Material Design |
| * https://github.com/angular/material |
| * @license MIT |
| * v1.0.1 |
| */ |
| (function( window, angular, undefined ){ |
| "use strict"; |
| |
| /** |
| * @ngdoc module |
| * @name material.components.content |
| * |
| * @description |
| * Scrollable content |
| */ |
| angular.module('material.components.content', [ |
| 'material.core' |
| ]) |
| .directive('mdContent', mdContentDirective); |
| |
| /** |
| * @ngdoc directive |
| * @name mdContent |
| * @module material.components.content |
| * |
| * @restrict E |
| * |
| * @description |
| * The `<md-content>` directive is a container element useful for scrollable content |
| * |
| * @usage |
| * |
| * - Add the `[layout-padding]` attribute to make the content padded. |
| * |
| * <hljs lang="html"> |
| * <md-content layout-padding> |
| * Lorem ipsum dolor sit amet, ne quod novum mei. |
| * </md-content> |
| * </hljs> |
| * |
| */ |
| |
| function mdContentDirective($mdTheming) { |
| return { |
| restrict: 'E', |
| controller: ['$scope', '$element', ContentController], |
| link: function(scope, element, attr) { |
| var node = element[0]; |
| |
| $mdTheming(element); |
| scope.$broadcast('$mdContentLoaded', element); |
| |
| iosScrollFix(element[0]); |
| } |
| }; |
| |
| function ContentController($scope, $element) { |
| this.$scope = $scope; |
| this.$element = $element; |
| } |
| } |
| mdContentDirective.$inject = ["$mdTheming"]; |
| |
| function iosScrollFix(node) { |
| // IOS FIX: |
| // If we scroll where there is no more room for the webview to scroll, |
| // by default the webview itself will scroll up and down, this looks really |
| // bad. So if we are scrolling to the very top or bottom, add/subtract one |
| angular.element(node).on('$md.pressdown', function(ev) { |
| // Only touch events |
| if (ev.pointer.type !== 't') return; |
| // Don't let a child content's touchstart ruin it for us. |
| if (ev.$materialScrollFixed) return; |
| ev.$materialScrollFixed = true; |
| |
| if (node.scrollTop === 0) { |
| node.scrollTop = 1; |
| } else if (node.scrollHeight === node.scrollTop + node.offsetHeight) { |
| node.scrollTop -= 1; |
| } |
| }); |
| } |
| |
| })(window, window.angular); |