mirror of https://github.com/twbs/bootstrap.git
				
				
				
			
		
			
				
	
	
		
			186 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| /*!
 | |
|   * Bootstrap button.js v5.0.0-beta2 (https://getbootstrap.com/)
 | |
|   * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 | |
|   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 | |
|   */
 | |
| (function (global, factory) {
 | |
|   typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
 | |
|   typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :
 | |
|   (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler, global.Base));
 | |
| }(this, (function (Data, EventHandler, BaseComponent) { 'use strict';
 | |
| 
 | |
|   function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
 | |
| 
 | |
|   var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
 | |
|   var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
 | |
|   var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
 | |
| 
 | |
|   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;
 | |
|   }
 | |
| 
 | |
|   function _inheritsLoose(subClass, superClass) {
 | |
|     subClass.prototype = Object.create(superClass.prototype);
 | |
|     subClass.prototype.constructor = subClass;
 | |
| 
 | |
|     _setPrototypeOf(subClass, superClass);
 | |
|   }
 | |
| 
 | |
|   function _setPrototypeOf(o, p) {
 | |
|     _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
 | |
|       o.__proto__ = p;
 | |
|       return o;
 | |
|     };
 | |
| 
 | |
|     return _setPrototypeOf(o, p);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * --------------------------------------------------------------------------
 | |
|    * Bootstrap (v5.0.0-beta2): util/index.js
 | |
|    * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 | |
|    * --------------------------------------------------------------------------
 | |
|    */
 | |
| 
 | |
|   var getjQuery = function getjQuery() {
 | |
|     var _window = window,
 | |
|         jQuery = _window.jQuery;
 | |
| 
 | |
|     if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
 | |
|       return jQuery;
 | |
|     }
 | |
| 
 | |
|     return null;
 | |
|   };
 | |
| 
 | |
|   var onDOMContentLoaded = function onDOMContentLoaded(callback) {
 | |
|     if (document.readyState === 'loading') {
 | |
|       document.addEventListener('DOMContentLoaded', callback);
 | |
|     } else {
 | |
|       callback();
 | |
|     }
 | |
|   };
 | |
| 
 | |
|   document.documentElement.dir === 'rtl';
 | |
| 
 | |
|   var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
 | |
|     onDOMContentLoaded(function () {
 | |
|       var $ = getjQuery();
 | |
|       /* istanbul ignore if */
 | |
| 
 | |
|       if ($) {
 | |
|         var JQUERY_NO_CONFLICT = $.fn[name];
 | |
|         $.fn[name] = plugin.jQueryInterface;
 | |
|         $.fn[name].Constructor = plugin;
 | |
| 
 | |
|         $.fn[name].noConflict = function () {
 | |
|           $.fn[name] = JQUERY_NO_CONFLICT;
 | |
|           return plugin.jQueryInterface;
 | |
|         };
 | |
|       }
 | |
|     });
 | |
|   };
 | |
| 
 | |
|   /**
 | |
|    * ------------------------------------------------------------------------
 | |
|    * Constants
 | |
|    * ------------------------------------------------------------------------
 | |
|    */
 | |
| 
 | |
|   var NAME = 'button';
 | |
|   var DATA_KEY = 'bs.button';
 | |
|   var EVENT_KEY = "." + DATA_KEY;
 | |
|   var DATA_API_KEY = '.data-api';
 | |
|   var CLASS_NAME_ACTIVE = 'active';
 | |
|   var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
 | |
|   var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
 | |
|   /**
 | |
|    * ------------------------------------------------------------------------
 | |
|    * Class Definition
 | |
|    * ------------------------------------------------------------------------
 | |
|    */
 | |
| 
 | |
|   var Button = /*#__PURE__*/function (_BaseComponent) {
 | |
|     _inheritsLoose(Button, _BaseComponent);
 | |
| 
 | |
|     function Button() {
 | |
|       return _BaseComponent.apply(this, arguments) || this;
 | |
|     }
 | |
| 
 | |
|     var _proto = Button.prototype;
 | |
| 
 | |
|     // Public
 | |
|     _proto.toggle = function toggle() {
 | |
|       // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
 | |
|       this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
 | |
|     } // Static
 | |
|     ;
 | |
| 
 | |
|     Button.jQueryInterface = function jQueryInterface(config) {
 | |
|       return this.each(function () {
 | |
|         var data = Data__default['default'].getData(this, DATA_KEY);
 | |
| 
 | |
|         if (!data) {
 | |
|           data = new Button(this);
 | |
|         }
 | |
| 
 | |
|         if (config === 'toggle') {
 | |
|           data[config]();
 | |
|         }
 | |
|       });
 | |
|     };
 | |
| 
 | |
|     _createClass(Button, null, [{
 | |
|       key: "DATA_KEY",
 | |
|       get: // Getters
 | |
|       function get() {
 | |
|         return DATA_KEY;
 | |
|       }
 | |
|     }]);
 | |
| 
 | |
|     return Button;
 | |
|   }(BaseComponent__default['default']);
 | |
|   /**
 | |
|    * ------------------------------------------------------------------------
 | |
|    * Data Api implementation
 | |
|    * ------------------------------------------------------------------------
 | |
|    */
 | |
| 
 | |
| 
 | |
|   EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
 | |
|     event.preventDefault();
 | |
|     var button = event.target.closest(SELECTOR_DATA_TOGGLE);
 | |
|     var data = Data__default['default'].getData(button, DATA_KEY);
 | |
| 
 | |
|     if (!data) {
 | |
|       data = new Button(button);
 | |
|     }
 | |
| 
 | |
|     data.toggle();
 | |
|   });
 | |
|   /**
 | |
|    * ------------------------------------------------------------------------
 | |
|    * jQuery
 | |
|    * ------------------------------------------------------------------------
 | |
|    * add .Button to jQuery only if jQuery is present
 | |
|    */
 | |
| 
 | |
|   defineJQueryPlugin(NAME, Button);
 | |
| 
 | |
|   return Button;
 | |
| 
 | |
| })));
 | |
| //# sourceMappingURL=button.js.map
 |