mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
1 line
9.4 KiB
Plaintext
1 line
9.4 KiB
Plaintext
{"version":3,"file":"button.js","sources":["../src/button.js"],"sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.3'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(Selector.INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n"],"names":["Button","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ClassName","ACTIVE","BUTTON","FOCUS","Selector","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","Event","CLICK_DATA_API","FOCUS_BLUR_DATA_API","element","_element","toggle","triggerChangeEvent","addAriaPressed","rootElement","closest","input","querySelector","type","checked","classList","contains","activeElement","removeClass","hasAttribute","trigger","focus","setAttribute","toggleClass","dispose","removeData","_jQueryInterface","config","each","data","document","on","event","preventDefault","button","target","hasClass","call","test","Constructor","noConflict"],"mappings":"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"} |