PageSourceSearch

https://www.jynarque.com/sites/g/files/qhldwo12166/themes/site/the…/js/base/bootstrap/bootstrap.collapse.js

js jynarque.com collected 2026-10-08 00:24:43 UTC 13,093 bytes, 375 lines download raw bytes

1"use strict";
2
3function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
5(function (global, factory) {
6  (typeof exports === "undefined" ? "undefined" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) : typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.jQuery, global.Util));
7})(void 0, function ($, Util) {
8  'use strict';
9
10  function _interopDefaultLegacy(e) {
11    return e && _typeof(e) === 'object' && 'default' in e ? e : {
12      'default': e
13    };
14  }
15
16  var $__default = _interopDefaultLegacy($);
17
18  var Util__default = _interopDefaultLegacy(Util);
19
20  function _extends() {
21    _extends = Object.assign || function (target) {
22      for (var i = 1; i < arguments.length; i++) {
23        var source = arguments[i];
24
25        for (var key in source) {
26          if (Object.prototype.hasOwnProperty.call(source, key)) {
27            target[key] = source[key];
28          }
29        }
30      }
31
32      return target;
33    };
34
35    return _extends.apply(this, arguments);
36  }
37
38  function _defineProperties(target, props) {
39    for (var i = 0; i < props.length; i++) {
40      var descriptor = props[i];
41      descriptor.enumerable = descriptor.enumerable || false;
42      descriptor.configurable = true;
43      if ("value" in descriptor) descriptor.writable = true;
44      Object.defineProperty(target, descriptor.key, descriptor);
45    }
46  }
47
48  function _createClass(Constructor, protoProps, staticProps) {
49    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
50    if (staticProps) _defineProperties(Constructor, staticProps);
51    return Constructor;
52  }
53
54  var NAME = 'collapse';
55  var VERSION = '4.5.3';
56  var DATA_KEY = 'bs.collapse';
57  var EVENT_KEY = "." + DATA_KEY;
58  var DATA_API_KEY = '.data-api';
59  var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
60  var Default = {
61    toggle: true,
62    parent: ''
63  };
64  var DefaultType = {
65    toggle: 'boolean',
66    parent: '(string|element)'
67  };
68  var EVENT_SHOW = "show" + EVENT_KEY;
69  var EVENT_SHOWN = "shown" + EVENT_KEY;
70  var EVENT_HIDE = "hide" + EVENT_KEY;
71  var EVENT_HIDDEN = "hidden" + EVENT_KEY;
72  var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
73  var CLASS_NAME_SHOW = 'show';
74  var CLASS_NAME_COLLAPSE = 'collapse';
75  var CLASS_NAME_COLLAPSING = 'collapsing';
76  var CLASS_NAME_COLLAPSED = 'collapsed';
77  var DIMENSION_WIDTH = 'width';
78  var DIMENSION_HEIGHT = 'height';
79  var SELECTOR_ACTIVES = '.show, .collapsing';
80  var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
81
82  var Collapse = function () {
83    function Collapse(element, config) {
84      this._isTransitioning = false;
85      this._element = element;
86      this._config = this._getConfig(config);
87      this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
88      var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
89
90      for (var i = 0, len = toggleList.length; i < len; i++) {
91        var elem = toggleList[i];
92        var selector = Util__default['default'].getSelectorFromElement(elem);
93        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
94          return foundElem === element;
95        });
96
97        if (selector !== null && filterElement.length > 0) {
98          this._selector = selector;
99
100          this._triggerArray.push(elem);
101        }
102      }
103
104      this._parent = this._config.parent ? this._getParent() : null;
105
106      if (!this._config.parent) {
107        this._addAriaAndCollapsedClass(this._element, this._triggerArray);
108      }
109
110      if (this._config.toggle) {
111        this.toggle();
112      }
113    }
114
115    var _proto = Collapse.prototype;
116
vendor: 7,243 bytes, lines 117-317
117    _proto.toggle = function toggle() {
118      if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {
119        this.hide();
120      } else {
121        this.show();
122      }
123    };
124
125    _proto.show = function show() {
126      var _this = this;
127
128      if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {
129        return;
130      }
131
132      var actives;
133      var activesData;
134
135      if (this._parent) {
136        actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {
137          if (typeof _this._config.parent === 'string') {
138            return elem.getAttribute('data-parent') === _this._config.parent;
139          }
140
141          return elem.classList.contains(CLASS_NAME_COLLAPSE);
142        });
143
144        if (actives.length === 0) {
145          actives = null;
146        }
147      }
148
149      if (actives) {
150        activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY);
151
152        if (activesData && activesData._isTransitioning) {
153          return;
154        }
155      }
156
157      var startEvent = $__default['default'].Event(EVENT_SHOW);
158      $__default['default'](this._element).trigger(startEvent);
159
160      if (startEvent.isDefaultPrevented()) {
161        return;
162      }
163
164      if (actives) {
165        Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');
166
167        if (!activesData) {
168          $__default['default'](actives).data(DATA_KEY, null);
169        }
170      }
171
172      var dimension = this._getDimension();
173
174      $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
175      this._element.style[dimension] = 0;
176
177      if (this._triggerArray.length) {
178        $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);
179      }
180
181      this.setTransitioning(true);
182
183      var complete = function complete() {
184        $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
185        _this._element.style[dimension] = '';
186
187        _this.setTransitioning(false);
188
189        $__default['default'](_this._element).trigger(EVENT_SHOWN);
190      };
191
192      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
193      var scrollSize = "scroll" + capitalizedDimension;
194      var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);
195      $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
196      this._element.style[dimension] = this._element[scrollSize] + "px";
197    };
198
199    _proto.hide = function hide() {
200      var _this2 = this;
201
202      if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW)) {
203        return;
204      }
205
206      var startEvent = $__default['default'].Event(EVENT_HIDE);
207      $__default['default'](this._element).trigger(startEvent);
208
209      if (startEvent.isDefaultPrevented()) {
210        return;
211      }
212
213      var dimension = this._getDimension();
214
215      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
216      Util__default['default'].reflow(this._element);
217      $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
218      var triggerArrayLength = this._triggerArray.length;
219
220      if (triggerArrayLength > 0) {
221        for (var i = 0; i < triggerArrayLength; i++) {
222          var trigger = this._triggerArray[i];
223          var selector = Util__default['default'].getSelectorFromElement(trigger);
224
225          if (selector !== null) {
226            var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));
227
228            if (!$elem.hasClass(CLASS_NAME_SHOW)) {
229              $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
230            }
231          }
232        }
233      }
234
235      this.setTransitioning(true);
236
237      var complete = function complete() {
238        _this2.setTransitioning(false);
239
240        $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);
241      };
242
243      this._element.style[dimension] = '';
244      var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);
245      $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
246    };
247
248    _proto.setTransitioning = function setTransitioning(isTransitioning) {
249      this._isTransitioning = isTransitioning;
250    };
251
252    _proto.dispose = function dispose() {
253      $__default['default'].removeData(this._element, DATA_KEY);
254      this._config = null;
255      this._parent = null;
256      this._element = null;
257      this._triggerArray = null;
258      this._isTransitioning = null;
259    };
260
261    _proto._getConfig = function _getConfig(config) {
262      config = _extends({}, Default, config);
263      config.toggle = Boolean(config.toggle);
264      Util__default['default'].typeCheckConfig(NAME, config, DefaultType);
265      return config;
266    };
267
268    _proto._getDimension = function _getDimension() {
269      var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);
270      return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
271    };
272
273    _proto._getParent = function _getParent() {
274      var _this3 = this;
275
276      var parent;
277
278      if (Util__default['default'].isElement(this._config.parent)) {
279        parent = this._config.parent;
280
281        if (typeof this._config.parent.jquery !== 'undefined') {
282          parent = this._config.parent[0];
283        }
284      } else {
285        parent = document.querySelector(this._config.parent);
286      }
287
288      var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
289      var children = [].slice.call(parent.querySelectorAll(selector));
290      $__default['default'](children).each(function (i, element) {
291        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
292      });
293      return parent;
294    };
295
296    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
297      var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW);
298
299      if (triggerArray.length) {
300        $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
301      }
302    };
303
304    Collapse._getTargetFromElement = function _getTargetFromElement(element) {
305      var selector = Util__default['default'].getSelectorFromElement(element);
306      return selector ? document.querySelector(selector) : null;
307    };
308
309    Collapse._jQueryInterface = function _jQueryInterface(config) {
310      return this.each(function () {
311        var $element = $__default['default'](this);
312        var data = $element.data(DATA_KEY);
313
314        var _config = _extends({}, Default, $element.data(), _typeof(config) === 'object' && config ? config : {});
315
316        if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
317          _config.toggle = false;
vendor: 1,563 bytes, lines 318-375
318        }
319
320        if (!data) {
321          data = new Collapse(this, _config);
322          $element.data(DATA_KEY, data);
323        }
324
325        if (typeof config === 'string') {
326          if (typeof data[config] === 'undefined') {
327            throw new TypeError("No method named \"" + config + "\"");
328          }
329
330          data[config]();
331        }
332      });
333    };
334
335    _createClass(Collapse, null, [{
336      key: "VERSION",
337      get: function get() {
338        return VERSION;
339      }
340    }, {
341      key: "Default",
342      get: function get() {
343        return Default;
344      }
345    }]);
346
347    return Collapse;
348  }();
349
350  $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
351    if (event.currentTarget.tagName === 'A') {
352      event.preventDefault();
353    }
354
355    var $trigger = $__default['default'](this);
356    var selector = Util__default['default'].getSelectorFromElement(this);
357    var selectors = [].slice.call(document.querySelectorAll(selector));
358    $__default['default'](selectors).each(function () {
359      var $target = $__default['default'](this);
360      var data = $target.data(DATA_KEY);
361      var config = data ? 'toggle' : $trigger.data();
362
363      Collapse._jQueryInterface.call($target, config);
364    });
365  });
366  $__default['default'].fn[NAME] = Collapse._jQueryInterface;
367  $__default['default'].fn[NAME].Constructor = Collapse;
368
369  $__default['default'].fn[NAME].noConflict = function () {
370    $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
371    return Collapse._jQueryInterface;
372  };
373
374  return Collapse;
375});

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.