You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							167 lines
						
					
					
						
							5.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							167 lines
						
					
					
						
							5.1 KiB
						
					
					
				| function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | |
| 
 | |
| function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } | |
| 
 | |
| /** | |
|  * -------------------------------------------------------------------------- | |
|  * Bootstrap (v4.0.0): button.js | |
|  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
|  * -------------------------------------------------------------------------- | |
|  */ | |
| var Button = function ($) { | |
|   /** | |
|    * ------------------------------------------------------------------------ | |
|    * Constants | |
|    * ------------------------------------------------------------------------ | |
|    */ | |
|   var NAME = 'button'; | |
|   var VERSION = '4.0.0'; | |
|   var DATA_KEY = 'bs.button'; | |
|   var EVENT_KEY = "." + DATA_KEY; | |
|   var DATA_API_KEY = '.data-api'; | |
|   var JQUERY_NO_CONFLICT = $.fn[NAME]; | |
|   var ClassName = { | |
|     ACTIVE: 'active', | |
|     BUTTON: 'btn', | |
|     FOCUS: 'focus' | |
|   }; | |
|   var Selector = { | |
|     DATA_TOGGLE_CARROT: '[data-toggle^="button"]', | |
|     DATA_TOGGLE: '[data-toggle="buttons"]', | |
|     INPUT: 'input', | |
|     ACTIVE: '.active', | |
|     BUTTON: '.btn' | |
|   }; | |
|   var Event = { | |
|     CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY, | |
|     FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY) | |
|     /** | |
|      * ------------------------------------------------------------------------ | |
|      * Class Definition | |
|      * ------------------------------------------------------------------------ | |
|      */ | |
| 
 | |
|   }; | |
| 
 | |
|   var Button = | |
|   /*#__PURE__*/ | |
|   function () { | |
|     function Button(element) { | |
|       this._element = element; | |
|     } // Getters | |
|  | |
| 
 | |
|     var _proto = Button.prototype; | |
| 
 | |
|     // Public | |
|     _proto.toggle = function toggle() { | |
|       var triggerChangeEvent = true; | |
|       var addAriaPressed = true; | |
|       var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0]; | |
| 
 | |
|       if (rootElement) { | |
|         var input = $(this._element).find(Selector.INPUT)[0]; | |
| 
 | |
|         if (input) { | |
|           if (input.type === 'radio') { | |
|             if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) { | |
|               triggerChangeEvent = false; | |
|             } else { | |
|               var activeElement = $(rootElement).find(Selector.ACTIVE)[0]; | |
| 
 | |
|               if (activeElement) { | |
|                 $(activeElement).removeClass(ClassName.ACTIVE); | |
|               } | |
|             } | |
|           } | |
| 
 | |
|           if (triggerChangeEvent) { | |
|             if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) { | |
|               return; | |
|             } | |
| 
 | |
|             input.checked = !$(this._element).hasClass(ClassName.ACTIVE); | |
|             $(input).trigger('change'); | |
|           } | |
| 
 | |
|           input.focus(); | |
|           addAriaPressed = false; | |
|         } | |
|       } | |
| 
 | |
|       if (addAriaPressed) { | |
|         this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE)); | |
|       } | |
| 
 | |
|       if (triggerChangeEvent) { | |
|         $(this._element).toggleClass(ClassName.ACTIVE); | |
|       } | |
|     }; | |
| 
 | |
|     _proto.dispose = function dispose() { | |
|       $.removeData(this._element, DATA_KEY); | |
|       this._element = null; | |
|     }; // Static | |
|  | |
| 
 | |
|     Button._jQueryInterface = function _jQueryInterface(config) { | |
|       return this.each(function () { | |
|         var data = $(this).data(DATA_KEY); | |
| 
 | |
|         if (!data) { | |
|           data = new Button(this); | |
|           $(this).data(DATA_KEY, data); | |
|         } | |
| 
 | |
|         if (config === 'toggle') { | |
|           data[config](); | |
|         } | |
|       }); | |
|     }; | |
| 
 | |
|     _createClass(Button, null, [{ | |
|       key: "VERSION", | |
|       get: function get() { | |
|         return VERSION; | |
|       } | |
|     }]); | |
| 
 | |
|     return Button; | |
|   }(); | |
|   /** | |
|    * ------------------------------------------------------------------------ | |
|    * Data Api implementation | |
|    * ------------------------------------------------------------------------ | |
|    */ | |
| 
 | |
| 
 | |
|   $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { | |
|     event.preventDefault(); | |
|     var button = event.target; | |
| 
 | |
|     if (!$(button).hasClass(ClassName.BUTTON)) { | |
|       button = $(button).closest(Selector.BUTTON); | |
|     } | |
| 
 | |
|     Button._jQueryInterface.call($(button), 'toggle'); | |
|   }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { | |
|     var button = $(event.target).closest(Selector.BUTTON)[0]; | |
|     $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)); | |
|   }); | |
|   /** | |
|    * ------------------------------------------------------------------------ | |
|    * jQuery | |
|    * ------------------------------------------------------------------------ | |
|    */ | |
| 
 | |
|   $.fn[NAME] = Button._jQueryInterface; | |
|   $.fn[NAME].Constructor = Button; | |
| 
 | |
|   $.fn[NAME].noConflict = function () { | |
|     $.fn[NAME] = JQUERY_NO_CONFLICT; | |
|     return Button._jQueryInterface; | |
|   }; | |
| 
 | |
|   return Button; | |
| }($); | |
| //# sourceMappingURL=button.js.map
 |