mirror of
https://github.com/gwenhael-le-moine/ledgerrb.git
synced 2025-01-29 08:34:30 +01:00
89 lines
2.7 KiB
JavaScript
89 lines
2.7 KiB
JavaScript
/*!
|
|
* Angular Material Design
|
|
* https://github.com/angular/material
|
|
* @license MIT
|
|
* v0.7.1
|
|
*/
|
|
goog.provide('ng.material.components.subheader');
|
|
goog.require('ng.material.components.sticky');
|
|
goog.require('ng.material.core');
|
|
(function() {
|
|
'use strict';
|
|
|
|
/**
|
|
* @ngdoc module
|
|
* @name material.components.subheader
|
|
* @description
|
|
* SubHeader module
|
|
*
|
|
* Subheaders are special list tiles that delineate distinct sections of a
|
|
* list or grid list and are typically related to the current filtering or
|
|
* sorting criteria. Subheader tiles are either displayed inline with tiles or
|
|
* can be associated with content, for example, in an adjacent column.
|
|
*
|
|
* Upon scrolling, subheaders remain pinned to the top of the screen and remain
|
|
* pinned until pushed on or off screen by the next subheader. @see [Material
|
|
* Design Specifications](https://www.google.com/design/spec/components/subheaders.html)
|
|
*
|
|
* > To improve the visual grouping of content, use the system color for your subheaders.
|
|
*
|
|
*/
|
|
angular.module('material.components.subheader', [
|
|
'material.core',
|
|
'material.components.sticky'
|
|
])
|
|
.directive('mdSubheader', MdSubheaderDirective);
|
|
|
|
/**
|
|
* @ngdoc directive
|
|
* @name mdSubheader
|
|
* @module material.components.subheader
|
|
*
|
|
* @restrict E
|
|
*
|
|
* @description
|
|
* The `<md-subheader>` directive is a subheader for a section
|
|
*
|
|
* @usage
|
|
* <hljs lang="html">
|
|
* <md-subheader>Online Friends</md-subheader>
|
|
* </hljs>
|
|
*/
|
|
|
|
function MdSubheaderDirective($mdSticky, $compile, $mdTheming) {
|
|
return {
|
|
restrict: 'E',
|
|
replace: true,
|
|
transclude: true,
|
|
template:
|
|
'<h2 class="md-subheader">' +
|
|
'<span class="md-subheader-content"></span>' +
|
|
'</h2>',
|
|
compile: function(element, attr, transclude) {
|
|
var outerHTML = element[0].outerHTML;
|
|
return function postLink(scope, element, attr) {
|
|
$mdTheming(element);
|
|
function getContent(el) {
|
|
return angular.element(el[0].querySelector('.md-subheader-content'));
|
|
}
|
|
|
|
// Transclude the user-given contents of the subheader
|
|
// the conventional way.
|
|
transclude(scope, function(clone) {
|
|
getContent(element).append(clone);
|
|
});
|
|
|
|
// Create another clone, that uses the outer and inner contents
|
|
// of the element, that will be 'stickied' as the user scrolls.
|
|
transclude(scope, function(clone) {
|
|
var stickyClone = $compile(angular.element(outerHTML))(scope);
|
|
$mdTheming(stickyClone);
|
|
getContent(stickyClone).append(clone);
|
|
$mdSticky(scope, element, stickyClone);
|
|
});
|
|
};
|
|
}
|
|
};
|
|
}
|
|
MdSubheaderDirective.$inject = ["$mdSticky", "$compile", "$mdTheming"];
|
|
})();
|