vendor: 5,371 bytes, lines 1-165
1/*! 2 * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/) 3 */ 4 5/*! 6 * Bootstrap v3.4.1 (https://getbootstrap.com/) 7 * Copyright 2011-2021 Twitter, Inc. 8 * Licensed under the MIT license 9 */ 10 11if (typeof jQuery === 'undefined') { 12 throw new Error('Bootstrap\'s JavaScript requires jQuery') 13} 14+function ($) { 15 'use strict'; 16 var version = $.fn.jquery.split(' ')[0].split('.') 17 if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) { 18 throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4') 19 } 20}(jQuery); 21 22/* ======================================================================== 23 * Bootstrap: carousel.js v3.4.1 24 * https://getbootstrap.com/docs/3.4/javascript/#carousel 25 * ======================================================================== 26 * Copyright 2011-2019 Twitter, Inc. 27 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 28 * ======================================================================== */ 29 30 31+function ($) { 32 'use strict'; 33 34 // CAROUSEL CLASS DEFINITION 35 // ========================= 36 37 var Carousel = function (element, options) { 38 this.$element = $(element) 39 this.$indicators = this.$element.find('.carousel-indicators') 40 this.options = options 41 this.paused = null 42 this.sliding = null 43 this.interval = null 44 this.$active = null 45 this.$items = null 46 47 this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) 48 49 this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element 50 .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) 51 .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) 52 } 53 54 Carousel.VERSION = '3.4.1' 55 56 Carousel.TRANSITION_DURATION = 600 57 58 Carousel.DEFAULTS = { 59 interval: 5000, 60 pause: 'hover', 61 wrap: true, 62 keyboard: true 63 } 64 65 Carousel.prototype.keydown = function (e) { 66 if (/input|textarea/i.test(e.target.tagName)) return 67 switch (e.which) { 68 case 37: this.prev(); break 69 case 39: this.next(); break 70 default: return 71 } 72 73 e.preventDefault() 74 } 75 76 Carousel.prototype.cycle = function (e) { 77 e || (this.paused = false) 78 79 this.interval && clearInterval(this.interval) 80 81 this.options.interval 82 && !this.paused 83 && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) 84 85 return this 86 } 87 88 Carousel.prototype.getItemIndex = function (item) { 89 this.$items = item.parent().children('.item') 90 return this.$items.index(item || this.$active) 91 } 92 93 Carousel.prototype.getItemForDirection = function (direction, active) { 94 var activeIndex = this.getItemIndex(active) 95 var willWrap = (direction == 'prev' && activeIndex === 0) 96 || (direction == 'next' && activeIndex == (this.$items.length - 1)) 97 if (willWrap && !this.options.wrap) return active 98 var delta = direction == 'prev' ? -1 : 1 99 var itemIndex = (activeIndex + delta) % this.$items.length 100 return this.$items.eq(itemIndex) 101 } 102 103 Carousel.prototype.to = function (pos) { 104 var that = this 105 var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) 106 107 if (pos > (this.$items.length - 1) || pos < 0) return 108 109 if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" 110 if (activeIndex == pos) return this.pause().cycle() 111 112 return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) 113 } 114 115 Carousel.prototype.pause = function (e) { 116 e || (this.paused = true) 117 118 if (this.$element.find('.next, .prev').length && $.support.transition) { 119 this.$element.trigger($.support.transition.end) 120 this.cycle(true) 121 } 122 123 this.interval = clearInterval(this.interval) 124 125 return this 126 } 127 128 Carousel.prototype.next = function () { 129 if (this.sliding) return 130 return this.slide('next') 131 } 132 133 Carousel.prototype.prev = function () { 134 if (this.sliding) return 135 return this.slide('prev') 136 } 137 138 Carousel.prototype.slide = function (type, next) { 139 var $active = this.$element.find('.item.active') 140 var $next = next || this.getItemForDirection(type, $active) 141 var isCycling = this.interval 142 var direction = type == 'next' ? 'left' : 'right' 143 var that = this 144 145 if ($next.hasClass('active')) return (this.sliding = false) 146 147 var relatedTarget = $next[0] 148 var slideEvent = $.Event('slide.bs.carousel', { 149 relatedTarget: relatedTarget, 150 direction: direction 151 }) 152 this.$element.trigger(slideEvent) 153 if (slideEvent.isDefaultPrevented()) return 154 155 this.sliding = true 156 157 isCycling && this.pause() 158 159 if (this.$indicators.length) { 160 this.$indicators.find('.active').removeClass('active') 161 var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) 162 $nextIndicator && $nextIndicator.addClass('active') 163 } 164 165 var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
vendor: 4,303 bytes, lines 166-320
166 if ($.support.transition && this.$element.hasClass('slide')) { 167 $next.addClass(type) 168 if (typeof $next === 'object' && $next.length) { 169 $next[0].offsetWidth // force reflow 170 } 171 $active.addClass(direction) 172 $next.addClass(direction) 173 $active 174 .one('bsTransitionEnd', function () { 175 $next.removeClass([type, direction].join(' ')).addClass('active') 176 $active.removeClass(['active', direction].join(' ')) 177 that.sliding = false 178 setTimeout(function () { 179 that.$element.trigger(slidEvent) 180 }, 0) 181 }) 182 .emulateTransitionEnd(Carousel.TRANSITION_DURATION) 183 } else { 184 $active.removeClass('active') 185 $next.addClass('active') 186 this.sliding = false 187 this.$element.trigger(slidEvent) 188 } 189 190 isCycling && this.cycle() 191 192 return this 193 } 194 195 196 // CAROUSEL PLUGIN DEFINITION 197 // ========================== 198 199 function Plugin(option) { 200 return this.each(function () { 201 var $this = $(this) 202 var data = $this.data('bs.carousel') 203 var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) 204 var action = typeof option == 'string' ? option : options.slide 205 206 if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) 207 if (typeof option == 'number') data.to(option) 208 else if (action) data[action]() 209 else if (options.interval) data.pause().cycle() 210 }) 211 } 212 213 var old = $.fn.carousel 214 215 $.fn.carousel = Plugin 216 $.fn.carousel.Constructor = Carousel 217 218 219 // CAROUSEL NO CONFLICT 220 // ==================== 221 222 $.fn.carousel.noConflict = function () { 223 $.fn.carousel = old 224 return this 225 } 226 227 228 // CAROUSEL DATA-API 229 // ================= 230 231 var clickHandler = function (e) { 232 var $this = $(this) 233 var href = $this.attr('href') 234 if (href) { 235 href = href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 236 } 237 238 var target = $this.attr('data-target') || href 239 var $target = $(document).find(target) 240 241 if (!$target.hasClass('carousel')) return 242 243 var options = $.extend({}, $target.data(), $this.data()) 244 var slideIndex = $this.attr('data-slide-to') 245 if (slideIndex) options.interval = false 246 247 Plugin.call($target, options) 248 249 if (slideIndex) { 250 $target.data('bs.carousel').to(slideIndex) 251 } 252 253 e.preventDefault() 254 } 255 256 $(document) 257 .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) 258 .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) 259 260 $(window).on('load', function () { 261 $('[data-ride="carousel"]').each(function () { 262 var $carousel = $(this) 263 Plugin.call($carousel, $carousel.data()) 264 }) 265 }) 266 267}(jQuery); 268 269 270+function ($) { 271 'use strict'; 272 273 // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/) 274 // ============================================================ 275 276 function transitionEnd() { 277 var el = document.createElement('bootstrap') 278 279 var transEndEventNames = { 280 WebkitTransition : 'webkitTransitionEnd', 281 MozTransition : 'transitionend', 282 OTransition : 'oTransitionEnd otransitionend', 283 transition : 'transitionend' 284 } 285 286 for (var name in transEndEventNames) { 287 if (el.style[name] !== undefined) { 288 return { end: transEndEventNames[name] } 289 } 290 } 291 292 return false // explicit for ie8 ( ._.) 293 } 294 295 // https://blog.alexmaccaw.com/css-transitions 296 $.fn.emulateTransitionEnd = function (duration) { 297 var called = false 298 var $el = this 299 $(this).one('bsTransitionEnd', function () { called = true }) 300 var callback = function () { if (!called) $($el).trigger($.support.transition.end) } 301 setTimeout(callback, duration) 302 return this 303 } 304 305 $(function () { 306 $.support.transition = transitionEnd() 307 308 if (!$.support.transition) return 309 310 $.event.special.bsTransitionEnd = { 311 bindType: $.support.transition.end, 312 delegateType: $.support.transition.end, 313 handle: function (e) { 314 if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) 315 } 316 } 317 }) 318 319}(jQuery); 320
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.