/ *! * Khởi động v3.3.4 (http://getbootstrap.com) * Bản quyền 2011-2015 Twitter, Inc. * Được cấp phép theo MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * / if ("undefined" == typeof jQuery) đưa ra lỗi mới ("Bootstrap's JavaScript requires jQuery"); + function (a) {"use strict"; var b = a.fn.jquery.split ("") [0] (1) <9 || 1 == b [0] && 9 == b [1] && b [2] <1) ném Lỗi mới ("Bootstrap 's JavaScript yêu cầu phiên bản jQuery 1.9.1 trở lên ")} (jQuery), + function (a) {" sử dụng nghiêm ngặt "; function b () {var a = document.createElement (" bootstrap "), b = {WebkitTransition: webkitTransitionEnd ", MozTransition:" transitionend ", OTransition:" oTransitionEnd otransitionend ", chuyển tiếp:" transitionend "}; cho (var c trong 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}) (a, 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) {trả về một b.target) .is (này)? b.handleObj.han dll.apply (this, arguments): void 0}})})} (jQuery), + function (a) {"sử dụng nghiêm ngặt"; function b (b) {return this.each (function () {var c = a, b, b, b, b, b, b, b, b, b, b, c, d, (c)}}} var c = '[data-dismiss = "alert"], d = function (b) {a (b) .on ("click", c, this.close)}; d .VERSION = "3.3.4", d.TRANSITION_DURATION = 150, d.prototype.close = function (b) {chức năng c () {g.detach () kích hoạt ("closed.bs.alert"). )} var e = a (this), f = e.attr ("data-target"), f || (f = e.attr ("href"), f = f && f.replace (/.*(?= (g), g.length || (g = e.closest (". alert")), g (g) = g (g) .trigger (b = a.Event ("close.bs.alert")), b.isDefaultPrevented () || (g.removeClass ("trong"), a.support.transition && g.hasClass ("phai")? g Một ("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 (tài liệu) .on ("click.bs.alert.data-api", c, d.prototype.close )} (jQuery), + function (a) {"sử dụng ("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. $ phần tử = a (b), this.options = a.extend ({}, c.DEFAULTS, d), this.isLoading = 1 1); c.VERSION = "3.3.4" , c.DEFAULTS = {loadingText: "loading ..."}, c.prototype.setState = function (b) {var c = "bị vô hiệu hóa", d = this. $ phần tử, e = d.is ("đầu vào" ) "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)): this.isLoading && (this.isLoading = 1, d.removeClass (c) .removeAttr (c))}, this), 0)}, c.prototype.toggle = chức năng () {var a =! 0, b = this. $ element.closest ('[data-toggle = "buttons"]'), nếu (b.length) {var c = this. $ element.find ("đầu vào ")," radio "== c.prop (" type ") && (c.prop (" checked ") && this. $ element.hasClass (" active ")? a =! 1: b.find (". ") .removeClass (" active ")), một && c.prop (" checked ",! này. $ element.hasClass ("active")), $ element.attr ("aria-pressed",! this element $ element.hasClass ("active")); a && this. $ phần tử a.fn.button.Constructor = c, a.fn.button.noConflict = function () {return a .fn.button.Constructor = c, a.fn.button.noConflict = function () (trả về một fn.button = d, this}, a (document) .on ("click.bs.button.data-api", '[data-toggle ^ = "nút"]', chức năng (c) {var d = a (c.target); d.hasClass ("btn") || (d = d.closest (".btn")), b.call (d, "toggle"), c.preventDefault ()}). on ("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle ^ = "nút"]', chức năng (b) {a (b.target) .closest "jQuery", + function (a) {"use strict", function b ("use strict"), chức năng 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 () chu kỳ ()})} var c = chức năng (b, c) {this $ phần tử = a (b), điều này. $ chỉ số = thứ là $ 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.example.ini ("keydown.bs.carousel", a.proxy (this.keydown, this)), "hover" == this.options.pause &&! ("ontouchstart" trong document.documentElement) && this $ element.on ("mouseenter.bs.carousel", a.proxy (this.pause, this)) trên ("mouseleave.bs.carousel", a.proxy (this.cycle, điều này ), c.VERSION = "3.3.4", c.TRANSITION_DURATION = 600, c.DEFAULTS = {Khoảng thời gian: 5e3, tạm dừng: "hover", quấn:! 0, bàn phím:! 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. (this.paused =! 1), this.interval && clearInterval (this.interval), hàm này sẽ được sử dụng để tạo ra các giá trị mặc định. , this.options.interval &&! this.paused && (this.interval = setInterval (a.proxy (this.next, this), this.options.interval), this}, c.prototype.getItemIndex = function (a) { trả lại khoản này $ items = a.pare nt (), this. $ items.index (a || this. $ active)}, c.prototype.getItemForDirection = chức năng (a, b) (var c = this.getItemIndex (b ), d = "prev" == a && 0 === c || "next" == a && c == này $ item.length-1, nếu (d &&! this.options.wrap) return b; var e = " prev "== a -1 -1, f = (c + e)% giá trị này $ item.length, trả về giá trị này $ item.eq (f)}, c.prototype.to = function (a) {var b = this, c = this.getItemIndex (this. $ active = this. $ element.find (". item.active")); return a> this. $ items.length-1 || 0> một void 0 : this.sliding? this. $ element.one ("slid.bs.carousel", function () {b.to (a)}): c == a? this.pause () chu kỳ (): điều này. slide (a> c? "next": "prev", đây. $ items.eq (a))}, c.prototype.pause = chức năng (b) {return b || (this.paused = 0), Điều này sẽ giúp bạn hiểu rõ hơn về các yếu tố này như thế nào: $ 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 () {return this.sliding? void 0: this.slide ("next")}, c.prototype.prev = function () {return this.sliding? void 0: this.slide ("prev")}, c.prototype.slide = functi on (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}), nếu (this. $ element.trigger (k), k.isDefaultPrevented ()) {if (this.sliding = 0, g && this.pause () $ this.getItemIndex (f (this) $ this.getItemIndex (f) (this.example) (this.example.example) (this.example) (this.example.conf (), this.exec (). ), l && l.addClass ("active")} var m = a.Event ("slid.bs.carousel", {relatedTarget: j, direction: h}), trả về a.support.transition && this. $ element.hasClass ("slide")? (f.addClass (b), f [0] .offsetWidth, e.addClass (h), f.addClass (h), e.one ("bsTransitionEnd", chức năng () {f.removeClass ("active"), e.removeClass (["active", h] .join ("")), i.sliding =! 1, setTimeout (chức năng () {i. $ element.trigger (m)}, 0)}) emulateTransitionEnd (c.TRANSITION_DURATION)) :( e.removeClass ("hoạt động"), f.addClass ("hoạt động"), this.sliding = ! 1, điều này. $ Element.trig ger (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"), h && (g.interval = 1), b (), (), () (), (), (), () , "[data-slide]", e) .on ("click.bs.carousel.data-api", "[data-slide-to]", e), a (cửa sổ) .on ("load" function () {a ('[data-ride = "carousel"]). Mỗi hàm () {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 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 && / hiển thị | ẩn / .test (b) && (f.toggle = 1 ), e || c.data ("bs.collapse", e = new d (this, f)), "string" == typeof b && e [b] ()})} var d = chức năng (b, c) {this.file = a (b), this.options = a.extend ({}, d.DEFAULTS, c), đây $ 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.4", d.TRANSITION_DURATION = 350, d.DEFAULTS = {toggle:! 0}, d.prototype.dimension = function () {var a = this. $ Element.hasClass ("chiều rộng"), trả lại một? "Width": "height"}, d.prototype.show = function () {if (! this.transitioning &&! this. $ element.hasClass ("in")) {var b, e = this. $ parent & & this. $ parent.children (". panel") (".w, .collapsing"); if (! (e && e.length && (b = e.data ("bs.collapse"), b &&b.transitioning))) {var f = a.Event ("hiển thị. (e, "ẩn"), b || e.data ("bscollapse"), nếu (điều này $ element.trigger (f), f.isDefaultPrevented ()) (e & & e.length && (c.call (e, "ẩn" .collapse ", null)); var g = this.dimension (); t (), $ this.rar (), $ this.rar ("collapsing") .cảm ơn bạn rất nhiều. ("thu gọn") [g] (""), "" "" "" "" "" "" "" " , điều này.transitioning = 0, điều này. $ element.trigger ("shown.bs.collapse")}; nếu (! a.support.transition) trả lại h.call (this); var i = a.camelCase ([ (phần tử này được gọi là "b", "bsTransitionEnd", a.proxy (h, this)) emulateTransitionEnd (d.TRANSITION_DURATION) [g] (this. $ element [ 0] [i])}}}}, d.prototype.hide = function () {if (! This.transitioning && this item $ element.hasClass ("in")) {var b = a.Event ("ẩn.bs (phần tử này được gọi là phần tử), nếu (this. $ element.trigger (b), b.isDefaultPrevented ()) {var c = this.dimension (); this element $. )) $ This.setDoc ("collapsed") removeClass ("collapse") attr ("aria-expanded",! 1), điều này $ trigger.addClass ("thu gọn" ) .attr ("aria-expanded",! 1), this.transitioning = 1, var e = function () {this.transitioning = 0, điều này. $ element.removeClass ("collapsing") addClass ("collapse") gây ra ("hidden.bs.collapse")}, trả về a.support.transition? void this. $ phần tử [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" (a, c, d) () () () () () () () () () }, end ()}, d.prototype.addAriaAndCollapsedClass = function (a, b) {var c = a.hasClass ("in"); a.attr ("aria-expanded", c), b (), "craps", 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 = " (e), (e) e.attr ("data-target") || d.preventDefault (); var f = b (e), g = f.data ( "bs.collap se "), h = g" toggle ": e.data (), c.call (f, h)})} (jQuery), + function (a) {" sử dụng nghiêm ngặt "; function b (b) { b, b, b, b, b, b, b, b, b, b, b = this.http: // e.hasClass ("open") && (e.trigger (b = a.Event ("hide.bs.dropdown", f)), b.isDefaultPrevented () || (d.attr ("aria- mở rộng "," false "), e.removeClass (" open "), trigger (" hidden.bs.dropdown ", f)))}))} chức năng c (b) {var c = b.attr (" dữ liệu (c) & & c.replace (/.* (? = # "), c (c) & c.replace () () () () () () () () () () () () () 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 = chức năng (b) {a (b) .on (" (e.is ("e.is" ("e.is" ("e.is" ("e.is" msgstr "" " .disabled,: disabled ")) {var f = c (e), g = f.hasClass (" open "); if (b (),! g) (" ontouchstart "trong document.documentElement &&! f.closest ( ".navba r-nav "). </ div> <div class =" dropdown-backdrop "/> '). ("aria-expanded", "true" ("aria-expanded", "true"), "true", "true", "true" và " "), f.toggleClass (" open ") Kích hoạt (" shown.bs.dropdown ", h)} return! 1}}, g.prototype.keydown = chức năng (b) {if (/ (38 | 40 | (B.which) &&! / Input | textarea / i.test (b.target.tagName)) {var d = a (this); if (b.preventDefault (), b.stopPropagation (), d.is (".default,: disabled")) {var e = c (d), g = e.hasClass ("mở"), nếu (! g && 27! = b.which || g && 27 = = b.which) return 27 == b.which && e.find (f) .trigger ("focus"), d.trigger ("click"); var h = "li: không (.disabled): visible a" i = e.find ('[role = "menu"]' + h + ', [role = "listbox"]' + h); if (i.length) {var j = i.index (b.target); 38 == b.which && j> 0 && j -, 40 == b.which && j <i.length-1 && j ++, ~ j || (j = 0), i.eq (j) .trigger ("focus")}}} }, 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 ", b) .on (" click.bs.dropdown.data-api "," .dropdown form ", chức năng (a) {a.stopPropagation ()}) trên (" 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 ", '[role =" menu "]', g.prototype.keydown) .on (" keydown.bs.dropdown.data-api ", '[role =" listbox "]', g.prototype () () () () () () () () () () () () "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 = chức năng (b, c) {this.options = c: $ body = a (document.body), this. $ element = a (b), this. $ dialog = this. $ element.find ("modal-dialog"), điều này. $ backdrop = null , this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick =! 1, this.options.remote && this. $ element.find ("modal-content") tải (this.options .remote, a.proxy (function () {this. $ element.trigger ("loaded.bs ), c.VERSION = "3.3.4", c.TRANSITION_DURATION = 300, c.BACKDROP_TRANSITION_DURATION = 150, c.DEFAULTS = (phông nền:! 0, bàn phím:! 0, hiển thị: 0}, c.prototype.toggle = function (a) (trả về this.show? This.hide (): this.show (a)}, c.prototype.show = chức năng (b) {var d = this, e = a.Event ("show.bs.modal", {relatedTarget: b}), đây. $ element.trigger (e), this.isShown || e.isDefaultPrevented () || (this.isShown = 0 , this.checkScrollbar (), this.setScrollbar (), this. $ body.addClass ("modal-open"), this.escape (), this.resize (), điều này. $ element.on ("click.dismiss , ".modal", '[data-dismiss = "modal"]', a.proxy (this.hide, this)), điều này. $ dialog.on ("mousedown.dismiss.bs.modal", chức năng () {d. $ element.one ("mouseup.dismiss.bs.modal", function (b) {a (b.target) .is (d. $ phần tử) && (d.ignoreBackdropClick =! 0)})}) , this.backdrop (function () {var e = a.support.transition && d. $ element.hasClass ("fade"); d. $ element.parent () chiều dài || d. $ phần tử.appendTo (d. $ (phần tử), d. $ element.show () scrollTop (0), d.adjustDialog (), e &&. $ phần tử [0] .offsetWidth, d. $ element.addClass ("in") attr ("aria -hidden ",! 1), d.enforceFocus (); var f = a.Event (" shown.bs.modal ", {relatedTarget: b}); e? d. $ dialog.one (" bsTransitionEnd ", chức năng () {d. $ element.trigger ("focus") trigger (f)}) emulateTransitionEnd (c.TRANSITION_DURATION): d. $ element.trigger ("tập trung") kích hoạt (f)}))}, c.prototype.hide = function (b) {b && b.preventDefault (), b = a.Event ("hide.bs.modal"), điều này. $ element.trigger (b), this.isShown &&! b.isDefaultPrevented ( ) && (this.isShown = 1, this.escape (), this.resize (), a (tài liệu) .off ("focusin.bs.modal"), điều này. $ element.removeClass ("in"). ("mouseup.dismiss.bs.modal"), điều này. $ dialog.off ("mousedown.dismiss. bs.TransitionEnd ", a.proxy (this.hideModal, this)) emulateTransitionEnd (c.TRANSITION_DURATION"), a.support.transition && this. ): this.hideModal ())}, c.prototype.enforceFocus = function () {a (tài liệu) .off ("focusin.bs.modal") trên ("focusin.bs.modal", a.proxy ( function (a) {this. $ phần tử [0] === a.target || this. $ element.has (a.target) .length | Trong phần này chúng tôi sẽ giới thiệu cho các bạn về các thành phần chính của phần này: $ 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 (cửa sổ) .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")? "if (this.isShown && this.options.backdrop) {var f = a.support.transition && e; if (this. $ backdrop = a ('<div class =" modal-backdrop' + e + '"/> ') .appendTo (this. $ body), this. $ element.on ("click.dismiss.bs.modal", a.proxy (fu nction (a) {return this.ignoreBackdropClick? void (this.ignoreBackdropClick =! 1): void (a.target === a.currentTarget && ("tĩnh" == this.options.backdrop này này $ phần tử [0] (), 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 () bdb.ini ("bsTransitionEnd", g) .emulateTransitionEnd (c.BACKDROP_TRANSITION_DURATION), nếu bạn không muốn sử dụng nó, : g ()} else b && b ()}, c.prototype.handleUpdate = function () {this.adjustDialog ()}, c.prototype.adjustDialog = function () {var a = this. $ phần tử [0] .scrollHeight > $ element.css (this paddingLeft:! this.bodyIsOverflowing && a? this.scrollbarWidth: "", paddingRight: this.bodyIsOverflowing &&! a? this.scrollbarWidth: ""})}, c.prototype .resetAdjustments = function () {this. $ () {var b = document.documentElement.getBoundingClientRect (if (! a)) {var b = document.documentElement.getBoundingClientRect (nếu có thể, hãy chắc chắn rằng bạn đã tạo ra một tập tin văn bản) ); a = b.right-Math.abs (b.left)} this.bodyIsOverflowing = document.body.clientWidth <a, this.scrollbarWidth = this.measureScrollbar ()}, c.prototype.setScrollbar = chức năng () { var a = parseInt (this. $ body.css ("padding-right") || 0,10); this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.EXC body.css ( "padding-right", a + this.scrollbarWidth)}, c.prototype.resetScrollbar = function () {this. $ body.css ("padding-right", this.originalBodyPad)}, c.prototype.measureScrollbar = chức năng () {var a = document.createElement ("div"); a.className = "modal-scrollbar-measure", đây. $ body.append (a); var b = a.offsetWidth-a.clientWidth; $ 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 (tài liệu) .on ("click.bs.modal.data-api", '[data-toggle = "modal"]' (), e = d.attr ("href"), f = a (d.attr ("mục tiêu dữ liệu") || e && e.replace (/.*(?= ("remote"! / # /. test (e) && e ">"), g = f.data ("bs.modal")? "toggle": a.extend }, f.data (), d.data ()), d.is ("a") && c.preventDefault (), f.one ("show.bs.modal", chức năng (a) {a.isDefaultPrevented ( ) f.one ("hidden.bs.modal", function () {d.is (": visible") && d.trigger ("focus")})}), b.call (f, g, this )} () () () () () () () () () () () .tooltip "), f =" object "== typeof b && b, (e || / hủy | ẩn / .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. $ phần tử = null, this.init ("tooltip", a, b)}; c.VERSION = "3.3.4", c.TRANSITION_DURATION = 150, c: <div class = "tooltip-arrow"> </ div> <div class = "" </ div> <div class = "story_text"> </ div> <div class = 'story_text' > <div class = "tooltip-inner"> </ div> </ div> ', kích hoạt: "di chuột foc chúng ta ", title:" ", delay: 0, html: 1, container:! 1, viewport: (selector:" body ", padding: 0}}, c.prototype.init = function (b, c, d ) $ this_type = b, this. $ phần tử = a (c), this.options = this.getOptions (d), đây $ viewport = this.options.viewport && a (điều này (tùy chọn «selector» phải được xác định khi khởi tạo "+ this .type + "trên đối tượng window.document!"), cho (var e = this.options.trigger.split (""), f = e.length; f -;) {var g = e [f]; if ("click" ==g) này $ element.on ("click." + this.type, this.options.selector, a.proxy (this.toggle, this)), nếu như vậy ("manual"! = "g", "g", "g", "g", "g", "g", "g" + this.type, this.options.selector, a.proxy (this.enter, this)), điều này. $ element.on (i + "." + this.type, this.options.selector, a.proxy (điều này (), this.options, {trigger: "manual", selector: "" msgstr "" "% s" msgstr "" " }): 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 = (hiển thị: b.delay, ẩn: b.delay}), b}, (), c (a, d) {c [a]! = d && ((a, d)) trả về this._options && a.each (this._options, function (a, d)), c = this.getDefaults (); (b.currentTarget) .data ("bs." + this () b) a) b) a) b) c) .type), return c && c. $ tip && c. $ tip.is (": visible")? void (c.hoverState = "trong") :( c || (c = new this.constructor (b.currentTarget, this. getDelegateOptions ()), a (b.currentTarget) .data ("bs." + this.type, c)), clearTimeout (c.timeout), c.hoverState = "trong", 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.leave = function (b) {var c = b instanceof this.constructor? b: a (b.currentTarget) .data ("bs." + this.type); return c || (c mới này (c)), clearTimeout (c.timeout), c.hoverState = "ra" ("ra"), , c.options.delay && c.options.delay.hide void (c.timeout = setTimeout (function () {"out" == c.hoverState && c.hide ()}, c.options.delay.hide): c (this.type); if (this.hasContent () && this.enabled) {this. $ () .hidden ()}, c.prototype.show = function () {var b = a.Event ("show.bs." + this.type); (element.trigger (b); var d = a.contains (this. $ phần tử [0] .ownerDocument.documentElement, this. $ phần tử [0]; nếu (b.isDefaultPrevented () || d) return; var e = this, f = this.tip (), g = this.getUID (this.type), this.setContent (), f.attr ("id", g), điều này. $ element.attr ("aria- mô tả bằng ", 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? tự động? \ s? /i,j=i.test (h); j && (h = h.replace (i, "") ("bs." + this.type, this), thêm vào " , this.options.container? f.appendTo (th is.options.container): f.insertAfter (this. $ element), var k = this.getPosition (), l = f [0] .offsetWidth, m = f [0] .tuyệt tức, nếu (j) {var n = h, o = this.options.container? a (this.options.container): this. $ element.parent (), p = this.getPosition (o); h = "phía dưới" == h && k.bottom + m> p.bottom "top": "top" == h && k.top-m <p.top? "bottom": "right" == h && k.right + l> p.width? "left": "trái "== h && k.left-l <p.left?" right ": h, f.removeClass (n) .addClass (h)} var q = this.getCalculatedOffset (h, k, l, m); this.applyPlacement (q, h); var r = function () {var a = ehoverState; 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", r) .emulateTransitionEnd (c.TRANSITION_DURATION): r ()}}, 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 = b.top + g, b.left = b.left + h, a.offset.setOffset (d [0], a.extend ({sử dụng: chức năng (a) {d.css ({đầu trang : Math.round (a.top)}}}}, b), 0), d.addClass ("in"), var i = d [0] .offsetWidth, j = d [0] .offsetHeight; "top" == c && j! = f && (b.top = b.top + fj); 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 = chức năng (a , "b", "b", "b", "b", "b", "b", "b", "b", "c" , "")}, c.prototype.setContent = function () {var a = this.tip (), b = this.getTitle (); a.find ("tooltip-inner") [this.options.html ? "html": "text"] (b), a.removeClass ("biến mất ở dưới cùng bên trái bên phải")}, c.prototype.hide = function (b) {function d () {"in"! = e .hoverState && f.detach (), e. $ element.removeAttr ("aria-describedby") Kích hoạt ("hidden.bs." + e.type), b && b ()} var e = this, f = a (điều này. $ tip), g = a.Event ("hide.bs." + this.type), trả về giá trị này $ element.trigger (g), g.isDefaultPrevented ()? void 0: (f.removeClass ("in" ), a.support.transition && f.hasClass ("fade")? f.one ("bsTransiti onEnd ", d) .emulateTransitionEnd (c.TRANSITION_DURATION): d (), this.hoverState = null, this)}, c.prototype.fixTitle = function () {var a = this. $ phần tử; (a.attr ( "title") || "string"! = typeof a.attr ("data-original-title")) && a.attr ("data-original-title", a.attr ("title") || "") (), c.prototype.hasContent = function () {return this.getTitle ()}, c.prototype.getPosition = chức năng (b) {b = b || này. $ phần tử ; var c = b [0], d = "BODY" == c.tagName, e = c.getBoundingClientRect (); null == e. chiều rộng: e.right-e.left, height: e.bottom-e.top}); var f = d? {top: 0, left: 0 }: b.offset (), g = {scroll: d? document.documentElement.scrollTop || document.body.scrollTop: b.scrollTop ()}, h = d? {width: a (window) .width () (a, b, c, d) {a, b, c, d} a, b, c, d} trả về "bottom" == a? {top: b.top + b.height, left: b.left + b.width / 2-c / 2}: "top" == a? {top: b.top- d, trái: b.left + b.width / 2-c / 2}: "left" == a? {top: b.top + b.height / 2-d / 2, trái: b.left-c }: {top: b.top + b.height / 2-d / 2, left: b.left + b.width}}, c.prototype.getViewportAdjustedDelta = chức năng (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-fg.scroll, i = b.top + fg.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.width && (e.left = g.left + g.width-k)} return e}, c.prototype.getTi background = function () {var a, b = this. $ phần tử, c = this.options; trả về một = 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 ()), trong khi (document.getElementById ( a)), return a}, c.prototype.tip = function () {return this $ tip = this. $ tip || a (this.options.template)}, c.prototype.arrow = function () { trả về giá trị này $ arrow = this. $ arrow || this.tip () tìm thấy ("tooltip-arrow")}, c.prototype.enable = function () {this.enabled =! 0}, c.prototype .docable = function () {this.enabled =! 1}, c.prototype.toggleEnabled = function () {this.enabled =! this.enabled}, c.prototype.toggle = chức năng (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))), c.tip () .Class ("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)})}; var d = a.fn.toolt ip; a.fn.tooltip = b, a.fn.tooltip.Constructor = c, a.fn.tooltip.noConflict = function () {trả về a.fn.tooltip = d, this}} (jQuery), + chức năng (a) {"use strict", function b (b) {return this.each (function () {var d = a (this), e = d.data ("bs.popover"), f = "đối tượng" == 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) đưa ra lỗi mới "Popover require tooltip.js"); c.VERSION = "3.3.4", c.DEFAULTS = a.extend ({}, a.fn.tooltip.Constructor.DEFAULTS, {placement: "right", kích hoạt: " click ", nội dung:" ", template: '<div class =" popover "role =" tooltip "> <div class =" mũi tên "> </ h3> <h3 class =" popover-title "> </ h3> <div class = "story_text"> </ 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 (".document-popover") [this.options.html? "ht ml ":" text "] (b), a.find (" .windows-content ") children () .drewach () end () [this.options.html?" string "== typeof c?" html ":" append ":" text "] (c), a.removeClass (" giảm dần trên dưới cùng bên trái bên phải "), a.find (" .document ") .html () || a.find ( ".option-title"). hide ()}, c.prototype.hasContent = function () {return this.getTitle () || this.getContent ()}, c.prototype.getContent = function () {var a = "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 () tìm thấy (".")}; 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 )}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {} , 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.process ()} function c (c) {return this.each (this.process, this)), this.refresh (), this.process ()} function c (c) (return this.each (this.process, this) ("bs.scrollspy"), e = d.data ("bs.scrollspy"), f = "đối tượng" == loại c && c, e || d.data ("bs.scrollspy", e = new b (this, f)), "string" == typeof c && e [c] ()})} b.VERSION = "3.3.4", b.DEFAULTS = {offset: 10}, b.prototype.getScrollHeight = function () {var b () {}}}}}}}}}}} {var b = this, c = "offset", d = 0, this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight (), a.isWindow (này $ scrollElement [0]) | () () () () {var b = a (this), e = b. data ("target") || b.attr ("href"), f = / ^ # ./. test (e) && a (e); trả lại f && f.length && f.is (": visible") && [[f (a, b) {trả về 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]) trả về 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 = '' this.selector '', '+ this.selector +' [href = "'+ + ("li"), d = a (c) .parents ("li"). dropdown "), addClass (" active ")), d.trigger (" activate.bs.scrollspy ")}, b.prototype.clear = function () {a (this.selector) .parentsUntil (this.options.target , a.fn.scrollspy = c, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = b, a.fn.scrollspy.noConflict = b, a.fn.scrollspy.noConflict = function () {return a.fn.scrollspy = d, this}, a (window) .on ("loa d.bs.scrollspy.data-api ", function () {a ('[data-spy =" scroll "]') Mỗi một hàm () {var b = a (this); c.call (b, () () () () () () () () () () () () () = "" ("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.4", c.TRANSITION_DURATION = 150, c.prototype.show = function () {var b = this.element, c = b.closest ("ul: not (.dropdown-menu)"), d = b.data ("target"), nếu (d || (d = b.attr ("href"), d = d && d , "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]}); nếu (e.trigger (f), b.trigger (g) ,!g.isDefaultPrevented () &&! f.isDefaultPrevented () & {var h = a (d); this.activate (b.closest ("li" ), this.activate (h, h.parent (), function () {e.trigger ({type: "hidden.bs.tab", relatedTarget: b [0]}), b.trigger ({ type: "shown.bs.tab", associatedTarget: e [0]})})}}}, c.prototype.activate = chức năng (b, d, e) {chức năng f () {g.removeClass ("hoạt động "") .find ("> .dropdown-menu> .active") removeClass ("active") kết thúc () tìm ('[data-toggle = "tab"]') attr ("aria-expanded" , (1), b.addClass ("active") Tìm ('[data-toggle = "tab"]') attr ("aria-expanded",! 0), h? (B [0] .offsetWidth , b.addClass ("in")): b.removeClass ("fade"), b.parent (".dropdown-menu") .dòng dài && b.closest ("li.dropdown") addClass ("active"). kết thúc () tìm thấy ('[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.Const Cú pháp: c = 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) {"sử dụng nghiêm ngặt"; 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 (điều này , f)), "string" == typeof b && e [b] ()})} var c = function (b, d) {this.options = a.extend ({}, c.DEFAULTS, d), điều này. $ target = a (this.options.target) .on ("scroll.bs.affix.data-api", a.proxy (this.checkPosition, this)). vào ("click.bs.affix.data-api ", a.proxy (this.checkPositionWithEventLoop, this)), this. $ phần tử = a (b), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition ()}; c .VERSION = "3.3.4", c.RESET = "đóng affix-top affix-bottom", c.DEFAULTS = {offset: 0, target: window}, c.prototype.getState = chức năng (a, b, c , if (null! = c), if (null! = c), if (null! = c). && "top" == this.affixed) return c> e "top": 1, if ("bottom" == this.affixed) return null! = c? e + this.unpin <= f.top? 1: "bottom": ad> = e + g? 1: "bottom"; var h = null == this.affixed, i = h? E: f.top, j = h? G: b; return null! = c && c> = e "top": null! = d && i + j> = ad? "bottom":! 1}, c.prototype.getPinnedOffset = function () {if (this.pinnedOffset) trả lại this.pinnedOffset , $ this.value (), this.example (), this.example (), this.example (); 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 = a (document.body) .height () = 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.profil.css ("top "," "); var i =" affix "+ (h?" - "+ h:" "), j = a.Event (i +" .bs.affix "this.getPin =" bottom "== h? this.getPinnedOffset (): null, this."), nếu (điều này $ element.trigger (j), j.isDefaultPrevented ()) return; this.affixed = h, this.unpin = "bottom" == h? $ element.removeClass (c.RESET) .addClass (i) .trigger (i.replace ("affix", "affixed") + ".bs.affix")} "bottom" == h && này. $ element.offset ( {top: gbf})}}; 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"]'). Mỗi hàm () (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);