summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/bower_components/angular-material/modules/closure/toolbar/toolbar.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/angular-material/modules/closure/toolbar/toolbar.js')
-rw-r--r--ecomp-portal-FE/client/bower_components/angular-material/modules/closure/toolbar/toolbar.js169
1 files changed, 169 insertions, 0 deletions
diff --git a/ecomp-portal-FE/client/bower_components/angular-material/modules/closure/toolbar/toolbar.js b/ecomp-portal-FE/client/bower_components/angular-material/modules/closure/toolbar/toolbar.js
new file mode 100644
index 00000000..e28550eb
--- /dev/null
+++ b/ecomp-portal-FE/client/bower_components/angular-material/modules/closure/toolbar/toolbar.js
@@ -0,0 +1,169 @@
+/*!
+ * Angular Material Design
+ * https://github.com/angular/material
+ * @license MIT
+ * v0.9.8
+ */
+goog.provide('ng.material.components.toolbar');
+goog.require('ng.material.components.content');
+goog.require('ng.material.core');
+/**
+ * @ngdoc module
+ * @name material.components.toolbar
+ */
+angular.module('material.components.toolbar', [
+ 'material.core',
+ 'material.components.content'
+])
+ .directive('mdToolbar', mdToolbarDirective);
+
+/**
+ * @ngdoc directive
+ * @name mdToolbar
+ * @module material.components.toolbar
+ * @restrict E
+ * @description
+ * `md-toolbar` is used to place a toolbar in your app.
+ *
+ * Toolbars are usually used above a content area to display the title of the
+ * current page, and show relevant action buttons for that page.
+ *
+ * You can change the height of the toolbar by adding either the
+ * `md-medium-tall` or `md-tall` class to the toolbar.
+ *
+ * @usage
+ * <hljs lang="html">
+ * <div layout="column" layout-fill>
+ * <md-toolbar>
+ *
+ * <div class="md-toolbar-tools">
+ * <span>My App's Title</span>
+ *
+ * <!-- fill up the space between left and right area -->
+ * <span flex></span>
+ *
+ * <md-button>
+ * Right Bar Button
+ * </md-button>
+ * </div>
+ *
+ * </md-toolbar>
+ * <md-content>
+ * Hello!
+ * </md-content>
+ * </div>
+ * </hljs>
+ *
+ * @param {boolean=} md-scroll-shrink Whether the header should shrink away as
+ * the user scrolls down, and reveal itself as the user scrolls up.
+ * Note: for scrollShrink to work, the toolbar must be a sibling of a
+ * `md-content` element, placed before it. See the scroll shrink demo.
+ *
+ *
+ * @param {number=} md-shrink-speed-factor How much to change the speed of the toolbar's
+ * shrinking by. For example, if 0.25 is given then the toolbar will shrink
+ * at one fourth the rate at which the user scrolls down. Default 0.5.
+ */
+function mdToolbarDirective($$rAF, $mdConstant, $mdUtil, $mdTheming, $animate, $timeout) {
+
+ return {
+ restrict: 'E',
+ controller: angular.noop,
+ link: function(scope, element, attr) {
+ $mdTheming(element);
+
+ if (angular.isDefined(attr.mdScrollShrink)) {
+ setupScrollShrink();
+ }
+
+ function setupScrollShrink() {
+ // Current "y" position of scroll
+ var y = 0;
+ // Store the last scroll top position
+ var prevScrollTop = 0;
+
+ var shrinkSpeedFactor = attr.mdShrinkSpeedFactor || 0.5;
+
+ var toolbarHeight;
+ var contentElement;
+
+ var debouncedContentScroll = $$rAF.throttle(onContentScroll);
+ var debouncedUpdateHeight = $mdUtil.debounce(updateToolbarHeight, 5 * 1000);
+
+ // Wait for $mdContentLoaded event from mdContent directive.
+ // If the mdContent element is a sibling of our toolbar, hook it up
+ // to scroll events.
+ scope.$on('$mdContentLoaded', onMdContentLoad);
+
+ function onMdContentLoad($event, newContentEl) {
+ // Toolbar and content must be siblings
+ if (element.parent()[0] === newContentEl.parent()[0]) {
+ // unhook old content event listener if exists
+ if (contentElement) {
+ contentElement.off('scroll', debouncedContentScroll);
+ }
+
+ newContentEl.on('scroll', debouncedContentScroll);
+ newContentEl.attr('scroll-shrink', 'true');
+
+ contentElement = newContentEl;
+ $$rAF(updateToolbarHeight);
+ }
+ }
+
+ function updateToolbarHeight() {
+ toolbarHeight = element.prop('offsetHeight');
+ // Add a negative margin-top the size of the toolbar to the content el.
+ // The content will start transformed down the toolbarHeight amount,
+ // so everything looks normal.
+ //
+ // As the user scrolls down, the content will be transformed up slowly
+ // to put the content underneath where the toolbar was.
+ var margin = (-toolbarHeight * shrinkSpeedFactor) + 'px';
+ contentElement.css('margin-top', margin);
+ contentElement.css('margin-bottom', margin);
+
+ onContentScroll();
+ }
+
+ function onContentScroll(e) {
+ var scrollTop = e ? e.target.scrollTop : prevScrollTop;
+
+ debouncedUpdateHeight();
+
+ y = Math.min(
+ toolbarHeight / shrinkSpeedFactor,
+ Math.max(0, y + scrollTop - prevScrollTop)
+ );
+
+ element.css(
+ $mdConstant.CSS.TRANSFORM,
+ 'translate3d(0,' + (-y * shrinkSpeedFactor) + 'px,0)'
+ );
+ contentElement.css(
+ $mdConstant.CSS.TRANSFORM,
+ 'translate3d(0,' + ((toolbarHeight - y) * shrinkSpeedFactor) + 'px,0)'
+ );
+
+ prevScrollTop = scrollTop;
+
+ if (element.hasClass('md-whiteframe-z1')) {
+ if (!y) {
+ $timeout(function () { $animate.removeClass(element, 'md-whiteframe-z1'); });
+ }
+ } else {
+ if (y) {
+ $timeout(function () { $animate.addClass(element, 'md-whiteframe-z1'); });
+ }
+ }
+ }
+
+ }
+
+ }
+ };
+
+}
+mdToolbarDirective.$inject = ["$$rAF", "$mdConstant", "$mdUtil", "$mdTheming", "$animate", "$timeout"];
+
+ng.material.components.toolbar = angular.module("material.components.toolbar"); \ No newline at end of file