]> git.ipfire.org Git - ipfire.org.git/blame - src/scss/bootstrap-4.0.0-alpha.6/js/dist/alert.js
Introduce autotools
[ipfire.org.git] / src / scss / bootstrap-4.0.0-alpha.6 / js / dist / alert.js
CommitLineData
91e44d91
S
1var _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; }; }();
2
3function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
5/**
6 * --------------------------------------------------------------------------
7 * Bootstrap (v4.0.0-alpha.6): alert.js
8 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
9 * --------------------------------------------------------------------------
10 */
11
12var Alert = function ($) {
13
14 /**
15 * ------------------------------------------------------------------------
16 * Constants
17 * ------------------------------------------------------------------------
18 */
19
20 var NAME = 'alert';
21 var VERSION = '4.0.0-alpha.6';
22 var DATA_KEY = 'bs.alert';
23 var EVENT_KEY = '.' + DATA_KEY;
24 var DATA_API_KEY = '.data-api';
25 var JQUERY_NO_CONFLICT = $.fn[NAME];
26 var TRANSITION_DURATION = 150;
27
28 var Selector = {
29 DISMISS: '[data-dismiss="alert"]'
30 };
31
32 var Event = {
33 CLOSE: 'close' + EVENT_KEY,
34 CLOSED: 'closed' + EVENT_KEY,
35 CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
36 };
37
38 var ClassName = {
39 ALERT: 'alert',
40 FADE: 'fade',
41 SHOW: 'show'
42 };
43
44 /**
45 * ------------------------------------------------------------------------
46 * Class Definition
47 * ------------------------------------------------------------------------
48 */
49
50 var Alert = function () {
51 function Alert(element) {
52 _classCallCheck(this, Alert);
53
54 this._element = element;
55 }
56
57 // getters
58
59 // public
60
61 Alert.prototype.close = function close(element) {
62 element = element || this._element;
63
64 var rootElement = this._getRootElement(element);
65 var customEvent = this._triggerCloseEvent(rootElement);
66
67 if (customEvent.isDefaultPrevented()) {
68 return;
69 }
70
71 this._removeElement(rootElement);
72 };
73
74 Alert.prototype.dispose = function dispose() {
75 $.removeData(this._element, DATA_KEY);
76 this._element = null;
77 };
78
79 // private
80
81 Alert.prototype._getRootElement = function _getRootElement(element) {
82 var selector = Util.getSelectorFromElement(element);
83 var parent = false;
84
85 if (selector) {
86 parent = $(selector)[0];
87 }
88
89 if (!parent) {
90 parent = $(element).closest('.' + ClassName.ALERT)[0];
91 }
92
93 return parent;
94 };
95
96 Alert.prototype._triggerCloseEvent = function _triggerCloseEvent(element) {
97 var closeEvent = $.Event(Event.CLOSE);
98
99 $(element).trigger(closeEvent);
100 return closeEvent;
101 };
102
103 Alert.prototype._removeElement = function _removeElement(element) {
104 var _this = this;
105
106 $(element).removeClass(ClassName.SHOW);
107
108 if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
109 this._destroyElement(element);
110 return;
111 }
112
113 $(element).one(Util.TRANSITION_END, function (event) {
114 return _this._destroyElement(element, event);
115 }).emulateTransitionEnd(TRANSITION_DURATION);
116 };
117
118 Alert.prototype._destroyElement = function _destroyElement(element) {
119 $(element).detach().trigger(Event.CLOSED).remove();
120 };
121
122 // static
123
124 Alert._jQueryInterface = function _jQueryInterface(config) {
125 return this.each(function () {
126 var $element = $(this);
127 var data = $element.data(DATA_KEY);
128
129 if (!data) {
130 data = new Alert(this);
131 $element.data(DATA_KEY, data);
132 }
133
134 if (config === 'close') {
135 data[config](this);
136 }
137 });
138 };
139
140 Alert._handleDismiss = function _handleDismiss(alertInstance) {
141 return function (event) {
142 if (event) {
143 event.preventDefault();
144 }
145
146 alertInstance.close(this);
147 };
148 };
149
150 _createClass(Alert, null, [{
151 key: 'VERSION',
152 get: function get() {
153 return VERSION;
154 }
155 }]);
156
157 return Alert;
158 }();
159
160 /**
161 * ------------------------------------------------------------------------
162 * Data Api implementation
163 * ------------------------------------------------------------------------
164 */
165
166 $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
167
168 /**
169 * ------------------------------------------------------------------------
170 * jQuery
171 * ------------------------------------------------------------------------
172 */
173
174 $.fn[NAME] = Alert._jQueryInterface;
175 $.fn[NAME].Constructor = Alert;
176 $.fn[NAME].noConflict = function () {
177 $.fn[NAME] = JQUERY_NO_CONFLICT;
178 return Alert._jQueryInterface;
179 };
180
181 return Alert;
182}(jQuery);
183//# sourceMappingURL=alert.js.map