collapse.min.js 3.5 KB

12345678910
  1. /**
  2. * angular-strap
  3. * @version v2.3.9 - 2016-06-10
  4. * @link http://mgcrea.github.io/angular-strap
  5. * @author Olivier Louvignes <olivier@mg-crea.com> (https://github.com/mgcrea)
  6. * @license MIT License, http://www.opensource.org/licenses/MIT
  7. */
  8. 'use strict';angular.module('mgcrea.ngStrap.collapse',[]).provider('$collapse',function(){var e=this.defaults={animation:'am-collapse',disallowToggle:!1,activeClass:'in',startCollapsed:!1,allowMultiple:!1},t=this.controller=function(t,a,i){function s(e){for(var t=r.$targets.$active,a=0;a<t.length;a++)e<t[a]&&(t[a]=t[a]-1),t[a]===r.$targets.length&&(t[a]=r.$targets.length-1)}function n(e){var t=r.$targets.$active;return-1!==t.indexOf(e)}function l(e){var t=r.$targets.$active.indexOf(e);-1!==t&&r.$targets.$active.splice(t,1)}function o(e){r.$options.allowMultiple||r.$targets.$active.splice(0,1),-1===r.$targets.$active.indexOf(e)&&r.$targets.$active.push(e)}var r=this;r.$options=angular.copy(e),angular.forEach(['animation','disallowToggle','activeClass','startCollapsed','allowMultiple'],function(e){angular.isDefined(i[e])&&(r.$options[e]=i[e])});var g=/^(false|0|)$/i;angular.forEach(['disallowToggle','startCollapsed','allowMultiple'],function(e){angular.isDefined(i[e])&&g.test(i[e])&&(r.$options[e]=!1)}),r.$toggles=[],r.$targets=[],r.$viewChangeListeners=[],r.$registerToggle=function(e){r.$toggles.push(e)},r.$registerTarget=function(e){r.$targets.push(e)},r.$unregisterToggle=function(e){var t=r.$toggles.indexOf(e);r.$toggles.splice(t,1)},r.$unregisterTarget=function(e){var t=r.$targets.indexOf(e);r.$targets.splice(t,1),r.$options.allowMultiple&&l(e),s(t),r.$viewChangeListeners.forEach(function(e){e()})},r.$targets.$active=r.$options.startCollapsed?[]:[0],r.$setActive=t.$setActive=function(e){angular.isArray(e)?r.$targets.$active=e:!r.$options.disallowToggle&&n(e)?l(e):o(e),r.$viewChangeListeners.forEach(function(e){e()})},r.$activeIndexes=function(){return r.$options.allowMultiple?r.$targets.$active:1===r.$targets.$active.length?r.$targets.$active[0]:-1}};this.$get=function(){var a={};return a.defaults=e,a.controller=t,a}}).directive('bsCollapse',['$window','$animate','$collapse',function(e,t,a){return{require:['?ngModel','bsCollapse'],controller:['$scope','$element','$attrs',a.controller],link:function(e,t,a,i){var s=i[0],n=i[1];s&&(n.$viewChangeListeners.push(function(){s.$setViewValue(n.$activeIndexes())}),s.$formatters.push(function(e){if(angular.isArray(e))n.$setActive(e);else{var t=n.$activeIndexes();angular.isArray(t)?-1===t.indexOf(1*e)&&n.$setActive(1*e):t!==1*e&&n.$setActive(1*e)}return e}))}}}]).directive('bsCollapseToggle',function(){return{require:['^?ngModel','^bsCollapse'],link:function(e,t,a,i){var s=i[1];t.attr('data-toggle','collapse'),s.$registerToggle(t),e.$on('$destroy',function(){s.$unregisterToggle(t)}),t.on('click',function(){if(!a.disabled){var i=a.bsCollapseToggle&&'bs-collapse-toggle'!==a.bsCollapseToggle?a.bsCollapseToggle:s.$toggles.indexOf(t);s.$setActive(1*i),e.$apply()}})}}}).directive('bsCollapseTarget',['$animate',function(e){return{require:['^?ngModel','^bsCollapse'],link:function(t,a,i,s){function n(){var t=l.$targets.indexOf(a),i=l.$activeIndexes(),s='removeClass';angular.isArray(i)?-1!==i.indexOf(t)&&(s='addClass'):t===i&&(s='addClass'),e[s](a,l.$options.activeClass)}var l=s[1];a.addClass('collapse'),l.$options.animation&&a.addClass(l.$options.animation),l.$registerTarget(a),t.$on('$destroy',function(){l.$unregisterTarget(a)}),l.$viewChangeListeners.push(function(){n()}),n()}}}]);
  9. //# sourceMappingURL=collapse.min.js.map