/*! * Angular Material Design * https://github.com/angular/material * @license MIT * v1.0.5-master-f171fd2 */functionGridListDirective(t,e,i,r){functionn(n,o,a,u){functionl(){for(vartine.MEDIA)r(t),r.getQuery(e.MEDIA[t]).addListener(G);returnr.watchResponsiveAttributes(["md-cols","md-row-height","md-gutter"],a,d)}functions(){u.layoutDelegate=angular.noop,T();for(vartine.MEDIA)r.getQuery(e.MEDIA[t]).removeListener(G)}functiond(t){null==t?u.invalidateLayout():r(t)&&u.invalidateLayout()}functionc(t){vare=p(),r={tileSpans:h(e),colCount:v(),rowMode:$(),rowHeight:w(),gutter:y()};if(t||!angular.equals(r,D)){vara=i(r.colCount,r.tileSpans,e).map(function(t,i){return{grid:{element:o,style:m(r.colCount,i,r.gutter,r.rowMode,r.rowHeight)},tiles:t.map(function(t,n){return{element:angular.element(e[n]),style:g(t.position,t.spans,r.colCount,i,r.gutter,r.rowMode,r.rowHeight)}})}}).reflow().performance();n.mdOnLayout({$event:{performance:a}}),D=r}}functionf(t){returnb+t+I}functiong(t,e,i,r,n,o,a){varu=1/i*100,l=(i-1)/i,s=C({share:u,gutterShare:l,gutter:n}),d={left:x({unit:s,offset:t.col,gutter:n}),width:M({unit:s,span:e.col,gutter:n}),paddingTop:"",marginTop:"",top:"",height:""};switch(o){case"fixed":d.top=x({unit:a,offset:t.row,gutter:n}),d.height=M({unit:a,span:e.row,gutter:n});break;case"ratio":varc=u/a,f=C({share:c,gutterShare:l,gutter:n});d.paddingTop=M({unit:f,span:e.row,gutter:n}),d.marginTop=x({unit:f,offset:t.row,gutter:n});break;case"fit":varg=(r-1)/r,c=1/r*100,f=C({share:c,gutterShare:g,gutter:n});d.top=x({unit:f,offset:t.row,gutter:n}),d.height=M({unit:f,span:e.row,gutter:n})}returnd}functionm(t,e,i,r,n){varo={};switch(r){case"fixed":o.height=M({unit:n,span:e,gutter:i}),o.paddingBottom="";break;case"ratio":vara=1===t?0:(t-1)/t,u=1/t*100,l=u*(1/n),s=C({share:l,gutterShare:a,gutter:i});o.height="",o.paddingBottom=M({unit:s,span:e,gutter:i});break;case"fit":}returno}functionp(){return[].filter.call(o.children(),function(t){return"MD-GRID-TILE"==t.tagName&&!t.$$mdDestroyed})}functionh(t){return[].map.call(t,function(t){vare=angular.element(t).controller("mdGridTile");return{row:parseInt(r.getResponsiveAttribute(e.$attrs,"md-rowspan"),10)||1,col:parseInt(r.getResponsiveAttribute(e.$attrs,"md-colspan"),10)||1}})}functionv(){vart=parseInt(r.getResponsiveAttribute(a,"md-cols"),10);if(isNaN(t))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";returnt}functiony(){returnL(r.getResponsiveAttribute(a,"md-gutter")||1)}functionw(){vart=r.getResponsiveAttribute(a,"md-row-height");if(!t)throw"md-grid-list: md-row-height attribute was not found";switch($()){case"fixed":returnL(t);case"ratio":vare=t.split(":");returnparseFloat(e[0])/parseFloat(e[1]);case"fit":return0}}function$(){vart=r.getResponsiveAttribute(a,"md-row-height");if(!t)throw"md-grid-list: md-row-height attribute was not found";return"fit"==t?"fit":-1!==t.indexOf(":")?"ratio":"fixed"}functionL(t){return/\D$/.test(t)?t:t+"px"}o.attr("role","list"),u.layoutDelegate=c;varG=angular.bind(u,u.invalidateLayout),T=l();n.$on("$destroy",s);varD,b=t.startSymbol(),I=t.endSymbol(),C=t(f("share")+"% - ("+f("gutter")+" * "+f("gutterShare")+")"),x=t("calc(("+f("unit")+" + "+f("gutter")+") * "+f("offset")+")"),M=t("calc(("+f("unit")+") * "+f("span")+" + ("+f("span")+" - 1) * "+f("gutter")+")")}return{restrict:"E",controller:GridListController,scope:{mdOnLayout:"&"},link:n}}functionGridListController(t){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=t.nextTick,this.layoutDelegate=angular.noop}functionGridLayoutFactory(t){functione(e,i){varo,a,u,l,s,d;returnl=t.time(function(){a=r(e,i)}),o={layoutInfo:function(){returna},map:function(e){returns=t.time(function(){vart=o.layoutInfo();u=e(t.positioning,t.rowCount)}),o},reflow:function(e){returnd=t.time(function(){vart=e||n;t(u.grid,u.tiles)}),o},performance:function(){return{tileCount:i.length,layoutTime:l,mapTime:s,reflowTime:d,totalTime:l+s+d}}}}functioni(t,e){t.element.css(t.style),e.forEach(function(t){t.element.css(t.style)})}functionr(t,e){functioni(e,i){if(e.col>t)throw"md-grid-list: Tile at position "+i+" has a colspan ("+e.col+") that exceeds the column count ("+t+")";for(vara=0,d=0;d-a<e.col;)u>=t?r():(a=s.indexOf(0,u),-1!==a&&-1!==(d=o(a+1))?u=d+1:(a=d=0,r()));returnn(a,e.col,e.row),u=a+e.col,{col:a,row:l}}functionr(){u=0,l++,n(0,t,-1)}functionn(t,e,i){for(varr=t;t+e>r;r++)s[r]=Math.max(s[r]+i,0)}functiono(t){vare;for(e=t;e<s.length;e++)if(0!==s[e])returne;returne===s.length?e:void0}functiona(){for(vare=[],i=0;t>i;i++)e.push(0);returne}varu=0,l=0,s=a();return{positioning:e.map(function(t,e){return{spans:t,position:i(t,e)}}),rowCount:l+Math.max.apply(Math,s)}}varn=i;returne.animateWith=function(t){n=angular.isFunction(t)?t:i},e}functionGridTileDirective(t){functione(e,i,r,n){i.attr("role","listitem");varo=t.watchResponsiveAttributes(["md-colspan","md-rowspan"],r,angular.bind(n,n.invalidateLayout));n.invalidateTiles(),e.$on("$destroy",function(){i[0].$$mdDestroyed=!0,o(),n.invalidateLayout()}),angular.isDefined(e.$parent.$index)&&e.$watch(function(){returne.$parent.$index},function(t,e){t!==e&&n.invalidateTiles()})}return{restrict:"E",require:"^mdGridList",template:"<figure ng-transclude></figure>",transclude:!0,scope:{},controller:["$attrs",function(t){this.$attrs=t}],link:e}}functionGridTileCaptionDirective(){return{template:"<figcaption ng-transclude></figcaption>",transclude:!0}}goog.provide("ng.material.components.gridList"),goog.require("ng.material.core"),angular.module("material.components.gridList",["material.core"]).directive("mdGridList",GridListDirective).directive("mdGridTile",GridTileDirective).directive("mdGridTileFooter",GridTileCaptionDirective).directive("mdGridTileHeader",GridTileCaptionDirective).factory("$mdGridLayout",GridLayoutFactory),GridListDirective.$inject=["$interpolate","$mdConstant","$mdGridLayout","$mdMedia"],GridListController.$inject=["$mdUtil"],GridListController.prototype={invalidateTiles:function(){this.tilesInvalidated=!0,this.invalidateLayout()},invalidateLayout:function(){this.layoutInvalidated||(this.layoutInvalidated=!0,this.$timeout_(angular.bind(this,this.layout)))},layout:function(){try{this.layoutDelegate(this.tilesInvalidated)}finally{this.layoutInvalidated=!1,this.tilesInvalidated=!1}}},GridLayoutFactory.$inject=["$mdUtil"],GridTileDirective.$inject=["$mdMedia"],ng.material.components.gridList=angular.module("material.components.gridList");