/** * @license AngularJS v1.0.1 * (c) 2010-2012 Google, Inc. http://angularjs.org * License: MIT */ (function(window, angular, undefined) { 'use strict'; var directive = {}; directive.dropdownToggle = ['$document', '$location', '$window', function ($document, $location, $window) { var openElement = null, close; return { restrict: 'C', link: function(scope, element, attrs) { scope.$watch(function(){return $location.path();}, function() { close && close(); }); element.parent().bind('click', function(event) { close && close(); }); element.bind('click', function(event) { event.preventDefault(); event.stopPropagation(); var iWasOpen = false; if (openElement) { iWasOpen = openElement === element; close(); } if (!iWasOpen){ element.parent().addClass('open'); openElement = element; close = function (event) { event && event.preventDefault(); event && event.stopPropagation(); $document.unbind('click', close); element.parent().removeClass('open'); close = null; openElement = null; } $document.bind('click', close); } }); } }; }]; directive.tabbable = function() { return { restrict: 'C', compile: function(element) { var navTabs = angular.element('
'), tabContent = angular.element(''); tabContent.append(element.contents()); element.append(navTabs).append(tabContent); }, controller: ['$scope', '$element', function($scope, $element) { var navTabs = $element.contents().eq(0), ngModel = $element.controller('ngModel') || {}, tabs = [], selectedTab; ngModel.$render = function() { var $viewValue = this.$viewValue; if (selectedTab ? (selectedTab.value != $viewValue) : $viewValue) { if(selectedTab) { selectedTab.paneElement.removeClass('active'); selectedTab.tabElement.removeClass('active'); selectedTab = null; } if($viewValue) { for(var i = 0, ii = tabs.length; i < ii; i++) { if ($viewValue == tabs[i].value) { selectedTab = tabs[i]; break; } } if (selectedTab) { selectedTab.paneElement.addClass('active'); selectedTab.tabElement.addClass('active'); } } } }; this.addPane = function(element, attr) { var li = angular.element('