Commit edc5671eed9ebb3ee5d3f21d7593c74a30867f76
1 parent
8c6ddd71
[8]临停支付 三个页面添加orgId
stoppayment\select.html //orgId stoppayment/Temporary/check.html //检查订单orgId pay/immediatepaycs.html//微信支付页面发起支付orgId
Showing
8 changed files
with
72 additions
and
2412 deletions
js/bootstrap/bootstrap.js
| ... | ... | @@ -3,2375 +3,5 @@ |
| 3 | 3 | * Copyright 2011-2016 Twitter, Inc. |
| 4 | 4 | * Licensed under the MIT license |
| 5 | 5 | */ |
| 6 | - | |
| 7 | -if (typeof jQuery === 'undefined') { | |
| 8 | - throw new Error('Bootstrap\'s JavaScript requires jQuery') | |
| 9 | -} | |
| 10 | - | |
| 11 | -+function ($) { | |
| 12 | - 'use strict'; | |
| 13 | - var version = $.fn.jquery.split(' ')[0].split('.') | |
| 14 | - if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) { | |
| 15 | - throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4') | |
| 16 | - } | |
| 17 | -}(jQuery); | |
| 18 | - | |
| 19 | -/* ======================================================================== | |
| 20 | - * Bootstrap: transition.js v3.3.7 | |
| 21 | - * http://getbootstrap.com/javascript/#transitions | |
| 22 | - * ======================================================================== | |
| 23 | - * Copyright 2011-2016 Twitter, Inc. | |
| 24 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 25 | - * ======================================================================== */ | |
| 26 | - | |
| 27 | - | |
| 28 | -+function ($) { | |
| 29 | - 'use strict'; | |
| 30 | - | |
| 31 | - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) | |
| 32 | - // ============================================================ | |
| 33 | - | |
| 34 | - function transitionEnd() { | |
| 35 | - var el = document.createElement('bootstrap') | |
| 36 | - | |
| 37 | - var transEndEventNames = { | |
| 38 | - WebkitTransition : 'webkitTransitionEnd', | |
| 39 | - MozTransition : 'transitionend', | |
| 40 | - OTransition : 'oTransitionEnd otransitionend', | |
| 41 | - transition : 'transitionend' | |
| 42 | - } | |
| 43 | - | |
| 44 | - for (var name in transEndEventNames) { | |
| 45 | - if (el.style[name] !== undefined) { | |
| 46 | - return { end: transEndEventNames[name] } | |
| 47 | - } | |
| 48 | - } | |
| 49 | - | |
| 50 | - return false // explicit for ie8 ( ._.) | |
| 51 | - } | |
| 52 | - | |
| 53 | - // http://blog.alexmaccaw.com/css-transitions | |
| 54 | - $.fn.emulateTransitionEnd = function (duration) { | |
| 55 | - var called = false | |
| 56 | - var $el = this | |
| 57 | - $(this).one('bsTransitionEnd', function () { called = true }) | |
| 58 | - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } | |
| 59 | - setTimeout(callback, duration) | |
| 60 | - return this | |
| 61 | - } | |
| 62 | - | |
| 63 | - $(function () { | |
| 64 | - $.support.transition = transitionEnd() | |
| 65 | - | |
| 66 | - if (!$.support.transition) return | |
| 67 | - | |
| 68 | - $.event.special.bsTransitionEnd = { | |
| 69 | - bindType: $.support.transition.end, | |
| 70 | - delegateType: $.support.transition.end, | |
| 71 | - handle: function (e) { | |
| 72 | - if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) | |
| 73 | - } | |
| 74 | - } | |
| 75 | - }) | |
| 76 | - | |
| 77 | -}(jQuery); | |
| 78 | - | |
| 79 | -/* ======================================================================== | |
| 80 | - * Bootstrap: alert.js v3.3.7 | |
| 81 | - * http://getbootstrap.com/javascript/#alerts | |
| 82 | - * ======================================================================== | |
| 83 | - * Copyright 2011-2016 Twitter, Inc. | |
| 84 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 85 | - * ======================================================================== */ | |
| 86 | - | |
| 87 | - | |
| 88 | -+function ($) { | |
| 89 | - 'use strict'; | |
| 90 | - | |
| 91 | - // ALERT CLASS DEFINITION | |
| 92 | - // ====================== | |
| 93 | - | |
| 94 | - var dismiss = '[data-dismiss="alert"]' | |
| 95 | - var Alert = function (el) { | |
| 96 | - $(el).on('click', dismiss, this.close) | |
| 97 | - } | |
| 98 | - | |
| 99 | - Alert.VERSION = '3.3.7' | |
| 100 | - | |
| 101 | - Alert.TRANSITION_DURATION = 150 | |
| 102 | - | |
| 103 | - Alert.prototype.close = function (e) { | |
| 104 | - var $this = $(this) | |
| 105 | - var selector = $this.attr('data-target') | |
| 106 | - | |
| 107 | - if (!selector) { | |
| 108 | - selector = $this.attr('href') | |
| 109 | - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 | |
| 110 | - } | |
| 111 | - | |
| 112 | - var $parent = $(selector === '#' ? [] : selector) | |
| 113 | - | |
| 114 | - if (e) e.preventDefault() | |
| 115 | - | |
| 116 | - if (!$parent.length) { | |
| 117 | - $parent = $this.closest('.alert') | |
| 118 | - } | |
| 119 | - | |
| 120 | - $parent.trigger(e = $.Event('close.bs.alert')) | |
| 121 | - | |
| 122 | - if (e.isDefaultPrevented()) return | |
| 123 | - | |
| 124 | - $parent.removeClass('in') | |
| 125 | - | |
| 126 | - function removeElement() { | |
| 127 | - // detach from parent, fire event then clean up data | |
| 128 | - $parent.detach().trigger('closed.bs.alert').remove() | |
| 129 | - } | |
| 130 | - | |
| 131 | - $.support.transition && $parent.hasClass('fade') ? | |
| 132 | - $parent | |
| 133 | - .one('bsTransitionEnd', removeElement) | |
| 134 | - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : | |
| 135 | - removeElement() | |
| 136 | - } | |
| 137 | - | |
| 138 | - | |
| 139 | - // ALERT PLUGIN DEFINITION | |
| 140 | - // ======================= | |
| 141 | - | |
| 142 | - function Plugin(option) { | |
| 143 | - return this.each(function () { | |
| 144 | - var $this = $(this) | |
| 145 | - var data = $this.data('bs.alert') | |
| 146 | - | |
| 147 | - if (!data) $this.data('bs.alert', (data = new Alert(this))) | |
| 148 | - if (typeof option == 'string') data[option].call($this) | |
| 149 | - }) | |
| 150 | - } | |
| 151 | - | |
| 152 | - var old = $.fn.alert | |
| 153 | - | |
| 154 | - $.fn.alert = Plugin | |
| 155 | - $.fn.alert.Constructor = Alert | |
| 156 | - | |
| 157 | - | |
| 158 | - // ALERT NO CONFLICT | |
| 159 | - // ================= | |
| 160 | - | |
| 161 | - $.fn.alert.noConflict = function () { | |
| 162 | - $.fn.alert = old | |
| 163 | - return this | |
| 164 | - } | |
| 165 | - | |
| 166 | - | |
| 167 | - // ALERT DATA-API | |
| 168 | - // ============== | |
| 169 | - | |
| 170 | - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) | |
| 171 | - | |
| 172 | -}(jQuery); | |
| 173 | - | |
| 174 | -/* ======================================================================== | |
| 175 | - * Bootstrap: button.js v3.3.7 | |
| 176 | - * http://getbootstrap.com/javascript/#buttons | |
| 177 | - * ======================================================================== | |
| 178 | - * Copyright 2011-2016 Twitter, Inc. | |
| 179 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 180 | - * ======================================================================== */ | |
| 181 | - | |
| 182 | - | |
| 183 | -+function ($) { | |
| 184 | - 'use strict'; | |
| 185 | - | |
| 186 | - // BUTTON PUBLIC CLASS DEFINITION | |
| 187 | - // ============================== | |
| 188 | - | |
| 189 | - var Button = function (element, options) { | |
| 190 | - this.$element = $(element) | |
| 191 | - this.options = $.extend({}, Button.DEFAULTS, options) | |
| 192 | - this.isLoading = false | |
| 193 | - } | |
| 194 | - | |
| 195 | - Button.VERSION = '3.3.7' | |
| 196 | - | |
| 197 | - Button.DEFAULTS = { | |
| 198 | - loadingText: 'loading...' | |
| 199 | - } | |
| 200 | - | |
| 201 | - Button.prototype.setState = function (state) { | |
| 202 | - var d = 'disabled' | |
| 203 | - var $el = this.$element | |
| 204 | - var val = $el.is('input') ? 'val' : 'html' | |
| 205 | - var data = $el.data() | |
| 206 | - | |
| 207 | - state += 'Text' | |
| 208 | - | |
| 209 | - if (data.resetText == null) $el.data('resetText', $el[val]()) | |
| 210 | - | |
| 211 | - // push to event loop to allow forms to submit | |
| 212 | - setTimeout($.proxy(function () { | |
| 213 | - $el[val](data[state] == null ? this.options[state] : data[state]) | |
| 214 | - | |
| 215 | - if (state == 'loadingText') { | |
| 216 | - this.isLoading = true | |
| 217 | - $el.addClass(d).attr(d, d).prop(d, true) | |
| 218 | - } else if (this.isLoading) { | |
| 219 | - this.isLoading = false | |
| 220 | - $el.removeClass(d).removeAttr(d).prop(d, false) | |
| 221 | - } | |
| 222 | - }, this), 0) | |
| 223 | - } | |
| 224 | - | |
| 225 | - Button.prototype.toggle = function () { | |
| 226 | - var changed = true | |
| 227 | - var $parent = this.$element.closest('[data-toggle="buttons"]') | |
| 228 | - | |
| 229 | - if ($parent.length) { | |
| 230 | - var $input = this.$element.find('input') | |
| 231 | - if ($input.prop('type') == 'radio') { | |
| 232 | - if ($input.prop('checked')) changed = false | |
| 233 | - $parent.find('.active').removeClass('active') | |
| 234 | - this.$element.addClass('active') | |
| 235 | - } else if ($input.prop('type') == 'checkbox') { | |
| 236 | - if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false | |
| 237 | - this.$element.toggleClass('active') | |
| 238 | - } | |
| 239 | - $input.prop('checked', this.$element.hasClass('active')) | |
| 240 | - if (changed) $input.trigger('change') | |
| 241 | - } else { | |
| 242 | - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) | |
| 243 | - this.$element.toggleClass('active') | |
| 244 | - } | |
| 245 | - } | |
| 246 | - | |
| 247 | - | |
| 248 | - // BUTTON PLUGIN DEFINITION | |
| 249 | - // ======================== | |
| 250 | - | |
| 251 | - function Plugin(option) { | |
| 252 | - return this.each(function () { | |
| 253 | - var $this = $(this) | |
| 254 | - var data = $this.data('bs.button') | |
| 255 | - var options = typeof option == 'object' && option | |
| 256 | - | |
| 257 | - if (!data) $this.data('bs.button', (data = new Button(this, options))) | |
| 258 | - | |
| 259 | - if (option == 'toggle') data.toggle() | |
| 260 | - else if (option) data.setState(option) | |
| 261 | - }) | |
| 262 | - } | |
| 263 | - | |
| 264 | - var old = $.fn.button | |
| 265 | - | |
| 266 | - $.fn.button = Plugin | |
| 267 | - $.fn.button.Constructor = Button | |
| 268 | - | |
| 269 | - | |
| 270 | - // BUTTON NO CONFLICT | |
| 271 | - // ================== | |
| 272 | - | |
| 273 | - $.fn.button.noConflict = function () { | |
| 274 | - $.fn.button = old | |
| 275 | - return this | |
| 276 | - } | |
| 277 | - | |
| 278 | - | |
| 279 | - // BUTTON DATA-API | |
| 280 | - // =============== | |
| 281 | - | |
| 282 | - $(document) | |
| 283 | - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { | |
| 284 | - var $btn = $(e.target).closest('.btn') | |
| 285 | - Plugin.call($btn, 'toggle') | |
| 286 | - if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { | |
| 287 | - // Prevent double click on radios, and the double selections (so cancellation) on checkboxes | |
| 288 | - e.preventDefault() | |
| 289 | - // The target component still receive the focus | |
| 290 | - if ($btn.is('input,button')) $btn.trigger('focus') | |
| 291 | - else $btn.find('input:visible,button:visible').first().trigger('focus') | |
| 292 | - } | |
| 293 | - }) | |
| 294 | - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { | |
| 295 | - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) | |
| 296 | - }) | |
| 297 | - | |
| 298 | -}(jQuery); | |
| 299 | - | |
| 300 | -/* ======================================================================== | |
| 301 | - * Bootstrap: carousel.js v3.3.7 | |
| 302 | - * http://getbootstrap.com/javascript/#carousel | |
| 303 | - * ======================================================================== | |
| 304 | - * Copyright 2011-2016 Twitter, Inc. | |
| 305 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 306 | - * ======================================================================== */ | |
| 307 | - | |
| 308 | - | |
| 309 | -+function ($) { | |
| 310 | - 'use strict'; | |
| 311 | - | |
| 312 | - // CAROUSEL CLASS DEFINITION | |
| 313 | - // ========================= | |
| 314 | - | |
| 315 | - var Carousel = function (element, options) { | |
| 316 | - this.$element = $(element) | |
| 317 | - this.$indicators = this.$element.find('.carousel-indicators') | |
| 318 | - this.options = options | |
| 319 | - this.paused = null | |
| 320 | - this.sliding = null | |
| 321 | - this.interval = null | |
| 322 | - this.$active = null | |
| 323 | - this.$items = null | |
| 324 | - | |
| 325 | - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) | |
| 326 | - | |
| 327 | - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element | |
| 328 | - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) | |
| 329 | - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) | |
| 330 | - } | |
| 331 | - | |
| 332 | - Carousel.VERSION = '3.3.7' | |
| 333 | - | |
| 334 | - Carousel.TRANSITION_DURATION = 600 | |
| 335 | - | |
| 336 | - Carousel.DEFAULTS = { | |
| 337 | - interval: 5000, | |
| 338 | - pause: 'hover', | |
| 339 | - wrap: true, | |
| 340 | - keyboard: true | |
| 341 | - } | |
| 342 | - | |
| 343 | - Carousel.prototype.keydown = function (e) { | |
| 344 | - if (/input|textarea/i.test(e.target.tagName)) return | |
| 345 | - switch (e.which) { | |
| 346 | - case 37: this.prev(); break | |
| 347 | - case 39: this.next(); break | |
| 348 | - default: return | |
| 349 | - } | |
| 350 | - | |
| 351 | - e.preventDefault() | |
| 352 | - } | |
| 353 | - | |
| 354 | - Carousel.prototype.cycle = function (e) { | |
| 355 | - e || (this.paused = false) | |
| 356 | - | |
| 357 | - this.interval && clearInterval(this.interval) | |
| 358 | - | |
| 359 | - this.options.interval | |
| 360 | - && !this.paused | |
| 361 | - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) | |
| 362 | - | |
| 363 | - return this | |
| 364 | - } | |
| 365 | - | |
| 366 | - Carousel.prototype.getItemIndex = function (item) { | |
| 367 | - this.$items = item.parent().children('.item') | |
| 368 | - return this.$items.index(item || this.$active) | |
| 369 | - } | |
| 370 | - | |
| 371 | - Carousel.prototype.getItemForDirection = function (direction, active) { | |
| 372 | - var activeIndex = this.getItemIndex(active) | |
| 373 | - var willWrap = (direction == 'prev' && activeIndex === 0) | |
| 374 | - || (direction == 'next' && activeIndex == (this.$items.length - 1)) | |
| 375 | - if (willWrap && !this.options.wrap) return active | |
| 376 | - var delta = direction == 'prev' ? -1 : 1 | |
| 377 | - var itemIndex = (activeIndex + delta) % this.$items.length | |
| 378 | - return this.$items.eq(itemIndex) | |
| 379 | - } | |
| 380 | - | |
| 381 | - Carousel.prototype.to = function (pos) { | |
| 382 | - var that = this | |
| 383 | - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) | |
| 384 | - | |
| 385 | - if (pos > (this.$items.length - 1) || pos < 0) return | |
| 386 | - | |
| 387 | - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" | |
| 388 | - if (activeIndex == pos) return this.pause().cycle() | |
| 389 | - | |
| 390 | - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) | |
| 391 | - } | |
| 392 | - | |
| 393 | - Carousel.prototype.pause = function (e) { | |
| 394 | - e || (this.paused = true) | |
| 395 | - | |
| 396 | - if (this.$element.find('.next, .prev').length && $.support.transition) { | |
| 397 | - this.$element.trigger($.support.transition.end) | |
| 398 | - this.cycle(true) | |
| 399 | - } | |
| 400 | - | |
| 401 | - this.interval = clearInterval(this.interval) | |
| 402 | - | |
| 403 | - return this | |
| 404 | - } | |
| 405 | - | |
| 406 | - Carousel.prototype.next = function () { | |
| 407 | - if (this.sliding) return | |
| 408 | - return this.slide('next') | |
| 409 | - } | |
| 410 | - | |
| 411 | - Carousel.prototype.prev = function () { | |
| 412 | - if (this.sliding) return | |
| 413 | - return this.slide('prev') | |
| 414 | - } | |
| 415 | - | |
| 416 | - Carousel.prototype.slide = function (type, next) { | |
| 417 | - var $active = this.$element.find('.item.active') | |
| 418 | - var $next = next || this.getItemForDirection(type, $active) | |
| 419 | - var isCycling = this.interval | |
| 420 | - var direction = type == 'next' ? 'left' : 'right' | |
| 421 | - var that = this | |
| 422 | - | |
| 423 | - if ($next.hasClass('active')) return (this.sliding = false) | |
| 424 | - | |
| 425 | - var relatedTarget = $next[0] | |
| 426 | - var slideEvent = $.Event('slide.bs.carousel', { | |
| 427 | - relatedTarget: relatedTarget, | |
| 428 | - direction: direction | |
| 429 | - }) | |
| 430 | - this.$element.trigger(slideEvent) | |
| 431 | - if (slideEvent.isDefaultPrevented()) return | |
| 432 | - | |
| 433 | - this.sliding = true | |
| 434 | - | |
| 435 | - isCycling && this.pause() | |
| 436 | - | |
| 437 | - if (this.$indicators.length) { | |
| 438 | - this.$indicators.find('.active').removeClass('active') | |
| 439 | - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) | |
| 440 | - $nextIndicator && $nextIndicator.addClass('active') | |
| 441 | - } | |
| 442 | - | |
| 443 | - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" | |
| 444 | - if ($.support.transition && this.$element.hasClass('slide')) { | |
| 445 | - $next.addClass(type) | |
| 446 | - $next[0].offsetWidth // force reflow | |
| 447 | - $active.addClass(direction) | |
| 448 | - $next.addClass(direction) | |
| 449 | - $active | |
| 450 | - .one('bsTransitionEnd', function () { | |
| 451 | - $next.removeClass([type, direction].join(' ')).addClass('active') | |
| 452 | - $active.removeClass(['active', direction].join(' ')) | |
| 453 | - that.sliding = false | |
| 454 | - setTimeout(function () { | |
| 455 | - that.$element.trigger(slidEvent) | |
| 456 | - }, 0) | |
| 457 | - }) | |
| 458 | - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) | |
| 459 | - } else { | |
| 460 | - $active.removeClass('active') | |
| 461 | - $next.addClass('active') | |
| 462 | - this.sliding = false | |
| 463 | - this.$element.trigger(slidEvent) | |
| 464 | - } | |
| 465 | - | |
| 466 | - isCycling && this.cycle() | |
| 467 | - | |
| 468 | - return this | |
| 469 | - } | |
| 470 | - | |
| 471 | - | |
| 472 | - // CAROUSEL PLUGIN DEFINITION | |
| 473 | - // ========================== | |
| 474 | - | |
| 475 | - function Plugin(option) { | |
| 476 | - return this.each(function () { | |
| 477 | - var $this = $(this) | |
| 478 | - var data = $this.data('bs.carousel') | |
| 479 | - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) | |
| 480 | - var action = typeof option == 'string' ? option : options.slide | |
| 481 | - | |
| 482 | - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) | |
| 483 | - if (typeof option == 'number') data.to(option) | |
| 484 | - else if (action) data[action]() | |
| 485 | - else if (options.interval) data.pause().cycle() | |
| 486 | - }) | |
| 487 | - } | |
| 488 | - | |
| 489 | - var old = $.fn.carousel | |
| 490 | - | |
| 491 | - $.fn.carousel = Plugin | |
| 492 | - $.fn.carousel.Constructor = Carousel | |
| 493 | - | |
| 494 | - | |
| 495 | - // CAROUSEL NO CONFLICT | |
| 496 | - // ==================== | |
| 497 | - | |
| 498 | - $.fn.carousel.noConflict = function () { | |
| 499 | - $.fn.carousel = old | |
| 500 | - return this | |
| 501 | - } | |
| 502 | - | |
| 503 | - | |
| 504 | - // CAROUSEL DATA-API | |
| 505 | - // ================= | |
| 506 | - | |
| 507 | - var clickHandler = function (e) { | |
| 508 | - var href | |
| 509 | - var $this = $(this) | |
| 510 | - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 | |
| 511 | - if (!$target.hasClass('carousel')) return | |
| 512 | - var options = $.extend({}, $target.data(), $this.data()) | |
| 513 | - var slideIndex = $this.attr('data-slide-to') | |
| 514 | - if (slideIndex) options.interval = false | |
| 515 | - | |
| 516 | - Plugin.call($target, options) | |
| 517 | - | |
| 518 | - if (slideIndex) { | |
| 519 | - $target.data('bs.carousel').to(slideIndex) | |
| 520 | - } | |
| 521 | - | |
| 522 | - e.preventDefault() | |
| 523 | - } | |
| 524 | - | |
| 525 | - $(document) | |
| 526 | - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) | |
| 527 | - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) | |
| 528 | - | |
| 529 | - $(window).on('load', function () { | |
| 530 | - $('[data-ride="carousel"]').each(function () { | |
| 531 | - var $carousel = $(this) | |
| 532 | - Plugin.call($carousel, $carousel.data()) | |
| 533 | - }) | |
| 534 | - }) | |
| 535 | - | |
| 536 | -}(jQuery); | |
| 537 | - | |
| 538 | -/* ======================================================================== | |
| 539 | - * Bootstrap: collapse.js v3.3.7 | |
| 540 | - * http://getbootstrap.com/javascript/#collapse | |
| 541 | - * ======================================================================== | |
| 542 | - * Copyright 2011-2016 Twitter, Inc. | |
| 543 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 544 | - * ======================================================================== */ | |
| 545 | - | |
| 546 | -/* jshint latedef: false */ | |
| 547 | - | |
| 548 | -+function ($) { | |
| 549 | - 'use strict'; | |
| 550 | - | |
| 551 | - // COLLAPSE PUBLIC CLASS DEFINITION | |
| 552 | - // ================================ | |
| 553 | - | |
| 554 | - var Collapse = function (element, options) { | |
| 555 | - this.$element = $(element) | |
| 556 | - this.options = $.extend({}, Collapse.DEFAULTS, options) | |
| 557 | - this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + | |
| 558 | - '[data-toggle="collapse"][data-target="#' + element.id + '"]') | |
| 559 | - this.transitioning = null | |
| 560 | - | |
| 561 | - if (this.options.parent) { | |
| 562 | - this.$parent = this.getParent() | |
| 563 | - } else { | |
| 564 | - this.addAriaAndCollapsedClass(this.$element, this.$trigger) | |
| 565 | - } | |
| 566 | - | |
| 567 | - if (this.options.toggle) this.toggle() | |
| 568 | - } | |
| 569 | - | |
| 570 | - Collapse.VERSION = '3.3.7' | |
| 571 | - | |
| 572 | - Collapse.TRANSITION_DURATION = 350 | |
| 573 | - | |
| 574 | - Collapse.DEFAULTS = { | |
| 575 | - toggle: true | |
| 576 | - } | |
| 577 | - | |
| 578 | - Collapse.prototype.dimension = function () { | |
| 579 | - var hasWidth = this.$element.hasClass('width') | |
| 580 | - return hasWidth ? 'width' : 'height' | |
| 581 | - } | |
| 582 | - | |
| 583 | - Collapse.prototype.show = function () { | |
| 584 | - if (this.transitioning || this.$element.hasClass('in')) return | |
| 585 | - | |
| 586 | - var activesData | |
| 587 | - var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') | |
| 588 | - | |
| 589 | - if (actives && actives.length) { | |
| 590 | - activesData = actives.data('bs.collapse') | |
| 591 | - if (activesData && activesData.transitioning) return | |
| 592 | - } | |
| 593 | - | |
| 594 | - var startEvent = $.Event('show.bs.collapse') | |
| 595 | - this.$element.trigger(startEvent) | |
| 596 | - if (startEvent.isDefaultPrevented()) return | |
| 597 | - | |
| 598 | - if (actives && actives.length) { | |
| 599 | - Plugin.call(actives, 'hide') | |
| 600 | - activesData || actives.data('bs.collapse', null) | |
| 601 | - } | |
| 602 | - | |
| 603 | - var dimension = this.dimension() | |
| 604 | - | |
| 605 | - this.$element | |
| 606 | - .removeClass('collapse') | |
| 607 | - .addClass('collapsing')[dimension](0) | |
| 608 | - .attr('aria-expanded', true) | |
| 609 | - | |
| 610 | - this.$trigger | |
| 611 | - .removeClass('collapsed') | |
| 612 | - .attr('aria-expanded', true) | |
| 613 | - | |
| 614 | - this.transitioning = 1 | |
| 615 | - | |
| 616 | - var complete = function () { | |
| 617 | - this.$element | |
| 618 | - .removeClass('collapsing') | |
| 619 | - .addClass('collapse in')[dimension]('') | |
| 620 | - this.transitioning = 0 | |
| 621 | - this.$element | |
| 622 | - .trigger('shown.bs.collapse') | |
| 623 | - } | |
| 624 | - | |
| 625 | - if (!$.support.transition) return complete.call(this) | |
| 626 | - | |
| 627 | - var scrollSize = $.camelCase(['scroll', dimension].join('-')) | |
| 628 | - | |
| 629 | - this.$element | |
| 630 | - .one('bsTransitionEnd', $.proxy(complete, this)) | |
| 631 | - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) | |
| 632 | - } | |
| 633 | - | |
| 634 | - Collapse.prototype.hide = function () { | |
| 635 | - if (this.transitioning || !this.$element.hasClass('in')) return | |
| 636 | - | |
| 637 | - var startEvent = $.Event('hide.bs.collapse') | |
| 638 | - this.$element.trigger(startEvent) | |
| 639 | - if (startEvent.isDefaultPrevented()) return | |
| 640 | - | |
| 641 | - var dimension = this.dimension() | |
| 642 | - | |
| 643 | - this.$element[dimension](this.$element[dimension]())[0].offsetHeight | |
| 644 | - | |
| 645 | - this.$element | |
| 646 | - .addClass('collapsing') | |
| 647 | - .removeClass('collapse in') | |
| 648 | - .attr('aria-expanded', false) | |
| 649 | - | |
| 650 | - this.$trigger | |
| 651 | - .addClass('collapsed') | |
| 652 | - .attr('aria-expanded', false) | |
| 653 | - | |
| 654 | - this.transitioning = 1 | |
| 655 | - | |
| 656 | - var complete = function () { | |
| 657 | - this.transitioning = 0 | |
| 658 | - this.$element | |
| 659 | - .removeClass('collapsing') | |
| 660 | - .addClass('collapse') | |
| 661 | - .trigger('hidden.bs.collapse') | |
| 662 | - } | |
| 663 | - | |
| 664 | - if (!$.support.transition) return complete.call(this) | |
| 665 | - | |
| 666 | - this.$element | |
| 667 | - [dimension](0) | |
| 668 | - .one('bsTransitionEnd', $.proxy(complete, this)) | |
| 669 | - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) | |
| 670 | - } | |
| 671 | - | |
| 672 | - Collapse.prototype.toggle = function () { | |
| 673 | - this[this.$element.hasClass('in') ? 'hide' : 'show']() | |
| 674 | - } | |
| 675 | - | |
| 676 | - Collapse.prototype.getParent = function () { | |
| 677 | - return $(this.options.parent) | |
| 678 | - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') | |
| 679 | - .each($.proxy(function (i, element) { | |
| 680 | - var $element = $(element) | |
| 681 | - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) | |
| 682 | - }, this)) | |
| 683 | - .end() | |
| 684 | - } | |
| 685 | - | |
| 686 | - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { | |
| 687 | - var isOpen = $element.hasClass('in') | |
| 688 | - | |
| 689 | - $element.attr('aria-expanded', isOpen) | |
| 690 | - $trigger | |
| 691 | - .toggleClass('collapsed', !isOpen) | |
| 692 | - .attr('aria-expanded', isOpen) | |
| 693 | - } | |
| 694 | - | |
| 695 | - function getTargetFromTrigger($trigger) { | |
| 696 | - var href | |
| 697 | - var target = $trigger.attr('data-target') | |
| 698 | - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 | |
| 699 | - | |
| 700 | - return $(target) | |
| 701 | - } | |
| 702 | - | |
| 703 | - | |
| 704 | - // COLLAPSE PLUGIN DEFINITION | |
| 705 | - // ========================== | |
| 706 | - | |
| 707 | - function Plugin(option) { | |
| 708 | - return this.each(function () { | |
| 709 | - var $this = $(this) | |
| 710 | - var data = $this.data('bs.collapse') | |
| 711 | - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) | |
| 712 | - | |
| 713 | - if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false | |
| 714 | - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) | |
| 715 | - if (typeof option == 'string') data[option]() | |
| 716 | - }) | |
| 717 | - } | |
| 718 | - | |
| 719 | - var old = $.fn.collapse | |
| 720 | - | |
| 721 | - $.fn.collapse = Plugin | |
| 722 | - $.fn.collapse.Constructor = Collapse | |
| 723 | - | |
| 724 | - | |
| 725 | - // COLLAPSE NO CONFLICT | |
| 726 | - // ==================== | |
| 727 | - | |
| 728 | - $.fn.collapse.noConflict = function () { | |
| 729 | - $.fn.collapse = old | |
| 730 | - return this | |
| 731 | - } | |
| 732 | - | |
| 733 | - | |
| 734 | - // COLLAPSE DATA-API | |
| 735 | - // ================= | |
| 736 | - | |
| 737 | - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { | |
| 738 | - var $this = $(this) | |
| 739 | - | |
| 740 | - if (!$this.attr('data-target')) e.preventDefault() | |
| 741 | - | |
| 742 | - var $target = getTargetFromTrigger($this) | |
| 743 | - var data = $target.data('bs.collapse') | |
| 744 | - var option = data ? 'toggle' : $this.data() | |
| 745 | - | |
| 746 | - Plugin.call($target, option) | |
| 747 | - }) | |
| 748 | - | |
| 749 | -}(jQuery); | |
| 750 | - | |
| 751 | -/* ======================================================================== | |
| 752 | - * Bootstrap: dropdown.js v3.3.7 | |
| 753 | - * http://getbootstrap.com/javascript/#dropdowns | |
| 754 | - * ======================================================================== | |
| 755 | - * Copyright 2011-2016 Twitter, Inc. | |
| 756 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 757 | - * ======================================================================== */ | |
| 758 | - | |
| 759 | - | |
| 760 | -+function ($) { | |
| 761 | - 'use strict'; | |
| 762 | - | |
| 763 | - // DROPDOWN CLASS DEFINITION | |
| 764 | - // ========================= | |
| 765 | - | |
| 766 | - var backdrop = '.dropdown-backdrop' | |
| 767 | - var toggle = '[data-toggle="dropdown"]' | |
| 768 | - var Dropdown = function (element) { | |
| 769 | - $(element).on('click.bs.dropdown', this.toggle) | |
| 770 | - } | |
| 771 | - | |
| 772 | - Dropdown.VERSION = '3.3.7' | |
| 773 | - | |
| 774 | - function getParent($this) { | |
| 775 | - var selector = $this.attr('data-target') | |
| 776 | - | |
| 777 | - if (!selector) { | |
| 778 | - selector = $this.attr('href') | |
| 779 | - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 | |
| 780 | - } | |
| 781 | - | |
| 782 | - var $parent = selector && $(selector) | |
| 783 | - | |
| 784 | - return $parent && $parent.length ? $parent : $this.parent() | |
| 785 | - } | |
| 786 | - | |
| 787 | - function clearMenus(e) { | |
| 788 | - if (e && e.which === 3) return | |
| 789 | - $(backdrop).remove() | |
| 790 | - $(toggle).each(function () { | |
| 791 | - var $this = $(this) | |
| 792 | - var $parent = getParent($this) | |
| 793 | - var relatedTarget = { relatedTarget: this } | |
| 794 | - | |
| 795 | - if (!$parent.hasClass('open')) return | |
| 796 | - | |
| 797 | - if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return | |
| 798 | - | |
| 799 | - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) | |
| 800 | - | |
| 801 | - if (e.isDefaultPrevented()) return | |
| 802 | - | |
| 803 | - $this.attr('aria-expanded', 'false') | |
| 804 | - $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) | |
| 805 | - }) | |
| 806 | - } | |
| 807 | - | |
| 808 | - Dropdown.prototype.toggle = function (e) { | |
| 809 | - var $this = $(this) | |
| 810 | - | |
| 811 | - if ($this.is('.disabled, :disabled')) return | |
| 812 | - | |
| 813 | - var $parent = getParent($this) | |
| 814 | - var isActive = $parent.hasClass('open') | |
| 815 | - | |
| 816 | - clearMenus() | |
| 817 | - | |
| 818 | - if (!isActive) { | |
| 819 | - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { | |
| 820 | - // if mobile we use a backdrop because click events don't delegate | |
| 821 | - $(document.createElement('div')) | |
| 822 | - .addClass('dropdown-backdrop') | |
| 823 | - .insertAfter($(this)) | |
| 824 | - .on('click', clearMenus) | |
| 825 | - } | |
| 826 | - | |
| 827 | - var relatedTarget = { relatedTarget: this } | |
| 828 | - $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) | |
| 829 | - | |
| 830 | - if (e.isDefaultPrevented()) return | |
| 831 | - | |
| 832 | - $this | |
| 833 | - .trigger('focus') | |
| 834 | - .attr('aria-expanded', 'true') | |
| 835 | - | |
| 836 | - $parent | |
| 837 | - .toggleClass('open') | |
| 838 | - .trigger($.Event('shown.bs.dropdown', relatedTarget)) | |
| 839 | - } | |
| 840 | - | |
| 841 | - return false | |
| 842 | - } | |
| 843 | - | |
| 844 | - Dropdown.prototype.keydown = function (e) { | |
| 845 | - if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return | |
| 846 | - | |
| 847 | - var $this = $(this) | |
| 848 | - | |
| 849 | - e.preventDefault() | |
| 850 | - e.stopPropagation() | |
| 851 | - | |
| 852 | - if ($this.is('.disabled, :disabled')) return | |
| 853 | - | |
| 854 | - var $parent = getParent($this) | |
| 855 | - var isActive = $parent.hasClass('open') | |
| 856 | - | |
| 857 | - if (!isActive && e.which != 27 || isActive && e.which == 27) { | |
| 858 | - if (e.which == 27) $parent.find(toggle).trigger('focus') | |
| 859 | - return $this.trigger('click') | |
| 860 | - } | |
| 861 | - | |
| 862 | - var desc = ' li:not(.disabled):visible a' | |
| 863 | - var $items = $parent.find('.dropdown-menu' + desc) | |
| 864 | - | |
| 865 | - if (!$items.length) return | |
| 866 | - | |
| 867 | - var index = $items.index(e.target) | |
| 868 | - | |
| 869 | - if (e.which == 38 && index > 0) index-- // up | |
| 870 | - if (e.which == 40 && index < $items.length - 1) index++ // down | |
| 871 | - if (!~index) index = 0 | |
| 872 | - | |
| 873 | - $items.eq(index).trigger('focus') | |
| 874 | - } | |
| 875 | - | |
| 876 | - | |
| 877 | - // DROPDOWN PLUGIN DEFINITION | |
| 878 | - // ========================== | |
| 879 | - | |
| 880 | - function Plugin(option) { | |
| 881 | - return this.each(function () { | |
| 882 | - var $this = $(this) | |
| 883 | - var data = $this.data('bs.dropdown') | |
| 884 | - | |
| 885 | - if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) | |
| 886 | - if (typeof option == 'string') data[option].call($this) | |
| 887 | - }) | |
| 888 | - } | |
| 889 | - | |
| 890 | - var old = $.fn.dropdown | |
| 891 | - | |
| 892 | - $.fn.dropdown = Plugin | |
| 893 | - $.fn.dropdown.Constructor = Dropdown | |
| 894 | - | |
| 895 | - | |
| 896 | - // DROPDOWN NO CONFLICT | |
| 897 | - // ==================== | |
| 898 | - | |
| 899 | - $.fn.dropdown.noConflict = function () { | |
| 900 | - $.fn.dropdown = old | |
| 901 | - return this | |
| 902 | - } | |
| 903 | - | |
| 904 | - | |
| 905 | - // APPLY TO STANDARD DROPDOWN ELEMENTS | |
| 906 | - // =================================== | |
| 907 | - | |
| 908 | - $(document) | |
| 909 | - .on('click.bs.dropdown.data-api', clearMenus) | |
| 910 | - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) | |
| 911 | - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) | |
| 912 | - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) | |
| 913 | - .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) | |
| 914 | - | |
| 915 | -}(jQuery); | |
| 916 | - | |
| 917 | -/* ======================================================================== | |
| 918 | - * Bootstrap: modal.js v3.3.7 | |
| 919 | - * http://getbootstrap.com/javascript/#modals | |
| 920 | - * ======================================================================== | |
| 921 | - * Copyright 2011-2016 Twitter, Inc. | |
| 922 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 923 | - * ======================================================================== */ | |
| 924 | - | |
| 925 | - | |
| 926 | -+function ($) { | |
| 927 | - 'use strict'; | |
| 928 | - | |
| 929 | - // MODAL CLASS DEFINITION | |
| 930 | - // ====================== | |
| 931 | - | |
| 932 | - var Modal = function (element, options) { | |
| 933 | - this.options = options | |
| 934 | - this.$body = $(document.body) | |
| 935 | - this.$element = $(element) | |
| 936 | - this.$dialog = this.$element.find('.modal-dialog') | |
| 937 | - this.$backdrop = null | |
| 938 | - this.isShown = null | |
| 939 | - this.originalBodyPad = null | |
| 940 | - this.scrollbarWidth = 0 | |
| 941 | - this.ignoreBackdropClick = false | |
| 942 | - | |
| 943 | - if (this.options.remote) { | |
| 944 | - this.$element | |
| 945 | - .find('.modal-content') | |
| 946 | - .load(this.options.remote, $.proxy(function () { | |
| 947 | - this.$element.trigger('loaded.bs.modal') | |
| 948 | - }, this)) | |
| 949 | - } | |
| 950 | - } | |
| 951 | - | |
| 952 | - Modal.VERSION = '3.3.7' | |
| 953 | - | |
| 954 | - Modal.TRANSITION_DURATION = 300 | |
| 955 | - Modal.BACKDROP_TRANSITION_DURATION = 150 | |
| 956 | - | |
| 957 | - Modal.DEFAULTS = { | |
| 958 | - backdrop: true, | |
| 959 | - keyboard: true, | |
| 960 | - show: true | |
| 961 | - } | |
| 962 | - | |
| 963 | - Modal.prototype.toggle = function (_relatedTarget) { | |
| 964 | - return this.isShown ? this.hide() : this.show(_relatedTarget) | |
| 965 | - } | |
| 966 | - | |
| 967 | - Modal.prototype.show = function (_relatedTarget) { | |
| 968 | - var that = this | |
| 969 | - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) | |
| 970 | - | |
| 971 | - this.$element.trigger(e) | |
| 972 | - | |
| 973 | - if (this.isShown || e.isDefaultPrevented()) return | |
| 974 | - | |
| 975 | - this.isShown = true | |
| 976 | - | |
| 977 | - this.checkScrollbar() | |
| 978 | - this.setScrollbar() | |
| 979 | - this.$body.addClass('modal-open') | |
| 980 | - | |
| 981 | - this.escape() | |
| 982 | - this.resize() | |
| 983 | - | |
| 984 | - this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) | |
| 985 | - | |
| 986 | - this.$dialog.on('mousedown.dismiss.bs.modal', function () { | |
| 987 | - that.$element.one('mouseup.dismiss.bs.modal', function (e) { | |
| 988 | - if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true | |
| 989 | - }) | |
| 990 | - }) | |
| 991 | - | |
| 992 | - this.backdrop(function () { | |
| 993 | - var transition = $.support.transition && that.$element.hasClass('fade') | |
| 994 | - | |
| 995 | - if (!that.$element.parent().length) { | |
| 996 | - that.$element.appendTo(that.$body) // don't move modals dom position | |
| 997 | - } | |
| 998 | - | |
| 999 | - that.$element | |
| 1000 | - .show() | |
| 1001 | - .scrollTop(0) | |
| 1002 | - | |
| 1003 | - that.adjustDialog() | |
| 1004 | - | |
| 1005 | - if (transition) { | |
| 1006 | - that.$element[0].offsetWidth // force reflow | |
| 1007 | - } | |
| 1008 | - | |
| 1009 | - that.$element.addClass('in') | |
| 1010 | - | |
| 1011 | - that.enforceFocus() | |
| 1012 | - | |
| 1013 | - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) | |
| 1014 | - | |
| 1015 | - transition ? | |
| 1016 | - that.$dialog // wait for modal to slide in | |
| 1017 | - .one('bsTransitionEnd', function () { | |
| 1018 | - that.$element.trigger('focus').trigger(e) | |
| 1019 | - }) | |
| 1020 | - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : | |
| 1021 | - that.$element.trigger('focus').trigger(e) | |
| 1022 | - }) | |
| 1023 | - } | |
| 1024 | - | |
| 1025 | - Modal.prototype.hide = function (e) { | |
| 1026 | - if (e) e.preventDefault() | |
| 1027 | - | |
| 1028 | - e = $.Event('hide.bs.modal') | |
| 1029 | - | |
| 1030 | - this.$element.trigger(e) | |
| 1031 | - | |
| 1032 | - if (!this.isShown || e.isDefaultPrevented()) return | |
| 1033 | - | |
| 1034 | - this.isShown = false | |
| 1035 | - | |
| 1036 | - this.escape() | |
| 1037 | - this.resize() | |
| 1038 | - | |
| 1039 | - $(document).off('focusin.bs.modal') | |
| 1040 | - | |
| 1041 | - this.$element | |
| 1042 | - .removeClass('in') | |
| 1043 | - .off('click.dismiss.bs.modal') | |
| 1044 | - .off('mouseup.dismiss.bs.modal') | |
| 1045 | - | |
| 1046 | - this.$dialog.off('mousedown.dismiss.bs.modal') | |
| 1047 | - | |
| 1048 | - $.support.transition && this.$element.hasClass('fade') ? | |
| 1049 | - this.$element | |
| 1050 | - .one('bsTransitionEnd', $.proxy(this.hideModal, this)) | |
| 1051 | - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : | |
| 1052 | - this.hideModal() | |
| 1053 | - } | |
| 1054 | - | |
| 1055 | - Modal.prototype.enforceFocus = function () { | |
| 1056 | - $(document) | |
| 1057 | - .off('focusin.bs.modal') // guard against infinite focus loop | |
| 1058 | - .on('focusin.bs.modal', $.proxy(function (e) { | |
| 1059 | - if (document !== e.target && | |
| 1060 | - this.$element[0] !== e.target && | |
| 1061 | - !this.$element.has(e.target).length) { | |
| 1062 | - this.$element.trigger('focus') | |
| 1063 | - } | |
| 1064 | - }, this)) | |
| 1065 | - } | |
| 1066 | - | |
| 1067 | - Modal.prototype.escape = function () { | |
| 1068 | - if (this.isShown && this.options.keyboard) { | |
| 1069 | - this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { | |
| 1070 | - e.which == 27 && this.hide() | |
| 1071 | - }, this)) | |
| 1072 | - } else if (!this.isShown) { | |
| 1073 | - this.$element.off('keydown.dismiss.bs.modal') | |
| 1074 | - } | |
| 1075 | - } | |
| 1076 | - | |
| 1077 | - Modal.prototype.resize = function () { | |
| 1078 | - if (this.isShown) { | |
| 1079 | - $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) | |
| 1080 | - } else { | |
| 1081 | - $(window).off('resize.bs.modal') | |
| 1082 | - } | |
| 1083 | - } | |
| 1084 | - | |
| 1085 | - Modal.prototype.hideModal = function () { | |
| 1086 | - var that = this | |
| 1087 | - this.$element.hide() | |
| 1088 | - this.backdrop(function () { | |
| 1089 | - that.$body.removeClass('modal-open') | |
| 1090 | - that.resetAdjustments() | |
| 1091 | - that.resetScrollbar() | |
| 1092 | - that.$element.trigger('hidden.bs.modal') | |
| 1093 | - }) | |
| 1094 | - } | |
| 1095 | - | |
| 1096 | - Modal.prototype.removeBackdrop = function () { | |
| 1097 | - this.$backdrop && this.$backdrop.remove() | |
| 1098 | - this.$backdrop = null | |
| 1099 | - } | |
| 1100 | - | |
| 1101 | - Modal.prototype.backdrop = function (callback) { | |
| 1102 | - var that = this | |
| 1103 | - var animate = this.$element.hasClass('fade') ? 'fade' : '' | |
| 1104 | - | |
| 1105 | - if (this.isShown && this.options.backdrop) { | |
| 1106 | - var doAnimate = $.support.transition && animate | |
| 1107 | - | |
| 1108 | - this.$backdrop = $(document.createElement('div')) | |
| 1109 | - .addClass('modal-backdrop ' + animate) | |
| 1110 | - .appendTo(this.$body) | |
| 1111 | - | |
| 1112 | - this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { | |
| 1113 | - if (this.ignoreBackdropClick) { | |
| 1114 | - this.ignoreBackdropClick = false | |
| 1115 | - return | |
| 1116 | - } | |
| 1117 | - if (e.target !== e.currentTarget) return | |
| 1118 | - this.options.backdrop == 'static' | |
| 1119 | - ? this.$element[0].focus() | |
| 1120 | - : this.hide() | |
| 1121 | - }, this)) | |
| 1122 | - | |
| 1123 | - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow | |
| 1124 | - | |
| 1125 | - this.$backdrop.addClass('in') | |
| 1126 | - | |
| 1127 | - if (!callback) return | |
| 1128 | - | |
| 1129 | - doAnimate ? | |
| 1130 | - this.$backdrop | |
| 1131 | - .one('bsTransitionEnd', callback) | |
| 1132 | - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : | |
| 1133 | - callback() | |
| 1134 | - | |
| 1135 | - } else if (!this.isShown && this.$backdrop) { | |
| 1136 | - this.$backdrop.removeClass('in') | |
| 1137 | - | |
| 1138 | - var callbackRemove = function () { | |
| 1139 | - that.removeBackdrop() | |
| 1140 | - callback && callback() | |
| 1141 | - } | |
| 1142 | - $.support.transition && this.$element.hasClass('fade') ? | |
| 1143 | - this.$backdrop | |
| 1144 | - .one('bsTransitionEnd', callbackRemove) | |
| 1145 | - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : | |
| 1146 | - callbackRemove() | |
| 1147 | - | |
| 1148 | - } else if (callback) { | |
| 1149 | - callback() | |
| 1150 | - } | |
| 1151 | - } | |
| 1152 | - | |
| 1153 | - // these following methods are used to handle overflowing modals | |
| 1154 | - | |
| 1155 | - Modal.prototype.handleUpdate = function () { | |
| 1156 | - this.adjustDialog() | |
| 1157 | - } | |
| 1158 | - | |
| 1159 | - Modal.prototype.adjustDialog = function () { | |
| 1160 | - var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight | |
| 1161 | - | |
| 1162 | - this.$element.css({ | |
| 1163 | - paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', | |
| 1164 | - paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' | |
| 1165 | - }) | |
| 1166 | - } | |
| 1167 | - | |
| 1168 | - Modal.prototype.resetAdjustments = function () { | |
| 1169 | - this.$element.css({ | |
| 1170 | - paddingLeft: '', | |
| 1171 | - paddingRight: '' | |
| 1172 | - }) | |
| 1173 | - } | |
| 1174 | - | |
| 1175 | - Modal.prototype.checkScrollbar = function () { | |
| 1176 | - var fullWindowWidth = window.innerWidth | |
| 1177 | - if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 | |
| 1178 | - var documentElementRect = document.documentElement.getBoundingClientRect() | |
| 1179 | - fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) | |
| 1180 | - } | |
| 1181 | - this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth | |
| 1182 | - this.scrollbarWidth = this.measureScrollbar() | |
| 1183 | - } | |
| 1184 | - | |
| 1185 | - Modal.prototype.setScrollbar = function () { | |
| 1186 | - var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) | |
| 1187 | - this.originalBodyPad = document.body.style.paddingRight || '' | |
| 1188 | - if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) | |
| 1189 | - } | |
| 1190 | - | |
| 1191 | - Modal.prototype.resetScrollbar = function () { | |
| 1192 | - this.$body.css('padding-right', this.originalBodyPad) | |
| 1193 | - } | |
| 1194 | - | |
| 1195 | - Modal.prototype.measureScrollbar = function () { // thx walsh | |
| 1196 | - var scrollDiv = document.createElement('div') | |
| 1197 | - scrollDiv.className = 'modal-scrollbar-measure' | |
| 1198 | - this.$body.append(scrollDiv) | |
| 1199 | - var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth | |
| 1200 | - this.$body[0].removeChild(scrollDiv) | |
| 1201 | - return scrollbarWidth | |
| 1202 | - } | |
| 1203 | - | |
| 1204 | - | |
| 1205 | - // MODAL PLUGIN DEFINITION | |
| 1206 | - // ======================= | |
| 1207 | - | |
| 1208 | - function Plugin(option, _relatedTarget) { | |
| 1209 | - return this.each(function () { | |
| 1210 | - var $this = $(this) | |
| 1211 | - var data = $this.data('bs.modal') | |
| 1212 | - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) | |
| 1213 | - | |
| 1214 | - if (!data) $this.data('bs.modal', (data = new Modal(this, options))) | |
| 1215 | - if (typeof option == 'string') data[option](_relatedTarget) | |
| 1216 | - else if (options.show) data.show(_relatedTarget) | |
| 1217 | - }) | |
| 1218 | - } | |
| 1219 | - | |
| 1220 | - var old = $.fn.modal | |
| 1221 | - | |
| 1222 | - $.fn.modal = Plugin | |
| 1223 | - $.fn.modal.Constructor = Modal | |
| 1224 | - | |
| 1225 | - | |
| 1226 | - // MODAL NO CONFLICT | |
| 1227 | - // ================= | |
| 1228 | - | |
| 1229 | - $.fn.modal.noConflict = function () { | |
| 1230 | - $.fn.modal = old | |
| 1231 | - return this | |
| 1232 | - } | |
| 1233 | - | |
| 1234 | - | |
| 1235 | - // MODAL DATA-API | |
| 1236 | - // ============== | |
| 1237 | - | |
| 1238 | - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { | |
| 1239 | - var $this = $(this) | |
| 1240 | - var href = $this.attr('href') | |
| 1241 | - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 | |
| 1242 | - var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) | |
| 1243 | - | |
| 1244 | - if ($this.is('a')) e.preventDefault() | |
| 1245 | - | |
| 1246 | - $target.one('show.bs.modal', function (showEvent) { | |
| 1247 | - if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown | |
| 1248 | - $target.one('hidden.bs.modal', function () { | |
| 1249 | - $this.is(':visible') && $this.trigger('focus') | |
| 1250 | - }) | |
| 1251 | - }) | |
| 1252 | - Plugin.call($target, option, this) | |
| 1253 | - }) | |
| 1254 | - | |
| 1255 | -}(jQuery); | |
| 1256 | - | |
| 1257 | -/* ======================================================================== | |
| 1258 | - * Bootstrap: tooltip.js v3.3.7 | |
| 1259 | - * http://getbootstrap.com/javascript/#tooltip | |
| 1260 | - * Inspired by the original jQuery.tipsy by Jason Frame | |
| 1261 | - * ======================================================================== | |
| 1262 | - * Copyright 2011-2016 Twitter, Inc. | |
| 1263 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 1264 | - * ======================================================================== */ | |
| 1265 | - | |
| 1266 | - | |
| 1267 | -+function ($) { | |
| 1268 | - 'use strict'; | |
| 1269 | - | |
| 1270 | - // TOOLTIP PUBLIC CLASS DEFINITION | |
| 1271 | - // =============================== | |
| 1272 | - | |
| 1273 | - var Tooltip = function (element, options) { | |
| 1274 | - this.type = null | |
| 1275 | - this.options = null | |
| 1276 | - this.enabled = null | |
| 1277 | - this.timeout = null | |
| 1278 | - this.hoverState = null | |
| 1279 | - this.$element = null | |
| 1280 | - this.inState = null | |
| 1281 | - | |
| 1282 | - this.init('tooltip', element, options) | |
| 1283 | - } | |
| 1284 | - | |
| 1285 | - Tooltip.VERSION = '3.3.7' | |
| 1286 | - | |
| 1287 | - Tooltip.TRANSITION_DURATION = 150 | |
| 1288 | - | |
| 1289 | - Tooltip.DEFAULTS = { | |
| 1290 | - animation: true, | |
| 1291 | - placement: 'top', | |
| 1292 | - selector: false, | |
| 1293 | - template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', | |
| 1294 | - trigger: 'hover focus', | |
| 1295 | - title: '', | |
| 1296 | - delay: 0, | |
| 1297 | - html: false, | |
| 1298 | - container: false, | |
| 1299 | - viewport: { | |
| 1300 | - selector: 'body', | |
| 1301 | - padding: 0 | |
| 1302 | - } | |
| 1303 | - } | |
| 1304 | - | |
| 1305 | - Tooltip.prototype.init = function (type, element, options) { | |
| 1306 | - this.enabled = true | |
| 1307 | - this.type = type | |
| 1308 | - this.$element = $(element) | |
| 1309 | - this.options = this.getOptions(options) | |
| 1310 | - this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) | |
| 1311 | - this.inState = { click: false, hover: false, focus: false } | |
| 1312 | - | |
| 1313 | - if (this.$element[0] instanceof document.constructor && !this.options.selector) { | |
| 1314 | - throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') | |
| 1315 | - } | |
| 1316 | - | |
| 1317 | - var triggers = this.options.trigger.split(' ') | |
| 1318 | - | |
| 1319 | - for (var i = triggers.length; i--;) { | |
| 1320 | - var trigger = triggers[i] | |
| 1321 | - | |
| 1322 | - if (trigger == 'click') { | |
| 1323 | - this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) | |
| 1324 | - } else if (trigger != 'manual') { | |
| 1325 | - var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' | |
| 1326 | - var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' | |
| 1327 | - | |
| 1328 | - this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) | |
| 1329 | - this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) | |
| 1330 | - } | |
| 1331 | - } | |
| 1332 | - | |
| 1333 | - this.options.selector ? | |
| 1334 | - (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : | |
| 1335 | - this.fixTitle() | |
| 1336 | - } | |
| 1337 | - | |
| 1338 | - Tooltip.prototype.getDefaults = function () { | |
| 1339 | - return Tooltip.DEFAULTS | |
| 1340 | - } | |
| 1341 | - | |
| 1342 | - Tooltip.prototype.getOptions = function (options) { | |
| 1343 | - options = $.extend({}, this.getDefaults(), this.$element.data(), options) | |
| 1344 | - | |
| 1345 | - if (options.delay && typeof options.delay == 'number') { | |
| 1346 | - options.delay = { | |
| 1347 | - show: options.delay, | |
| 1348 | - hide: options.delay | |
| 1349 | - } | |
| 1350 | - } | |
| 1351 | - | |
| 1352 | - return options | |
| 1353 | - } | |
| 1354 | - | |
| 1355 | - Tooltip.prototype.getDelegateOptions = function () { | |
| 1356 | - var options = {} | |
| 1357 | - var defaults = this.getDefaults() | |
| 1358 | - | |
| 1359 | - this._options && $.each(this._options, function (key, value) { | |
| 1360 | - if (defaults[key] != value) options[key] = value | |
| 1361 | - }) | |
| 1362 | - | |
| 1363 | - return options | |
| 1364 | - } | |
| 1365 | - | |
| 1366 | - Tooltip.prototype.enter = function (obj) { | |
| 1367 | - var self = obj instanceof this.constructor ? | |
| 1368 | - obj : $(obj.currentTarget).data('bs.' + this.type) | |
| 1369 | - | |
| 1370 | - if (!self) { | |
| 1371 | - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) | |
| 1372 | - $(obj.currentTarget).data('bs.' + this.type, self) | |
| 1373 | - } | |
| 1374 | - | |
| 1375 | - if (obj instanceof $.Event) { | |
| 1376 | - self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true | |
| 1377 | - } | |
| 1378 | - | |
| 1379 | - if (self.tip().hasClass('in') || self.hoverState == 'in') { | |
| 1380 | - self.hoverState = 'in' | |
| 1381 | - return | |
| 1382 | - } | |
| 1383 | - | |
| 1384 | - clearTimeout(self.timeout) | |
| 1385 | - | |
| 1386 | - self.hoverState = 'in' | |
| 1387 | - | |
| 1388 | - if (!self.options.delay || !self.options.delay.show) return self.show() | |
| 1389 | - | |
| 1390 | - self.timeout = setTimeout(function () { | |
| 1391 | - if (self.hoverState == 'in') self.show() | |
| 1392 | - }, self.options.delay.show) | |
| 1393 | - } | |
| 1394 | - | |
| 1395 | - Tooltip.prototype.isInStateTrue = function () { | |
| 1396 | - for (var key in this.inState) { | |
| 1397 | - if (this.inState[key]) return true | |
| 1398 | - } | |
| 1399 | - | |
| 1400 | - return false | |
| 1401 | - } | |
| 1402 | - | |
| 1403 | - Tooltip.prototype.leave = function (obj) { | |
| 1404 | - var self = obj instanceof this.constructor ? | |
| 1405 | - obj : $(obj.currentTarget).data('bs.' + this.type) | |
| 1406 | - | |
| 1407 | - if (!self) { | |
| 1408 | - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) | |
| 1409 | - $(obj.currentTarget).data('bs.' + this.type, self) | |
| 1410 | - } | |
| 1411 | - | |
| 1412 | - if (obj instanceof $.Event) { | |
| 1413 | - self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false | |
| 1414 | - } | |
| 1415 | - | |
| 1416 | - if (self.isInStateTrue()) return | |
| 1417 | - | |
| 1418 | - clearTimeout(self.timeout) | |
| 1419 | - | |
| 1420 | - self.hoverState = 'out' | |
| 1421 | - | |
| 1422 | - if (!self.options.delay || !self.options.delay.hide) return self.hide() | |
| 1423 | - | |
| 1424 | - self.timeout = setTimeout(function () { | |
| 1425 | - if (self.hoverState == 'out') self.hide() | |
| 1426 | - }, self.options.delay.hide) | |
| 1427 | - } | |
| 1428 | - | |
| 1429 | - Tooltip.prototype.show = function () { | |
| 1430 | - var e = $.Event('show.bs.' + this.type) | |
| 1431 | - | |
| 1432 | - if (this.hasContent() && this.enabled) { | |
| 1433 | - this.$element.trigger(e) | |
| 1434 | - | |
| 1435 | - var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) | |
| 1436 | - if (e.isDefaultPrevented() || !inDom) return | |
| 1437 | - var that = this | |
| 1438 | - | |
| 1439 | - var $tip = this.tip() | |
| 1440 | - | |
| 1441 | - var tipId = this.getUID(this.type) | |
| 1442 | - | |
| 1443 | - this.setContent() | |
| 1444 | - $tip.attr('id', tipId) | |
| 1445 | - this.$element.attr('aria-describedby', tipId) | |
| 1446 | - | |
| 1447 | - if (this.options.animation) $tip.addClass('fade') | |
| 1448 | - | |
| 1449 | - var placement = typeof this.options.placement == 'function' ? | |
| 1450 | - this.options.placement.call(this, $tip[0], this.$element[0]) : | |
| 1451 | - this.options.placement | |
| 1452 | - | |
| 1453 | - var autoToken = /\s?auto?\s?/i | |
| 1454 | - var autoPlace = autoToken.test(placement) | |
| 1455 | - if (autoPlace) placement = placement.replace(autoToken, '') || 'top' | |
| 1456 | - | |
| 1457 | - $tip | |
| 1458 | - .detach() | |
| 1459 | - .css({ top: 0, left: 0, display: 'block' }) | |
| 1460 | - .addClass(placement) | |
| 1461 | - .data('bs.' + this.type, this) | |
| 1462 | - | |
| 1463 | - this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) | |
| 1464 | - this.$element.trigger('inserted.bs.' + this.type) | |
| 1465 | - | |
| 1466 | - var pos = this.getPosition() | |
| 1467 | - var actualWidth = $tip[0].offsetWidth | |
| 1468 | - var actualHeight = $tip[0].offsetHeight | |
| 1469 | - | |
| 1470 | - if (autoPlace) { | |
| 1471 | - var orgPlacement = placement | |
| 1472 | - var viewportDim = this.getPosition(this.$viewport) | |
| 1473 | - | |
| 1474 | - placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : | |
| 1475 | - placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : | |
| 1476 | - placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : | |
| 1477 | - placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : | |
| 1478 | - placement | |
| 1479 | - | |
| 1480 | - $tip | |
| 1481 | - .removeClass(orgPlacement) | |
| 1482 | - .addClass(placement) | |
| 1483 | - } | |
| 1484 | - | |
| 1485 | - var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) | |
| 1486 | - | |
| 1487 | - this.applyPlacement(calculatedOffset, placement) | |
| 1488 | - | |
| 1489 | - var complete = function () { | |
| 1490 | - var prevHoverState = that.hoverState | |
| 1491 | - that.$element.trigger('shown.bs.' + that.type) | |
| 1492 | - that.hoverState = null | |
| 1493 | - | |
| 1494 | - if (prevHoverState == 'out') that.leave(that) | |
| 1495 | - } | |
| 1496 | - | |
| 1497 | - $.support.transition && this.$tip.hasClass('fade') ? | |
| 1498 | - $tip | |
| 1499 | - .one('bsTransitionEnd', complete) | |
| 1500 | - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : | |
| 1501 | - complete() | |
| 1502 | - } | |
| 1503 | - } | |
| 1504 | - | |
| 1505 | - Tooltip.prototype.applyPlacement = function (offset, placement) { | |
| 1506 | - var $tip = this.tip() | |
| 1507 | - var width = $tip[0].offsetWidth | |
| 1508 | - var height = $tip[0].offsetHeight | |
| 1509 | - | |
| 1510 | - // manually read margins because getBoundingClientRect includes difference | |
| 1511 | - var marginTop = parseInt($tip.css('margin-top'), 10) | |
| 1512 | - var marginLeft = parseInt($tip.css('margin-left'), 10) | |
| 1513 | - | |
| 1514 | - // we must check for NaN for ie 8/9 | |
| 1515 | - if (isNaN(marginTop)) marginTop = 0 | |
| 1516 | - if (isNaN(marginLeft)) marginLeft = 0 | |
| 1517 | - | |
| 1518 | - offset.top += marginTop | |
| 1519 | - offset.left += marginLeft | |
| 1520 | - | |
| 1521 | - // $.fn.offset doesn't round pixel values | |
| 1522 | - // so we use setOffset directly with our own function B-0 | |
| 1523 | - $.offset.setOffset($tip[0], $.extend({ | |
| 1524 | - using: function (props) { | |
| 1525 | - $tip.css({ | |
| 1526 | - top: Math.round(props.top), | |
| 1527 | - left: Math.round(props.left) | |
| 1528 | - }) | |
| 1529 | - } | |
| 1530 | - }, offset), 0) | |
| 1531 | - | |
| 1532 | - $tip.addClass('in') | |
| 1533 | - | |
| 1534 | - // check to see if placing tip in new offset caused the tip to resize itself | |
| 1535 | - var actualWidth = $tip[0].offsetWidth | |
| 1536 | - var actualHeight = $tip[0].offsetHeight | |
| 1537 | - | |
| 1538 | - if (placement == 'top' && actualHeight != height) { | |
| 1539 | - offset.top = offset.top + height - actualHeight | |
| 1540 | - } | |
| 1541 | - | |
| 1542 | - var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) | |
| 1543 | - | |
| 1544 | - if (delta.left) offset.left += delta.left | |
| 1545 | - else offset.top += delta.top | |
| 1546 | - | |
| 1547 | - var isVertical = /top|bottom/.test(placement) | |
| 1548 | - var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight | |
| 1549 | - var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' | |
| 1550 | - | |
| 1551 | - $tip.offset(offset) | |
| 1552 | - this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) | |
| 1553 | - } | |
| 1554 | - | |
| 1555 | - Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { | |
| 1556 | - this.arrow() | |
| 1557 | - .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') | |
| 1558 | - .css(isVertical ? 'top' : 'left', '') | |
| 1559 | - } | |
| 1560 | - | |
| 1561 | - Tooltip.prototype.setContent = function () { | |
| 1562 | - var $tip = this.tip() | |
| 1563 | - var title = this.getTitle() | |
| 1564 | - | |
| 1565 | - $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) | |
| 1566 | - $tip.removeClass('fade in top bottom left right') | |
| 1567 | - } | |
| 1568 | - | |
| 1569 | - Tooltip.prototype.hide = function (callback) { | |
| 1570 | - var that = this | |
| 1571 | - var $tip = $(this.$tip) | |
| 1572 | - var e = $.Event('hide.bs.' + this.type) | |
| 1573 | - | |
| 1574 | - function complete() { | |
| 1575 | - if (that.hoverState != 'in') $tip.detach() | |
| 1576 | - if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary. | |
| 1577 | - that.$element | |
| 1578 | - .removeAttr('aria-describedby') | |
| 1579 | - .trigger('hidden.bs.' + that.type) | |
| 1580 | - } | |
| 1581 | - callback && callback() | |
| 1582 | - } | |
| 1583 | - | |
| 1584 | - this.$element.trigger(e) | |
| 1585 | - | |
| 1586 | - if (e.isDefaultPrevented()) return | |
| 1587 | - | |
| 1588 | - $tip.removeClass('in') | |
| 1589 | - | |
| 1590 | - $.support.transition && $tip.hasClass('fade') ? | |
| 1591 | - $tip | |
| 1592 | - .one('bsTransitionEnd', complete) | |
| 1593 | - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : | |
| 1594 | - complete() | |
| 1595 | - | |
| 1596 | - this.hoverState = null | |
| 1597 | - | |
| 1598 | - return this | |
| 1599 | - } | |
| 1600 | - | |
| 1601 | - Tooltip.prototype.fixTitle = function () { | |
| 1602 | - var $e = this.$element | |
| 1603 | - if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { | |
| 1604 | - $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') | |
| 1605 | - } | |
| 1606 | - } | |
| 1607 | - | |
| 1608 | - Tooltip.prototype.hasContent = function () { | |
| 1609 | - return this.getTitle() | |
| 1610 | - } | |
| 1611 | - | |
| 1612 | - Tooltip.prototype.getPosition = function ($element) { | |
| 1613 | - $element = $element || this.$element | |
| 1614 | - | |
| 1615 | - var el = $element[0] | |
| 1616 | - var isBody = el.tagName == 'BODY' | |
| 1617 | - | |
| 1618 | - var elRect = el.getBoundingClientRect() | |
| 1619 | - if (elRect.width == null) { | |
| 1620 | - // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 | |
| 1621 | - elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) | |
| 1622 | - } | |
| 1623 | - var isSvg = window.SVGElement && el instanceof window.SVGElement | |
| 1624 | - // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3. | |
| 1625 | - // See https://github.com/twbs/bootstrap/issues/20280 | |
| 1626 | - var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset()) | |
| 1627 | - var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } | |
| 1628 | - var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null | |
| 1629 | - | |
| 1630 | - return $.extend({}, elRect, scroll, outerDims, elOffset) | |
| 1631 | - } | |
| 1632 | - | |
| 1633 | - Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { | |
| 1634 | - return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : | |
| 1635 | - placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : | |
| 1636 | - placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : | |
| 1637 | - /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } | |
| 1638 | - | |
| 1639 | - } | |
| 1640 | - | |
| 1641 | - Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { | |
| 1642 | - var delta = { top: 0, left: 0 } | |
| 1643 | - if (!this.$viewport) return delta | |
| 1644 | - | |
| 1645 | - var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 | |
| 1646 | - var viewportDimensions = this.getPosition(this.$viewport) | |
| 1647 | - | |
| 1648 | - if (/right|left/.test(placement)) { | |
| 1649 | - var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll | |
| 1650 | - var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight | |
| 1651 | - if (topEdgeOffset < viewportDimensions.top) { // top overflow | |
| 1652 | - delta.top = viewportDimensions.top - topEdgeOffset | |
| 1653 | - } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow | |
| 1654 | - delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset | |
| 1655 | - } | |
| 1656 | - } else { | |
| 1657 | - var leftEdgeOffset = pos.left - viewportPadding | |
| 1658 | - var rightEdgeOffset = pos.left + viewportPadding + actualWidth | |
| 1659 | - if (leftEdgeOffset < viewportDimensions.left) { // left overflow | |
| 1660 | - delta.left = viewportDimensions.left - leftEdgeOffset | |
| 1661 | - } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow | |
| 1662 | - delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset | |
| 1663 | - } | |
| 1664 | - } | |
| 1665 | - | |
| 1666 | - return delta | |
| 1667 | - } | |
| 1668 | - | |
| 1669 | - Tooltip.prototype.getTitle = function () { | |
| 1670 | - var title | |
| 1671 | - var $e = this.$element | |
| 1672 | - var o = this.options | |
| 1673 | - | |
| 1674 | - title = $e.attr('data-original-title') | |
| 1675 | - || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) | |
| 1676 | - | |
| 1677 | - return title | |
| 1678 | - } | |
| 1679 | - | |
| 1680 | - Tooltip.prototype.getUID = function (prefix) { | |
| 1681 | - do prefix += ~~(Math.random() * 1000000) | |
| 1682 | - while (document.getElementById(prefix)) | |
| 1683 | - return prefix | |
| 1684 | - } | |
| 1685 | - | |
| 1686 | - Tooltip.prototype.tip = function () { | |
| 1687 | - if (!this.$tip) { | |
| 1688 | - this.$tip = $(this.options.template) | |
| 1689 | - if (this.$tip.length != 1) { | |
| 1690 | - throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') | |
| 1691 | - } | |
| 1692 | - } | |
| 1693 | - return this.$tip | |
| 1694 | - } | |
| 1695 | - | |
| 1696 | - Tooltip.prototype.arrow = function () { | |
| 1697 | - return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) | |
| 1698 | - } | |
| 1699 | - | |
| 1700 | - Tooltip.prototype.enable = function () { | |
| 1701 | - this.enabled = true | |
| 1702 | - } | |
| 1703 | - | |
| 1704 | - Tooltip.prototype.disable = function () { | |
| 1705 | - this.enabled = false | |
| 1706 | - } | |
| 1707 | - | |
| 1708 | - Tooltip.prototype.toggleEnabled = function () { | |
| 1709 | - this.enabled = !this.enabled | |
| 1710 | - } | |
| 1711 | - | |
| 1712 | - Tooltip.prototype.toggle = function (e) { | |
| 1713 | - var self = this | |
| 1714 | - if (e) { | |
| 1715 | - self = $(e.currentTarget).data('bs.' + this.type) | |
| 1716 | - if (!self) { | |
| 1717 | - self = new this.constructor(e.currentTarget, this.getDelegateOptions()) | |
| 1718 | - $(e.currentTarget).data('bs.' + this.type, self) | |
| 1719 | - } | |
| 1720 | - } | |
| 1721 | - | |
| 1722 | - if (e) { | |
| 1723 | - self.inState.click = !self.inState.click | |
| 1724 | - if (self.isInStateTrue()) self.enter(self) | |
| 1725 | - else self.leave(self) | |
| 1726 | - } else { | |
| 1727 | - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) | |
| 1728 | - } | |
| 1729 | - } | |
| 1730 | - | |
| 1731 | - Tooltip.prototype.destroy = function () { | |
| 1732 | - var that = this | |
| 1733 | - clearTimeout(this.timeout) | |
| 1734 | - this.hide(function () { | |
| 1735 | - that.$element.off('.' + that.type).removeData('bs.' + that.type) | |
| 1736 | - if (that.$tip) { | |
| 1737 | - that.$tip.detach() | |
| 1738 | - } | |
| 1739 | - that.$tip = null | |
| 1740 | - that.$arrow = null | |
| 1741 | - that.$viewport = null | |
| 1742 | - that.$element = null | |
| 1743 | - }) | |
| 1744 | - } | |
| 1745 | - | |
| 1746 | - | |
| 1747 | - // TOOLTIP PLUGIN DEFINITION | |
| 1748 | - // ========================= | |
| 1749 | - | |
| 1750 | - function Plugin(option) { | |
| 1751 | - return this.each(function () { | |
| 1752 | - var $this = $(this) | |
| 1753 | - var data = $this.data('bs.tooltip') | |
| 1754 | - var options = typeof option == 'object' && option | |
| 1755 | - | |
| 1756 | - if (!data && /destroy|hide/.test(option)) return | |
| 1757 | - if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) | |
| 1758 | - if (typeof option == 'string') data[option]() | |
| 1759 | - }) | |
| 1760 | - } | |
| 1761 | - | |
| 1762 | - var old = $.fn.tooltip | |
| 1763 | - | |
| 1764 | - $.fn.tooltip = Plugin | |
| 1765 | - $.fn.tooltip.Constructor = Tooltip | |
| 1766 | - | |
| 1767 | - | |
| 1768 | - // TOOLTIP NO CONFLICT | |
| 1769 | - // =================== | |
| 1770 | - | |
| 1771 | - $.fn.tooltip.noConflict = function () { | |
| 1772 | - $.fn.tooltip = old | |
| 1773 | - return this | |
| 1774 | - } | |
| 1775 | - | |
| 1776 | -}(jQuery); | |
| 1777 | - | |
| 1778 | -/* ======================================================================== | |
| 1779 | - * Bootstrap: popover.js v3.3.7 | |
| 1780 | - * http://getbootstrap.com/javascript/#popovers | |
| 1781 | - * ======================================================================== | |
| 1782 | - * Copyright 2011-2016 Twitter, Inc. | |
| 1783 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 1784 | - * ======================================================================== */ | |
| 1785 | - | |
| 1786 | - | |
| 1787 | -+function ($) { | |
| 1788 | - 'use strict'; | |
| 1789 | - | |
| 1790 | - // POPOVER PUBLIC CLASS DEFINITION | |
| 1791 | - // =============================== | |
| 1792 | - | |
| 1793 | - var Popover = function (element, options) { | |
| 1794 | - this.init('popover', element, options) | |
| 1795 | - } | |
| 1796 | - | |
| 1797 | - if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') | |
| 1798 | - | |
| 1799 | - Popover.VERSION = '3.3.7' | |
| 1800 | - | |
| 1801 | - Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { | |
| 1802 | - placement: 'right', | |
| 1803 | - trigger: 'click', | |
| 1804 | - content: '', | |
| 1805 | - template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' | |
| 1806 | - }) | |
| 1807 | - | |
| 1808 | - | |
| 1809 | - // NOTE: POPOVER EXTENDS tooltip.js | |
| 1810 | - // ================================ | |
| 1811 | - | |
| 1812 | - Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) | |
| 1813 | - | |
| 1814 | - Popover.prototype.constructor = Popover | |
| 1815 | - | |
| 1816 | - Popover.prototype.getDefaults = function () { | |
| 1817 | - return Popover.DEFAULTS | |
| 1818 | - } | |
| 1819 | - | |
| 1820 | - Popover.prototype.setContent = function () { | |
| 1821 | - var $tip = this.tip() | |
| 1822 | - var title = this.getTitle() | |
| 1823 | - var content = this.getContent() | |
| 1824 | - | |
| 1825 | - $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) | |
| 1826 | - $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events | |
| 1827 | - this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' | |
| 1828 | - ](content) | |
| 1829 | - | |
| 1830 | - $tip.removeClass('fade top bottom left right in') | |
| 1831 | - | |
| 1832 | - // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do | |
| 1833 | - // this manually by checking the contents. | |
| 1834 | - if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() | |
| 1835 | - } | |
| 1836 | - | |
| 1837 | - Popover.prototype.hasContent = function () { | |
| 1838 | - return this.getTitle() || this.getContent() | |
| 1839 | - } | |
| 1840 | - | |
| 1841 | - Popover.prototype.getContent = function () { | |
| 1842 | - var $e = this.$element | |
| 1843 | - var o = this.options | |
| 1844 | - | |
| 1845 | - return $e.attr('data-content') | |
| 1846 | - || (typeof o.content == 'function' ? | |
| 1847 | - o.content.call($e[0]) : | |
| 1848 | - o.content) | |
| 1849 | - } | |
| 1850 | - | |
| 1851 | - Popover.prototype.arrow = function () { | |
| 1852 | - return (this.$arrow = this.$arrow || this.tip().find('.arrow')) | |
| 1853 | - } | |
| 1854 | - | |
| 1855 | - | |
| 1856 | - // POPOVER PLUGIN DEFINITION | |
| 1857 | - // ========================= | |
| 1858 | - | |
| 1859 | - function Plugin(option) { | |
| 1860 | - return this.each(function () { | |
| 1861 | - var $this = $(this) | |
| 1862 | - var data = $this.data('bs.popover') | |
| 1863 | - var options = typeof option == 'object' && option | |
| 1864 | - | |
| 1865 | - if (!data && /destroy|hide/.test(option)) return | |
| 1866 | - if (!data) $this.data('bs.popover', (data = new Popover(this, options))) | |
| 1867 | - if (typeof option == 'string') data[option]() | |
| 1868 | - }) | |
| 1869 | - } | |
| 1870 | - | |
| 1871 | - var old = $.fn.popover | |
| 1872 | - | |
| 1873 | - $.fn.popover = Plugin | |
| 1874 | - $.fn.popover.Constructor = Popover | |
| 1875 | - | |
| 1876 | - | |
| 1877 | - // POPOVER NO CONFLICT | |
| 1878 | - // =================== | |
| 1879 | - | |
| 1880 | - $.fn.popover.noConflict = function () { | |
| 1881 | - $.fn.popover = old | |
| 1882 | - return this | |
| 1883 | - } | |
| 1884 | - | |
| 1885 | -}(jQuery); | |
| 1886 | - | |
| 1887 | -/* ======================================================================== | |
| 1888 | - * Bootstrap: scrollspy.js v3.3.7 | |
| 1889 | - * http://getbootstrap.com/javascript/#scrollspy | |
| 1890 | - * ======================================================================== | |
| 1891 | - * Copyright 2011-2016 Twitter, Inc. | |
| 1892 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 1893 | - * ======================================================================== */ | |
| 1894 | - | |
| 1895 | - | |
| 1896 | -+function ($) { | |
| 1897 | - 'use strict'; | |
| 1898 | - | |
| 1899 | - // SCROLLSPY CLASS DEFINITION | |
| 1900 | - // ========================== | |
| 1901 | - | |
| 1902 | - function ScrollSpy(element, options) { | |
| 1903 | - this.$body = $(document.body) | |
| 1904 | - this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) | |
| 1905 | - this.options = $.extend({}, ScrollSpy.DEFAULTS, options) | |
| 1906 | - this.selector = (this.options.target || '') + ' .nav li > a' | |
| 1907 | - this.offsets = [] | |
| 1908 | - this.targets = [] | |
| 1909 | - this.activeTarget = null | |
| 1910 | - this.scrollHeight = 0 | |
| 1911 | - | |
| 1912 | - this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) | |
| 1913 | - this.refresh() | |
| 1914 | - this.process() | |
| 1915 | - } | |
| 1916 | - | |
| 1917 | - ScrollSpy.VERSION = '3.3.7' | |
| 1918 | - | |
| 1919 | - ScrollSpy.DEFAULTS = { | |
| 1920 | - offset: 10 | |
| 1921 | - } | |
| 1922 | - | |
| 1923 | - ScrollSpy.prototype.getScrollHeight = function () { | |
| 1924 | - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) | |
| 1925 | - } | |
| 1926 | - | |
| 1927 | - ScrollSpy.prototype.refresh = function () { | |
| 1928 | - var that = this | |
| 1929 | - var offsetMethod = 'offset' | |
| 1930 | - var offsetBase = 0 | |
| 1931 | - | |
| 1932 | - this.offsets = [] | |
| 1933 | - this.targets = [] | |
| 1934 | - this.scrollHeight = this.getScrollHeight() | |
| 1935 | - | |
| 1936 | - if (!$.isWindow(this.$scrollElement[0])) { | |
| 1937 | - offsetMethod = 'position' | |
| 1938 | - offsetBase = this.$scrollElement.scrollTop() | |
| 1939 | - } | |
| 1940 | - | |
| 1941 | - this.$body | |
| 1942 | - .find(this.selector) | |
| 1943 | - .map(function () { | |
| 1944 | - var $el = $(this) | |
| 1945 | - var href = $el.data('target') || $el.attr('href') | |
| 1946 | - var $href = /^#./.test(href) && $(href) | |
| 1947 | - | |
| 1948 | - return ($href | |
| 1949 | - && $href.length | |
| 1950 | - && $href.is(':visible') | |
| 1951 | - && [[$href[offsetMethod]().top + offsetBase, href]]) || null | |
| 1952 | - }) | |
| 1953 | - .sort(function (a, b) { return a[0] - b[0] }) | |
| 1954 | - .each(function () { | |
| 1955 | - that.offsets.push(this[0]) | |
| 1956 | - that.targets.push(this[1]) | |
| 1957 | - }) | |
| 1958 | - } | |
| 1959 | - | |
| 1960 | - ScrollSpy.prototype.process = function () { | |
| 1961 | - var scrollTop = this.$scrollElement.scrollTop() + this.options.offset | |
| 1962 | - var scrollHeight = this.getScrollHeight() | |
| 1963 | - var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() | |
| 1964 | - var offsets = this.offsets | |
| 1965 | - var targets = this.targets | |
| 1966 | - var activeTarget = this.activeTarget | |
| 1967 | - var i | |
| 1968 | - | |
| 1969 | - if (this.scrollHeight != scrollHeight) { | |
| 1970 | - this.refresh() | |
| 1971 | - } | |
| 1972 | - | |
| 1973 | - if (scrollTop >= maxScroll) { | |
| 1974 | - return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) | |
| 1975 | - } | |
| 1976 | - | |
| 1977 | - if (activeTarget && scrollTop < offsets[0]) { | |
| 1978 | - this.activeTarget = null | |
| 1979 | - return this.clear() | |
| 1980 | - } | |
| 1981 | - | |
| 1982 | - for (i = offsets.length; i--;) { | |
| 1983 | - activeTarget != targets[i] | |
| 1984 | - && scrollTop >= offsets[i] | |
| 1985 | - && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) | |
| 1986 | - && this.activate(targets[i]) | |
| 1987 | - } | |
| 1988 | - } | |
| 1989 | - | |
| 1990 | - ScrollSpy.prototype.activate = function (target) { | |
| 1991 | - this.activeTarget = target | |
| 1992 | - | |
| 1993 | - this.clear() | |
| 1994 | - | |
| 1995 | - var selector = this.selector + | |
| 1996 | - '[data-target="' + target + '"],' + | |
| 1997 | - this.selector + '[href="' + target + '"]' | |
| 1998 | - | |
| 1999 | - var active = $(selector) | |
| 2000 | - .parents('li') | |
| 2001 | - .addClass('active') | |
| 2002 | - | |
| 2003 | - if (active.parent('.dropdown-menu').length) { | |
| 2004 | - active = active | |
| 2005 | - .closest('li.dropdown') | |
| 2006 | - .addClass('active') | |
| 2007 | - } | |
| 2008 | - | |
| 2009 | - active.trigger('activate.bs.scrollspy') | |
| 2010 | - } | |
| 2011 | - | |
| 2012 | - ScrollSpy.prototype.clear = function () { | |
| 2013 | - $(this.selector) | |
| 2014 | - .parentsUntil(this.options.target, '.active') | |
| 2015 | - .removeClass('active') | |
| 2016 | - } | |
| 2017 | - | |
| 2018 | - | |
| 2019 | - // SCROLLSPY PLUGIN DEFINITION | |
| 2020 | - // =========================== | |
| 2021 | - | |
| 2022 | - function Plugin(option) { | |
| 2023 | - return this.each(function () { | |
| 2024 | - var $this = $(this) | |
| 2025 | - var data = $this.data('bs.scrollspy') | |
| 2026 | - var options = typeof option == 'object' && option | |
| 2027 | - | |
| 2028 | - if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) | |
| 2029 | - if (typeof option == 'string') data[option]() | |
| 2030 | - }) | |
| 2031 | - } | |
| 2032 | - | |
| 2033 | - var old = $.fn.scrollspy | |
| 2034 | - | |
| 2035 | - $.fn.scrollspy = Plugin | |
| 2036 | - $.fn.scrollspy.Constructor = ScrollSpy | |
| 2037 | - | |
| 2038 | - | |
| 2039 | - // SCROLLSPY NO CONFLICT | |
| 2040 | - // ===================== | |
| 2041 | - | |
| 2042 | - $.fn.scrollspy.noConflict = function () { | |
| 2043 | - $.fn.scrollspy = old | |
| 2044 | - return this | |
| 2045 | - } | |
| 2046 | - | |
| 2047 | - | |
| 2048 | - // SCROLLSPY DATA-API | |
| 2049 | - // ================== | |
| 2050 | - | |
| 2051 | - $(window).on('load.bs.scrollspy.data-api', function () { | |
| 2052 | - $('[data-spy="scroll"]').each(function () { | |
| 2053 | - var $spy = $(this) | |
| 2054 | - Plugin.call($spy, $spy.data()) | |
| 2055 | - }) | |
| 2056 | - }) | |
| 2057 | - | |
| 2058 | -}(jQuery); | |
| 2059 | - | |
| 2060 | -/* ======================================================================== | |
| 2061 | - * Bootstrap: tab.js v3.3.7 | |
| 2062 | - * http://getbootstrap.com/javascript/#tabs | |
| 2063 | - * ======================================================================== | |
| 2064 | - * Copyright 2011-2016 Twitter, Inc. | |
| 2065 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 2066 | - * ======================================================================== */ | |
| 2067 | - | |
| 2068 | - | |
| 2069 | -+function ($) { | |
| 2070 | - 'use strict'; | |
| 2071 | - | |
| 2072 | - // TAB CLASS DEFINITION | |
| 2073 | - // ==================== | |
| 2074 | - | |
| 2075 | - var Tab = function (element) { | |
| 2076 | - // jscs:disable requireDollarBeforejQueryAssignment | |
| 2077 | - this.element = $(element) | |
| 2078 | - // jscs:enable requireDollarBeforejQueryAssignment | |
| 2079 | - } | |
| 2080 | - | |
| 2081 | - Tab.VERSION = '3.3.7' | |
| 2082 | - | |
| 2083 | - Tab.TRANSITION_DURATION = 150 | |
| 2084 | - | |
| 2085 | - Tab.prototype.show = function () { | |
| 2086 | - var $this = this.element | |
| 2087 | - var $ul = $this.closest('ul:not(.dropdown-menu)') | |
| 2088 | - var selector = $this.data('target') | |
| 2089 | - | |
| 2090 | - if (!selector) { | |
| 2091 | - selector = $this.attr('href') | |
| 2092 | - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 | |
| 2093 | - } | |
| 2094 | - | |
| 2095 | - if ($this.parent('li').hasClass('active')) return | |
| 2096 | - | |
| 2097 | - var $previous = $ul.find('.active:last a') | |
| 2098 | - var hideEvent = $.Event('hide.bs.tab', { | |
| 2099 | - relatedTarget: $this[0] | |
| 2100 | - }) | |
| 2101 | - var showEvent = $.Event('show.bs.tab', { | |
| 2102 | - relatedTarget: $previous[0] | |
| 2103 | - }) | |
| 2104 | - | |
| 2105 | - $previous.trigger(hideEvent) | |
| 2106 | - $this.trigger(showEvent) | |
| 2107 | - | |
| 2108 | - if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return | |
| 2109 | - | |
| 2110 | - var $target = $(selector) | |
| 2111 | - | |
| 2112 | - this.activate($this.closest('li'), $ul) | |
| 2113 | - this.activate($target, $target.parent(), function () { | |
| 2114 | - $previous.trigger({ | |
| 2115 | - type: 'hidden.bs.tab', | |
| 2116 | - relatedTarget: $this[0] | |
| 2117 | - }) | |
| 2118 | - $this.trigger({ | |
| 2119 | - type: 'shown.bs.tab', | |
| 2120 | - relatedTarget: $previous[0] | |
| 2121 | - }) | |
| 2122 | - }) | |
| 2123 | - } | |
| 2124 | - | |
| 2125 | - Tab.prototype.activate = function (element, container, callback) { | |
| 2126 | - var $active = container.find('> .active') | |
| 2127 | - var transition = callback | |
| 2128 | - && $.support.transition | |
| 2129 | - && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) | |
| 2130 | - | |
| 2131 | - function next() { | |
| 2132 | - $active | |
| 2133 | - .removeClass('active') | |
| 2134 | - .find('> .dropdown-menu > .active') | |
| 2135 | - .removeClass('active') | |
| 2136 | - .end() | |
| 2137 | - .find('[data-toggle="tab"]') | |
| 2138 | - .attr('aria-expanded', false) | |
| 2139 | - | |
| 2140 | - element | |
| 2141 | - .addClass('active') | |
| 2142 | - .find('[data-toggle="tab"]') | |
| 2143 | - .attr('aria-expanded', true) | |
| 2144 | - | |
| 2145 | - if (transition) { | |
| 2146 | - element[0].offsetWidth // reflow for transition | |
| 2147 | - element.addClass('in') | |
| 2148 | - } else { | |
| 2149 | - element.removeClass('fade') | |
| 2150 | - } | |
| 2151 | - | |
| 2152 | - if (element.parent('.dropdown-menu').length) { | |
| 2153 | - element | |
| 2154 | - .closest('li.dropdown') | |
| 2155 | - .addClass('active') | |
| 2156 | - .end() | |
| 2157 | - .find('[data-toggle="tab"]') | |
| 2158 | - .attr('aria-expanded', true) | |
| 2159 | - } | |
| 2160 | - | |
| 2161 | - callback && callback() | |
| 2162 | - } | |
| 2163 | - | |
| 2164 | - $active.length && transition ? | |
| 2165 | - $active | |
| 2166 | - .one('bsTransitionEnd', next) | |
| 2167 | - .emulateTransitionEnd(Tab.TRANSITION_DURATION) : | |
| 2168 | - next() | |
| 2169 | - | |
| 2170 | - $active.removeClass('in') | |
| 2171 | - } | |
| 2172 | - | |
| 2173 | - | |
| 2174 | - // TAB PLUGIN DEFINITION | |
| 2175 | - // ===================== | |
| 2176 | - | |
| 2177 | - function Plugin(option) { | |
| 2178 | - return this.each(function () { | |
| 2179 | - var $this = $(this) | |
| 2180 | - var data = $this.data('bs.tab') | |
| 2181 | - | |
| 2182 | - if (!data) $this.data('bs.tab', (data = new Tab(this))) | |
| 2183 | - if (typeof option == 'string') data[option]() | |
| 2184 | - }) | |
| 2185 | - } | |
| 2186 | - | |
| 2187 | - var old = $.fn.tab | |
| 2188 | - | |
| 2189 | - $.fn.tab = Plugin | |
| 2190 | - $.fn.tab.Constructor = Tab | |
| 2191 | - | |
| 2192 | - | |
| 2193 | - // TAB NO CONFLICT | |
| 2194 | - // =============== | |
| 2195 | - | |
| 2196 | - $.fn.tab.noConflict = function () { | |
| 2197 | - $.fn.tab = old | |
| 2198 | - return this | |
| 2199 | - } | |
| 2200 | - | |
| 2201 | - | |
| 2202 | - // TAB DATA-API | |
| 2203 | - // ============ | |
| 2204 | - | |
| 2205 | - var clickHandler = function (e) { | |
| 2206 | - e.preventDefault() | |
| 2207 | - Plugin.call($(this), 'show') | |
| 2208 | - } | |
| 2209 | - | |
| 2210 | - $(document) | |
| 2211 | - .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) | |
| 2212 | - .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) | |
| 2213 | - | |
| 2214 | -}(jQuery); | |
| 2215 | - | |
| 2216 | -/* ======================================================================== | |
| 2217 | - * Bootstrap: affix.js v3.3.7 | |
| 2218 | - * http://getbootstrap.com/javascript/#affix | |
| 2219 | - * ======================================================================== | |
| 2220 | - * Copyright 2011-2016 Twitter, Inc. | |
| 2221 | - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
| 2222 | - * ======================================================================== */ | |
| 2223 | - | |
| 2224 | - | |
| 2225 | -+function ($) { | |
| 2226 | - 'use strict'; | |
| 2227 | - | |
| 2228 | - // AFFIX CLASS DEFINITION | |
| 2229 | - // ====================== | |
| 2230 | - | |
| 2231 | - var Affix = function (element, options) { | |
| 2232 | - this.options = $.extend({}, Affix.DEFAULTS, options) | |
| 2233 | - | |
| 2234 | - this.$target = $(this.options.target) | |
| 2235 | - .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) | |
| 2236 | - .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) | |
| 2237 | - | |
| 2238 | - this.$element = $(element) | |
| 2239 | - this.affixed = null | |
| 2240 | - this.unpin = null | |
| 2241 | - this.pinnedOffset = null | |
| 2242 | - | |
| 2243 | - this.checkPosition() | |
| 2244 | - } | |
| 2245 | - | |
| 2246 | - Affix.VERSION = '3.3.7' | |
| 2247 | - | |
| 2248 | - Affix.RESET = 'affix affix-top affix-bottom' | |
| 2249 | - | |
| 2250 | - Affix.DEFAULTS = { | |
| 2251 | - offset: 0, | |
| 2252 | - target: window | |
| 2253 | - } | |
| 2254 | - | |
| 2255 | - Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { | |
| 2256 | - var scrollTop = this.$target.scrollTop() | |
| 2257 | - var position = this.$element.offset() | |
| 2258 | - var targetHeight = this.$target.height() | |
| 2259 | - | |
| 2260 | - if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false | |
| 2261 | - | |
| 2262 | - if (this.affixed == 'bottom') { | |
| 2263 | - if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' | |
| 2264 | - return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' | |
| 2265 | - } | |
| 2266 | - | |
| 2267 | - var initializing = this.affixed == null | |
| 2268 | - var colliderTop = initializing ? scrollTop : position.top | |
| 2269 | - var colliderHeight = initializing ? targetHeight : height | |
| 2270 | - | |
| 2271 | - if (offsetTop != null && scrollTop <= offsetTop) return 'top' | |
| 2272 | - if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' | |
| 2273 | - | |
| 2274 | - return false | |
| 2275 | - } | |
| 2276 | - | |
| 2277 | - Affix.prototype.getPinnedOffset = function () { | |
| 2278 | - if (this.pinnedOffset) return this.pinnedOffset | |
| 2279 | - this.$element.removeClass(Affix.RESET).addClass('affix') | |
| 2280 | - var scrollTop = this.$target.scrollTop() | |
| 2281 | - var position = this.$element.offset() | |
| 2282 | - return (this.pinnedOffset = position.top - scrollTop) | |
| 2283 | - } | |
| 2284 | - | |
| 2285 | - Affix.prototype.checkPositionWithEventLoop = function () { | |
| 2286 | - setTimeout($.proxy(this.checkPosition, this), 1) | |
| 2287 | - } | |
| 2288 | - | |
| 2289 | - Affix.prototype.checkPosition = function () { | |
| 2290 | - if (!this.$element.is(':visible')) return | |
| 2291 | - | |
| 2292 | - var height = this.$element.height() | |
| 2293 | - var offset = this.options.offset | |
| 2294 | - var offsetTop = offset.top | |
| 2295 | - var offsetBottom = offset.bottom | |
| 2296 | - var scrollHeight = Math.max($(document).height(), $(document.body).height()) | |
| 2297 | - | |
| 2298 | - if (typeof offset != 'object') offsetBottom = offsetTop = offset | |
| 2299 | - if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) | |
| 2300 | - if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) | |
| 2301 | - | |
| 2302 | - var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) | |
| 2303 | - | |
| 2304 | - if (this.affixed != affix) { | |
| 2305 | - if (this.unpin != null) this.$element.css('top', '') | |
| 2306 | - | |
| 2307 | - var affixType = 'affix' + (affix ? '-' + affix : '') | |
| 2308 | - var e = $.Event(affixType + '.bs.affix') | |
| 2309 | - | |
| 2310 | - this.$element.trigger(e) | |
| 2311 | - | |
| 2312 | - if (e.isDefaultPrevented()) return | |
| 2313 | - | |
| 2314 | - this.affixed = affix | |
| 2315 | - this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null | |
| 2316 | - | |
| 2317 | - this.$element | |
| 2318 | - .removeClass(Affix.RESET) | |
| 2319 | - .addClass(affixType) | |
| 2320 | - .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') | |
| 2321 | - } | |
| 2322 | - | |
| 2323 | - if (affix == 'bottom') { | |
| 2324 | - this.$element.offset({ | |
| 2325 | - top: scrollHeight - height - offsetBottom | |
| 2326 | - }) | |
| 2327 | - } | |
| 2328 | - } | |
| 2329 | - | |
| 2330 | - | |
| 2331 | - // AFFIX PLUGIN DEFINITION | |
| 2332 | - // ======================= | |
| 2333 | - | |
| 2334 | - function Plugin(option) { | |
| 2335 | - return this.each(function () { | |
| 2336 | - var $this = $(this) | |
| 2337 | - var data = $this.data('bs.affix') | |
| 2338 | - var options = typeof option == 'object' && option | |
| 2339 | - | |
| 2340 | - if (!data) $this.data('bs.affix', (data = new Affix(this, options))) | |
| 2341 | - if (typeof option == 'string') data[option]() | |
| 2342 | - }) | |
| 2343 | - } | |
| 2344 | - | |
| 2345 | - var old = $.fn.affix | |
| 2346 | - | |
| 2347 | - $.fn.affix = Plugin | |
| 2348 | - $.fn.affix.Constructor = Affix | |
| 2349 | - | |
| 2350 | - | |
| 2351 | - // AFFIX NO CONFLICT | |
| 2352 | - // ================= | |
| 2353 | - | |
| 2354 | - $.fn.affix.noConflict = function () { | |
| 2355 | - $.fn.affix = old | |
| 2356 | - return this | |
| 2357 | - } | |
| 2358 | - | |
| 2359 | - | |
| 2360 | - // AFFIX DATA-API | |
| 2361 | - // ============== | |
| 2362 | - | |
| 2363 | - $(window).on('load', function () { | |
| 2364 | - $('[data-spy="affix"]').each(function () { | |
| 2365 | - var $spy = $(this) | |
| 2366 | - var data = $spy.data() | |
| 2367 | - | |
| 2368 | - data.offset = data.offset || {} | |
| 2369 | - | |
| 2370 | - if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom | |
| 2371 | - if (data.offsetTop != null) data.offset.top = data.offsetTop | |
| 2372 | - | |
| 2373 | - Plugin.call($spy, data) | |
| 2374 | - }) | |
| 2375 | - }) | |
| 2376 | - | |
| 2377 | -}(jQuery); | |
| 6 | +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){ | |
| 7 | +this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); | |
| 2378 | 8 | \ No newline at end of file | ... | ... |
js/url.js
| 1 | 1 | var mUrl = mUrl || {}; |
| 2 | 2 | |
| 3 | 3 | |
| 4 | -//songcxa 15801541129 | |
| 5 | -mUrl.testtoken = "a49e4835f5184f0fb5d0aba2a30bca8b"; | |
| 4 | +//songcxa 15801541129 测试环境 http://39.98.54.240:8090 | |
| 5 | +//mUrl.testtoken = "a49e4835f5184f0fb5d0aba2a30bca8b"; | |
| 6 | +//mUrl.testdeviceInfo = "868869021179618";//android | |
| 7 | +//mUrl.testopenid = "okuZ90q3qKXcUYvtPS7siklJzuEE";//王彪配合从数据库拿到 | |
| 8 | + | |
| 9 | +//songcxa 15801541129 正式环境 http://pay.service.renniting.cn/v1 | |
| 10 | +mUrl.testtoken = "842b8f4350d6454ba4ca336606959602"; | |
| 6 | 11 | mUrl.testdeviceInfo = "868869021179618";//android |
| 12 | +mUrl.testopenid = "okuZ90l_HUpUvPKMp29YNNlwa61w";//王彪配合从数据库拿到 | |
| 7 | 13 | |
| 8 | 14 | /*获取设置openid start*/ |
| 9 | 15 | mUrl.GetOpenid = function(){ |
| ... | ... | @@ -88,7 +94,9 @@ mUrl.getJx = function(){ |
| 88 | 94 | |
| 89 | 95 | /*end*/ |
| 90 | 96 | |
| 91 | -var cepath = 'http://39.98.54.240:8090';//http://pay.service.renniting.cn//http://39.98.54.240:8090//http://app.api.dyszt.com:8090//var cepath = 'http://app.api.dyszt.com:8090';//https://pay.service.rnting.com//'http://47.96.41.38:8090'; | |
| 97 | +//var cepath = 'http://39.98.54.240:8090';//http://pay.service.renniting.cn//http://39.98.54.240:8090//http://app.api.dyszt.com:8090//var cepath = 'http://app.api.dyszt.com:8090';//https://pay.service.rnting.com//'http://47.96.41.38:8090'; | |
| 98 | +//生产环境地址 | |
| 99 | +var cepath = 'http://pay.service.renniting.cn/v1'; | |
| 92 | 100 | /*----------------------------------------------登录登出绑定手机号 start*/ |
| 93 | 101 | //发送验证码 |
| 94 | 102 | mUrl.sendRandCode = cepath + '/user/sendverificode';//webPath + '/binding/sendRandCode'+mUrl.getCommonParam(); | ... | ... |
log.txt
| ... | ... | @@ -24,3 +24,16 @@ http://39.98.54.240:88/apidoc/index.php?s=/7&page_id=605 |
| 24 | 24 | mUrl.queryAppOrgs = cepath + '/appOrg/queryAppOrgs';//获取区域列表songcxa |
| 25 | 25 | 测试环境不需要加v1 |
| 26 | 26 | 正式环境需要cepath + '/v1/appOrg/queryAppOrgs'; |
| 27 | + | |
| 28 | + [6]会员卡列表 | |
| 29 | + Threewf/more/VipCardtwo/Vipcard.html[右下角广告问题] | |
| 30 | + | |
| 31 | + [7]任性值规则 | |
| 32 | + more\greade\greade.html | |
| 33 | + | |
| 34 | + [8]临停支付 三个页面添加orgId | |
| 35 | + stoppayment\select.html //orgId | |
| 36 | + stoppayment/Temporary/check.html //检查订单orgId | |
| 37 | + pay/immediatepaycs.html//微信支付页面发起支付orgId | |
| 38 | + | |
| 39 | + 苏FC684H / 正式环境 || 京A56789 / 测试环境 | ... | ... |
more/VipCardtwo/Vipcard.html
| ... | ... | @@ -305,9 +305,9 @@ |
| 305 | 305 | </body> |
| 306 | 306 | </html> |
| 307 | 307 | <script src="../../js/jquery-3.2.1.min.js"></script> |
| 308 | -<script src="../../js/bootstrap/bootstrap.js"></script> | |
| 308 | +<script src="../../js/bootstrap/bootstrap.js?v=3.3.7"></script> | |
| 309 | 309 | <script src="js/swiper.min.js"></script> |
| 310 | -<script src="js/choumei.js"></script> | |
| 310 | +<!--<script src="js/choumei.js"></script>--> | |
| 311 | 311 | <script src="../../js/md5.min.js"></script> |
| 312 | 312 | <script src="../../js/url.js"></script> |
| 313 | 313 | <script src="../../js/ajax.js"></script> | ... | ... |
more/self/self2.html
| ... | ... | @@ -354,36 +354,37 @@ |
| 354 | 354 | isAndroid_ios(); |
| 355 | 355 | var getcode = location.href; |
| 356 | 356 | |
| 357 | - | |
| 358 | 357 | // alert('clapntemp_356+getcode=',getcode); |
| 359 | 358 | // alert('clapntemp_359+window.location.href=',window.location.search); |
| 360 | 359 | |
| 361 | - | |
| 362 | - if(getcode&&getcode!=''){ | |
| 363 | - var datacoded = getcode.split('?')[1]; | |
| 364 | - if(datacoded&&datacoded!=''){ | |
| 365 | - var datacode = datacoded.split('&')[0].split('=')[1]; | |
| 366 | - if(datacoded.split('&')[0].split('=')[0]=='code'){ | |
| 367 | - $('.appxs').css('display','none'); | |
| 368 | - jsajax.getopenid(datacode,function(openid){ | |
| 369 | - console.log("请求"+openid); | |
| 370 | - var pt = 'wx'; | |
| 371 | - mUrl.setApporWX(pt); | |
| 372 | - jsajax.gett(openid,function(n){ | |
| 373 | - if(n==1){//用户已绑定手机号 | |
| 374 | - getinfoself();//获取用户信息 | |
| 375 | - }else if(n==0){//用户未绑定手机号 | |
| 376 | - console.log('用户未绑定手机号'); | |
| 377 | - setUserinf('','','','','','','',''); | |
| 378 | - } | |
| 379 | - }); | |
| 380 | - });//获取openid token | |
| 381 | - } | |
| 382 | - } | |
| 360 | + //正式环境-如果测试需要注释,放开386行测试环境 | |
| 361 | + if (getcode && getcode != '') { | |
| 362 | + var datacoded = getcode.split('?')[1]; | |
| 363 | + if (datacoded && datacoded != '') { | |
| 364 | + var datacode = datacoded.split('&')[0].split('=')[1]; | |
| 365 | + if (datacoded.split('&')[0].split('=')[0] == 'code') { | |
| 366 | + $('.appxs').css('display', 'none'); | |
| 367 | + jsajax.getopenid(datacode, function (openid) { | |
| 368 | + console.log("请求" + openid); | |
| 369 | + var pt = 'wx'; | |
| 370 | + mUrl.setApporWX(pt); | |
| 371 | + jsajax.gett(openid, function (n) { | |
| 372 | + if (n == 1) {//用户已绑定手机号 | |
| 373 | + getinfoself();//获取用户信息 | |
| 374 | + } else if (n == 0) {//用户未绑定手机号 | |
| 375 | + console.log('用户未绑定手机号'); | |
| 376 | + setUserinf('', '', '', '', '', '', '', ''); | |
| 377 | + } | |
| 378 | + }); | |
| 379 | + });//获取openid token | |
| 380 | + } | |
| 381 | + } | |
| 383 | 382 | } |
| 383 | + | |
| 384 | 384 | var getopenid = mUrl.GetOpenid(); |
| 385 | -// alert('clapntemp_获取到用户openid'+getopenid); | |
| 386 | - | |
| 385 | + //alert('clapntemp_获取到用户openid'+getopenid); | |
| 386 | + //测试环境 | |
| 387 | + //getopenid = mUrl.testopenid;//songcxa测试环境获取设置openid[从王彪处拿取] | |
| 387 | 388 | if(getopenid&&getopenid!=''&&getopenid!='null'){ |
| 388 | 389 | |
| 389 | 390 | console.log('获取到用户openid'+mUrl.GetOpenid()); | ... | ... |
pay/immediatepaycs.html
| 1 | -<!DOCTYPE html> | |
| 1 | +<!DOCTYPE html> | |
| 2 | 2 | <html lang="en"> |
| 3 | 3 | <head> |
| 4 | 4 | <meta charset="UTF-8"> |
| ... | ... | @@ -78,7 +78,8 @@ |
| 78 | 78 | <script> |
| 79 | 79 | var func = { |
| 80 | 80 | openid:'', |
| 81 | - token:'' | |
| 81 | + token:'', | |
| 82 | + orgId:''//获取组织ID | |
| 82 | 83 | }; |
| 83 | 84 | var intDiff = parseInt(5*60);//倒计时总秒数量 |
| 84 | 85 | function timer(intDiff){ |
| ... | ... | @@ -193,6 +194,7 @@ |
| 193 | 194 | orderID= strurl[0].split('=')[1]; |
| 194 | 195 | var carnum = strurl[1].split('=')[1]; |
| 195 | 196 | var unpaid = strurl[2].split('=')[1]; |
| 197 | + func.orgId = strurl[4].split('=')[1] || ""; | |
| 196 | 198 | $("#carnum").text(carnum); |
| 197 | 199 | $("#unpaid").text(unpaid); |
| 198 | 200 | func.openid = mUrl.GetOpenid(); |
| ... | ... | @@ -207,7 +209,8 @@ |
| 207 | 209 | paySource:'3', |
| 208 | 210 | paySrcType:'101', |
| 209 | 211 | couponPersonId:'', |
| 210 | - terminalSource:'3'//微信公众号 | |
| 212 | + terminalSource: '3',//微信公众号 | |
| 213 | + orgId: func.orgId //组织ID | |
| 211 | 214 | }; |
| 212 | 215 | |
| 213 | 216 | jsondata = JSON.stringify(jsondata); | ... | ... |
stoppayment/Temporary/check.html
| 1 | -<!DOCTYPE html> | |
| 1 | +<!DOCTYPE html> | |
| 2 | 2 | <html lang="en"> |
| 3 | 3 | <head> |
| 4 | 4 | <meta charset="UTF-8"> |
| ... | ... | @@ -136,8 +136,8 @@ |
| 136 | 136 | openid:'', |
| 137 | 137 | token:'', |
| 138 | 138 | unpaid:'', |
| 139 | - countType:'' | |
| 140 | - | |
| 139 | + countType:'', | |
| 140 | + orgId:'', | |
| 141 | 141 | }; |
| 142 | 142 | |
| 143 | 143 | $(function(){ |
| ... | ... | @@ -156,8 +156,10 @@ |
| 156 | 156 | var disFee = dataselectt[8].split('=')[1]; |
| 157 | 157 | var disDesc = dataselectt[9].split('=')[1]; |
| 158 | 158 | func.countType = dataselectt[10].split('=')[1]; |
| 159 | - | |
| 160 | - | |
| 159 | + //songcxa 2019-1-2 添加组织ID | |
| 160 | + var orgId = dataselectt[12].split('=')[1]; | |
| 161 | + func.orgId = orgId; | |
| 162 | + | |
| 161 | 163 | var staytimes =jsajax.formatSeconds(staytime); //Math.floor(staytime/60) + "小时" + (staytime%60) + "分" ; |
| 162 | 164 | //staytimes = jsajax.fStohours(staytime); |
| 163 | 165 | due = jsajax.fenToYuan(due); |
| ... | ... | @@ -231,7 +233,7 @@ |
| 231 | 233 | var parkCode = dataselectt[11].split('=')[1]; |
| 232 | 234 | |
| 233 | 235 | var Urlsrc = '../../pay/immediatepaycs.html?orderID='+orderID+"&carnum="+carnum+"&unpaid="+unpaid |
| 234 | - +"&parkCode="+parkCode | |
| 236 | + + "&parkCode=" + parkCode + "&orgId="+func.orgId | |
| 235 | 237 | +"&"; |
| 236 | 238 | getOneorder(carnum,parkCode,orderID,'',Urlsrc); |
| 237 | 239 | ... | ... |
stoppayment/select.html
| ... | ... | @@ -449,6 +449,8 @@ var func={ |
| 449 | 449 | discountDesc = datas[i].discountDesc;//已优惠 |
| 450 | 450 | } |
| 451 | 451 | } |
| 452 | + //songcxa 添加组织ID 2019-1-2 | |
| 453 | + var orgId = datas[i].orgId; | |
| 452 | 454 | //console.log('-------------------------------'+discountType); |
| 453 | 455 | //查询到车牌号订单信息 |
| 454 | 456 | var src = 'Temporary/check.html?carnum='+plateno |
| ... | ... | @@ -462,7 +464,8 @@ var func={ |
| 462 | 464 | +"&disfee="+discountFee |
| 463 | 465 | +"&disdesc="+discountDesc |
| 464 | 466 | +'&discountType='+discountType |
| 465 | - +'&parkCode='+parkCode | |
| 467 | + + '&parkCode=' + parkCode | |
| 468 | + + '&orgId=' + orgId | |
| 466 | 469 | +"&"; |
| 467 | 470 | |
| 468 | 471 | ... | ... |