/*! * AngularJS Material Design * https://github.com/angular/material * @license MIT * v1.1.18-master-97a1616 */ function MdTabsPaginationService(){return{decreasePageOffset:function(e,t){var a,n,s=e.canvas,r=o(e);for(a=0;a=t){n=r[a];break}return Math.max(0,n-s.clientWidth)},increasePageOffset:function(e,t){var a,n,s=e.canvas,r=d(e)-s.clientWidth,i=o(e);for(a=0;i.length,i[a]<=t+s.clientWidth;a++)n=i[a];return Math.min(r,n)},getTabOffsets:o,getTotalTabsWidth:d};function o(e){var t,a,n=0,s=[];for(t=0;t"),t.label?a.text(t.label):a.append(e.contents()),0===n.length)){var s=e.contents().detach();(n=angular.element("")).append(s)}return e.append(a),n.html()&&e.append(n),r},scope:{active:"=?mdActive",disabled:"=?ngDisabled",select:"&?mdOnSelect",deselect:"&?mdOnDeselect",tabClass:"@mdTabClass"}};function r(e,t,a,n){if(n){var s=n.getTabElementIndex(t),r=d(t,"md-tab-body").remove(),i=d(t,"md-tab-label").remove(),o=n.insertTab({scope:e,parent:e.$parent,index:s,element:t,template:r.html(),label:i.html()},s);e.select=e.select||angular.noop,e.deselect=e.deselect||angular.noop,e.$watch("active",function(e){e&&n.select(o.getIndex(),!0)}),e.$watch("disabled",function(){n.refreshIndex()}),e.$watch(function(){return n.getTabElementIndex(t)},function(e){o.index=e,n.updateTabOrder()}),e.$on("$destroy",function(){n.removeTab(o)})}}function d(e,t){for(var a=e[0].children,n=0,s=a.length;n md-tab-content"),e.tabs=e.paging.querySelectorAll("md-tab-item"),e.dummies=e.canvas.querySelectorAll("md-dummy-tab"),e}function D(){return m.centerTabs&&!m.shouldPaginate}function A(e){if(-1===e)return-1;var t,a,n=Math.max(m.tabs.length-e,e);for(t=0;t<=n;t++){if((a=m.tabs[e+t])&&!0!==a.scope.disabled)return a.getIndex();if((a=m.tabs[e-t])&&!0!==a.scope.disabled)return a.getIndex()}return e}function E(e,a,n){Object.defineProperty(m,e,{get:function(){return n},set:function(e){var t=n;n=e,a&&a(e,t)}})}function B(){m.maxTabWidth=q(),m.shouldPaginate=function(){var e;if(m.noPagination||!h)return!1;var t=l.prop("clientWidth");return angular.forEach(O().tabs,function(e){t-=e.offsetWidth}),e=t<0,b.msie&&(O().paging.style.width=e?"999999px":void 0),e}()}function F(e){var t=0;return angular.forEach(e,function(e){t+=Math.max(e.offsetWidth,e.getBoundingClientRect().width)}),Math.ceil(t)}function q(){var e=O().canvas.clientWidth;return Math.max(0,Math.min(e-1,264))}function R(e,t){var a,n=t?"focusIndex":"selectedIndex",s=m[n];for(a=s+e;m.tabs[a]&&m.tabs[a].scope.disabled;a+=e);a=(s+e+m.tabs.length)%m.tabs.length,m.tabs[a]&&(m[n]=a)}function H(){m.styleTabItemFocus="keyboard"===i.getLastInteractionType();var e=O().tabs[m.focusIndex];e&&e.focus()}function _(e){var t=O();if(angular.isNumber(e)||(e=m.focusIndex),t.tabs[e]&&!m.shouldCenterTabs){var a=t.tabs[e],n=a.offsetLeft,s=a.offsetWidth+n;if(0!==e)if(z()){var r=F(Array.prototype.slice.call(t.tabs,0,e)),i=F(Array.prototype.slice.call(t.tabs,0,e+1));m.offsetLeft=Math.min(m.offsetLeft,U(r)),m.offsetLeft=Math.max(m.offsetLeft,U(i-t.canvas.clientWidth))}else m.offsetLeft=Math.max(m.offsetLeft,U(s-t.canvas.clientWidth+32)),m.offsetLeft=Math.min(m.offsetLeft,U(n));else m.offsetLeft=0}}function N(){m.selectedIndex=A(m.selectedIndex),m.focusIndex=A(m.focusIndex)}function j(){if(!m.dynamicHeight)return l.css("height","");if(!m.tabs.length)return g.push(j);var e=O(),t=e.contents[m.selectedIndex],a=t?t.offsetHeight:0,n=e.wrapper.offsetHeight,s=a+n,r=l.prop("clientHeight");if(r!==s){"bottom"===l.attr("md-align-tabs")&&(r-=n,s-=n,void 0!==l.attr("md-border-bottom")&&++r),f=!0;var i={height:r+"px"},o={height:s+"px"};l.css(i),d(l,{from:i,to:o,easing:"cubic-bezier(0.35, 0, 0.25, 1)",duration:.5}).start().done(function(){l.css({transition:"none",height:""}),b.nextTick(function(){l.css("transition","")}),f=!1})}}function Y(e,t){if(!m.noInkBar){var a=O();if(a.tabs[m.selectedIndex])if(m.tabs.length)if(l.prop("offsetParent")){var n=m.selectedIndex,s=a.paging.offsetWidth,r=a.tabs[n],i=r.offsetLeft,o=s-i-r.offsetWidth;if(m.shouldCenterTabs){var d=F(a.tabs);dm.selectedIndex},shouldRender:function(){return!m.noDisconnect||this.isActive()},hasFocus:function(){return m.styleTabItemFocus&&m.hasFocus&&this.getIndex()===m.focusIndex},id:b.nextUid(),hasContent:!(!e.template||!e.template.trim())},s=angular.extend(n,e);angular.isDefined(t)?m.tabs.splice(t,0,s):m.tabs.push(s);return function(){g.forEach(function(e){b.nextTick(e)}),g=[]}(),function(){var e,t=!1;for(e=0;ee.canvas.clientWidth+m.offsetLeft},m.canPageBack=function(){return 0
'},controller:"MdTabsController",controllerAs:"$mdTabsCtrl",bindToController:!0}}function MdTabsDummyWrapper(d,c){return{require:"^?mdTabs",link:function(e,t,a,n){if(n){function s(){n.updatePagination(),n.updateInkBarStyles()}var r,i;if("MutationObserver"in c){(r=new MutationObserver(s)).observe(t[0],{childList:!0,subtree:!0,characterData:!0}),i=r.disconnect.bind(r)}else{var o=d.debounce(s,15,null,!1);t.on("DOMSubtreeModified",o),i=t.off.bind(t,"DOMSubtreeModified",o)}e.$on("$destroy",function(){i()})}}}}function MdTabsTemplate(i,o){return{restrict:"A",link:function(e,t,a,n){if(!n)return;var s=n.enableDisconnect?e.compileScope.$new():e.compileScope;return t.html(e.template),i(t.contents())(s),o.nextTick(function(){e.$watch("connected",function(e){!1===e?n.enableDisconnect&&o.disconnectScope(s):r()}),e.$on("$destroy",r)});function r(){n.enableDisconnect&&o.reconnectScope(s)}},scope:{template:"=mdTabsTemplate",connected:"=?mdConnectedIf",compileScope:"=mdScope"},require:"^?mdTabs"}}goog.provide("ngmaterial.components.tabs"),goog.require("ngmaterial.components.icon"),goog.require("ngmaterial.core"),angular.module("material.components.tabs",["material.core","material.components.icon"]),angular.module("material.components.tabs").service("MdTabsPaginationService",MdTabsPaginationService),angular.module("material.components.tabs").directive("mdTab",MdTab),angular.module("material.components.tabs").directive("mdTabItem",MdTabItem),angular.module("material.components.tabs").directive("mdTabLabel",MdTabLabel),MdTabScroll.$inject=["$parse"],angular.module("material.components.tabs").directive("mdTabScroll",MdTabScroll),MdTabsController.$inject=["$scope","$element","$window","$mdConstant","$mdTabInkRipple","$mdUtil","$animateCss","$attrs","$compile","$mdTheming","$mdInteraction","$timeout","MdTabsPaginationService"],angular.module("material.components.tabs").controller("MdTabsController",MdTabsController),MdTabs.$inject=["$$mdSvgRegistry"],angular.module("material.components.tabs").directive("mdTabs",MdTabs),MdTabsDummyWrapper.$inject=["$mdUtil","$window"],angular.module("material.components.tabs").directive("mdTabsDummyWrapper",MdTabsDummyWrapper),MdTabsTemplate.$inject=["$compile","$mdUtil"],angular.module("material.components.tabs").directive("mdTabsTemplate",MdTabsTemplate),ngmaterial.components.tabs=angular.module("material.components.tabs");