]>
git.ipfire.org Git - ipfire.org.git/blob - static/scss/bootstrap-4.0.0-alpha.6/js/dist/button.js
1 var _createClass = function () { 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
); } } return function (Constructor
, protoProps
, staticProps
) { if (protoProps
) defineProperties(Constructor
.prototype, protoProps
); if (staticProps
) defineProperties(Constructor
, staticProps
); return Constructor
; }; }();
3 function _classCallCheck(instance
, Constructor
) { if (!(instance
instanceof Constructor
)) { throw new TypeError("Cannot call a class as a function"); } }
6 * --------------------------------------------------------------------------
7 * Bootstrap (v4.0.0-alpha.6): button.js
8 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
9 * --------------------------------------------------------------------------
12 var Button = function ($) {
15 * ------------------------------------------------------------------------
17 * ------------------------------------------------------------------------
21 var VERSION
= '4.0.0-alpha.6';
22 var DATA_KEY
= 'bs.button';
23 var EVENT_KEY
= '.' + DATA_KEY
;
24 var DATA_API_KEY
= '.data-api';
25 var JQUERY_NO_CONFLICT
= $.fn
[NAME
];
34 DATA_TOGGLE_CARROT
: '[data-toggle^="button"]',
35 DATA_TOGGLE
: '[data-toggle="buttons"]',
42 CLICK_DATA_API
: 'click' + EVENT_KEY
+ DATA_API_KEY
,
43 FOCUS_BLUR_DATA_API
: 'focus' + EVENT_KEY
+ DATA_API_KEY
+ ' ' + ('blur' + EVENT_KEY
+ DATA_API_KEY
)
47 * ------------------------------------------------------------------------
49 * ------------------------------------------------------------------------
52 var Button = function () {
53 function Button(element
) {
54 _classCallCheck(this, Button
);
56 this._element
= element
;
63 Button
.prototype.toggle
= function toggle() {
64 var triggerChangeEvent
= true;
65 var rootElement
= $(this._element
).closest(Selector
.DATA_TOGGLE
)[0];
68 var input
= $(this._element
).find(Selector
.INPUT
)[0];
71 if (input
.type
=== 'radio') {
72 if (input
.checked
&& $(this._element
).hasClass(ClassName
.ACTIVE
)) {
73 triggerChangeEvent
= false;
75 var activeElement
= $(rootElement
).find(Selector
.ACTIVE
)[0];
78 $(activeElement
).removeClass(ClassName
.ACTIVE
);
83 if (triggerChangeEvent
) {
84 input
.checked
= !$(this._element
).hasClass(ClassName
.ACTIVE
);
85 $(input
).trigger('change');
92 this._element
.setAttribute('aria-pressed', !$(this._element
).hasClass(ClassName
.ACTIVE
));
94 if (triggerChangeEvent
) {
95 $(this._element
).toggleClass(ClassName
.ACTIVE
);
99 Button
.prototype.dispose
= function dispose() {
100 $.removeData(this._element
, DATA_KEY
);
101 this._element
= null;
106 Button
._jQueryInterface
= function _jQueryInterface(config
) {
107 return this.each(function () {
108 var data
= $(this).data(DATA_KEY
);
111 data
= new Button(this);
112 $(this).data(DATA_KEY
, data
);
115 if (config
=== 'toggle') {
121 _createClass(Button
, null, [{
123 get: function get() {
132 * ------------------------------------------------------------------------
133 * Data Api implementation
134 * ------------------------------------------------------------------------
137 $(document
).on(Event
.CLICK_DATA_API
, Selector
.DATA_TOGGLE_CARROT
, function (event
) {
138 event
.preventDefault();
140 var button
= event
.target
;
142 if (!$(button
).hasClass(ClassName
.BUTTON
)) {
143 button
= $(button
).closest(Selector
.BUTTON
);
146 Button
._jQueryInterface
.call($(button
), 'toggle');
147 }).on(Event
.FOCUS_BLUR_DATA_API
, Selector
.DATA_TOGGLE_CARROT
, function (event
) {
148 var button
= $(event
.target
).closest(Selector
.BUTTON
)[0];
149 $(button
).toggleClass(ClassName
.FOCUS
, /^focus(in)?$/.test(event
.type
));
153 * ------------------------------------------------------------------------
155 * ------------------------------------------------------------------------
158 $.fn
[NAME
] = Button
._jQueryInterface
;
159 $.fn
[NAME
].Constructor
= Button
;
160 $.fn
[NAME
].noConflict = function () {
161 $.fn
[NAME
] = JQUERY_NO_CONFLICT
;
162 return Button
._jQueryInterface
;
167 //# sourceMappingURL=button.js.map