PageSourceSearch

https://mercuna.com/wp-content/themes/soprano-theme/public/scripts/bootstrap/bs.collapse.js?ver=6.6.10

js mercuna.com collected 2026-10-07 06:08:19 UTC 11,273 bytes, 366 lines download raw bytes

1var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
2
3var _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; }; }();
4
5function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
7/**
8 * --------------------------------------------------------------------------
9 * Bootstrap (v4.0.0-beta): collapse.js
10 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
11 * --------------------------------------------------------------------------
12 */
13
14var Collapse = function ($) {
15
16  /**
17   * ------------------------------------------------------------------------
18   * Constants
19   * ------------------------------------------------------------------------
20   */
21
22  var NAME = 'collapse';
23  var VERSION = '4.0.0-beta';
24  var DATA_KEY = 'bs.collapse';
25  var EVENT_KEY = '.' + DATA_KEY;
26  var DATA_API_KEY = '.data-api';
27  var JQUERY_NO_CONFLICT = $.fn[NAME];
28  var TRANSITION_DURATION = 600;
29
30  var Default = {
31    toggle: true,
32    parent: ''
33  };
34
35  var DefaultType = {
36    toggle: 'boolean',
37    parent: 'string'
38  };
39
40  var Event = {
41    SHOW: 'show' + EVENT_KEY,
42    SHOWN: 'shown' + EVENT_KEY,
43    HIDE: 'hide' + EVENT_KEY,
44    HIDDEN: 'hidden' + EVENT_KEY,
45    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
46  };
47
48  var ClassName = {
49    SHOW: 'show',
50    COLLAPSE: 'collapse',
51    COLLAPSING: 'collapsing',
52    COLLAPSED: 'collapsed'
53  };
54
55  var Dimension = {
56    WIDTH: 'width',
57    HEIGHT: 'height'
58  };
59
60  var Selector = {
61    ACTIVES: '.show, .collapsing',
62    DATA_TOGGLE: '[data-toggle="collapse"]'
63
64    /**
65     * ------------------------------------------------------------------------
66     * Class Definition
67     * ------------------------------------------------------------------------
68     */
69
70  };
71  var Collapse = function () {
72    function Collapse(element, config) {
73      _classCallCheck(this, Collapse);
74
75      this._isTransitioning = false;
76      this._element = element;
77      this._config = this._getConfig(config);
78      this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
79      var tabToggles = $(Selector.DATA_TOGGLE);
80      for (var i = 0; i < tabToggles.length; i++) {
81        var elem = tabToggles[i];
82        var selector = Util.getSelectorFromElement(elem);
83        if (selector !== null && $(selector).filter(element).length > 0) {
84          this._triggerArray.push(elem);
85        }
86      }
87
88      this._parent = this._config.parent ? this._getParent() : null;
89
90      if (!this._config.parent) {
91        this._addAriaAndCollapsedClass(this._element, this._triggerArray);
92      }
93
94      if (this._config.toggle) {
95        this.toggle();
96      }
97    }
98
99    // getters
100
101    // public
102
103    Collapse.prototype.toggle = function toggle() {
104      if ($(this._element).hasClass(ClassName.SHOW)) {
105        this.hide();
106      } else {
107        this.show();
108      }
109    };
110
111    Collapse.prototype.show = function show() {
112      var _this = this;
113
114      if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
115        return;
116      }
117
118      var actives = void 0;
119      var activesData = void 0;
120
121      if (this._parent) {
122        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
123        if (!actives.length) {
124          actives = null;
125        }
126      }
127
128      if (actives) {
129        activesData = $(actives).data(DATA_KEY);
130        if (activesData && activesData._isTransitioning) {
131          return;
132        }
133      }
134
135      var startEvent = $.Event(Event.SHOW);
136      $(this._element).trigger(startEvent);
137      if (startEvent.isDefaultPrevented()) {
138        return;
139      }
140
141      if (actives) {
142        Collapse._jQueryInterface.call($(actives), 'hide');
143        if (!activesData) {
144          $(actives).data(DATA_KEY, null);
145        }
146      }
147
148      var dimension = this._getDimension();
149
150      $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
151
152      this._element.style[dimension] = 0;
153
154      if (this._triggerArray.length) {
155        $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
156      }
157
158      this.setTransitioning(true);
159
160      var complete = function complete() {
161        $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
162
163        _this._element.style[dimension] = '';
164
165        _this.setTransitioning(false);
166
167        $(_this._element).trigger(Event.SHOWN);
168      };
169
170      if (!Util.supportsTransitionEnd()) {
171        complete();
172        return;
173      }
174
175      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
176      var scrollSize = 'scroll' + capitalizedDimension;
177
178      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
179
180      this._element.style[dimension] = this._element[scrollSize] + 'px';
181    };
182
183    Collapse.prototype.hide = function hide() {
184      var _this2 = this;
185
186      if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
187        return;
188      }
189
190      var startEvent = $.Event(Event.HIDE);
191      $(this._element).trigger(startEvent);
192      if (startEvent.isDefaultPrevented()) {
193        return;
194      }
195
196      var dimension = this._getDimension();
197
198      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + 'px';
199
200      Util.reflow(this._element);
201
202      $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
203
204      if (this._triggerArray.length) {
205        for (var i = 0; i < this._triggerArray.length; i++) {
206          var trigger = this._triggerArray[i];
207          var selector = Util.getSelectorFromElement(trigger);
208          if (selector !== null) {
209            var $elem = $(selector);
210            if (!$elem.hasClass(ClassName.SHOW)) {
211              $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
212            }
213          }
214        }
215      }
216
217      this.setTransitioning(true);
218
219      var complete = function complete() {
220        _this2.setTransitioning(false);
221        $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
222      };
223
224      this._element.style[dimension] = '';
225
226      if (!Util.supportsTransitionEnd()) {
227        complete();
228        return;
229      }
230
231      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
232    };
233
234    Collapse.prototype.setTransitioning = function setTransitioning(isTransitioning) {
235      this._isTransitioning = isTransitioning;
236    };
237
238    Collapse.prototype.dispose = function dispose() {
239      $.removeData(this._element, DATA_KEY);
240
241      this._config = null;
242      this._parent = null;
243      this._element = null;
244      this._triggerArray = null;
245      this._isTransitioning = null;
246    };
247
248    // private
249
250    Collapse.prototype._getConfig = function _getConfig(config) {
251      config = $.extend({}, Default, config);
252      config.toggle = Boolean(config.toggle); // coerce string values
253      Util.typeCheckConfig(NAME, config, DefaultType);
254      return config;
255    };
256
257    Collapse.prototype._getDimension = function _getDimension() {
258      var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
259      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
260    };
261
262    Collapse.prototype._getParent = function _getParent() {
263      var _this3 = this;
264
265      var parent = $(this._config.parent)[0];
266      var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';
267
268      $(parent).find(selector).each(function (i, element) {
269        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
270      });
271
272      return parent;
273    };
274
275    Collapse.prototype._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
276      if (element) {
277        var isOpen = $(element).hasClass(ClassName.SHOW);
278
279        if (triggerArray.length) {
280          $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
281        }
282      }
283    };
284
285    // static
286
287    Collapse._getTargetFromElement = function _getTargetFromElement(element) {
288      var selector = Util.getSelectorFromElement(element);
289      return selector ? $(selector)[0] : null;
290    };
291
292    Collapse._jQueryInterface = function _jQueryInterface(config) {
293      return this.each(function () {
294        var $this = $(this);
295        var data = $this.data(DATA_KEY);
296        var _config = $.extend({}, Default, $this.data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
297
298        if (!data && _config.toggle && /show|hide/.test(config)) {
299          _config.toggle = false;
300        }
301
302        if (!data) {
303          data = new Collapse(this, _config);
304          $this.data(DATA_KEY, data);
305        }
306
307        if (typeof config === 'string') {
308          if (data[config] === undefined) {
309            throw new Error('No method named "' + config + '"');
310          }
311          data[config]();
312        }
313      });
314    };
315
316    _createClass(Collapse, null, [{
317      key: 'VERSION',
318      get: function get() {
319        return VERSION;
320      }
321    }, {
322      key: 'Default',
323      get: function get() {
324        return Default;
325      }
326    }]);
327
328    return Collapse;
329  }();
330
331  /**
332   * ------------------------------------------------------------------------
333   * Data Api implementation
334   * ------------------------------------------------------------------------
335   */
336
337  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
338    if (!/input|textarea/i.test(event.target.tagName)) {
339      event.preventDefault();
340    }
341
342    var $trigger = $(this);
343    var selector = Util.getSelectorFromElement(this);
344    $(selector).each(function () {
345      var $target = $(this);
346      var data = $target.data(DATA_KEY);
347      var config = data ? 'toggle' : $trigger.data();
348      Collapse._jQueryInterface.call($target, config);
349    });
350  });
351
352  /**
353   * ------------------------------------------------------------------------
354   * jQuery
355   * ------------------------------------------------------------------------
356   */
357
358  $.fn[NAME] = Collapse._jQueryInterface;
359  $.fn[NAME].Constructor = Collapse;
360  $.fn[NAME].noConflict = function () {
361    $.fn[NAME] = JQUERY_NO_CONFLICT;
362    return Collapse._jQueryInterface;
363  };
364
365  return Collapse;
366}(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.