"use strict";app.factory("ToggleHelper",["$rootScope",function(e){return{events:{toggle:"clip-two.toggle",toggleByClass:"clip-two.toggleByClass",togglerLinked:"clip-two.linked",toggleableToggled:"clip-two.toggled"},commands:{alternate:"toggle",activate:"on",deactivate:"off"},toggle:function(t,l){null==l&&(l="toggle"),e.$emit(this.events.toggle,t,l)},toggleByClass:function(t,l){null==l&&(l="toggle"),e.$emit(this.events.toggleByClass,t,l)},notifyToggleState:function(t,l,a){e.$emit(this.events.toggleableToggled,l.id,a,l.exclusionGroup)},toggleStateChanged:function(e,t,l){this.updateElemClasses(e,t,l),this.notifyToggleState(e,t,l)},applyCommand:function(e,t){switch(e){case this.commands.activate:return!0;case this.commands.deactivate:return!1;case this.commands.alternate:return!t}},updateElemClasses:function(e,t,l){if(l){t.activeClass&&e.addClass(t.activeClass),t.inactiveClass&&e.removeClass(t.inactiveClass);var a=e.parent();t.parentActiveClass&&a.addClass(t.parentActiveClass),t.parentInactiveClass&&a.removeClass(t.parentInactiveClass)}else{t.inactiveClass&&e.addClass(t.inactiveClass),t.activeClass&&e.removeClass(t.activeClass);var a=e.parent();t.parentInactiveClass&&a.addClass(t.parentInactiveClass),t.parentActiveClass&&a.removeClass(t.parentActiveClass)}}}}]).run(["$rootScope","ToggleHelper",function(e,t){e.toggle=function(e,l){null==l&&(l="toggle"),t.toggle(e,l)},e.toggleByClass=function(e,l){null==l&&(l="toggle"),t.toggleByClass(e,l)}}]).directive("ctToggle",["$rootScope","ToggleHelper",function(e,t){return{restrict:"A",link:function(l,a,n){var s=n.ctToggle||t.commands.alternate,o=n.target,g=n.targetClass,i="true"===n.bubble||"1"===n.bubble||1===n.bubble||""===n.bubble||"bubble"===n.bubble;if(!o&&n.href&&(o=n.href.slice(1)),!o&&!g)throw"'target' or 'target-class' attribute required with 'ct-toggle'";a.on("click tap",function(e){var l=angular.element(e.target);if(!l.hasClass("disabled"))return null!=o&&t.toggle(o,s),null!=g&&t.toggleByClass(g,s),!!i||(e.preventDefault(),!1)});var r=e.$on(t.events.toggleableToggled,function(e,l,s){l===o&&t.updateElemClasses(a,n,s)});null!=o&&e.$emit(t.events.togglerLinked,o),l.$on("$destroy",r)}}}]).directive("toggleable",["$rootScope","ToggleHelper",function(e,t){return{restrict:"A",link:function(l,a,n){var s=!1;if(n.default){switch(n.default){case"active":s=!0;break;case"inactive":s=!1}t.toggleStateChanged(a,n,s)}var o=e.$on(t.events.toggle,function(e,l,o){var g;l===n.id&&(g=s,s=t.applyCommand(o,g),g!==s&&t.toggleStateChanged(a,n,s))}),g=e.$on(t.events.toggleByClass,function(e,l,o){var g;a.hasClass(l)&&(g=s,s=t.applyCommand(o,g),g!==s&&t.toggleStateChanged(a,n,s))}),i=e.$on(t.events.toggleableToggled,function(e,l,o,g){o&&n.id!==l&&n.exclusionGroup===g&&null!=n.exclusionGroup&&(s=!1,t.toggleStateChanged(a,n,s))}),r=e.$on(t.events.togglerLinked,function(e,l){n.id===l&&t.notifyToggleState(a,n,s)});l.$on("$destroy",function(){o(),g(),i(),r()})}}}]);