PageSourceSearch

https://www.transperth.wa.gov.au/Portals/0/Skins/Transperth/inc/js/vendor/bootstrap-tab.js?cdv=2

js transperth.wa.gov.au collected 2026-10-01 10:41:54 UTC 10,532 bytes, 263 lines download raw bytes

vendor: 7,153 bytes, lines 1-164
1/*!
2  * Bootstrap tab.js v4.6.0 (https://getbootstrap.com/)
3  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5  */
6(function (global, factory) {
7    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
8        typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
9            (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.jQuery, global.Util));
10}(this, (function ($, Util) {
11    'use strict';
12
13    function _interopDefaultLegacy(e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
15    var $__default = /*#__PURE__*/_interopDefaultLegacy($);
16    var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
17
18    function _defineProperties(target, props) {
19        for (var i = 0; i < props.length; i++) {
20            var descriptor = props[i];
21            descriptor.enumerable = descriptor.enumerable || false;
22            descriptor.configurable = true;
23            if ("value" in descriptor) descriptor.writable = true;
24            Object.defineProperty(target, descriptor.key, descriptor);
25        }
26    }
27
28    function _createClass(Constructor, protoProps, staticProps) {
29        if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30        if (staticProps) _defineProperties(Constructor, staticProps);
31        return Constructor;
32    }
33
34    /**
35     * ------------------------------------------------------------------------
36     * Constants
37     * ------------------------------------------------------------------------
38     */
39
40    var NAME = 'tab';
41    var VERSION = '4.6.0';
42    var DATA_KEY = 'bs.tab';
43    var EVENT_KEY = "." + DATA_KEY;
44    var DATA_API_KEY = '.data-api';
45    var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
46    var EVENT_HIDE = "hide" + EVENT_KEY;
47    var EVENT_HIDDEN = "hidden" + EVENT_KEY;
48    var EVENT_SHOW = "show" + EVENT_KEY;
49    var EVENT_SHOWN = "shown" + EVENT_KEY;
50    var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
51    var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
52    var CLASS_NAME_ACTIVE = 'active';
53    var CLASS_NAME_DISABLED = 'disabled';
54    var CLASS_NAME_FADE = 'fade';
55    var CLASS_NAME_SHOW = 'show';
56    var SELECTOR_DROPDOWN = '.dropdown';
57    var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
58    var SELECTOR_ACTIVE = '.active';
59    var SELECTOR_ACTIVE_UL = '> li > .active';
60    var SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
61    var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
62    var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';
63    /**
64     * ------------------------------------------------------------------------
65     * Class Definition
66     * ------------------------------------------------------------------------
67     */
68
69    var Tab = /*#__PURE__*/function () {
70        function Tab(element) {
71            this._element = element;
72        } // Getters
73
74
75        var _proto = Tab.prototype;
76
77        // Public
78        _proto.show = function show() {
79            var _this = this;
80
81            if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {
82                return;
83            }
84
85            var target;
86            var previous;
87            var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP)[0];
88            var selector = Util__default['default'].getSelectorFromElement(this._element);
89
90            if (listElement) {
91                var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
92                previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector));
93                previous = previous[previous.length - 1];
94            }
95
96            var hideEvent = $__default['default'].Event(EVENT_HIDE, {
97                relatedTarget: this._element
98            });
99            var showEvent = $__default['default'].Event(EVENT_SHOW, {
100                relatedTarget: previous
101            });
102
103            if (previous) {
104                $__default['default'](previous).trigger(hideEvent);
105            }
106
107            $__default['default'](this._element).trigger(showEvent);
108
109            if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
110                return;
111            }
112
113            if (selector) {
114                target = document.querySelector(selector);
115            }
116
117            this._activate(this._element, listElement);
118
119            var complete = function complete() {
120                var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN, {
121                    relatedTarget: _this._element
122                });
123                var shownEvent = $__default['default'].Event(EVENT_SHOWN, {
124                    relatedTarget: previous
125                });
126                $__default['default'](previous).trigger(hiddenEvent);
127                $__default['default'](_this._element).trigger(shownEvent);
128            };
129
130            if (target) {
131                this._activate(target, target.parentNode, complete);
132            } else {
133                complete();
134            }
135        };
136
137        _proto.dispose = function dispose() {
138            $__default['default'].removeData(this._element, DATA_KEY);
139            this._element = null;
140        } // Private
141            ;
142
143        _proto._activate = function _activate(element, container, callback) {
144            var _this2 = this;
145
146            var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE);
147            var active = activeElements[0];
148            var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE);
149
150            var complete = function complete() {
151                return _this2._transitionComplete(element, active, callback);
152            };
153
154            if (active && isTransitioning) {
155                var transitionDuration = Util__default['default'].getTransitionDurationFromElement(active);
156                $__default['default'](active).removeClass(CLASS_NAME_SHOW).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
157            } else {
158                complete();
159            }
160        };
161
162        _proto._transitionComplete = function _transitionComplete(element, active, callback) {
163            if (active) {
164                $__default['default'](active).removeClass(CLASS_NAME_ACTIVE);
vendor: 3,379 bytes, lines 165-263
165                var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];
166
167                if (dropdownChild) {
168                    $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE);
169                }
170
171                if (active.getAttribute('role') === 'tab') {
172                    active.setAttribute('aria-selected', false);
173                }
174            }
175
176            $__default['default'](element).addClass(CLASS_NAME_ACTIVE);
177
178            if (element.getAttribute('role') === 'tab') {
179                element.setAttribute('aria-selected', true);
180            }
181
182            Util__default['default'].reflow(element);
183
184            if (element.classList.contains(CLASS_NAME_FADE)) {
185                element.classList.add(CLASS_NAME_SHOW);
186            }
187
188            if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {
189                var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN)[0];
190
191                if (dropdownElement) {
192                    var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE));
193                    $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE);
194                }
195
196                element.setAttribute('aria-expanded', true);
197            }
198
199            if (callback) {
200                callback();
201            }
202        } // Static
203            ;
204
205        Tab._jQueryInterface = function _jQueryInterface(config) {
206            return this.each(function () {
207                var $this = $__default['default'](this);
208                var data = $this.data(DATA_KEY);
209
210                if (!data) {
211                    data = new Tab(this);
212                    $this.data(DATA_KEY, data);
213                }
214
215                if (typeof config === 'string') {
216                    if (typeof data[config] === 'undefined') {
217                        throw new TypeError("No method named \"" + config + "\"");
218                    }
219
220                    data[config]();
221                }
222            });
223        };
224
225        _createClass(Tab, null, [{
226            key: "VERSION",
227            get: function get() {
228                return VERSION;
229            }
230        }]);
231
232        return Tab;
233    }();
234    /**
235     * ------------------------------------------------------------------------
236     * Data Api implementation
237     * ------------------------------------------------------------------------
238     */
239
240
241    $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
242        event.preventDefault();
243
244        Tab._jQueryInterface.call($__default['default'](this), 'show');
245    });
246    /**
247     * ------------------------------------------------------------------------
248     * jQuery
249     * ------------------------------------------------------------------------
250     */
251
252    $__default['default'].fn[NAME] = Tab._jQueryInterface;
253    $__default['default'].fn[NAME].Constructor = Tab;
254
255    $__default['default'].fn[NAME].noConflict = function () {
256        $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
257        return Tab._jQueryInterface;
258    };
259
260    return Tab;
261
262})));
263//# sourceMappingURL=tab.js.map

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.