Line 5: | Line 5: | ||
<meta name="viewport" content="width=device-width, initial-scale=1"> | <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
<meta charset="utf-8"> | <meta charset="utf-8"> | ||
− | |||
− | |||
</head> | </head> | ||
− | <!-- | + | <!-- BOOSTRAP MIN CSS --> |
− | <style> | + | <style type="text/css"> |
/*! | /*! | ||
− | + | * Bootstrap v3.3.7 (http://getbootstrap.com) | |
− | + | * Copyright 2011-2016 Twitter, Inc. | |
− | + | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | |
− | + | */ | |
− | + | ||
+ | |||
+ | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ | ||
+ | |||
+ | html { | ||
+ | font-family: sans-serif; | ||
+ | -webkit-text-size-adjust: 100%; | ||
+ | -ms-text-size-adjust: 100% | ||
+ | } | ||
+ | |||
+ | body { | ||
+ | margin: 0 | ||
+ | } | ||
+ | |||
+ | article, | ||
+ | aside, | ||
+ | details, | ||
+ | figcaption, | ||
+ | figure, | ||
+ | footer, | ||
+ | header, | ||
+ | hgroup, | ||
+ | main, | ||
+ | menu, | ||
+ | nav, | ||
+ | section, | ||
+ | summary { | ||
+ | display: block | ||
+ | } | ||
+ | |||
+ | audio, | ||
+ | canvas, | ||
+ | progress, | ||
+ | video { | ||
+ | display: inline-block; | ||
+ | vertical-align: baseline | ||
+ | } | ||
+ | |||
+ | audio:not([controls]) { | ||
+ | display: none; | ||
+ | height: 0 | ||
+ | } | ||
+ | |||
+ | [hidden], | ||
+ | template { | ||
+ | display: none | ||
+ | } | ||
+ | |||
+ | a { | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | a:active, | ||
+ | a:hover { | ||
+ | outline: 0 | ||
+ | } | ||
+ | |||
+ | abbr[title] { | ||
+ | border-bottom: 1px dotted | ||
+ | } | ||
+ | |||
+ | b, | ||
+ | strong { | ||
+ | font-weight: 700 | ||
+ | } | ||
+ | |||
+ | dfn { | ||
+ | font-style: italic | ||
+ | } | ||
+ | |||
+ | h1 { | ||
+ | margin: .67em 0; | ||
+ | font-size: 2em | ||
+ | } | ||
+ | |||
+ | mark { | ||
+ | color: #000; | ||
+ | background: #ff0 | ||
+ | } | ||
+ | |||
+ | small { | ||
+ | font-size: 80% | ||
+ | } | ||
+ | |||
+ | sub, | ||
+ | sup { | ||
+ | position: relative; | ||
+ | font-size: 75%; | ||
+ | line-height: 0; | ||
+ | vertical-align: baseline | ||
+ | } | ||
+ | |||
+ | sup { | ||
+ | top: -.5em | ||
+ | } | ||
+ | |||
+ | sub { | ||
+ | bottom: -.25em | ||
+ | } | ||
+ | |||
+ | img { | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | svg:not(:root) { | ||
+ | overflow: hidden | ||
+ | } | ||
+ | |||
+ | figure { | ||
+ | margin: 1em 40px | ||
+ | } | ||
+ | |||
+ | hr { | ||
+ | height: 0; | ||
+ | -webkit-box-sizing: content-box; | ||
+ | -moz-box-sizing: content-box; | ||
+ | box-sizing: content-box | ||
+ | } | ||
+ | |||
+ | pre { | ||
+ | overflow: auto | ||
+ | } | ||
+ | |||
+ | code, | ||
+ | kbd, | ||
+ | pre, | ||
+ | samp { | ||
+ | font-family: monospace, monospace; | ||
+ | font-size: 1em | ||
+ | } | ||
+ | |||
+ | button, | ||
+ | input, | ||
+ | optgroup, | ||
+ | select, | ||
+ | textarea { | ||
+ | margin: 0; | ||
+ | font: inherit; | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | button { | ||
+ | overflow: visible | ||
+ | } | ||
+ | |||
+ | button, | ||
+ | select { | ||
+ | text-transform: none | ||
+ | } | ||
+ | |||
+ | button, | ||
+ | html input[type=button], | ||
+ | input[type=reset], | ||
+ | input[type=submit] { | ||
+ | -webkit-appearance: button; | ||
+ | cursor: pointer | ||
+ | } | ||
+ | |||
+ | button[disabled], | ||
+ | html input[disabled] { | ||
+ | cursor: default | ||
+ | } | ||
+ | |||
+ | button::-moz-focus-inner, | ||
+ | input::-moz-focus-inner { | ||
+ | padding: 0; | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | input { | ||
+ | line-height: normal | ||
+ | } | ||
+ | |||
+ | input[type=checkbox], | ||
+ | input[type=radio] { | ||
+ | -webkit-box-sizing: border-box; | ||
+ | -moz-box-sizing: border-box; | ||
+ | box-sizing: border-box; | ||
+ | padding: 0 | ||
+ | } | ||
+ | |||
+ | input[type=number]::-webkit-inner-spin-button, | ||
+ | input[type=number]::-webkit-outer-spin-button { | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | input[type=search] { | ||
+ | -webkit-box-sizing: content-box; | ||
+ | -moz-box-sizing: content-box; | ||
+ | box-sizing: content-box; | ||
+ | -webkit-appearance: textfield | ||
+ | } | ||
+ | |||
+ | input[type=search]::-webkit-search-cancel-button, | ||
+ | input[type=search]::-webkit-search-decoration { | ||
+ | -webkit-appearance: none | ||
+ | } | ||
+ | |||
+ | fieldset { | ||
+ | padding: .35em .625em .75em; | ||
+ | margin: 0 2px; | ||
+ | border: 1px solid silver | ||
+ | } | ||
+ | |||
+ | legend { | ||
+ | padding: 0; | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | textarea { | ||
+ | overflow: auto | ||
+ | } | ||
+ | |||
+ | optgroup { | ||
+ | font-weight: 700 | ||
+ | } | ||
+ | |||
+ | table { | ||
+ | border-spacing: 0; | ||
+ | border-collapse: collapse | ||
+ | } | ||
+ | |||
+ | td, | ||
+ | th { | ||
+ | padding: 0 | ||
+ | } | ||
+ | |||
+ | |||
+ | /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ | ||
+ | |||
+ | @media print { | ||
+ | *, | ||
+ | :after, | ||
+ | :before { | ||
+ | color: #000!important; | ||
+ | text-shadow: none!important; | ||
+ | background: 0 0!important; | ||
+ | -webkit-box-shadow: none!important; | ||
+ | box-shadow: none!important | ||
+ | } | ||
+ | a, | ||
+ | a:visited { | ||
+ | text-decoration: underline | ||
+ | } | ||
+ | a[href]:after { | ||
+ | content: " (" attr(href) ")" | ||
+ | } | ||
+ | abbr[title]:after { | ||
+ | content: " (" attr(title) ")" | ||
+ | } | ||
+ | a[href^="javascript:"]:after, | ||
+ | a[href^="#"]:after { | ||
+ | content: "" | ||
+ | } | ||
+ | blockquote, | ||
+ | pre { | ||
+ | border: 1px solid #999; | ||
+ | page-break-inside: avoid | ||
+ | } | ||
+ | thead { | ||
+ | display: table-header-group | ||
+ | } | ||
+ | img, | ||
+ | tr { | ||
+ | page-break-inside: avoid | ||
+ | } | ||
+ | img { | ||
+ | max-width: 100%!important | ||
+ | } | ||
+ | h2, | ||
+ | h3, | ||
+ | p { | ||
+ | orphans: 3; | ||
+ | widows: 3 | ||
+ | } | ||
+ | h2, | ||
+ | h3 { | ||
+ | page-break-after: avoid | ||
+ | } | ||
+ | .navbar { | ||
+ | display: none | ||
+ | } | ||
+ | .btn>.caret, | ||
+ | .dropup>.btn>.caret { | ||
+ | border-top-color: #000!important | ||
+ | } | ||
+ | .label { | ||
+ | border: 1px solid #000 | ||
+ | } | ||
+ | .table { | ||
+ | border-collapse: collapse!important | ||
+ | } | ||
+ | .table td, | ||
+ | .table th { | ||
+ | background-color: #fff!important | ||
+ | } | ||
+ | .table-bordered td, | ||
+ | .table-bordered th { | ||
+ | border: 1px solid #ddd!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @font-face { | ||
+ | font-family: 'Glyphicons Halflings'; | ||
+ | src: url(../fonts/glyphicons-halflings-regular.eot); | ||
+ | src: url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'), url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'), url(../fonts/glyphicons-halflings-regular.woff) format('woff'), url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'), url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg') | ||
+ | } | ||
+ | |||
+ | .glyphicon { | ||
+ | position: relative; | ||
+ | top: 1px; | ||
+ | display: inline-block; | ||
+ | font-family: 'Glyphicons Halflings'; | ||
+ | font-style: normal; | ||
+ | font-weight: 400; | ||
+ | line-height: 1; | ||
+ | -webkit-font-smoothing: antialiased; | ||
+ | -moz-osx-font-smoothing: grayscale | ||
+ | } | ||
+ | |||
+ | .glyphicon-asterisk:before { | ||
+ | content: "\002a" | ||
+ | } | ||
+ | |||
+ | .glyphicon-plus:before { | ||
+ | content: "\002b" | ||
+ | } | ||
+ | |||
+ | .glyphicon-eur:before, | ||
+ | .glyphicon-euro:before { | ||
+ | content: "\20ac" | ||
+ | } | ||
+ | |||
+ | .glyphicon-minus:before { | ||
+ | content: "\2212" | ||
+ | } | ||
+ | |||
+ | .glyphicon-cloud:before { | ||
+ | content: "\2601" | ||
+ | } | ||
+ | |||
+ | .glyphicon-envelope:before { | ||
+ | content: "\2709" | ||
+ | } | ||
+ | |||
+ | .glyphicon-pencil:before { | ||
+ | content: "\270f" | ||
+ | } | ||
+ | |||
+ | .glyphicon-glass:before { | ||
+ | content: "\e001" | ||
+ | } | ||
+ | |||
+ | .glyphicon-music:before { | ||
+ | content: "\e002" | ||
+ | } | ||
+ | |||
+ | .glyphicon-search:before { | ||
+ | content: "\e003" | ||
+ | } | ||
+ | |||
+ | .glyphicon-heart:before { | ||
+ | content: "\e005" | ||
+ | } | ||
+ | |||
+ | .glyphicon-star:before { | ||
+ | content: "\e006" | ||
+ | } | ||
+ | |||
+ | .glyphicon-star-empty:before { | ||
+ | content: "\e007" | ||
+ | } | ||
+ | |||
+ | .glyphicon-user:before { | ||
+ | content: "\e008" | ||
+ | } | ||
+ | |||
+ | .glyphicon-film:before { | ||
+ | content: "\e009" | ||
+ | } | ||
+ | |||
+ | .glyphicon-th-large:before { | ||
+ | content: "\e010" | ||
+ | } | ||
+ | |||
+ | .glyphicon-th:before { | ||
+ | content: "\e011" | ||
+ | } | ||
+ | |||
+ | .glyphicon-th-list:before { | ||
+ | content: "\e012" | ||
+ | } | ||
+ | |||
+ | .glyphicon-ok:before { | ||
+ | content: "\e013" | ||
+ | } | ||
+ | |||
+ | .glyphicon-remove:before { | ||
+ | content: "\e014" | ||
+ | } | ||
+ | |||
+ | .glyphicon-zoom-in:before { | ||
+ | content: "\e015" | ||
+ | } | ||
+ | |||
+ | .glyphicon-zoom-out:before { | ||
+ | content: "\e016" | ||
+ | } | ||
+ | |||
+ | .glyphicon-off:before { | ||
+ | content: "\e017" | ||
+ | } | ||
+ | |||
+ | .glyphicon-signal:before { | ||
+ | content: "\e018" | ||
+ | } | ||
+ | |||
+ | .glyphicon-cog:before { | ||
+ | content: "\e019" | ||
+ | } | ||
+ | |||
+ | .glyphicon-trash:before { | ||
+ | content: "\e020" | ||
+ | } | ||
+ | |||
+ | .glyphicon-home:before { | ||
+ | content: "\e021" | ||
+ | } | ||
+ | |||
+ | .glyphicon-file:before { | ||
+ | content: "\e022" | ||
+ | } | ||
+ | |||
+ | .glyphicon-time:before { | ||
+ | content: "\e023" | ||
+ | } | ||
+ | |||
+ | .glyphicon-road:before { | ||
+ | content: "\e024" | ||
+ | } | ||
+ | |||
+ | .glyphicon-download-alt:before { | ||
+ | content: "\e025" | ||
+ | } | ||
+ | |||
+ | .glyphicon-download:before { | ||
+ | content: "\e026" | ||
+ | } | ||
+ | |||
+ | .glyphicon-upload:before { | ||
+ | content: "\e027" | ||
+ | } | ||
+ | |||
+ | .glyphicon-inbox:before { | ||
+ | content: "\e028" | ||
+ | } | ||
+ | |||
+ | .glyphicon-play-circle:before { | ||
+ | content: "\e029" | ||
+ | } | ||
+ | |||
+ | .glyphicon-repeat:before { | ||
+ | content: "\e030" | ||
+ | } | ||
+ | |||
+ | .glyphicon-refresh:before { | ||
+ | content: "\e031" | ||
+ | } | ||
+ | |||
+ | .glyphicon-list-alt:before { | ||
+ | content: "\e032" | ||
+ | } | ||
+ | |||
+ | .glyphicon-lock:before { | ||
+ | content: "\e033" | ||
+ | } | ||
+ | |||
+ | .glyphicon-flag:before { | ||
+ | content: "\e034" | ||
+ | } | ||
+ | |||
+ | .glyphicon-headphones:before { | ||
+ | content: "\e035" | ||
+ | } | ||
+ | |||
+ | .glyphicon-volume-off:before { | ||
+ | content: "\e036" | ||
+ | } | ||
+ | |||
+ | .glyphicon-volume-down:before { | ||
+ | content: "\e037" | ||
+ | } | ||
+ | |||
+ | .glyphicon-volume-up:before { | ||
+ | content: "\e038" | ||
+ | } | ||
+ | |||
+ | .glyphicon-qrcode:before { | ||
+ | content: "\e039" | ||
+ | } | ||
+ | |||
+ | .glyphicon-barcode:before { | ||
+ | content: "\e040" | ||
+ | } | ||
+ | |||
+ | .glyphicon-tag:before { | ||
+ | content: "\e041" | ||
+ | } | ||
+ | |||
+ | .glyphicon-tags:before { | ||
+ | content: "\e042" | ||
+ | } | ||
+ | |||
+ | .glyphicon-book:before { | ||
+ | content: "\e043" | ||
+ | } | ||
+ | |||
+ | .glyphicon-bookmark:before { | ||
+ | content: "\e044" | ||
+ | } | ||
+ | |||
+ | .glyphicon-print:before { | ||
+ | content: "\e045" | ||
+ | } | ||
+ | |||
+ | .glyphicon-camera:before { | ||
+ | content: "\e046" | ||
+ | } | ||
+ | |||
+ | .glyphicon-font:before { | ||
+ | content: "\e047" | ||
+ | } | ||
+ | |||
+ | .glyphicon-bold:before { | ||
+ | content: "\e048" | ||
+ | } | ||
+ | |||
+ | .glyphicon-italic:before { | ||
+ | content: "\e049" | ||
+ | } | ||
+ | |||
+ | .glyphicon-text-height:before { | ||
+ | content: "\e050" | ||
+ | } | ||
+ | |||
+ | .glyphicon-text-width:before { | ||
+ | content: "\e051" | ||
+ | } | ||
+ | |||
+ | .glyphicon-align-left:before { | ||
+ | content: "\e052" | ||
+ | } | ||
+ | |||
+ | .glyphicon-align-center:before { | ||
+ | content: "\e053" | ||
+ | } | ||
+ | |||
+ | .glyphicon-align-right:before { | ||
+ | content: "\e054" | ||
+ | } | ||
+ | |||
+ | .glyphicon-align-justify:before { | ||
+ | content: "\e055" | ||
+ | } | ||
+ | |||
+ | .glyphicon-list:before { | ||
+ | content: "\e056" | ||
+ | } | ||
+ | |||
+ | .glyphicon-indent-left:before { | ||
+ | content: "\e057" | ||
+ | } | ||
+ | |||
+ | .glyphicon-indent-right:before { | ||
+ | content: "\e058" | ||
+ | } | ||
+ | |||
+ | .glyphicon-facetime-video:before { | ||
+ | content: "\e059" | ||
+ | } | ||
+ | |||
+ | .glyphicon-picture:before { | ||
+ | content: "\e060" | ||
+ | } | ||
+ | |||
+ | .glyphicon-map-marker:before { | ||
+ | content: "\e062" | ||
+ | } | ||
+ | |||
+ | .glyphicon-adjust:before { | ||
+ | content: "\e063" | ||
+ | } | ||
+ | |||
+ | .glyphicon-tint:before { | ||
+ | content: "\e064" | ||
+ | } | ||
+ | |||
+ | .glyphicon-edit:before { | ||
+ | content: "\e065" | ||
+ | } | ||
+ | |||
+ | .glyphicon-share:before { | ||
+ | content: "\e066" | ||
+ | } | ||
+ | |||
+ | .glyphicon-check:before { | ||
+ | content: "\e067" | ||
+ | } | ||
+ | |||
+ | .glyphicon-move:before { | ||
+ | content: "\e068" | ||
+ | } | ||
+ | |||
+ | .glyphicon-step-backward:before { | ||
+ | content: "\e069" | ||
+ | } | ||
+ | |||
+ | .glyphicon-fast-backward:before { | ||
+ | content: "\e070" | ||
+ | } | ||
+ | |||
+ | .glyphicon-backward:before { | ||
+ | content: "\e071" | ||
+ | } | ||
+ | |||
+ | .glyphicon-play:before { | ||
+ | content: "\e072" | ||
+ | } | ||
+ | |||
+ | .glyphicon-pause:before { | ||
+ | content: "\e073" | ||
+ | } | ||
+ | |||
+ | .glyphicon-stop:before { | ||
+ | content: "\e074" | ||
+ | } | ||
+ | |||
+ | .glyphicon-forward:before { | ||
+ | content: "\e075" | ||
+ | } | ||
+ | |||
+ | .glyphicon-fast-forward:before { | ||
+ | content: "\e076" | ||
+ | } | ||
+ | |||
+ | .glyphicon-step-forward:before { | ||
+ | content: "\e077" | ||
+ | } | ||
+ | |||
+ | .glyphicon-eject:before { | ||
+ | content: "\e078" | ||
+ | } | ||
+ | |||
+ | .glyphicon-chevron-left:before { | ||
+ | content: "\e079" | ||
+ | } | ||
+ | |||
+ | .glyphicon-chevron-right:before { | ||
+ | content: "\e080" | ||
+ | } | ||
+ | |||
+ | .glyphicon-plus-sign:before { | ||
+ | content: "\e081" | ||
+ | } | ||
+ | |||
+ | .glyphicon-minus-sign:before { | ||
+ | content: "\e082" | ||
+ | } | ||
+ | |||
+ | .glyphicon-remove-sign:before { | ||
+ | content: "\e083" | ||
+ | } | ||
+ | |||
+ | .glyphicon-ok-sign:before { | ||
+ | content: "\e084" | ||
+ | } | ||
+ | |||
+ | .glyphicon-question-sign:before { | ||
+ | content: "\e085" | ||
+ | } | ||
+ | |||
+ | .glyphicon-info-sign:before { | ||
+ | content: "\e086" | ||
+ | } | ||
+ | |||
+ | .glyphicon-screenshot:before { | ||
+ | content: "\e087" | ||
+ | } | ||
+ | |||
+ | .glyphicon-remove-circle:before { | ||
+ | content: "\e088" | ||
+ | } | ||
+ | |||
+ | .glyphicon-ok-circle:before { | ||
+ | content: "\e089" | ||
+ | } | ||
+ | |||
+ | .glyphicon-ban-circle:before { | ||
+ | content: "\e090" | ||
+ | } | ||
+ | |||
+ | .glyphicon-arrow-left:before { | ||
+ | content: "\e091" | ||
+ | } | ||
+ | |||
+ | .glyphicon-arrow-right:before { | ||
+ | content: "\e092" | ||
+ | } | ||
+ | |||
+ | .glyphicon-arrow-up:before { | ||
+ | content: "\e093" | ||
+ | } | ||
+ | |||
+ | .glyphicon-arrow-down:before { | ||
+ | content: "\e094" | ||
+ | } | ||
+ | |||
+ | .glyphicon-share-alt:before { | ||
+ | content: "\e095" | ||
+ | } | ||
+ | |||
+ | .glyphicon-resize-full:before { | ||
+ | content: "\e096" | ||
+ | } | ||
+ | |||
+ | .glyphicon-resize-small:before { | ||
+ | content: "\e097" | ||
+ | } | ||
+ | |||
+ | .glyphicon-exclamation-sign:before { | ||
+ | content: "\e101" | ||
+ | } | ||
+ | |||
+ | .glyphicon-gift:before { | ||
+ | content: "\e102" | ||
+ | } | ||
+ | |||
+ | .glyphicon-leaf:before { | ||
+ | content: "\e103" | ||
+ | } | ||
+ | |||
+ | .glyphicon-fire:before { | ||
+ | content: "\e104" | ||
+ | } | ||
+ | |||
+ | .glyphicon-eye-open:before { | ||
+ | content: "\e105" | ||
+ | } | ||
+ | |||
+ | .glyphicon-eye-close:before { | ||
+ | content: "\e106" | ||
+ | } | ||
+ | |||
+ | .glyphicon-warning-sign:before { | ||
+ | content: "\e107" | ||
+ | } | ||
+ | |||
+ | .glyphicon-plane:before { | ||
+ | content: "\e108" | ||
+ | } | ||
+ | |||
+ | .glyphicon-calendar:before { | ||
+ | content: "\e109" | ||
+ | } | ||
+ | |||
+ | .glyphicon-random:before { | ||
+ | content: "\e110" | ||
+ | } | ||
+ | |||
+ | .glyphicon-comment:before { | ||
+ | content: "\e111" | ||
+ | } | ||
+ | |||
+ | .glyphicon-magnet:before { | ||
+ | content: "\e112" | ||
+ | } | ||
+ | |||
+ | .glyphicon-chevron-up:before { | ||
+ | content: "\e113" | ||
+ | } | ||
+ | |||
+ | .glyphicon-chevron-down:before { | ||
+ | content: "\e114" | ||
+ | } | ||
+ | |||
+ | .glyphicon-retweet:before { | ||
+ | content: "\e115" | ||
+ | } | ||
+ | |||
+ | .glyphicon-shopping-cart:before { | ||
+ | content: "\e116" | ||
+ | } | ||
+ | |||
+ | .glyphicon-folder-close:before { | ||
+ | content: "\e117" | ||
+ | } | ||
+ | |||
+ | .glyphicon-folder-open:before { | ||
+ | content: "\e118" | ||
+ | } | ||
+ | |||
+ | .glyphicon-resize-vertical:before { | ||
+ | content: "\e119" | ||
+ | } | ||
+ | |||
+ | .glyphicon-resize-horizontal:before { | ||
+ | content: "\e120" | ||
+ | } | ||
+ | |||
+ | .glyphicon-hdd:before { | ||
+ | content: "\e121" | ||
+ | } | ||
+ | |||
+ | .glyphicon-bullhorn:before { | ||
+ | content: "\e122" | ||
+ | } | ||
+ | |||
+ | .glyphicon-bell:before { | ||
+ | content: "\e123" | ||
+ | } | ||
+ | |||
+ | .glyphicon-certificate:before { | ||
+ | content: "\e124" | ||
+ | } | ||
+ | |||
+ | .glyphicon-thumbs-up:before { | ||
+ | content: "\e125" | ||
+ | } | ||
+ | |||
+ | .glyphicon-thumbs-down:before { | ||
+ | content: "\e126" | ||
+ | } | ||
+ | |||
+ | .glyphicon-hand-right:before { | ||
+ | content: "\e127" | ||
+ | } | ||
+ | |||
+ | .glyphicon-hand-left:before { | ||
+ | content: "\e128" | ||
+ | } | ||
+ | |||
+ | .glyphicon-hand-up:before { | ||
+ | content: "\e129" | ||
+ | } | ||
+ | |||
+ | .glyphicon-hand-down:before { | ||
+ | content: "\e130" | ||
+ | } | ||
+ | |||
+ | .glyphicon-circle-arrow-right:before { | ||
+ | content: "\e131" | ||
+ | } | ||
+ | |||
+ | .glyphicon-circle-arrow-left:before { | ||
+ | content: "\e132" | ||
+ | } | ||
+ | |||
+ | .glyphicon-circle-arrow-up:before { | ||
+ | content: "\e133" | ||
+ | } | ||
+ | |||
+ | .glyphicon-circle-arrow-down:before { | ||
+ | content: "\e134" | ||
+ | } | ||
+ | |||
+ | .glyphicon-globe:before { | ||
+ | content: "\e135" | ||
+ | } | ||
+ | |||
+ | .glyphicon-wrench:before { | ||
+ | content: "\e136" | ||
+ | } | ||
+ | |||
+ | .glyphicon-tasks:before { | ||
+ | content: "\e137" | ||
+ | } | ||
+ | |||
+ | .glyphicon-filter:before { | ||
+ | content: "\e138" | ||
+ | } | ||
+ | |||
+ | .glyphicon-briefcase:before { | ||
+ | content: "\e139" | ||
+ | } | ||
+ | |||
+ | .glyphicon-fullscreen:before { | ||
+ | content: "\e140" | ||
+ | } | ||
+ | |||
+ | .glyphicon-dashboard:before { | ||
+ | content: "\e141" | ||
+ | } | ||
+ | |||
+ | .glyphicon-paperclip:before { | ||
+ | content: "\e142" | ||
+ | } | ||
+ | |||
+ | .glyphicon-heart-empty:before { | ||
+ | content: "\e143" | ||
+ | } | ||
+ | |||
+ | .glyphicon-link:before { | ||
+ | content: "\e144" | ||
+ | } | ||
+ | |||
+ | .glyphicon-phone:before { | ||
+ | content: "\e145" | ||
+ | } | ||
+ | |||
+ | .glyphicon-pushpin:before { | ||
+ | content: "\e146" | ||
+ | } | ||
+ | |||
+ | .glyphicon-usd:before { | ||
+ | content: "\e148" | ||
+ | } | ||
+ | |||
+ | .glyphicon-gbp:before { | ||
+ | content: "\e149" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sort:before { | ||
+ | content: "\e150" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sort-by-alphabet:before { | ||
+ | content: "\e151" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sort-by-alphabet-alt:before { | ||
+ | content: "\e152" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sort-by-order:before { | ||
+ | content: "\e153" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sort-by-order-alt:before { | ||
+ | content: "\e154" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sort-by-attributes:before { | ||
+ | content: "\e155" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sort-by-attributes-alt:before { | ||
+ | content: "\e156" | ||
+ | } | ||
+ | |||
+ | .glyphicon-unchecked:before { | ||
+ | content: "\e157" | ||
+ | } | ||
+ | |||
+ | .glyphicon-expand:before { | ||
+ | content: "\e158" | ||
+ | } | ||
+ | |||
+ | .glyphicon-collapse-down:before { | ||
+ | content: "\e159" | ||
+ | } | ||
+ | |||
+ | .glyphicon-collapse-up:before { | ||
+ | content: "\e160" | ||
+ | } | ||
+ | |||
+ | .glyphicon-log-in:before { | ||
+ | content: "\e161" | ||
+ | } | ||
+ | |||
+ | .glyphicon-flash:before { | ||
+ | content: "\e162" | ||
+ | } | ||
+ | |||
+ | .glyphicon-log-out:before { | ||
+ | content: "\e163" | ||
+ | } | ||
+ | |||
+ | .glyphicon-new-window:before { | ||
+ | content: "\e164" | ||
+ | } | ||
+ | |||
+ | .glyphicon-record:before { | ||
+ | content: "\e165" | ||
+ | } | ||
+ | |||
+ | .glyphicon-save:before { | ||
+ | content: "\e166" | ||
+ | } | ||
+ | |||
+ | .glyphicon-open:before { | ||
+ | content: "\e167" | ||
+ | } | ||
+ | |||
+ | .glyphicon-saved:before { | ||
+ | content: "\e168" | ||
+ | } | ||
+ | |||
+ | .glyphicon-import:before { | ||
+ | content: "\e169" | ||
+ | } | ||
+ | |||
+ | .glyphicon-export:before { | ||
+ | content: "\e170" | ||
+ | } | ||
+ | |||
+ | .glyphicon-send:before { | ||
+ | content: "\e171" | ||
+ | } | ||
+ | |||
+ | .glyphicon-floppy-disk:before { | ||
+ | content: "\e172" | ||
+ | } | ||
+ | |||
+ | .glyphicon-floppy-saved:before { | ||
+ | content: "\e173" | ||
+ | } | ||
+ | |||
+ | .glyphicon-floppy-remove:before { | ||
+ | content: "\e174" | ||
+ | } | ||
+ | |||
+ | .glyphicon-floppy-save:before { | ||
+ | content: "\e175" | ||
+ | } | ||
+ | |||
+ | .glyphicon-floppy-open:before { | ||
+ | content: "\e176" | ||
+ | } | ||
+ | |||
+ | .glyphicon-credit-card:before { | ||
+ | content: "\e177" | ||
+ | } | ||
+ | |||
+ | .glyphicon-transfer:before { | ||
+ | content: "\e178" | ||
+ | } | ||
+ | |||
+ | .glyphicon-cutlery:before { | ||
+ | content: "\e179" | ||
+ | } | ||
+ | |||
+ | .glyphicon-header:before { | ||
+ | content: "\e180" | ||
+ | } | ||
+ | |||
+ | .glyphicon-compressed:before { | ||
+ | content: "\e181" | ||
+ | } | ||
+ | |||
+ | .glyphicon-earphone:before { | ||
+ | content: "\e182" | ||
+ | } | ||
+ | |||
+ | .glyphicon-phone-alt:before { | ||
+ | content: "\e183" | ||
+ | } | ||
+ | |||
+ | .glyphicon-tower:before { | ||
+ | content: "\e184" | ||
+ | } | ||
+ | |||
+ | .glyphicon-stats:before { | ||
+ | content: "\e185" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sd-video:before { | ||
+ | content: "\e186" | ||
+ | } | ||
+ | |||
+ | .glyphicon-hd-video:before { | ||
+ | content: "\e187" | ||
+ | } | ||
+ | |||
+ | .glyphicon-subtitles:before { | ||
+ | content: "\e188" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sound-stereo:before { | ||
+ | content: "\e189" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sound-dolby:before { | ||
+ | content: "\e190" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sound-5-1:before { | ||
+ | content: "\e191" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sound-6-1:before { | ||
+ | content: "\e192" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sound-7-1:before { | ||
+ | content: "\e193" | ||
+ | } | ||
+ | |||
+ | .glyphicon-copyright-mark:before { | ||
+ | content: "\e194" | ||
+ | } | ||
+ | |||
+ | .glyphicon-registration-mark:before { | ||
+ | content: "\e195" | ||
+ | } | ||
+ | |||
+ | .glyphicon-cloud-download:before { | ||
+ | content: "\e197" | ||
+ | } | ||
+ | |||
+ | .glyphicon-cloud-upload:before { | ||
+ | content: "\e198" | ||
+ | } | ||
+ | |||
+ | .glyphicon-tree-conifer:before { | ||
+ | content: "\e199" | ||
+ | } | ||
+ | |||
+ | .glyphicon-tree-deciduous:before { | ||
+ | content: "\e200" | ||
+ | } | ||
+ | |||
+ | .glyphicon-cd:before { | ||
+ | content: "\e201" | ||
+ | } | ||
+ | |||
+ | .glyphicon-save-file:before { | ||
+ | content: "\e202" | ||
+ | } | ||
+ | |||
+ | .glyphicon-open-file:before { | ||
+ | content: "\e203" | ||
+ | } | ||
+ | |||
+ | .glyphicon-level-up:before { | ||
+ | content: "\e204" | ||
+ | } | ||
+ | |||
+ | .glyphicon-copy:before { | ||
+ | content: "\e205" | ||
+ | } | ||
+ | |||
+ | .glyphicon-paste:before { | ||
+ | content: "\e206" | ||
+ | } | ||
+ | |||
+ | .glyphicon-alert:before { | ||
+ | content: "\e209" | ||
+ | } | ||
+ | |||
+ | .glyphicon-equalizer:before { | ||
+ | content: "\e210" | ||
+ | } | ||
+ | |||
+ | .glyphicon-king:before { | ||
+ | content: "\e211" | ||
+ | } | ||
+ | |||
+ | .glyphicon-queen:before { | ||
+ | content: "\e212" | ||
+ | } | ||
+ | |||
+ | .glyphicon-pawn:before { | ||
+ | content: "\e213" | ||
+ | } | ||
+ | |||
+ | .glyphicon-bishop:before { | ||
+ | content: "\e214" | ||
+ | } | ||
+ | |||
+ | .glyphicon-knight:before { | ||
+ | content: "\e215" | ||
+ | } | ||
+ | |||
+ | .glyphicon-baby-formula:before { | ||
+ | content: "\e216" | ||
+ | } | ||
+ | |||
+ | .glyphicon-tent:before { | ||
+ | content: "\26fa" | ||
+ | } | ||
+ | |||
+ | .glyphicon-blackboard:before { | ||
+ | content: "\e218" | ||
+ | } | ||
+ | |||
+ | .glyphicon-bed:before { | ||
+ | content: "\e219" | ||
+ | } | ||
+ | |||
+ | .glyphicon-apple:before { | ||
+ | content: "\f8ff" | ||
+ | } | ||
+ | |||
+ | .glyphicon-erase:before { | ||
+ | content: "\e221" | ||
+ | } | ||
+ | |||
+ | .glyphicon-hourglass:before { | ||
+ | content: "\231b" | ||
+ | } | ||
+ | |||
+ | .glyphicon-lamp:before { | ||
+ | content: "\e223" | ||
+ | } | ||
+ | |||
+ | .glyphicon-duplicate:before { | ||
+ | content: "\e224" | ||
+ | } | ||
+ | |||
+ | .glyphicon-piggy-bank:before { | ||
+ | content: "\e225" | ||
+ | } | ||
+ | |||
+ | .glyphicon-scissors:before { | ||
+ | content: "\e226" | ||
+ | } | ||
+ | |||
+ | .glyphicon-bitcoin:before { | ||
+ | content: "\e227" | ||
+ | } | ||
+ | |||
+ | .glyphicon-btc:before { | ||
+ | content: "\e227" | ||
+ | } | ||
+ | |||
+ | .glyphicon-xbt:before { | ||
+ | content: "\e227" | ||
+ | } | ||
+ | |||
+ | .glyphicon-yen:before { | ||
+ | content: "\00a5" | ||
+ | } | ||
+ | |||
+ | .glyphicon-jpy:before { | ||
+ | content: "\00a5" | ||
+ | } | ||
+ | |||
+ | .glyphicon-ruble:before { | ||
+ | content: "\20bd" | ||
+ | } | ||
+ | |||
+ | .glyphicon-rub:before { | ||
+ | content: "\20bd" | ||
+ | } | ||
+ | |||
+ | .glyphicon-scale:before { | ||
+ | content: "\e230" | ||
+ | } | ||
+ | |||
+ | .glyphicon-ice-lolly:before { | ||
+ | content: "\e231" | ||
+ | } | ||
+ | |||
+ | .glyphicon-ice-lolly-tasted:before { | ||
+ | content: "\e232" | ||
+ | } | ||
+ | |||
+ | .glyphicon-education:before { | ||
+ | content: "\e233" | ||
+ | } | ||
+ | |||
+ | .glyphicon-option-horizontal:before { | ||
+ | content: "\e234" | ||
+ | } | ||
+ | |||
+ | .glyphicon-option-vertical:before { | ||
+ | content: "\e235" | ||
+ | } | ||
+ | |||
+ | .glyphicon-menu-hamburger:before { | ||
+ | content: "\e236" | ||
+ | } | ||
+ | |||
+ | .glyphicon-modal-window:before { | ||
+ | content: "\e237" | ||
+ | } | ||
+ | |||
+ | .glyphicon-oil:before { | ||
+ | content: "\e238" | ||
+ | } | ||
+ | |||
+ | .glyphicon-grain:before { | ||
+ | content: "\e239" | ||
+ | } | ||
+ | |||
+ | .glyphicon-sunglasses:before { | ||
+ | content: "\e240" | ||
+ | } | ||
+ | |||
+ | .glyphicon-text-size:before { | ||
+ | content: "\e241" | ||
+ | } | ||
+ | |||
+ | .glyphicon-text-color:before { | ||
+ | content: "\e242" | ||
+ | } | ||
+ | |||
+ | .glyphicon-text-background:before { | ||
+ | content: "\e243" | ||
+ | } | ||
+ | |||
+ | .glyphicon-object-align-top:before { | ||
+ | content: "\e244" | ||
+ | } | ||
+ | |||
+ | .glyphicon-object-align-bottom:before { | ||
+ | content: "\e245" | ||
+ | } | ||
+ | |||
+ | .glyphicon-object-align-horizontal:before { | ||
+ | content: "\e246" | ||
+ | } | ||
+ | |||
+ | .glyphicon-object-align-left:before { | ||
+ | content: "\e247" | ||
+ | } | ||
+ | |||
+ | .glyphicon-object-align-vertical:before { | ||
+ | content: "\e248" | ||
+ | } | ||
+ | |||
+ | .glyphicon-object-align-right:before { | ||
+ | content: "\e249" | ||
+ | } | ||
+ | |||
+ | .glyphicon-triangle-right:before { | ||
+ | content: "\e250" | ||
+ | } | ||
+ | |||
+ | .glyphicon-triangle-left:before { | ||
+ | content: "\e251" | ||
+ | } | ||
+ | |||
+ | .glyphicon-triangle-bottom:before { | ||
+ | content: "\e252" | ||
+ | } | ||
+ | |||
+ | .glyphicon-triangle-top:before { | ||
+ | content: "\e253" | ||
+ | } | ||
+ | |||
+ | .glyphicon-console:before { | ||
+ | content: "\e254" | ||
+ | } | ||
+ | |||
+ | .glyphicon-superscript:before { | ||
+ | content: "\e255" | ||
+ | } | ||
+ | |||
+ | .glyphicon-subscript:before { | ||
+ | content: "\e256" | ||
+ | } | ||
+ | |||
+ | .glyphicon-menu-left:before { | ||
+ | content: "\e257" | ||
+ | } | ||
+ | |||
+ | .glyphicon-menu-right:before { | ||
+ | content: "\e258" | ||
+ | } | ||
+ | |||
+ | .glyphicon-menu-down:before { | ||
+ | content: "\e259" | ||
+ | } | ||
+ | |||
+ | .glyphicon-menu-up:before { | ||
+ | content: "\e260" | ||
+ | } | ||
+ | |||
+ | * { | ||
+ | -webkit-box-sizing: border-box; | ||
+ | -moz-box-sizing: border-box; | ||
+ | box-sizing: border-box | ||
+ | } | ||
+ | |||
+ | :after, | ||
+ | :before { | ||
+ | -webkit-box-sizing: border-box; | ||
+ | -moz-box-sizing: border-box; | ||
+ | box-sizing: border-box | ||
+ | } | ||
+ | |||
+ | html { | ||
+ | font-size: 10px; | ||
+ | -webkit-tap-highlight-color: rgba(0, 0, 0, 0) | ||
+ | } | ||
+ | |||
+ | body { | ||
+ | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | ||
+ | font-size: 14px; | ||
+ | line-height: 1.42857143; | ||
+ | color: #333; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | button, | ||
+ | input, | ||
+ | select, | ||
+ | textarea { | ||
+ | font-family: inherit; | ||
+ | font-size: inherit; | ||
+ | line-height: inherit | ||
+ | } | ||
+ | |||
+ | a { | ||
+ | color: #337ab7; | ||
+ | text-decoration: none | ||
+ | } | ||
+ | |||
+ | a:focus, | ||
+ | a:hover { | ||
+ | color: #23527c; | ||
+ | text-decoration: underline | ||
+ | } | ||
+ | |||
+ | a:focus { | ||
+ | outline: 5px auto -webkit-focus-ring-color; | ||
+ | outline-offset: -2px | ||
+ | } | ||
+ | |||
+ | figure { | ||
+ | margin: 0 | ||
+ | } | ||
+ | |||
+ | img { | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.item>a>img, | ||
+ | .carousel-inner>.item>img, | ||
+ | .img-responsive, | ||
+ | .thumbnail a>img, | ||
+ | .thumbnail>img { | ||
+ | display: block; | ||
+ | max-width: 100%; | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | .img-rounded { | ||
+ | border-radius: 6px | ||
+ | } | ||
+ | |||
+ | .img-thumbnail { | ||
+ | display: inline-block; | ||
+ | max-width: 100%; | ||
+ | height: auto; | ||
+ | padding: 4px; | ||
+ | line-height: 1.42857143; | ||
+ | background-color: #fff; | ||
+ | border: 1px solid #ddd; | ||
+ | border-radius: 4px; | ||
+ | -webkit-transition: all .2s ease-in-out; | ||
+ | -o-transition: all .2s ease-in-out; | ||
+ | transition: all .2s ease-in-out | ||
+ | } | ||
+ | |||
+ | .img-circle { | ||
+ | border-radius: 50% | ||
+ | } | ||
+ | |||
+ | hr { | ||
+ | margin-top: 20px; | ||
+ | margin-bottom: 20px; | ||
+ | border: 0; | ||
+ | border-top: 1px solid #eee | ||
+ | } | ||
+ | |||
+ | .sr-only { | ||
+ | position: absolute; | ||
+ | width: 1px; | ||
+ | height: 1px; | ||
+ | padding: 0; | ||
+ | margin: -1px; | ||
+ | overflow: hidden; | ||
+ | clip: rect(0, 0, 0, 0); | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | .sr-only-focusable:active, | ||
+ | .sr-only-focusable:focus { | ||
+ | position: static; | ||
+ | width: auto; | ||
+ | height: auto; | ||
+ | margin: 0; | ||
+ | overflow: visible; | ||
+ | clip: auto | ||
+ | } | ||
+ | |||
+ | [role=button] { | ||
+ | cursor: pointer | ||
+ | } | ||
+ | |||
+ | .h1, | ||
+ | .h2, | ||
+ | .h3, | ||
+ | .h4, | ||
+ | .h5, | ||
+ | .h6, | ||
+ | h1, | ||
+ | h2, | ||
+ | h3, | ||
+ | h4, | ||
+ | h5, | ||
+ | h6 { | ||
+ | font-family: inherit; | ||
+ | font-weight: 500; | ||
+ | line-height: 1.1; | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | .h1 .small, | ||
+ | .h1 small, | ||
+ | .h2 .small, | ||
+ | .h2 small, | ||
+ | .h3 .small, | ||
+ | .h3 small, | ||
+ | .h4 .small, | ||
+ | .h4 small, | ||
+ | .h5 .small, | ||
+ | .h5 small, | ||
+ | .h6 .small, | ||
+ | .h6 small, | ||
+ | h1 .small, | ||
+ | h1 small, | ||
+ | h2 .small, | ||
+ | h2 small, | ||
+ | h3 .small, | ||
+ | h3 small, | ||
+ | h4 .small, | ||
+ | h4 small, | ||
+ | h5 .small, | ||
+ | h5 small, | ||
+ | h6 .small, | ||
+ | h6 small { | ||
+ | font-weight: 400; | ||
+ | line-height: 1; | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .h1, | ||
+ | .h2, | ||
+ | .h3, | ||
+ | h1, | ||
+ | h2, | ||
+ | h3 { | ||
+ | margin-top: 20px; | ||
+ | margin-bottom: 10px | ||
+ | } | ||
+ | |||
+ | .h1 .small, | ||
+ | .h1 small, | ||
+ | .h2 .small, | ||
+ | .h2 small, | ||
+ | .h3 .small, | ||
+ | .h3 small, | ||
+ | h1 .small, | ||
+ | h1 small, | ||
+ | h2 .small, | ||
+ | h2 small, | ||
+ | h3 .small, | ||
+ | h3 small { | ||
+ | font-size: 65% | ||
+ | } | ||
+ | |||
+ | .h4, | ||
+ | .h5, | ||
+ | .h6, | ||
+ | h4, | ||
+ | h5, | ||
+ | h6 { | ||
+ | margin-top: 10px; | ||
+ | margin-bottom: 10px | ||
+ | } | ||
+ | |||
+ | .h4 .small, | ||
+ | .h4 small, | ||
+ | .h5 .small, | ||
+ | .h5 small, | ||
+ | .h6 .small, | ||
+ | .h6 small, | ||
+ | h4 .small, | ||
+ | h4 small, | ||
+ | h5 .small, | ||
+ | h5 small, | ||
+ | h6 .small, | ||
+ | h6 small { | ||
+ | font-size: 75% | ||
+ | } | ||
+ | |||
+ | .h1, | ||
+ | h1 { | ||
+ | font-size: 36px | ||
+ | } | ||
+ | |||
+ | .h2, | ||
+ | h2 { | ||
+ | font-size: 30px | ||
+ | } | ||
+ | |||
+ | .h3, | ||
+ | h3 { | ||
+ | font-size: 24px | ||
+ | } | ||
+ | |||
+ | .h4, | ||
+ | h4 { | ||
+ | font-size: 18px | ||
+ | } | ||
+ | |||
+ | .h5, | ||
+ | h5 { | ||
+ | font-size: 14px | ||
+ | } | ||
+ | |||
+ | .h6, | ||
+ | h6 { | ||
+ | font-size: 12px | ||
+ | } | ||
+ | |||
+ | p { | ||
+ | margin: 0 0 10px | ||
+ | } | ||
+ | |||
+ | .lead { | ||
+ | margin-bottom: 20px; | ||
+ | font-size: 16px; | ||
+ | font-weight: 300; | ||
+ | line-height: 1.4 | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .lead { | ||
+ | font-size: 21px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .small, | ||
+ | small { | ||
+ | font-size: 85% | ||
+ | } | ||
+ | |||
+ | .mark, | ||
+ | mark { | ||
+ | padding: .2em; | ||
+ | background-color: #fcf8e3 | ||
+ | } | ||
+ | |||
+ | .text-left { | ||
+ | text-align: left | ||
+ | } | ||
+ | |||
+ | .text-right { | ||
+ | text-align: right | ||
+ | } | ||
+ | |||
+ | .text-center { | ||
+ | text-align: center | ||
+ | } | ||
+ | |||
+ | .text-justify { | ||
+ | text-align: justify | ||
+ | } | ||
+ | |||
+ | .text-nowrap { | ||
+ | white-space: nowrap | ||
+ | } | ||
+ | |||
+ | .text-lowercase { | ||
+ | text-transform: lowercase | ||
+ | } | ||
+ | |||
+ | .text-uppercase { | ||
+ | text-transform: uppercase | ||
+ | } | ||
+ | |||
+ | .text-capitalize { | ||
+ | text-transform: capitalize | ||
+ | } | ||
+ | |||
+ | .text-muted { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .text-primary { | ||
+ | color: #337ab7 | ||
+ | } | ||
+ | |||
+ | a.text-primary:focus, | ||
+ | a.text-primary:hover { | ||
+ | color: #286090 | ||
+ | } | ||
+ | |||
+ | .text-success { | ||
+ | color: #3c763d | ||
+ | } | ||
+ | |||
+ | a.text-success:focus, | ||
+ | a.text-success:hover { | ||
+ | color: #2b542c | ||
+ | } | ||
+ | |||
+ | .text-info { | ||
+ | color: #31708f | ||
+ | } | ||
+ | |||
+ | a.text-info:focus, | ||
+ | a.text-info:hover { | ||
+ | color: #245269 | ||
+ | } | ||
+ | |||
+ | .text-warning { | ||
+ | color: #8a6d3b | ||
+ | } | ||
+ | |||
+ | a.text-warning:focus, | ||
+ | a.text-warning:hover { | ||
+ | color: #66512c | ||
+ | } | ||
+ | |||
+ | .text-danger { | ||
+ | color: #a94442 | ||
+ | } | ||
+ | |||
+ | a.text-danger:focus, | ||
+ | a.text-danger:hover { | ||
+ | color: #843534 | ||
+ | } | ||
+ | |||
+ | .bg-primary { | ||
+ | color: #fff; | ||
+ | background-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | a.bg-primary:focus, | ||
+ | a.bg-primary:hover { | ||
+ | background-color: #286090 | ||
+ | } | ||
+ | |||
+ | .bg-success { | ||
+ | background-color: #dff0d8 | ||
+ | } | ||
+ | |||
+ | a.bg-success:focus, | ||
+ | a.bg-success:hover { | ||
+ | background-color: #c1e2b3 | ||
+ | } | ||
+ | |||
+ | .bg-info { | ||
+ | background-color: #d9edf7 | ||
+ | } | ||
+ | |||
+ | a.bg-info:focus, | ||
+ | a.bg-info:hover { | ||
+ | background-color: #afd9ee | ||
+ | } | ||
+ | |||
+ | .bg-warning { | ||
+ | background-color: #fcf8e3 | ||
+ | } | ||
+ | |||
+ | a.bg-warning:focus, | ||
+ | a.bg-warning:hover { | ||
+ | background-color: #f7ecb5 | ||
+ | } | ||
+ | |||
+ | .bg-danger { | ||
+ | background-color: #f2dede | ||
+ | } | ||
+ | |||
+ | a.bg-danger:focus, | ||
+ | a.bg-danger:hover { | ||
+ | background-color: #e4b9b9 | ||
+ | } | ||
+ | |||
+ | .page-header { | ||
+ | padding-bottom: 9px; | ||
+ | margin: 40px 0 20px; | ||
+ | border-bottom: 1px solid #eee | ||
+ | } | ||
+ | |||
+ | ol, | ||
+ | ul { | ||
+ | margin-top: 0; | ||
+ | margin-bottom: 10px | ||
+ | } | ||
+ | |||
+ | ol ol, | ||
+ | ol ul, | ||
+ | ul ol, | ||
+ | ul ul { | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .list-unstyled { | ||
+ | padding-left: 0; | ||
+ | list-style: none | ||
+ | } | ||
+ | |||
+ | .list-inline { | ||
+ | padding-left: 0; | ||
+ | margin-left: -5px; | ||
+ | list-style: none | ||
+ | } | ||
+ | |||
+ | .list-inline>li { | ||
+ | display: inline-block; | ||
+ | padding-right: 5px; | ||
+ | padding-left: 5px | ||
+ | } | ||
+ | |||
+ | dl { | ||
+ | margin-top: 0; | ||
+ | margin-bottom: 20px | ||
+ | } | ||
+ | |||
+ | dd, | ||
+ | dt { | ||
+ | line-height: 1.42857143 | ||
+ | } | ||
+ | |||
+ | dt { | ||
+ | font-weight: 700 | ||
+ | } | ||
+ | |||
+ | dd { | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .dl-horizontal dt { | ||
+ | float: left; | ||
+ | width: 160px; | ||
+ | overflow: hidden; | ||
+ | clear: left; | ||
+ | text-align: right; | ||
+ | text-overflow: ellipsis; | ||
+ | white-space: nowrap | ||
+ | } | ||
+ | .dl-horizontal dd { | ||
+ | margin-left: 180px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | abbr[data-original-title], | ||
+ | abbr[title] { | ||
+ | cursor: help; | ||
+ | border-bottom: 1px dotted #777 | ||
+ | } | ||
+ | |||
+ | .initialism { | ||
+ | font-size: 90%; | ||
+ | text-transform: uppercase | ||
+ | } | ||
+ | |||
+ | blockquote { | ||
+ | padding: 10px 20px; | ||
+ | margin: 0 0 20px; | ||
+ | font-size: 17.5px; | ||
+ | border-left: 5px solid #eee | ||
+ | } | ||
+ | |||
+ | blockquote ol:last-child, | ||
+ | blockquote p:last-child, | ||
+ | blockquote ul:last-child { | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | |||
+ | blockquote .small, | ||
+ | blockquote footer, | ||
+ | blockquote small { | ||
+ | display: block; | ||
+ | font-size: 80%; | ||
+ | line-height: 1.42857143; | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | blockquote .small:before, | ||
+ | blockquote footer:before, | ||
+ | blockquote small:before { | ||
+ | content: '\2014 \00A0' | ||
+ | } | ||
+ | |||
+ | .blockquote-reverse, | ||
+ | blockquote.pull-right { | ||
+ | padding-right: 15px; | ||
+ | padding-left: 0; | ||
+ | text-align: right; | ||
+ | border-right: 5px solid #eee; | ||
+ | border-left: 0 | ||
+ | } | ||
+ | |||
+ | .blockquote-reverse .small:before, | ||
+ | .blockquote-reverse footer:before, | ||
+ | .blockquote-reverse small:before, | ||
+ | blockquote.pull-right .small:before, | ||
+ | blockquote.pull-right footer:before, | ||
+ | blockquote.pull-right small:before { | ||
+ | content: '' | ||
+ | } | ||
+ | |||
+ | .blockquote-reverse .small:after, | ||
+ | .blockquote-reverse footer:after, | ||
+ | .blockquote-reverse small:after, | ||
+ | blockquote.pull-right .small:after, | ||
+ | blockquote.pull-right footer:after, | ||
+ | blockquote.pull-right small:after { | ||
+ | content: '\00A0 \2014' | ||
+ | } | ||
+ | |||
+ | address { | ||
+ | margin-bottom: 20px; | ||
+ | font-style: normal; | ||
+ | line-height: 1.42857143 | ||
+ | } | ||
+ | |||
+ | code, | ||
+ | kbd, | ||
+ | pre, | ||
+ | samp { | ||
+ | font-family: Menlo, Monaco, Consolas, "Courier New", monospace | ||
+ | } | ||
+ | |||
+ | code { | ||
+ | padding: 2px 4px; | ||
+ | font-size: 90%; | ||
+ | color: #c7254e; | ||
+ | background-color: #f9f2f4; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | kbd { | ||
+ | padding: 2px 4px; | ||
+ | font-size: 90%; | ||
+ | color: #fff; | ||
+ | background-color: #333; | ||
+ | border-radius: 3px; | ||
+ | -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); | ||
+ | box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25) | ||
+ | } | ||
+ | |||
+ | kbd kbd { | ||
+ | padding: 0; | ||
+ | font-size: 100%; | ||
+ | font-weight: 700; | ||
+ | -webkit-box-shadow: none; | ||
+ | box-shadow: none | ||
+ | } | ||
+ | |||
+ | pre { | ||
+ | display: block; | ||
+ | padding: 9.5px; | ||
+ | margin: 0 0 10px; | ||
+ | font-size: 13px; | ||
+ | line-height: 1.42857143; | ||
+ | color: #333; | ||
+ | word-break: break-all; | ||
+ | word-wrap: break-word; | ||
+ | background-color: #f5f5f5; | ||
+ | border: 1px solid #ccc; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | pre code { | ||
+ | padding: 0; | ||
+ | font-size: inherit; | ||
+ | color: inherit; | ||
+ | white-space: pre-wrap; | ||
+ | background-color: transparent; | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | |||
+ | .pre-scrollable { | ||
+ | max-height: 340px; | ||
+ | overflow-y: scroll | ||
+ | } | ||
+ | |||
+ | .container { | ||
+ | padding-right: 15px; | ||
+ | padding-left: 15px; | ||
+ | margin-right: auto; | ||
+ | margin-left: auto | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .container { | ||
+ | width: 750px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:992px) { | ||
+ | .container { | ||
+ | width: 970px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:1200px) { | ||
+ | .container { | ||
+ | width: 1170px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .container-fluid { | ||
+ | padding-right: 15px; | ||
+ | padding-left: 15px; | ||
+ | margin-right: auto; | ||
+ | margin-left: auto | ||
+ | } | ||
+ | |||
+ | .row { | ||
+ | margin-right: -15px; | ||
+ | margin-left: -15px | ||
+ | } | ||
+ | |||
+ | .col-lg-1, | ||
+ | .col-lg-10, | ||
+ | .col-lg-11, | ||
+ | .col-lg-12, | ||
+ | .col-lg-2, | ||
+ | .col-lg-3, | ||
+ | .col-lg-4, | ||
+ | .col-lg-5, | ||
+ | .col-lg-6, | ||
+ | .col-lg-7, | ||
+ | .col-lg-8, | ||
+ | .col-lg-9, | ||
+ | .col-md-1, | ||
+ | .col-md-10, | ||
+ | .col-md-11, | ||
+ | .col-md-12, | ||
+ | .col-md-2, | ||
+ | .col-md-3, | ||
+ | .col-md-4, | ||
+ | .col-md-5, | ||
+ | .col-md-6, | ||
+ | .col-md-7, | ||
+ | .col-md-8, | ||
+ | .col-md-9, | ||
+ | .col-sm-1, | ||
+ | .col-sm-10, | ||
+ | .col-sm-11, | ||
+ | .col-sm-12, | ||
+ | .col-sm-2, | ||
+ | .col-sm-3, | ||
+ | .col-sm-4, | ||
+ | .col-sm-5, | ||
+ | .col-sm-6, | ||
+ | .col-sm-7, | ||
+ | .col-sm-8, | ||
+ | .col-sm-9, | ||
+ | .col-xs-1, | ||
+ | .col-xs-10, | ||
+ | .col-xs-11, | ||
+ | .col-xs-12, | ||
+ | .col-xs-2, | ||
+ | .col-xs-3, | ||
+ | .col-xs-4, | ||
+ | .col-xs-5, | ||
+ | .col-xs-6, | ||
+ | .col-xs-7, | ||
+ | .col-xs-8, | ||
+ | .col-xs-9 { | ||
+ | position: relative; | ||
+ | min-height: 1px; | ||
+ | padding-right: 15px; | ||
+ | padding-left: 15px | ||
+ | } | ||
+ | |||
+ | .col-xs-1, | ||
+ | .col-xs-10, | ||
+ | .col-xs-11, | ||
+ | .col-xs-12, | ||
+ | .col-xs-2, | ||
+ | .col-xs-3, | ||
+ | .col-xs-4, | ||
+ | .col-xs-5, | ||
+ | .col-xs-6, | ||
+ | .col-xs-7, | ||
+ | .col-xs-8, | ||
+ | .col-xs-9 { | ||
+ | float: left | ||
+ | } | ||
+ | |||
+ | .col-xs-12 { | ||
+ | width: 100% | ||
+ | } | ||
+ | |||
+ | .col-xs-11 { | ||
+ | width: 91.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-10 { | ||
+ | width: 83.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-9 { | ||
+ | width: 75% | ||
+ | } | ||
+ | |||
+ | .col-xs-8 { | ||
+ | width: 66.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-7 { | ||
+ | width: 58.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-6 { | ||
+ | width: 50% | ||
+ | } | ||
+ | |||
+ | .col-xs-5 { | ||
+ | width: 41.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-4 { | ||
+ | width: 33.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-3 { | ||
+ | width: 25% | ||
+ | } | ||
+ | |||
+ | .col-xs-2 { | ||
+ | width: 16.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-1 { | ||
+ | width: 8.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-12 { | ||
+ | right: 100% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-11 { | ||
+ | right: 91.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-10 { | ||
+ | right: 83.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-9 { | ||
+ | right: 75% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-8 { | ||
+ | right: 66.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-7 { | ||
+ | right: 58.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-6 { | ||
+ | right: 50% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-5 { | ||
+ | right: 41.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-4 { | ||
+ | right: 33.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-3 { | ||
+ | right: 25% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-2 { | ||
+ | right: 16.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-1 { | ||
+ | right: 8.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-pull-0 { | ||
+ | right: auto | ||
+ | } | ||
+ | |||
+ | .col-xs-push-12 { | ||
+ | left: 100% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-11 { | ||
+ | left: 91.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-10 { | ||
+ | left: 83.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-9 { | ||
+ | left: 75% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-8 { | ||
+ | left: 66.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-7 { | ||
+ | left: 58.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-6 { | ||
+ | left: 50% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-5 { | ||
+ | left: 41.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-4 { | ||
+ | left: 33.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-3 { | ||
+ | left: 25% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-2 { | ||
+ | left: 16.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-1 { | ||
+ | left: 8.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-push-0 { | ||
+ | left: auto | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-12 { | ||
+ | margin-left: 100% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-11 { | ||
+ | margin-left: 91.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-10 { | ||
+ | margin-left: 83.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-9 { | ||
+ | margin-left: 75% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-8 { | ||
+ | margin-left: 66.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-7 { | ||
+ | margin-left: 58.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-6 { | ||
+ | margin-left: 50% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-5 { | ||
+ | margin-left: 41.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-4 { | ||
+ | margin-left: 33.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-3 { | ||
+ | margin-left: 25% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-2 { | ||
+ | margin-left: 16.66666667% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-1 { | ||
+ | margin-left: 8.33333333% | ||
+ | } | ||
+ | |||
+ | .col-xs-offset-0 { | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .col-sm-1, | ||
+ | .col-sm-10, | ||
+ | .col-sm-11, | ||
+ | .col-sm-12, | ||
+ | .col-sm-2, | ||
+ | .col-sm-3, | ||
+ | .col-sm-4, | ||
+ | .col-sm-5, | ||
+ | .col-sm-6, | ||
+ | .col-sm-7, | ||
+ | .col-sm-8, | ||
+ | .col-sm-9 { | ||
+ | float: left | ||
+ | } | ||
+ | .col-sm-12 { | ||
+ | width: 100% | ||
+ | } | ||
+ | .col-sm-11 { | ||
+ | width: 91.66666667% | ||
+ | } | ||
+ | .col-sm-10 { | ||
+ | width: 83.33333333% | ||
+ | } | ||
+ | .col-sm-9 { | ||
+ | width: 75% | ||
+ | } | ||
+ | .col-sm-8 { | ||
+ | width: 66.66666667% | ||
+ | } | ||
+ | .col-sm-7 { | ||
+ | width: 58.33333333% | ||
+ | } | ||
+ | .col-sm-6 { | ||
+ | width: 50% | ||
+ | } | ||
+ | .col-sm-5 { | ||
+ | width: 41.66666667% | ||
+ | } | ||
+ | .col-sm-4 { | ||
+ | width: 33.33333333% | ||
+ | } | ||
+ | .col-sm-3 { | ||
+ | width: 25% | ||
+ | } | ||
+ | .col-sm-2 { | ||
+ | width: 16.66666667% | ||
+ | } | ||
+ | .col-sm-1 { | ||
+ | width: 8.33333333% | ||
+ | } | ||
+ | .col-sm-pull-12 { | ||
+ | right: 100% | ||
+ | } | ||
+ | .col-sm-pull-11 { | ||
+ | right: 91.66666667% | ||
+ | } | ||
+ | .col-sm-pull-10 { | ||
+ | right: 83.33333333% | ||
+ | } | ||
+ | .col-sm-pull-9 { | ||
+ | right: 75% | ||
+ | } | ||
+ | .col-sm-pull-8 { | ||
+ | right: 66.66666667% | ||
+ | } | ||
+ | .col-sm-pull-7 { | ||
+ | right: 58.33333333% | ||
+ | } | ||
+ | .col-sm-pull-6 { | ||
+ | right: 50% | ||
+ | } | ||
+ | .col-sm-pull-5 { | ||
+ | right: 41.66666667% | ||
+ | } | ||
+ | .col-sm-pull-4 { | ||
+ | right: 33.33333333% | ||
+ | } | ||
+ | .col-sm-pull-3 { | ||
+ | right: 25% | ||
+ | } | ||
+ | .col-sm-pull-2 { | ||
+ | right: 16.66666667% | ||
+ | } | ||
+ | .col-sm-pull-1 { | ||
+ | right: 8.33333333% | ||
+ | } | ||
+ | .col-sm-pull-0 { | ||
+ | right: auto | ||
+ | } | ||
+ | .col-sm-push-12 { | ||
+ | left: 100% | ||
+ | } | ||
+ | .col-sm-push-11 { | ||
+ | left: 91.66666667% | ||
+ | } | ||
+ | .col-sm-push-10 { | ||
+ | left: 83.33333333% | ||
+ | } | ||
+ | .col-sm-push-9 { | ||
+ | left: 75% | ||
+ | } | ||
+ | .col-sm-push-8 { | ||
+ | left: 66.66666667% | ||
+ | } | ||
+ | .col-sm-push-7 { | ||
+ | left: 58.33333333% | ||
+ | } | ||
+ | .col-sm-push-6 { | ||
+ | left: 50% | ||
+ | } | ||
+ | .col-sm-push-5 { | ||
+ | left: 41.66666667% | ||
+ | } | ||
+ | .col-sm-push-4 { | ||
+ | left: 33.33333333% | ||
+ | } | ||
+ | .col-sm-push-3 { | ||
+ | left: 25% | ||
+ | } | ||
+ | .col-sm-push-2 { | ||
+ | left: 16.66666667% | ||
+ | } | ||
+ | .col-sm-push-1 { | ||
+ | left: 8.33333333% | ||
+ | } | ||
+ | .col-sm-push-0 { | ||
+ | left: auto | ||
+ | } | ||
+ | .col-sm-offset-12 { | ||
+ | margin-left: 100% | ||
+ | } | ||
+ | .col-sm-offset-11 { | ||
+ | margin-left: 91.66666667% | ||
+ | } | ||
+ | .col-sm-offset-10 { | ||
+ | margin-left: 83.33333333% | ||
+ | } | ||
+ | .col-sm-offset-9 { | ||
+ | margin-left: 75% | ||
+ | } | ||
+ | .col-sm-offset-8 { | ||
+ | margin-left: 66.66666667% | ||
+ | } | ||
+ | .col-sm-offset-7 { | ||
+ | margin-left: 58.33333333% | ||
+ | } | ||
+ | .col-sm-offset-6 { | ||
+ | margin-left: 50% | ||
+ | } | ||
+ | .col-sm-offset-5 { | ||
+ | margin-left: 41.66666667% | ||
+ | } | ||
+ | .col-sm-offset-4 { | ||
+ | margin-left: 33.33333333% | ||
+ | } | ||
+ | .col-sm-offset-3 { | ||
+ | margin-left: 25% | ||
+ | } | ||
+ | .col-sm-offset-2 { | ||
+ | margin-left: 16.66666667% | ||
+ | } | ||
+ | .col-sm-offset-1 { | ||
+ | margin-left: 8.33333333% | ||
+ | } | ||
+ | .col-sm-offset-0 { | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:992px) { | ||
+ | .col-md-1, | ||
+ | .col-md-10, | ||
+ | .col-md-11, | ||
+ | .col-md-12, | ||
+ | .col-md-2, | ||
+ | .col-md-3, | ||
+ | .col-md-4, | ||
+ | .col-md-5, | ||
+ | .col-md-6, | ||
+ | .col-md-7, | ||
+ | .col-md-8, | ||
+ | .col-md-9 { | ||
+ | float: left | ||
+ | } | ||
+ | .col-md-12 { | ||
+ | width: 100% | ||
+ | } | ||
+ | .col-md-11 { | ||
+ | width: 91.66666667% | ||
+ | } | ||
+ | .col-md-10 { | ||
+ | width: 83.33333333% | ||
+ | } | ||
+ | .col-md-9 { | ||
+ | width: 75% | ||
+ | } | ||
+ | .col-md-8 { | ||
+ | width: 66.66666667% | ||
+ | } | ||
+ | .col-md-7 { | ||
+ | width: 58.33333333% | ||
+ | } | ||
+ | .col-md-6 { | ||
+ | width: 50% | ||
+ | } | ||
+ | .col-md-5 { | ||
+ | width: 41.66666667% | ||
+ | } | ||
+ | .col-md-4 { | ||
+ | width: 33.33333333% | ||
+ | } | ||
+ | .col-md-3 { | ||
+ | width: 25% | ||
+ | } | ||
+ | .col-md-2 { | ||
+ | width: 16.66666667% | ||
+ | } | ||
+ | .col-md-1 { | ||
+ | width: 8.33333333% | ||
+ | } | ||
+ | .col-md-pull-12 { | ||
+ | right: 100% | ||
+ | } | ||
+ | .col-md-pull-11 { | ||
+ | right: 91.66666667% | ||
+ | } | ||
+ | .col-md-pull-10 { | ||
+ | right: 83.33333333% | ||
+ | } | ||
+ | .col-md-pull-9 { | ||
+ | right: 75% | ||
+ | } | ||
+ | .col-md-pull-8 { | ||
+ | right: 66.66666667% | ||
+ | } | ||
+ | .col-md-pull-7 { | ||
+ | right: 58.33333333% | ||
+ | } | ||
+ | .col-md-pull-6 { | ||
+ | right: 50% | ||
+ | } | ||
+ | .col-md-pull-5 { | ||
+ | right: 41.66666667% | ||
+ | } | ||
+ | .col-md-pull-4 { | ||
+ | right: 33.33333333% | ||
+ | } | ||
+ | .col-md-pull-3 { | ||
+ | right: 25% | ||
+ | } | ||
+ | .col-md-pull-2 { | ||
+ | right: 16.66666667% | ||
+ | } | ||
+ | .col-md-pull-1 { | ||
+ | right: 8.33333333% | ||
+ | } | ||
+ | .col-md-pull-0 { | ||
+ | right: auto | ||
+ | } | ||
+ | .col-md-push-12 { | ||
+ | left: 100% | ||
+ | } | ||
+ | .col-md-push-11 { | ||
+ | left: 91.66666667% | ||
+ | } | ||
+ | .col-md-push-10 { | ||
+ | left: 83.33333333% | ||
+ | } | ||
+ | .col-md-push-9 { | ||
+ | left: 75% | ||
+ | } | ||
+ | .col-md-push-8 { | ||
+ | left: 66.66666667% | ||
+ | } | ||
+ | .col-md-push-7 { | ||
+ | left: 58.33333333% | ||
+ | } | ||
+ | .col-md-push-6 { | ||
+ | left: 50% | ||
+ | } | ||
+ | .col-md-push-5 { | ||
+ | left: 41.66666667% | ||
+ | } | ||
+ | .col-md-push-4 { | ||
+ | left: 33.33333333% | ||
+ | } | ||
+ | .col-md-push-3 { | ||
+ | left: 25% | ||
+ | } | ||
+ | .col-md-push-2 { | ||
+ | left: 16.66666667% | ||
+ | } | ||
+ | .col-md-push-1 { | ||
+ | left: 8.33333333% | ||
+ | } | ||
+ | .col-md-push-0 { | ||
+ | left: auto | ||
+ | } | ||
+ | .col-md-offset-12 { | ||
+ | margin-left: 100% | ||
+ | } | ||
+ | .col-md-offset-11 { | ||
+ | margin-left: 91.66666667% | ||
+ | } | ||
+ | .col-md-offset-10 { | ||
+ | margin-left: 83.33333333% | ||
+ | } | ||
+ | .col-md-offset-9 { | ||
+ | margin-left: 75% | ||
+ | } | ||
+ | .col-md-offset-8 { | ||
+ | margin-left: 66.66666667% | ||
+ | } | ||
+ | .col-md-offset-7 { | ||
+ | margin-left: 58.33333333% | ||
+ | } | ||
+ | .col-md-offset-6 { | ||
+ | margin-left: 50% | ||
+ | } | ||
+ | .col-md-offset-5 { | ||
+ | margin-left: 41.66666667% | ||
+ | } | ||
+ | .col-md-offset-4 { | ||
+ | margin-left: 33.33333333% | ||
+ | } | ||
+ | .col-md-offset-3 { | ||
+ | margin-left: 25% | ||
+ | } | ||
+ | .col-md-offset-2 { | ||
+ | margin-left: 16.66666667% | ||
+ | } | ||
+ | .col-md-offset-1 { | ||
+ | margin-left: 8.33333333% | ||
+ | } | ||
+ | .col-md-offset-0 { | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:1200px) { | ||
+ | .col-lg-1, | ||
+ | .col-lg-10, | ||
+ | .col-lg-11, | ||
+ | .col-lg-12, | ||
+ | .col-lg-2, | ||
+ | .col-lg-3, | ||
+ | .col-lg-4, | ||
+ | .col-lg-5, | ||
+ | .col-lg-6, | ||
+ | .col-lg-7, | ||
+ | .col-lg-8, | ||
+ | .col-lg-9 { | ||
+ | float: left | ||
+ | } | ||
+ | .col-lg-12 { | ||
+ | width: 100% | ||
+ | } | ||
+ | .col-lg-11 { | ||
+ | width: 91.66666667% | ||
+ | } | ||
+ | .col-lg-10 { | ||
+ | width: 83.33333333% | ||
+ | } | ||
+ | .col-lg-9 { | ||
+ | width: 75% | ||
+ | } | ||
+ | .col-lg-8 { | ||
+ | width: 66.66666667% | ||
+ | } | ||
+ | .col-lg-7 { | ||
+ | width: 58.33333333% | ||
+ | } | ||
+ | .col-lg-6 { | ||
+ | width: 50% | ||
+ | } | ||
+ | .col-lg-5 { | ||
+ | width: 41.66666667% | ||
+ | } | ||
+ | .col-lg-4 { | ||
+ | width: 33.33333333% | ||
+ | } | ||
+ | .col-lg-3 { | ||
+ | width: 25% | ||
+ | } | ||
+ | .col-lg-2 { | ||
+ | width: 16.66666667% | ||
+ | } | ||
+ | .col-lg-1 { | ||
+ | width: 8.33333333% | ||
+ | } | ||
+ | .col-lg-pull-12 { | ||
+ | right: 100% | ||
+ | } | ||
+ | .col-lg-pull-11 { | ||
+ | right: 91.66666667% | ||
+ | } | ||
+ | .col-lg-pull-10 { | ||
+ | right: 83.33333333% | ||
+ | } | ||
+ | .col-lg-pull-9 { | ||
+ | right: 75% | ||
+ | } | ||
+ | .col-lg-pull-8 { | ||
+ | right: 66.66666667% | ||
+ | } | ||
+ | .col-lg-pull-7 { | ||
+ | right: 58.33333333% | ||
+ | } | ||
+ | .col-lg-pull-6 { | ||
+ | right: 50% | ||
+ | } | ||
+ | .col-lg-pull-5 { | ||
+ | right: 41.66666667% | ||
+ | } | ||
+ | .col-lg-pull-4 { | ||
+ | right: 33.33333333% | ||
+ | } | ||
+ | .col-lg-pull-3 { | ||
+ | right: 25% | ||
+ | } | ||
+ | .col-lg-pull-2 { | ||
+ | right: 16.66666667% | ||
+ | } | ||
+ | .col-lg-pull-1 { | ||
+ | right: 8.33333333% | ||
+ | } | ||
+ | .col-lg-pull-0 { | ||
+ | right: auto | ||
+ | } | ||
+ | .col-lg-push-12 { | ||
+ | left: 100% | ||
+ | } | ||
+ | .col-lg-push-11 { | ||
+ | left: 91.66666667% | ||
+ | } | ||
+ | .col-lg-push-10 { | ||
+ | left: 83.33333333% | ||
+ | } | ||
+ | .col-lg-push-9 { | ||
+ | left: 75% | ||
+ | } | ||
+ | .col-lg-push-8 { | ||
+ | left: 66.66666667% | ||
+ | } | ||
+ | .col-lg-push-7 { | ||
+ | left: 58.33333333% | ||
+ | } | ||
+ | .col-lg-push-6 { | ||
+ | left: 50% | ||
+ | } | ||
+ | .col-lg-push-5 { | ||
+ | left: 41.66666667% | ||
+ | } | ||
+ | .col-lg-push-4 { | ||
+ | left: 33.33333333% | ||
+ | } | ||
+ | .col-lg-push-3 { | ||
+ | left: 25% | ||
+ | } | ||
+ | .col-lg-push-2 { | ||
+ | left: 16.66666667% | ||
+ | } | ||
+ | .col-lg-push-1 { | ||
+ | left: 8.33333333% | ||
+ | } | ||
+ | .col-lg-push-0 { | ||
+ | left: auto | ||
+ | } | ||
+ | .col-lg-offset-12 { | ||
+ | margin-left: 100% | ||
+ | } | ||
+ | .col-lg-offset-11 { | ||
+ | margin-left: 91.66666667% | ||
+ | } | ||
+ | .col-lg-offset-10 { | ||
+ | margin-left: 83.33333333% | ||
+ | } | ||
+ | .col-lg-offset-9 { | ||
+ | margin-left: 75% | ||
+ | } | ||
+ | .col-lg-offset-8 { | ||
+ | margin-left: 66.66666667% | ||
+ | } | ||
+ | .col-lg-offset-7 { | ||
+ | margin-left: 58.33333333% | ||
+ | } | ||
+ | .col-lg-offset-6 { | ||
+ | margin-left: 50% | ||
+ | } | ||
+ | .col-lg-offset-5 { | ||
+ | margin-left: 41.66666667% | ||
+ | } | ||
+ | .col-lg-offset-4 { | ||
+ | margin-left: 33.33333333% | ||
+ | } | ||
+ | .col-lg-offset-3 { | ||
+ | margin-left: 25% | ||
+ | } | ||
+ | .col-lg-offset-2 { | ||
+ | margin-left: 16.66666667% | ||
+ | } | ||
+ | .col-lg-offset-1 { | ||
+ | margin-left: 8.33333333% | ||
+ | } | ||
+ | .col-lg-offset-0 { | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | table { | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | caption { | ||
+ | padding-top: 8px; | ||
+ | padding-bottom: 8px; | ||
+ | color: #777; | ||
+ | text-align: left | ||
+ | } | ||
+ | |||
+ | th { | ||
+ | text-align: left | ||
+ | } | ||
+ | |||
+ | .table { | ||
+ | width: 100%; | ||
+ | max-width: 100%; | ||
+ | margin-bottom: 20px | ||
+ | } | ||
+ | |||
+ | .table>tbody>tr>td, | ||
+ | .table>tbody>tr>th, | ||
+ | .table>tfoot>tr>td, | ||
+ | .table>tfoot>tr>th, | ||
+ | .table>thead>tr>td, | ||
+ | .table>thead>tr>th { | ||
+ | padding: 8px; | ||
+ | line-height: 1.42857143; | ||
+ | vertical-align: top; | ||
+ | border-top: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | .table>thead>tr>th { | ||
+ | vertical-align: bottom; | ||
+ | border-bottom: 2px solid #ddd | ||
+ | } | ||
+ | |||
+ | .table>caption+thead>tr:first-child>td, | ||
+ | .table>caption+thead>tr:first-child>th, | ||
+ | .table>colgroup+thead>tr:first-child>td, | ||
+ | .table>colgroup+thead>tr:first-child>th, | ||
+ | .table>thead:first-child>tr:first-child>td, | ||
+ | .table>thead:first-child>tr:first-child>th { | ||
+ | border-top: 0 | ||
+ | } | ||
+ | |||
+ | .table>tbody+tbody { | ||
+ | border-top: 2px solid #ddd | ||
+ | } | ||
+ | |||
+ | .table .table { | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .table-condensed>tbody>tr>td, | ||
+ | .table-condensed>tbody>tr>th, | ||
+ | .table-condensed>tfoot>tr>td, | ||
+ | .table-condensed>tfoot>tr>th, | ||
+ | .table-condensed>thead>tr>td, | ||
+ | .table-condensed>thead>tr>th { | ||
+ | padding: 5px | ||
+ | } | ||
+ | |||
+ | .table-bordered { | ||
+ | border: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | .table-bordered>tbody>tr>td, | ||
+ | .table-bordered>tbody>tr>th, | ||
+ | .table-bordered>tfoot>tr>td, | ||
+ | .table-bordered>tfoot>tr>th, | ||
+ | .table-bordered>thead>tr>td, | ||
+ | .table-bordered>thead>tr>th { | ||
+ | border: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | .table-bordered>thead>tr>td, | ||
+ | .table-bordered>thead>tr>th { | ||
+ | border-bottom-width: 2px | ||
+ | } | ||
+ | |||
+ | .table-striped>tbody>tr:nth-of-type(odd) { | ||
+ | background-color: #f9f9f9 | ||
+ | } | ||
+ | |||
+ | .table-hover>tbody>tr:hover { | ||
+ | background-color: #f5f5f5 | ||
+ | } | ||
+ | |||
+ | table col[class*=col-] { | ||
+ | position: static; | ||
+ | display: table-column; | ||
+ | float: none | ||
+ | } | ||
+ | |||
+ | table td[class*=col-], | ||
+ | table th[class*=col-] { | ||
+ | position: static; | ||
+ | display: table-cell; | ||
+ | float: none | ||
+ | } | ||
+ | |||
+ | .table>tbody>tr.active>td, | ||
+ | .table>tbody>tr.active>th, | ||
+ | .table>tbody>tr>td.active, | ||
+ | .table>tbody>tr>th.active, | ||
+ | .table>tfoot>tr.active>td, | ||
+ | .table>tfoot>tr.active>th, | ||
+ | .table>tfoot>tr>td.active, | ||
+ | .table>tfoot>tr>th.active, | ||
+ | .table>thead>tr.active>td, | ||
+ | .table>thead>tr.active>th, | ||
+ | .table>thead>tr>td.active, | ||
+ | .table>thead>tr>th.active { | ||
+ | background-color: #f5f5f5 | ||
+ | } | ||
+ | |||
+ | .table-hover>tbody>tr.active:hover>td, | ||
+ | .table-hover>tbody>tr.active:hover>th, | ||
+ | .table-hover>tbody>tr:hover>.active, | ||
+ | .table-hover>tbody>tr>td.active:hover, | ||
+ | .table-hover>tbody>tr>th.active:hover { | ||
+ | background-color: #e8e8e8 | ||
+ | } | ||
+ | |||
+ | .table>tbody>tr.success>td, | ||
+ | .table>tbody>tr.success>th, | ||
+ | .table>tbody>tr>td.success, | ||
+ | .table>tbody>tr>th.success, | ||
+ | .table>tfoot>tr.success>td, | ||
+ | .table>tfoot>tr.success>th, | ||
+ | .table>tfoot>tr>td.success, | ||
+ | .table>tfoot>tr>th.success, | ||
+ | .table>thead>tr.success>td, | ||
+ | .table>thead>tr.success>th, | ||
+ | .table>thead>tr>td.success, | ||
+ | .table>thead>tr>th.success { | ||
+ | background-color: #dff0d8 | ||
+ | } | ||
+ | |||
+ | .table-hover>tbody>tr.success:hover>td, | ||
+ | .table-hover>tbody>tr.success:hover>th, | ||
+ | .table-hover>tbody>tr:hover>.success, | ||
+ | .table-hover>tbody>tr>td.success:hover, | ||
+ | .table-hover>tbody>tr>th.success:hover { | ||
+ | background-color: #d0e9c6 | ||
+ | } | ||
+ | |||
+ | .table>tbody>tr.info>td, | ||
+ | .table>tbody>tr.info>th, | ||
+ | .table>tbody>tr>td.info, | ||
+ | .table>tbody>tr>th.info, | ||
+ | .table>tfoot>tr.info>td, | ||
+ | .table>tfoot>tr.info>th, | ||
+ | .table>tfoot>tr>td.info, | ||
+ | .table>tfoot>tr>th.info, | ||
+ | .table>thead>tr.info>td, | ||
+ | .table>thead>tr.info>th, | ||
+ | .table>thead>tr>td.info, | ||
+ | .table>thead>tr>th.info { | ||
+ | background-color: #d9edf7 | ||
+ | } | ||
+ | |||
+ | .table-hover>tbody>tr.info:hover>td, | ||
+ | .table-hover>tbody>tr.info:hover>th, | ||
+ | .table-hover>tbody>tr:hover>.info, | ||
+ | .table-hover>tbody>tr>td.info:hover, | ||
+ | .table-hover>tbody>tr>th.info:hover { | ||
+ | background-color: #c4e3f3 | ||
+ | } | ||
+ | |||
+ | .table>tbody>tr.warning>td, | ||
+ | .table>tbody>tr.warning>th, | ||
+ | .table>tbody>tr>td.warning, | ||
+ | .table>tbody>tr>th.warning, | ||
+ | .table>tfoot>tr.warning>td, | ||
+ | .table>tfoot>tr.warning>th, | ||
+ | .table>tfoot>tr>td.warning, | ||
+ | .table>tfoot>tr>th.warning, | ||
+ | .table>thead>tr.warning>td, | ||
+ | .table>thead>tr.warning>th, | ||
+ | .table>thead>tr>td.warning, | ||
+ | .table>thead>tr>th.warning { | ||
+ | background-color: #fcf8e3 | ||
+ | } | ||
+ | |||
+ | .table-hover>tbody>tr.warning:hover>td, | ||
+ | .table-hover>tbody>tr.warning:hover>th, | ||
+ | .table-hover>tbody>tr:hover>.warning, | ||
+ | .table-hover>tbody>tr>td.warning:hover, | ||
+ | .table-hover>tbody>tr>th.warning:hover { | ||
+ | background-color: #faf2cc | ||
+ | } | ||
+ | |||
+ | .table>tbody>tr.danger>td, | ||
+ | .table>tbody>tr.danger>th, | ||
+ | .table>tbody>tr>td.danger, | ||
+ | .table>tbody>tr>th.danger, | ||
+ | .table>tfoot>tr.danger>td, | ||
+ | .table>tfoot>tr.danger>th, | ||
+ | .table>tfoot>tr>td.danger, | ||
+ | .table>tfoot>tr>th.danger, | ||
+ | .table>thead>tr.danger>td, | ||
+ | .table>thead>tr.danger>th, | ||
+ | .table>thead>tr>td.danger, | ||
+ | .table>thead>tr>th.danger { | ||
+ | background-color: #f2dede | ||
+ | } | ||
+ | |||
+ | .table-hover>tbody>tr.danger:hover>td, | ||
+ | .table-hover>tbody>tr.danger:hover>th, | ||
+ | .table-hover>tbody>tr:hover>.danger, | ||
+ | .table-hover>tbody>tr>td.danger:hover, | ||
+ | .table-hover>tbody>tr>th.danger:hover { | ||
+ | background-color: #ebcccc | ||
+ | } | ||
+ | |||
+ | .table-responsive { | ||
+ | min-height: .01%; | ||
+ | overflow-x: auto | ||
+ | } | ||
+ | |||
+ | @media screen and (max-width:767px) { | ||
+ | .table-responsive { | ||
+ | width: 100%; | ||
+ | margin-bottom: 15px; | ||
+ | overflow-y: hidden; | ||
+ | -ms-overflow-style: -ms-autohiding-scrollbar; | ||
+ | border: 1px solid #ddd | ||
+ | } | ||
+ | .table-responsive>.table { | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | .table-responsive>.table>tbody>tr>td, | ||
+ | .table-responsive>.table>tbody>tr>th, | ||
+ | .table-responsive>.table>tfoot>tr>td, | ||
+ | .table-responsive>.table>tfoot>tr>th, | ||
+ | .table-responsive>.table>thead>tr>td, | ||
+ | .table-responsive>.table>thead>tr>th { | ||
+ | white-space: nowrap | ||
+ | } | ||
+ | .table-responsive>.table-bordered { | ||
+ | border: 0 | ||
+ | } | ||
+ | .table-responsive>.table-bordered>tbody>tr>td:first-child, | ||
+ | .table-responsive>.table-bordered>tbody>tr>th:first-child, | ||
+ | .table-responsive>.table-bordered>tfoot>tr>td:first-child, | ||
+ | .table-responsive>.table-bordered>tfoot>tr>th:first-child, | ||
+ | .table-responsive>.table-bordered>thead>tr>td:first-child, | ||
+ | .table-responsive>.table-bordered>thead>tr>th:first-child { | ||
+ | border-left: 0 | ||
+ | } | ||
+ | .table-responsive>.table-bordered>tbody>tr>td:last-child, | ||
+ | .table-responsive>.table-bordered>tbody>tr>th:last-child, | ||
+ | .table-responsive>.table-bordered>tfoot>tr>td:last-child, | ||
+ | .table-responsive>.table-bordered>tfoot>tr>th:last-child, | ||
+ | .table-responsive>.table-bordered>thead>tr>td:last-child, | ||
+ | .table-responsive>.table-bordered>thead>tr>th:last-child { | ||
+ | border-right: 0 | ||
+ | } | ||
+ | .table-responsive>.table-bordered>tbody>tr:last-child>td, | ||
+ | .table-responsive>.table-bordered>tbody>tr:last-child>th, | ||
+ | .table-responsive>.table-bordered>tfoot>tr:last-child>td, | ||
+ | .table-responsive>.table-bordered>tfoot>tr:last-child>th { | ||
+ | border-bottom: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | fieldset { | ||
+ | min-width: 0; | ||
+ | padding: 0; | ||
+ | margin: 0; | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | legend { | ||
+ | display: block; | ||
+ | width: 100%; | ||
+ | padding: 0; | ||
+ | margin-bottom: 20px; | ||
+ | font-size: 21px; | ||
+ | line-height: inherit; | ||
+ | color: #333; | ||
+ | border: 0; | ||
+ | border-bottom: 1px solid #e5e5e5 | ||
+ | } | ||
+ | |||
+ | label { | ||
+ | display: inline-block; | ||
+ | max-width: 100%; | ||
+ | margin-bottom: 5px; | ||
+ | font-weight: 700 | ||
+ | } | ||
+ | |||
+ | input[type=search] { | ||
+ | -webkit-box-sizing: border-box; | ||
+ | -moz-box-sizing: border-box; | ||
+ | box-sizing: border-box | ||
+ | } | ||
+ | |||
+ | input[type=checkbox], | ||
+ | input[type=radio] { | ||
+ | margin: 4px 0 0; | ||
+ | margin-top: 1px\9; | ||
+ | line-height: normal | ||
+ | } | ||
+ | |||
+ | input[type=file] { | ||
+ | display: block | ||
+ | } | ||
+ | |||
+ | input[type=range] { | ||
+ | display: block; | ||
+ | width: 100% | ||
+ | } | ||
+ | |||
+ | select[multiple], | ||
+ | select[size] { | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | input[type=file]:focus, | ||
+ | input[type=checkbox]:focus, | ||
+ | input[type=radio]:focus { | ||
+ | outline: 5px auto -webkit-focus-ring-color; | ||
+ | outline-offset: -2px | ||
+ | } | ||
+ | |||
+ | output { | ||
+ | display: block; | ||
+ | padding-top: 7px; | ||
+ | font-size: 14px; | ||
+ | line-height: 1.42857143; | ||
+ | color: #555 | ||
+ | } | ||
+ | |||
+ | .form-control { | ||
+ | display: block; | ||
+ | width: 100%; | ||
+ | height: 34px; | ||
+ | padding: 6px 12px; | ||
+ | font-size: 14px; | ||
+ | line-height: 1.42857143; | ||
+ | color: #555; | ||
+ | background-color: #fff; | ||
+ | background-image: none; | ||
+ | border: 1px solid #ccc; | ||
+ | border-radius: 4px; | ||
+ | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); | ||
+ | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); | ||
+ | -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; | ||
+ | -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; | ||
+ | transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s | ||
+ | } | ||
+ | |||
+ | .form-control:focus { | ||
+ | border-color: #66afe9; | ||
+ | outline: 0; | ||
+ | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); | ||
+ | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6) | ||
+ | } | ||
+ | |||
+ | .form-control::-moz-placeholder { | ||
+ | color: #999; | ||
+ | opacity: 1 | ||
+ | } | ||
+ | |||
+ | .form-control:-ms-input-placeholder { | ||
+ | color: #999 | ||
+ | } | ||
+ | |||
+ | .form-control::-webkit-input-placeholder { | ||
+ | color: #999 | ||
+ | } | ||
+ | |||
+ | .form-control::-ms-expand { | ||
+ | background-color: transparent; | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | .form-control[disabled], | ||
+ | .form-control[readonly], | ||
+ | fieldset[disabled] .form-control { | ||
+ | background-color: #eee; | ||
+ | opacity: 1 | ||
+ | } | ||
+ | |||
+ | .form-control[disabled], | ||
+ | fieldset[disabled] .form-control { | ||
+ | cursor: not-allowed | ||
+ | } | ||
+ | |||
+ | textarea.form-control { | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | input[type=search] { | ||
+ | -webkit-appearance: none | ||
+ | } | ||
+ | |||
+ | @media screen and (-webkit-min-device-pixel-ratio:0) { | ||
+ | input[type=date].form-control, | ||
+ | input[type=time].form-control, | ||
+ | input[type=datetime-local].form-control, | ||
+ | input[type=month].form-control { | ||
+ | line-height: 34px | ||
+ | } | ||
+ | .input-group-sm input[type=date], | ||
+ | .input-group-sm input[type=time], | ||
+ | .input-group-sm input[type=datetime-local], | ||
+ | .input-group-sm input[type=month], | ||
+ | input[type=date].input-sm, | ||
+ | input[type=time].input-sm, | ||
+ | input[type=datetime-local].input-sm, | ||
+ | input[type=month].input-sm { | ||
+ | line-height: 30px | ||
+ | } | ||
+ | .input-group-lg input[type=date], | ||
+ | .input-group-lg input[type=time], | ||
+ | .input-group-lg input[type=datetime-local], | ||
+ | .input-group-lg input[type=month], | ||
+ | input[type=date].input-lg, | ||
+ | input[type=time].input-lg, | ||
+ | input[type=datetime-local].input-lg, | ||
+ | input[type=month].input-lg { | ||
+ | line-height: 46px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .form-group { | ||
+ | margin-bottom: 15px | ||
+ | } | ||
+ | |||
+ | .checkbox, | ||
+ | .radio { | ||
+ | position: relative; | ||
+ | display: block; | ||
+ | margin-top: 10px; | ||
+ | margin-bottom: 10px | ||
+ | } | ||
+ | |||
+ | .checkbox label, | ||
+ | .radio label { | ||
+ | min-height: 20px; | ||
+ | padding-left: 20px; | ||
+ | margin-bottom: 0; | ||
+ | font-weight: 400; | ||
+ | cursor: pointer | ||
+ | } | ||
+ | |||
+ | .checkbox input[type=checkbox], | ||
+ | .checkbox-inline input[type=checkbox], | ||
+ | .radio input[type=radio], | ||
+ | .radio-inline input[type=radio] { | ||
+ | position: absolute; | ||
+ | margin-top: 4px\9; | ||
+ | margin-left: -20px | ||
+ | } | ||
+ | |||
+ | .checkbox+.checkbox, | ||
+ | .radio+.radio { | ||
+ | margin-top: -5px | ||
+ | } | ||
+ | |||
+ | .checkbox-inline, | ||
+ | .radio-inline { | ||
+ | position: relative; | ||
+ | display: inline-block; | ||
+ | padding-left: 20px; | ||
+ | margin-bottom: 0; | ||
+ | font-weight: 400; | ||
+ | vertical-align: middle; | ||
+ | cursor: pointer | ||
+ | } | ||
+ | |||
+ | .checkbox-inline+.checkbox-inline, | ||
+ | .radio-inline+.radio-inline { | ||
+ | margin-top: 0; | ||
+ | margin-left: 10px | ||
+ | } | ||
+ | |||
+ | fieldset[disabled] input[type=checkbox], | ||
+ | fieldset[disabled] input[type=radio], | ||
+ | input[type=checkbox].disabled, | ||
+ | input[type=checkbox][disabled], | ||
+ | input[type=radio].disabled, | ||
+ | input[type=radio][disabled] { | ||
+ | cursor: not-allowed | ||
+ | } | ||
+ | |||
+ | .checkbox-inline.disabled, | ||
+ | .radio-inline.disabled, | ||
+ | fieldset[disabled] .checkbox-inline, | ||
+ | fieldset[disabled] .radio-inline { | ||
+ | cursor: not-allowed | ||
+ | } | ||
+ | |||
+ | .checkbox.disabled label, | ||
+ | .radio.disabled label, | ||
+ | fieldset[disabled] .checkbox label, | ||
+ | fieldset[disabled] .radio label { | ||
+ | cursor: not-allowed | ||
+ | } | ||
+ | |||
+ | .form-control-static { | ||
+ | min-height: 34px; | ||
+ | padding-top: 7px; | ||
+ | padding-bottom: 7px; | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .form-control-static.input-lg, | ||
+ | .form-control-static.input-sm { | ||
+ | padding-right: 0; | ||
+ | padding-left: 0 | ||
+ | } | ||
+ | |||
+ | .input-sm { | ||
+ | height: 30px; | ||
+ | padding: 5px 10px; | ||
+ | font-size: 12px; | ||
+ | line-height: 1.5; | ||
+ | border-radius: 3px | ||
+ | } | ||
+ | |||
+ | select.input-sm { | ||
+ | height: 30px; | ||
+ | line-height: 30px | ||
+ | } | ||
+ | |||
+ | select[multiple].input-sm, | ||
+ | textarea.input-sm { | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | .form-group-sm .form-control { | ||
+ | height: 30px; | ||
+ | padding: 5px 10px; | ||
+ | font-size: 12px; | ||
+ | line-height: 1.5; | ||
+ | border-radius: 3px | ||
+ | } | ||
+ | |||
+ | .form-group-sm select.form-control { | ||
+ | height: 30px; | ||
+ | line-height: 30px | ||
+ | } | ||
+ | |||
+ | .form-group-sm select[multiple].form-control, | ||
+ | .form-group-sm textarea.form-control { | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | .form-group-sm .form-control-static { | ||
+ | height: 30px; | ||
+ | min-height: 32px; | ||
+ | padding: 6px 10px; | ||
+ | font-size: 12px; | ||
+ | line-height: 1.5 | ||
+ | } | ||
+ | |||
+ | .input-lg { | ||
+ | height: 46px; | ||
+ | padding: 10px 16px; | ||
+ | font-size: 18px; | ||
+ | line-height: 1.3333333; | ||
+ | border-radius: 6px | ||
+ | } | ||
+ | |||
+ | select.input-lg { | ||
+ | height: 46px; | ||
+ | line-height: 46px | ||
+ | } | ||
+ | |||
+ | select[multiple].input-lg, | ||
+ | textarea.input-lg { | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | .form-group-lg .form-control { | ||
+ | height: 46px; | ||
+ | padding: 10px 16px; | ||
+ | font-size: 18px; | ||
+ | line-height: 1.3333333; | ||
+ | border-radius: 6px | ||
+ | } | ||
+ | |||
+ | .form-group-lg select.form-control { | ||
+ | height: 46px; | ||
+ | line-height: 46px | ||
+ | } | ||
+ | |||
+ | .form-group-lg select[multiple].form-control, | ||
+ | .form-group-lg textarea.form-control { | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | .form-group-lg .form-control-static { | ||
+ | height: 46px; | ||
+ | min-height: 38px; | ||
+ | padding: 11px 16px; | ||
+ | font-size: 18px; | ||
+ | line-height: 1.3333333 | ||
+ | } | ||
+ | |||
+ | .has-feedback { | ||
+ | position: relative | ||
+ | } | ||
+ | |||
+ | .has-feedback .form-control { | ||
+ | padding-right: 42.5px | ||
+ | } | ||
+ | |||
+ | .form-control-feedback { | ||
+ | position: absolute; | ||
+ | top: 0; | ||
+ | right: 0; | ||
+ | z-index: 2; | ||
+ | display: block; | ||
+ | width: 34px; | ||
+ | height: 34px; | ||
+ | line-height: 34px; | ||
+ | text-align: center; | ||
+ | pointer-events: none | ||
+ | } | ||
+ | |||
+ | .form-group-lg .form-control+.form-control-feedback, | ||
+ | .input-group-lg+.form-control-feedback, | ||
+ | .input-lg+.form-control-feedback { | ||
+ | width: 46px; | ||
+ | height: 46px; | ||
+ | line-height: 46px | ||
+ | } | ||
+ | |||
+ | .form-group-sm .form-control+.form-control-feedback, | ||
+ | .input-group-sm+.form-control-feedback, | ||
+ | .input-sm+.form-control-feedback { | ||
+ | width: 30px; | ||
+ | height: 30px; | ||
+ | line-height: 30px | ||
+ | } | ||
+ | |||
+ | .has-success .checkbox, | ||
+ | .has-success .checkbox-inline, | ||
+ | .has-success .control-label, | ||
+ | .has-success .help-block, | ||
+ | .has-success .radio, | ||
+ | .has-success .radio-inline, | ||
+ | .has-success.checkbox label, | ||
+ | .has-success.checkbox-inline label, | ||
+ | .has-success.radio label, | ||
+ | .has-success.radio-inline label { | ||
+ | color: #3c763d | ||
+ | } | ||
+ | |||
+ | .has-success .form-control { | ||
+ | border-color: #3c763d; | ||
+ | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); | ||
+ | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) | ||
+ | } | ||
+ | |||
+ | .has-success .form-control:focus { | ||
+ | border-color: #2b542c; | ||
+ | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; | ||
+ | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168 | ||
+ | } | ||
+ | |||
+ | .has-success .input-group-addon { | ||
+ | color: #3c763d; | ||
+ | background-color: #dff0d8; | ||
+ | border-color: #3c763d | ||
+ | } | ||
+ | |||
+ | .has-success .form-control-feedback { | ||
+ | color: #3c763d | ||
+ | } | ||
+ | |||
+ | .has-warning .checkbox, | ||
+ | .has-warning .checkbox-inline, | ||
+ | .has-warning .control-label, | ||
+ | .has-warning .help-block, | ||
+ | .has-warning .radio, | ||
+ | .has-warning .radio-inline, | ||
+ | .has-warning.checkbox label, | ||
+ | .has-warning.checkbox-inline label, | ||
+ | .has-warning.radio label, | ||
+ | .has-warning.radio-inline label { | ||
+ | color: #8a6d3b | ||
+ | } | ||
+ | |||
+ | .has-warning .form-control { | ||
+ | border-color: #8a6d3b; | ||
+ | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); | ||
+ | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) | ||
+ | } | ||
+ | |||
+ | .has-warning .form-control:focus { | ||
+ | border-color: #66512c; | ||
+ | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; | ||
+ | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b | ||
+ | } | ||
+ | |||
+ | .has-warning .input-group-addon { | ||
+ | color: #8a6d3b; | ||
+ | background-color: #fcf8e3; | ||
+ | border-color: #8a6d3b | ||
+ | } | ||
+ | |||
+ | .has-warning .form-control-feedback { | ||
+ | color: #8a6d3b | ||
+ | } | ||
+ | |||
+ | .has-error .checkbox, | ||
+ | .has-error .checkbox-inline, | ||
+ | .has-error .control-label, | ||
+ | .has-error .help-block, | ||
+ | .has-error .radio, | ||
+ | .has-error .radio-inline, | ||
+ | .has-error.checkbox label, | ||
+ | .has-error.checkbox-inline label, | ||
+ | .has-error.radio label, | ||
+ | .has-error.radio-inline label { | ||
+ | color: #a94442 | ||
+ | } | ||
+ | |||
+ | .has-error .form-control { | ||
+ | border-color: #a94442; | ||
+ | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); | ||
+ | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) | ||
+ | } | ||
+ | |||
+ | .has-error .form-control:focus { | ||
+ | border-color: #843534; | ||
+ | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; | ||
+ | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483 | ||
+ | } | ||
+ | |||
+ | .has-error .input-group-addon { | ||
+ | color: #a94442; | ||
+ | background-color: #f2dede; | ||
+ | border-color: #a94442 | ||
+ | } | ||
+ | |||
+ | .has-error .form-control-feedback { | ||
+ | color: #a94442 | ||
+ | } | ||
+ | |||
+ | .has-feedback label~.form-control-feedback { | ||
+ | top: 25px | ||
+ | } | ||
+ | |||
+ | .has-feedback label.sr-only~.form-control-feedback { | ||
+ | top: 0 | ||
+ | } | ||
+ | |||
+ | .help-block { | ||
+ | display: block; | ||
+ | margin-top: 5px; | ||
+ | margin-bottom: 10px; | ||
+ | color: #737373 | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .form-inline .form-group { | ||
+ | display: inline-block; | ||
+ | margin-bottom: 0; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .form-inline .form-control { | ||
+ | display: inline-block; | ||
+ | width: auto; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .form-inline .form-control-static { | ||
+ | display: inline-block | ||
+ | } | ||
+ | .form-inline .input-group { | ||
+ | display: inline-table; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .form-inline .input-group .form-control, | ||
+ | .form-inline .input-group .input-group-addon, | ||
+ | .form-inline .input-group .input-group-btn { | ||
+ | width: auto | ||
+ | } | ||
+ | .form-inline .input-group>.form-control { | ||
+ | width: 100% | ||
+ | } | ||
+ | .form-inline .control-label { | ||
+ | margin-bottom: 0; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .form-inline .checkbox, | ||
+ | .form-inline .radio { | ||
+ | display: inline-block; | ||
+ | margin-top: 0; | ||
+ | margin-bottom: 0; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .form-inline .checkbox label, | ||
+ | .form-inline .radio label { | ||
+ | padding-left: 0 | ||
+ | } | ||
+ | .form-inline .checkbox input[type=checkbox], | ||
+ | .form-inline .radio input[type=radio] { | ||
+ | position: relative; | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | .form-inline .has-feedback .form-control-feedback { | ||
+ | top: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .form-horizontal .checkbox, | ||
+ | .form-horizontal .checkbox-inline, | ||
+ | .form-horizontal .radio, | ||
+ | .form-horizontal .radio-inline { | ||
+ | padding-top: 7px; | ||
+ | margin-top: 0; | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .form-horizontal .checkbox, | ||
+ | .form-horizontal .radio { | ||
+ | min-height: 27px | ||
+ | } | ||
+ | |||
+ | .form-horizontal .form-group { | ||
+ | margin-right: -15px; | ||
+ | margin-left: -15px | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .form-horizontal .control-label { | ||
+ | padding-top: 7px; | ||
+ | margin-bottom: 0; | ||
+ | text-align: right | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .form-horizontal .has-feedback .form-control-feedback { | ||
+ | right: 15px | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .form-horizontal .form-group-lg .control-label { | ||
+ | padding-top: 11px; | ||
+ | font-size: 18px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .form-horizontal .form-group-sm .control-label { | ||
+ | padding-top: 6px; | ||
+ | font-size: 12px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .btn { | ||
+ | display: inline-block; | ||
+ | padding: 6px 12px; | ||
+ | margin-bottom: 0; | ||
+ | font-size: 14px; | ||
+ | font-weight: 400; | ||
+ | line-height: 1.42857143; | ||
+ | text-align: center; | ||
+ | white-space: nowrap; | ||
+ | vertical-align: middle; | ||
+ | -ms-touch-action: manipulation; | ||
+ | touch-action: manipulation; | ||
+ | cursor: pointer; | ||
+ | -webkit-user-select: none; | ||
+ | -moz-user-select: none; | ||
+ | -ms-user-select: none; | ||
+ | user-select: none; | ||
+ | background-image: none; | ||
+ | border: 1px solid transparent; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .btn.active.focus, | ||
+ | .btn.active:focus, | ||
+ | .btn.focus, | ||
+ | .btn:active.focus, | ||
+ | .btn:active:focus, | ||
+ | .btn:focus { | ||
+ | outline: 5px auto -webkit-focus-ring-color; | ||
+ | outline-offset: -2px | ||
+ | } | ||
+ | |||
+ | .btn.focus, | ||
+ | .btn:focus, | ||
+ | .btn:hover { | ||
+ | color: #333; | ||
+ | text-decoration: none | ||
+ | } | ||
+ | |||
+ | .btn.active, | ||
+ | .btn:active { | ||
+ | background-image: none; | ||
+ | outline: 0; | ||
+ | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); | ||
+ | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125) | ||
+ | } | ||
+ | |||
+ | .btn.disabled, | ||
+ | .btn[disabled], | ||
+ | fieldset[disabled] .btn { | ||
+ | cursor: not-allowed; | ||
+ | filter: alpha(opacity=65); | ||
+ | -webkit-box-shadow: none; | ||
+ | box-shadow: none; | ||
+ | opacity: .65 | ||
+ | } | ||
+ | |||
+ | a.btn.disabled, | ||
+ | fieldset[disabled] a.btn { | ||
+ | pointer-events: none | ||
+ | } | ||
+ | |||
+ | .btn-default { | ||
+ | color: #333; | ||
+ | background-color: #fff; | ||
+ | border-color: #ccc | ||
+ | } | ||
+ | |||
+ | .btn-default.focus, | ||
+ | .btn-default:focus { | ||
+ | color: #333; | ||
+ | background-color: #e6e6e6; | ||
+ | border-color: #8c8c8c | ||
+ | } | ||
+ | |||
+ | .btn-default:hover { | ||
+ | color: #333; | ||
+ | background-color: #e6e6e6; | ||
+ | border-color: #adadad | ||
+ | } | ||
+ | |||
+ | .btn-default.active, | ||
+ | .btn-default:active, | ||
+ | .open>.dropdown-toggle.btn-default { | ||
+ | color: #333; | ||
+ | background-color: #e6e6e6; | ||
+ | border-color: #adadad | ||
+ | } | ||
+ | |||
+ | .btn-default.active.focus, | ||
+ | .btn-default.active:focus, | ||
+ | .btn-default.active:hover, | ||
+ | .btn-default:active.focus, | ||
+ | .btn-default:active:focus, | ||
+ | .btn-default:active:hover, | ||
+ | .open>.dropdown-toggle.btn-default.focus, | ||
+ | .open>.dropdown-toggle.btn-default:focus, | ||
+ | .open>.dropdown-toggle.btn-default:hover { | ||
+ | color: #333; | ||
+ | background-color: #d4d4d4; | ||
+ | border-color: #8c8c8c | ||
+ | } | ||
+ | |||
+ | .btn-default.active, | ||
+ | .btn-default:active, | ||
+ | .open>.dropdown-toggle.btn-default { | ||
+ | background-image: none | ||
+ | } | ||
+ | |||
+ | .btn-default.disabled.focus, | ||
+ | .btn-default.disabled:focus, | ||
+ | .btn-default.disabled:hover, | ||
+ | .btn-default[disabled].focus, | ||
+ | .btn-default[disabled]:focus, | ||
+ | .btn-default[disabled]:hover, | ||
+ | fieldset[disabled] .btn-default.focus, | ||
+ | fieldset[disabled] .btn-default:focus, | ||
+ | fieldset[disabled] .btn-default:hover { | ||
+ | background-color: #fff; | ||
+ | border-color: #ccc | ||
+ | } | ||
+ | |||
+ | .btn-default .badge { | ||
+ | color: #fff; | ||
+ | background-color: #333 | ||
+ | } | ||
+ | |||
+ | .btn-primary { | ||
+ | color: #fff; | ||
+ | background-color: #337ab7; | ||
+ | border-color: #2e6da4 | ||
+ | } | ||
+ | |||
+ | .btn-primary.focus, | ||
+ | .btn-primary:focus { | ||
+ | color: #fff; | ||
+ | background-color: #286090; | ||
+ | border-color: #122b40 | ||
+ | } | ||
+ | |||
+ | .btn-primary:hover { | ||
+ | color: #fff; | ||
+ | background-color: #286090; | ||
+ | border-color: #204d74 | ||
+ | } | ||
+ | |||
+ | .btn-primary.active, | ||
+ | .btn-primary:active, | ||
+ | .open>.dropdown-toggle.btn-primary { | ||
+ | color: #fff; | ||
+ | background-color: #286090; | ||
+ | border-color: #204d74 | ||
+ | } | ||
+ | |||
+ | .btn-primary.active.focus, | ||
+ | .btn-primary.active:focus, | ||
+ | .btn-primary.active:hover, | ||
+ | .btn-primary:active.focus, | ||
+ | .btn-primary:active:focus, | ||
+ | .btn-primary:active:hover, | ||
+ | .open>.dropdown-toggle.btn-primary.focus, | ||
+ | .open>.dropdown-toggle.btn-primary:focus, | ||
+ | .open>.dropdown-toggle.btn-primary:hover { | ||
+ | color: #fff; | ||
+ | background-color: #204d74; | ||
+ | border-color: #122b40 | ||
+ | } | ||
+ | |||
+ | .btn-primary.active, | ||
+ | .btn-primary:active, | ||
+ | .open>.dropdown-toggle.btn-primary { | ||
+ | background-image: none | ||
+ | } | ||
+ | |||
+ | .btn-primary.disabled.focus, | ||
+ | .btn-primary.disabled:focus, | ||
+ | .btn-primary.disabled:hover, | ||
+ | .btn-primary[disabled].focus, | ||
+ | .btn-primary[disabled]:focus, | ||
+ | .btn-primary[disabled]:hover, | ||
+ | fieldset[disabled] .btn-primary.focus, | ||
+ | fieldset[disabled] .btn-primary:focus, | ||
+ | fieldset[disabled] .btn-primary:hover { | ||
+ | background-color: #337ab7; | ||
+ | border-color: #2e6da4 | ||
+ | } | ||
+ | |||
+ | .btn-primary .badge { | ||
+ | color: #337ab7; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .btn-success { | ||
+ | color: #fff; | ||
+ | background-color: #5cb85c; | ||
+ | border-color: #4cae4c | ||
+ | } | ||
+ | |||
+ | .btn-success.focus, | ||
+ | .btn-success:focus { | ||
+ | color: #fff; | ||
+ | background-color: #449d44; | ||
+ | border-color: #255625 | ||
+ | } | ||
+ | |||
+ | .btn-success:hover { | ||
+ | color: #fff; | ||
+ | background-color: #449d44; | ||
+ | border-color: #398439 | ||
+ | } | ||
+ | |||
+ | .btn-success.active, | ||
+ | .btn-success:active, | ||
+ | .open>.dropdown-toggle.btn-success { | ||
+ | color: #fff; | ||
+ | background-color: #449d44; | ||
+ | border-color: #398439 | ||
+ | } | ||
+ | |||
+ | .btn-success.active.focus, | ||
+ | .btn-success.active:focus, | ||
+ | .btn-success.active:hover, | ||
+ | .btn-success:active.focus, | ||
+ | .btn-success:active:focus, | ||
+ | .btn-success:active:hover, | ||
+ | .open>.dropdown-toggle.btn-success.focus, | ||
+ | .open>.dropdown-toggle.btn-success:focus, | ||
+ | .open>.dropdown-toggle.btn-success:hover { | ||
+ | color: #fff; | ||
+ | background-color: #398439; | ||
+ | border-color: #255625 | ||
+ | } | ||
+ | |||
+ | .btn-success.active, | ||
+ | .btn-success:active, | ||
+ | .open>.dropdown-toggle.btn-success { | ||
+ | background-image: none | ||
+ | } | ||
+ | |||
+ | .btn-success.disabled.focus, | ||
+ | .btn-success.disabled:focus, | ||
+ | .btn-success.disabled:hover, | ||
+ | .btn-success[disabled].focus, | ||
+ | .btn-success[disabled]:focus, | ||
+ | .btn-success[disabled]:hover, | ||
+ | fieldset[disabled] .btn-success.focus, | ||
+ | fieldset[disabled] .btn-success:focus, | ||
+ | fieldset[disabled] .btn-success:hover { | ||
+ | background-color: #5cb85c; | ||
+ | border-color: #4cae4c | ||
+ | } | ||
+ | |||
+ | .btn-success .badge { | ||
+ | color: #5cb85c; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .btn-info { | ||
+ | color: #fff; | ||
+ | background-color: #5bc0de; | ||
+ | border-color: #46b8da | ||
+ | } | ||
+ | |||
+ | .btn-info.focus, | ||
+ | .btn-info:focus { | ||
+ | color: #fff; | ||
+ | background-color: #31b0d5; | ||
+ | border-color: #1b6d85 | ||
+ | } | ||
+ | |||
+ | .btn-info:hover { | ||
+ | color: #fff; | ||
+ | background-color: #31b0d5; | ||
+ | border-color: #269abc | ||
+ | } | ||
+ | |||
+ | .btn-info.active, | ||
+ | .btn-info:active, | ||
+ | .open>.dropdown-toggle.btn-info { | ||
+ | color: #fff; | ||
+ | background-color: #31b0d5; | ||
+ | border-color: #269abc | ||
+ | } | ||
+ | |||
+ | .btn-info.active.focus, | ||
+ | .btn-info.active:focus, | ||
+ | .btn-info.active:hover, | ||
+ | .btn-info:active.focus, | ||
+ | .btn-info:active:focus, | ||
+ | .btn-info:active:hover, | ||
+ | .open>.dropdown-toggle.btn-info.focus, | ||
+ | .open>.dropdown-toggle.btn-info:focus, | ||
+ | .open>.dropdown-toggle.btn-info:hover { | ||
+ | color: #fff; | ||
+ | background-color: #269abc; | ||
+ | border-color: #1b6d85 | ||
+ | } | ||
+ | |||
+ | .btn-info.active, | ||
+ | .btn-info:active, | ||
+ | .open>.dropdown-toggle.btn-info { | ||
+ | background-image: none | ||
+ | } | ||
+ | |||
+ | .btn-info.disabled.focus, | ||
+ | .btn-info.disabled:focus, | ||
+ | .btn-info.disabled:hover, | ||
+ | .btn-info[disabled].focus, | ||
+ | .btn-info[disabled]:focus, | ||
+ | .btn-info[disabled]:hover, | ||
+ | fieldset[disabled] .btn-info.focus, | ||
+ | fieldset[disabled] .btn-info:focus, | ||
+ | fieldset[disabled] .btn-info:hover { | ||
+ | background-color: #5bc0de; | ||
+ | border-color: #46b8da | ||
+ | } | ||
+ | |||
+ | .btn-info .badge { | ||
+ | color: #5bc0de; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .btn-warning { | ||
+ | color: #fff; | ||
+ | background-color: #f0ad4e; | ||
+ | border-color: #eea236 | ||
+ | } | ||
+ | |||
+ | .btn-warning.focus, | ||
+ | .btn-warning:focus { | ||
+ | color: #fff; | ||
+ | background-color: #ec971f; | ||
+ | border-color: #985f0d | ||
+ | } | ||
+ | |||
+ | .btn-warning:hover { | ||
+ | color: #fff; | ||
+ | background-color: #ec971f; | ||
+ | border-color: #d58512 | ||
+ | } | ||
+ | |||
+ | .btn-warning.active, | ||
+ | .btn-warning:active, | ||
+ | .open>.dropdown-toggle.btn-warning { | ||
+ | color: #fff; | ||
+ | background-color: #ec971f; | ||
+ | border-color: #d58512 | ||
+ | } | ||
+ | |||
+ | .btn-warning.active.focus, | ||
+ | .btn-warning.active:focus, | ||
+ | .btn-warning.active:hover, | ||
+ | .btn-warning:active.focus, | ||
+ | .btn-warning:active:focus, | ||
+ | .btn-warning:active:hover, | ||
+ | .open>.dropdown-toggle.btn-warning.focus, | ||
+ | .open>.dropdown-toggle.btn-warning:focus, | ||
+ | .open>.dropdown-toggle.btn-warning:hover { | ||
+ | color: #fff; | ||
+ | background-color: #d58512; | ||
+ | border-color: #985f0d | ||
+ | } | ||
+ | |||
+ | .btn-warning.active, | ||
+ | .btn-warning:active, | ||
+ | .open>.dropdown-toggle.btn-warning { | ||
+ | background-image: none | ||
+ | } | ||
+ | |||
+ | .btn-warning.disabled.focus, | ||
+ | .btn-warning.disabled:focus, | ||
+ | .btn-warning.disabled:hover, | ||
+ | .btn-warning[disabled].focus, | ||
+ | .btn-warning[disabled]:focus, | ||
+ | .btn-warning[disabled]:hover, | ||
+ | fieldset[disabled] .btn-warning.focus, | ||
+ | fieldset[disabled] .btn-warning:focus, | ||
+ | fieldset[disabled] .btn-warning:hover { | ||
+ | background-color: #f0ad4e; | ||
+ | border-color: #eea236 | ||
+ | } | ||
+ | |||
+ | .btn-warning .badge { | ||
+ | color: #f0ad4e; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .btn-danger { | ||
+ | color: #fff; | ||
+ | background-color: #d9534f; | ||
+ | border-color: #d43f3a | ||
+ | } | ||
+ | |||
+ | .btn-danger.focus, | ||
+ | .btn-danger:focus { | ||
+ | color: #fff; | ||
+ | background-color: #c9302c; | ||
+ | border-color: #761c19 | ||
+ | } | ||
+ | |||
+ | .btn-danger:hover { | ||
+ | color: #fff; | ||
+ | background-color: #c9302c; | ||
+ | border-color: #ac2925 | ||
+ | } | ||
+ | |||
+ | .btn-danger.active, | ||
+ | .btn-danger:active, | ||
+ | .open>.dropdown-toggle.btn-danger { | ||
+ | color: #fff; | ||
+ | background-color: #c9302c; | ||
+ | border-color: #ac2925 | ||
+ | } | ||
+ | |||
+ | .btn-danger.active.focus, | ||
+ | .btn-danger.active:focus, | ||
+ | .btn-danger.active:hover, | ||
+ | .btn-danger:active.focus, | ||
+ | .btn-danger:active:focus, | ||
+ | .btn-danger:active:hover, | ||
+ | .open>.dropdown-toggle.btn-danger.focus, | ||
+ | .open>.dropdown-toggle.btn-danger:focus, | ||
+ | .open>.dropdown-toggle.btn-danger:hover { | ||
+ | color: #fff; | ||
+ | background-color: #ac2925; | ||
+ | border-color: #761c19 | ||
+ | } | ||
+ | |||
+ | .btn-danger.active, | ||
+ | .btn-danger:active, | ||
+ | .open>.dropdown-toggle.btn-danger { | ||
+ | background-image: none | ||
+ | } | ||
+ | |||
+ | .btn-danger.disabled.focus, | ||
+ | .btn-danger.disabled:focus, | ||
+ | .btn-danger.disabled:hover, | ||
+ | .btn-danger[disabled].focus, | ||
+ | .btn-danger[disabled]:focus, | ||
+ | .btn-danger[disabled]:hover, | ||
+ | fieldset[disabled] .btn-danger.focus, | ||
+ | fieldset[disabled] .btn-danger:focus, | ||
+ | fieldset[disabled] .btn-danger:hover { | ||
+ | background-color: #d9534f; | ||
+ | border-color: #d43f3a | ||
+ | } | ||
+ | |||
+ | .btn-danger .badge { | ||
+ | color: #d9534f; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .btn-link { | ||
+ | font-weight: 400; | ||
+ | color: #337ab7; | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-link, | ||
+ | .btn-link.active, | ||
+ | .btn-link:active, | ||
+ | .btn-link[disabled], | ||
+ | fieldset[disabled] .btn-link { | ||
+ | background-color: transparent; | ||
+ | -webkit-box-shadow: none; | ||
+ | box-shadow: none | ||
+ | } | ||
+ | |||
+ | .btn-link, | ||
+ | .btn-link:active, | ||
+ | .btn-link:focus, | ||
+ | .btn-link:hover { | ||
+ | border-color: transparent | ||
+ | } | ||
+ | |||
+ | .btn-link:focus, | ||
+ | .btn-link:hover { | ||
+ | color: #23527c; | ||
+ | text-decoration: underline; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | .btn-link[disabled]:focus, | ||
+ | .btn-link[disabled]:hover, | ||
+ | fieldset[disabled] .btn-link:focus, | ||
+ | fieldset[disabled] .btn-link:hover { | ||
+ | color: #777; | ||
+ | text-decoration: none | ||
+ | } | ||
+ | |||
+ | .btn-group-lg>.btn, | ||
+ | .btn-lg { | ||
+ | padding: 10px 16px; | ||
+ | font-size: 18px; | ||
+ | line-height: 1.3333333; | ||
+ | border-radius: 6px | ||
+ | } | ||
+ | |||
+ | .btn-group-sm>.btn, | ||
+ | .btn-sm { | ||
+ | padding: 5px 10px; | ||
+ | font-size: 12px; | ||
+ | line-height: 1.5; | ||
+ | border-radius: 3px | ||
+ | } | ||
+ | |||
+ | .btn-group-xs>.btn, | ||
+ | .btn-xs { | ||
+ | padding: 1px 5px; | ||
+ | font-size: 12px; | ||
+ | line-height: 1.5; | ||
+ | border-radius: 3px | ||
+ | } | ||
+ | |||
+ | .btn-block { | ||
+ | display: block; | ||
+ | width: 100% | ||
+ | } | ||
+ | |||
+ | .btn-block+.btn-block { | ||
+ | margin-top: 5px | ||
+ | } | ||
+ | |||
+ | input[type=button].btn-block, | ||
+ | input[type=reset].btn-block, | ||
+ | input[type=submit].btn-block { | ||
+ | width: 100% | ||
+ | } | ||
+ | |||
+ | .fade { | ||
+ | opacity: 0; | ||
+ | -webkit-transition: opacity .15s linear; | ||
+ | -o-transition: opacity .15s linear; | ||
+ | transition: opacity .15s linear | ||
+ | } | ||
+ | |||
+ | .fade.in { | ||
+ | opacity: 1 | ||
+ | } | ||
+ | |||
+ | .collapse { | ||
+ | display: none | ||
+ | } | ||
+ | |||
+ | .collapse.in { | ||
+ | display: block | ||
+ | } | ||
+ | |||
+ | tr.collapse.in { | ||
+ | display: table-row | ||
+ | } | ||
+ | |||
+ | tbody.collapse.in { | ||
+ | display: table-row-group | ||
+ | } | ||
+ | |||
+ | .collapsing { | ||
+ | position: relative; | ||
+ | height: 0; | ||
+ | overflow: hidden; | ||
+ | -webkit-transition-timing-function: ease; | ||
+ | -o-transition-timing-function: ease; | ||
+ | transition-timing-function: ease; | ||
+ | -webkit-transition-duration: .35s; | ||
+ | -o-transition-duration: .35s; | ||
+ | transition-duration: .35s; | ||
+ | -webkit-transition-property: height, visibility; | ||
+ | -o-transition-property: height, visibility; | ||
+ | transition-property: height, visibility | ||
+ | } | ||
+ | |||
+ | .caret { | ||
+ | display: inline-block; | ||
+ | width: 0; | ||
+ | height: 0; | ||
+ | margin-left: 2px; | ||
+ | vertical-align: middle; | ||
+ | border-top: 4px dashed; | ||
+ | border-top: 4px solid\9; | ||
+ | border-right: 4px solid transparent; | ||
+ | border-left: 4px solid transparent | ||
+ | } | ||
+ | |||
+ | .dropdown, | ||
+ | .dropup { | ||
+ | position: relative | ||
+ | } | ||
+ | |||
+ | .dropdown-toggle:focus { | ||
+ | outline: 0 | ||
+ | } | ||
+ | |||
+ | .dropdown-menu { | ||
+ | |||
+ | position: absolute; | ||
+ | top: 100%; | ||
+ | left: 0; | ||
+ | z-index: 1000; | ||
+ | display: none; | ||
+ | float: left; | ||
+ | min-width: 160px; | ||
+ | padding: 5px 0; | ||
+ | margin: 2px 0 0; | ||
+ | font-size: 14px; | ||
+ | text-align: left; | ||
+ | list-style: none; | ||
+ | background-color: #886488; | ||
+ | -webkit-background-clip: padding-box; | ||
+ | background-clip: padding-box; | ||
+ | border: 1px solid #ccc; | ||
+ | border: 1px solid rgba(0, 0, 0, .15); | ||
+ | border-radius: 4px; | ||
+ | -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); | ||
+ | box-shadow: 0 6px 12px rgba(0, 0, 0, .175) | ||
+ | } | ||
+ | |||
+ | .dropdown-menu.pull-right { | ||
+ | right: 0; | ||
+ | left: auto | ||
+ | } | ||
+ | |||
+ | .dropdown-menu .divider { | ||
+ | height: 1px; | ||
+ | margin: 9px 0; | ||
+ | overflow: hidden; | ||
+ | background-color: #e5e5e5 | ||
+ | } | ||
+ | |||
+ | .dropdown-menu>li>a { | ||
+ | display: block; | ||
+ | padding: 3px 20px; | ||
+ | clear: both; | ||
+ | font-weight: 400; | ||
+ | line-height: 1.42857143; | ||
+ | color:blue; | ||
+ | white-space: nowrap | ||
+ | } | ||
+ | |||
+ | .dropdown-menu>li>a:focus, | ||
+ | .dropdown-menu>li>a:hover { | ||
+ | color: #262626; | ||
+ | text-decoration: none; | ||
+ | background-color: #f5f5f5 | ||
+ | } | ||
+ | |||
+ | .dropdown-menu>.active>a, | ||
+ | .dropdown-menu>.active>a:focus, | ||
+ | .dropdown-menu>.active>a:hover { | ||
+ | color: color; | ||
+ | text-decoration: none; | ||
+ | background-color: #337ab7; | ||
+ | outline: 0 | ||
+ | } | ||
+ | |||
+ | .dropdown-menu>.disabled>a, | ||
+ | .dropdown-menu>.disabled>a:focus, | ||
+ | .dropdown-menu>.disabled>a:hover { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .dropdown-menu>.disabled>a:focus, | ||
+ | .dropdown-menu>.disabled>a:hover { | ||
+ | text-decoration: none; | ||
+ | cursor: not-allowed; | ||
+ | background-color: transparent; | ||
+ | background-image: none; | ||
+ | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false) | ||
+ | } | ||
+ | |||
+ | .open>.dropdown-menu { | ||
+ | display: block | ||
+ | } | ||
+ | |||
+ | .open>a { | ||
+ | outline: 0 | ||
+ | } | ||
+ | |||
+ | .dropdown-menu-right { | ||
+ | right: 0; | ||
+ | left: auto | ||
+ | } | ||
+ | |||
+ | .dropdown-menu-left { | ||
+ | right: auto; | ||
+ | left: 0 | ||
+ | } | ||
+ | |||
+ | .dropdown-header { | ||
+ | display: block; | ||
+ | padding: 3px 20px; | ||
+ | font-size: 12px; | ||
+ | line-height: 1.42857143; | ||
+ | color: #777; | ||
+ | white-space: nowrap | ||
+ | } | ||
+ | |||
+ | .dropdown-backdrop { | ||
+ | position: fixed; | ||
+ | top: 0; | ||
+ | right: 0; | ||
+ | bottom: 0; | ||
+ | left: 0; | ||
+ | z-index: 990 | ||
+ | } | ||
+ | |||
+ | .pull-right>.dropdown-menu { | ||
+ | right: 0; | ||
+ | left: auto | ||
+ | } | ||
+ | |||
+ | .dropup .caret, | ||
+ | .navbar-fixed-bottom .dropdown .caret { | ||
+ | content: ""; | ||
+ | border-top: 0; | ||
+ | border-bottom: 4px dashed; | ||
+ | border-bottom: 4px solid\9 | ||
+ | } | ||
+ | |||
+ | .dropup .dropdown-menu, | ||
+ | .navbar-fixed-bottom .dropdown .dropdown-menu { | ||
+ | top: auto; | ||
+ | bottom: 100%; | ||
+ | margin-bottom: 2px | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-right .dropdown-menu { | ||
+ | right: 0; | ||
+ | left: auto | ||
+ | } | ||
+ | .navbar-right .dropdown-menu-left { | ||
+ | right: auto; | ||
+ | left: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .btn-group, | ||
+ | .btn-group-vertical { | ||
+ | position: relative; | ||
+ | display: inline-block; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn, | ||
+ | .btn-group>.btn { | ||
+ | position: relative; | ||
+ | float: left | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn.active, | ||
+ | .btn-group-vertical>.btn:active, | ||
+ | .btn-group-vertical>.btn:focus, | ||
+ | .btn-group-vertical>.btn:hover, | ||
+ | .btn-group>.btn.active, | ||
+ | .btn-group>.btn:active, | ||
+ | .btn-group>.btn:focus, | ||
+ | .btn-group>.btn:hover { | ||
+ | z-index: 2 | ||
+ | } | ||
+ | |||
+ | .btn-group .btn+.btn, | ||
+ | .btn-group .btn+.btn-group, | ||
+ | .btn-group .btn-group+.btn, | ||
+ | .btn-group .btn-group+.btn-group { | ||
+ | margin-left: -1px | ||
+ | } | ||
+ | |||
+ | .btn-toolbar { | ||
+ | margin-left: -5px | ||
+ | } | ||
+ | |||
+ | .btn-toolbar .btn, | ||
+ | .btn-toolbar .btn-group, | ||
+ | .btn-toolbar .input-group { | ||
+ | float: left | ||
+ | } | ||
+ | |||
+ | .btn-toolbar>.btn, | ||
+ | .btn-toolbar>.btn-group, | ||
+ | .btn-toolbar>.input-group { | ||
+ | margin-left: 5px | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn:first-child { | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle) { | ||
+ | border-top-right-radius: 0; | ||
+ | border-bottom-right-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn:last-child:not(:first-child), | ||
+ | .btn-group>.dropdown-toggle:not(:first-child) { | ||
+ | border-top-left-radius: 0; | ||
+ | border-bottom-left-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn-group { | ||
+ | float: left | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn { | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child, | ||
+ | .btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle { | ||
+ | border-top-right-radius: 0; | ||
+ | border-bottom-right-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child { | ||
+ | border-top-left-radius: 0; | ||
+ | border-bottom-left-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group .dropdown-toggle:active, | ||
+ | .btn-group.open .dropdown-toggle { | ||
+ | outline: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn+.dropdown-toggle { | ||
+ | padding-right: 8px; | ||
+ | padding-left: 8px | ||
+ | } | ||
+ | |||
+ | .btn-group>.btn-lg+.dropdown-toggle { | ||
+ | padding-right: 12px; | ||
+ | padding-left: 12px | ||
+ | } | ||
+ | |||
+ | .btn-group.open .dropdown-toggle { | ||
+ | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); | ||
+ | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125) | ||
+ | } | ||
+ | |||
+ | .btn-group.open .dropdown-toggle.btn-link { | ||
+ | -webkit-box-shadow: none; | ||
+ | box-shadow: none | ||
+ | } | ||
+ | |||
+ | .btn .caret { | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | |||
+ | .btn-lg .caret { | ||
+ | border-width: 5px 5px 0; | ||
+ | border-bottom-width: 0 | ||
+ | } | ||
+ | |||
+ | .dropup .btn-lg .caret { | ||
+ | border-width: 0 5px 5px | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn, | ||
+ | .btn-group-vertical>.btn-group, | ||
+ | .btn-group-vertical>.btn-group>.btn { | ||
+ | display: block; | ||
+ | float: none; | ||
+ | width: 100%; | ||
+ | max-width: 100% | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn-group>.btn { | ||
+ | float: none | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn+.btn, | ||
+ | .btn-group-vertical>.btn+.btn-group, | ||
+ | .btn-group-vertical>.btn-group+.btn, | ||
+ | .btn-group-vertical>.btn-group+.btn-group { | ||
+ | margin-top: -1px; | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn:not(:first-child):not(:last-child) { | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn:first-child:not(:last-child) { | ||
+ | border-top-left-radius: 4px; | ||
+ | border-top-right-radius: 4px; | ||
+ | border-bottom-right-radius: 0; | ||
+ | border-bottom-left-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn:last-child:not(:first-child) { | ||
+ | border-top-left-radius: 0; | ||
+ | border-top-right-radius: 0; | ||
+ | border-bottom-right-radius: 4px; | ||
+ | border-bottom-left-radius: 4px | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn { | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child, | ||
+ | .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle { | ||
+ | border-bottom-right-radius: 0; | ||
+ | border-bottom-left-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child { | ||
+ | border-top-left-radius: 0; | ||
+ | border-top-right-radius: 0 | ||
+ | } | ||
+ | |||
+ | .btn-group-justified { | ||
+ | display: table; | ||
+ | width: 100%; | ||
+ | table-layout: fixed; | ||
+ | border-collapse: separate | ||
+ | } | ||
+ | |||
+ | .btn-group-justified>.btn, | ||
+ | .btn-group-justified>.btn-group { | ||
+ | display: table-cell; | ||
+ | float: none; | ||
+ | width: 1% | ||
+ | } | ||
+ | |||
+ | .btn-group-justified>.btn-group .btn { | ||
+ | width: 100% | ||
+ | } | ||
+ | |||
+ | .btn-group-justified>.btn-group .dropdown-menu { | ||
+ | left: auto | ||
+ | } | ||
+ | |||
+ | [data-toggle=buttons]>.btn input[type=checkbox], | ||
+ | [data-toggle=buttons]>.btn input[type=radio], | ||
+ | [data-toggle=buttons]>.btn-group>.btn input[type=checkbox], | ||
+ | [data-toggle=buttons]>.btn-group>.btn input[type=radio] { | ||
+ | position: absolute; | ||
+ | clip: rect(0, 0, 0, 0); | ||
+ | pointer-events: none | ||
+ | } | ||
+ | |||
+ | .input-group { | ||
+ | position: relative; | ||
+ | display: table; | ||
+ | border-collapse: separate | ||
+ | } | ||
+ | |||
+ | .input-group[class*=col-] { | ||
+ | float: none; | ||
+ | padding-right: 0; | ||
+ | padding-left: 0 | ||
+ | } | ||
+ | |||
+ | .input-group .form-control { | ||
+ | position: relative; | ||
+ | z-index: 2; | ||
+ | float: left; | ||
+ | width: 100%; | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .input-group .form-control:focus { | ||
+ | z-index: 3 | ||
+ | } | ||
+ | |||
+ | .input-group-lg>.form-control, | ||
+ | .input-group-lg>.input-group-addon, | ||
+ | .input-group-lg>.input-group-btn>.btn { | ||
+ | height: 46px; | ||
+ | padding: 10px 16px; | ||
+ | font-size: 18px; | ||
+ | line-height: 1.3333333; | ||
+ | border-radius: 6px | ||
+ | } | ||
+ | |||
+ | select.input-group-lg>.form-control, | ||
+ | select.input-group-lg>.input-group-addon, | ||
+ | select.input-group-lg>.input-group-btn>.btn { | ||
+ | height: 46px; | ||
+ | line-height: 46px | ||
+ | } | ||
+ | |||
+ | select[multiple].input-group-lg>.form-control, | ||
+ | select[multiple].input-group-lg>.input-group-addon, | ||
+ | select[multiple].input-group-lg>.input-group-btn>.btn, | ||
+ | textarea.input-group-lg>.form-control, | ||
+ | textarea.input-group-lg>.input-group-addon, | ||
+ | textarea.input-group-lg>.input-group-btn>.btn { | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | .input-group-sm>.form-control, | ||
+ | .input-group-sm>.input-group-addon, | ||
+ | .input-group-sm>.input-group-btn>.btn { | ||
+ | height: 30px; | ||
+ | padding: 5px 10px; | ||
+ | font-size: 12px; | ||
+ | line-height: 1.5; | ||
+ | border-radius: 3px | ||
+ | } | ||
+ | |||
+ | select.input-group-sm>.form-control, | ||
+ | select.input-group-sm>.input-group-addon, | ||
+ | select.input-group-sm>.input-group-btn>.btn { | ||
+ | height: 30px; | ||
+ | line-height: 30px | ||
+ | } | ||
+ | |||
+ | select[multiple].input-group-sm>.form-control, | ||
+ | select[multiple].input-group-sm>.input-group-addon, | ||
+ | select[multiple].input-group-sm>.input-group-btn>.btn, | ||
+ | textarea.input-group-sm>.form-control, | ||
+ | textarea.input-group-sm>.input-group-addon, | ||
+ | textarea.input-group-sm>.input-group-btn>.btn { | ||
+ | height: auto | ||
+ | } | ||
+ | |||
+ | .input-group .form-control, | ||
+ | .input-group-addon, | ||
+ | .input-group-btn { | ||
+ | display: table-cell | ||
+ | } | ||
+ | |||
+ | .input-group .form-control:not(:first-child):not(:last-child), | ||
+ | .input-group-addon:not(:first-child):not(:last-child), | ||
+ | .input-group-btn:not(:first-child):not(:last-child) { | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | |||
+ | .input-group-addon, | ||
+ | .input-group-btn { | ||
+ | width: 1%; | ||
+ | white-space: nowrap; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | |||
+ | .input-group-addon { | ||
+ | padding: 6px 12px; | ||
+ | font-size: 14px; | ||
+ | font-weight: 400; | ||
+ | line-height: 1; | ||
+ | color: #555; | ||
+ | text-align: center; | ||
+ | background-color: #eee; | ||
+ | border: 1px solid #ccc; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .input-group-addon.input-sm { | ||
+ | padding: 5px 10px; | ||
+ | font-size: 12px; | ||
+ | border-radius: 3px | ||
+ | } | ||
+ | |||
+ | .input-group-addon.input-lg { | ||
+ | padding: 10px 16px; | ||
+ | font-size: 18px; | ||
+ | border-radius: 6px | ||
+ | } | ||
+ | |||
+ | .input-group-addon input[type=checkbox], | ||
+ | .input-group-addon input[type=radio] { | ||
+ | margin-top: 0 | ||
+ | } | ||
+ | |||
+ | .input-group .form-control:first-child, | ||
+ | .input-group-addon:first-child, | ||
+ | .input-group-btn:first-child>.btn, | ||
+ | .input-group-btn:first-child>.btn-group>.btn, | ||
+ | .input-group-btn:first-child>.dropdown-toggle, | ||
+ | .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, | ||
+ | .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) { | ||
+ | border-top-right-radius: 0; | ||
+ | border-bottom-right-radius: 0 | ||
+ | } | ||
+ | |||
+ | .input-group-addon:first-child { | ||
+ | border-right: 0 | ||
+ | } | ||
+ | |||
+ | .input-group .form-control:last-child, | ||
+ | .input-group-addon:last-child, | ||
+ | .input-group-btn:first-child>.btn-group:not(:first-child)>.btn, | ||
+ | .input-group-btn:first-child>.btn:not(:first-child), | ||
+ | .input-group-btn:last-child>.btn, | ||
+ | .input-group-btn:last-child>.btn-group>.btn, | ||
+ | .input-group-btn:last-child>.dropdown-toggle { | ||
+ | border-top-left-radius: 0; | ||
+ | border-bottom-left-radius: 0 | ||
+ | } | ||
+ | |||
+ | .input-group-addon:last-child { | ||
+ | border-left: 0 | ||
+ | } | ||
+ | |||
+ | .input-group-btn { | ||
+ | position: relative; | ||
+ | font-size: 0; | ||
+ | white-space: nowrap | ||
+ | } | ||
+ | |||
+ | .input-group-btn>.btn { | ||
+ | position: relative | ||
+ | } | ||
+ | |||
+ | .input-group-btn>.btn+.btn { | ||
+ | margin-left: -1px | ||
+ | } | ||
+ | |||
+ | .input-group-btn>.btn:active, | ||
+ | .input-group-btn>.btn:focus, | ||
+ | .input-group-btn>.btn:hover { | ||
+ | z-index: 2 | ||
+ | } | ||
+ | |||
+ | .input-group-btn:first-child>.btn, | ||
+ | .input-group-btn:first-child>.btn-group { | ||
+ | margin-right: -1px | ||
+ | } | ||
+ | |||
+ | .input-group-btn:last-child>.btn, | ||
+ | .input-group-btn:last-child>.btn-group { | ||
+ | z-index: 2; | ||
+ | margin-left: -1px | ||
+ | } | ||
+ | |||
+ | .nav { | ||
+ | padding-left: 0; | ||
+ | margin-bottom: 0; | ||
+ | list-style: none | ||
+ | } | ||
+ | |||
+ | .nav>li { | ||
+ | position: relative; | ||
+ | display: block | ||
+ | } | ||
+ | |||
+ | .nav>li>a { | ||
+ | position: relative; | ||
+ | display: block; | ||
+ | padding: 10px 15px | ||
+ | } | ||
+ | |||
+ | .nav>li>a:focus, | ||
+ | .nav>li>a:hover { | ||
+ | text-decoration: none; | ||
+ | background-color: #eee | ||
+ | } | ||
+ | |||
+ | .nav>li.disabled>a { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .nav>li.disabled>a:focus, | ||
+ | .nav>li.disabled>a:hover { | ||
+ | color: #777; | ||
+ | text-decoration: none; | ||
+ | cursor: not-allowed; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | .nav .open>a, | ||
+ | .nav .open>a:focus, | ||
+ | .nav .open>a:hover { | ||
+ | background-color: #eee; | ||
+ | border-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .nav .nav-divider { | ||
+ | height: 1px; | ||
+ | margin: 9px 0; | ||
+ | overflow: hidden; | ||
+ | background-color: #e5e5e5 | ||
+ | } | ||
+ | |||
+ | .nav>li>a>img { | ||
+ | max-width: none | ||
+ | } | ||
+ | |||
+ | .nav-tabs { | ||
+ | border-bottom: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | .nav-tabs>li { | ||
+ | float: left; | ||
+ | margin-bottom: -1px | ||
+ | } | ||
+ | |||
+ | .nav-tabs>li>a { | ||
+ | margin-right: 2px; | ||
+ | line-height: 1.42857143; | ||
+ | border: 1px solid transparent; | ||
+ | border-radius: 4px 4px 0 0 | ||
+ | } | ||
+ | |||
+ | .nav-tabs>li>a:hover { | ||
+ | border-color: #eee #eee #ddd | ||
+ | } | ||
+ | |||
+ | .nav-tabs>li.active>a, | ||
+ | .nav-tabs>li.active>a:focus, | ||
+ | .nav-tabs>li.active>a:hover { | ||
+ | color: #555; | ||
+ | cursor: default; | ||
+ | background-color: #fff; | ||
+ | border: 1px solid #ddd; | ||
+ | border-bottom-color: transparent | ||
+ | } | ||
+ | |||
+ | .nav-tabs.nav-justified { | ||
+ | width: 100%; | ||
+ | border-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .nav-tabs.nav-justified>li { | ||
+ | float: none | ||
+ | } | ||
+ | |||
+ | .nav-tabs.nav-justified>li>a { | ||
+ | margin-bottom: 5px; | ||
+ | text-align: center | ||
+ | } | ||
+ | |||
+ | .nav-tabs.nav-justified>.dropdown .dropdown-menu { | ||
+ | top: auto; | ||
+ | left: auto | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .nav-tabs.nav-justified>li { | ||
+ | display: table-cell; | ||
+ | width: 1% | ||
+ | } | ||
+ | .nav-tabs.nav-justified>li>a { | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .nav-tabs.nav-justified>li>a { | ||
+ | margin-right: 0; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .nav-tabs.nav-justified>.active>a, | ||
+ | .nav-tabs.nav-justified>.active>a:focus, | ||
+ | .nav-tabs.nav-justified>.active>a:hover { | ||
+ | border: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .nav-tabs.nav-justified>li>a { | ||
+ | border-bottom: 1px solid #ddd; | ||
+ | border-radius: 4px 4px 0 0 | ||
+ | } | ||
+ | .nav-tabs.nav-justified>.active>a, | ||
+ | .nav-tabs.nav-justified>.active>a:focus, | ||
+ | .nav-tabs.nav-justified>.active>a:hover { | ||
+ | border-bottom-color: #fff | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .nav-pills>li { | ||
+ | float: left | ||
+ | } | ||
+ | |||
+ | .nav-pills>li>a { | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .nav-pills>li+li { | ||
+ | margin-left: 2px | ||
+ | } | ||
+ | |||
+ | .nav-pills>li.active>a, | ||
+ | .nav-pills>li.active>a:focus, | ||
+ | .nav-pills>li.active>a:hover { | ||
+ | color: #fff; | ||
+ | background-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .nav-stacked>li { | ||
+ | float: none | ||
+ | } | ||
+ | |||
+ | .nav-stacked>li+li { | ||
+ | margin-top: 2px; | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | |||
+ | .nav-justified { | ||
+ | width: 100% | ||
+ | } | ||
+ | |||
+ | .nav-justified>li { | ||
+ | float: none | ||
+ | } | ||
+ | |||
+ | .nav-justified>li>a { | ||
+ | margin-bottom: 5px; | ||
+ | text-align: center | ||
+ | } | ||
+ | |||
+ | .nav-justified>.dropdown .dropdown-menu { | ||
+ | top: auto; | ||
+ | left: auto | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .nav-justified>li { | ||
+ | display: table-cell; | ||
+ | width: 1% | ||
+ | } | ||
+ | .nav-justified>li>a { | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .nav-tabs-justified { | ||
+ | border-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .nav-tabs-justified>li>a { | ||
+ | margin-right: 0; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .nav-tabs-justified>.active>a, | ||
+ | .nav-tabs-justified>.active>a:focus, | ||
+ | .nav-tabs-justified>.active>a:hover { | ||
+ | border: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .nav-tabs-justified>li>a { | ||
+ | border-bottom: 1px solid #ddd; | ||
+ | border-radius: 4px 4px 0 0 | ||
+ | } | ||
+ | .nav-tabs-justified>.active>a, | ||
+ | .nav-tabs-justified>.active>a:focus, | ||
+ | .nav-tabs-justified>.active>a:hover { | ||
+ | border-bottom-color: #fff | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .tab-content>.tab-pane { | ||
+ | display: none | ||
+ | } | ||
+ | |||
+ | .tab-content>.active { | ||
+ | display: block | ||
+ | } | ||
+ | |||
+ | .nav-tabs .dropdown-menu { | ||
+ | margin-top: -1px; | ||
+ | border-top-left-radius: 0; | ||
+ | border-top-right-radius: 0 | ||
+ | } | ||
+ | |||
+ | .navbar { | ||
+ | position: relative; | ||
+ | min-height: 50px; | ||
+ | margin-bottom: 20px; | ||
+ | border: 1px solid transparent | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar { | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-header { | ||
+ | float: left | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-collapse { | ||
+ | padding-right: 15px; | ||
+ | padding-left: 15px; | ||
+ | overflow-x: visible; | ||
+ | -webkit-overflow-scrolling: touch; | ||
+ | border-top: 1px solid transparent; | ||
+ | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); | ||
+ | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1) | ||
+ | } | ||
+ | |||
+ | .navbar-collapse.in { | ||
+ | overflow-y: auto | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-collapse { | ||
+ | width: auto; | ||
+ | border-top: 0; | ||
+ | -webkit-box-shadow: none; | ||
+ | box-shadow: none | ||
+ | } | ||
+ | .navbar-collapse.collapse { | ||
+ | display: block!important; | ||
+ | height: auto!important; | ||
+ | padding-bottom: 0; | ||
+ | overflow: visible!important | ||
+ | } | ||
+ | .navbar-collapse.in { | ||
+ | overflow-y: visible | ||
+ | } | ||
+ | .navbar-fixed-bottom .navbar-collapse, | ||
+ | .navbar-fixed-top .navbar-collapse, | ||
+ | .navbar-static-top .navbar-collapse { | ||
+ | padding-right: 0; | ||
+ | padding-left: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-fixed-bottom .navbar-collapse, | ||
+ | .navbar-fixed-top .navbar-collapse { | ||
+ | max-height: 340px | ||
+ | } | ||
+ | |||
+ | @media (max-device-width:480px) and (orientation:landscape) { | ||
+ | .navbar-fixed-bottom .navbar-collapse, | ||
+ | .navbar-fixed-top .navbar-collapse { | ||
+ | max-height: 200px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .container-fluid>.navbar-collapse, | ||
+ | .container-fluid>.navbar-header, | ||
+ | .container>.navbar-collapse, | ||
+ | .container>.navbar-header { | ||
+ | margin-right: -15px; | ||
+ | margin-left: -15px | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .container-fluid>.navbar-collapse, | ||
+ | .container-fluid>.navbar-header, | ||
+ | .container>.navbar-collapse, | ||
+ | .container>.navbar-header { | ||
+ | margin-right: 0; | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-static-top { | ||
+ | z-index: 1000; | ||
+ | border-width: 0 0 1px | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-static-top { | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-fixed-bottom, | ||
+ | .navbar-fixed-top { | ||
+ | position: fixed; | ||
+ | right: 0; | ||
+ | left: 0; | ||
+ | z-index: 1030 | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-fixed-bottom, | ||
+ | .navbar-fixed-top { | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-fixed-top { | ||
+ | top: 0; | ||
+ | border-width: 0 0 1px | ||
+ | } | ||
+ | |||
+ | .navbar-fixed-bottom { | ||
+ | bottom: 0; | ||
+ | margin-bottom: 0; | ||
+ | border-width: 1px 0 0 | ||
+ | } | ||
+ | |||
+ | .navbar-brand { | ||
+ | float: left; | ||
+ | height: 50px; | ||
+ | padding: 15px 15px; | ||
+ | font-size: 18px; | ||
+ | line-height: 20px | ||
+ | } | ||
+ | |||
+ | .navbar-brand:focus, | ||
+ | .navbar-brand:hover { | ||
+ | text-decoration: none | ||
+ | } | ||
+ | |||
+ | .navbar-brand>img { | ||
+ | display: block | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar>.container .navbar-brand, | ||
+ | .navbar>.container-fluid .navbar-brand { | ||
+ | margin-left: -15px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-toggle { | ||
+ | position: relative; | ||
+ | float: right; | ||
+ | padding: 9px 10px; | ||
+ | margin-top: 8px; | ||
+ | margin-right: 15px; | ||
+ | margin-bottom: 8px; | ||
+ | background-color: transparent; | ||
+ | background-image: none; | ||
+ | border: 1px solid transparent; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .navbar-toggle:focus { | ||
+ | outline: 0 | ||
+ | } | ||
+ | |||
+ | .navbar-toggle .icon-bar { | ||
+ | display: block; | ||
+ | width: 22px; | ||
+ | height: 2px; | ||
+ | border-radius: 1px | ||
+ | } | ||
+ | |||
+ | .navbar-toggle .icon-bar+.icon-bar { | ||
+ | margin-top: 4px | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-toggle { | ||
+ | display: none | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-nav { | ||
+ | margin: 7.5px -15px | ||
+ | } | ||
+ | |||
+ | .navbar-nav>li>a { | ||
+ | padding-top: 10px; | ||
+ | padding-bottom: 10px; | ||
+ | line-height: 20px | ||
+ | } | ||
+ | |||
+ | @media (max-width:767px) { | ||
+ | .navbar-nav .open .dropdown-menu { | ||
+ | position: static; | ||
+ | float: none; | ||
+ | width: auto; | ||
+ | margin-top: 0; | ||
+ | background-color: transparent; | ||
+ | border: 0; | ||
+ | -webkit-box-shadow: none; | ||
+ | box-shadow: none | ||
+ | } | ||
+ | .navbar-nav .open .dropdown-menu .dropdown-header, | ||
+ | .navbar-nav .open .dropdown-menu>li>a { | ||
+ | padding: 5px 15px 5px 25px | ||
+ | } | ||
+ | .navbar-nav .open .dropdown-menu>li>a { | ||
+ | line-height: 20px | ||
+ | } | ||
+ | .navbar-nav .open .dropdown-menu>li>a:focus, | ||
+ | .navbar-nav .open .dropdown-menu>li>a:hover { | ||
+ | background-image: none | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-nav { | ||
+ | float: left; | ||
+ | margin: 0 | ||
+ | } | ||
+ | .navbar-nav>li { | ||
+ | float: left | ||
+ | } | ||
+ | .navbar-nav>li>a { | ||
+ | padding-top: 15px; | ||
+ | padding-bottom: 15px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-form { | ||
+ | padding: 10px 15px; | ||
+ | margin-top: 8px; | ||
+ | margin-right: -15px; | ||
+ | margin-bottom: 8px; | ||
+ | margin-left: -15px; | ||
+ | border-top: 1px solid transparent; | ||
+ | border-bottom: 1px solid transparent; | ||
+ | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); | ||
+ | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1) | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-form .form-group { | ||
+ | display: inline-block; | ||
+ | margin-bottom: 0; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .navbar-form .form-control { | ||
+ | display: inline-block; | ||
+ | width: auto; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .navbar-form .form-control-static { | ||
+ | display: inline-block | ||
+ | } | ||
+ | .navbar-form .input-group { | ||
+ | display: inline-table; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .navbar-form .input-group .form-control, | ||
+ | .navbar-form .input-group .input-group-addon, | ||
+ | .navbar-form .input-group .input-group-btn { | ||
+ | width: auto | ||
+ | } | ||
+ | .navbar-form .input-group>.form-control { | ||
+ | width: 100% | ||
+ | } | ||
+ | .navbar-form .control-label { | ||
+ | margin-bottom: 0; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .navbar-form .checkbox, | ||
+ | .navbar-form .radio { | ||
+ | display: inline-block; | ||
+ | margin-top: 0; | ||
+ | margin-bottom: 0; | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | .navbar-form .checkbox label, | ||
+ | .navbar-form .radio label { | ||
+ | padding-left: 0 | ||
+ | } | ||
+ | .navbar-form .checkbox input[type=checkbox], | ||
+ | .navbar-form .radio input[type=radio] { | ||
+ | position: relative; | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | .navbar-form .has-feedback .form-control-feedback { | ||
+ | top: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (max-width:767px) { | ||
+ | .navbar-form .form-group { | ||
+ | margin-bottom: 5px | ||
+ | } | ||
+ | .navbar-form .form-group:last-child { | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-form { | ||
+ | width: auto; | ||
+ | padding-top: 0; | ||
+ | padding-bottom: 0; | ||
+ | margin-right: 0; | ||
+ | margin-left: 0; | ||
+ | border: 0; | ||
+ | -webkit-box-shadow: none; | ||
+ | box-shadow: none | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-nav>li>.dropdown-menu { | ||
+ | margin-top: 0; | ||
+ | border-top-left-radius: 0; | ||
+ | border-top-right-radius: 0 | ||
+ | } | ||
+ | |||
+ | .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu { | ||
+ | margin-bottom: 0; | ||
+ | border-top-left-radius: 4px; | ||
+ | border-top-right-radius: 4px; | ||
+ | border-bottom-right-radius: 0; | ||
+ | border-bottom-left-radius: 0 | ||
+ | } | ||
+ | |||
+ | .navbar-btn { | ||
+ | margin-top: 8px; | ||
+ | margin-bottom: 8px | ||
+ | } | ||
+ | |||
+ | .navbar-btn.btn-sm { | ||
+ | margin-top: 10px; | ||
+ | margin-bottom: 10px | ||
+ | } | ||
+ | |||
+ | .navbar-btn.btn-xs { | ||
+ | margin-top: 14px; | ||
+ | margin-bottom: 14px | ||
+ | } | ||
+ | |||
+ | .navbar-text { | ||
+ | margin-top: 15px; | ||
+ | margin-bottom: 15px | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-text { | ||
+ | float: left; | ||
+ | margin-right: 15px; | ||
+ | margin-left: 15px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .navbar-left { | ||
+ | float: left!important | ||
+ | } | ||
+ | .navbar-right { | ||
+ | float: right!important; | ||
+ | margin-right: -15px | ||
+ | } | ||
+ | .navbar-right~.navbar-right { | ||
+ | margin-right: 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-default { | ||
+ | background-color: #f8f8f8; | ||
+ | border-color: #e7e7e7 | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-brand { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-brand:focus, | ||
+ | .navbar-default .navbar-brand:hover { | ||
+ | color: #5e5e5e; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-text { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-nav>li>a { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-nav>li>a:focus, | ||
+ | .navbar-default .navbar-nav>li>a:hover { | ||
+ | color: #333; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-nav>.active>a, | ||
+ | .navbar-default .navbar-nav>.active>a:focus, | ||
+ | .navbar-default .navbar-nav>.active>a:hover { | ||
+ | color: #555; | ||
+ | background-color: #e7e7e7 | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-nav>.disabled>a, | ||
+ | .navbar-default .navbar-nav>.disabled>a:focus, | ||
+ | .navbar-default .navbar-nav>.disabled>a:hover { | ||
+ | color: #ccc; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-toggle { | ||
+ | border-color: #ddd | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-toggle:focus, | ||
+ | .navbar-default .navbar-toggle:hover { | ||
+ | background-color: #ddd | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-toggle .icon-bar { | ||
+ | background-color: #888 | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-collapse, | ||
+ | .navbar-default .navbar-form { | ||
+ | border-color: #e7e7e7 | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-nav>.open>a, | ||
+ | .navbar-default .navbar-nav>.open>a:focus, | ||
+ | .navbar-default .navbar-nav>.open>a:hover { | ||
+ | color: #555; | ||
+ | background-color: #e7e7e7 | ||
+ | } | ||
+ | |||
+ | @media (max-width:767px) { | ||
+ | .navbar-default .navbar-nav .open .dropdown-menu>li>a { | ||
+ | color: #777 | ||
+ | } | ||
+ | .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus, | ||
+ | .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover { | ||
+ | color: #333; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | .navbar-default .navbar-nav .open .dropdown-menu>.active>a, | ||
+ | .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus, | ||
+ | .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover { | ||
+ | color: #555; | ||
+ | background-color: #e7e7e7 | ||
+ | } | ||
+ | .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a, | ||
+ | .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus, | ||
+ | .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover { | ||
+ | color: #ccc; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-link { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .navbar-default .navbar-link:hover { | ||
+ | color: #333 | ||
+ | } | ||
+ | |||
+ | .navbar-default .btn-link { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .navbar-default .btn-link:focus, | ||
+ | .navbar-default .btn-link:hover { | ||
+ | color: #333 | ||
+ | } | ||
+ | |||
+ | .navbar-default .btn-link[disabled]:focus, | ||
+ | .navbar-default .btn-link[disabled]:hover, | ||
+ | fieldset[disabled] .navbar-default .btn-link:focus, | ||
+ | fieldset[disabled] .navbar-default .btn-link:hover { | ||
+ | color: #ccc | ||
+ | } | ||
+ | |||
+ | .navbar-inverse { | ||
+ | background-color: #222; | ||
+ | border-color: #080808 | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-brand { | ||
+ | color: #9d9d9d | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-brand:focus, | ||
+ | .navbar-inverse .navbar-brand:hover { | ||
+ | color: #fff; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-text { | ||
+ | color: #9d9d9d | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-nav>li>a { | ||
+ | color: #9d9d9d | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-nav>li>a:focus, | ||
+ | .navbar-inverse .navbar-nav>li>a:hover { | ||
+ | color: #fff; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-nav>.active>a, | ||
+ | .navbar-inverse .navbar-nav>.active>a:focus, | ||
+ | .navbar-inverse .navbar-nav>.active>a:hover { | ||
+ | color: #fff; | ||
+ | background-color: #080808 | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-nav>.disabled>a, | ||
+ | .navbar-inverse .navbar-nav>.disabled>a:focus, | ||
+ | .navbar-inverse .navbar-nav>.disabled>a:hover { | ||
+ | color: #444; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-toggle { | ||
+ | border-color: #333 | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-toggle:focus, | ||
+ | .navbar-inverse .navbar-toggle:hover { | ||
+ | background-color: #333 | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-toggle .icon-bar { | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-collapse, | ||
+ | .navbar-inverse .navbar-form { | ||
+ | border-color: #101010 | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-nav>.open>a, | ||
+ | .navbar-inverse .navbar-nav>.open>a:focus, | ||
+ | .navbar-inverse .navbar-nav>.open>a:hover { | ||
+ | color: #fff; | ||
+ | background-color: #080808 | ||
+ | } | ||
+ | |||
+ | @media (max-width:767px) { | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header { | ||
+ | border-color: #080808 | ||
+ | } | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu .divider { | ||
+ | background-color: #080808 | ||
+ | } | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>li>a { | ||
+ | color: #9d9d9d | ||
+ | } | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus, | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover { | ||
+ | color: #fff; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a, | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus, | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover { | ||
+ | color: #fff; | ||
+ | background-color: #080808 | ||
+ | } | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a, | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus, | ||
+ | .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover { | ||
+ | color: #444; | ||
+ | background-color: transparent | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-link { | ||
+ | color: #9d9d9d | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .navbar-link:hover { | ||
+ | color: #fff | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .btn-link { | ||
+ | color: #9d9d9d | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .btn-link:focus, | ||
+ | .navbar-inverse .btn-link:hover { | ||
+ | color: #fff | ||
+ | } | ||
+ | |||
+ | .navbar-inverse .btn-link[disabled]:focus, | ||
+ | .navbar-inverse .btn-link[disabled]:hover, | ||
+ | fieldset[disabled] .navbar-inverse .btn-link:focus, | ||
+ | fieldset[disabled] .navbar-inverse .btn-link:hover { | ||
+ | color: #444 | ||
+ | } | ||
+ | |||
+ | .breadcrumb { | ||
+ | padding: 8px 15px; | ||
+ | margin-bottom: 20px; | ||
+ | list-style: none; | ||
+ | background-color: #f5f5f5; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .breadcrumb>li { | ||
+ | display: inline-block | ||
+ | } | ||
+ | |||
+ | .breadcrumb>li+li:before { | ||
+ | padding: 0 5px; | ||
+ | color: #ccc; | ||
+ | content: "/\00a0" | ||
+ | } | ||
+ | |||
+ | .breadcrumb>.active { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .pagination { | ||
+ | display: inline-block; | ||
+ | padding-left: 0; | ||
+ | margin: 20px 0; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .pagination>li { | ||
+ | display: inline | ||
+ | } | ||
+ | |||
+ | .pagination>li>a, | ||
+ | .pagination>li>span { | ||
+ | position: relative; | ||
+ | float: left; | ||
+ | padding: 6px 12px; | ||
+ | margin-left: -1px; | ||
+ | line-height: 1.42857143; | ||
+ | color: #337ab7; | ||
+ | text-decoration: none; | ||
+ | background-color: #fff; | ||
+ | border: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | .pagination>li:first-child>a, | ||
+ | .pagination>li:first-child>span { | ||
+ | margin-left: 0; | ||
+ | border-top-left-radius: 4px; | ||
+ | border-bottom-left-radius: 4px | ||
+ | } | ||
+ | |||
+ | .pagination>li:last-child>a, | ||
+ | .pagination>li:last-child>span { | ||
+ | border-top-right-radius: 4px; | ||
+ | border-bottom-right-radius: 4px | ||
+ | } | ||
+ | |||
+ | .pagination>li>a:focus, | ||
+ | .pagination>li>a:hover, | ||
+ | .pagination>li>span:focus, | ||
+ | .pagination>li>span:hover { | ||
+ | z-index: 2; | ||
+ | color: #23527c; | ||
+ | background-color: #eee; | ||
+ | border-color: #ddd | ||
+ | } | ||
+ | |||
+ | .pagination>.active>a, | ||
+ | .pagination>.active>a:focus, | ||
+ | .pagination>.active>a:hover, | ||
+ | .pagination>.active>span, | ||
+ | .pagination>.active>span:focus, | ||
+ | .pagination>.active>span:hover { | ||
+ | z-index: 3; | ||
+ | color: #fff; | ||
+ | cursor: default; | ||
+ | background-color: #337ab7; | ||
+ | border-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .pagination>.disabled>a, | ||
+ | .pagination>.disabled>a:focus, | ||
+ | .pagination>.disabled>a:hover, | ||
+ | .pagination>.disabled>span, | ||
+ | .pagination>.disabled>span:focus, | ||
+ | .pagination>.disabled>span:hover { | ||
+ | color: #777; | ||
+ | cursor: not-allowed; | ||
+ | background-color: #fff; | ||
+ | border-color: #ddd | ||
+ | } | ||
+ | |||
+ | .pagination-lg>li>a, | ||
+ | .pagination-lg>li>span { | ||
+ | padding: 10px 16px; | ||
+ | font-size: 18px; | ||
+ | line-height: 1.3333333 | ||
+ | } | ||
+ | |||
+ | .pagination-lg>li:first-child>a, | ||
+ | .pagination-lg>li:first-child>span { | ||
+ | border-top-left-radius: 6px; | ||
+ | border-bottom-left-radius: 6px | ||
+ | } | ||
+ | |||
+ | .pagination-lg>li:last-child>a, | ||
+ | .pagination-lg>li:last-child>span { | ||
+ | border-top-right-radius: 6px; | ||
+ | border-bottom-right-radius: 6px | ||
+ | } | ||
+ | |||
+ | .pagination-sm>li>a, | ||
+ | .pagination-sm>li>span { | ||
+ | padding: 5px 10px; | ||
+ | font-size: 12px; | ||
+ | line-height: 1.5 | ||
+ | } | ||
+ | |||
+ | .pagination-sm>li:first-child>a, | ||
+ | .pagination-sm>li:first-child>span { | ||
+ | border-top-left-radius: 3px; | ||
+ | border-bottom-left-radius: 3px | ||
+ | } | ||
+ | |||
+ | .pagination-sm>li:last-child>a, | ||
+ | .pagination-sm>li:last-child>span { | ||
+ | border-top-right-radius: 3px; | ||
+ | border-bottom-right-radius: 3px | ||
+ | } | ||
+ | |||
+ | .pager { | ||
+ | padding-left: 0; | ||
+ | margin: 20px 0; | ||
+ | text-align: center; | ||
+ | list-style: none | ||
+ | } | ||
+ | |||
+ | .pager li { | ||
+ | display: inline | ||
+ | } | ||
+ | |||
+ | .pager li>a, | ||
+ | .pager li>span { | ||
+ | display: inline-block; | ||
+ | padding: 5px 14px; | ||
+ | background-color: #fff; | ||
+ | border: 1px solid #ddd; | ||
+ | border-radius: 15px | ||
+ | } | ||
+ | |||
+ | .pager li>a:focus, | ||
+ | .pager li>a:hover { | ||
+ | text-decoration: none; | ||
+ | background-color: #eee | ||
+ | } | ||
+ | |||
+ | .pager .next>a, | ||
+ | .pager .next>span { | ||
+ | float: right | ||
+ | } | ||
+ | |||
+ | .pager .previous>a, | ||
+ | .pager .previous>span { | ||
+ | float: left | ||
+ | } | ||
+ | |||
+ | .pager .disabled>a, | ||
+ | .pager .disabled>a:focus, | ||
+ | .pager .disabled>a:hover, | ||
+ | .pager .disabled>span { | ||
+ | color: #777; | ||
+ | cursor: not-allowed; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .label { | ||
+ | display: inline; | ||
+ | padding: .2em .6em .3em; | ||
+ | font-size: 75%; | ||
+ | font-weight: 700; | ||
+ | line-height: 1; | ||
+ | color: #fff; | ||
+ | text-align: center; | ||
+ | white-space: nowrap; | ||
+ | vertical-align: baseline; | ||
+ | border-radius: .25em | ||
+ | } | ||
+ | |||
+ | a.label:focus, | ||
+ | a.label:hover { | ||
+ | color: #fff; | ||
+ | text-decoration: none; | ||
+ | cursor: pointer | ||
+ | } | ||
+ | |||
+ | .label:empty { | ||
+ | display: none | ||
+ | } | ||
+ | |||
+ | .btn .label { | ||
+ | position: relative; | ||
+ | top: -1px | ||
+ | } | ||
+ | |||
+ | .label-default { | ||
+ | background-color: #777 | ||
+ | } | ||
+ | |||
+ | .label-default[href]:focus, | ||
+ | .label-default[href]:hover { | ||
+ | background-color: #5e5e5e | ||
+ | } | ||
+ | |||
+ | .label-primary { | ||
+ | background-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .label-primary[href]:focus, | ||
+ | .label-primary[href]:hover { | ||
+ | background-color: #286090 | ||
+ | } | ||
+ | |||
+ | .label-success { | ||
+ | background-color: #5cb85c | ||
+ | } | ||
+ | |||
+ | .label-success[href]:focus, | ||
+ | .label-success[href]:hover { | ||
+ | background-color: #449d44 | ||
+ | } | ||
+ | |||
+ | .label-info { | ||
+ | background-color: #5bc0de | ||
+ | } | ||
+ | |||
+ | .label-info[href]:focus, | ||
+ | .label-info[href]:hover { | ||
+ | background-color: #31b0d5 | ||
+ | } | ||
+ | |||
+ | .label-warning { | ||
+ | background-color: #f0ad4e | ||
+ | } | ||
+ | |||
+ | .label-warning[href]:focus, | ||
+ | .label-warning[href]:hover { | ||
+ | background-color: #ec971f | ||
+ | } | ||
+ | |||
+ | .label-danger { | ||
+ | background-color: #d9534f | ||
+ | } | ||
+ | |||
+ | .label-danger[href]:focus, | ||
+ | .label-danger[href]:hover { | ||
+ | background-color: #c9302c | ||
+ | } | ||
+ | |||
+ | .badge { | ||
+ | display: inline-block; | ||
+ | min-width: 10px; | ||
+ | padding: 3px 7px; | ||
+ | font-size: 12px; | ||
+ | font-weight: 700; | ||
+ | line-height: 1; | ||
+ | color: #fff; | ||
+ | text-align: center; | ||
+ | white-space: nowrap; | ||
+ | vertical-align: middle; | ||
+ | background-color: #777; | ||
+ | border-radius: 10px | ||
+ | } | ||
+ | |||
+ | .badge:empty { | ||
+ | display: none | ||
+ | } | ||
+ | |||
+ | .btn .badge { | ||
+ | position: relative; | ||
+ | top: -1px | ||
+ | } | ||
+ | |||
+ | .btn-group-xs>.btn .badge, | ||
+ | .btn-xs .badge { | ||
+ | top: 0; | ||
+ | padding: 1px 5px | ||
+ | } | ||
+ | |||
+ | a.badge:focus, | ||
+ | a.badge:hover { | ||
+ | color: #fff; | ||
+ | text-decoration: none; | ||
+ | cursor: pointer | ||
+ | } | ||
+ | |||
+ | .list-group-item.active>.badge, | ||
+ | .nav-pills>.active>a>.badge { | ||
+ | color: #337ab7; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .list-group-item>.badge { | ||
+ | float: right | ||
+ | } | ||
+ | |||
+ | .list-group-item>.badge+.badge { | ||
+ | margin-right: 5px | ||
+ | } | ||
+ | |||
+ | .nav-pills>li>a>.badge { | ||
+ | margin-left: 3px | ||
+ | } | ||
+ | |||
+ | .jumbotron { | ||
+ | padding-top: 30px; | ||
+ | padding-bottom: 30px; | ||
+ | margin-bottom: 30px; | ||
+ | color: inherit; | ||
+ | background-color: #eee | ||
+ | } | ||
+ | |||
+ | .jumbotron .h1, | ||
+ | .jumbotron h1 { | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | .jumbotron p { | ||
+ | margin-bottom: 15px; | ||
+ | font-size: 21px; | ||
+ | font-weight: 200 | ||
+ | } | ||
+ | |||
+ | .jumbotron>hr { | ||
+ | border-top-color: #d5d5d5 | ||
+ | } | ||
+ | |||
+ | .container .jumbotron, | ||
+ | .container-fluid .jumbotron { | ||
+ | padding-right: 15px; | ||
+ | padding-left: 15px; | ||
+ | border-radius: 6px | ||
+ | } | ||
+ | |||
+ | .jumbotron .container { | ||
+ | max-width: 100% | ||
+ | } | ||
+ | |||
+ | @media screen and (min-width:768px) { | ||
+ | .jumbotron { | ||
+ | padding-top: 48px; | ||
+ | padding-bottom: 48px | ||
+ | } | ||
+ | .container .jumbotron, | ||
+ | .container-fluid .jumbotron { | ||
+ | padding-right: 60px; | ||
+ | padding-left: 60px | ||
+ | } | ||
+ | .jumbotron .h1, | ||
+ | .jumbotron h1 { | ||
+ | font-size: 63px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .thumbnail { | ||
+ | display: block; | ||
+ | padding: 4px; | ||
+ | margin-bottom: 20px; | ||
+ | line-height: 1.42857143; | ||
+ | background-color: #fff; | ||
+ | border: 1px solid #ddd; | ||
+ | border-radius: 4px; | ||
+ | -webkit-transition: border .2s ease-in-out; | ||
+ | -o-transition: border .2s ease-in-out; | ||
+ | transition: border .2s ease-in-out | ||
+ | } | ||
+ | |||
+ | .thumbnail a>img, | ||
+ | .thumbnail>img { | ||
+ | margin-right: auto; | ||
+ | margin-left: auto | ||
+ | } | ||
+ | |||
+ | a.thumbnail.active, | ||
+ | a.thumbnail:focus, | ||
+ | a.thumbnail:hover { | ||
+ | border-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .thumbnail .caption { | ||
+ | padding: 9px; | ||
+ | color: #333 | ||
+ | } | ||
+ | |||
+ | .alert { | ||
+ | padding: 15px; | ||
+ | margin-bottom: 20px; | ||
+ | border: 1px solid transparent; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .alert h4 { | ||
+ | margin-top: 0; | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | .alert .alert-link { | ||
+ | font-weight: 700 | ||
+ | } | ||
+ | |||
+ | .alert>p, | ||
+ | .alert>ul { | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .alert>p+p { | ||
+ | margin-top: 5px | ||
+ | } | ||
+ | |||
+ | .alert-dismissable, | ||
+ | .alert-dismissible { | ||
+ | padding-right: 35px | ||
+ | } | ||
+ | |||
+ | .alert-dismissable .close, | ||
+ | .alert-dismissible .close { | ||
+ | position: relative; | ||
+ | top: -2px; | ||
+ | right: -21px; | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | .alert-success { | ||
+ | color: #3c763d; | ||
+ | background-color: #dff0d8; | ||
+ | border-color: #d6e9c6 | ||
+ | } | ||
+ | |||
+ | .alert-success hr { | ||
+ | border-top-color: #c9e2b3 | ||
+ | } | ||
+ | |||
+ | .alert-success .alert-link { | ||
+ | color: #2b542c | ||
+ | } | ||
+ | |||
+ | .alert-info { | ||
+ | color: #31708f; | ||
+ | background-color: #d9edf7; | ||
+ | border-color: #bce8f1 | ||
+ | } | ||
+ | |||
+ | .alert-info hr { | ||
+ | border-top-color: #a6e1ec | ||
+ | } | ||
+ | |||
+ | .alert-info .alert-link { | ||
+ | color: #245269 | ||
+ | } | ||
+ | |||
+ | .alert-warning { | ||
+ | color: #8a6d3b; | ||
+ | background-color: #fcf8e3; | ||
+ | border-color: #faebcc | ||
+ | } | ||
+ | |||
+ | .alert-warning hr { | ||
+ | border-top-color: #f7e1b5 | ||
+ | } | ||
+ | |||
+ | .alert-warning .alert-link { | ||
+ | color: #66512c | ||
+ | } | ||
+ | |||
+ | .alert-danger { | ||
+ | color: #a94442; | ||
+ | background-color: #f2dede; | ||
+ | border-color: #ebccd1 | ||
+ | } | ||
+ | |||
+ | .alert-danger hr { | ||
+ | border-top-color: #e4b9c0 | ||
+ | } | ||
+ | |||
+ | .alert-danger .alert-link { | ||
+ | color: #843534 | ||
+ | } | ||
+ | |||
+ | @-webkit-keyframes progress-bar-stripes { | ||
+ | from { | ||
+ | background-position: 40px 0 | ||
+ | } | ||
+ | to { | ||
+ | background-position: 0 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @-o-keyframes progress-bar-stripes { | ||
+ | from { | ||
+ | background-position: 40px 0 | ||
+ | } | ||
+ | to { | ||
+ | background-position: 0 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @keyframes progress-bar-stripes { | ||
+ | from { | ||
+ | background-position: 40px 0 | ||
+ | } | ||
+ | to { | ||
+ | background-position: 0 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .progress { | ||
+ | height: 20px; | ||
+ | margin-bottom: 20px; | ||
+ | overflow: hidden; | ||
+ | background-color: #f5f5f5; | ||
+ | border-radius: 4px; | ||
+ | -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); | ||
+ | box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1) | ||
+ | } | ||
+ | |||
+ | .progress-bar { | ||
+ | float: left; | ||
+ | width: 0; | ||
+ | height: 100%; | ||
+ | font-size: 12px; | ||
+ | line-height: 20px; | ||
+ | color: #fff; | ||
+ | text-align: center; | ||
+ | background-color: #337ab7; | ||
+ | -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); | ||
+ | box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); | ||
+ | -webkit-transition: width .6s ease; | ||
+ | -o-transition: width .6s ease; | ||
+ | transition: width .6s ease | ||
+ | } | ||
+ | |||
+ | .progress-bar-striped, | ||
+ | .progress-striped .progress-bar { | ||
+ | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | -webkit-background-size: 40px 40px; | ||
+ | background-size: 40px 40px | ||
+ | } | ||
+ | |||
+ | .progress-bar.active, | ||
+ | .progress.active .progress-bar { | ||
+ | -webkit-animation: progress-bar-stripes 2s linear infinite; | ||
+ | -o-animation: progress-bar-stripes 2s linear infinite; | ||
+ | animation: progress-bar-stripes 2s linear infinite | ||
+ | } | ||
+ | |||
+ | .progress-bar-success { | ||
+ | background-color: #5cb85c | ||
+ | } | ||
+ | |||
+ | .progress-striped .progress-bar-success { | ||
+ | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) | ||
+ | } | ||
+ | |||
+ | .progress-bar-info { | ||
+ | background-color: #5bc0de | ||
+ | } | ||
+ | |||
+ | .progress-striped .progress-bar-info { | ||
+ | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) | ||
+ | } | ||
+ | |||
+ | .progress-bar-warning { | ||
+ | background-color: #f0ad4e | ||
+ | } | ||
+ | |||
+ | .progress-striped .progress-bar-warning { | ||
+ | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) | ||
+ | } | ||
+ | |||
+ | .progress-bar-danger { | ||
+ | background-color: #d9534f | ||
+ | } | ||
+ | |||
+ | .progress-striped .progress-bar-danger { | ||
+ | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); | ||
+ | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) | ||
+ | } | ||
+ | |||
+ | .media { | ||
+ | margin-top: 15px | ||
+ | } | ||
+ | |||
+ | .media:first-child { | ||
+ | margin-top: 0 | ||
+ | } | ||
+ | |||
+ | .media, | ||
+ | .media-body { | ||
+ | overflow: hidden; | ||
+ | zoom: 1 | ||
+ | } | ||
+ | |||
+ | .media-body { | ||
+ | width: 10000px | ||
+ | } | ||
+ | |||
+ | .media-object { | ||
+ | display: block | ||
+ | } | ||
+ | |||
+ | .media-object.img-thumbnail { | ||
+ | max-width: none | ||
+ | } | ||
+ | |||
+ | .media-right, | ||
+ | .media>.pull-right { | ||
+ | padding-left: 10px | ||
+ | } | ||
+ | |||
+ | .media-left, | ||
+ | .media>.pull-left { | ||
+ | padding-right: 10px | ||
+ | } | ||
+ | |||
+ | .media-body, | ||
+ | .media-left, | ||
+ | .media-right { | ||
+ | display: table-cell; | ||
+ | vertical-align: top | ||
+ | } | ||
+ | |||
+ | .media-middle { | ||
+ | vertical-align: middle | ||
+ | } | ||
+ | |||
+ | .media-bottom { | ||
+ | vertical-align: bottom | ||
+ | } | ||
+ | |||
+ | .media-heading { | ||
+ | margin-top: 0; | ||
+ | margin-bottom: 5px | ||
+ | } | ||
+ | |||
+ | .media-list { | ||
+ | padding-left: 0; | ||
+ | list-style: none | ||
+ | } | ||
+ | |||
+ | .list-group { | ||
+ | padding-left: 0; | ||
+ | margin-bottom: 20px | ||
+ | } | ||
+ | |||
+ | .list-group-item { | ||
+ | position: relative; | ||
+ | display: block; | ||
+ | padding: 10px 15px; | ||
+ | margin-bottom: -1px; | ||
+ | background-color: #fff; | ||
+ | border: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | .list-group-item:first-child { | ||
+ | border-top-left-radius: 4px; | ||
+ | border-top-right-radius: 4px | ||
+ | } | ||
+ | |||
+ | .list-group-item:last-child { | ||
+ | margin-bottom: 0; | ||
+ | border-bottom-right-radius: 4px; | ||
+ | border-bottom-left-radius: 4px | ||
+ | } | ||
+ | |||
+ | a.list-group-item, | ||
+ | button.list-group-item { | ||
+ | color: #555 | ||
+ | } | ||
+ | |||
+ | a.list-group-item .list-group-item-heading, | ||
+ | button.list-group-item .list-group-item-heading { | ||
+ | color: #333 | ||
+ | } | ||
+ | |||
+ | a.list-group-item:focus, | ||
+ | a.list-group-item:hover, | ||
+ | button.list-group-item:focus, | ||
+ | button.list-group-item:hover { | ||
+ | color: #555; | ||
+ | text-decoration: none; | ||
+ | background-color: #f5f5f5 | ||
+ | } | ||
+ | |||
+ | button.list-group-item { | ||
+ | width: 100%; | ||
+ | text-align: left | ||
+ | } | ||
+ | |||
+ | .list-group-item.disabled, | ||
+ | .list-group-item.disabled:focus, | ||
+ | .list-group-item.disabled:hover { | ||
+ | color: #777; | ||
+ | cursor: not-allowed; | ||
+ | background-color: #eee | ||
+ | } | ||
+ | |||
+ | .list-group-item.disabled .list-group-item-heading, | ||
+ | .list-group-item.disabled:focus .list-group-item-heading, | ||
+ | .list-group-item.disabled:hover .list-group-item-heading { | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | .list-group-item.disabled .list-group-item-text, | ||
+ | .list-group-item.disabled:focus .list-group-item-text, | ||
+ | .list-group-item.disabled:hover .list-group-item-text { | ||
+ | color: #777 | ||
+ | } | ||
+ | |||
+ | .list-group-item.active, | ||
+ | .list-group-item.active:focus, | ||
+ | .list-group-item.active:hover { | ||
+ | z-index: 2; | ||
+ | color: #fff; | ||
+ | background-color: #337ab7; | ||
+ | border-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .list-group-item.active .list-group-item-heading, | ||
+ | .list-group-item.active .list-group-item-heading>.small, | ||
+ | .list-group-item.active .list-group-item-heading>small, | ||
+ | .list-group-item.active:focus .list-group-item-heading, | ||
+ | .list-group-item.active:focus .list-group-item-heading>.small, | ||
+ | .list-group-item.active:focus .list-group-item-heading>small, | ||
+ | .list-group-item.active:hover .list-group-item-heading, | ||
+ | .list-group-item.active:hover .list-group-item-heading>.small, | ||
+ | .list-group-item.active:hover .list-group-item-heading>small { | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | .list-group-item.active .list-group-item-text, | ||
+ | .list-group-item.active:focus .list-group-item-text, | ||
+ | .list-group-item.active:hover .list-group-item-text { | ||
+ | color: #c7ddef | ||
+ | } | ||
+ | |||
+ | .list-group-item-success { | ||
+ | color: #3c763d; | ||
+ | background-color: #dff0d8 | ||
+ | } | ||
+ | |||
+ | a.list-group-item-success, | ||
+ | button.list-group-item-success { | ||
+ | color: #3c763d | ||
+ | } | ||
+ | |||
+ | a.list-group-item-success .list-group-item-heading, | ||
+ | button.list-group-item-success .list-group-item-heading { | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | a.list-group-item-success:focus, | ||
+ | a.list-group-item-success:hover, | ||
+ | button.list-group-item-success:focus, | ||
+ | button.list-group-item-success:hover { | ||
+ | color: #3c763d; | ||
+ | background-color: #d0e9c6 | ||
+ | } | ||
+ | |||
+ | a.list-group-item-success.active, | ||
+ | a.list-group-item-success.active:focus, | ||
+ | a.list-group-item-success.active:hover, | ||
+ | button.list-group-item-success.active, | ||
+ | button.list-group-item-success.active:focus, | ||
+ | button.list-group-item-success.active:hover { | ||
+ | color: #fff; | ||
+ | background-color: #3c763d; | ||
+ | border-color: #3c763d | ||
+ | } | ||
+ | |||
+ | .list-group-item-info { | ||
+ | color: #31708f; | ||
+ | background-color: #d9edf7 | ||
+ | } | ||
+ | |||
+ | a.list-group-item-info, | ||
+ | button.list-group-item-info { | ||
+ | color: #31708f | ||
+ | } | ||
+ | |||
+ | a.list-group-item-info .list-group-item-heading, | ||
+ | button.list-group-item-info .list-group-item-heading { | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | a.list-group-item-info:focus, | ||
+ | a.list-group-item-info:hover, | ||
+ | button.list-group-item-info:focus, | ||
+ | button.list-group-item-info:hover { | ||
+ | color: #31708f; | ||
+ | background-color: #c4e3f3 | ||
+ | } | ||
+ | |||
+ | a.list-group-item-info.active, | ||
+ | a.list-group-item-info.active:focus, | ||
+ | a.list-group-item-info.active:hover, | ||
+ | button.list-group-item-info.active, | ||
+ | button.list-group-item-info.active:focus, | ||
+ | button.list-group-item-info.active:hover { | ||
+ | color: #fff; | ||
+ | background-color: #31708f; | ||
+ | border-color: #31708f | ||
+ | } | ||
+ | |||
+ | .list-group-item-warning { | ||
+ | color: #8a6d3b; | ||
+ | background-color: #fcf8e3 | ||
+ | } | ||
+ | |||
+ | a.list-group-item-warning, | ||
+ | button.list-group-item-warning { | ||
+ | color: #8a6d3b | ||
+ | } | ||
+ | |||
+ | a.list-group-item-warning .list-group-item-heading, | ||
+ | button.list-group-item-warning .list-group-item-heading { | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | a.list-group-item-warning:focus, | ||
+ | a.list-group-item-warning:hover, | ||
+ | button.list-group-item-warning:focus, | ||
+ | button.list-group-item-warning:hover { | ||
+ | color: #8a6d3b; | ||
+ | background-color: #faf2cc | ||
+ | } | ||
+ | |||
+ | a.list-group-item-warning.active, | ||
+ | a.list-group-item-warning.active:focus, | ||
+ | a.list-group-item-warning.active:hover, | ||
+ | button.list-group-item-warning.active, | ||
+ | button.list-group-item-warning.active:focus, | ||
+ | button.list-group-item-warning.active:hover { | ||
+ | color: #fff; | ||
+ | background-color: #8a6d3b; | ||
+ | border-color: #8a6d3b | ||
+ | } | ||
+ | |||
+ | .list-group-item-danger { | ||
+ | color: #a94442; | ||
+ | background-color: #f2dede | ||
+ | } | ||
+ | |||
+ | a.list-group-item-danger, | ||
+ | button.list-group-item-danger { | ||
+ | color: #a94442 | ||
+ | } | ||
+ | |||
+ | a.list-group-item-danger .list-group-item-heading, | ||
+ | button.list-group-item-danger .list-group-item-heading { | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | a.list-group-item-danger:focus, | ||
+ | a.list-group-item-danger:hover, | ||
+ | button.list-group-item-danger:focus, | ||
+ | button.list-group-item-danger:hover { | ||
+ | color: #a94442; | ||
+ | background-color: #ebcccc | ||
+ | } | ||
+ | |||
+ | a.list-group-item-danger.active, | ||
+ | a.list-group-item-danger.active:focus, | ||
+ | a.list-group-item-danger.active:hover, | ||
+ | button.list-group-item-danger.active, | ||
+ | button.list-group-item-danger.active:focus, | ||
+ | button.list-group-item-danger.active:hover { | ||
+ | color: #fff; | ||
+ | background-color: #a94442; | ||
+ | border-color: #a94442 | ||
+ | } | ||
+ | |||
+ | .list-group-item-heading { | ||
+ | margin-top: 0; | ||
+ | margin-bottom: 5px | ||
+ | } | ||
+ | |||
+ | .list-group-item-text { | ||
+ | margin-bottom: 0; | ||
+ | line-height: 1.3 | ||
+ | } | ||
+ | |||
+ | .panel { | ||
+ | margin-bottom: 20px; | ||
+ | background-color: #fff; | ||
+ | border: 1px solid transparent; | ||
+ | border-radius: 4px; | ||
+ | -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); | ||
+ | box-shadow: 0 1px 1px rgba(0, 0, 0, .05) | ||
+ | } | ||
+ | |||
+ | .panel-body { | ||
+ | padding: 15px | ||
+ | } | ||
+ | |||
+ | .panel-heading { | ||
+ | padding: 10px 15px; | ||
+ | border-bottom: 1px solid transparent; | ||
+ | border-top-left-radius: 3px; | ||
+ | border-top-right-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel-heading>.dropdown .dropdown-toggle { | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | .panel-title { | ||
+ | margin-top: 0; | ||
+ | margin-bottom: 0; | ||
+ | font-size: 16px; | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | .panel-title>.small, | ||
+ | .panel-title>.small>a, | ||
+ | .panel-title>a, | ||
+ | .panel-title>small, | ||
+ | .panel-title>small>a { | ||
+ | color: inherit | ||
+ | } | ||
+ | |||
+ | .panel-footer { | ||
+ | padding: 10px 15px; | ||
+ | background-color: #f5f5f5; | ||
+ | border-top: 1px solid #ddd; | ||
+ | border-bottom-right-radius: 3px; | ||
+ | border-bottom-left-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.list-group, | ||
+ | .panel>.panel-collapse>.list-group { | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.list-group .list-group-item, | ||
+ | .panel>.panel-collapse>.list-group .list-group-item { | ||
+ | border-width: 1px 0; | ||
+ | border-radius: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.list-group:first-child .list-group-item:first-child, | ||
+ | .panel>.panel-collapse>.list-group:first-child .list-group-item:first-child { | ||
+ | border-top: 0; | ||
+ | border-top-left-radius: 3px; | ||
+ | border-top-right-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.list-group:last-child .list-group-item:last-child, | ||
+ | .panel>.panel-collapse>.list-group:last-child .list-group-item:last-child { | ||
+ | border-bottom: 0; | ||
+ | border-bottom-right-radius: 3px; | ||
+ | border-bottom-left-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child { | ||
+ | border-top-left-radius: 0; | ||
+ | border-top-right-radius: 0 | ||
+ | } | ||
+ | |||
+ | .panel-heading+.list-group .list-group-item:first-child { | ||
+ | border-top-width: 0 | ||
+ | } | ||
+ | |||
+ | .list-group+.panel-footer { | ||
+ | border-top-width: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.panel-collapse>.table, | ||
+ | .panel>.table, | ||
+ | .panel>.table-responsive>.table { | ||
+ | margin-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.panel-collapse>.table caption, | ||
+ | .panel>.table caption, | ||
+ | .panel>.table-responsive>.table caption { | ||
+ | padding-right: 15px; | ||
+ | padding-left: 15px | ||
+ | } | ||
+ | |||
+ | .panel>.table-responsive:first-child>.table:first-child, | ||
+ | .panel>.table:first-child { | ||
+ | border-top-left-radius: 3px; | ||
+ | border-top-right-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child, | ||
+ | .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child, | ||
+ | .panel>.table:first-child>tbody:first-child>tr:first-child, | ||
+ | .panel>.table:first-child>thead:first-child>tr:first-child { | ||
+ | border-top-left-radius: 3px; | ||
+ | border-top-right-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child, | ||
+ | .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child, | ||
+ | .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child, | ||
+ | .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child, | ||
+ | .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child, | ||
+ | .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child, | ||
+ | .panel>.table:first-child>thead:first-child>tr:first-child td:first-child, | ||
+ | .panel>.table:first-child>thead:first-child>tr:first-child th:first-child { | ||
+ | border-top-left-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child, | ||
+ | .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child, | ||
+ | .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child, | ||
+ | .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child, | ||
+ | .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child, | ||
+ | .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child, | ||
+ | .panel>.table:first-child>thead:first-child>tr:first-child td:last-child, | ||
+ | .panel>.table:first-child>thead:first-child>tr:first-child th:last-child { | ||
+ | border-top-right-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.table-responsive:last-child>.table:last-child, | ||
+ | .panel>.table:last-child { | ||
+ | border-bottom-right-radius: 3px; | ||
+ | border-bottom-left-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child, | ||
+ | .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child, | ||
+ | .panel>.table:last-child>tbody:last-child>tr:last-child, | ||
+ | .panel>.table:last-child>tfoot:last-child>tr:last-child { | ||
+ | border-bottom-right-radius: 3px; | ||
+ | border-bottom-left-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child, | ||
+ | .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child, | ||
+ | .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child, | ||
+ | .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child, | ||
+ | .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child, | ||
+ | .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child, | ||
+ | .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child, | ||
+ | .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child { | ||
+ | border-bottom-left-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child, | ||
+ | .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child, | ||
+ | .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child, | ||
+ | .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child, | ||
+ | .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child, | ||
+ | .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child, | ||
+ | .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child, | ||
+ | .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child { | ||
+ | border-bottom-right-radius: 3px | ||
+ | } | ||
+ | |||
+ | .panel>.panel-body+.table, | ||
+ | .panel>.panel-body+.table-responsive, | ||
+ | .panel>.table+.panel-body, | ||
+ | .panel>.table-responsive+.panel-body { | ||
+ | border-top: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | .panel>.table>tbody:first-child>tr:first-child td, | ||
+ | .panel>.table>tbody:first-child>tr:first-child th { | ||
+ | border-top: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.table-bordered, | ||
+ | .panel>.table-responsive>.table-bordered { | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.table-bordered>tbody>tr>td:first-child, | ||
+ | .panel>.table-bordered>tbody>tr>th:first-child, | ||
+ | .panel>.table-bordered>tfoot>tr>td:first-child, | ||
+ | .panel>.table-bordered>tfoot>tr>th:first-child, | ||
+ | .panel>.table-bordered>thead>tr>td:first-child, | ||
+ | .panel>.table-bordered>thead>tr>th:first-child, | ||
+ | .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child, | ||
+ | .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child, | ||
+ | .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child, | ||
+ | .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child, | ||
+ | .panel>.table-responsive>.table-bordered>thead>tr>td:first-child, | ||
+ | .panel>.table-responsive>.table-bordered>thead>tr>th:first-child { | ||
+ | border-left: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.table-bordered>tbody>tr>td:last-child, | ||
+ | .panel>.table-bordered>tbody>tr>th:last-child, | ||
+ | .panel>.table-bordered>tfoot>tr>td:last-child, | ||
+ | .panel>.table-bordered>tfoot>tr>th:last-child, | ||
+ | .panel>.table-bordered>thead>tr>td:last-child, | ||
+ | .panel>.table-bordered>thead>tr>th:last-child, | ||
+ | .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child, | ||
+ | .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child, | ||
+ | .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child, | ||
+ | .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child, | ||
+ | .panel>.table-responsive>.table-bordered>thead>tr>td:last-child, | ||
+ | .panel>.table-responsive>.table-bordered>thead>tr>th:last-child { | ||
+ | border-right: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.table-bordered>tbody>tr:first-child>td, | ||
+ | .panel>.table-bordered>tbody>tr:first-child>th, | ||
+ | .panel>.table-bordered>thead>tr:first-child>td, | ||
+ | .panel>.table-bordered>thead>tr:first-child>th, | ||
+ | .panel>.table-responsive>.table-bordered>tbody>tr:first-child>td, | ||
+ | .panel>.table-responsive>.table-bordered>tbody>tr:first-child>th, | ||
+ | .panel>.table-responsive>.table-bordered>thead>tr:first-child>td, | ||
+ | .panel>.table-responsive>.table-bordered>thead>tr:first-child>th { | ||
+ | border-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.table-bordered>tbody>tr:last-child>td, | ||
+ | .panel>.table-bordered>tbody>tr:last-child>th, | ||
+ | .panel>.table-bordered>tfoot>tr:last-child>td, | ||
+ | .panel>.table-bordered>tfoot>tr:last-child>th, | ||
+ | .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td, | ||
+ | .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th, | ||
+ | .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td, | ||
+ | .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th { | ||
+ | border-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .panel>.table-responsive { | ||
+ | margin-bottom: 0; | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | .panel-group { | ||
+ | margin-bottom: 20px | ||
+ | } | ||
+ | |||
+ | .panel-group .panel { | ||
+ | margin-bottom: 0; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .panel-group .panel+.panel { | ||
+ | margin-top: 5px | ||
+ | } | ||
+ | |||
+ | .panel-group .panel-heading { | ||
+ | border-bottom: 0 | ||
+ | } | ||
+ | |||
+ | .panel-group .panel-heading+.panel-collapse>.list-group, | ||
+ | .panel-group .panel-heading+.panel-collapse>.panel-body { | ||
+ | border-top: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | .panel-group .panel-footer { | ||
+ | border-top: 0 | ||
+ | } | ||
+ | |||
+ | .panel-group .panel-footer+.panel-collapse .panel-body { | ||
+ | border-bottom: 1px solid #ddd | ||
+ | } | ||
+ | |||
+ | .panel-default { | ||
+ | border-color: #ddd | ||
+ | } | ||
+ | |||
+ | .panel-default>.panel-heading { | ||
+ | color: #333; | ||
+ | background-color: #f5f5f5; | ||
+ | border-color: #ddd | ||
+ | } | ||
+ | |||
+ | .panel-default>.panel-heading+.panel-collapse>.panel-body { | ||
+ | border-top-color: #ddd | ||
+ | } | ||
+ | |||
+ | .panel-default>.panel-heading .badge { | ||
+ | color: #f5f5f5; | ||
+ | background-color: #333 | ||
+ | } | ||
+ | |||
+ | .panel-default>.panel-footer+.panel-collapse>.panel-body { | ||
+ | border-bottom-color: #ddd | ||
+ | } | ||
+ | |||
+ | .panel-primary { | ||
+ | border-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .panel-primary>.panel-heading { | ||
+ | color: #fff; | ||
+ | background-color: #337ab7; | ||
+ | border-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .panel-primary>.panel-heading+.panel-collapse>.panel-body { | ||
+ | border-top-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .panel-primary>.panel-heading .badge { | ||
+ | color: #337ab7; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .panel-primary>.panel-footer+.panel-collapse>.panel-body { | ||
+ | border-bottom-color: #337ab7 | ||
+ | } | ||
+ | |||
+ | .panel-success { | ||
+ | border-color: #d6e9c6 | ||
+ | } | ||
+ | |||
+ | .panel-success>.panel-heading { | ||
+ | color: #3c763d; | ||
+ | background-color: #dff0d8; | ||
+ | border-color: #d6e9c6 | ||
+ | } | ||
+ | |||
+ | .panel-success>.panel-heading+.panel-collapse>.panel-body { | ||
+ | border-top-color: #d6e9c6 | ||
+ | } | ||
+ | |||
+ | .panel-success>.panel-heading .badge { | ||
+ | color: #dff0d8; | ||
+ | background-color: #3c763d | ||
+ | } | ||
+ | |||
+ | .panel-success>.panel-footer+.panel-collapse>.panel-body { | ||
+ | border-bottom-color: #d6e9c6 | ||
+ | } | ||
+ | |||
+ | .panel-info { | ||
+ | border-color: #bce8f1 | ||
+ | } | ||
+ | |||
+ | .panel-info>.panel-heading { | ||
+ | color: #31708f; | ||
+ | background-color: #d9edf7; | ||
+ | border-color: #bce8f1 | ||
+ | } | ||
+ | |||
+ | .panel-info>.panel-heading+.panel-collapse>.panel-body { | ||
+ | border-top-color: #bce8f1 | ||
+ | } | ||
+ | |||
+ | .panel-info>.panel-heading .badge { | ||
+ | color: #d9edf7; | ||
+ | background-color: #31708f | ||
+ | } | ||
+ | |||
+ | .panel-info>.panel-footer+.panel-collapse>.panel-body { | ||
+ | border-bottom-color: #bce8f1 | ||
+ | } | ||
+ | |||
+ | .panel-warning { | ||
+ | border-color: #faebcc | ||
+ | } | ||
+ | |||
+ | .panel-warning>.panel-heading { | ||
+ | color: #8a6d3b; | ||
+ | background-color: #fcf8e3; | ||
+ | border-color: #faebcc | ||
+ | } | ||
+ | |||
+ | .panel-warning>.panel-heading+.panel-collapse>.panel-body { | ||
+ | border-top-color: #faebcc | ||
+ | } | ||
+ | |||
+ | .panel-warning>.panel-heading .badge { | ||
+ | color: #fcf8e3; | ||
+ | background-color: #8a6d3b | ||
+ | } | ||
+ | |||
+ | .panel-warning>.panel-footer+.panel-collapse>.panel-body { | ||
+ | border-bottom-color: #faebcc | ||
+ | } | ||
+ | |||
+ | .panel-danger { | ||
+ | border-color: #ebccd1 | ||
+ | } | ||
+ | |||
+ | .panel-danger>.panel-heading { | ||
+ | color: #a94442; | ||
+ | background-color: #f2dede; | ||
+ | border-color: #ebccd1 | ||
+ | } | ||
+ | |||
+ | .panel-danger>.panel-heading+.panel-collapse>.panel-body { | ||
+ | border-top-color: #ebccd1 | ||
+ | } | ||
+ | |||
+ | .panel-danger>.panel-heading .badge { | ||
+ | color: #f2dede; | ||
+ | background-color: #a94442 | ||
+ | } | ||
+ | |||
+ | .panel-danger>.panel-footer+.panel-collapse>.panel-body { | ||
+ | border-bottom-color: #ebccd1 | ||
+ | } | ||
+ | |||
+ | .embed-responsive { | ||
+ | position: relative; | ||
+ | display: block; | ||
+ | height: 0; | ||
+ | padding: 0; | ||
+ | overflow: hidden | ||
+ | } | ||
+ | |||
+ | .embed-responsive .embed-responsive-item, | ||
+ | .embed-responsive embed, | ||
+ | .embed-responsive iframe, | ||
+ | .embed-responsive object, | ||
+ | .embed-responsive video { | ||
+ | position: absolute; | ||
+ | top: 0; | ||
+ | bottom: 0; | ||
+ | left: 0; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | .embed-responsive-16by9 { | ||
+ | padding-bottom: 56.25% | ||
+ | } | ||
+ | |||
+ | .embed-responsive-4by3 { | ||
+ | padding-bottom: 75% | ||
+ | } | ||
+ | |||
+ | .well { | ||
+ | min-height: 20px; | ||
+ | padding: 19px; | ||
+ | margin-bottom: 20px; | ||
+ | background-color: #f5f5f5; | ||
+ | border: 1px solid #e3e3e3; | ||
+ | border-radius: 4px; | ||
+ | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); | ||
+ | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05) | ||
+ | } | ||
+ | |||
+ | .well blockquote { | ||
+ | border-color: #ddd; | ||
+ | border-color: rgba(0, 0, 0, .15) | ||
+ | } | ||
+ | |||
+ | .well-lg { | ||
+ | padding: 24px; | ||
+ | border-radius: 6px | ||
+ | } | ||
+ | |||
+ | .well-sm { | ||
+ | padding: 9px; | ||
+ | border-radius: 3px | ||
+ | } | ||
+ | |||
+ | .close { | ||
+ | float: right; | ||
+ | font-size: 21px; | ||
+ | font-weight: 700; | ||
+ | line-height: 1; | ||
+ | color: #000; | ||
+ | text-shadow: 0 1px 0 #fff; | ||
+ | filter: alpha(opacity=20); | ||
+ | opacity: .2 | ||
+ | } | ||
+ | |||
+ | .close:focus, | ||
+ | .close:hover { | ||
+ | color: #000; | ||
+ | text-decoration: none; | ||
+ | cursor: pointer; | ||
+ | filter: alpha(opacity=50); | ||
+ | opacity: .5 | ||
+ | } | ||
+ | |||
+ | button.close { | ||
+ | -webkit-appearance: none; | ||
+ | padding: 0; | ||
+ | cursor: pointer; | ||
+ | background: 0 0; | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | .modal-open { | ||
+ | overflow: hidden | ||
+ | } | ||
+ | |||
+ | .modal { | ||
+ | position: fixed; | ||
+ | top: 0; | ||
+ | right: 0; | ||
+ | bottom: 0; | ||
+ | left: 0; | ||
+ | z-index: 1050; | ||
+ | display: none; | ||
+ | overflow: hidden; | ||
+ | -webkit-overflow-scrolling: touch; | ||
+ | outline: 0 | ||
+ | } | ||
+ | |||
+ | .modal.fade .modal-dialog { | ||
+ | -webkit-transition: -webkit-transform .3s ease-out; | ||
+ | -o-transition: -o-transform .3s ease-out; | ||
+ | transition: transform .3s ease-out; | ||
+ | -webkit-transform: translate(0, -25%); | ||
+ | -ms-transform: translate(0, -25%); | ||
+ | -o-transform: translate(0, -25%); | ||
+ | transform: translate(0, -25%) | ||
+ | } | ||
+ | |||
+ | .modal.in .modal-dialog { | ||
+ | -webkit-transform: translate(0, 0); | ||
+ | -ms-transform: translate(0, 0); | ||
+ | -o-transform: translate(0, 0); | ||
+ | transform: translate(0, 0) | ||
+ | } | ||
+ | |||
+ | .modal-open .modal { | ||
+ | overflow-x: hidden; | ||
+ | overflow-y: auto | ||
+ | } | ||
+ | |||
+ | .modal-dialog { | ||
+ | position: relative; | ||
+ | width: auto; | ||
+ | margin: 10px | ||
+ | } | ||
+ | |||
+ | .modal-content { | ||
+ | position: relative; | ||
+ | background-color: #fff; | ||
+ | -webkit-background-clip: padding-box; | ||
+ | background-clip: padding-box; | ||
+ | border: 1px solid #999; | ||
+ | border: 1px solid rgba(0, 0, 0, .2); | ||
+ | border-radius: 6px; | ||
+ | outline: 0; | ||
+ | -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); | ||
+ | box-shadow: 0 3px 9px rgba(0, 0, 0, .5) | ||
+ | } | ||
+ | |||
+ | .modal-backdrop { | ||
+ | position: fixed; | ||
+ | top: 0; | ||
+ | right: 0; | ||
+ | bottom: 0; | ||
+ | left: 0; | ||
+ | z-index: 1040; | ||
+ | background-color: #000 | ||
+ | } | ||
+ | |||
+ | .modal-backdrop.fade { | ||
+ | filter: alpha(opacity=0); | ||
+ | opacity: 0 | ||
+ | } | ||
+ | |||
+ | .modal-backdrop.in { | ||
+ | filter: alpha(opacity=50); | ||
+ | opacity: .5 | ||
+ | } | ||
+ | |||
+ | .modal-header { | ||
+ | padding: 15px; | ||
+ | border-bottom: 1px solid #e5e5e5 | ||
+ | } | ||
+ | |||
+ | .modal-header .close { | ||
+ | margin-top: -2px | ||
+ | } | ||
+ | |||
+ | .modal-title { | ||
+ | margin: 0; | ||
+ | line-height: 1.42857143 | ||
+ | } | ||
+ | |||
+ | .modal-body { | ||
+ | position: relative; | ||
+ | padding: 15px | ||
+ | } | ||
+ | |||
+ | .modal-footer { | ||
+ | padding: 15px; | ||
+ | text-align: right; | ||
+ | border-top: 1px solid #e5e5e5 | ||
+ | } | ||
+ | |||
+ | .modal-footer .btn+.btn { | ||
+ | margin-bottom: 0; | ||
+ | margin-left: 5px | ||
+ | } | ||
+ | |||
+ | .modal-footer .btn-group .btn+.btn { | ||
+ | margin-left: -1px | ||
+ | } | ||
+ | |||
+ | .modal-footer .btn-block+.btn-block { | ||
+ | margin-left: 0 | ||
+ | } | ||
+ | |||
+ | .modal-scrollbar-measure { | ||
+ | position: absolute; | ||
+ | top: -9999px; | ||
+ | width: 50px; | ||
+ | height: 50px; | ||
+ | overflow: scroll | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) { | ||
+ | .modal-dialog { | ||
+ | width: 600px; | ||
+ | margin: 30px auto | ||
+ | } | ||
+ | .modal-content { | ||
+ | -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); | ||
+ | box-shadow: 0 5px 15px rgba(0, 0, 0, .5) | ||
+ | } | ||
+ | .modal-sm { | ||
+ | width: 300px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:992px) { | ||
+ | .modal-lg { | ||
+ | width: 900px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .tooltip { | ||
+ | position: absolute; | ||
+ | z-index: 1070; | ||
+ | display: block; | ||
+ | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | ||
+ | font-size: 12px; | ||
+ | font-style: normal; | ||
+ | font-weight: 400; | ||
+ | line-height: 1.42857143; | ||
+ | text-align: left; | ||
+ | text-align: start; | ||
+ | text-decoration: none; | ||
+ | text-shadow: none; | ||
+ | text-transform: none; | ||
+ | letter-spacing: normal; | ||
+ | word-break: normal; | ||
+ | word-spacing: normal; | ||
+ | word-wrap: normal; | ||
+ | white-space: normal; | ||
+ | filter: alpha(opacity=0); | ||
+ | opacity: 0; | ||
+ | line-break: auto | ||
+ | } | ||
+ | |||
+ | .tooltip.in { | ||
+ | filter: alpha(opacity=90); | ||
+ | opacity: .9 | ||
+ | } | ||
+ | |||
+ | .tooltip.top { | ||
+ | padding: 5px 0; | ||
+ | margin-top: -3px | ||
+ | } | ||
+ | |||
+ | .tooltip.right { | ||
+ | padding: 0 5px; | ||
+ | margin-left: 3px | ||
+ | } | ||
+ | |||
+ | .tooltip.bottom { | ||
+ | padding: 5px 0; | ||
+ | margin-top: 3px | ||
+ | } | ||
+ | |||
+ | .tooltip.left { | ||
+ | padding: 0 5px; | ||
+ | margin-left: -3px | ||
+ | } | ||
+ | |||
+ | .tooltip-inner { | ||
+ | max-width: 200px; | ||
+ | padding: 3px 8px; | ||
+ | color: #fff; | ||
+ | text-align: center; | ||
+ | background-color: #000; | ||
+ | border-radius: 4px | ||
+ | } | ||
+ | |||
+ | .tooltip-arrow { | ||
+ | position: absolute; | ||
+ | width: 0; | ||
+ | height: 0; | ||
+ | border-color: transparent; | ||
+ | border-style: solid | ||
+ | } | ||
+ | |||
+ | .tooltip.top .tooltip-arrow { | ||
+ | bottom: 0; | ||
+ | left: 50%; | ||
+ | margin-left: -5px; | ||
+ | border-width: 5px 5px 0; | ||
+ | border-top-color: #000 | ||
+ | } | ||
+ | |||
+ | .tooltip.top-left .tooltip-arrow { | ||
+ | right: 5px; | ||
+ | bottom: 0; | ||
+ | margin-bottom: -5px; | ||
+ | border-width: 5px 5px 0; | ||
+ | border-top-color: #000 | ||
+ | } | ||
+ | |||
+ | .tooltip.top-right .tooltip-arrow { | ||
+ | bottom: 0; | ||
+ | left: 5px; | ||
+ | margin-bottom: -5px; | ||
+ | border-width: 5px 5px 0; | ||
+ | border-top-color: #000 | ||
+ | } | ||
+ | |||
+ | .tooltip.right .tooltip-arrow { | ||
+ | top: 50%; | ||
+ | left: 0; | ||
+ | margin-top: -5px; | ||
+ | border-width: 5px 5px 5px 0; | ||
+ | border-right-color: #000 | ||
+ | } | ||
+ | |||
+ | .tooltip.left .tooltip-arrow { | ||
+ | top: 50%; | ||
+ | right: 0; | ||
+ | margin-top: -5px; | ||
+ | border-width: 5px 0 5px 5px; | ||
+ | border-left-color: #000 | ||
+ | } | ||
+ | |||
+ | .tooltip.bottom .tooltip-arrow { | ||
+ | top: 0; | ||
+ | left: 50%; | ||
+ | margin-left: -5px; | ||
+ | border-width: 0 5px 5px; | ||
+ | border-bottom-color: #000 | ||
+ | } | ||
+ | |||
+ | .tooltip.bottom-left .tooltip-arrow { | ||
+ | top: 0; | ||
+ | right: 5px; | ||
+ | margin-top: -5px; | ||
+ | border-width: 0 5px 5px; | ||
+ | border-bottom-color: #000 | ||
+ | } | ||
+ | |||
+ | .tooltip.bottom-right .tooltip-arrow { | ||
+ | top: 0; | ||
+ | left: 5px; | ||
+ | margin-top: -5px; | ||
+ | border-width: 0 5px 5px; | ||
+ | border-bottom-color: #000 | ||
+ | } | ||
+ | |||
+ | .popover { | ||
+ | position: absolute; | ||
+ | top: 0; | ||
+ | left: 0; | ||
+ | z-index: 1060; | ||
+ | display: none; | ||
+ | max-width: 276px; | ||
+ | padding: 1px; | ||
+ | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | ||
+ | font-size: 14px; | ||
+ | font-style: normal; | ||
+ | font-weight: 400; | ||
+ | line-height: 1.42857143; | ||
+ | text-align: left; | ||
+ | text-align: start; | ||
+ | text-decoration: none; | ||
+ | text-shadow: none; | ||
+ | text-transform: none; | ||
+ | letter-spacing: normal; | ||
+ | word-break: normal; | ||
+ | word-spacing: normal; | ||
+ | word-wrap: normal; | ||
+ | white-space: normal; | ||
+ | background-color: #fff; | ||
+ | -webkit-background-clip: padding-box; | ||
+ | background-clip: padding-box; | ||
+ | border: 1px solid #ccc; | ||
+ | border: 1px solid rgba(0, 0, 0, .2); | ||
+ | border-radius: 6px; | ||
+ | -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); | ||
+ | box-shadow: 0 5px 10px rgba(0, 0, 0, .2); | ||
+ | line-break: auto | ||
+ | } | ||
+ | |||
+ | .popover.top { | ||
+ | margin-top: -10px | ||
+ | } | ||
+ | |||
+ | .popover.right { | ||
+ | margin-left: 10px | ||
+ | } | ||
+ | |||
+ | .popover.bottom { | ||
+ | margin-top: 10px | ||
+ | } | ||
+ | |||
+ | .popover.left { | ||
+ | margin-left: -10px | ||
+ | } | ||
+ | |||
+ | .popover-title { | ||
+ | padding: 8px 14px; | ||
+ | margin: 0; | ||
+ | font-size: 14px; | ||
+ | background-color: #f7f7f7; | ||
+ | border-bottom: 1px solid #ebebeb; | ||
+ | border-radius: 5px 5px 0 0 | ||
+ | } | ||
+ | |||
+ | .popover-content { | ||
+ | padding: 9px 14px | ||
+ | } | ||
+ | |||
+ | .popover>.arrow, | ||
+ | .popover>.arrow:after { | ||
+ | position: absolute; | ||
+ | display: block; | ||
+ | width: 0; | ||
+ | height: 0; | ||
+ | border-color: transparent; | ||
+ | border-style: solid | ||
+ | } | ||
+ | |||
+ | .popover>.arrow { | ||
+ | border-width: 11px | ||
+ | } | ||
+ | |||
+ | .popover>.arrow:after { | ||
+ | content: ""; | ||
+ | border-width: 10px | ||
+ | } | ||
+ | |||
+ | .popover.top>.arrow { | ||
+ | bottom: -11px; | ||
+ | left: 50%; | ||
+ | margin-left: -11px; | ||
+ | border-top-color: #999; | ||
+ | border-top-color: rgba(0, 0, 0, .25); | ||
+ | border-bottom-width: 0 | ||
+ | } | ||
+ | |||
+ | .popover.top>.arrow:after { | ||
+ | bottom: 1px; | ||
+ | margin-left: -10px; | ||
+ | content: " "; | ||
+ | border-top-color: #fff; | ||
+ | border-bottom-width: 0 | ||
+ | } | ||
+ | |||
+ | .popover.right>.arrow { | ||
+ | top: 50%; | ||
+ | left: -11px; | ||
+ | margin-top: -11px; | ||
+ | border-right-color: #999; | ||
+ | border-right-color: rgba(0, 0, 0, .25); | ||
+ | border-left-width: 0 | ||
+ | } | ||
+ | |||
+ | .popover.right>.arrow:after { | ||
+ | bottom: -10px; | ||
+ | left: 1px; | ||
+ | content: " "; | ||
+ | border-right-color: #fff; | ||
+ | border-left-width: 0 | ||
+ | } | ||
+ | |||
+ | .popover.bottom>.arrow { | ||
+ | top: -11px; | ||
+ | left: 50%; | ||
+ | margin-left: -11px; | ||
+ | border-top-width: 0; | ||
+ | border-bottom-color: #999; | ||
+ | border-bottom-color: rgba(0, 0, 0, .25) | ||
+ | } | ||
+ | |||
+ | .popover.bottom>.arrow:after { | ||
+ | top: 1px; | ||
+ | margin-left: -10px; | ||
+ | content: " "; | ||
+ | border-top-width: 0; | ||
+ | border-bottom-color: #fff | ||
+ | } | ||
+ | |||
+ | .popover.left>.arrow { | ||
+ | top: 50%; | ||
+ | right: -11px; | ||
+ | margin-top: -11px; | ||
+ | border-right-width: 0; | ||
+ | border-left-color: #999; | ||
+ | border-left-color: rgba(0, 0, 0, .25) | ||
+ | } | ||
+ | |||
+ | .popover.left>.arrow:after { | ||
+ | right: 1px; | ||
+ | bottom: -10px; | ||
+ | content: " "; | ||
+ | border-right-width: 0; | ||
+ | border-left-color: #fff | ||
+ | } | ||
+ | |||
+ | .carousel { | ||
+ | position: relative | ||
+ | } | ||
+ | |||
+ | .carousel-inner { | ||
+ | position: relative; | ||
+ | width: 100%; | ||
+ | overflow: hidden | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.item { | ||
+ | position: relative; | ||
+ | display: none; | ||
+ | -webkit-transition: .6s ease-in-out left; | ||
+ | -o-transition: .6s ease-in-out left; | ||
+ | transition: .6s ease-in-out left | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.item>a>img, | ||
+ | .carousel-inner>.item>img { | ||
+ | line-height: 1 | ||
+ | } | ||
+ | |||
+ | @media all and (transform-3d), | ||
+ | (-webkit-transform-3d) { | ||
+ | .carousel-inner>.item { | ||
+ | -webkit-transition: -webkit-transform .6s ease-in-out; | ||
+ | -o-transition: -o-transform .6s ease-in-out; | ||
+ | transition: transform .6s ease-in-out; | ||
+ | -webkit-backface-visibility: hidden; | ||
+ | backface-visibility: hidden; | ||
+ | -webkit-perspective: 1000px; | ||
+ | perspective: 1000px | ||
+ | } | ||
+ | .carousel-inner>.item.active.right, | ||
+ | .carousel-inner>.item.next { | ||
+ | left: 0; | ||
+ | -webkit-transform: translate3d(100%, 0, 0); | ||
+ | transform: translate3d(100%, 0, 0) | ||
+ | } | ||
+ | .carousel-inner>.item.active.left, | ||
+ | .carousel-inner>.item.prev { | ||
+ | left: 0; | ||
+ | -webkit-transform: translate3d(-100%, 0, 0); | ||
+ | transform: translate3d(-100%, 0, 0) | ||
+ | } | ||
+ | .carousel-inner>.item.active, | ||
+ | .carousel-inner>.item.next.left, | ||
+ | .carousel-inner>.item.prev.right { | ||
+ | left: 0; | ||
+ | -webkit-transform: translate3d(0, 0, 0); | ||
+ | transform: translate3d(0, 0, 0) | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.active, | ||
+ | .carousel-inner>.next, | ||
+ | .carousel-inner>.prev { | ||
+ | display: block | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.active { | ||
+ | left: 0 | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.next, | ||
+ | .carousel-inner>.prev { | ||
+ | position: absolute; | ||
+ | top: 0; | ||
+ | width: 100% | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.next { | ||
+ | left: 100% | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.prev { | ||
+ | left: -100% | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.next.left, | ||
+ | .carousel-inner>.prev.right { | ||
+ | left: 0 | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.active.left { | ||
+ | left: -100% | ||
+ | } | ||
+ | |||
+ | .carousel-inner>.active.right { | ||
+ | left: 100% | ||
+ | } | ||
+ | |||
+ | .carousel-control { | ||
+ | position: absolute; | ||
+ | top: 0; | ||
+ | bottom: 0; | ||
+ | left: 0; | ||
+ | width: 15%; | ||
+ | font-size: 20px; | ||
+ | color: #fff; | ||
+ | text-align: center; | ||
+ | text-shadow: 0 1px 2px rgba(0, 0, 0, .6); | ||
+ | background-color: rgba(0, 0, 0, 0); | ||
+ | filter: alpha(opacity=50); | ||
+ | opacity: .5 | ||
+ | } | ||
+ | |||
+ | .carousel-control.left { | ||
+ | background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .0001) 100%); | ||
+ | background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .0001) 100%); | ||
+ | background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); | ||
+ | background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0, rgba(0, 0, 0, .0001) 100%); | ||
+ | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); | ||
+ | background-repeat: repeat-x | ||
+ | } | ||
+ | |||
+ | .carousel-control.right { | ||
+ | right: 0; | ||
+ | left: auto; | ||
+ | background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0, rgba(0, 0, 0, .5) 100%); | ||
+ | background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0, rgba(0, 0, 0, .5) 100%); | ||
+ | background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); | ||
+ | background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0, rgba(0, 0, 0, .5) 100%); | ||
+ | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); | ||
+ | background-repeat: repeat-x | ||
+ | } | ||
+ | |||
+ | .carousel-control:focus, | ||
+ | .carousel-control:hover { | ||
+ | color: #fff; | ||
+ | text-decoration: none; | ||
+ | filter: alpha(opacity=90); | ||
+ | outline: 0; | ||
+ | opacity: .9 | ||
+ | } | ||
+ | |||
+ | .carousel-control .glyphicon-chevron-left, | ||
+ | .carousel-control .glyphicon-chevron-right, | ||
+ | .carousel-control .icon-next, | ||
+ | .carousel-control .icon-prev { | ||
+ | position: absolute; | ||
+ | top: 50%; | ||
+ | z-index: 5; | ||
+ | display: inline-block; | ||
+ | margin-top: -10px | ||
+ | } | ||
+ | |||
+ | .carousel-control .glyphicon-chevron-left, | ||
+ | .carousel-control .icon-prev { | ||
+ | left: 50%; | ||
+ | margin-left: -10px | ||
+ | } | ||
+ | |||
+ | .carousel-control .glyphicon-chevron-right, | ||
+ | .carousel-control .icon-next { | ||
+ | right: 50%; | ||
+ | margin-right: -10px | ||
+ | } | ||
+ | |||
+ | .carousel-control .icon-next, | ||
+ | .carousel-control .icon-prev { | ||
+ | width: 20px; | ||
+ | height: 20px; | ||
+ | font-family: serif; | ||
+ | line-height: 1 | ||
+ | } | ||
+ | |||
+ | .carousel-control .icon-prev:before { | ||
+ | content: '\2039' | ||
+ | } | ||
+ | |||
+ | .carousel-control .icon-next:before { | ||
+ | content: '\203a' | ||
+ | } | ||
+ | |||
+ | .carousel-indicators { | ||
+ | position: absolute; | ||
+ | bottom: 10px; | ||
+ | left: 50%; | ||
+ | z-index: 15; | ||
+ | width: 60%; | ||
+ | padding-left: 0; | ||
+ | margin-left: -30%; | ||
+ | text-align: center; | ||
+ | list-style: none | ||
+ | } | ||
+ | |||
+ | .carousel-indicators li { | ||
+ | display: inline-block; | ||
+ | width: 10px; | ||
+ | height: 10px; | ||
+ | margin: 1px; | ||
+ | text-indent: -999px; | ||
+ | cursor: pointer; | ||
+ | background-color: #000\9; | ||
+ | background-color: rgba(0, 0, 0, 0); | ||
+ | border: 1px solid #fff; | ||
+ | border-radius: 10px | ||
+ | } | ||
+ | |||
+ | .carousel-indicators .active { | ||
+ | width: 12px; | ||
+ | height: 12px; | ||
+ | margin: 0; | ||
+ | background-color: #fff | ||
+ | } | ||
+ | |||
+ | .carousel-caption { | ||
+ | position: absolute; | ||
+ | right: 15%; | ||
+ | bottom: 20px; | ||
+ | left: 15%; | ||
+ | z-index: 10; | ||
+ | padding-top: 20px; | ||
+ | padding-bottom: 20px; | ||
+ | color: #fff; | ||
+ | text-align: center; | ||
+ | text-shadow: 0 1px 2px rgba(0, 0, 0, .6) | ||
+ | } | ||
+ | |||
+ | .carousel-caption .btn { | ||
+ | text-shadow: none | ||
+ | } | ||
+ | |||
+ | @media screen and (min-width:768px) { | ||
+ | .carousel-control .glyphicon-chevron-left, | ||
+ | .carousel-control .glyphicon-chevron-right, | ||
+ | .carousel-control .icon-next, | ||
+ | .carousel-control .icon-prev { | ||
+ | width: 30px; | ||
+ | height: 30px; | ||
+ | margin-top: -10px; | ||
+ | font-size: 30px | ||
+ | } | ||
+ | .carousel-control .glyphicon-chevron-left, | ||
+ | .carousel-control .icon-prev { | ||
+ | margin-left: -10px | ||
+ | } | ||
+ | .carousel-control .glyphicon-chevron-right, | ||
+ | .carousel-control .icon-next { | ||
+ | margin-right: -10px | ||
+ | } | ||
+ | .carousel-caption { | ||
+ | right: 20%; | ||
+ | left: 20%; | ||
+ | padding-bottom: 30px | ||
+ | } | ||
+ | .carousel-indicators { | ||
+ | bottom: 20px | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn-group:after, | ||
+ | .btn-group-vertical>.btn-group:before, | ||
+ | .btn-toolbar:after, | ||
+ | .btn-toolbar:before, | ||
+ | .clearfix:after, | ||
+ | .clearfix:before, | ||
+ | .container-fluid:after, | ||
+ | .container-fluid:before, | ||
+ | .container:after, | ||
+ | .container:before, | ||
+ | .dl-horizontal dd:after, | ||
+ | .dl-horizontal dd:before, | ||
+ | .form-horizontal .form-group:after, | ||
+ | .form-horizontal .form-group:before, | ||
+ | .modal-footer:after, | ||
+ | .modal-footer:before, | ||
+ | .modal-header:after, | ||
+ | .modal-header:before, | ||
+ | .nav:after, | ||
+ | .nav:before, | ||
+ | .navbar-collapse:after, | ||
+ | .navbar-collapse:before, | ||
+ | .navbar-header:after, | ||
+ | .navbar-header:before, | ||
+ | .navbar:after, | ||
+ | .navbar:before, | ||
+ | .pager:after, | ||
+ | .pager:before, | ||
+ | .panel-body:after, | ||
+ | .panel-body:before, | ||
+ | .row:after, | ||
+ | .row:before { | ||
+ | display: table; | ||
+ | content: " " | ||
+ | } | ||
+ | |||
+ | .btn-group-vertical>.btn-group:after, | ||
+ | .btn-toolbar:after, | ||
+ | .clearfix:after, | ||
+ | .container-fluid:after, | ||
+ | .container:after, | ||
+ | .dl-horizontal dd:after, | ||
+ | .form-horizontal .form-group:after, | ||
+ | .modal-footer:after, | ||
+ | .modal-header:after, | ||
+ | .nav:after, | ||
+ | .navbar-collapse:after, | ||
+ | .navbar-header:after, | ||
+ | .navbar:after, | ||
+ | .pager:after, | ||
+ | .panel-body:after, | ||
+ | .row:after { | ||
+ | clear: both | ||
+ | } | ||
+ | |||
+ | .center-block { | ||
+ | display: block; | ||
+ | margin-right: auto; | ||
+ | margin-left: auto | ||
+ | } | ||
+ | |||
+ | .pull-right { | ||
+ | float: right!important | ||
+ | } | ||
+ | |||
+ | .pull-left { | ||
+ | float: left!important | ||
+ | } | ||
+ | |||
+ | .hide { | ||
+ | display: none!important | ||
+ | } | ||
+ | |||
+ | .show { | ||
+ | display: block!important | ||
+ | } | ||
+ | |||
+ | .invisible { | ||
+ | visibility: hidden | ||
+ | } | ||
+ | |||
+ | .text-hide { | ||
+ | font: 0/0 a; | ||
+ | color: transparent; | ||
+ | text-shadow: none; | ||
+ | background-color: transparent; | ||
+ | border: 0 | ||
+ | } | ||
+ | |||
+ | .hidden { | ||
+ | display: none!important | ||
+ | } | ||
+ | |||
+ | .affix { | ||
+ | position: fixed | ||
+ | } | ||
+ | |||
+ | @-ms-viewport { | ||
+ | width: device-width | ||
+ | } | ||
+ | |||
+ | .visible-lg, | ||
+ | .visible-md, | ||
+ | .visible-sm, | ||
+ | .visible-xs { | ||
+ | display: none!important | ||
+ | } | ||
+ | |||
+ | .visible-lg-block, | ||
+ | .visible-lg-inline, | ||
+ | .visible-lg-inline-block, | ||
+ | .visible-md-block, | ||
+ | .visible-md-inline, | ||
+ | .visible-md-inline-block, | ||
+ | .visible-sm-block, | ||
+ | .visible-sm-inline, | ||
+ | .visible-sm-inline-block, | ||
+ | .visible-xs-block, | ||
+ | .visible-xs-inline, | ||
+ | .visible-xs-inline-block { | ||
+ | display: none!important | ||
+ | } | ||
+ | |||
+ | @media (max-width:767px) { | ||
+ | .visible-xs { | ||
+ | display: block!important | ||
+ | } | ||
+ | table.visible-xs { | ||
+ | display: table!important | ||
+ | } | ||
+ | tr.visible-xs { | ||
+ | display: table-row!important | ||
+ | } | ||
+ | td.visible-xs, | ||
+ | th.visible-xs { | ||
+ | display: table-cell!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (max-width:767px) { | ||
+ | .visible-xs-block { | ||
+ | display: block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (max-width:767px) { | ||
+ | .visible-xs-inline { | ||
+ | display: inline!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (max-width:767px) { | ||
+ | .visible-xs-inline-block { | ||
+ | display: inline-block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) and (max-width:991px) { | ||
+ | .visible-sm { | ||
+ | display: block!important | ||
+ | } | ||
+ | table.visible-sm { | ||
+ | display: table!important | ||
+ | } | ||
+ | tr.visible-sm { | ||
+ | display: table-row!important | ||
+ | } | ||
+ | td.visible-sm, | ||
+ | th.visible-sm { | ||
+ | display: table-cell!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) and (max-width:991px) { | ||
+ | .visible-sm-block { | ||
+ | display: block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) and (max-width:991px) { | ||
+ | .visible-sm-inline { | ||
+ | display: inline!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) and (max-width:991px) { | ||
+ | .visible-sm-inline-block { | ||
+ | display: inline-block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:992px) and (max-width:1199px) { | ||
+ | .visible-md { | ||
+ | display: block!important | ||
+ | } | ||
+ | table.visible-md { | ||
+ | display: table!important | ||
+ | } | ||
+ | tr.visible-md { | ||
+ | display: table-row!important | ||
+ | } | ||
+ | td.visible-md, | ||
+ | th.visible-md { | ||
+ | display: table-cell!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:992px) and (max-width:1199px) { | ||
+ | .visible-md-block { | ||
+ | display: block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:992px) and (max-width:1199px) { | ||
+ | .visible-md-inline { | ||
+ | display: inline!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:992px) and (max-width:1199px) { | ||
+ | .visible-md-inline-block { | ||
+ | display: inline-block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:1200px) { | ||
+ | .visible-lg { | ||
+ | display: block!important | ||
+ | } | ||
+ | table.visible-lg { | ||
+ | display: table!important | ||
+ | } | ||
+ | tr.visible-lg { | ||
+ | display: table-row!important | ||
+ | } | ||
+ | td.visible-lg, | ||
+ | th.visible-lg { | ||
+ | display: table-cell!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:1200px) { | ||
+ | .visible-lg-block { | ||
+ | display: block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:1200px) { | ||
+ | .visible-lg-inline { | ||
+ | display: inline!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:1200px) { | ||
+ | .visible-lg-inline-block { | ||
+ | display: inline-block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (max-width:767px) { | ||
+ | .hidden-xs { | ||
+ | display: none!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:768px) and (max-width:991px) { | ||
+ | .hidden-sm { | ||
+ | display: none!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:992px) and (max-width:1199px) { | ||
+ | .hidden-md { | ||
+ | display: none!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media (min-width:1200px) { | ||
+ | .hidden-lg { | ||
+ | display: none!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .visible-print { | ||
+ | display: none!important | ||
+ | } | ||
+ | |||
+ | @media print { | ||
+ | .visible-print { | ||
+ | display: block!important | ||
+ | } | ||
+ | table.visible-print { | ||
+ | display: table!important | ||
+ | } | ||
+ | tr.visible-print { | ||
+ | display: table-row!important | ||
+ | } | ||
+ | td.visible-print, | ||
+ | th.visible-print { | ||
+ | display: table-cell!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .visible-print-block { | ||
+ | display: none!important | ||
+ | } | ||
+ | |||
+ | @media print { | ||
+ | .visible-print-block { | ||
+ | display: block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .visible-print-inline { | ||
+ | display: none!important | ||
+ | } | ||
+ | |||
+ | @media print { | ||
+ | .visible-print-inline { | ||
+ | display: inline!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .visible-print-inline-block { | ||
+ | display: none!important | ||
+ | } | ||
+ | |||
+ | @media print { | ||
+ | .visible-print-inline-block { | ||
+ | display: inline-block!important | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media print { | ||
+ | .hidden-print { | ||
+ | display: none!important | ||
+ | } | ||
+ | } | ||
/*# sourceMappingURL=bootstrap.min.css.map */ | /*# sourceMappingURL=bootstrap.min.css.map */ | ||
</style> | </style> | ||
− | <!-- | + | <!-- JQuery --> |
− | <script> | + | <script type="text/javascript"> |
− | /*! jQuery | + | /*! |
− | + | * jQuery JavaScript Library v1.12.4 | |
− | </script> | + | * http://jquery.com/ |
+ | * | ||
+ | * Includes Sizzle.js | ||
+ | * http://sizzlejs.com/ | ||
+ | * | ||
+ | * Copyright jQuery Foundation and other contributors | ||
+ | * Released under the MIT license | ||
+ | * http://jquery.org/license | ||
+ | * | ||
+ | * Date: 2016-05-20T17:17Z | ||
+ | */ | ||
+ | |||
+ | (function( global, factory ) { | ||
+ | |||
+ | if ( typeof module === "object" && typeof module.exports === "object" ) { | ||
+ | // For CommonJS and CommonJS-like environments where a proper `window` | ||
+ | // is present, execute the factory and get jQuery. | ||
+ | // For environments that do not have a `window` with a `document` | ||
+ | // (such as Node.js), expose a factory as module.exports. | ||
+ | // This accentuates the need for the creation of a real `window`. | ||
+ | // e.g. var jQuery = require("jquery")(window); | ||
+ | // See ticket #14549 for more info. | ||
+ | module.exports = global.document ? | ||
+ | factory( global, true ) : | ||
+ | function( w ) { | ||
+ | if ( !w.document ) { | ||
+ | throw new Error( "jQuery requires a window with a document" ); | ||
+ | } | ||
+ | return factory( w ); | ||
+ | }; | ||
+ | } else { | ||
+ | factory( global ); | ||
+ | } | ||
+ | |||
+ | // Pass this if window is not defined yet | ||
+ | }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { | ||
+ | |||
+ | // Support: Firefox 18+ | ||
+ | // Can't be in strict mode, several libs including ASP.NET trace | ||
+ | // the stack via arguments.caller.callee and Firefox dies if | ||
+ | // you try to trace through "use strict" call chains. (#13335) | ||
+ | //"use strict"; | ||
+ | var deletedIds = []; | ||
+ | |||
+ | var document = window.document; | ||
+ | |||
+ | var slice = deletedIds.slice; | ||
+ | |||
+ | var concat = deletedIds.concat; | ||
+ | |||
+ | var push = deletedIds.push; | ||
+ | |||
+ | var indexOf = deletedIds.indexOf; | ||
+ | |||
+ | var class2type = {}; | ||
+ | |||
+ | var toString = class2type.toString; | ||
+ | |||
+ | var hasOwn = class2type.hasOwnProperty; | ||
+ | |||
+ | var support = {}; | ||
+ | |||
+ | |||
+ | |||
+ | var | ||
+ | version = "1.12.4", | ||
+ | |||
+ | // Define a local copy of jQuery | ||
+ | jQuery = function( selector, context ) { | ||
+ | |||
+ | // The jQuery object is actually just the init constructor 'enhanced' | ||
+ | // Need init if jQuery is called (just allow error to be thrown if not included) | ||
+ | return new jQuery.fn.init( selector, context ); | ||
+ | }, | ||
+ | |||
+ | // Support: Android<4.1, IE<9 | ||
+ | // Make sure we trim BOM and NBSP | ||
+ | rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, | ||
+ | |||
+ | // Matches dashed string for camelizing | ||
+ | rmsPrefix = /^-ms-/, | ||
+ | rdashAlpha = /-([\da-z])/gi, | ||
+ | |||
+ | // Used by jQuery.camelCase as callback to replace() | ||
+ | fcamelCase = function( all, letter ) { | ||
+ | return letter.toUpperCase(); | ||
+ | }; | ||
+ | |||
+ | jQuery.fn = jQuery.prototype = { | ||
+ | |||
+ | // The current version of jQuery being used | ||
+ | jquery: version, | ||
+ | |||
+ | constructor: jQuery, | ||
+ | |||
+ | // Start with an empty selector | ||
+ | selector: "", | ||
+ | |||
+ | // The default length of a jQuery object is 0 | ||
+ | length: 0, | ||
+ | |||
+ | toArray: function() { | ||
+ | return slice.call( this ); | ||
+ | }, | ||
+ | |||
+ | // Get the Nth element in the matched element set OR | ||
+ | // Get the whole matched element set as a clean array | ||
+ | get: function( num ) { | ||
+ | return num != null ? | ||
+ | |||
+ | // Return just the one element from the set | ||
+ | ( num < 0 ? this[ num + this.length ] : this[ num ] ) : | ||
+ | |||
+ | // Return all the elements in a clean array | ||
+ | slice.call( this ); | ||
+ | }, | ||
+ | |||
+ | // Take an array of elements and push it onto the stack | ||
+ | // (returning the new matched element set) | ||
+ | pushStack: function( elems ) { | ||
+ | |||
+ | // Build a new jQuery matched element set | ||
+ | var ret = jQuery.merge( this.constructor(), elems ); | ||
+ | |||
+ | // Add the old object onto the stack (as a reference) | ||
+ | ret.prevObject = this; | ||
+ | ret.context = this.context; | ||
+ | |||
+ | // Return the newly-formed element set | ||
+ | return ret; | ||
+ | }, | ||
+ | |||
+ | // Execute a callback for every element in the matched set. | ||
+ | each: function( callback ) { | ||
+ | return jQuery.each( this, callback ); | ||
+ | }, | ||
+ | |||
+ | map: function( callback ) { | ||
+ | return this.pushStack( jQuery.map( this, function( elem, i ) { | ||
+ | return callback.call( elem, i, elem ); | ||
+ | } ) ); | ||
+ | }, | ||
+ | |||
+ | slice: function() { | ||
+ | return this.pushStack( slice.apply( this, arguments ) ); | ||
+ | }, | ||
+ | |||
+ | first: function() { | ||
+ | return this.eq( 0 ); | ||
+ | }, | ||
+ | |||
+ | last: function() { | ||
+ | return this.eq( -1 ); | ||
+ | }, | ||
+ | |||
+ | eq: function( i ) { | ||
+ | var len = this.length, | ||
+ | j = +i + ( i < 0 ? len : 0 ); | ||
+ | return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); | ||
+ | }, | ||
+ | |||
+ | end: function() { | ||
+ | return this.prevObject || this.constructor(); | ||
+ | }, | ||
+ | |||
+ | // For internal use only. | ||
+ | // Behaves like an Array's method, not like a jQuery method. | ||
+ | push: push, | ||
+ | sort: deletedIds.sort, | ||
+ | splice: deletedIds.splice | ||
+ | }; | ||
+ | |||
+ | jQuery.extend = jQuery.fn.extend = function() { | ||
+ | var src, copyIsArray, copy, name, options, clone, | ||
+ | target = arguments[ 0 ] || {}, | ||
+ | i = 1, | ||
+ | length = arguments.length, | ||
+ | deep = false; | ||
+ | |||
+ | // Handle a deep copy situation | ||
+ | if ( typeof target === "boolean" ) { | ||
+ | deep = target; | ||
+ | |||
+ | // skip the boolean and the target | ||
+ | target = arguments[ i ] || {}; | ||
+ | i++; | ||
+ | } | ||
+ | |||
+ | // Handle case when target is a string or something (possible in deep copy) | ||
+ | if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { | ||
+ | target = {}; | ||
+ | } | ||
+ | |||
+ | // extend jQuery itself if only one argument is passed | ||
+ | if ( i === length ) { | ||
+ | target = this; | ||
+ | i--; | ||
+ | } | ||
+ | |||
+ | for ( ; i < length; i++ ) { | ||
+ | |||
+ | // Only deal with non-null/undefined values | ||
+ | if ( ( options = arguments[ i ] ) != null ) { | ||
+ | |||
+ | // Extend the base object | ||
+ | for ( name in options ) { | ||
+ | src = target[ name ]; | ||
+ | copy = options[ name ]; | ||
+ | |||
+ | // Prevent never-ending loop | ||
+ | if ( target === copy ) { | ||
+ | continue; | ||
+ | } | ||
+ | |||
+ | // Recurse if we're merging plain objects or arrays | ||
+ | if ( deep && copy && ( jQuery.isPlainObject( copy ) || | ||
+ | ( copyIsArray = jQuery.isArray( copy ) ) ) ) { | ||
+ | |||
+ | if ( copyIsArray ) { | ||
+ | copyIsArray = false; | ||
+ | clone = src && jQuery.isArray( src ) ? src : []; | ||
+ | |||
+ | } else { | ||
+ | clone = src && jQuery.isPlainObject( src ) ? src : {}; | ||
+ | } | ||
+ | |||
+ | // Never move original objects, clone them | ||
+ | target[ name ] = jQuery.extend( deep, clone, copy ); | ||
+ | |||
+ | // Don't bring in undefined values | ||
+ | } else if ( copy !== undefined ) { | ||
+ | target[ name ] = copy; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Return the modified object | ||
+ | return target; | ||
+ | }; | ||
+ | |||
+ | jQuery.extend( { | ||
+ | |||
+ | // Unique for each copy of jQuery on the page | ||
+ | expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), | ||
+ | |||
+ | // Assume jQuery is ready without the ready module | ||
+ | isReady: true, | ||
+ | |||
+ | error: function( msg ) { | ||
+ | throw new Error( msg ); | ||
+ | }, | ||
+ | |||
+ | noop: function() {}, | ||
+ | |||
+ | // See test/unit/core.js for details concerning isFunction. | ||
+ | // Since version 1.3, DOM methods and functions like alert | ||
+ | // aren't supported. They return false on IE (#2968). | ||
+ | isFunction: function( obj ) { | ||
+ | return jQuery.type( obj ) === "function"; | ||
+ | }, | ||
+ | |||
+ | isArray: Array.isArray || function( obj ) { | ||
+ | return jQuery.type( obj ) === "array"; | ||
+ | }, | ||
+ | |||
+ | isWindow: function( obj ) { | ||
+ | /* jshint eqeqeq: false */ | ||
+ | return obj != null && obj == obj.window; | ||
+ | }, | ||
+ | |||
+ | isNumeric: function( obj ) { | ||
+ | |||
+ | // parseFloat NaNs numeric-cast false positives (null|true|false|"") | ||
+ | // ...but misinterprets leading-number strings, particularly hex literals ("0x...") | ||
+ | // subtraction forces infinities to NaN | ||
+ | // adding 1 corrects loss of precision from parseFloat (#15100) | ||
+ | var realStringObj = obj && obj.toString(); | ||
+ | return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0; | ||
+ | }, | ||
+ | |||
+ | isEmptyObject: function( obj ) { | ||
+ | var name; | ||
+ | for ( name in obj ) { | ||
+ | return false; | ||
+ | } | ||
+ | return true; | ||
+ | }, | ||
+ | |||
+ | isPlainObject: function( obj ) { | ||
+ | var key; | ||
+ | |||
+ | // Must be an Object. | ||
+ | // Because of IE, we also have to check the presence of the constructor property. | ||
+ | // Make sure that DOM nodes and window objects don't pass through, as well | ||
+ | if ( !obj || jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | try { | ||
+ | |||
+ | // Not own constructor property must be Object | ||
+ | if ( obj.constructor && | ||
+ | !hasOwn.call( obj, "constructor" ) && | ||
+ | !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { | ||
+ | return false; | ||
+ | } | ||
+ | } catch ( e ) { | ||
+ | |||
+ | // IE8,9 Will throw exceptions on certain host objects #9897 | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Handle iteration over inherited properties before own properties. | ||
+ | if ( !support.ownFirst ) { | ||
+ | for ( key in obj ) { | ||
+ | return hasOwn.call( obj, key ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Own properties are enumerated firstly, so to speed up, | ||
+ | // if last one is own, then all properties are own. | ||
+ | for ( key in obj ) {} | ||
+ | |||
+ | return key === undefined || hasOwn.call( obj, key ); | ||
+ | }, | ||
+ | |||
+ | type: function( obj ) { | ||
+ | if ( obj == null ) { | ||
+ | return obj + ""; | ||
+ | } | ||
+ | return typeof obj === "object" || typeof obj === "function" ? | ||
+ | class2type[ toString.call( obj ) ] || "object" : | ||
+ | typeof obj; | ||
+ | }, | ||
+ | |||
+ | // Workarounds based on findings by Jim Driscoll | ||
+ | // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context | ||
+ | globalEval: function( data ) { | ||
+ | if ( data && jQuery.trim( data ) ) { | ||
+ | |||
+ | // We use execScript on Internet Explorer | ||
+ | // We use an anonymous function so that context is window | ||
+ | // rather than jQuery in Firefox | ||
+ | ( window.execScript || function( data ) { | ||
+ | window[ "eval" ].call( window, data ); // jscs:ignore requireDotNotation | ||
+ | } )( data ); | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | // Convert dashed to camelCase; used by the css and data modules | ||
+ | // Microsoft forgot to hump their vendor prefix (#9572) | ||
+ | camelCase: function( string ) { | ||
+ | return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); | ||
+ | }, | ||
+ | |||
+ | nodeName: function( elem, name ) { | ||
+ | return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); | ||
+ | }, | ||
+ | |||
+ | each: function( obj, callback ) { | ||
+ | var length, i = 0; | ||
+ | |||
+ | if ( isArrayLike( obj ) ) { | ||
+ | length = obj.length; | ||
+ | for ( ; i < length; i++ ) { | ||
+ | if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } else { | ||
+ | for ( i in obj ) { | ||
+ | if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return obj; | ||
+ | }, | ||
+ | |||
+ | // Support: Android<4.1, IE<9 | ||
+ | trim: function( text ) { | ||
+ | return text == null ? | ||
+ | "" : | ||
+ | ( text + "" ).replace( rtrim, "" ); | ||
+ | }, | ||
+ | |||
+ | // results is for internal usage only | ||
+ | makeArray: function( arr, results ) { | ||
+ | var ret = results || []; | ||
+ | |||
+ | if ( arr != null ) { | ||
+ | if ( isArrayLike( Object( arr ) ) ) { | ||
+ | jQuery.merge( ret, | ||
+ | typeof arr === "string" ? | ||
+ | [ arr ] : arr | ||
+ | ); | ||
+ | } else { | ||
+ | push.call( ret, arr ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return ret; | ||
+ | }, | ||
+ | |||
+ | inArray: function( elem, arr, i ) { | ||
+ | var len; | ||
+ | |||
+ | if ( arr ) { | ||
+ | if ( indexOf ) { | ||
+ | return indexOf.call( arr, elem, i ); | ||
+ | } | ||
+ | |||
+ | len = arr.length; | ||
+ | i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; | ||
+ | |||
+ | for ( ; i < len; i++ ) { | ||
+ | |||
+ | // Skip accessing in sparse arrays | ||
+ | if ( i in arr && arr[ i ] === elem ) { | ||
+ | return i; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return -1; | ||
+ | }, | ||
+ | |||
+ | merge: function( first, second ) { | ||
+ | var len = +second.length, | ||
+ | j = 0, | ||
+ | i = first.length; | ||
+ | |||
+ | while ( j < len ) { | ||
+ | first[ i++ ] = second[ j++ ]; | ||
+ | } | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists) | ||
+ | if ( len !== len ) { | ||
+ | while ( second[ j ] !== undefined ) { | ||
+ | first[ i++ ] = second[ j++ ]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | first.length = i; | ||
+ | |||
+ | return first; | ||
+ | }, | ||
+ | |||
+ | grep: function( elems, callback, invert ) { | ||
+ | var callbackInverse, | ||
+ | matches = [], | ||
+ | i = 0, | ||
+ | length = elems.length, | ||
+ | callbackExpect = !invert; | ||
+ | |||
+ | // Go through the array, only saving the items | ||
+ | // that pass the validator function | ||
+ | for ( ; i < length; i++ ) { | ||
+ | callbackInverse = !callback( elems[ i ], i ); | ||
+ | if ( callbackInverse !== callbackExpect ) { | ||
+ | matches.push( elems[ i ] ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return matches; | ||
+ | }, | ||
+ | |||
+ | // arg is for internal usage only | ||
+ | map: function( elems, callback, arg ) { | ||
+ | var length, value, | ||
+ | i = 0, | ||
+ | ret = []; | ||
+ | |||
+ | // Go through the array, translating each of the items to their new values | ||
+ | if ( isArrayLike( elems ) ) { | ||
+ | length = elems.length; | ||
+ | for ( ; i < length; i++ ) { | ||
+ | value = callback( elems[ i ], i, arg ); | ||
+ | |||
+ | if ( value != null ) { | ||
+ | ret.push( value ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Go through every key on the object, | ||
+ | } else { | ||
+ | for ( i in elems ) { | ||
+ | value = callback( elems[ i ], i, arg ); | ||
+ | |||
+ | if ( value != null ) { | ||
+ | ret.push( value ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Flatten any nested arrays | ||
+ | return concat.apply( [], ret ); | ||
+ | }, | ||
+ | |||
+ | // A global GUID counter for objects | ||
+ | guid: 1, | ||
+ | |||
+ | // Bind a function to a context, optionally partially applying any | ||
+ | // arguments. | ||
+ | proxy: function( fn, context ) { | ||
+ | var args, proxy, tmp; | ||
+ | |||
+ | if ( typeof context === "string" ) { | ||
+ | tmp = fn[ context ]; | ||
+ | context = fn; | ||
+ | fn = tmp; | ||
+ | } | ||
+ | |||
+ | // Quick check to determine if target is callable, in the spec | ||
+ | // this throws a TypeError, but we will just return undefined. | ||
+ | if ( !jQuery.isFunction( fn ) ) { | ||
+ | return undefined; | ||
+ | } | ||
+ | |||
+ | // Simulated bind | ||
+ | args = slice.call( arguments, 2 ); | ||
+ | proxy = function() { | ||
+ | return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); | ||
+ | }; | ||
+ | |||
+ | // Set the guid of unique handler to the same of original handler, so it can be removed | ||
+ | proxy.guid = fn.guid = fn.guid || jQuery.guid++; | ||
+ | |||
+ | return proxy; | ||
+ | }, | ||
+ | |||
+ | now: function() { | ||
+ | return +( new Date() ); | ||
+ | }, | ||
+ | |||
+ | // jQuery.support is not used in Core but other projects attach their | ||
+ | // properties to it so it needs to exist. | ||
+ | support: support | ||
+ | } ); | ||
+ | |||
+ | // JSHint would error on this code due to the Symbol not being defined in ES5. | ||
+ | // Defining this global in .jshintrc would create a danger of using the global | ||
+ | // unguarded in another place, it seems safer to just disable JSHint for these | ||
+ | // three lines. | ||
+ | /* jshint ignore: start */ | ||
+ | if ( typeof Symbol === "function" ) { | ||
+ | jQuery.fn[ Symbol.iterator ] = deletedIds[ Symbol.iterator ]; | ||
+ | } | ||
+ | /* jshint ignore: end */ | ||
+ | |||
+ | // Populate the class2type map | ||
+ | jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), | ||
+ | function( i, name ) { | ||
+ | class2type[ "[object " + name + "]" ] = name.toLowerCase(); | ||
+ | } ); | ||
+ | |||
+ | function isArrayLike( obj ) { | ||
+ | |||
+ | // Support: iOS 8.2 (not reproducible in simulator) | ||
+ | // `in` check used to prevent JIT error (gh-2145) | ||
+ | // hasOwn isn't used here due to false negatives | ||
+ | // regarding Nodelist length in IE | ||
+ | var length = !!obj && "length" in obj && obj.length, | ||
+ | type = jQuery.type( obj ); | ||
+ | |||
+ | if ( type === "function" || jQuery.isWindow( obj ) ) { | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | return type === "array" || length === 0 || | ||
+ | typeof length === "number" && length > 0 && ( length - 1 ) in obj; | ||
+ | } | ||
+ | var Sizzle = | ||
+ | /*! | ||
+ | * Sizzle CSS Selector Engine v2.2.1 | ||
+ | * http://sizzlejs.com/ | ||
+ | * | ||
+ | * Copyright jQuery Foundation and other contributors | ||
+ | * Released under the MIT license | ||
+ | * http://jquery.org/license | ||
+ | * | ||
+ | * Date: 2015-10-17 | ||
+ | */ | ||
+ | (function( window ) { | ||
+ | |||
+ | var i, | ||
+ | support, | ||
+ | Expr, | ||
+ | getText, | ||
+ | isXML, | ||
+ | tokenize, | ||
+ | compile, | ||
+ | select, | ||
+ | outermostContext, | ||
+ | sortInput, | ||
+ | hasDuplicate, | ||
+ | |||
+ | // Local document vars | ||
+ | setDocument, | ||
+ | document, | ||
+ | docElem, | ||
+ | documentIsHTML, | ||
+ | rbuggyQSA, | ||
+ | rbuggyMatches, | ||
+ | matches, | ||
+ | contains, | ||
+ | |||
+ | // Instance-specific data | ||
+ | expando = "sizzle" + 1 * new Date(), | ||
+ | preferredDoc = window.document, | ||
+ | dirruns = 0, | ||
+ | done = 0, | ||
+ | classCache = createCache(), | ||
+ | tokenCache = createCache(), | ||
+ | compilerCache = createCache(), | ||
+ | sortOrder = function( a, b ) { | ||
+ | if ( a === b ) { | ||
+ | hasDuplicate = true; | ||
+ | } | ||
+ | return 0; | ||
+ | }, | ||
+ | |||
+ | // General-purpose constants | ||
+ | MAX_NEGATIVE = 1 << 31, | ||
+ | |||
+ | // Instance methods | ||
+ | hasOwn = ({}).hasOwnProperty, | ||
+ | arr = [], | ||
+ | pop = arr.pop, | ||
+ | push_native = arr.push, | ||
+ | push = arr.push, | ||
+ | slice = arr.slice, | ||
+ | // Use a stripped-down indexOf as it's faster than native | ||
+ | // http://jsperf.com/thor-indexof-vs-for/5 | ||
+ | indexOf = function( list, elem ) { | ||
+ | var i = 0, | ||
+ | len = list.length; | ||
+ | for ( ; i < len; i++ ) { | ||
+ | if ( list[i] === elem ) { | ||
+ | return i; | ||
+ | } | ||
+ | } | ||
+ | return -1; | ||
+ | }, | ||
+ | |||
+ | booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", | ||
+ | |||
+ | // Regular expressions | ||
+ | |||
+ | // http://www.w3.org/TR/css3-selectors/#whitespace | ||
+ | whitespace = "[\\x20\\t\\r\\n\\f]", | ||
+ | |||
+ | // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier | ||
+ | identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", | ||
+ | |||
+ | // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors | ||
+ | attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + | ||
+ | // Operator (capture 2) | ||
+ | "*([*^$|!~]?=)" + whitespace + | ||
+ | // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" | ||
+ | "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + | ||
+ | "*\\]", | ||
+ | |||
+ | pseudos = ":(" + identifier + ")(?:\\((" + | ||
+ | // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: | ||
+ | // 1. quoted (capture 3; capture 4 or capture 5) | ||
+ | "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + | ||
+ | // 2. simple (capture 6) | ||
+ | "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + | ||
+ | // 3. anything else (capture 2) | ||
+ | ".*" + | ||
+ | ")\\)|)", | ||
+ | |||
+ | // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter | ||
+ | rwhitespace = new RegExp( whitespace + "+", "g" ), | ||
+ | rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), | ||
+ | |||
+ | rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), | ||
+ | rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), | ||
+ | |||
+ | rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), | ||
+ | |||
+ | rpseudo = new RegExp( pseudos ), | ||
+ | ridentifier = new RegExp( "^" + identifier + "$" ), | ||
+ | |||
+ | matchExpr = { | ||
+ | "ID": new RegExp( "^#(" + identifier + ")" ), | ||
+ | "CLASS": new RegExp( "^\\.(" + identifier + ")" ), | ||
+ | "TAG": new RegExp( "^(" + identifier + "|[*])" ), | ||
+ | "ATTR": new RegExp( "^" + attributes ), | ||
+ | "PSEUDO": new RegExp( "^" + pseudos ), | ||
+ | "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + | ||
+ | "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + | ||
+ | "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), | ||
+ | "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), | ||
+ | // For use in libraries implementing .is() | ||
+ | // We use this for POS matching in `select` | ||
+ | "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + | ||
+ | whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) | ||
+ | }, | ||
+ | |||
+ | rinputs = /^(?:input|select|textarea|button)$/i, | ||
+ | rheader = /^h\d$/i, | ||
+ | |||
+ | rnative = /^[^{]+\{\s*\[native \w/, | ||
+ | |||
+ | // Easily-parseable/retrievable ID or TAG or CLASS selectors | ||
+ | rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, | ||
+ | |||
+ | rsibling = /[+~]/, | ||
+ | rescape = /'|\\/g, | ||
+ | |||
+ | // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters | ||
+ | runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), | ||
+ | funescape = function( _, escaped, escapedWhitespace ) { | ||
+ | var high = "0x" + escaped - 0x10000; | ||
+ | // NaN means non-codepoint | ||
+ | // Support: Firefox<24 | ||
+ | // Workaround erroneous numeric interpretation of +"0x" | ||
+ | return high !== high || escapedWhitespace ? | ||
+ | escaped : | ||
+ | high < 0 ? | ||
+ | // BMP codepoint | ||
+ | String.fromCharCode( high + 0x10000 ) : | ||
+ | // Supplemental Plane codepoint (surrogate pair) | ||
+ | String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); | ||
+ | }, | ||
+ | |||
+ | // Used for iframes | ||
+ | // See setDocument() | ||
+ | // Removing the function wrapper causes a "Permission Denied" | ||
+ | // error in IE | ||
+ | unloadHandler = function() { | ||
+ | setDocument(); | ||
+ | }; | ||
+ | |||
+ | // Optimize for push.apply( _, NodeList ) | ||
+ | try { | ||
+ | push.apply( | ||
+ | (arr = slice.call( preferredDoc.childNodes )), | ||
+ | preferredDoc.childNodes | ||
+ | ); | ||
+ | // Support: Android<4.0 | ||
+ | // Detect silently failing push.apply | ||
+ | arr[ preferredDoc.childNodes.length ].nodeType; | ||
+ | } catch ( e ) { | ||
+ | push = { apply: arr.length ? | ||
+ | |||
+ | // Leverage slice if possible | ||
+ | function( target, els ) { | ||
+ | push_native.apply( target, slice.call(els) ); | ||
+ | } : | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Otherwise append directly | ||
+ | function( target, els ) { | ||
+ | var j = target.length, | ||
+ | i = 0; | ||
+ | // Can't trust NodeList.length | ||
+ | while ( (target[j++] = els[i++]) ) {} | ||
+ | target.length = j - 1; | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | function Sizzle( selector, context, results, seed ) { | ||
+ | var m, i, elem, nid, nidselect, match, groups, newSelector, | ||
+ | newContext = context && context.ownerDocument, | ||
+ | |||
+ | // nodeType defaults to 9, since context defaults to document | ||
+ | nodeType = context ? context.nodeType : 9; | ||
+ | |||
+ | results = results || []; | ||
+ | |||
+ | // Return early from calls with invalid selector or context | ||
+ | if ( typeof selector !== "string" || !selector || | ||
+ | nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { | ||
+ | |||
+ | return results; | ||
+ | } | ||
+ | |||
+ | // Try to shortcut find operations (as opposed to filters) in HTML documents | ||
+ | if ( !seed ) { | ||
+ | |||
+ | if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { | ||
+ | setDocument( context ); | ||
+ | } | ||
+ | context = context || document; | ||
+ | |||
+ | if ( documentIsHTML ) { | ||
+ | |||
+ | // If the selector is sufficiently simple, try using a "get*By*" DOM method | ||
+ | // (excepting DocumentFragment context, where the methods don't exist) | ||
+ | if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { | ||
+ | |||
+ | // ID selector | ||
+ | if ( (m = match[1]) ) { | ||
+ | |||
+ | // Document context | ||
+ | if ( nodeType === 9 ) { | ||
+ | if ( (elem = context.getElementById( m )) ) { | ||
+ | |||
+ | // Support: IE, Opera, Webkit | ||
+ | // TODO: identify versions | ||
+ | // getElementById can match elements by name instead of ID | ||
+ | if ( elem.id === m ) { | ||
+ | results.push( elem ); | ||
+ | return results; | ||
+ | } | ||
+ | } else { | ||
+ | return results; | ||
+ | } | ||
+ | |||
+ | // Element context | ||
+ | } else { | ||
+ | |||
+ | // Support: IE, Opera, Webkit | ||
+ | // TODO: identify versions | ||
+ | // getElementById can match elements by name instead of ID | ||
+ | if ( newContext && (elem = newContext.getElementById( m )) && | ||
+ | contains( context, elem ) && | ||
+ | elem.id === m ) { | ||
+ | |||
+ | results.push( elem ); | ||
+ | return results; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Type selector | ||
+ | } else if ( match[2] ) { | ||
+ | push.apply( results, context.getElementsByTagName( selector ) ); | ||
+ | return results; | ||
+ | |||
+ | // Class selector | ||
+ | } else if ( (m = match[3]) && support.getElementsByClassName && | ||
+ | context.getElementsByClassName ) { | ||
+ | |||
+ | push.apply( results, context.getElementsByClassName( m ) ); | ||
+ | return results; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Take advantage of querySelectorAll | ||
+ | if ( support.qsa && | ||
+ | !compilerCache[ selector + " " ] && | ||
+ | (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { | ||
+ | |||
+ | if ( nodeType !== 1 ) { | ||
+ | newContext = context; | ||
+ | newSelector = selector; | ||
+ | |||
+ | // qSA looks outside Element context, which is not what we want | ||
+ | // Thanks to Andrew Dupont for this workaround technique | ||
+ | // Support: IE <=8 | ||
+ | // Exclude object elements | ||
+ | } else if ( context.nodeName.toLowerCase() !== "object" ) { | ||
+ | |||
+ | // Capture the context ID, setting it first if necessary | ||
+ | if ( (nid = context.getAttribute( "id" )) ) { | ||
+ | nid = nid.replace( rescape, "\\$&" ); | ||
+ | } else { | ||
+ | context.setAttribute( "id", (nid = expando) ); | ||
+ | } | ||
+ | |||
+ | // Prefix every selector in the list | ||
+ | groups = tokenize( selector ); | ||
+ | i = groups.length; | ||
+ | nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']"; | ||
+ | while ( i-- ) { | ||
+ | groups[i] = nidselect + " " + toSelector( groups[i] ); | ||
+ | } | ||
+ | newSelector = groups.join( "," ); | ||
+ | |||
+ | // Expand context for sibling selectors | ||
+ | newContext = rsibling.test( selector ) && testContext( context.parentNode ) || | ||
+ | context; | ||
+ | } | ||
+ | |||
+ | if ( newSelector ) { | ||
+ | try { | ||
+ | push.apply( results, | ||
+ | newContext.querySelectorAll( newSelector ) | ||
+ | ); | ||
+ | return results; | ||
+ | } catch ( qsaError ) { | ||
+ | } finally { | ||
+ | if ( nid === expando ) { | ||
+ | context.removeAttribute( "id" ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // All others | ||
+ | return select( selector.replace( rtrim, "$1" ), context, results, seed ); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Create key-value caches of limited size | ||
+ | * @returns {function(string, object)} Returns the Object data after storing it on itself with | ||
+ | * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) | ||
+ | * deleting the oldest entry | ||
+ | */ | ||
+ | function createCache() { | ||
+ | var keys = []; | ||
+ | |||
+ | function cache( key, value ) { | ||
+ | // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) | ||
+ | if ( keys.push( key + " " ) > Expr.cacheLength ) { | ||
+ | // Only keep the most recent entries | ||
+ | delete cache[ keys.shift() ]; | ||
+ | } | ||
+ | return (cache[ key + " " ] = value); | ||
+ | } | ||
+ | return cache; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Mark a function for special use by Sizzle | ||
+ | * @param {Function} fn The function to mark | ||
+ | */ | ||
+ | function markFunction( fn ) { | ||
+ | fn[ expando ] = true; | ||
+ | return fn; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Support testing using an element | ||
+ | * @param {Function} fn Passed the created div and expects a boolean result | ||
+ | */ | ||
+ | function assert( fn ) { | ||
+ | var div = document.createElement("div"); | ||
+ | |||
+ | try { | ||
+ | return !!fn( div ); | ||
+ | } catch (e) { | ||
+ | return false; | ||
+ | } finally { | ||
+ | // Remove from its parent by default | ||
+ | if ( div.parentNode ) { | ||
+ | div.parentNode.removeChild( div ); | ||
+ | } | ||
+ | // release memory in IE | ||
+ | div = null; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Adds the same handler for all of the specified attrs | ||
+ | * @param {String} attrs Pipe-separated list of attributes | ||
+ | * @param {Function} handler The method that will be applied | ||
+ | */ | ||
+ | function addHandle( attrs, handler ) { | ||
+ | var arr = attrs.split("|"), | ||
+ | i = arr.length; | ||
+ | |||
+ | while ( i-- ) { | ||
+ | Expr.attrHandle[ arr[i] ] = handler; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Checks document order of two siblings | ||
+ | * @param {Element} a | ||
+ | * @param {Element} b | ||
+ | * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b | ||
+ | */ | ||
+ | function siblingCheck( a, b ) { | ||
+ | var cur = b && a, | ||
+ | diff = cur && a.nodeType === 1 && b.nodeType === 1 && | ||
+ | ( ~b.sourceIndex || MAX_NEGATIVE ) - | ||
+ | ( ~a.sourceIndex || MAX_NEGATIVE ); | ||
+ | |||
+ | // Use IE sourceIndex if available on both nodes | ||
+ | if ( diff ) { | ||
+ | return diff; | ||
+ | } | ||
+ | |||
+ | // Check if b follows a | ||
+ | if ( cur ) { | ||
+ | while ( (cur = cur.nextSibling) ) { | ||
+ | if ( cur === b ) { | ||
+ | return -1; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return a ? 1 : -1; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Returns a function to use in pseudos for input types | ||
+ | * @param {String} type | ||
+ | */ | ||
+ | function createInputPseudo( type ) { | ||
+ | return function( elem ) { | ||
+ | var name = elem.nodeName.toLowerCase(); | ||
+ | return name === "input" && elem.type === type; | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Returns a function to use in pseudos for buttons | ||
+ | * @param {String} type | ||
+ | */ | ||
+ | function createButtonPseudo( type ) { | ||
+ | return function( elem ) { | ||
+ | var name = elem.nodeName.toLowerCase(); | ||
+ | return (name === "input" || name === "button") && elem.type === type; | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Returns a function to use in pseudos for positionals | ||
+ | * @param {Function} fn | ||
+ | */ | ||
+ | function createPositionalPseudo( fn ) { | ||
+ | return markFunction(function( argument ) { | ||
+ | argument = +argument; | ||
+ | return markFunction(function( seed, matches ) { | ||
+ | var j, | ||
+ | matchIndexes = fn( [], seed.length, argument ), | ||
+ | i = matchIndexes.length; | ||
+ | |||
+ | // Match elements found at the specified indexes | ||
+ | while ( i-- ) { | ||
+ | if ( seed[ (j = matchIndexes[i]) ] ) { | ||
+ | seed[j] = !(matches[j] = seed[j]); | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Checks a node for validity as a Sizzle context | ||
+ | * @param {Element|Object=} context | ||
+ | * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value | ||
+ | */ | ||
+ | function testContext( context ) { | ||
+ | return context && typeof context.getElementsByTagName !== "undefined" && context; | ||
+ | } | ||
+ | |||
+ | // Expose support vars for convenience | ||
+ | support = Sizzle.support = {}; | ||
+ | |||
+ | /** | ||
+ | * Detects XML nodes | ||
+ | * @param {Element|Object} elem An element or a document | ||
+ | * @returns {Boolean} True iff elem is a non-HTML XML node | ||
+ | */ | ||
+ | isXML = Sizzle.isXML = function( elem ) { | ||
+ | // documentElement is verified for cases where it doesn't yet exist | ||
+ | // (such as loading iframes in IE - #4833) | ||
+ | var documentElement = elem && (elem.ownerDocument || elem).documentElement; | ||
+ | return documentElement ? documentElement.nodeName !== "HTML" : false; | ||
+ | }; | ||
+ | |||
+ | /** | ||
+ | * Sets document-related variables once based on the current document | ||
+ | * @param {Element|Object} [doc] An element or document object to use to set the document | ||
+ | * @returns {Object} Returns the current document | ||
+ | */ | ||
+ | setDocument = Sizzle.setDocument = function( node ) { | ||
+ | var hasCompare, parent, | ||
+ | doc = node ? node.ownerDocument || node : preferredDoc; | ||
+ | |||
+ | // Return early if doc is invalid or already selected | ||
+ | if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { | ||
+ | return document; | ||
+ | } | ||
+ | |||
+ | // Update global variables | ||
+ | document = doc; | ||
+ | docElem = document.documentElement; | ||
+ | documentIsHTML = !isXML( document ); | ||
+ | |||
+ | // Support: IE 9-11, Edge | ||
+ | // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) | ||
+ | if ( (parent = document.defaultView) && parent.top !== parent ) { | ||
+ | // Support: IE 11 | ||
+ | if ( parent.addEventListener ) { | ||
+ | parent.addEventListener( "unload", unloadHandler, false ); | ||
+ | |||
+ | // Support: IE 9 - 10 only | ||
+ | } else if ( parent.attachEvent ) { | ||
+ | parent.attachEvent( "onunload", unloadHandler ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /* Attributes | ||
+ | ---------------------------------------------------------------------- */ | ||
+ | |||
+ | // Support: IE<8 | ||
+ | // Verify that getAttribute really returns attributes and not properties | ||
+ | // (excepting IE8 booleans) | ||
+ | support.attributes = assert(function( div ) { | ||
+ | div.className = "i"; | ||
+ | return !div.getAttribute("className"); | ||
+ | }); | ||
+ | |||
+ | /* getElement(s)By* | ||
+ | ---------------------------------------------------------------------- */ | ||
+ | |||
+ | // Check if getElementsByTagName("*") returns only elements | ||
+ | support.getElementsByTagName = assert(function( div ) { | ||
+ | div.appendChild( document.createComment("") ); | ||
+ | return !div.getElementsByTagName("*").length; | ||
+ | }); | ||
+ | |||
+ | // Support: IE<9 | ||
+ | support.getElementsByClassName = rnative.test( document.getElementsByClassName ); | ||
+ | |||
+ | // Support: IE<10 | ||
+ | // Check if getElementById returns elements by name | ||
+ | // The broken getElementById methods don't pick up programatically-set names, | ||
+ | // so use a roundabout getElementsByName test | ||
+ | support.getById = assert(function( div ) { | ||
+ | docElem.appendChild( div ).id = expando; | ||
+ | return !document.getElementsByName || !document.getElementsByName( expando ).length; | ||
+ | }); | ||
+ | |||
+ | // ID find and filter | ||
+ | if ( support.getById ) { | ||
+ | Expr.find["ID"] = function( id, context ) { | ||
+ | if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { | ||
+ | var m = context.getElementById( id ); | ||
+ | return m ? [ m ] : []; | ||
+ | } | ||
+ | }; | ||
+ | Expr.filter["ID"] = function( id ) { | ||
+ | var attrId = id.replace( runescape, funescape ); | ||
+ | return function( elem ) { | ||
+ | return elem.getAttribute("id") === attrId; | ||
+ | }; | ||
+ | }; | ||
+ | } else { | ||
+ | // Support: IE6/7 | ||
+ | // getElementById is not reliable as a find shortcut | ||
+ | delete Expr.find["ID"]; | ||
+ | |||
+ | Expr.filter["ID"] = function( id ) { | ||
+ | var attrId = id.replace( runescape, funescape ); | ||
+ | return function( elem ) { | ||
+ | var node = typeof elem.getAttributeNode !== "undefined" && | ||
+ | elem.getAttributeNode("id"); | ||
+ | return node && node.value === attrId; | ||
+ | }; | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | // Tag | ||
+ | Expr.find["TAG"] = support.getElementsByTagName ? | ||
+ | function( tag, context ) { | ||
+ | if ( typeof context.getElementsByTagName !== "undefined" ) { | ||
+ | return context.getElementsByTagName( tag ); | ||
+ | |||
+ | // DocumentFragment nodes don't have gEBTN | ||
+ | } else if ( support.qsa ) { | ||
+ | return context.querySelectorAll( tag ); | ||
+ | } | ||
+ | } : | ||
+ | |||
+ | function( tag, context ) { | ||
+ | var elem, | ||
+ | tmp = [], | ||
+ | i = 0, | ||
+ | // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too | ||
+ | results = context.getElementsByTagName( tag ); | ||
+ | |||
+ | // Filter out possible comments | ||
+ | if ( tag === "*" ) { | ||
+ | while ( (elem = results[i++]) ) { | ||
+ | if ( elem.nodeType === 1 ) { | ||
+ | tmp.push( elem ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return tmp; | ||
+ | } | ||
+ | return results; | ||
+ | }; | ||
+ | |||
+ | // Class | ||
+ | Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { | ||
+ | if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { | ||
+ | return context.getElementsByClassName( className ); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | /* QSA/matchesSelector | ||
+ | ---------------------------------------------------------------------- */ | ||
+ | |||
+ | // QSA and matchesSelector support | ||
+ | |||
+ | // matchesSelector(:active) reports false when true (IE9/Opera 11.5) | ||
+ | rbuggyMatches = []; | ||
+ | |||
+ | // qSa(:focus) reports false when true (Chrome 21) | ||
+ | // We allow this because of a bug in IE8/9 that throws an error | ||
+ | // whenever `document.activeElement` is accessed on an iframe | ||
+ | // So, we allow :focus to pass through QSA all the time to avoid the IE error | ||
+ | // See http://bugs.jquery.com/ticket/13378 | ||
+ | rbuggyQSA = []; | ||
+ | |||
+ | if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { | ||
+ | // Build QSA regex | ||
+ | // Regex strategy adopted from Diego Perini | ||
+ | assert(function( div ) { | ||
+ | // Select is set to empty string on purpose | ||
+ | // This is to test IE's treatment of not explicitly | ||
+ | // setting a boolean content attribute, | ||
+ | // since its presence should be enough | ||
+ | // http://bugs.jquery.com/ticket/12359 | ||
+ | docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" + | ||
+ | "<select id='" + expando + "-\r\\' msallowcapture=''>" + | ||
+ | "<option selected=''></option></select>"; | ||
+ | |||
+ | // Support: IE8, Opera 11-12.16 | ||
+ | // Nothing should be selected when empty strings follow ^= or $= or *= | ||
+ | // The test attribute must be unknown in Opera but "safe" for WinRT | ||
+ | // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section | ||
+ | if ( div.querySelectorAll("[msallowcapture^='']").length ) { | ||
+ | rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); | ||
+ | } | ||
+ | |||
+ | // Support: IE8 | ||
+ | // Boolean attributes and "value" are not treated correctly | ||
+ | if ( !div.querySelectorAll("[selected]").length ) { | ||
+ | rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); | ||
+ | } | ||
+ | |||
+ | // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ | ||
+ | if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { | ||
+ | rbuggyQSA.push("~="); | ||
+ | } | ||
+ | |||
+ | // Webkit/Opera - :checked should return selected option elements | ||
+ | // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked | ||
+ | // IE8 throws error here and will not see later tests | ||
+ | if ( !div.querySelectorAll(":checked").length ) { | ||
+ | rbuggyQSA.push(":checked"); | ||
+ | } | ||
+ | |||
+ | // Support: Safari 8+, iOS 8+ | ||
+ | // https://bugs.webkit.org/show_bug.cgi?id=136851 | ||
+ | // In-page `selector#id sibing-combinator selector` fails | ||
+ | if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { | ||
+ | rbuggyQSA.push(".#.+[+~]"); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | assert(function( div ) { | ||
+ | // Support: Windows 8 Native Apps | ||
+ | // The type and name attributes are restricted during .innerHTML assignment | ||
+ | var input = document.createElement("input"); | ||
+ | input.setAttribute( "type", "hidden" ); | ||
+ | div.appendChild( input ).setAttribute( "name", "D" ); | ||
+ | |||
+ | // Support: IE8 | ||
+ | // Enforce case-sensitivity of name attribute | ||
+ | if ( div.querySelectorAll("[name=d]").length ) { | ||
+ | rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); | ||
+ | } | ||
+ | |||
+ | // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) | ||
+ | // IE8 throws error here and will not see later tests | ||
+ | if ( !div.querySelectorAll(":enabled").length ) { | ||
+ | rbuggyQSA.push( ":enabled", ":disabled" ); | ||
+ | } | ||
+ | |||
+ | // Opera 10-11 does not throw on post-comma invalid pseudos | ||
+ | div.querySelectorAll("*,:x"); | ||
+ | rbuggyQSA.push(",.*:"); | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || | ||
+ | docElem.webkitMatchesSelector || | ||
+ | docElem.mozMatchesSelector || | ||
+ | docElem.oMatchesSelector || | ||
+ | docElem.msMatchesSelector) )) ) { | ||
+ | |||
+ | assert(function( div ) { | ||
+ | // Check to see if it's possible to do matchesSelector | ||
+ | // on a disconnected node (IE 9) | ||
+ | support.disconnectedMatch = matches.call( div, "div" ); | ||
+ | |||
+ | // This should fail with an exception | ||
+ | // Gecko does not error, returns false instead | ||
+ | matches.call( div, "[s!='']:x" ); | ||
+ | rbuggyMatches.push( "!=", pseudos ); | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); | ||
+ | rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); | ||
+ | |||
+ | /* Contains | ||
+ | ---------------------------------------------------------------------- */ | ||
+ | hasCompare = rnative.test( docElem.compareDocumentPosition ); | ||
+ | |||
+ | // Element contains another | ||
+ | // Purposefully self-exclusive | ||
+ | // As in, an element does not contain itself | ||
+ | contains = hasCompare || rnative.test( docElem.contains ) ? | ||
+ | function( a, b ) { | ||
+ | var adown = a.nodeType === 9 ? a.documentElement : a, | ||
+ | bup = b && b.parentNode; | ||
+ | return a === bup || !!( bup && bup.nodeType === 1 && ( | ||
+ | adown.contains ? | ||
+ | adown.contains( bup ) : | ||
+ | a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 | ||
+ | )); | ||
+ | } : | ||
+ | function( a, b ) { | ||
+ | if ( b ) { | ||
+ | while ( (b = b.parentNode) ) { | ||
+ | if ( b === a ) { | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | return false; | ||
+ | }; | ||
+ | |||
+ | /* Sorting | ||
+ | ---------------------------------------------------------------------- */ | ||
+ | |||
+ | // Document order sorting | ||
+ | sortOrder = hasCompare ? | ||
+ | function( a, b ) { | ||
+ | |||
+ | // Flag for duplicate removal | ||
+ | if ( a === b ) { | ||
+ | hasDuplicate = true; | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | // Sort on method existence if only one input has compareDocumentPosition | ||
+ | var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; | ||
+ | if ( compare ) { | ||
+ | return compare; | ||
+ | } | ||
+ | |||
+ | // Calculate position if both inputs belong to the same document | ||
+ | compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? | ||
+ | a.compareDocumentPosition( b ) : | ||
+ | |||
+ | // Otherwise we know they are disconnected | ||
+ | 1; | ||
+ | |||
+ | // Disconnected nodes | ||
+ | if ( compare & 1 || | ||
+ | (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { | ||
+ | |||
+ | // Choose the first element that is related to our preferred document | ||
+ | if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { | ||
+ | return -1; | ||
+ | } | ||
+ | if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { | ||
+ | return 1; | ||
+ | } | ||
+ | |||
+ | // Maintain original order | ||
+ | return sortInput ? | ||
+ | ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : | ||
+ | 0; | ||
+ | } | ||
+ | |||
+ | return compare & 4 ? -1 : 1; | ||
+ | } : | ||
+ | function( a, b ) { | ||
+ | // Exit early if the nodes are identical | ||
+ | if ( a === b ) { | ||
+ | hasDuplicate = true; | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | var cur, | ||
+ | i = 0, | ||
+ | aup = a.parentNode, | ||
+ | bup = b.parentNode, | ||
+ | ap = [ a ], | ||
+ | bp = [ b ]; | ||
+ | |||
+ | // Parentless nodes are either documents or disconnected | ||
+ | if ( !aup || !bup ) { | ||
+ | return a === document ? -1 : | ||
+ | b === document ? 1 : | ||
+ | aup ? -1 : | ||
+ | bup ? 1 : | ||
+ | sortInput ? | ||
+ | ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : | ||
+ | 0; | ||
+ | |||
+ | // If the nodes are siblings, we can do a quick check | ||
+ | } else if ( aup === bup ) { | ||
+ | return siblingCheck( a, b ); | ||
+ | } | ||
+ | |||
+ | // Otherwise we need full lists of their ancestors for comparison | ||
+ | cur = a; | ||
+ | while ( (cur = cur.parentNode) ) { | ||
+ | ap.unshift( cur ); | ||
+ | } | ||
+ | cur = b; | ||
+ | while ( (cur = cur.parentNode) ) { | ||
+ | bp.unshift( cur ); | ||
+ | } | ||
+ | |||
+ | // Walk down the tree looking for a discrepancy | ||
+ | while ( ap[i] === bp[i] ) { | ||
+ | i++; | ||
+ | } | ||
+ | |||
+ | return i ? | ||
+ | // Do a sibling check if the nodes have a common ancestor | ||
+ | siblingCheck( ap[i], bp[i] ) : | ||
+ | |||
+ | // Otherwise nodes in our document sort first | ||
+ | ap[i] === preferredDoc ? -1 : | ||
+ | bp[i] === preferredDoc ? 1 : | ||
+ | 0; | ||
+ | }; | ||
+ | |||
+ | return document; | ||
+ | }; | ||
+ | |||
+ | Sizzle.matches = function( expr, elements ) { | ||
+ | return Sizzle( expr, null, null, elements ); | ||
+ | }; | ||
+ | |||
+ | Sizzle.matchesSelector = function( elem, expr ) { | ||
+ | // Set document vars if needed | ||
+ | if ( ( elem.ownerDocument || elem ) !== document ) { | ||
+ | setDocument( elem ); | ||
+ | } | ||
+ | |||
+ | // Make sure that attribute selectors are quoted | ||
+ | expr = expr.replace( rattributeQuotes, "='$1']" ); | ||
+ | |||
+ | if ( support.matchesSelector && documentIsHTML && | ||
+ | !compilerCache[ expr + " " ] && | ||
+ | ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && | ||
+ | ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { | ||
+ | |||
+ | try { | ||
+ | var ret = matches.call( elem, expr ); | ||
+ | |||
+ | // IE 9's matchesSelector returns false on disconnected nodes | ||
+ | if ( ret || support.disconnectedMatch || | ||
+ | // As well, disconnected nodes are said to be in a document | ||
+ | // fragment in IE 9 | ||
+ | elem.document && elem.document.nodeType !== 11 ) { | ||
+ | return ret; | ||
+ | } | ||
+ | } catch (e) {} | ||
+ | } | ||
+ | |||
+ | return Sizzle( expr, document, null, [ elem ] ).length > 0; | ||
+ | }; | ||
+ | |||
+ | Sizzle.contains = function( context, elem ) { | ||
+ | // Set document vars if needed | ||
+ | if ( ( context.ownerDocument || context ) !== document ) { | ||
+ | setDocument( context ); | ||
+ | } | ||
+ | return contains( context, elem ); | ||
+ | }; | ||
+ | |||
+ | Sizzle.attr = function( elem, name ) { | ||
+ | // Set document vars if needed | ||
+ | if ( ( elem.ownerDocument || elem ) !== document ) { | ||
+ | setDocument( elem ); | ||
+ | } | ||
+ | |||
+ | var fn = Expr.attrHandle[ name.toLowerCase() ], | ||
+ | // Don't get fooled by Object.prototype properties (jQuery #13807) | ||
+ | val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? | ||
+ | fn( elem, name, !documentIsHTML ) : | ||
+ | undefined; | ||
+ | |||
+ | return val !== undefined ? | ||
+ | val : | ||
+ | support.attributes || !documentIsHTML ? | ||
+ | elem.getAttribute( name ) : | ||
+ | (val = elem.getAttributeNode(name)) && val.specified ? | ||
+ | val.value : | ||
+ | null; | ||
+ | }; | ||
+ | |||
+ | Sizzle.error = function( msg ) { | ||
+ | throw new Error( "Syntax error, unrecognized expression: " + msg ); | ||
+ | }; | ||
+ | |||
+ | /** | ||
+ | * Document sorting and removing duplicates | ||
+ | * @param {ArrayLike} results | ||
+ | */ | ||
+ | Sizzle.uniqueSort = function( results ) { | ||
+ | var elem, | ||
+ | duplicates = [], | ||
+ | j = 0, | ||
+ | i = 0; | ||
+ | |||
+ | // Unless we *know* we can detect duplicates, assume their presence | ||
+ | hasDuplicate = !support.detectDuplicates; | ||
+ | sortInput = !support.sortStable && results.slice( 0 ); | ||
+ | results.sort( sortOrder ); | ||
+ | |||
+ | if ( hasDuplicate ) { | ||
+ | while ( (elem = results[i++]) ) { | ||
+ | if ( elem === results[ i ] ) { | ||
+ | j = duplicates.push( i ); | ||
+ | } | ||
+ | } | ||
+ | while ( j-- ) { | ||
+ | results.splice( duplicates[ j ], 1 ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Clear input after sorting to release objects | ||
+ | // See https://github.com/jquery/sizzle/pull/225 | ||
+ | sortInput = null; | ||
+ | |||
+ | return results; | ||
+ | }; | ||
+ | |||
+ | /** | ||
+ | * Utility function for retrieving the text value of an array of DOM nodes | ||
+ | * @param {Array|Element} elem | ||
+ | */ | ||
+ | getText = Sizzle.getText = function( elem ) { | ||
+ | var node, | ||
+ | ret = "", | ||
+ | i = 0, | ||
+ | nodeType = elem.nodeType; | ||
+ | |||
+ | if ( !nodeType ) { | ||
+ | // If no nodeType, this is expected to be an array | ||
+ | while ( (node = elem[i++]) ) { | ||
+ | // Do not traverse comment nodes | ||
+ | ret += getText( node ); | ||
+ | } | ||
+ | } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { | ||
+ | // Use textContent for elements | ||
+ | // innerText usage removed for consistency of new lines (jQuery #11153) | ||
+ | if ( typeof elem.textContent === "string" ) { | ||
+ | return elem.textContent; | ||
+ | } else { | ||
+ | // Traverse its children | ||
+ | for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { | ||
+ | ret += getText( elem ); | ||
+ | } | ||
+ | } | ||
+ | } else if ( nodeType === 3 || nodeType === 4 ) { | ||
+ | return elem.nodeValue; | ||
+ | } | ||
+ | // Do not include comment or processing instruction nodes | ||
+ | |||
+ | return ret; | ||
+ | }; | ||
+ | |||
+ | Expr = Sizzle.selectors = { | ||
+ | |||
+ | // Can be adjusted by the user | ||
+ | cacheLength: 50, | ||
+ | |||
+ | createPseudo: markFunction, | ||
+ | |||
+ | match: matchExpr, | ||
+ | |||
+ | attrHandle: {}, | ||
+ | |||
+ | find: {}, | ||
+ | |||
+ | relative: { | ||
+ | ">": { dir: "parentNode", first: true }, | ||
+ | " ": { dir: "parentNode" }, | ||
+ | "+": { dir: "previousSibling", first: true }, | ||
+ | "~": { dir: "previousSibling" } | ||
+ | }, | ||
+ | |||
+ | preFilter: { | ||
+ | "ATTR": function( match ) { | ||
+ | match[1] = match[1].replace( runescape, funescape ); | ||
+ | |||
+ | // Move the given value to match[3] whether quoted or unquoted | ||
+ | match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); | ||
+ | |||
+ | if ( match[2] === "~=" ) { | ||
+ | match[3] = " " + match[3] + " "; | ||
+ | } | ||
+ | |||
+ | return match.slice( 0, 4 ); | ||
+ | }, | ||
+ | |||
+ | "CHILD": function( match ) { | ||
+ | /* matches from matchExpr["CHILD"] | ||
+ | 1 type (only|nth|...) | ||
+ | 2 what (child|of-type) | ||
+ | 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) | ||
+ | 4 xn-component of xn+y argument ([+-]?\d*n|) | ||
+ | 5 sign of xn-component | ||
+ | 6 x of xn-component | ||
+ | 7 sign of y-component | ||
+ | 8 y of y-component | ||
+ | */ | ||
+ | match[1] = match[1].toLowerCase(); | ||
+ | |||
+ | if ( match[1].slice( 0, 3 ) === "nth" ) { | ||
+ | // nth-* requires argument | ||
+ | if ( !match[3] ) { | ||
+ | Sizzle.error( match[0] ); | ||
+ | } | ||
+ | |||
+ | // numeric x and y parameters for Expr.filter.CHILD | ||
+ | // remember that false/true cast respectively to 0/1 | ||
+ | match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); | ||
+ | match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); | ||
+ | |||
+ | // other types prohibit arguments | ||
+ | } else if ( match[3] ) { | ||
+ | Sizzle.error( match[0] ); | ||
+ | } | ||
+ | |||
+ | return match; | ||
+ | }, | ||
+ | |||
+ | "PSEUDO": function( match ) { | ||
+ | var excess, | ||
+ | unquoted = !match[6] && match[2]; | ||
+ | |||
+ | if ( matchExpr["CHILD"].test( match[0] ) ) { | ||
+ | return null; | ||
+ | } | ||
+ | |||
+ | // Accept quoted arguments as-is | ||
+ | if ( match[3] ) { | ||
+ | match[2] = match[4] || match[5] || ""; | ||
+ | |||
+ | // Strip excess characters from unquoted arguments | ||
+ | } else if ( unquoted && rpseudo.test( unquoted ) && | ||
+ | // Get excess from tokenize (recursively) | ||
+ | (excess = tokenize( unquoted, true )) && | ||
+ | // advance to the next closing parenthesis | ||
+ | (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { | ||
+ | |||
+ | // excess is a negative index | ||
+ | match[0] = match[0].slice( 0, excess ); | ||
+ | match[2] = unquoted.slice( 0, excess ); | ||
+ | } | ||
+ | |||
+ | // Return only captures needed by the pseudo filter method (type and argument) | ||
+ | return match.slice( 0, 3 ); | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | filter: { | ||
+ | |||
+ | "TAG": function( nodeNameSelector ) { | ||
+ | var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); | ||
+ | return nodeNameSelector === "*" ? | ||
+ | function() { return true; } : | ||
+ | function( elem ) { | ||
+ | return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; | ||
+ | }; | ||
+ | }, | ||
+ | |||
+ | "CLASS": function( className ) { | ||
+ | var pattern = classCache[ className + " " ]; | ||
+ | |||
+ | return pattern || | ||
+ | (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && | ||
+ | classCache( className, function( elem ) { | ||
+ | return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); | ||
+ | }); | ||
+ | }, | ||
+ | |||
+ | "ATTR": function( name, operator, check ) { | ||
+ | return function( elem ) { | ||
+ | var result = Sizzle.attr( elem, name ); | ||
+ | |||
+ | if ( result == null ) { | ||
+ | return operator === "!="; | ||
+ | } | ||
+ | if ( !operator ) { | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | result += ""; | ||
+ | |||
+ | return operator === "=" ? result === check : | ||
+ | operator === "!=" ? result !== check : | ||
+ | operator === "^=" ? check && result.indexOf( check ) === 0 : | ||
+ | operator === "*=" ? check && result.indexOf( check ) > -1 : | ||
+ | operator === "$=" ? check && result.slice( -check.length ) === check : | ||
+ | operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : | ||
+ | operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : | ||
+ | false; | ||
+ | }; | ||
+ | }, | ||
+ | |||
+ | "CHILD": function( type, what, argument, first, last ) { | ||
+ | var simple = type.slice( 0, 3 ) !== "nth", | ||
+ | forward = type.slice( -4 ) !== "last", | ||
+ | ofType = what === "of-type"; | ||
+ | |||
+ | return first === 1 && last === 0 ? | ||
+ | |||
+ | // Shortcut for :nth-*(n) | ||
+ | function( elem ) { | ||
+ | return !!elem.parentNode; | ||
+ | } : | ||
+ | |||
+ | function( elem, context, xml ) { | ||
+ | var cache, uniqueCache, outerCache, node, nodeIndex, start, | ||
+ | dir = simple !== forward ? "nextSibling" : "previousSibling", | ||
+ | parent = elem.parentNode, | ||
+ | name = ofType && elem.nodeName.toLowerCase(), | ||
+ | useCache = !xml && !ofType, | ||
+ | diff = false; | ||
+ | |||
+ | if ( parent ) { | ||
+ | |||
+ | // :(first|last|only)-(child|of-type) | ||
+ | if ( simple ) { | ||
+ | while ( dir ) { | ||
+ | node = elem; | ||
+ | while ( (node = node[ dir ]) ) { | ||
+ | if ( ofType ? | ||
+ | node.nodeName.toLowerCase() === name : | ||
+ | node.nodeType === 1 ) { | ||
+ | |||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | // Reverse direction for :only-* (if we haven't yet done so) | ||
+ | start = dir = type === "only" && !start && "nextSibling"; | ||
+ | } | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | start = [ forward ? parent.firstChild : parent.lastChild ]; | ||
+ | |||
+ | // non-xml :nth-child(...) stores cache data on `parent` | ||
+ | if ( forward && useCache ) { | ||
+ | |||
+ | // Seek `elem` from a previously-cached index | ||
+ | |||
+ | // ...in a gzip-friendly way | ||
+ | node = parent; | ||
+ | outerCache = node[ expando ] || (node[ expando ] = {}); | ||
+ | |||
+ | // Support: IE <9 only | ||
+ | // Defend against cloned attroperties (jQuery gh-1709) | ||
+ | uniqueCache = outerCache[ node.uniqueID ] || | ||
+ | (outerCache[ node.uniqueID ] = {}); | ||
+ | |||
+ | cache = uniqueCache[ type ] || []; | ||
+ | nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; | ||
+ | diff = nodeIndex && cache[ 2 ]; | ||
+ | node = nodeIndex && parent.childNodes[ nodeIndex ]; | ||
+ | |||
+ | while ( (node = ++nodeIndex && node && node[ dir ] || | ||
+ | |||
+ | // Fallback to seeking `elem` from the start | ||
+ | (diff = nodeIndex = 0) || start.pop()) ) { | ||
+ | |||
+ | // When found, cache indexes on `parent` and break | ||
+ | if ( node.nodeType === 1 && ++diff && node === elem ) { | ||
+ | uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } else { | ||
+ | // Use previously-cached element index if available | ||
+ | if ( useCache ) { | ||
+ | // ...in a gzip-friendly way | ||
+ | node = elem; | ||
+ | outerCache = node[ expando ] || (node[ expando ] = {}); | ||
+ | |||
+ | // Support: IE <9 only | ||
+ | // Defend against cloned attroperties (jQuery gh-1709) | ||
+ | uniqueCache = outerCache[ node.uniqueID ] || | ||
+ | (outerCache[ node.uniqueID ] = {}); | ||
+ | |||
+ | cache = uniqueCache[ type ] || []; | ||
+ | nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; | ||
+ | diff = nodeIndex; | ||
+ | } | ||
+ | |||
+ | // xml :nth-child(...) | ||
+ | // or :nth-last-child(...) or :nth(-last)?-of-type(...) | ||
+ | if ( diff === false ) { | ||
+ | // Use the same loop as above to seek `elem` from the start | ||
+ | while ( (node = ++nodeIndex && node && node[ dir ] || | ||
+ | (diff = nodeIndex = 0) || start.pop()) ) { | ||
+ | |||
+ | if ( ( ofType ? | ||
+ | node.nodeName.toLowerCase() === name : | ||
+ | node.nodeType === 1 ) && | ||
+ | ++diff ) { | ||
+ | |||
+ | // Cache the index of each encountered element | ||
+ | if ( useCache ) { | ||
+ | outerCache = node[ expando ] || (node[ expando ] = {}); | ||
+ | |||
+ | // Support: IE <9 only | ||
+ | // Defend against cloned attroperties (jQuery gh-1709) | ||
+ | uniqueCache = outerCache[ node.uniqueID ] || | ||
+ | (outerCache[ node.uniqueID ] = {}); | ||
+ | |||
+ | uniqueCache[ type ] = [ dirruns, diff ]; | ||
+ | } | ||
+ | |||
+ | if ( node === elem ) { | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Incorporate the offset, then check against cycle size | ||
+ | diff -= last; | ||
+ | return diff === first || ( diff % first === 0 && diff / first >= 0 ); | ||
+ | } | ||
+ | }; | ||
+ | }, | ||
+ | |||
+ | "PSEUDO": function( pseudo, argument ) { | ||
+ | // pseudo-class names are case-insensitive | ||
+ | // http://www.w3.org/TR/selectors/#pseudo-classes | ||
+ | // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters | ||
+ | // Remember that setFilters inherits from pseudos | ||
+ | var args, | ||
+ | fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || | ||
+ | Sizzle.error( "unsupported pseudo: " + pseudo ); | ||
+ | |||
+ | // The user may use createPseudo to indicate that | ||
+ | // arguments are needed to create the filter function | ||
+ | // just as Sizzle does | ||
+ | if ( fn[ expando ] ) { | ||
+ | return fn( argument ); | ||
+ | } | ||
+ | |||
+ | // But maintain support for old signatures | ||
+ | if ( fn.length > 1 ) { | ||
+ | args = [ pseudo, pseudo, "", argument ]; | ||
+ | return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? | ||
+ | markFunction(function( seed, matches ) { | ||
+ | var idx, | ||
+ | matched = fn( seed, argument ), | ||
+ | i = matched.length; | ||
+ | while ( i-- ) { | ||
+ | idx = indexOf( seed, matched[i] ); | ||
+ | seed[ idx ] = !( matches[ idx ] = matched[i] ); | ||
+ | } | ||
+ | }) : | ||
+ | function( elem ) { | ||
+ | return fn( elem, 0, args ); | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | return fn; | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | pseudos: { | ||
+ | // Potentially complex pseudos | ||
+ | "not": markFunction(function( selector ) { | ||
+ | // Trim the selector passed to compile | ||
+ | // to avoid treating leading and trailing | ||
+ | // spaces as combinators | ||
+ | var input = [], | ||
+ | results = [], | ||
+ | matcher = compile( selector.replace( rtrim, "$1" ) ); | ||
+ | |||
+ | return matcher[ expando ] ? | ||
+ | markFunction(function( seed, matches, context, xml ) { | ||
+ | var elem, | ||
+ | unmatched = matcher( seed, null, xml, [] ), | ||
+ | i = seed.length; | ||
+ | |||
+ | // Match elements unmatched by `matcher` | ||
+ | while ( i-- ) { | ||
+ | if ( (elem = unmatched[i]) ) { | ||
+ | seed[i] = !(matches[i] = elem); | ||
+ | } | ||
+ | } | ||
+ | }) : | ||
+ | function( elem, context, xml ) { | ||
+ | input[0] = elem; | ||
+ | matcher( input, null, xml, results ); | ||
+ | // Don't keep the element (issue #299) | ||
+ | input[0] = null; | ||
+ | return !results.pop(); | ||
+ | }; | ||
+ | }), | ||
+ | |||
+ | "has": markFunction(function( selector ) { | ||
+ | return function( elem ) { | ||
+ | return Sizzle( selector, elem ).length > 0; | ||
+ | }; | ||
+ | }), | ||
+ | |||
+ | "contains": markFunction(function( text ) { | ||
+ | text = text.replace( runescape, funescape ); | ||
+ | return function( elem ) { | ||
+ | return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; | ||
+ | }; | ||
+ | }), | ||
+ | |||
+ | // "Whether an element is represented by a :lang() selector | ||
+ | // is based solely on the element's language value | ||
+ | // being equal to the identifier C, | ||
+ | // or beginning with the identifier C immediately followed by "-". | ||
+ | // The matching of C against the element's language value is performed case-insensitively. | ||
+ | // The identifier C does not have to be a valid language name." | ||
+ | // http://www.w3.org/TR/selectors/#lang-pseudo | ||
+ | "lang": markFunction( function( lang ) { | ||
+ | // lang value must be a valid identifier | ||
+ | if ( !ridentifier.test(lang || "") ) { | ||
+ | Sizzle.error( "unsupported lang: " + lang ); | ||
+ | } | ||
+ | lang = lang.replace( runescape, funescape ).toLowerCase(); | ||
+ | return function( elem ) { | ||
+ | var elemLang; | ||
+ | do { | ||
+ | if ( (elemLang = documentIsHTML ? | ||
+ | elem.lang : | ||
+ | elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { | ||
+ | |||
+ | elemLang = elemLang.toLowerCase(); | ||
+ | return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; | ||
+ | } | ||
+ | } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); | ||
+ | return false; | ||
+ | }; | ||
+ | }), | ||
+ | |||
+ | // Miscellaneous | ||
+ | "target": function( elem ) { | ||
+ | var hash = window.location && window.location.hash; | ||
+ | return hash && hash.slice( 1 ) === elem.id; | ||
+ | }, | ||
+ | |||
+ | "root": function( elem ) { | ||
+ | return elem === docElem; | ||
+ | }, | ||
+ | |||
+ | "focus": function( elem ) { | ||
+ | return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); | ||
+ | }, | ||
+ | |||
+ | // Boolean properties | ||
+ | "enabled": function( elem ) { | ||
+ | return elem.disabled === false; | ||
+ | }, | ||
+ | |||
+ | "disabled": function( elem ) { | ||
+ | return elem.disabled === true; | ||
+ | }, | ||
+ | |||
+ | "checked": function( elem ) { | ||
+ | // In CSS3, :checked should return both checked and selected elements | ||
+ | // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked | ||
+ | var nodeName = elem.nodeName.toLowerCase(); | ||
+ | return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); | ||
+ | }, | ||
+ | |||
+ | "selected": function( elem ) { | ||
+ | // Accessing this property makes selected-by-default | ||
+ | // options in Safari work properly | ||
+ | if ( elem.parentNode ) { | ||
+ | elem.parentNode.selectedIndex; | ||
+ | } | ||
+ | |||
+ | return elem.selected === true; | ||
+ | }, | ||
+ | |||
+ | // Contents | ||
+ | "empty": function( elem ) { | ||
+ | // http://www.w3.org/TR/selectors/#empty-pseudo | ||
+ | // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), | ||
+ | // but not by others (comment: 8; processing instruction: 7; etc.) | ||
+ | // nodeType < 6 works because attributes (2) do not appear as children | ||
+ | for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { | ||
+ | if ( elem.nodeType < 6 ) { | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | return true; | ||
+ | }, | ||
+ | |||
+ | "parent": function( elem ) { | ||
+ | return !Expr.pseudos["empty"]( elem ); | ||
+ | }, | ||
+ | |||
+ | // Element/input types | ||
+ | "header": function( elem ) { | ||
+ | return rheader.test( elem.nodeName ); | ||
+ | }, | ||
+ | |||
+ | "input": function( elem ) { | ||
+ | return rinputs.test( elem.nodeName ); | ||
+ | }, | ||
+ | |||
+ | "button": function( elem ) { | ||
+ | var name = elem.nodeName.toLowerCase(); | ||
+ | return name === "input" && elem.type === "button" || name === "button"; | ||
+ | }, | ||
+ | |||
+ | "text": function( elem ) { | ||
+ | var attr; | ||
+ | return elem.nodeName.toLowerCase() === "input" && | ||
+ | elem.type === "text" && | ||
+ | |||
+ | // Support: IE<8 | ||
+ | // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" | ||
+ | ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); | ||
+ | }, | ||
+ | |||
+ | // Position-in-collection | ||
+ | "first": createPositionalPseudo(function() { | ||
+ | return [ 0 ]; | ||
+ | }), | ||
+ | |||
+ | "last": createPositionalPseudo(function( matchIndexes, length ) { | ||
+ | return [ length - 1 ]; | ||
+ | }), | ||
+ | |||
+ | "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { | ||
+ | return [ argument < 0 ? argument + length : argument ]; | ||
+ | }), | ||
+ | |||
+ | "even": createPositionalPseudo(function( matchIndexes, length ) { | ||
+ | var i = 0; | ||
+ | for ( ; i < length; i += 2 ) { | ||
+ | matchIndexes.push( i ); | ||
+ | } | ||
+ | return matchIndexes; | ||
+ | }), | ||
+ | |||
+ | "odd": createPositionalPseudo(function( matchIndexes, length ) { | ||
+ | var i = 1; | ||
+ | for ( ; i < length; i += 2 ) { | ||
+ | matchIndexes.push( i ); | ||
+ | } | ||
+ | return matchIndexes; | ||
+ | }), | ||
+ | |||
+ | "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { | ||
+ | var i = argument < 0 ? argument + length : argument; | ||
+ | for ( ; --i >= 0; ) { | ||
+ | matchIndexes.push( i ); | ||
+ | } | ||
+ | return matchIndexes; | ||
+ | }), | ||
+ | |||
+ | "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { | ||
+ | var i = argument < 0 ? argument + length : argument; | ||
+ | for ( ; ++i < length; ) { | ||
+ | matchIndexes.push( i ); | ||
+ | } | ||
+ | return matchIndexes; | ||
+ | }) | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | Expr.pseudos["nth"] = Expr.pseudos["eq"]; | ||
+ | |||
+ | // Add button/input type pseudos | ||
+ | for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { | ||
+ | Expr.pseudos[ i ] = createInputPseudo( i ); | ||
+ | } | ||
+ | for ( i in { submit: true, reset: true } ) { | ||
+ | Expr.pseudos[ i ] = createButtonPseudo( i ); | ||
+ | } | ||
+ | |||
+ | // Easy API for creating new setFilters | ||
+ | function setFilters() {} | ||
+ | setFilters.prototype = Expr.filters = Expr.pseudos; | ||
+ | Expr.setFilters = new setFilters(); | ||
+ | |||
+ | tokenize = Sizzle.tokenize = function( selector, parseOnly ) { | ||
+ | var matched, match, tokens, type, | ||
+ | soFar, groups, preFilters, | ||
+ | cached = tokenCache[ selector + " " ]; | ||
+ | |||
+ | if ( cached ) { | ||
+ | return parseOnly ? 0 : cached.slice( 0 ); | ||
+ | } | ||
+ | |||
+ | soFar = selector; | ||
+ | groups = []; | ||
+ | preFilters = Expr.preFilter; | ||
+ | |||
+ | while ( soFar ) { | ||
+ | |||
+ | // Comma and first run | ||
+ | if ( !matched || (match = rcomma.exec( soFar )) ) { | ||
+ | if ( match ) { | ||
+ | // Don't consume trailing commas as valid | ||
+ | soFar = soFar.slice( match[0].length ) || soFar; | ||
+ | } | ||
+ | groups.push( (tokens = []) ); | ||
+ | } | ||
+ | |||
+ | matched = false; | ||
+ | |||
+ | // Combinators | ||
+ | if ( (match = rcombinators.exec( soFar )) ) { | ||
+ | matched = match.shift(); | ||
+ | tokens.push({ | ||
+ | value: matched, | ||
+ | // Cast descendant combinators to space | ||
+ | type: match[0].replace( rtrim, " " ) | ||
+ | }); | ||
+ | soFar = soFar.slice( matched.length ); | ||
+ | } | ||
+ | |||
+ | // Filters | ||
+ | for ( type in Expr.filter ) { | ||
+ | if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || | ||
+ | (match = preFilters[ type ]( match ))) ) { | ||
+ | matched = match.shift(); | ||
+ | tokens.push({ | ||
+ | value: matched, | ||
+ | type: type, | ||
+ | matches: match | ||
+ | }); | ||
+ | soFar = soFar.slice( matched.length ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ( !matched ) { | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Return the length of the invalid excess | ||
+ | // if we're just parsing | ||
+ | // Otherwise, throw an error or return tokens | ||
+ | return parseOnly ? | ||
+ | soFar.length : | ||
+ | soFar ? | ||
+ | Sizzle.error( selector ) : | ||
+ | // Cache the tokens | ||
+ | tokenCache( selector, groups ).slice( 0 ); | ||
+ | }; | ||
+ | |||
+ | function toSelector( tokens ) { | ||
+ | var i = 0, | ||
+ | len = tokens.length, | ||
+ | selector = ""; | ||
+ | for ( ; i < len; i++ ) { | ||
+ | selector += tokens[i].value; | ||
+ | } | ||
+ | return selector; | ||
+ | } | ||
+ | |||
+ | function addCombinator( matcher, combinator, base ) { | ||
+ | var dir = combinator.dir, | ||
+ | checkNonElements = base && dir === "parentNode", | ||
+ | doneName = done++; | ||
+ | |||
+ | return combinator.first ? | ||
+ | // Check against closest ancestor/preceding element | ||
+ | function( elem, context, xml ) { | ||
+ | while ( (elem = elem[ dir ]) ) { | ||
+ | if ( elem.nodeType === 1 || checkNonElements ) { | ||
+ | return matcher( elem, context, xml ); | ||
+ | } | ||
+ | } | ||
+ | } : | ||
+ | |||
+ | // Check against all ancestor/preceding elements | ||
+ | function( elem, context, xml ) { | ||
+ | var oldCache, uniqueCache, outerCache, | ||
+ | newCache = [ dirruns, doneName ]; | ||
+ | |||
+ | // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching | ||
+ | if ( xml ) { | ||
+ | while ( (elem = elem[ dir ]) ) { | ||
+ | if ( elem.nodeType === 1 || checkNonElements ) { | ||
+ | if ( matcher( elem, context, xml ) ) { | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } else { | ||
+ | while ( (elem = elem[ dir ]) ) { | ||
+ | if ( elem.nodeType === 1 || checkNonElements ) { | ||
+ | outerCache = elem[ expando ] || (elem[ expando ] = {}); | ||
+ | |||
+ | // Support: IE <9 only | ||
+ | // Defend against cloned attroperties (jQuery gh-1709) | ||
+ | uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); | ||
+ | |||
+ | if ( (oldCache = uniqueCache[ dir ]) && | ||
+ | oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { | ||
+ | |||
+ | // Assign to newCache so results back-propagate to previous elements | ||
+ | return (newCache[ 2 ] = oldCache[ 2 ]); | ||
+ | } else { | ||
+ | // Reuse newcache so results back-propagate to previous elements | ||
+ | uniqueCache[ dir ] = newCache; | ||
+ | |||
+ | // A match means we're done; a fail means we have to keep checking | ||
+ | if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | function elementMatcher( matchers ) { | ||
+ | return matchers.length > 1 ? | ||
+ | function( elem, context, xml ) { | ||
+ | var i = matchers.length; | ||
+ | while ( i-- ) { | ||
+ | if ( !matchers[i]( elem, context, xml ) ) { | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | return true; | ||
+ | } : | ||
+ | matchers[0]; | ||
+ | } | ||
+ | |||
+ | function multipleContexts( selector, contexts, results ) { | ||
+ | var i = 0, | ||
+ | len = contexts.length; | ||
+ | for ( ; i < len; i++ ) { | ||
+ | Sizzle( selector, contexts[i], results ); | ||
+ | } | ||
+ | return results; | ||
+ | } | ||
+ | |||
+ | function condense( unmatched, map, filter, context, xml ) { | ||
+ | var elem, | ||
+ | newUnmatched = [], | ||
+ | i = 0, | ||
+ | len = unmatched.length, | ||
+ | mapped = map != null; | ||
+ | |||
+ | for ( ; i < len; i++ ) { | ||
+ | if ( (elem = unmatched[i]) ) { | ||
+ | if ( !filter || filter( elem, context, xml ) ) { | ||
+ | newUnmatched.push( elem ); | ||
+ | if ( mapped ) { | ||
+ | map.push( i ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return newUnmatched; | ||
+ | } | ||
+ | |||
+ | function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { | ||
+ | if ( postFilter && !postFilter[ expando ] ) { | ||
+ | postFilter = setMatcher( postFilter ); | ||
+ | } | ||
+ | if ( postFinder && !postFinder[ expando ] ) { | ||
+ | postFinder = setMatcher( postFinder, postSelector ); | ||
+ | } | ||
+ | return markFunction(function( seed, results, context, xml ) { | ||
+ | var temp, i, elem, | ||
+ | preMap = [], | ||
+ | postMap = [], | ||
+ | preexisting = results.length, | ||
+ | |||
+ | // Get initial elements from seed or context | ||
+ | elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), | ||
+ | |||
+ | // Prefilter to get matcher input, preserving a map for seed-results synchronization | ||
+ | matcherIn = preFilter && ( seed || !selector ) ? | ||
+ | condense( elems, preMap, preFilter, context, xml ) : | ||
+ | elems, | ||
+ | |||
+ | matcherOut = matcher ? | ||
+ | // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, | ||
+ | postFinder || ( seed ? preFilter : preexisting || postFilter ) ? | ||
+ | |||
+ | // ...intermediate processing is necessary | ||
+ | [] : | ||
+ | |||
+ | // ...otherwise use results directly | ||
+ | results : | ||
+ | matcherIn; | ||
+ | |||
+ | // Find primary matches | ||
+ | if ( matcher ) { | ||
+ | matcher( matcherIn, matcherOut, context, xml ); | ||
+ | } | ||
+ | |||
+ | // Apply postFilter | ||
+ | if ( postFilter ) { | ||
+ | temp = condense( matcherOut, postMap ); | ||
+ | postFilter( temp, [], context, xml ); | ||
+ | |||
+ | // Un-match failing elements by moving them back to matcherIn | ||
+ | i = temp.length; | ||
+ | while ( i-- ) { | ||
+ | if ( (elem = temp[i]) ) { | ||
+ | matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ( seed ) { | ||
+ | if ( postFinder || preFilter ) { | ||
+ | if ( postFinder ) { | ||
+ | // Get the final matcherOut by condensing this intermediate into postFinder contexts | ||
+ | temp = []; | ||
+ | i = matcherOut.length; | ||
+ | while ( i-- ) { | ||
+ | if ( (elem = matcherOut[i]) ) { | ||
+ | // Restore matcherIn since elem is not yet a final match | ||
+ | temp.push( (matcherIn[i] = elem) ); | ||
+ | } | ||
+ | } | ||
+ | postFinder( null, (matcherOut = []), temp, xml ); | ||
+ | } | ||
+ | |||
+ | // Move matched elements from seed to results to keep them synchronized | ||
+ | i = matcherOut.length; | ||
+ | while ( i-- ) { | ||
+ | if ( (elem = matcherOut[i]) && | ||
+ | (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { | ||
+ | |||
+ | seed[temp] = !(results[temp] = elem); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Add elements to results, through postFinder if defined | ||
+ | } else { | ||
+ | matcherOut = condense( | ||
+ | matcherOut === results ? | ||
+ | matcherOut.splice( preexisting, matcherOut.length ) : | ||
+ | matcherOut | ||
+ | ); | ||
+ | if ( postFinder ) { | ||
+ | postFinder( null, results, matcherOut, xml ); | ||
+ | } else { | ||
+ | push.apply( results, matcherOut ); | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | function matcherFromTokens( tokens ) { | ||
+ | var checkContext, matcher, j, | ||
+ | len = tokens.length, | ||
+ | leadingRelative = Expr.relative[ tokens[0].type ], | ||
+ | implicitRelative = leadingRelative || Expr.relative[" "], | ||
+ | i = leadingRelative ? 1 : 0, | ||
+ | |||
+ | // The foundational matcher ensures that elements are reachable from top-level context(s) | ||
+ | matchContext = addCombinator( function( elem ) { | ||
+ | return elem === checkContext; | ||
+ | }, implicitRelative, true ), | ||
+ | matchAnyContext = addCombinator( function( elem ) { | ||
+ | return indexOf( checkContext, elem ) > -1; | ||
+ | }, implicitRelative, true ), | ||
+ | matchers = [ function( elem, context, xml ) { | ||
+ | var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( | ||
+ | (checkContext = context).nodeType ? | ||
+ | matchContext( elem, context, xml ) : | ||
+ | matchAnyContext( elem, context, xml ) ); | ||
+ | // Avoid hanging onto element (issue #299) | ||
+ | checkContext = null; | ||
+ | return ret; | ||
+ | } ]; | ||
+ | |||
+ | for ( ; i < len; i++ ) { | ||
+ | if ( (matcher = Expr.relative[ tokens[i].type ]) ) { | ||
+ | matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; | ||
+ | } else { | ||
+ | matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); | ||
+ | |||
+ | // Return special upon seeing a positional matcher | ||
+ | if ( matcher[ expando ] ) { | ||
+ | // Find the next relative operator (if any) for proper handling | ||
+ | j = ++i; | ||
+ | for ( ; j < len; j++ ) { | ||
+ | if ( Expr.relative[ tokens[j].type ] ) { | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | return setMatcher( | ||
+ | i > 1 && elementMatcher( matchers ), | ||
+ | i > 1 && toSelector( | ||
+ | // If the preceding token was a descendant combinator, insert an implicit any-element `*` | ||
+ | tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) | ||
+ | ).replace( rtrim, "$1" ), | ||
+ | matcher, | ||
+ | i < j && matcherFromTokens( tokens.slice( i, j ) ), | ||
+ | j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), | ||
+ | j < len && toSelector( tokens ) | ||
+ | ); | ||
+ | } | ||
+ | matchers.push( matcher ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return elementMatcher( matchers ); | ||
+ | } | ||
+ | |||
+ | function matcherFromGroupMatchers( elementMatchers, setMatchers ) { | ||
+ | var bySet = setMatchers.length > 0, | ||
+ | byElement = elementMatchers.length > 0, | ||
+ | superMatcher = function( seed, context, xml, results, outermost ) { | ||
+ | var elem, j, matcher, | ||
+ | matchedCount = 0, | ||
+ | i = "0", | ||
+ | unmatched = seed && [], | ||
+ | setMatched = [], | ||
+ | contextBackup = outermostContext, | ||
+ | // We must always have either seed elements or outermost context | ||
+ | elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), | ||
+ | // Use integer dirruns iff this is the outermost matcher | ||
+ | dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), | ||
+ | len = elems.length; | ||
+ | |||
+ | if ( outermost ) { | ||
+ | outermostContext = context === document || context || outermost; | ||
+ | } | ||
+ | |||
+ | // Add elements passing elementMatchers directly to results | ||
+ | // Support: IE<9, Safari | ||
+ | // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id | ||
+ | for ( ; i !== len && (elem = elems[i]) != null; i++ ) { | ||
+ | if ( byElement && elem ) { | ||
+ | j = 0; | ||
+ | if ( !context && elem.ownerDocument !== document ) { | ||
+ | setDocument( elem ); | ||
+ | xml = !documentIsHTML; | ||
+ | } | ||
+ | while ( (matcher = elementMatchers[j++]) ) { | ||
+ | if ( matcher( elem, context || document, xml) ) { | ||
+ | results.push( elem ); | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | if ( outermost ) { | ||
+ | dirruns = dirrunsUnique; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Track unmatched elements for set filters | ||
+ | if ( bySet ) { | ||
+ | // They will have gone through all possible matchers | ||
+ | if ( (elem = !matcher && elem) ) { | ||
+ | matchedCount--; | ||
+ | } | ||
+ | |||
+ | // Lengthen the array for every element, matched or not | ||
+ | if ( seed ) { | ||
+ | unmatched.push( elem ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // `i` is now the count of elements visited above, and adding it to `matchedCount` | ||
+ | // makes the latter nonnegative. | ||
+ | matchedCount += i; | ||
+ | |||
+ | // Apply set filters to unmatched elements | ||
+ | // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` | ||
+ | // equals `i`), unless we didn't visit _any_ elements in the above loop because we have | ||
+ | // no element matchers and no seed. | ||
+ | // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that | ||
+ | // case, which will result in a "00" `matchedCount` that differs from `i` but is also | ||
+ | // numerically zero. | ||
+ | if ( bySet && i !== matchedCount ) { | ||
+ | j = 0; | ||
+ | while ( (matcher = setMatchers[j++]) ) { | ||
+ | matcher( unmatched, setMatched, context, xml ); | ||
+ | } | ||
+ | |||
+ | if ( seed ) { | ||
+ | // Reintegrate element matches to eliminate the need for sorting | ||
+ | if ( matchedCount > 0 ) { | ||
+ | while ( i-- ) { | ||
+ | if ( !(unmatched[i] || setMatched[i]) ) { | ||
+ | setMatched[i] = pop.call( results ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Discard index placeholder values to get only actual matches | ||
+ | setMatched = condense( setMatched ); | ||
+ | } | ||
+ | |||
+ | // Add matches to results | ||
+ | push.apply( results, setMatched ); | ||
+ | |||
+ | // Seedless set matches succeeding multiple successful matchers stipulate sorting | ||
+ | if ( outermost && !seed && setMatched.length > 0 && | ||
+ | ( matchedCount + setMatchers.length ) > 1 ) { | ||
+ | |||
+ | Sizzle.uniqueSort( results ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Override manipulation of globals by nested matchers | ||
+ | if ( outermost ) { | ||
+ | dirruns = dirrunsUnique; | ||
+ | outermostContext = contextBackup; | ||
+ | } | ||
+ | |||
+ | return unmatched; | ||
+ | }; | ||
+ | |||
+ | return bySet ? | ||
+ | markFunction( superMatcher ) : | ||
+ | superMatcher; | ||
+ | } | ||
+ | |||
+ | compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { | ||
+ | var i, | ||
+ | setMatchers = [], | ||
+ | elementMatchers = [], | ||
+ | cached = compilerCache[ selector + " " ]; | ||
+ | |||
+ | if ( !cached ) { | ||
+ | // Generate a function of recursive functions that can be used to check each element | ||
+ | if ( !match ) { | ||
+ | match = tokenize( selector ); | ||
+ | } | ||
+ | i = match.length; | ||
+ | while ( i-- ) { | ||
+ | cached = matcherFromTokens( match[i] ); | ||
+ | if ( cached[ expando ] ) { | ||
+ | setMatchers.push( cached ); | ||
+ | } else { | ||
+ | elementMatchers.push( cached ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Cache the compiled function | ||
+ | cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); | ||
+ | |||
+ | // Save selector and tokenization | ||
+ | cached.selector = selector; | ||
+ | } | ||
+ | return cached; | ||
+ | }; | ||
+ | |||
+ | /** | ||
+ | * A low-level selection function that works with Sizzle's compiled | ||
+ | * selector functions | ||
+ | * @param {String|Function} selector A selector or a pre-compiled | ||
+ | * selector function built with Sizzle.compile | ||
+ | * @param {Element} context | ||
+ | * @param {Array} [results] | ||
+ | * @param {Array} [seed] A set of elements to match against | ||
+ | */ | ||
+ | select = Sizzle.select = function( selector, context, results, seed ) { | ||
+ | var i, tokens, token, type, find, | ||
+ | compiled = typeof selector === "function" && selector, | ||
+ | match = !seed && tokenize( (selector = compiled.selector || selector) ); | ||
+ | |||
+ | results = results || []; | ||
+ | |||
+ | // Try to minimize operations if there is only one selector in the list and no seed | ||
+ | // (the latter of which guarantees us context) | ||
+ | if ( match.length === 1 ) { | ||
+ | |||
+ | // Reduce context if the leading compound selector is an ID | ||
+ | tokens = match[0] = match[0].slice( 0 ); | ||
+ | if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && | ||
+ | support.getById && context.nodeType === 9 && documentIsHTML && | ||
+ | Expr.relative[ tokens[1].type ] ) { | ||
+ | |||
+ | context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; | ||
+ | if ( !context ) { | ||
+ | return results; | ||
+ | |||
+ | // Precompiled matchers will still verify ancestry, so step up a level | ||
+ | } else if ( compiled ) { | ||
+ | context = context.parentNode; | ||
+ | } | ||
+ | |||
+ | selector = selector.slice( tokens.shift().value.length ); | ||
+ | } | ||
+ | |||
+ | // Fetch a seed set for right-to-left matching | ||
+ | i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; | ||
+ | while ( i-- ) { | ||
+ | token = tokens[i]; | ||
+ | |||
+ | // Abort if we hit a combinator | ||
+ | if ( Expr.relative[ (type = token.type) ] ) { | ||
+ | break; | ||
+ | } | ||
+ | if ( (find = Expr.find[ type ]) ) { | ||
+ | // Search, expanding context for leading sibling combinators | ||
+ | if ( (seed = find( | ||
+ | token.matches[0].replace( runescape, funescape ), | ||
+ | rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context | ||
+ | )) ) { | ||
+ | |||
+ | // If seed is empty or no tokens remain, we can return early | ||
+ | tokens.splice( i, 1 ); | ||
+ | selector = seed.length && toSelector( tokens ); | ||
+ | if ( !selector ) { | ||
+ | push.apply( results, seed ); | ||
+ | return results; | ||
+ | } | ||
+ | |||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Compile and execute a filtering function if one is not provided | ||
+ | // Provide `match` to avoid retokenization if we modified the selector above | ||
+ | ( compiled || compile( selector, match ) )( | ||
+ | seed, | ||
+ | context, | ||
+ | !documentIsHTML, | ||
+ | results, | ||
+ | !context || rsibling.test( selector ) && testContext( context.parentNode ) || context | ||
+ | ); | ||
+ | return results; | ||
+ | }; | ||
+ | |||
+ | // One-time assignments | ||
+ | |||
+ | // Sort stability | ||
+ | support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; | ||
+ | |||
+ | // Support: Chrome 14-35+ | ||
+ | // Always assume duplicates if they aren't passed to the comparison function | ||
+ | support.detectDuplicates = !!hasDuplicate; | ||
+ | |||
+ | // Initialize against the default document | ||
+ | setDocument(); | ||
+ | |||
+ | // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) | ||
+ | // Detached nodes confoundingly follow *each other* | ||
+ | support.sortDetached = assert(function( div1 ) { | ||
+ | // Should return 1, but returns 4 (following) | ||
+ | return div1.compareDocumentPosition( document.createElement("div") ) & 1; | ||
+ | }); | ||
+ | |||
+ | // Support: IE<8 | ||
+ | // Prevent attribute/property "interpolation" | ||
+ | // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx | ||
+ | if ( !assert(function( div ) { | ||
+ | div.innerHTML = "<a href='#'></a>"; | ||
+ | return div.firstChild.getAttribute("href") === "#" ; | ||
+ | }) ) { | ||
+ | addHandle( "type|href|height|width", function( elem, name, isXML ) { | ||
+ | if ( !isXML ) { | ||
+ | return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Use defaultValue in place of getAttribute("value") | ||
+ | if ( !support.attributes || !assert(function( div ) { | ||
+ | div.innerHTML = "<input/>"; | ||
+ | div.firstChild.setAttribute( "value", "" ); | ||
+ | return div.firstChild.getAttribute( "value" ) === ""; | ||
+ | }) ) { | ||
+ | addHandle( "value", function( elem, name, isXML ) { | ||
+ | if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { | ||
+ | return elem.defaultValue; | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Use getAttributeNode to fetch booleans when getAttribute lies | ||
+ | if ( !assert(function( div ) { | ||
+ | return div.getAttribute("disabled") == null; | ||
+ | }) ) { | ||
+ | addHandle( booleans, function( elem, name, isXML ) { | ||
+ | var val; | ||
+ | if ( !isXML ) { | ||
+ | return elem[ name ] === true ? name.toLowerCase() : | ||
+ | (val = elem.getAttributeNode( name )) && val.specified ? | ||
+ | val.value : | ||
+ | null; | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | return Sizzle; | ||
+ | |||
+ | })( window ); | ||
+ | |||
+ | |||
+ | |||
+ | jQuery.find = Sizzle; | ||
+ | jQuery.expr = Sizzle.selectors; | ||
+ | jQuery.expr[ ":" ] = jQuery.expr.pseudos; | ||
+ | jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; | ||
+ | jQuery.text = Sizzle.getText; | ||
+ | jQuery.isXMLDoc = Sizzle.isXML; | ||
+ | jQuery.contains = Sizzle.contains; | ||
+ | |||
+ | |||
+ | |||
+ | var dir = function( elem, dir, until ) { | ||
+ | var matched = [], | ||
+ | truncate = until !== undefined; | ||
+ | |||
+ | while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { | ||
+ | if ( elem.nodeType === 1 ) { | ||
+ | if ( truncate && jQuery( elem ).is( until ) ) { | ||
+ | break; | ||
+ | } | ||
+ | matched.push( elem ); | ||
+ | } | ||
+ | } | ||
+ | return matched; | ||
+ | }; | ||
+ | |||
+ | |||
+ | var siblings = function( n, elem ) { | ||
+ | var matched = []; | ||
+ | |||
+ | for ( ; n; n = n.nextSibling ) { | ||
+ | if ( n.nodeType === 1 && n !== elem ) { | ||
+ | matched.push( n ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return matched; | ||
+ | }; | ||
+ | |||
+ | |||
+ | var rneedsContext = jQuery.expr.match.needsContext; | ||
+ | |||
+ | var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ ); | ||
+ | |||
+ | |||
+ | |||
+ | var risSimple = /^.[^:#\[\.,]*$/; | ||
+ | |||
+ | // Implement the identical functionality for filter and not | ||
+ | function winnow( elements, qualifier, not ) { | ||
+ | if ( jQuery.isFunction( qualifier ) ) { | ||
+ | return jQuery.grep( elements, function( elem, i ) { | ||
+ | /* jshint -W018 */ | ||
+ | return !!qualifier.call( elem, i, elem ) !== not; | ||
+ | } ); | ||
+ | |||
+ | } | ||
+ | |||
+ | if ( qualifier.nodeType ) { | ||
+ | return jQuery.grep( elements, function( elem ) { | ||
+ | return ( elem === qualifier ) !== not; | ||
+ | } ); | ||
+ | |||
+ | } | ||
+ | |||
+ | if ( typeof qualifier === "string" ) { | ||
+ | if ( risSimple.test( qualifier ) ) { | ||
+ | return jQuery.filter( qualifier, elements, not ); | ||
+ | } | ||
+ | |||
+ | qualifier = jQuery.filter( qualifier, elements ); | ||
+ | } | ||
+ | |||
+ | return jQuery.grep( elements, function( elem ) { | ||
+ | return ( jQuery.inArray( elem, qualifier ) > -1 ) !== not; | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | jQuery.filter = function( expr, elems, not ) { | ||
+ | var elem = elems[ 0 ]; | ||
+ | |||
+ | if ( not ) { | ||
+ | expr = ":not(" + expr + ")"; | ||
+ | } | ||
+ | |||
+ | return elems.length === 1 && elem.nodeType === 1 ? | ||
+ | jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : | ||
+ | jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { | ||
+ | return elem.nodeType === 1; | ||
+ | } ) ); | ||
+ | }; | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | find: function( selector ) { | ||
+ | var i, | ||
+ | ret = [], | ||
+ | self = this, | ||
+ | len = self.length; | ||
+ | |||
+ | if ( typeof selector !== "string" ) { | ||
+ | return this.pushStack( jQuery( selector ).filter( function() { | ||
+ | for ( i = 0; i < len; i++ ) { | ||
+ | if ( jQuery.contains( self[ i ], this ) ) { | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | } ) ); | ||
+ | } | ||
+ | |||
+ | for ( i = 0; i < len; i++ ) { | ||
+ | jQuery.find( selector, self[ i ], ret ); | ||
+ | } | ||
+ | |||
+ | // Needed because $( selector, context ) becomes $( context ).find( selector ) | ||
+ | ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); | ||
+ | ret.selector = this.selector ? this.selector + " " + selector : selector; | ||
+ | return ret; | ||
+ | }, | ||
+ | filter: function( selector ) { | ||
+ | return this.pushStack( winnow( this, selector || [], false ) ); | ||
+ | }, | ||
+ | not: function( selector ) { | ||
+ | return this.pushStack( winnow( this, selector || [], true ) ); | ||
+ | }, | ||
+ | is: function( selector ) { | ||
+ | return !!winnow( | ||
+ | this, | ||
+ | |||
+ | // If this is a positional/relative selector, check membership in the returned set | ||
+ | // so $("p:first").is("p:last") won't return true for a doc with two "p". | ||
+ | typeof selector === "string" && rneedsContext.test( selector ) ? | ||
+ | jQuery( selector ) : | ||
+ | selector || [], | ||
+ | false | ||
+ | ).length; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | // Initialize a jQuery object | ||
+ | |||
+ | |||
+ | // A central reference to the root jQuery(document) | ||
+ | var rootjQuery, | ||
+ | |||
+ | // A simple way to check for HTML strings | ||
+ | // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) | ||
+ | // Strict HTML recognition (#11290: must start with <) | ||
+ | rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, | ||
+ | |||
+ | init = jQuery.fn.init = function( selector, context, root ) { | ||
+ | var match, elem; | ||
+ | |||
+ | // HANDLE: $(""), $(null), $(undefined), $(false) | ||
+ | if ( !selector ) { | ||
+ | return this; | ||
+ | } | ||
+ | |||
+ | // init accepts an alternate rootjQuery | ||
+ | // so migrate can support jQuery.sub (gh-2101) | ||
+ | root = root || rootjQuery; | ||
+ | |||
+ | // Handle HTML strings | ||
+ | if ( typeof selector === "string" ) { | ||
+ | if ( selector.charAt( 0 ) === "<" && | ||
+ | selector.charAt( selector.length - 1 ) === ">" && | ||
+ | selector.length >= 3 ) { | ||
+ | |||
+ | // Assume that strings that start and end with <> are HTML and skip the regex check | ||
+ | match = [ null, selector, null ]; | ||
+ | |||
+ | } else { | ||
+ | match = rquickExpr.exec( selector ); | ||
+ | } | ||
+ | |||
+ | // Match html or make sure no context is specified for #id | ||
+ | if ( match && ( match[ 1 ] || !context ) ) { | ||
+ | |||
+ | // HANDLE: $(html) -> $(array) | ||
+ | if ( match[ 1 ] ) { | ||
+ | context = context instanceof jQuery ? context[ 0 ] : context; | ||
+ | |||
+ | // scripts is true for back-compat | ||
+ | // Intentionally let the error be thrown if parseHTML is not present | ||
+ | jQuery.merge( this, jQuery.parseHTML( | ||
+ | match[ 1 ], | ||
+ | context && context.nodeType ? context.ownerDocument || context : document, | ||
+ | true | ||
+ | ) ); | ||
+ | |||
+ | // HANDLE: $(html, props) | ||
+ | if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { | ||
+ | for ( match in context ) { | ||
+ | |||
+ | // Properties of context are called as methods if possible | ||
+ | if ( jQuery.isFunction( this[ match ] ) ) { | ||
+ | this[ match ]( context[ match ] ); | ||
+ | |||
+ | // ...and otherwise set as attributes | ||
+ | } else { | ||
+ | this.attr( match, context[ match ] ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return this; | ||
+ | |||
+ | // HANDLE: $(#id) | ||
+ | } else { | ||
+ | elem = document.getElementById( match[ 2 ] ); | ||
+ | |||
+ | // Check parentNode to catch when Blackberry 4.6 returns | ||
+ | // nodes that are no longer in the document #6963 | ||
+ | if ( elem && elem.parentNode ) { | ||
+ | |||
+ | // Handle the case where IE and Opera return items | ||
+ | // by name instead of ID | ||
+ | if ( elem.id !== match[ 2 ] ) { | ||
+ | return rootjQuery.find( selector ); | ||
+ | } | ||
+ | |||
+ | // Otherwise, we inject the element directly into the jQuery object | ||
+ | this.length = 1; | ||
+ | this[ 0 ] = elem; | ||
+ | } | ||
+ | |||
+ | this.context = document; | ||
+ | this.selector = selector; | ||
+ | return this; | ||
+ | } | ||
+ | |||
+ | // HANDLE: $(expr, $(...)) | ||
+ | } else if ( !context || context.jquery ) { | ||
+ | return ( context || root ).find( selector ); | ||
+ | |||
+ | // HANDLE: $(expr, context) | ||
+ | // (which is just equivalent to: $(context).find(expr) | ||
+ | } else { | ||
+ | return this.constructor( context ).find( selector ); | ||
+ | } | ||
+ | |||
+ | // HANDLE: $(DOMElement) | ||
+ | } else if ( selector.nodeType ) { | ||
+ | this.context = this[ 0 ] = selector; | ||
+ | this.length = 1; | ||
+ | return this; | ||
+ | |||
+ | // HANDLE: $(function) | ||
+ | // Shortcut for document ready | ||
+ | } else if ( jQuery.isFunction( selector ) ) { | ||
+ | return typeof root.ready !== "undefined" ? | ||
+ | root.ready( selector ) : | ||
+ | |||
+ | // Execute immediately if ready is not present | ||
+ | selector( jQuery ); | ||
+ | } | ||
+ | |||
+ | if ( selector.selector !== undefined ) { | ||
+ | this.selector = selector.selector; | ||
+ | this.context = selector.context; | ||
+ | } | ||
+ | |||
+ | return jQuery.makeArray( selector, this ); | ||
+ | }; | ||
+ | |||
+ | // Give the init function the jQuery prototype for later instantiation | ||
+ | init.prototype = jQuery.fn; | ||
+ | |||
+ | // Initialize central reference | ||
+ | rootjQuery = jQuery( document ); | ||
+ | |||
+ | |||
+ | var rparentsprev = /^(?:parents|prev(?:Until|All))/, | ||
+ | |||
+ | // methods guaranteed to produce a unique set when starting from a unique set | ||
+ | guaranteedUnique = { | ||
+ | children: true, | ||
+ | contents: true, | ||
+ | next: true, | ||
+ | prev: true | ||
+ | }; | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | has: function( target ) { | ||
+ | var i, | ||
+ | targets = jQuery( target, this ), | ||
+ | len = targets.length; | ||
+ | |||
+ | return this.filter( function() { | ||
+ | for ( i = 0; i < len; i++ ) { | ||
+ | if ( jQuery.contains( this, targets[ i ] ) ) { | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | closest: function( selectors, context ) { | ||
+ | var cur, | ||
+ | i = 0, | ||
+ | l = this.length, | ||
+ | matched = [], | ||
+ | pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? | ||
+ | jQuery( selectors, context || this.context ) : | ||
+ | 0; | ||
+ | |||
+ | for ( ; i < l; i++ ) { | ||
+ | for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { | ||
+ | |||
+ | // Always skip document fragments | ||
+ | if ( cur.nodeType < 11 && ( pos ? | ||
+ | pos.index( cur ) > -1 : | ||
+ | |||
+ | // Don't pass non-elements to Sizzle | ||
+ | cur.nodeType === 1 && | ||
+ | jQuery.find.matchesSelector( cur, selectors ) ) ) { | ||
+ | |||
+ | matched.push( cur ); | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); | ||
+ | }, | ||
+ | |||
+ | // Determine the position of an element within | ||
+ | // the matched set of elements | ||
+ | index: function( elem ) { | ||
+ | |||
+ | // No argument, return index in parent | ||
+ | if ( !elem ) { | ||
+ | return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; | ||
+ | } | ||
+ | |||
+ | // index in selector | ||
+ | if ( typeof elem === "string" ) { | ||
+ | return jQuery.inArray( this[ 0 ], jQuery( elem ) ); | ||
+ | } | ||
+ | |||
+ | // Locate the position of the desired element | ||
+ | return jQuery.inArray( | ||
+ | |||
+ | // If it receives a jQuery object, the first element is used | ||
+ | elem.jquery ? elem[ 0 ] : elem, this ); | ||
+ | }, | ||
+ | |||
+ | add: function( selector, context ) { | ||
+ | return this.pushStack( | ||
+ | jQuery.uniqueSort( | ||
+ | jQuery.merge( this.get(), jQuery( selector, context ) ) | ||
+ | ) | ||
+ | ); | ||
+ | }, | ||
+ | |||
+ | addBack: function( selector ) { | ||
+ | return this.add( selector == null ? | ||
+ | this.prevObject : this.prevObject.filter( selector ) | ||
+ | ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | function sibling( cur, dir ) { | ||
+ | do { | ||
+ | cur = cur[ dir ]; | ||
+ | } while ( cur && cur.nodeType !== 1 ); | ||
+ | |||
+ | return cur; | ||
+ | } | ||
+ | |||
+ | jQuery.each( { | ||
+ | parent: function( elem ) { | ||
+ | var parent = elem.parentNode; | ||
+ | return parent && parent.nodeType !== 11 ? parent : null; | ||
+ | }, | ||
+ | parents: function( elem ) { | ||
+ | return dir( elem, "parentNode" ); | ||
+ | }, | ||
+ | parentsUntil: function( elem, i, until ) { | ||
+ | return dir( elem, "parentNode", until ); | ||
+ | }, | ||
+ | next: function( elem ) { | ||
+ | return sibling( elem, "nextSibling" ); | ||
+ | }, | ||
+ | prev: function( elem ) { | ||
+ | return sibling( elem, "previousSibling" ); | ||
+ | }, | ||
+ | nextAll: function( elem ) { | ||
+ | return dir( elem, "nextSibling" ); | ||
+ | }, | ||
+ | prevAll: function( elem ) { | ||
+ | return dir( elem, "previousSibling" ); | ||
+ | }, | ||
+ | nextUntil: function( elem, i, until ) { | ||
+ | return dir( elem, "nextSibling", until ); | ||
+ | }, | ||
+ | prevUntil: function( elem, i, until ) { | ||
+ | return dir( elem, "previousSibling", until ); | ||
+ | }, | ||
+ | siblings: function( elem ) { | ||
+ | return siblings( ( elem.parentNode || {} ).firstChild, elem ); | ||
+ | }, | ||
+ | children: function( elem ) { | ||
+ | return siblings( elem.firstChild ); | ||
+ | }, | ||
+ | contents: function( elem ) { | ||
+ | return jQuery.nodeName( elem, "iframe" ) ? | ||
+ | elem.contentDocument || elem.contentWindow.document : | ||
+ | jQuery.merge( [], elem.childNodes ); | ||
+ | } | ||
+ | }, function( name, fn ) { | ||
+ | jQuery.fn[ name ] = function( until, selector ) { | ||
+ | var ret = jQuery.map( this, fn, until ); | ||
+ | |||
+ | if ( name.slice( -5 ) !== "Until" ) { | ||
+ | selector = until; | ||
+ | } | ||
+ | |||
+ | if ( selector && typeof selector === "string" ) { | ||
+ | ret = jQuery.filter( selector, ret ); | ||
+ | } | ||
+ | |||
+ | if ( this.length > 1 ) { | ||
+ | |||
+ | // Remove duplicates | ||
+ | if ( !guaranteedUnique[ name ] ) { | ||
+ | ret = jQuery.uniqueSort( ret ); | ||
+ | } | ||
+ | |||
+ | // Reverse order for parents* and prev-derivatives | ||
+ | if ( rparentsprev.test( name ) ) { | ||
+ | ret = ret.reverse(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return this.pushStack( ret ); | ||
+ | }; | ||
+ | } ); | ||
+ | var rnotwhite = ( /\S+/g ); | ||
+ | |||
+ | |||
+ | |||
+ | // Convert String-formatted options into Object-formatted ones | ||
+ | function createOptions( options ) { | ||
+ | var object = {}; | ||
+ | jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { | ||
+ | object[ flag ] = true; | ||
+ | } ); | ||
+ | return object; | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * Create a callback list using the following parameters: | ||
+ | * | ||
+ | * options: an optional list of space-separated options that will change how | ||
+ | * the callback list behaves or a more traditional option object | ||
+ | * | ||
+ | * By default a callback list will act like an event callback list and can be | ||
+ | * "fired" multiple times. | ||
+ | * | ||
+ | * Possible options: | ||
+ | * | ||
+ | * once: will ensure the callback list can only be fired once (like a Deferred) | ||
+ | * | ||
+ | * memory: will keep track of previous values and will call any callback added | ||
+ | * after the list has been fired right away with the latest "memorized" | ||
+ | * values (like a Deferred) | ||
+ | * | ||
+ | * unique: will ensure a callback can only be added once (no duplicate in the list) | ||
+ | * | ||
+ | * stopOnFalse: interrupt callings when a callback returns false | ||
+ | * | ||
+ | */ | ||
+ | jQuery.Callbacks = function( options ) { | ||
+ | |||
+ | // Convert options from String-formatted to Object-formatted if needed | ||
+ | // (we check in cache first) | ||
+ | options = typeof options === "string" ? | ||
+ | createOptions( options ) : | ||
+ | jQuery.extend( {}, options ); | ||
+ | |||
+ | var // Flag to know if list is currently firing | ||
+ | firing, | ||
+ | |||
+ | // Last fire value for non-forgettable lists | ||
+ | memory, | ||
+ | |||
+ | // Flag to know if list was already fired | ||
+ | fired, | ||
+ | |||
+ | // Flag to prevent firing | ||
+ | locked, | ||
+ | |||
+ | // Actual callback list | ||
+ | list = [], | ||
+ | |||
+ | // Queue of execution data for repeatable lists | ||
+ | queue = [], | ||
+ | |||
+ | // Index of currently firing callback (modified by add/remove as needed) | ||
+ | firingIndex = -1, | ||
+ | |||
+ | // Fire callbacks | ||
+ | fire = function() { | ||
+ | |||
+ | // Enforce single-firing | ||
+ | locked = options.once; | ||
+ | |||
+ | // Execute callbacks for all pending executions, | ||
+ | // respecting firingIndex overrides and runtime changes | ||
+ | fired = firing = true; | ||
+ | for ( ; queue.length; firingIndex = -1 ) { | ||
+ | memory = queue.shift(); | ||
+ | while ( ++firingIndex < list.length ) { | ||
+ | |||
+ | // Run callback and check for early termination | ||
+ | if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && | ||
+ | options.stopOnFalse ) { | ||
+ | |||
+ | // Jump to end and forget the data so .add doesn't re-fire | ||
+ | firingIndex = list.length; | ||
+ | memory = false; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Forget the data if we're done with it | ||
+ | if ( !options.memory ) { | ||
+ | memory = false; | ||
+ | } | ||
+ | |||
+ | firing = false; | ||
+ | |||
+ | // Clean up if we're done firing for good | ||
+ | if ( locked ) { | ||
+ | |||
+ | // Keep an empty list if we have data for future add calls | ||
+ | if ( memory ) { | ||
+ | list = []; | ||
+ | |||
+ | // Otherwise, this object is spent | ||
+ | } else { | ||
+ | list = ""; | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | // Actual Callbacks object | ||
+ | self = { | ||
+ | |||
+ | // Add a callback or a collection of callbacks to the list | ||
+ | add: function() { | ||
+ | if ( list ) { | ||
+ | |||
+ | // If we have memory from a past run, we should fire after adding | ||
+ | if ( memory && !firing ) { | ||
+ | firingIndex = list.length - 1; | ||
+ | queue.push( memory ); | ||
+ | } | ||
+ | |||
+ | ( function add( args ) { | ||
+ | jQuery.each( args, function( _, arg ) { | ||
+ | if ( jQuery.isFunction( arg ) ) { | ||
+ | if ( !options.unique || !self.has( arg ) ) { | ||
+ | list.push( arg ); | ||
+ | } | ||
+ | } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { | ||
+ | |||
+ | // Inspect recursively | ||
+ | add( arg ); | ||
+ | } | ||
+ | } ); | ||
+ | } )( arguments ); | ||
+ | |||
+ | if ( memory && !firing ) { | ||
+ | fire(); | ||
+ | } | ||
+ | } | ||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | // Remove a callback from the list | ||
+ | remove: function() { | ||
+ | jQuery.each( arguments, function( _, arg ) { | ||
+ | var index; | ||
+ | while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { | ||
+ | list.splice( index, 1 ); | ||
+ | |||
+ | // Handle firing indexes | ||
+ | if ( index <= firingIndex ) { | ||
+ | firingIndex--; | ||
+ | } | ||
+ | } | ||
+ | } ); | ||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | // Check if a given callback is in the list. | ||
+ | // If no argument is given, return whether or not list has callbacks attached. | ||
+ | has: function( fn ) { | ||
+ | return fn ? | ||
+ | jQuery.inArray( fn, list ) > -1 : | ||
+ | list.length > 0; | ||
+ | }, | ||
+ | |||
+ | // Remove all callbacks from the list | ||
+ | empty: function() { | ||
+ | if ( list ) { | ||
+ | list = []; | ||
+ | } | ||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | // Disable .fire and .add | ||
+ | // Abort any current/pending executions | ||
+ | // Clear all callbacks and values | ||
+ | disable: function() { | ||
+ | locked = queue = []; | ||
+ | list = memory = ""; | ||
+ | return this; | ||
+ | }, | ||
+ | disabled: function() { | ||
+ | return !list; | ||
+ | }, | ||
+ | |||
+ | // Disable .fire | ||
+ | // Also disable .add unless we have memory (since it would have no effect) | ||
+ | // Abort any pending executions | ||
+ | lock: function() { | ||
+ | locked = true; | ||
+ | if ( !memory ) { | ||
+ | self.disable(); | ||
+ | } | ||
+ | return this; | ||
+ | }, | ||
+ | locked: function() { | ||
+ | return !!locked; | ||
+ | }, | ||
+ | |||
+ | // Call all callbacks with the given context and arguments | ||
+ | fireWith: function( context, args ) { | ||
+ | if ( !locked ) { | ||
+ | args = args || []; | ||
+ | args = [ context, args.slice ? args.slice() : args ]; | ||
+ | queue.push( args ); | ||
+ | if ( !firing ) { | ||
+ | fire(); | ||
+ | } | ||
+ | } | ||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | // Call all the callbacks with the given arguments | ||
+ | fire: function() { | ||
+ | self.fireWith( this, arguments ); | ||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | // To know if the callbacks have already been called at least once | ||
+ | fired: function() { | ||
+ | return !!fired; | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | return self; | ||
+ | }; | ||
+ | |||
+ | |||
+ | jQuery.extend( { | ||
+ | |||
+ | Deferred: function( func ) { | ||
+ | var tuples = [ | ||
+ | |||
+ | // action, add listener, listener list, final state | ||
+ | [ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ], | ||
+ | [ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ], | ||
+ | [ "notify", "progress", jQuery.Callbacks( "memory" ) ] | ||
+ | ], | ||
+ | state = "pending", | ||
+ | promise = { | ||
+ | state: function() { | ||
+ | return state; | ||
+ | }, | ||
+ | always: function() { | ||
+ | deferred.done( arguments ).fail( arguments ); | ||
+ | return this; | ||
+ | }, | ||
+ | then: function( /* fnDone, fnFail, fnProgress */ ) { | ||
+ | var fns = arguments; | ||
+ | return jQuery.Deferred( function( newDefer ) { | ||
+ | jQuery.each( tuples, function( i, tuple ) { | ||
+ | var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; | ||
+ | |||
+ | // deferred[ done | fail | progress ] for forwarding actions to newDefer | ||
+ | deferred[ tuple[ 1 ] ]( function() { | ||
+ | var returned = fn && fn.apply( this, arguments ); | ||
+ | if ( returned && jQuery.isFunction( returned.promise ) ) { | ||
+ | returned.promise() | ||
+ | .progress( newDefer.notify ) | ||
+ | .done( newDefer.resolve ) | ||
+ | .fail( newDefer.reject ); | ||
+ | } else { | ||
+ | newDefer[ tuple[ 0 ] + "With" ]( | ||
+ | this === promise ? newDefer.promise() : this, | ||
+ | fn ? [ returned ] : arguments | ||
+ | ); | ||
+ | } | ||
+ | } ); | ||
+ | } ); | ||
+ | fns = null; | ||
+ | } ).promise(); | ||
+ | }, | ||
+ | |||
+ | // Get a promise for this deferred | ||
+ | // If obj is provided, the promise aspect is added to the object | ||
+ | promise: function( obj ) { | ||
+ | return obj != null ? jQuery.extend( obj, promise ) : promise; | ||
+ | } | ||
+ | }, | ||
+ | deferred = {}; | ||
+ | |||
+ | // Keep pipe for back-compat | ||
+ | promise.pipe = promise.then; | ||
+ | |||
+ | // Add list-specific methods | ||
+ | jQuery.each( tuples, function( i, tuple ) { | ||
+ | var list = tuple[ 2 ], | ||
+ | stateString = tuple[ 3 ]; | ||
+ | |||
+ | // promise[ done | fail | progress ] = list.add | ||
+ | promise[ tuple[ 1 ] ] = list.add; | ||
+ | |||
+ | // Handle state | ||
+ | if ( stateString ) { | ||
+ | list.add( function() { | ||
+ | |||
+ | // state = [ resolved | rejected ] | ||
+ | state = stateString; | ||
+ | |||
+ | // [ reject_list | resolve_list ].disable; progress_list.lock | ||
+ | }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); | ||
+ | } | ||
+ | |||
+ | // deferred[ resolve | reject | notify ] | ||
+ | deferred[ tuple[ 0 ] ] = function() { | ||
+ | deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments ); | ||
+ | return this; | ||
+ | }; | ||
+ | deferred[ tuple[ 0 ] + "With" ] = list.fireWith; | ||
+ | } ); | ||
+ | |||
+ | // Make the deferred a promise | ||
+ | promise.promise( deferred ); | ||
+ | |||
+ | // Call given func if any | ||
+ | if ( func ) { | ||
+ | func.call( deferred, deferred ); | ||
+ | } | ||
+ | |||
+ | // All done! | ||
+ | return deferred; | ||
+ | }, | ||
+ | |||
+ | // Deferred helper | ||
+ | when: function( subordinate /* , ..., subordinateN */ ) { | ||
+ | var i = 0, | ||
+ | resolveValues = slice.call( arguments ), | ||
+ | length = resolveValues.length, | ||
+ | |||
+ | // the count of uncompleted subordinates | ||
+ | remaining = length !== 1 || | ||
+ | ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, | ||
+ | |||
+ | // the master Deferred. | ||
+ | // If resolveValues consist of only a single Deferred, just use that. | ||
+ | deferred = remaining === 1 ? subordinate : jQuery.Deferred(), | ||
+ | |||
+ | // Update function for both resolve and progress values | ||
+ | updateFunc = function( i, contexts, values ) { | ||
+ | return function( value ) { | ||
+ | contexts[ i ] = this; | ||
+ | values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; | ||
+ | if ( values === progressValues ) { | ||
+ | deferred.notifyWith( contexts, values ); | ||
+ | |||
+ | } else if ( !( --remaining ) ) { | ||
+ | deferred.resolveWith( contexts, values ); | ||
+ | } | ||
+ | }; | ||
+ | }, | ||
+ | |||
+ | progressValues, progressContexts, resolveContexts; | ||
+ | |||
+ | // add listeners to Deferred subordinates; treat others as resolved | ||
+ | if ( length > 1 ) { | ||
+ | progressValues = new Array( length ); | ||
+ | progressContexts = new Array( length ); | ||
+ | resolveContexts = new Array( length ); | ||
+ | for ( ; i < length; i++ ) { | ||
+ | if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { | ||
+ | resolveValues[ i ].promise() | ||
+ | .progress( updateFunc( i, progressContexts, progressValues ) ) | ||
+ | .done( updateFunc( i, resolveContexts, resolveValues ) ) | ||
+ | .fail( deferred.reject ); | ||
+ | } else { | ||
+ | --remaining; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // if we're not waiting on anything, resolve the master | ||
+ | if ( !remaining ) { | ||
+ | deferred.resolveWith( resolveContexts, resolveValues ); | ||
+ | } | ||
+ | |||
+ | return deferred.promise(); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | // The deferred used on DOM ready | ||
+ | var readyList; | ||
+ | |||
+ | jQuery.fn.ready = function( fn ) { | ||
+ | |||
+ | // Add the callback | ||
+ | jQuery.ready.promise().done( fn ); | ||
+ | |||
+ | return this; | ||
+ | }; | ||
+ | |||
+ | jQuery.extend( { | ||
+ | |||
+ | // Is the DOM ready to be used? Set to true once it occurs. | ||
+ | isReady: false, | ||
+ | |||
+ | // A counter to track how many items to wait for before | ||
+ | // the ready event fires. See #6781 | ||
+ | readyWait: 1, | ||
+ | |||
+ | // Hold (or release) the ready event | ||
+ | holdReady: function( hold ) { | ||
+ | if ( hold ) { | ||
+ | jQuery.readyWait++; | ||
+ | } else { | ||
+ | jQuery.ready( true ); | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | // Handle when the DOM is ready | ||
+ | ready: function( wait ) { | ||
+ | |||
+ | // Abort if there are pending holds or we're already ready | ||
+ | if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Remember that the DOM is ready | ||
+ | jQuery.isReady = true; | ||
+ | |||
+ | // If a normal DOM Ready event fired, decrement, and wait if need be | ||
+ | if ( wait !== true && --jQuery.readyWait > 0 ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // If there are functions bound, to execute | ||
+ | readyList.resolveWith( document, [ jQuery ] ); | ||
+ | |||
+ | // Trigger any bound ready events | ||
+ | if ( jQuery.fn.triggerHandler ) { | ||
+ | jQuery( document ).triggerHandler( "ready" ); | ||
+ | jQuery( document ).off( "ready" ); | ||
+ | } | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | /** | ||
+ | * Clean-up method for dom ready events | ||
+ | */ | ||
+ | function detach() { | ||
+ | if ( document.addEventListener ) { | ||
+ | document.removeEventListener( "DOMContentLoaded", completed ); | ||
+ | window.removeEventListener( "load", completed ); | ||
+ | |||
+ | } else { | ||
+ | document.detachEvent( "onreadystatechange", completed ); | ||
+ | window.detachEvent( "onload", completed ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * The ready event handler and self cleanup method | ||
+ | */ | ||
+ | function completed() { | ||
+ | |||
+ | // readyState === "complete" is good enough for us to call the dom ready in oldIE | ||
+ | if ( document.addEventListener || | ||
+ | window.event.type === "load" || | ||
+ | document.readyState === "complete" ) { | ||
+ | |||
+ | detach(); | ||
+ | jQuery.ready(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | jQuery.ready.promise = function( obj ) { | ||
+ | if ( !readyList ) { | ||
+ | |||
+ | readyList = jQuery.Deferred(); | ||
+ | |||
+ | // Catch cases where $(document).ready() is called | ||
+ | // after the browser event has already occurred. | ||
+ | // Support: IE6-10 | ||
+ | // Older IE sometimes signals "interactive" too soon | ||
+ | if ( document.readyState === "complete" || | ||
+ | ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { | ||
+ | |||
+ | // Handle it asynchronously to allow scripts the opportunity to delay ready | ||
+ | window.setTimeout( jQuery.ready ); | ||
+ | |||
+ | // Standards-based browsers support DOMContentLoaded | ||
+ | } else if ( document.addEventListener ) { | ||
+ | |||
+ | // Use the handy event callback | ||
+ | document.addEventListener( "DOMContentLoaded", completed ); | ||
+ | |||
+ | // A fallback to window.onload, that will always work | ||
+ | window.addEventListener( "load", completed ); | ||
+ | |||
+ | // If IE event model is used | ||
+ | } else { | ||
+ | |||
+ | // Ensure firing before onload, maybe late but safe also for iframes | ||
+ | document.attachEvent( "onreadystatechange", completed ); | ||
+ | |||
+ | // A fallback to window.onload, that will always work | ||
+ | window.attachEvent( "onload", completed ); | ||
+ | |||
+ | // If IE and not a frame | ||
+ | // continually check to see if the document is ready | ||
+ | var top = false; | ||
+ | |||
+ | try { | ||
+ | top = window.frameElement == null && document.documentElement; | ||
+ | } catch ( e ) {} | ||
+ | |||
+ | if ( top && top.doScroll ) { | ||
+ | ( function doScrollCheck() { | ||
+ | if ( !jQuery.isReady ) { | ||
+ | |||
+ | try { | ||
+ | |||
+ | // Use the trick by Diego Perini | ||
+ | // http://javascript.nwbox.com/IEContentLoaded/ | ||
+ | top.doScroll( "left" ); | ||
+ | } catch ( e ) { | ||
+ | return window.setTimeout( doScrollCheck, 50 ); | ||
+ | } | ||
+ | |||
+ | // detach all dom ready events | ||
+ | detach(); | ||
+ | |||
+ | // and execute any waiting functions | ||
+ | jQuery.ready(); | ||
+ | } | ||
+ | } )(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | return readyList.promise( obj ); | ||
+ | }; | ||
+ | |||
+ | // Kick off the DOM ready check even if the user does not | ||
+ | jQuery.ready.promise(); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | // Support: IE<9 | ||
+ | // Iteration over object's inherited properties before its own | ||
+ | var i; | ||
+ | for ( i in jQuery( support ) ) { | ||
+ | break; | ||
+ | } | ||
+ | support.ownFirst = i === "0"; | ||
+ | |||
+ | // Note: most support tests are defined in their respective modules. | ||
+ | // false until the test is run | ||
+ | support.inlineBlockNeedsLayout = false; | ||
+ | |||
+ | // Execute ASAP in case we need to set body.style.zoom | ||
+ | jQuery( function() { | ||
+ | |||
+ | // Minified: var a,b,c,d | ||
+ | var val, div, body, container; | ||
+ | |||
+ | body = document.getElementsByTagName( "body" )[ 0 ]; | ||
+ | if ( !body || !body.style ) { | ||
+ | |||
+ | // Return for frameset docs that don't have a body | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Setup | ||
+ | div = document.createElement( "div" ); | ||
+ | container = document.createElement( "div" ); | ||
+ | container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; | ||
+ | body.appendChild( container ).appendChild( div ); | ||
+ | |||
+ | if ( typeof div.style.zoom !== "undefined" ) { | ||
+ | |||
+ | // Support: IE<8 | ||
+ | // Check if natively block-level elements act like inline-block | ||
+ | // elements when setting their display to 'inline' and giving | ||
+ | // them layout | ||
+ | div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"; | ||
+ | |||
+ | support.inlineBlockNeedsLayout = val = div.offsetWidth === 3; | ||
+ | if ( val ) { | ||
+ | |||
+ | // Prevent IE 6 from affecting layout for positioned elements #11048 | ||
+ | // Prevent IE from shrinking the body in IE 7 mode #12869 | ||
+ | // Support: IE<8 | ||
+ | body.style.zoom = 1; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | body.removeChild( container ); | ||
+ | } ); | ||
+ | |||
+ | |||
+ | ( function() { | ||
+ | var div = document.createElement( "div" ); | ||
+ | |||
+ | // Support: IE<9 | ||
+ | support.deleteExpando = true; | ||
+ | try { | ||
+ | delete div.test; | ||
+ | } catch ( e ) { | ||
+ | support.deleteExpando = false; | ||
+ | } | ||
+ | |||
+ | // Null elements to avoid leaks in IE. | ||
+ | div = null; | ||
+ | } )(); | ||
+ | var acceptData = function( elem ) { | ||
+ | var noData = jQuery.noData[ ( elem.nodeName + " " ).toLowerCase() ], | ||
+ | nodeType = +elem.nodeType || 1; | ||
+ | |||
+ | // Do not set data on non-element DOM nodes because it will not be cleared (#8335). | ||
+ | return nodeType !== 1 && nodeType !== 9 ? | ||
+ | false : | ||
+ | |||
+ | // Nodes accept data unless otherwise specified; rejection can be conditional | ||
+ | !noData || noData !== true && elem.getAttribute( "classid" ) === noData; | ||
+ | }; | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, | ||
+ | rmultiDash = /([A-Z])/g; | ||
+ | |||
+ | function dataAttr( elem, key, data ) { | ||
+ | |||
+ | // If nothing was found internally, try to fetch any | ||
+ | // data from the HTML5 data-* attribute | ||
+ | if ( data === undefined && elem.nodeType === 1 ) { | ||
+ | |||
+ | var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); | ||
+ | |||
+ | data = elem.getAttribute( name ); | ||
+ | |||
+ | if ( typeof data === "string" ) { | ||
+ | try { | ||
+ | data = data === "true" ? true : | ||
+ | data === "false" ? false : | ||
+ | data === "null" ? null : | ||
+ | |||
+ | // Only convert to a number if it doesn't change the string | ||
+ | +data + "" === data ? +data : | ||
+ | rbrace.test( data ) ? jQuery.parseJSON( data ) : | ||
+ | data; | ||
+ | } catch ( e ) {} | ||
+ | |||
+ | // Make sure we set the data so it isn't changed later | ||
+ | jQuery.data( elem, key, data ); | ||
+ | |||
+ | } else { | ||
+ | data = undefined; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return data; | ||
+ | } | ||
+ | |||
+ | // checks a cache object for emptiness | ||
+ | function isEmptyDataObject( obj ) { | ||
+ | var name; | ||
+ | for ( name in obj ) { | ||
+ | |||
+ | // if the public data object is empty, the private is still empty | ||
+ | if ( name === "data" && jQuery.isEmptyObject( obj[ name ] ) ) { | ||
+ | continue; | ||
+ | } | ||
+ | if ( name !== "toJSON" ) { | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return true; | ||
+ | } | ||
+ | |||
+ | function internalData( elem, name, data, pvt /* Internal Use Only */ ) { | ||
+ | if ( !acceptData( elem ) ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | var ret, thisCache, | ||
+ | internalKey = jQuery.expando, | ||
+ | |||
+ | // We have to handle DOM nodes and JS objects differently because IE6-7 | ||
+ | // can't GC object references properly across the DOM-JS boundary | ||
+ | isNode = elem.nodeType, | ||
+ | |||
+ | // Only DOM nodes need the global jQuery cache; JS object data is | ||
+ | // attached directly to the object so GC can occur automatically | ||
+ | cache = isNode ? jQuery.cache : elem, | ||
+ | |||
+ | // Only defining an ID for JS objects if its cache already exists allows | ||
+ | // the code to shortcut on the same path as a DOM node with no cache | ||
+ | id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; | ||
+ | |||
+ | // Avoid doing any more work than we need to when trying to get data on an | ||
+ | // object that has no data at all | ||
+ | if ( ( !id || !cache[ id ] || ( !pvt && !cache[ id ].data ) ) && | ||
+ | data === undefined && typeof name === "string" ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | if ( !id ) { | ||
+ | |||
+ | // Only DOM nodes need a new unique ID for each element since their data | ||
+ | // ends up in the global cache | ||
+ | if ( isNode ) { | ||
+ | id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++; | ||
+ | } else { | ||
+ | id = internalKey; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ( !cache[ id ] ) { | ||
+ | |||
+ | // Avoid exposing jQuery metadata on plain JS objects when the object | ||
+ | // is serialized using JSON.stringify | ||
+ | cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; | ||
+ | } | ||
+ | |||
+ | // An object can be passed to jQuery.data instead of a key/value pair; this gets | ||
+ | // shallow copied over onto the existing cache | ||
+ | if ( typeof name === "object" || typeof name === "function" ) { | ||
+ | if ( pvt ) { | ||
+ | cache[ id ] = jQuery.extend( cache[ id ], name ); | ||
+ | } else { | ||
+ | cache[ id ].data = jQuery.extend( cache[ id ].data, name ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | thisCache = cache[ id ]; | ||
+ | |||
+ | // jQuery data() is stored in a separate object inside the object's internal data | ||
+ | // cache in order to avoid key collisions between internal data and user-defined | ||
+ | // data. | ||
+ | if ( !pvt ) { | ||
+ | if ( !thisCache.data ) { | ||
+ | thisCache.data = {}; | ||
+ | } | ||
+ | |||
+ | thisCache = thisCache.data; | ||
+ | } | ||
+ | |||
+ | if ( data !== undefined ) { | ||
+ | thisCache[ jQuery.camelCase( name ) ] = data; | ||
+ | } | ||
+ | |||
+ | // Check for both converted-to-camel and non-converted data property names | ||
+ | // If a data property was specified | ||
+ | if ( typeof name === "string" ) { | ||
+ | |||
+ | // First Try to find as-is property data | ||
+ | ret = thisCache[ name ]; | ||
+ | |||
+ | // Test for null|undefined property data | ||
+ | if ( ret == null ) { | ||
+ | |||
+ | // Try to find the camelCased property | ||
+ | ret = thisCache[ jQuery.camelCase( name ) ]; | ||
+ | } | ||
+ | } else { | ||
+ | ret = thisCache; | ||
+ | } | ||
+ | |||
+ | return ret; | ||
+ | } | ||
+ | |||
+ | function internalRemoveData( elem, name, pvt ) { | ||
+ | if ( !acceptData( elem ) ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | var thisCache, i, | ||
+ | isNode = elem.nodeType, | ||
+ | |||
+ | // See jQuery.data for more information | ||
+ | cache = isNode ? jQuery.cache : elem, | ||
+ | id = isNode ? elem[ jQuery.expando ] : jQuery.expando; | ||
+ | |||
+ | // If there is already no cache entry for this object, there is no | ||
+ | // purpose in continuing | ||
+ | if ( !cache[ id ] ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | if ( name ) { | ||
+ | |||
+ | thisCache = pvt ? cache[ id ] : cache[ id ].data; | ||
+ | |||
+ | if ( thisCache ) { | ||
+ | |||
+ | // Support array or space separated string names for data keys | ||
+ | if ( !jQuery.isArray( name ) ) { | ||
+ | |||
+ | // try the string as a key before any manipulation | ||
+ | if ( name in thisCache ) { | ||
+ | name = [ name ]; | ||
+ | } else { | ||
+ | |||
+ | // split the camel cased version by spaces unless a key with the spaces exists | ||
+ | name = jQuery.camelCase( name ); | ||
+ | if ( name in thisCache ) { | ||
+ | name = [ name ]; | ||
+ | } else { | ||
+ | name = name.split( " " ); | ||
+ | } | ||
+ | } | ||
+ | } else { | ||
+ | |||
+ | // If "name" is an array of keys... | ||
+ | // When data is initially created, via ("key", "val") signature, | ||
+ | // keys will be converted to camelCase. | ||
+ | // Since there is no way to tell _how_ a key was added, remove | ||
+ | // both plain key and camelCase key. #12786 | ||
+ | // This will only penalize the array argument path. | ||
+ | name = name.concat( jQuery.map( name, jQuery.camelCase ) ); | ||
+ | } | ||
+ | |||
+ | i = name.length; | ||
+ | while ( i-- ) { | ||
+ | delete thisCache[ name[ i ] ]; | ||
+ | } | ||
+ | |||
+ | // If there is no data left in the cache, we want to continue | ||
+ | // and let the cache object itself get destroyed | ||
+ | if ( pvt ? !isEmptyDataObject( thisCache ) : !jQuery.isEmptyObject( thisCache ) ) { | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // See jQuery.data for more information | ||
+ | if ( !pvt ) { | ||
+ | delete cache[ id ].data; | ||
+ | |||
+ | // Don't destroy the parent cache unless the internal data object | ||
+ | // had been the only thing left in it | ||
+ | if ( !isEmptyDataObject( cache[ id ] ) ) { | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Destroy the cache | ||
+ | if ( isNode ) { | ||
+ | jQuery.cleanData( [ elem ], true ); | ||
+ | |||
+ | // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) | ||
+ | /* jshint eqeqeq: false */ | ||
+ | } else if ( support.deleteExpando || cache != cache.window ) { | ||
+ | /* jshint eqeqeq: true */ | ||
+ | delete cache[ id ]; | ||
+ | |||
+ | // When all else fails, undefined | ||
+ | } else { | ||
+ | cache[ id ] = undefined; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | jQuery.extend( { | ||
+ | cache: {}, | ||
+ | |||
+ | // The following elements (space-suffixed to avoid Object.prototype collisions) | ||
+ | // throw uncatchable exceptions if you attempt to set expando properties | ||
+ | noData: { | ||
+ | "applet ": true, | ||
+ | "embed ": true, | ||
+ | |||
+ | // ...but Flash objects (which have this classid) *can* handle expandos | ||
+ | "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" | ||
+ | }, | ||
+ | |||
+ | hasData: function( elem ) { | ||
+ | elem = elem.nodeType ? jQuery.cache[ elem[ jQuery.expando ] ] : elem[ jQuery.expando ]; | ||
+ | return !!elem && !isEmptyDataObject( elem ); | ||
+ | }, | ||
+ | |||
+ | data: function( elem, name, data ) { | ||
+ | return internalData( elem, name, data ); | ||
+ | }, | ||
+ | |||
+ | removeData: function( elem, name ) { | ||
+ | return internalRemoveData( elem, name ); | ||
+ | }, | ||
+ | |||
+ | // For internal use only. | ||
+ | _data: function( elem, name, data ) { | ||
+ | return internalData( elem, name, data, true ); | ||
+ | }, | ||
+ | |||
+ | _removeData: function( elem, name ) { | ||
+ | return internalRemoveData( elem, name, true ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | data: function( key, value ) { | ||
+ | var i, name, data, | ||
+ | elem = this[ 0 ], | ||
+ | attrs = elem && elem.attributes; | ||
+ | |||
+ | // Special expections of .data basically thwart jQuery.access, | ||
+ | // so implement the relevant behavior ourselves | ||
+ | |||
+ | // Gets all values | ||
+ | if ( key === undefined ) { | ||
+ | if ( this.length ) { | ||
+ | data = jQuery.data( elem ); | ||
+ | |||
+ | if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { | ||
+ | i = attrs.length; | ||
+ | while ( i-- ) { | ||
+ | |||
+ | // Support: IE11+ | ||
+ | // The attrs elements can be null (#14894) | ||
+ | if ( attrs[ i ] ) { | ||
+ | name = attrs[ i ].name; | ||
+ | if ( name.indexOf( "data-" ) === 0 ) { | ||
+ | name = jQuery.camelCase( name.slice( 5 ) ); | ||
+ | dataAttr( elem, name, data[ name ] ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | jQuery._data( elem, "parsedAttrs", true ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return data; | ||
+ | } | ||
+ | |||
+ | // Sets multiple values | ||
+ | if ( typeof key === "object" ) { | ||
+ | return this.each( function() { | ||
+ | jQuery.data( this, key ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | return arguments.length > 1 ? | ||
+ | |||
+ | // Sets one value | ||
+ | this.each( function() { | ||
+ | jQuery.data( this, key, value ); | ||
+ | } ) : | ||
+ | |||
+ | // Gets one value | ||
+ | // Try to fetch any internally stored data first | ||
+ | elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined; | ||
+ | }, | ||
+ | |||
+ | removeData: function( key ) { | ||
+ | return this.each( function() { | ||
+ | jQuery.removeData( this, key ); | ||
+ | } ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | jQuery.extend( { | ||
+ | queue: function( elem, type, data ) { | ||
+ | var queue; | ||
+ | |||
+ | if ( elem ) { | ||
+ | type = ( type || "fx" ) + "queue"; | ||
+ | queue = jQuery._data( elem, type ); | ||
+ | |||
+ | // Speed up dequeue by getting out quickly if this is just a lookup | ||
+ | if ( data ) { | ||
+ | if ( !queue || jQuery.isArray( data ) ) { | ||
+ | queue = jQuery._data( elem, type, jQuery.makeArray( data ) ); | ||
+ | } else { | ||
+ | queue.push( data ); | ||
+ | } | ||
+ | } | ||
+ | return queue || []; | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | dequeue: function( elem, type ) { | ||
+ | type = type || "fx"; | ||
+ | |||
+ | var queue = jQuery.queue( elem, type ), | ||
+ | startLength = queue.length, | ||
+ | fn = queue.shift(), | ||
+ | hooks = jQuery._queueHooks( elem, type ), | ||
+ | next = function() { | ||
+ | jQuery.dequeue( elem, type ); | ||
+ | }; | ||
+ | |||
+ | // If the fx queue is dequeued, always remove the progress sentinel | ||
+ | if ( fn === "inprogress" ) { | ||
+ | fn = queue.shift(); | ||
+ | startLength--; | ||
+ | } | ||
+ | |||
+ | if ( fn ) { | ||
+ | |||
+ | // Add a progress sentinel to prevent the fx queue from being | ||
+ | // automatically dequeued | ||
+ | if ( type === "fx" ) { | ||
+ | queue.unshift( "inprogress" ); | ||
+ | } | ||
+ | |||
+ | // clear up the last queue stop function | ||
+ | delete hooks.stop; | ||
+ | fn.call( elem, next, hooks ); | ||
+ | } | ||
+ | |||
+ | if ( !startLength && hooks ) { | ||
+ | hooks.empty.fire(); | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | // not intended for public consumption - generates a queueHooks object, | ||
+ | // or returns the current one | ||
+ | _queueHooks: function( elem, type ) { | ||
+ | var key = type + "queueHooks"; | ||
+ | return jQuery._data( elem, key ) || jQuery._data( elem, key, { | ||
+ | empty: jQuery.Callbacks( "once memory" ).add( function() { | ||
+ | jQuery._removeData( elem, type + "queue" ); | ||
+ | jQuery._removeData( elem, key ); | ||
+ | } ) | ||
+ | } ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | queue: function( type, data ) { | ||
+ | var setter = 2; | ||
+ | |||
+ | if ( typeof type !== "string" ) { | ||
+ | data = type; | ||
+ | type = "fx"; | ||
+ | setter--; | ||
+ | } | ||
+ | |||
+ | if ( arguments.length < setter ) { | ||
+ | return jQuery.queue( this[ 0 ], type ); | ||
+ | } | ||
+ | |||
+ | return data === undefined ? | ||
+ | this : | ||
+ | this.each( function() { | ||
+ | var queue = jQuery.queue( this, type, data ); | ||
+ | |||
+ | // ensure a hooks for this queue | ||
+ | jQuery._queueHooks( this, type ); | ||
+ | |||
+ | if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { | ||
+ | jQuery.dequeue( this, type ); | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | dequeue: function( type ) { | ||
+ | return this.each( function() { | ||
+ | jQuery.dequeue( this, type ); | ||
+ | } ); | ||
+ | }, | ||
+ | clearQueue: function( type ) { | ||
+ | return this.queue( type || "fx", [] ); | ||
+ | }, | ||
+ | |||
+ | // Get a promise resolved when queues of a certain type | ||
+ | // are emptied (fx is the type by default) | ||
+ | promise: function( type, obj ) { | ||
+ | var tmp, | ||
+ | count = 1, | ||
+ | defer = jQuery.Deferred(), | ||
+ | elements = this, | ||
+ | i = this.length, | ||
+ | resolve = function() { | ||
+ | if ( !( --count ) ) { | ||
+ | defer.resolveWith( elements, [ elements ] ); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | if ( typeof type !== "string" ) { | ||
+ | obj = type; | ||
+ | type = undefined; | ||
+ | } | ||
+ | type = type || "fx"; | ||
+ | |||
+ | while ( i-- ) { | ||
+ | tmp = jQuery._data( elements[ i ], type + "queueHooks" ); | ||
+ | if ( tmp && tmp.empty ) { | ||
+ | count++; | ||
+ | tmp.empty.add( resolve ); | ||
+ | } | ||
+ | } | ||
+ | resolve(); | ||
+ | return defer.promise( obj ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | ( function() { | ||
+ | var shrinkWrapBlocksVal; | ||
+ | |||
+ | support.shrinkWrapBlocks = function() { | ||
+ | if ( shrinkWrapBlocksVal != null ) { | ||
+ | return shrinkWrapBlocksVal; | ||
+ | } | ||
+ | |||
+ | // Will be changed later if needed. | ||
+ | shrinkWrapBlocksVal = false; | ||
+ | |||
+ | // Minified: var b,c,d | ||
+ | var div, body, container; | ||
+ | |||
+ | body = document.getElementsByTagName( "body" )[ 0 ]; | ||
+ | if ( !body || !body.style ) { | ||
+ | |||
+ | // Test fired too early or in an unsupported environment, exit. | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Setup | ||
+ | div = document.createElement( "div" ); | ||
+ | container = document.createElement( "div" ); | ||
+ | container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; | ||
+ | body.appendChild( container ).appendChild( div ); | ||
+ | |||
+ | // Support: IE6 | ||
+ | // Check if elements with layout shrink-wrap their children | ||
+ | if ( typeof div.style.zoom !== "undefined" ) { | ||
+ | |||
+ | // Reset CSS: box-sizing; display; margin; border | ||
+ | div.style.cssText = | ||
+ | |||
+ | // Support: Firefox<29, Android 2.3 | ||
+ | // Vendor-prefix box-sizing | ||
+ | "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + | ||
+ | "box-sizing:content-box;display:block;margin:0;border:0;" + | ||
+ | "padding:1px;width:1px;zoom:1"; | ||
+ | div.appendChild( document.createElement( "div" ) ).style.width = "5px"; | ||
+ | shrinkWrapBlocksVal = div.offsetWidth !== 3; | ||
+ | } | ||
+ | |||
+ | body.removeChild( container ); | ||
+ | |||
+ | return shrinkWrapBlocksVal; | ||
+ | }; | ||
+ | |||
+ | } )(); | ||
+ | var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; | ||
+ | |||
+ | var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); | ||
+ | |||
+ | |||
+ | var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; | ||
+ | |||
+ | var isHidden = function( elem, el ) { | ||
+ | |||
+ | // isHidden might be called from jQuery#filter function; | ||
+ | // in that case, element will be second argument | ||
+ | elem = el || elem; | ||
+ | return jQuery.css( elem, "display" ) === "none" || | ||
+ | !jQuery.contains( elem.ownerDocument, elem ); | ||
+ | }; | ||
+ | |||
+ | |||
+ | |||
+ | function adjustCSS( elem, prop, valueParts, tween ) { | ||
+ | var adjusted, | ||
+ | scale = 1, | ||
+ | maxIterations = 20, | ||
+ | currentValue = tween ? | ||
+ | function() { return tween.cur(); } : | ||
+ | function() { return jQuery.css( elem, prop, "" ); }, | ||
+ | initial = currentValue(), | ||
+ | unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), | ||
+ | |||
+ | // Starting value computation is required for potential unit mismatches | ||
+ | initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && | ||
+ | rcssNum.exec( jQuery.css( elem, prop ) ); | ||
+ | |||
+ | if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { | ||
+ | |||
+ | // Trust units reported by jQuery.css | ||
+ | unit = unit || initialInUnit[ 3 ]; | ||
+ | |||
+ | // Make sure we update the tween properties later on | ||
+ | valueParts = valueParts || []; | ||
+ | |||
+ | // Iteratively approximate from a nonzero starting point | ||
+ | initialInUnit = +initial || 1; | ||
+ | |||
+ | do { | ||
+ | |||
+ | // If previous iteration zeroed out, double until we get *something*. | ||
+ | // Use string for doubling so we don't accidentally see scale as unchanged below | ||
+ | scale = scale || ".5"; | ||
+ | |||
+ | // Adjust and apply | ||
+ | initialInUnit = initialInUnit / scale; | ||
+ | jQuery.style( elem, prop, initialInUnit + unit ); | ||
+ | |||
+ | // Update scale, tolerating zero or NaN from tween.cur() | ||
+ | // Break the loop if scale is unchanged or perfect, or if we've just had enough. | ||
+ | } while ( | ||
+ | scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations | ||
+ | ); | ||
+ | } | ||
+ | |||
+ | if ( valueParts ) { | ||
+ | initialInUnit = +initialInUnit || +initial || 0; | ||
+ | |||
+ | // Apply relative offset (+=/-=) if specified | ||
+ | adjusted = valueParts[ 1 ] ? | ||
+ | initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : | ||
+ | +valueParts[ 2 ]; | ||
+ | if ( tween ) { | ||
+ | tween.unit = unit; | ||
+ | tween.start = initialInUnit; | ||
+ | tween.end = adjusted; | ||
+ | } | ||
+ | } | ||
+ | return adjusted; | ||
+ | } | ||
+ | |||
+ | |||
+ | // Multifunctional method to get and set values of a collection | ||
+ | // The value/s can optionally be executed if it's a function | ||
+ | var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { | ||
+ | var i = 0, | ||
+ | length = elems.length, | ||
+ | bulk = key == null; | ||
+ | |||
+ | // Sets many values | ||
+ | if ( jQuery.type( key ) === "object" ) { | ||
+ | chainable = true; | ||
+ | for ( i in key ) { | ||
+ | access( elems, fn, i, key[ i ], true, emptyGet, raw ); | ||
+ | } | ||
+ | |||
+ | // Sets one value | ||
+ | } else if ( value !== undefined ) { | ||
+ | chainable = true; | ||
+ | |||
+ | if ( !jQuery.isFunction( value ) ) { | ||
+ | raw = true; | ||
+ | } | ||
+ | |||
+ | if ( bulk ) { | ||
+ | |||
+ | // Bulk operations run against the entire set | ||
+ | if ( raw ) { | ||
+ | fn.call( elems, value ); | ||
+ | fn = null; | ||
+ | |||
+ | // ...except when executing function values | ||
+ | } else { | ||
+ | bulk = fn; | ||
+ | fn = function( elem, key, value ) { | ||
+ | return bulk.call( jQuery( elem ), value ); | ||
+ | }; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ( fn ) { | ||
+ | for ( ; i < length; i++ ) { | ||
+ | fn( | ||
+ | elems[ i ], | ||
+ | key, | ||
+ | raw ? value : value.call( elems[ i ], i, fn( elems[ i ], key ) ) | ||
+ | ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return chainable ? | ||
+ | elems : | ||
+ | |||
+ | // Gets | ||
+ | bulk ? | ||
+ | fn.call( elems ) : | ||
+ | length ? fn( elems[ 0 ], key ) : emptyGet; | ||
+ | }; | ||
+ | var rcheckableType = ( /^(?:checkbox|radio)$/i ); | ||
+ | |||
+ | var rtagName = ( /<([\w:-]+)/ ); | ||
+ | |||
+ | var rscriptType = ( /^$|\/(?:java|ecma)script/i ); | ||
+ | |||
+ | var rleadingWhitespace = ( /^\s+/ ); | ||
+ | |||
+ | var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|" + | ||
+ | "details|dialog|figcaption|figure|footer|header|hgroup|main|" + | ||
+ | "mark|meter|nav|output|picture|progress|section|summary|template|time|video"; | ||
+ | |||
+ | |||
+ | |||
+ | function createSafeFragment( document ) { | ||
+ | var list = nodeNames.split( "|" ), | ||
+ | safeFrag = document.createDocumentFragment(); | ||
+ | |||
+ | if ( safeFrag.createElement ) { | ||
+ | while ( list.length ) { | ||
+ | safeFrag.createElement( | ||
+ | list.pop() | ||
+ | ); | ||
+ | } | ||
+ | } | ||
+ | return safeFrag; | ||
+ | } | ||
+ | |||
+ | |||
+ | ( function() { | ||
+ | var div = document.createElement( "div" ), | ||
+ | fragment = document.createDocumentFragment(), | ||
+ | input = document.createElement( "input" ); | ||
+ | |||
+ | // Setup | ||
+ | div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; | ||
+ | |||
+ | // IE strips leading whitespace when .innerHTML is used | ||
+ | support.leadingWhitespace = div.firstChild.nodeType === 3; | ||
+ | |||
+ | // Make sure that tbody elements aren't automatically inserted | ||
+ | // IE will insert them into empty tables | ||
+ | support.tbody = !div.getElementsByTagName( "tbody" ).length; | ||
+ | |||
+ | // Make sure that link elements get serialized correctly by innerHTML | ||
+ | // This requires a wrapper element in IE | ||
+ | support.htmlSerialize = !!div.getElementsByTagName( "link" ).length; | ||
+ | |||
+ | // Makes sure cloning an html5 element does not cause problems | ||
+ | // Where outerHTML is undefined, this still works | ||
+ | support.html5Clone = | ||
+ | document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>"; | ||
+ | |||
+ | // Check if a disconnected checkbox will retain its checked | ||
+ | // value of true after appended to the DOM (IE6/7) | ||
+ | input.type = "checkbox"; | ||
+ | input.checked = true; | ||
+ | fragment.appendChild( input ); | ||
+ | support.appendChecked = input.checked; | ||
+ | |||
+ | // Make sure textarea (and checkbox) defaultValue is properly cloned | ||
+ | // Support: IE6-IE11+ | ||
+ | div.innerHTML = "<textarea>x</textarea>"; | ||
+ | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; | ||
+ | |||
+ | // #11217 - WebKit loses check when the name is after the checked attribute | ||
+ | fragment.appendChild( div ); | ||
+ | |||
+ | // Support: Windows Web Apps (WWA) | ||
+ | // `name` and `type` must use .setAttribute for WWA (#14901) | ||
+ | input = document.createElement( "input" ); | ||
+ | input.setAttribute( "type", "radio" ); | ||
+ | input.setAttribute( "checked", "checked" ); | ||
+ | input.setAttribute( "name", "t" ); | ||
+ | |||
+ | div.appendChild( input ); | ||
+ | |||
+ | // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 | ||
+ | // old WebKit doesn't clone checked state correctly in fragments | ||
+ | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Cloned elements keep attachEvent handlers, we use addEventListener on IE9+ | ||
+ | support.noCloneEvent = !!div.addEventListener; | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Since attributes and properties are the same in IE, | ||
+ | // cleanData must set properties to undefined rather than use removeAttribute | ||
+ | div[ jQuery.expando ] = 1; | ||
+ | support.attributes = !div.getAttribute( jQuery.expando ); | ||
+ | } )(); | ||
+ | |||
+ | |||
+ | // We have to close these tags to support XHTML (#13200) | ||
+ | var wrapMap = { | ||
+ | option: [ 1, "<select multiple='multiple'>", "</select>" ], | ||
+ | legend: [ 1, "<fieldset>", "</fieldset>" ], | ||
+ | area: [ 1, "<map>", "</map>" ], | ||
+ | |||
+ | // Support: IE8 | ||
+ | param: [ 1, "<object>", "</object>" ], | ||
+ | thead: [ 1, "<table>", "</table>" ], | ||
+ | tr: [ 2, "<table><tbody>", "</tbody></table>" ], | ||
+ | col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], | ||
+ | td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], | ||
+ | |||
+ | // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, | ||
+ | // unless wrapped in a div with non-breaking characters in front of it. | ||
+ | _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ] | ||
+ | }; | ||
+ | |||
+ | // Support: IE8-IE9 | ||
+ | wrapMap.optgroup = wrapMap.option; | ||
+ | |||
+ | wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; | ||
+ | wrapMap.th = wrapMap.td; | ||
+ | |||
+ | |||
+ | function getAll( context, tag ) { | ||
+ | var elems, elem, | ||
+ | i = 0, | ||
+ | found = typeof context.getElementsByTagName !== "undefined" ? | ||
+ | context.getElementsByTagName( tag || "*" ) : | ||
+ | typeof context.querySelectorAll !== "undefined" ? | ||
+ | context.querySelectorAll( tag || "*" ) : | ||
+ | undefined; | ||
+ | |||
+ | if ( !found ) { | ||
+ | for ( found = [], elems = context.childNodes || context; | ||
+ | ( elem = elems[ i ] ) != null; | ||
+ | i++ | ||
+ | ) { | ||
+ | if ( !tag || jQuery.nodeName( elem, tag ) ) { | ||
+ | found.push( elem ); | ||
+ | } else { | ||
+ | jQuery.merge( found, getAll( elem, tag ) ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return tag === undefined || tag && jQuery.nodeName( context, tag ) ? | ||
+ | jQuery.merge( [ context ], found ) : | ||
+ | found; | ||
+ | } | ||
+ | |||
+ | |||
+ | // Mark scripts as having already been evaluated | ||
+ | function setGlobalEval( elems, refElements ) { | ||
+ | var elem, | ||
+ | i = 0; | ||
+ | for ( ; ( elem = elems[ i ] ) != null; i++ ) { | ||
+ | jQuery._data( | ||
+ | elem, | ||
+ | "globalEval", | ||
+ | !refElements || jQuery._data( refElements[ i ], "globalEval" ) | ||
+ | ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | var rhtml = /<|&#?\w+;/, | ||
+ | rtbody = /<tbody/i; | ||
+ | |||
+ | function fixDefaultChecked( elem ) { | ||
+ | if ( rcheckableType.test( elem.type ) ) { | ||
+ | elem.defaultChecked = elem.checked; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function buildFragment( elems, context, scripts, selection, ignored ) { | ||
+ | var j, elem, contains, | ||
+ | tmp, tag, tbody, wrap, | ||
+ | l = elems.length, | ||
+ | |||
+ | // Ensure a safe fragment | ||
+ | safe = createSafeFragment( context ), | ||
+ | |||
+ | nodes = [], | ||
+ | i = 0; | ||
+ | |||
+ | for ( ; i < l; i++ ) { | ||
+ | elem = elems[ i ]; | ||
+ | |||
+ | if ( elem || elem === 0 ) { | ||
+ | |||
+ | // Add nodes directly | ||
+ | if ( jQuery.type( elem ) === "object" ) { | ||
+ | jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); | ||
+ | |||
+ | // Convert non-html into a text node | ||
+ | } else if ( !rhtml.test( elem ) ) { | ||
+ | nodes.push( context.createTextNode( elem ) ); | ||
+ | |||
+ | // Convert html into DOM nodes | ||
+ | } else { | ||
+ | tmp = tmp || safe.appendChild( context.createElement( "div" ) ); | ||
+ | |||
+ | // Deserialize a standard representation | ||
+ | tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); | ||
+ | wrap = wrapMap[ tag ] || wrapMap._default; | ||
+ | |||
+ | tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; | ||
+ | |||
+ | // Descend through wrappers to the right content | ||
+ | j = wrap[ 0 ]; | ||
+ | while ( j-- ) { | ||
+ | tmp = tmp.lastChild; | ||
+ | } | ||
+ | |||
+ | // Manually add leading whitespace removed by IE | ||
+ | if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { | ||
+ | nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[ 0 ] ) ); | ||
+ | } | ||
+ | |||
+ | // Remove IE's autoinserted <tbody> from table fragments | ||
+ | if ( !support.tbody ) { | ||
+ | |||
+ | // String was a <table>, *may* have spurious <tbody> | ||
+ | elem = tag === "table" && !rtbody.test( elem ) ? | ||
+ | tmp.firstChild : | ||
+ | |||
+ | // String was a bare <thead> or <tfoot> | ||
+ | wrap[ 1 ] === "<table>" && !rtbody.test( elem ) ? | ||
+ | tmp : | ||
+ | 0; | ||
+ | |||
+ | j = elem && elem.childNodes.length; | ||
+ | while ( j-- ) { | ||
+ | if ( jQuery.nodeName( ( tbody = elem.childNodes[ j ] ), "tbody" ) && | ||
+ | !tbody.childNodes.length ) { | ||
+ | |||
+ | elem.removeChild( tbody ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | jQuery.merge( nodes, tmp.childNodes ); | ||
+ | |||
+ | // Fix #12392 for WebKit and IE > 9 | ||
+ | tmp.textContent = ""; | ||
+ | |||
+ | // Fix #12392 for oldIE | ||
+ | while ( tmp.firstChild ) { | ||
+ | tmp.removeChild( tmp.firstChild ); | ||
+ | } | ||
+ | |||
+ | // Remember the top-level container for proper cleanup | ||
+ | tmp = safe.lastChild; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Fix #11356: Clear elements from fragment | ||
+ | if ( tmp ) { | ||
+ | safe.removeChild( tmp ); | ||
+ | } | ||
+ | |||
+ | // Reset defaultChecked for any radios and checkboxes | ||
+ | // about to be appended to the DOM in IE 6/7 (#8060) | ||
+ | if ( !support.appendChecked ) { | ||
+ | jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); | ||
+ | } | ||
+ | |||
+ | i = 0; | ||
+ | while ( ( elem = nodes[ i++ ] ) ) { | ||
+ | |||
+ | // Skip elements already in the context collection (trac-4087) | ||
+ | if ( selection && jQuery.inArray( elem, selection ) > -1 ) { | ||
+ | if ( ignored ) { | ||
+ | ignored.push( elem ); | ||
+ | } | ||
+ | |||
+ | continue; | ||
+ | } | ||
+ | |||
+ | contains = jQuery.contains( elem.ownerDocument, elem ); | ||
+ | |||
+ | // Append to fragment | ||
+ | tmp = getAll( safe.appendChild( elem ), "script" ); | ||
+ | |||
+ | // Preserve script evaluation history | ||
+ | if ( contains ) { | ||
+ | setGlobalEval( tmp ); | ||
+ | } | ||
+ | |||
+ | // Capture executables | ||
+ | if ( scripts ) { | ||
+ | j = 0; | ||
+ | while ( ( elem = tmp[ j++ ] ) ) { | ||
+ | if ( rscriptType.test( elem.type || "" ) ) { | ||
+ | scripts.push( elem ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | tmp = null; | ||
+ | |||
+ | return safe; | ||
+ | } | ||
+ | |||
+ | |||
+ | ( function() { | ||
+ | var i, eventName, | ||
+ | div = document.createElement( "div" ); | ||
+ | |||
+ | // Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events) | ||
+ | for ( i in { submit: true, change: true, focusin: true } ) { | ||
+ | eventName = "on" + i; | ||
+ | |||
+ | if ( !( support[ i ] = eventName in window ) ) { | ||
+ | |||
+ | // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) | ||
+ | div.setAttribute( eventName, "t" ); | ||
+ | support[ i ] = div.attributes[ eventName ].expando === false; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Null elements to avoid leaks in IE. | ||
+ | div = null; | ||
+ | } )(); | ||
+ | |||
+ | |||
+ | var rformElems = /^(?:input|select|textarea)$/i, | ||
+ | rkeyEvent = /^key/, | ||
+ | rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, | ||
+ | rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, | ||
+ | rtypenamespace = /^([^.]*)(?:\.(.+)|)/; | ||
+ | |||
+ | function returnTrue() { | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | function returnFalse() { | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | // Support: IE9 | ||
+ | // See #13393 for more info | ||
+ | function safeActiveElement() { | ||
+ | try { | ||
+ | return document.activeElement; | ||
+ | } catch ( err ) { } | ||
+ | } | ||
+ | |||
+ | function on( elem, types, selector, data, fn, one ) { | ||
+ | var origFn, type; | ||
+ | |||
+ | // Types can be a map of types/handlers | ||
+ | if ( typeof types === "object" ) { | ||
+ | |||
+ | // ( types-Object, selector, data ) | ||
+ | if ( typeof selector !== "string" ) { | ||
+ | |||
+ | // ( types-Object, data ) | ||
+ | data = data || selector; | ||
+ | selector = undefined; | ||
+ | } | ||
+ | for ( type in types ) { | ||
+ | on( elem, type, selector, data, types[ type ], one ); | ||
+ | } | ||
+ | return elem; | ||
+ | } | ||
+ | |||
+ | if ( data == null && fn == null ) { | ||
+ | |||
+ | // ( types, fn ) | ||
+ | fn = selector; | ||
+ | data = selector = undefined; | ||
+ | } else if ( fn == null ) { | ||
+ | if ( typeof selector === "string" ) { | ||
+ | |||
+ | // ( types, selector, fn ) | ||
+ | fn = data; | ||
+ | data = undefined; | ||
+ | } else { | ||
+ | |||
+ | // ( types, data, fn ) | ||
+ | fn = data; | ||
+ | data = selector; | ||
+ | selector = undefined; | ||
+ | } | ||
+ | } | ||
+ | if ( fn === false ) { | ||
+ | fn = returnFalse; | ||
+ | } else if ( !fn ) { | ||
+ | return elem; | ||
+ | } | ||
+ | |||
+ | if ( one === 1 ) { | ||
+ | origFn = fn; | ||
+ | fn = function( event ) { | ||
+ | |||
+ | // Can use an empty set, since event contains the info | ||
+ | jQuery().off( event ); | ||
+ | return origFn.apply( this, arguments ); | ||
+ | }; | ||
+ | |||
+ | // Use same guid so caller can remove using origFn | ||
+ | fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); | ||
+ | } | ||
+ | return elem.each( function() { | ||
+ | jQuery.event.add( this, types, fn, data, selector ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * Helper functions for managing events -- not part of the public interface. | ||
+ | * Props to Dean Edwards' addEvent library for many of the ideas. | ||
+ | */ | ||
+ | jQuery.event = { | ||
+ | |||
+ | global: {}, | ||
+ | |||
+ | add: function( elem, types, handler, data, selector ) { | ||
+ | var tmp, events, t, handleObjIn, | ||
+ | special, eventHandle, handleObj, | ||
+ | handlers, type, namespaces, origType, | ||
+ | elemData = jQuery._data( elem ); | ||
+ | |||
+ | // Don't attach events to noData or text/comment nodes (but allow plain objects) | ||
+ | if ( !elemData ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Caller can pass in an object of custom data in lieu of the handler | ||
+ | if ( handler.handler ) { | ||
+ | handleObjIn = handler; | ||
+ | handler = handleObjIn.handler; | ||
+ | selector = handleObjIn.selector; | ||
+ | } | ||
+ | |||
+ | // Make sure that the handler has a unique ID, used to find/remove it later | ||
+ | if ( !handler.guid ) { | ||
+ | handler.guid = jQuery.guid++; | ||
+ | } | ||
+ | |||
+ | // Init the element's event structure and main handler, if this is the first | ||
+ | if ( !( events = elemData.events ) ) { | ||
+ | events = elemData.events = {}; | ||
+ | } | ||
+ | if ( !( eventHandle = elemData.handle ) ) { | ||
+ | eventHandle = elemData.handle = function( e ) { | ||
+ | |||
+ | // Discard the second event of a jQuery.event.trigger() and | ||
+ | // when an event is called after a page has unloaded | ||
+ | return typeof jQuery !== "undefined" && | ||
+ | ( !e || jQuery.event.triggered !== e.type ) ? | ||
+ | jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : | ||
+ | undefined; | ||
+ | }; | ||
+ | |||
+ | // Add elem as a property of the handle fn to prevent a memory leak | ||
+ | // with IE non-native events | ||
+ | eventHandle.elem = elem; | ||
+ | } | ||
+ | |||
+ | // Handle multiple events separated by a space | ||
+ | types = ( types || "" ).match( rnotwhite ) || [ "" ]; | ||
+ | t = types.length; | ||
+ | while ( t-- ) { | ||
+ | tmp = rtypenamespace.exec( types[ t ] ) || []; | ||
+ | type = origType = tmp[ 1 ]; | ||
+ | namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); | ||
+ | |||
+ | // There *must* be a type, no attaching namespace-only handlers | ||
+ | if ( !type ) { | ||
+ | continue; | ||
+ | } | ||
+ | |||
+ | // If event changes its type, use the special event handlers for the changed type | ||
+ | special = jQuery.event.special[ type ] || {}; | ||
+ | |||
+ | // If selector defined, determine special event api type, otherwise given type | ||
+ | type = ( selector ? special.delegateType : special.bindType ) || type; | ||
+ | |||
+ | // Update special based on newly reset type | ||
+ | special = jQuery.event.special[ type ] || {}; | ||
+ | |||
+ | // handleObj is passed to all event handlers | ||
+ | handleObj = jQuery.extend( { | ||
+ | type: type, | ||
+ | origType: origType, | ||
+ | data: data, | ||
+ | handler: handler, | ||
+ | guid: handler.guid, | ||
+ | selector: selector, | ||
+ | needsContext: selector && jQuery.expr.match.needsContext.test( selector ), | ||
+ | namespace: namespaces.join( "." ) | ||
+ | }, handleObjIn ); | ||
+ | |||
+ | // Init the event handler queue if we're the first | ||
+ | if ( !( handlers = events[ type ] ) ) { | ||
+ | handlers = events[ type ] = []; | ||
+ | handlers.delegateCount = 0; | ||
+ | |||
+ | // Only use addEventListener/attachEvent if the special events handler returns false | ||
+ | if ( !special.setup || | ||
+ | special.setup.call( elem, data, namespaces, eventHandle ) === false ) { | ||
+ | |||
+ | // Bind the global event handler to the element | ||
+ | if ( elem.addEventListener ) { | ||
+ | elem.addEventListener( type, eventHandle, false ); | ||
+ | |||
+ | } else if ( elem.attachEvent ) { | ||
+ | elem.attachEvent( "on" + type, eventHandle ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ( special.add ) { | ||
+ | special.add.call( elem, handleObj ); | ||
+ | |||
+ | if ( !handleObj.handler.guid ) { | ||
+ | handleObj.handler.guid = handler.guid; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Add to the element's handler list, delegates in front | ||
+ | if ( selector ) { | ||
+ | handlers.splice( handlers.delegateCount++, 0, handleObj ); | ||
+ | } else { | ||
+ | handlers.push( handleObj ); | ||
+ | } | ||
+ | |||
+ | // Keep track of which events have ever been used, for event optimization | ||
+ | jQuery.event.global[ type ] = true; | ||
+ | } | ||
+ | |||
+ | // Nullify elem to prevent memory leaks in IE | ||
+ | elem = null; | ||
+ | }, | ||
+ | |||
+ | // Detach an event or set of events from an element | ||
+ | remove: function( elem, types, handler, selector, mappedTypes ) { | ||
+ | var j, handleObj, tmp, | ||
+ | origCount, t, events, | ||
+ | special, handlers, type, | ||
+ | namespaces, origType, | ||
+ | elemData = jQuery.hasData( elem ) && jQuery._data( elem ); | ||
+ | |||
+ | if ( !elemData || !( events = elemData.events ) ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Once for each type.namespace in types; type may be omitted | ||
+ | types = ( types || "" ).match( rnotwhite ) || [ "" ]; | ||
+ | t = types.length; | ||
+ | while ( t-- ) { | ||
+ | tmp = rtypenamespace.exec( types[ t ] ) || []; | ||
+ | type = origType = tmp[ 1 ]; | ||
+ | namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); | ||
+ | |||
+ | // Unbind all events (on this namespace, if provided) for the element | ||
+ | if ( !type ) { | ||
+ | for ( type in events ) { | ||
+ | jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); | ||
+ | } | ||
+ | continue; | ||
+ | } | ||
+ | |||
+ | special = jQuery.event.special[ type ] || {}; | ||
+ | type = ( selector ? special.delegateType : special.bindType ) || type; | ||
+ | handlers = events[ type ] || []; | ||
+ | tmp = tmp[ 2 ] && | ||
+ | new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); | ||
+ | |||
+ | // Remove matching events | ||
+ | origCount = j = handlers.length; | ||
+ | while ( j-- ) { | ||
+ | handleObj = handlers[ j ]; | ||
+ | |||
+ | if ( ( mappedTypes || origType === handleObj.origType ) && | ||
+ | ( !handler || handler.guid === handleObj.guid ) && | ||
+ | ( !tmp || tmp.test( handleObj.namespace ) ) && | ||
+ | ( !selector || selector === handleObj.selector || | ||
+ | selector === "**" && handleObj.selector ) ) { | ||
+ | handlers.splice( j, 1 ); | ||
+ | |||
+ | if ( handleObj.selector ) { | ||
+ | handlers.delegateCount--; | ||
+ | } | ||
+ | if ( special.remove ) { | ||
+ | special.remove.call( elem, handleObj ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Remove generic event handler if we removed something and no more handlers exist | ||
+ | // (avoids potential for endless recursion during removal of special event handlers) | ||
+ | if ( origCount && !handlers.length ) { | ||
+ | if ( !special.teardown || | ||
+ | special.teardown.call( elem, namespaces, elemData.handle ) === false ) { | ||
+ | |||
+ | jQuery.removeEvent( elem, type, elemData.handle ); | ||
+ | } | ||
+ | |||
+ | delete events[ type ]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Remove the expando if it's no longer used | ||
+ | if ( jQuery.isEmptyObject( events ) ) { | ||
+ | delete elemData.handle; | ||
+ | |||
+ | // removeData also checks for emptiness and clears the expando if empty | ||
+ | // so use it instead of delete | ||
+ | jQuery._removeData( elem, "events" ); | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | trigger: function( event, data, elem, onlyHandlers ) { | ||
+ | var handle, ontype, cur, | ||
+ | bubbleType, special, tmp, i, | ||
+ | eventPath = [ elem || document ], | ||
+ | type = hasOwn.call( event, "type" ) ? event.type : event, | ||
+ | namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; | ||
+ | |||
+ | cur = tmp = elem = elem || document; | ||
+ | |||
+ | // Don't do events on text and comment nodes | ||
+ | if ( elem.nodeType === 3 || elem.nodeType === 8 ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // focus/blur morphs to focusin/out; ensure we're not firing them right now | ||
+ | if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | if ( type.indexOf( "." ) > -1 ) { | ||
+ | |||
+ | // Namespaced trigger; create a regexp to match event type in handle() | ||
+ | namespaces = type.split( "." ); | ||
+ | type = namespaces.shift(); | ||
+ | namespaces.sort(); | ||
+ | } | ||
+ | ontype = type.indexOf( ":" ) < 0 && "on" + type; | ||
+ | |||
+ | // Caller can pass in a jQuery.Event object, Object, or just an event type string | ||
+ | event = event[ jQuery.expando ] ? | ||
+ | event : | ||
+ | new jQuery.Event( type, typeof event === "object" && event ); | ||
+ | |||
+ | // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) | ||
+ | event.isTrigger = onlyHandlers ? 2 : 3; | ||
+ | event.namespace = namespaces.join( "." ); | ||
+ | event.rnamespace = event.namespace ? | ||
+ | new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : | ||
+ | null; | ||
+ | |||
+ | // Clean up the event in case it is being reused | ||
+ | event.result = undefined; | ||
+ | if ( !event.target ) { | ||
+ | event.target = elem; | ||
+ | } | ||
+ | |||
+ | // Clone any incoming data and prepend the event, creating the handler arg list | ||
+ | data = data == null ? | ||
+ | [ event ] : | ||
+ | jQuery.makeArray( data, [ event ] ); | ||
+ | |||
+ | // Allow special events to draw outside the lines | ||
+ | special = jQuery.event.special[ type ] || {}; | ||
+ | if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Determine event propagation path in advance, per W3C events spec (#9951) | ||
+ | // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) | ||
+ | if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { | ||
+ | |||
+ | bubbleType = special.delegateType || type; | ||
+ | if ( !rfocusMorph.test( bubbleType + type ) ) { | ||
+ | cur = cur.parentNode; | ||
+ | } | ||
+ | for ( ; cur; cur = cur.parentNode ) { | ||
+ | eventPath.push( cur ); | ||
+ | tmp = cur; | ||
+ | } | ||
+ | |||
+ | // Only add window if we got to document (e.g., not plain obj or detached DOM) | ||
+ | if ( tmp === ( elem.ownerDocument || document ) ) { | ||
+ | eventPath.push( tmp.defaultView || tmp.parentWindow || window ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Fire handlers on the event path | ||
+ | i = 0; | ||
+ | while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { | ||
+ | |||
+ | event.type = i > 1 ? | ||
+ | bubbleType : | ||
+ | special.bindType || type; | ||
+ | |||
+ | // jQuery handler | ||
+ | handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && | ||
+ | jQuery._data( cur, "handle" ); | ||
+ | |||
+ | if ( handle ) { | ||
+ | handle.apply( cur, data ); | ||
+ | } | ||
+ | |||
+ | // Native handler | ||
+ | handle = ontype && cur[ ontype ]; | ||
+ | if ( handle && handle.apply && acceptData( cur ) ) { | ||
+ | event.result = handle.apply( cur, data ); | ||
+ | if ( event.result === false ) { | ||
+ | event.preventDefault(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | event.type = type; | ||
+ | |||
+ | // If nobody prevented the default action, do it now | ||
+ | if ( !onlyHandlers && !event.isDefaultPrevented() ) { | ||
+ | |||
+ | if ( | ||
+ | ( !special._default || | ||
+ | special._default.apply( eventPath.pop(), data ) === false | ||
+ | ) && acceptData( elem ) | ||
+ | ) { | ||
+ | |||
+ | // Call a native DOM method on the target with the same name name as the event. | ||
+ | // Can't use an .isFunction() check here because IE6/7 fails that test. | ||
+ | // Don't do default actions on window, that's where global variables be (#6170) | ||
+ | if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { | ||
+ | |||
+ | // Don't re-trigger an onFOO event when we call its FOO() method | ||
+ | tmp = elem[ ontype ]; | ||
+ | |||
+ | if ( tmp ) { | ||
+ | elem[ ontype ] = null; | ||
+ | } | ||
+ | |||
+ | // Prevent re-triggering of the same event, since we already bubbled it above | ||
+ | jQuery.event.triggered = type; | ||
+ | try { | ||
+ | elem[ type ](); | ||
+ | } catch ( e ) { | ||
+ | |||
+ | // IE<9 dies on focus/blur to hidden element (#1486,#12518) | ||
+ | // only reproducible on winXP IE8 native, not IE9 in IE8 mode | ||
+ | } | ||
+ | jQuery.event.triggered = undefined; | ||
+ | |||
+ | if ( tmp ) { | ||
+ | elem[ ontype ] = tmp; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return event.result; | ||
+ | }, | ||
+ | |||
+ | dispatch: function( event ) { | ||
+ | |||
+ | // Make a writable jQuery.Event from the native event object | ||
+ | event = jQuery.event.fix( event ); | ||
+ | |||
+ | var i, j, ret, matched, handleObj, | ||
+ | handlerQueue = [], | ||
+ | args = slice.call( arguments ), | ||
+ | handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], | ||
+ | special = jQuery.event.special[ event.type ] || {}; | ||
+ | |||
+ | // Use the fix-ed jQuery.Event rather than the (read-only) native event | ||
+ | args[ 0 ] = event; | ||
+ | event.delegateTarget = this; | ||
+ | |||
+ | // Call the preDispatch hook for the mapped type, and let it bail if desired | ||
+ | if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Determine handlers | ||
+ | handlerQueue = jQuery.event.handlers.call( this, event, handlers ); | ||
+ | |||
+ | // Run delegates first; they may want to stop propagation beneath us | ||
+ | i = 0; | ||
+ | while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { | ||
+ | event.currentTarget = matched.elem; | ||
+ | |||
+ | j = 0; | ||
+ | while ( ( handleObj = matched.handlers[ j++ ] ) && | ||
+ | !event.isImmediatePropagationStopped() ) { | ||
+ | |||
+ | // Triggered event must either 1) have no namespace, or 2) have namespace(s) | ||
+ | // a subset or equal to those in the bound event (both can have no namespace). | ||
+ | if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { | ||
+ | |||
+ | event.handleObj = handleObj; | ||
+ | event.data = handleObj.data; | ||
+ | |||
+ | ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || | ||
+ | handleObj.handler ).apply( matched.elem, args ); | ||
+ | |||
+ | if ( ret !== undefined ) { | ||
+ | if ( ( event.result = ret ) === false ) { | ||
+ | event.preventDefault(); | ||
+ | event.stopPropagation(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Call the postDispatch hook for the mapped type | ||
+ | if ( special.postDispatch ) { | ||
+ | special.postDispatch.call( this, event ); | ||
+ | } | ||
+ | |||
+ | return event.result; | ||
+ | }, | ||
+ | |||
+ | handlers: function( event, handlers ) { | ||
+ | var i, matches, sel, handleObj, | ||
+ | handlerQueue = [], | ||
+ | delegateCount = handlers.delegateCount, | ||
+ | cur = event.target; | ||
+ | |||
+ | // Support (at least): Chrome, IE9 | ||
+ | // Find delegate handlers | ||
+ | // Black-hole SVG <use> instance trees (#13180) | ||
+ | // | ||
+ | // Support: Firefox<=42+ | ||
+ | // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343) | ||
+ | if ( delegateCount && cur.nodeType && | ||
+ | ( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) { | ||
+ | |||
+ | /* jshint eqeqeq: false */ | ||
+ | for ( ; cur != this; cur = cur.parentNode || this ) { | ||
+ | /* jshint eqeqeq: true */ | ||
+ | |||
+ | // Don't check non-elements (#13208) | ||
+ | // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) | ||
+ | if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) { | ||
+ | matches = []; | ||
+ | for ( i = 0; i < delegateCount; i++ ) { | ||
+ | handleObj = handlers[ i ]; | ||
+ | |||
+ | // Don't conflict with Object.prototype properties (#13203) | ||
+ | sel = handleObj.selector + " "; | ||
+ | |||
+ | if ( matches[ sel ] === undefined ) { | ||
+ | matches[ sel ] = handleObj.needsContext ? | ||
+ | jQuery( sel, this ).index( cur ) > -1 : | ||
+ | jQuery.find( sel, this, null, [ cur ] ).length; | ||
+ | } | ||
+ | if ( matches[ sel ] ) { | ||
+ | matches.push( handleObj ); | ||
+ | } | ||
+ | } | ||
+ | if ( matches.length ) { | ||
+ | handlerQueue.push( { elem: cur, handlers: matches } ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Add the remaining (directly-bound) handlers | ||
+ | if ( delegateCount < handlers.length ) { | ||
+ | handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } ); | ||
+ | } | ||
+ | |||
+ | return handlerQueue; | ||
+ | }, | ||
+ | |||
+ | fix: function( event ) { | ||
+ | if ( event[ jQuery.expando ] ) { | ||
+ | return event; | ||
+ | } | ||
+ | |||
+ | // Create a writable copy of the event object and normalize some properties | ||
+ | var i, prop, copy, | ||
+ | type = event.type, | ||
+ | originalEvent = event, | ||
+ | fixHook = this.fixHooks[ type ]; | ||
+ | |||
+ | if ( !fixHook ) { | ||
+ | this.fixHooks[ type ] = fixHook = | ||
+ | rmouseEvent.test( type ) ? this.mouseHooks : | ||
+ | rkeyEvent.test( type ) ? this.keyHooks : | ||
+ | {}; | ||
+ | } | ||
+ | copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; | ||
+ | |||
+ | event = new jQuery.Event( originalEvent ); | ||
+ | |||
+ | i = copy.length; | ||
+ | while ( i-- ) { | ||
+ | prop = copy[ i ]; | ||
+ | event[ prop ] = originalEvent[ prop ]; | ||
+ | } | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Fix target property (#1925) | ||
+ | if ( !event.target ) { | ||
+ | event.target = originalEvent.srcElement || document; | ||
+ | } | ||
+ | |||
+ | // Support: Safari 6-8+ | ||
+ | // Target should not be a text node (#504, #13143) | ||
+ | if ( event.target.nodeType === 3 ) { | ||
+ | event.target = event.target.parentNode; | ||
+ | } | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) | ||
+ | event.metaKey = !!event.metaKey; | ||
+ | |||
+ | return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; | ||
+ | }, | ||
+ | |||
+ | // Includes some event props shared by KeyEvent and MouseEvent | ||
+ | props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " + | ||
+ | "metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ), | ||
+ | |||
+ | fixHooks: {}, | ||
+ | |||
+ | keyHooks: { | ||
+ | props: "char charCode key keyCode".split( " " ), | ||
+ | filter: function( event, original ) { | ||
+ | |||
+ | // Add which for key events | ||
+ | if ( event.which == null ) { | ||
+ | event.which = original.charCode != null ? original.charCode : original.keyCode; | ||
+ | } | ||
+ | |||
+ | return event; | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | mouseHooks: { | ||
+ | props: ( "button buttons clientX clientY fromElement offsetX offsetY " + | ||
+ | "pageX pageY screenX screenY toElement" ).split( " " ), | ||
+ | filter: function( event, original ) { | ||
+ | var body, eventDoc, doc, | ||
+ | button = original.button, | ||
+ | fromElement = original.fromElement; | ||
+ | |||
+ | // Calculate pageX/Y if missing and clientX/Y available | ||
+ | if ( event.pageX == null && original.clientX != null ) { | ||
+ | eventDoc = event.target.ownerDocument || document; | ||
+ | doc = eventDoc.documentElement; | ||
+ | body = eventDoc.body; | ||
+ | |||
+ | event.pageX = original.clientX + | ||
+ | ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - | ||
+ | ( doc && doc.clientLeft || body && body.clientLeft || 0 ); | ||
+ | event.pageY = original.clientY + | ||
+ | ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - | ||
+ | ( doc && doc.clientTop || body && body.clientTop || 0 ); | ||
+ | } | ||
+ | |||
+ | // Add relatedTarget, if necessary | ||
+ | if ( !event.relatedTarget && fromElement ) { | ||
+ | event.relatedTarget = fromElement === event.target ? | ||
+ | original.toElement : | ||
+ | fromElement; | ||
+ | } | ||
+ | |||
+ | // Add which for click: 1 === left; 2 === middle; 3 === right | ||
+ | // Note: button is not normalized, so don't use it | ||
+ | if ( !event.which && button !== undefined ) { | ||
+ | event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); | ||
+ | } | ||
+ | |||
+ | return event; | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | special: { | ||
+ | load: { | ||
+ | |||
+ | // Prevent triggered image.load events from bubbling to window.load | ||
+ | noBubble: true | ||
+ | }, | ||
+ | focus: { | ||
+ | |||
+ | // Fire native event if possible so blur/focus sequence is correct | ||
+ | trigger: function() { | ||
+ | if ( this !== safeActiveElement() && this.focus ) { | ||
+ | try { | ||
+ | this.focus(); | ||
+ | return false; | ||
+ | } catch ( e ) { | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // If we error on focus to hidden element (#1486, #12518), | ||
+ | // let .trigger() run the handlers | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | delegateType: "focusin" | ||
+ | }, | ||
+ | blur: { | ||
+ | trigger: function() { | ||
+ | if ( this === safeActiveElement() && this.blur ) { | ||
+ | this.blur(); | ||
+ | return false; | ||
+ | } | ||
+ | }, | ||
+ | delegateType: "focusout" | ||
+ | }, | ||
+ | click: { | ||
+ | |||
+ | // For checkbox, fire native event so checked state will be right | ||
+ | trigger: function() { | ||
+ | if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { | ||
+ | this.click(); | ||
+ | return false; | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | // For cross-browser consistency, don't fire native .click() on links | ||
+ | _default: function( event ) { | ||
+ | return jQuery.nodeName( event.target, "a" ); | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | beforeunload: { | ||
+ | postDispatch: function( event ) { | ||
+ | |||
+ | // Support: Firefox 20+ | ||
+ | // Firefox doesn't alert if the returnValue field is not set. | ||
+ | if ( event.result !== undefined && event.originalEvent ) { | ||
+ | event.originalEvent.returnValue = event.result; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | // Piggyback on a donor event to simulate a different one | ||
+ | simulate: function( type, elem, event ) { | ||
+ | var e = jQuery.extend( | ||
+ | new jQuery.Event(), | ||
+ | event, | ||
+ | { | ||
+ | type: type, | ||
+ | isSimulated: true | ||
+ | |||
+ | // Previously, `originalEvent: {}` was set here, so stopPropagation call | ||
+ | // would not be triggered on donor event, since in our own | ||
+ | // jQuery.event.stopPropagation function we had a check for existence of | ||
+ | // originalEvent.stopPropagation method, so, consequently it would be a noop. | ||
+ | // | ||
+ | // Guard for simulated events was moved to jQuery.event.stopPropagation function | ||
+ | // since `originalEvent` should point to the original event for the | ||
+ | // constancy with other events and for more focused logic | ||
+ | } | ||
+ | ); | ||
+ | |||
+ | jQuery.event.trigger( e, null, elem ); | ||
+ | |||
+ | if ( e.isDefaultPrevented() ) { | ||
+ | event.preventDefault(); | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | jQuery.removeEvent = document.removeEventListener ? | ||
+ | function( elem, type, handle ) { | ||
+ | |||
+ | // This "if" is needed for plain objects | ||
+ | if ( elem.removeEventListener ) { | ||
+ | elem.removeEventListener( type, handle ); | ||
+ | } | ||
+ | } : | ||
+ | function( elem, type, handle ) { | ||
+ | var name = "on" + type; | ||
+ | |||
+ | if ( elem.detachEvent ) { | ||
+ | |||
+ | // #8545, #7054, preventing memory leaks for custom events in IE6-8 | ||
+ | // detachEvent needed property on element, by name of that event, | ||
+ | // to properly expose it to GC | ||
+ | if ( typeof elem[ name ] === "undefined" ) { | ||
+ | elem[ name ] = null; | ||
+ | } | ||
+ | |||
+ | elem.detachEvent( name, handle ); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | jQuery.Event = function( src, props ) { | ||
+ | |||
+ | // Allow instantiation without the 'new' keyword | ||
+ | if ( !( this instanceof jQuery.Event ) ) { | ||
+ | return new jQuery.Event( src, props ); | ||
+ | } | ||
+ | |||
+ | // Event object | ||
+ | if ( src && src.type ) { | ||
+ | this.originalEvent = src; | ||
+ | this.type = src.type; | ||
+ | |||
+ | // Events bubbling up the document may have been marked as prevented | ||
+ | // by a handler lower down the tree; reflect the correct value. | ||
+ | this.isDefaultPrevented = src.defaultPrevented || | ||
+ | src.defaultPrevented === undefined && | ||
+ | |||
+ | // Support: IE < 9, Android < 4.0 | ||
+ | src.returnValue === false ? | ||
+ | returnTrue : | ||
+ | returnFalse; | ||
+ | |||
+ | // Event type | ||
+ | } else { | ||
+ | this.type = src; | ||
+ | } | ||
+ | |||
+ | // Put explicitly provided properties onto the event object | ||
+ | if ( props ) { | ||
+ | jQuery.extend( this, props ); | ||
+ | } | ||
+ | |||
+ | // Create a timestamp if incoming event doesn't have one | ||
+ | this.timeStamp = src && src.timeStamp || jQuery.now(); | ||
+ | |||
+ | // Mark it as fixed | ||
+ | this[ jQuery.expando ] = true; | ||
+ | }; | ||
+ | |||
+ | // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding | ||
+ | // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html | ||
+ | jQuery.Event.prototype = { | ||
+ | constructor: jQuery.Event, | ||
+ | isDefaultPrevented: returnFalse, | ||
+ | isPropagationStopped: returnFalse, | ||
+ | isImmediatePropagationStopped: returnFalse, | ||
+ | |||
+ | preventDefault: function() { | ||
+ | var e = this.originalEvent; | ||
+ | |||
+ | this.isDefaultPrevented = returnTrue; | ||
+ | if ( !e ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // If preventDefault exists, run it on the original event | ||
+ | if ( e.preventDefault ) { | ||
+ | e.preventDefault(); | ||
+ | |||
+ | // Support: IE | ||
+ | // Otherwise set the returnValue property of the original event to false | ||
+ | } else { | ||
+ | e.returnValue = false; | ||
+ | } | ||
+ | }, | ||
+ | stopPropagation: function() { | ||
+ | var e = this.originalEvent; | ||
+ | |||
+ | this.isPropagationStopped = returnTrue; | ||
+ | |||
+ | if ( !e || this.isSimulated ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // If stopPropagation exists, run it on the original event | ||
+ | if ( e.stopPropagation ) { | ||
+ | e.stopPropagation(); | ||
+ | } | ||
+ | |||
+ | // Support: IE | ||
+ | // Set the cancelBubble property of the original event to true | ||
+ | e.cancelBubble = true; | ||
+ | }, | ||
+ | stopImmediatePropagation: function() { | ||
+ | var e = this.originalEvent; | ||
+ | |||
+ | this.isImmediatePropagationStopped = returnTrue; | ||
+ | |||
+ | if ( e && e.stopImmediatePropagation ) { | ||
+ | e.stopImmediatePropagation(); | ||
+ | } | ||
+ | |||
+ | this.stopPropagation(); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | // Create mouseenter/leave events using mouseover/out and event-time checks | ||
+ | // so that event delegation works in jQuery. | ||
+ | // Do the same for pointerenter/pointerleave and pointerover/pointerout | ||
+ | // | ||
+ | // Support: Safari 7 only | ||
+ | // Safari sends mouseenter too often; see: | ||
+ | // https://code.google.com/p/chromium/issues/detail?id=470258 | ||
+ | // for the description of the bug (it existed in older Chrome versions as well). | ||
+ | jQuery.each( { | ||
+ | mouseenter: "mouseover", | ||
+ | mouseleave: "mouseout", | ||
+ | pointerenter: "pointerover", | ||
+ | pointerleave: "pointerout" | ||
+ | }, function( orig, fix ) { | ||
+ | jQuery.event.special[ orig ] = { | ||
+ | delegateType: fix, | ||
+ | bindType: fix, | ||
+ | |||
+ | handle: function( event ) { | ||
+ | var ret, | ||
+ | target = this, | ||
+ | related = event.relatedTarget, | ||
+ | handleObj = event.handleObj; | ||
+ | |||
+ | // For mouseenter/leave call the handler if related is outside the target. | ||
+ | // NB: No relatedTarget if the mouse left/entered the browser window | ||
+ | if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { | ||
+ | event.type = handleObj.origType; | ||
+ | ret = handleObj.handler.apply( this, arguments ); | ||
+ | event.type = fix; | ||
+ | } | ||
+ | return ret; | ||
+ | } | ||
+ | }; | ||
+ | } ); | ||
+ | |||
+ | // IE submit delegation | ||
+ | if ( !support.submit ) { | ||
+ | |||
+ | jQuery.event.special.submit = { | ||
+ | setup: function() { | ||
+ | |||
+ | // Only need this for delegated form submit events | ||
+ | if ( jQuery.nodeName( this, "form" ) ) { | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | // Lazy-add a submit handler when a descendant form may potentially be submitted | ||
+ | jQuery.event.add( this, "click._submit keypress._submit", function( e ) { | ||
+ | |||
+ | // Node name check avoids a VML-related crash in IE (#9807) | ||
+ | var elem = e.target, | ||
+ | form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? | ||
+ | |||
+ | // Support: IE <=8 | ||
+ | // We use jQuery.prop instead of elem.form | ||
+ | // to allow fixing the IE8 delegated submit issue (gh-2332) | ||
+ | // by 3rd party polyfills/workarounds. | ||
+ | jQuery.prop( elem, "form" ) : | ||
+ | undefined; | ||
+ | |||
+ | if ( form && !jQuery._data( form, "submit" ) ) { | ||
+ | jQuery.event.add( form, "submit._submit", function( event ) { | ||
+ | event._submitBubble = true; | ||
+ | } ); | ||
+ | jQuery._data( form, "submit", true ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // return undefined since we don't need an event listener | ||
+ | }, | ||
+ | |||
+ | postDispatch: function( event ) { | ||
+ | |||
+ | // If form was submitted by the user, bubble the event up the tree | ||
+ | if ( event._submitBubble ) { | ||
+ | delete event._submitBubble; | ||
+ | if ( this.parentNode && !event.isTrigger ) { | ||
+ | jQuery.event.simulate( "submit", this.parentNode, event ); | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | teardown: function() { | ||
+ | |||
+ | // Only need this for delegated form submit events | ||
+ | if ( jQuery.nodeName( this, "form" ) ) { | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | // Remove delegated handlers; cleanData eventually reaps submit handlers attached above | ||
+ | jQuery.event.remove( this, "._submit" ); | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | // IE change delegation and checkbox/radio fix | ||
+ | if ( !support.change ) { | ||
+ | |||
+ | jQuery.event.special.change = { | ||
+ | |||
+ | setup: function() { | ||
+ | |||
+ | if ( rformElems.test( this.nodeName ) ) { | ||
+ | |||
+ | // IE doesn't fire change on a check/radio until blur; trigger it on click | ||
+ | // after a propertychange. Eat the blur-change in special.change.handle. | ||
+ | // This still fires onchange a second time for check/radio after blur. | ||
+ | if ( this.type === "checkbox" || this.type === "radio" ) { | ||
+ | jQuery.event.add( this, "propertychange._change", function( event ) { | ||
+ | if ( event.originalEvent.propertyName === "checked" ) { | ||
+ | this._justChanged = true; | ||
+ | } | ||
+ | } ); | ||
+ | jQuery.event.add( this, "click._change", function( event ) { | ||
+ | if ( this._justChanged && !event.isTrigger ) { | ||
+ | this._justChanged = false; | ||
+ | } | ||
+ | |||
+ | // Allow triggered, simulated change events (#11500) | ||
+ | jQuery.event.simulate( "change", this, event ); | ||
+ | } ); | ||
+ | } | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | // Delegated event; lazy-add a change handler on descendant inputs | ||
+ | jQuery.event.add( this, "beforeactivate._change", function( e ) { | ||
+ | var elem = e.target; | ||
+ | |||
+ | if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "change" ) ) { | ||
+ | jQuery.event.add( elem, "change._change", function( event ) { | ||
+ | if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { | ||
+ | jQuery.event.simulate( "change", this.parentNode, event ); | ||
+ | } | ||
+ | } ); | ||
+ | jQuery._data( elem, "change", true ); | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | handle: function( event ) { | ||
+ | var elem = event.target; | ||
+ | |||
+ | // Swallow native change events from checkbox/radio, we already triggered them above | ||
+ | if ( this !== elem || event.isSimulated || event.isTrigger || | ||
+ | ( elem.type !== "radio" && elem.type !== "checkbox" ) ) { | ||
+ | |||
+ | return event.handleObj.handler.apply( this, arguments ); | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | teardown: function() { | ||
+ | jQuery.event.remove( this, "._change" ); | ||
+ | |||
+ | return !rformElems.test( this.nodeName ); | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | // Support: Firefox | ||
+ | // Firefox doesn't have focus(in | out) events | ||
+ | // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 | ||
+ | // | ||
+ | // Support: Chrome, Safari | ||
+ | // focus(in | out) events fire after focus & blur events, | ||
+ | // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order | ||
+ | // Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857 | ||
+ | if ( !support.focusin ) { | ||
+ | jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { | ||
+ | |||
+ | // Attach a single capturing handler on the document while someone wants focusin/focusout | ||
+ | var handler = function( event ) { | ||
+ | jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); | ||
+ | }; | ||
+ | |||
+ | jQuery.event.special[ fix ] = { | ||
+ | setup: function() { | ||
+ | var doc = this.ownerDocument || this, | ||
+ | attaches = jQuery._data( doc, fix ); | ||
+ | |||
+ | if ( !attaches ) { | ||
+ | doc.addEventListener( orig, handler, true ); | ||
+ | } | ||
+ | jQuery._data( doc, fix, ( attaches || 0 ) + 1 ); | ||
+ | }, | ||
+ | teardown: function() { | ||
+ | var doc = this.ownerDocument || this, | ||
+ | attaches = jQuery._data( doc, fix ) - 1; | ||
+ | |||
+ | if ( !attaches ) { | ||
+ | doc.removeEventListener( orig, handler, true ); | ||
+ | jQuery._removeData( doc, fix ); | ||
+ | } else { | ||
+ | jQuery._data( doc, fix, attaches ); | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | |||
+ | on: function( types, selector, data, fn ) { | ||
+ | return on( this, types, selector, data, fn ); | ||
+ | }, | ||
+ | one: function( types, selector, data, fn ) { | ||
+ | return on( this, types, selector, data, fn, 1 ); | ||
+ | }, | ||
+ | off: function( types, selector, fn ) { | ||
+ | var handleObj, type; | ||
+ | if ( types && types.preventDefault && types.handleObj ) { | ||
+ | |||
+ | // ( event ) dispatched jQuery.Event | ||
+ | handleObj = types.handleObj; | ||
+ | jQuery( types.delegateTarget ).off( | ||
+ | handleObj.namespace ? | ||
+ | handleObj.origType + "." + handleObj.namespace : | ||
+ | handleObj.origType, | ||
+ | handleObj.selector, | ||
+ | handleObj.handler | ||
+ | ); | ||
+ | return this; | ||
+ | } | ||
+ | if ( typeof types === "object" ) { | ||
+ | |||
+ | // ( types-object [, selector] ) | ||
+ | for ( type in types ) { | ||
+ | this.off( type, selector, types[ type ] ); | ||
+ | } | ||
+ | return this; | ||
+ | } | ||
+ | if ( selector === false || typeof selector === "function" ) { | ||
+ | |||
+ | // ( types [, fn] ) | ||
+ | fn = selector; | ||
+ | selector = undefined; | ||
+ | } | ||
+ | if ( fn === false ) { | ||
+ | fn = returnFalse; | ||
+ | } | ||
+ | return this.each( function() { | ||
+ | jQuery.event.remove( this, types, fn, selector ); | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | trigger: function( type, data ) { | ||
+ | return this.each( function() { | ||
+ | jQuery.event.trigger( type, data, this ); | ||
+ | } ); | ||
+ | }, | ||
+ | triggerHandler: function( type, data ) { | ||
+ | var elem = this[ 0 ]; | ||
+ | if ( elem ) { | ||
+ | return jQuery.event.trigger( type, data, elem, true ); | ||
+ | } | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | var rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, | ||
+ | rnoshimcache = new RegExp( "<(?:" + nodeNames + ")[\\s/>]", "i" ), | ||
+ | rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, | ||
+ | |||
+ | // Support: IE 10-11, Edge 10240+ | ||
+ | // In IE/Edge using regex groups here causes severe slowdowns. | ||
+ | // See https://connect.microsoft.com/IE/feedback/details/1736512/ | ||
+ | rnoInnerhtml = /<script|<style|<link/i, | ||
+ | |||
+ | // checked="checked" or checked | ||
+ | rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, | ||
+ | rscriptTypeMasked = /^true\/(.*)/, | ||
+ | rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, | ||
+ | safeFragment = createSafeFragment( document ), | ||
+ | fragmentDiv = safeFragment.appendChild( document.createElement( "div" ) ); | ||
+ | |||
+ | // Support: IE<8 | ||
+ | // Manipulating tables requires a tbody | ||
+ | function manipulationTarget( elem, content ) { | ||
+ | return jQuery.nodeName( elem, "table" ) && | ||
+ | jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? | ||
+ | |||
+ | elem.getElementsByTagName( "tbody" )[ 0 ] || | ||
+ | elem.appendChild( elem.ownerDocument.createElement( "tbody" ) ) : | ||
+ | elem; | ||
+ | } | ||
+ | |||
+ | // Replace/restore the type attribute of script elements for safe DOM manipulation | ||
+ | function disableScript( elem ) { | ||
+ | elem.type = ( jQuery.find.attr( elem, "type" ) !== null ) + "/" + elem.type; | ||
+ | return elem; | ||
+ | } | ||
+ | function restoreScript( elem ) { | ||
+ | var match = rscriptTypeMasked.exec( elem.type ); | ||
+ | if ( match ) { | ||
+ | elem.type = match[ 1 ]; | ||
+ | } else { | ||
+ | elem.removeAttribute( "type" ); | ||
+ | } | ||
+ | return elem; | ||
+ | } | ||
+ | |||
+ | function cloneCopyEvent( src, dest ) { | ||
+ | if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | var type, i, l, | ||
+ | oldData = jQuery._data( src ), | ||
+ | curData = jQuery._data( dest, oldData ), | ||
+ | events = oldData.events; | ||
+ | |||
+ | if ( events ) { | ||
+ | delete curData.handle; | ||
+ | curData.events = {}; | ||
+ | |||
+ | for ( type in events ) { | ||
+ | for ( i = 0, l = events[ type ].length; i < l; i++ ) { | ||
+ | jQuery.event.add( dest, type, events[ type ][ i ] ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // make the cloned public data object a copy from the original | ||
+ | if ( curData.data ) { | ||
+ | curData.data = jQuery.extend( {}, curData.data ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function fixCloneNodeIssues( src, dest ) { | ||
+ | var nodeName, e, data; | ||
+ | |||
+ | // We do not need to do anything for non-Elements | ||
+ | if ( dest.nodeType !== 1 ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | nodeName = dest.nodeName.toLowerCase(); | ||
+ | |||
+ | // IE6-8 copies events bound via attachEvent when using cloneNode. | ||
+ | if ( !support.noCloneEvent && dest[ jQuery.expando ] ) { | ||
+ | data = jQuery._data( dest ); | ||
+ | |||
+ | for ( e in data.events ) { | ||
+ | jQuery.removeEvent( dest, e, data.handle ); | ||
+ | } | ||
+ | |||
+ | // Event data gets referenced instead of copied if the expando gets copied too | ||
+ | dest.removeAttribute( jQuery.expando ); | ||
+ | } | ||
+ | |||
+ | // IE blanks contents when cloning scripts, and tries to evaluate newly-set text | ||
+ | if ( nodeName === "script" && dest.text !== src.text ) { | ||
+ | disableScript( dest ).text = src.text; | ||
+ | restoreScript( dest ); | ||
+ | |||
+ | // IE6-10 improperly clones children of object elements using classid. | ||
+ | // IE10 throws NoModificationAllowedError if parent is null, #12132. | ||
+ | } else if ( nodeName === "object" ) { | ||
+ | if ( dest.parentNode ) { | ||
+ | dest.outerHTML = src.outerHTML; | ||
+ | } | ||
+ | |||
+ | // This path appears unavoidable for IE9. When cloning an object | ||
+ | // element in IE9, the outerHTML strategy above is not sufficient. | ||
+ | // If the src has innerHTML and the destination does not, | ||
+ | // copy the src.innerHTML into the dest.innerHTML. #10324 | ||
+ | if ( support.html5Clone && ( src.innerHTML && !jQuery.trim( dest.innerHTML ) ) ) { | ||
+ | dest.innerHTML = src.innerHTML; | ||
+ | } | ||
+ | |||
+ | } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { | ||
+ | |||
+ | // IE6-8 fails to persist the checked state of a cloned checkbox | ||
+ | // or radio button. Worse, IE6-7 fail to give the cloned element | ||
+ | // a checked appearance if the defaultChecked value isn't also set | ||
+ | |||
+ | dest.defaultChecked = dest.checked = src.checked; | ||
+ | |||
+ | // IE6-7 get confused and end up setting the value of a cloned | ||
+ | // checkbox/radio button to an empty string instead of "on" | ||
+ | if ( dest.value !== src.value ) { | ||
+ | dest.value = src.value; | ||
+ | } | ||
+ | |||
+ | // IE6-8 fails to return the selected option to the default selected | ||
+ | // state when cloning options | ||
+ | } else if ( nodeName === "option" ) { | ||
+ | dest.defaultSelected = dest.selected = src.defaultSelected; | ||
+ | |||
+ | // IE6-8 fails to set the defaultValue to the correct value when | ||
+ | // cloning other types of input fields | ||
+ | } else if ( nodeName === "input" || nodeName === "textarea" ) { | ||
+ | dest.defaultValue = src.defaultValue; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function domManip( collection, args, callback, ignored ) { | ||
+ | |||
+ | // Flatten any nested arrays | ||
+ | args = concat.apply( [], args ); | ||
+ | |||
+ | var first, node, hasScripts, | ||
+ | scripts, doc, fragment, | ||
+ | i = 0, | ||
+ | l = collection.length, | ||
+ | iNoClone = l - 1, | ||
+ | value = args[ 0 ], | ||
+ | isFunction = jQuery.isFunction( value ); | ||
+ | |||
+ | // We can't cloneNode fragments that contain checked, in WebKit | ||
+ | if ( isFunction || | ||
+ | ( l > 1 && typeof value === "string" && | ||
+ | !support.checkClone && rchecked.test( value ) ) ) { | ||
+ | return collection.each( function( index ) { | ||
+ | var self = collection.eq( index ); | ||
+ | if ( isFunction ) { | ||
+ | args[ 0 ] = value.call( this, index, self.html() ); | ||
+ | } | ||
+ | domManip( self, args, callback, ignored ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | if ( l ) { | ||
+ | fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); | ||
+ | first = fragment.firstChild; | ||
+ | |||
+ | if ( fragment.childNodes.length === 1 ) { | ||
+ | fragment = first; | ||
+ | } | ||
+ | |||
+ | // Require either new content or an interest in ignored elements to invoke the callback | ||
+ | if ( first || ignored ) { | ||
+ | scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); | ||
+ | hasScripts = scripts.length; | ||
+ | |||
+ | // Use the original fragment for the last item | ||
+ | // instead of the first because it can end up | ||
+ | // being emptied incorrectly in certain situations (#8070). | ||
+ | for ( ; i < l; i++ ) { | ||
+ | node = fragment; | ||
+ | |||
+ | if ( i !== iNoClone ) { | ||
+ | node = jQuery.clone( node, true, true ); | ||
+ | |||
+ | // Keep references to cloned scripts for later restoration | ||
+ | if ( hasScripts ) { | ||
+ | |||
+ | // Support: Android<4.1, PhantomJS<2 | ||
+ | // push.apply(_, arraylike) throws on ancient WebKit | ||
+ | jQuery.merge( scripts, getAll( node, "script" ) ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | callback.call( collection[ i ], node, i ); | ||
+ | } | ||
+ | |||
+ | if ( hasScripts ) { | ||
+ | doc = scripts[ scripts.length - 1 ].ownerDocument; | ||
+ | |||
+ | // Reenable scripts | ||
+ | jQuery.map( scripts, restoreScript ); | ||
+ | |||
+ | // Evaluate executable scripts on first document insertion | ||
+ | for ( i = 0; i < hasScripts; i++ ) { | ||
+ | node = scripts[ i ]; | ||
+ | if ( rscriptType.test( node.type || "" ) && | ||
+ | !jQuery._data( node, "globalEval" ) && | ||
+ | jQuery.contains( doc, node ) ) { | ||
+ | |||
+ | if ( node.src ) { | ||
+ | |||
+ | // Optional AJAX dependency, but won't run scripts if not present | ||
+ | if ( jQuery._evalUrl ) { | ||
+ | jQuery._evalUrl( node.src ); | ||
+ | } | ||
+ | } else { | ||
+ | jQuery.globalEval( | ||
+ | ( node.text || node.textContent || node.innerHTML || "" ) | ||
+ | .replace( rcleanScript, "" ) | ||
+ | ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Fix #11809: Avoid leaking memory | ||
+ | fragment = first = null; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return collection; | ||
+ | } | ||
+ | |||
+ | function remove( elem, selector, keepData ) { | ||
+ | var node, | ||
+ | elems = selector ? jQuery.filter( selector, elem ) : elem, | ||
+ | i = 0; | ||
+ | |||
+ | for ( ; ( node = elems[ i ] ) != null; i++ ) { | ||
+ | |||
+ | if ( !keepData && node.nodeType === 1 ) { | ||
+ | jQuery.cleanData( getAll( node ) ); | ||
+ | } | ||
+ | |||
+ | if ( node.parentNode ) { | ||
+ | if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { | ||
+ | setGlobalEval( getAll( node, "script" ) ); | ||
+ | } | ||
+ | node.parentNode.removeChild( node ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return elem; | ||
+ | } | ||
+ | |||
+ | jQuery.extend( { | ||
+ | htmlPrefilter: function( html ) { | ||
+ | return html.replace( rxhtmlTag, "<$1></$2>" ); | ||
+ | }, | ||
+ | |||
+ | clone: function( elem, dataAndEvents, deepDataAndEvents ) { | ||
+ | var destElements, node, clone, i, srcElements, | ||
+ | inPage = jQuery.contains( elem.ownerDocument, elem ); | ||
+ | |||
+ | if ( support.html5Clone || jQuery.isXMLDoc( elem ) || | ||
+ | !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { | ||
+ | |||
+ | clone = elem.cloneNode( true ); | ||
+ | |||
+ | // IE<=8 does not properly clone detached, unknown element nodes | ||
+ | } else { | ||
+ | fragmentDiv.innerHTML = elem.outerHTML; | ||
+ | fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); | ||
+ | } | ||
+ | |||
+ | if ( ( !support.noCloneEvent || !support.noCloneChecked ) && | ||
+ | ( elem.nodeType === 1 || elem.nodeType === 11 ) && !jQuery.isXMLDoc( elem ) ) { | ||
+ | |||
+ | // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 | ||
+ | destElements = getAll( clone ); | ||
+ | srcElements = getAll( elem ); | ||
+ | |||
+ | // Fix all IE cloning issues | ||
+ | for ( i = 0; ( node = srcElements[ i ] ) != null; ++i ) { | ||
+ | |||
+ | // Ensure that the destination node is not null; Fixes #9587 | ||
+ | if ( destElements[ i ] ) { | ||
+ | fixCloneNodeIssues( node, destElements[ i ] ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Copy the events from the original to the clone | ||
+ | if ( dataAndEvents ) { | ||
+ | if ( deepDataAndEvents ) { | ||
+ | srcElements = srcElements || getAll( elem ); | ||
+ | destElements = destElements || getAll( clone ); | ||
+ | |||
+ | for ( i = 0; ( node = srcElements[ i ] ) != null; i++ ) { | ||
+ | cloneCopyEvent( node, destElements[ i ] ); | ||
+ | } | ||
+ | } else { | ||
+ | cloneCopyEvent( elem, clone ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Preserve script evaluation history | ||
+ | destElements = getAll( clone, "script" ); | ||
+ | if ( destElements.length > 0 ) { | ||
+ | setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); | ||
+ | } | ||
+ | |||
+ | destElements = srcElements = node = null; | ||
+ | |||
+ | // Return the cloned set | ||
+ | return clone; | ||
+ | }, | ||
+ | |||
+ | cleanData: function( elems, /* internal */ forceAcceptData ) { | ||
+ | var elem, type, id, data, | ||
+ | i = 0, | ||
+ | internalKey = jQuery.expando, | ||
+ | cache = jQuery.cache, | ||
+ | attributes = support.attributes, | ||
+ | special = jQuery.event.special; | ||
+ | |||
+ | for ( ; ( elem = elems[ i ] ) != null; i++ ) { | ||
+ | if ( forceAcceptData || acceptData( elem ) ) { | ||
+ | |||
+ | id = elem[ internalKey ]; | ||
+ | data = id && cache[ id ]; | ||
+ | |||
+ | if ( data ) { | ||
+ | if ( data.events ) { | ||
+ | for ( type in data.events ) { | ||
+ | if ( special[ type ] ) { | ||
+ | jQuery.event.remove( elem, type ); | ||
+ | |||
+ | // This is a shortcut to avoid jQuery.event.remove's overhead | ||
+ | } else { | ||
+ | jQuery.removeEvent( elem, type, data.handle ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Remove cache only if it was not already removed by jQuery.event.remove | ||
+ | if ( cache[ id ] ) { | ||
+ | |||
+ | delete cache[ id ]; | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // IE does not allow us to delete expando properties from nodes | ||
+ | // IE creates expando attributes along with the property | ||
+ | // IE does not have a removeAttribute function on Document nodes | ||
+ | if ( !attributes && typeof elem.removeAttribute !== "undefined" ) { | ||
+ | elem.removeAttribute( internalKey ); | ||
+ | |||
+ | // Webkit & Blink performance suffers when deleting properties | ||
+ | // from DOM nodes, so set to undefined instead | ||
+ | // https://code.google.com/p/chromium/issues/detail?id=378607 | ||
+ | } else { | ||
+ | elem[ internalKey ] = undefined; | ||
+ | } | ||
+ | |||
+ | deletedIds.push( id ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | |||
+ | // Keep domManip exposed until 3.0 (gh-2225) | ||
+ | domManip: domManip, | ||
+ | |||
+ | detach: function( selector ) { | ||
+ | return remove( this, selector, true ); | ||
+ | }, | ||
+ | |||
+ | remove: function( selector ) { | ||
+ | return remove( this, selector ); | ||
+ | }, | ||
+ | |||
+ | text: function( value ) { | ||
+ | return access( this, function( value ) { | ||
+ | return value === undefined ? | ||
+ | jQuery.text( this ) : | ||
+ | this.empty().append( | ||
+ | ( this[ 0 ] && this[ 0 ].ownerDocument || document ).createTextNode( value ) | ||
+ | ); | ||
+ | }, null, value, arguments.length ); | ||
+ | }, | ||
+ | |||
+ | append: function() { | ||
+ | return domManip( this, arguments, function( elem ) { | ||
+ | if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { | ||
+ | var target = manipulationTarget( this, elem ); | ||
+ | target.appendChild( elem ); | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | prepend: function() { | ||
+ | return domManip( this, arguments, function( elem ) { | ||
+ | if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { | ||
+ | var target = manipulationTarget( this, elem ); | ||
+ | target.insertBefore( elem, target.firstChild ); | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | before: function() { | ||
+ | return domManip( this, arguments, function( elem ) { | ||
+ | if ( this.parentNode ) { | ||
+ | this.parentNode.insertBefore( elem, this ); | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | after: function() { | ||
+ | return domManip( this, arguments, function( elem ) { | ||
+ | if ( this.parentNode ) { | ||
+ | this.parentNode.insertBefore( elem, this.nextSibling ); | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | empty: function() { | ||
+ | var elem, | ||
+ | i = 0; | ||
+ | |||
+ | for ( ; ( elem = this[ i ] ) != null; i++ ) { | ||
+ | |||
+ | // Remove element nodes and prevent memory leaks | ||
+ | if ( elem.nodeType === 1 ) { | ||
+ | jQuery.cleanData( getAll( elem, false ) ); | ||
+ | } | ||
+ | |||
+ | // Remove any remaining nodes | ||
+ | while ( elem.firstChild ) { | ||
+ | elem.removeChild( elem.firstChild ); | ||
+ | } | ||
+ | |||
+ | // If this is a select, ensure that it displays empty (#12336) | ||
+ | // Support: IE<9 | ||
+ | if ( elem.options && jQuery.nodeName( elem, "select" ) ) { | ||
+ | elem.options.length = 0; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | clone: function( dataAndEvents, deepDataAndEvents ) { | ||
+ | dataAndEvents = dataAndEvents == null ? false : dataAndEvents; | ||
+ | deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; | ||
+ | |||
+ | return this.map( function() { | ||
+ | return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | html: function( value ) { | ||
+ | return access( this, function( value ) { | ||
+ | var elem = this[ 0 ] || {}, | ||
+ | i = 0, | ||
+ | l = this.length; | ||
+ | |||
+ | if ( value === undefined ) { | ||
+ | return elem.nodeType === 1 ? | ||
+ | elem.innerHTML.replace( rinlinejQuery, "" ) : | ||
+ | undefined; | ||
+ | } | ||
+ | |||
+ | // See if we can take a shortcut and just use innerHTML | ||
+ | if ( typeof value === "string" && !rnoInnerhtml.test( value ) && | ||
+ | ( support.htmlSerialize || !rnoshimcache.test( value ) ) && | ||
+ | ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && | ||
+ | !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { | ||
+ | |||
+ | value = jQuery.htmlPrefilter( value ); | ||
+ | |||
+ | try { | ||
+ | for ( ; i < l; i++ ) { | ||
+ | |||
+ | // Remove element nodes and prevent memory leaks | ||
+ | elem = this[ i ] || {}; | ||
+ | if ( elem.nodeType === 1 ) { | ||
+ | jQuery.cleanData( getAll( elem, false ) ); | ||
+ | elem.innerHTML = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | elem = 0; | ||
+ | |||
+ | // If using innerHTML throws an exception, use the fallback method | ||
+ | } catch ( e ) {} | ||
+ | } | ||
+ | |||
+ | if ( elem ) { | ||
+ | this.empty().append( value ); | ||
+ | } | ||
+ | }, null, value, arguments.length ); | ||
+ | }, | ||
+ | |||
+ | replaceWith: function() { | ||
+ | var ignored = []; | ||
+ | |||
+ | // Make the changes, replacing each non-ignored context element with the new content | ||
+ | return domManip( this, arguments, function( elem ) { | ||
+ | var parent = this.parentNode; | ||
+ | |||
+ | if ( jQuery.inArray( this, ignored ) < 0 ) { | ||
+ | jQuery.cleanData( getAll( this ) ); | ||
+ | if ( parent ) { | ||
+ | parent.replaceChild( elem, this ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Force callback invocation | ||
+ | }, ignored ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.each( { | ||
+ | appendTo: "append", | ||
+ | prependTo: "prepend", | ||
+ | insertBefore: "before", | ||
+ | insertAfter: "after", | ||
+ | replaceAll: "replaceWith" | ||
+ | }, function( name, original ) { | ||
+ | jQuery.fn[ name ] = function( selector ) { | ||
+ | var elems, | ||
+ | i = 0, | ||
+ | ret = [], | ||
+ | insert = jQuery( selector ), | ||
+ | last = insert.length - 1; | ||
+ | |||
+ | for ( ; i <= last; i++ ) { | ||
+ | elems = i === last ? this : this.clone( true ); | ||
+ | jQuery( insert[ i ] )[ original ]( elems ); | ||
+ | |||
+ | // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() | ||
+ | push.apply( ret, elems.get() ); | ||
+ | } | ||
+ | |||
+ | return this.pushStack( ret ); | ||
+ | }; | ||
+ | } ); | ||
+ | |||
+ | |||
+ | var iframe, | ||
+ | elemdisplay = { | ||
+ | |||
+ | // Support: Firefox | ||
+ | // We have to pre-define these values for FF (#10227) | ||
+ | HTML: "block", | ||
+ | BODY: "block" | ||
+ | }; | ||
+ | |||
+ | /** | ||
+ | * Retrieve the actual display of a element | ||
+ | * @param {String} name nodeName of the element | ||
+ | * @param {Object} doc Document object | ||
+ | */ | ||
+ | |||
+ | // Called only from within defaultDisplay | ||
+ | function actualDisplay( name, doc ) { | ||
+ | var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), | ||
+ | |||
+ | display = jQuery.css( elem[ 0 ], "display" ); | ||
+ | |||
+ | // We don't have any data stored on the element, | ||
+ | // so use "detach" method as fast way to get rid of the element | ||
+ | elem.detach(); | ||
+ | |||
+ | return display; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Try to determine the default display value of an element | ||
+ | * @param {String} nodeName | ||
+ | */ | ||
+ | function defaultDisplay( nodeName ) { | ||
+ | var doc = document, | ||
+ | display = elemdisplay[ nodeName ]; | ||
+ | |||
+ | if ( !display ) { | ||
+ | display = actualDisplay( nodeName, doc ); | ||
+ | |||
+ | // If the simple way fails, read from inside an iframe | ||
+ | if ( display === "none" || !display ) { | ||
+ | |||
+ | // Use the already-created iframe if possible | ||
+ | iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) ) | ||
+ | .appendTo( doc.documentElement ); | ||
+ | |||
+ | // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse | ||
+ | doc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document; | ||
+ | |||
+ | // Support: IE | ||
+ | doc.write(); | ||
+ | doc.close(); | ||
+ | |||
+ | display = actualDisplay( nodeName, doc ); | ||
+ | iframe.detach(); | ||
+ | } | ||
+ | |||
+ | // Store the correct default display | ||
+ | elemdisplay[ nodeName ] = display; | ||
+ | } | ||
+ | |||
+ | return display; | ||
+ | } | ||
+ | var rmargin = ( /^margin/ ); | ||
+ | |||
+ | var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); | ||
+ | |||
+ | var swap = function( elem, options, callback, args ) { | ||
+ | var ret, name, | ||
+ | old = {}; | ||
+ | |||
+ | // Remember the old values, and insert the new ones | ||
+ | for ( name in options ) { | ||
+ | old[ name ] = elem.style[ name ]; | ||
+ | elem.style[ name ] = options[ name ]; | ||
+ | } | ||
+ | |||
+ | ret = callback.apply( elem, args || [] ); | ||
+ | |||
+ | // Revert the old values | ||
+ | for ( name in options ) { | ||
+ | elem.style[ name ] = old[ name ]; | ||
+ | } | ||
+ | |||
+ | return ret; | ||
+ | }; | ||
+ | |||
+ | |||
+ | var documentElement = document.documentElement; | ||
+ | |||
+ | |||
+ | |||
+ | ( function() { | ||
+ | var pixelPositionVal, pixelMarginRightVal, boxSizingReliableVal, | ||
+ | reliableHiddenOffsetsVal, reliableMarginRightVal, reliableMarginLeftVal, | ||
+ | container = document.createElement( "div" ), | ||
+ | div = document.createElement( "div" ); | ||
+ | |||
+ | // Finish early in limited (non-browser) environments | ||
+ | if ( !div.style ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | div.style.cssText = "float:left;opacity:.5"; | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Make sure that element opacity exists (as opposed to filter) | ||
+ | support.opacity = div.style.opacity === "0.5"; | ||
+ | |||
+ | // Verify style float existence | ||
+ | // (IE uses styleFloat instead of cssFloat) | ||
+ | support.cssFloat = !!div.style.cssFloat; | ||
+ | |||
+ | div.style.backgroundClip = "content-box"; | ||
+ | div.cloneNode( true ).style.backgroundClip = ""; | ||
+ | support.clearCloneStyle = div.style.backgroundClip === "content-box"; | ||
+ | |||
+ | container = document.createElement( "div" ); | ||
+ | container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + | ||
+ | "padding:0;margin-top:1px;position:absolute"; | ||
+ | div.innerHTML = ""; | ||
+ | container.appendChild( div ); | ||
+ | |||
+ | // Support: Firefox<29, Android 2.3 | ||
+ | // Vendor-prefix box-sizing | ||
+ | support.boxSizing = div.style.boxSizing === "" || div.style.MozBoxSizing === "" || | ||
+ | div.style.WebkitBoxSizing === ""; | ||
+ | |||
+ | jQuery.extend( support, { | ||
+ | reliableHiddenOffsets: function() { | ||
+ | if ( pixelPositionVal == null ) { | ||
+ | computeStyleTests(); | ||
+ | } | ||
+ | return reliableHiddenOffsetsVal; | ||
+ | }, | ||
+ | |||
+ | boxSizingReliable: function() { | ||
+ | |||
+ | // We're checking for pixelPositionVal here instead of boxSizingReliableVal | ||
+ | // since that compresses better and they're computed together anyway. | ||
+ | if ( pixelPositionVal == null ) { | ||
+ | computeStyleTests(); | ||
+ | } | ||
+ | return boxSizingReliableVal; | ||
+ | }, | ||
+ | |||
+ | pixelMarginRight: function() { | ||
+ | |||
+ | // Support: Android 4.0-4.3 | ||
+ | if ( pixelPositionVal == null ) { | ||
+ | computeStyleTests(); | ||
+ | } | ||
+ | return pixelMarginRightVal; | ||
+ | }, | ||
+ | |||
+ | pixelPosition: function() { | ||
+ | if ( pixelPositionVal == null ) { | ||
+ | computeStyleTests(); | ||
+ | } | ||
+ | return pixelPositionVal; | ||
+ | }, | ||
+ | |||
+ | reliableMarginRight: function() { | ||
+ | |||
+ | // Support: Android 2.3 | ||
+ | if ( pixelPositionVal == null ) { | ||
+ | computeStyleTests(); | ||
+ | } | ||
+ | return reliableMarginRightVal; | ||
+ | }, | ||
+ | |||
+ | reliableMarginLeft: function() { | ||
+ | |||
+ | // Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37 | ||
+ | if ( pixelPositionVal == null ) { | ||
+ | computeStyleTests(); | ||
+ | } | ||
+ | return reliableMarginLeftVal; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | function computeStyleTests() { | ||
+ | var contents, divStyle, | ||
+ | documentElement = document.documentElement; | ||
+ | |||
+ | // Setup | ||
+ | documentElement.appendChild( container ); | ||
+ | |||
+ | div.style.cssText = | ||
+ | |||
+ | // Support: Android 2.3 | ||
+ | // Vendor-prefix box-sizing | ||
+ | "-webkit-box-sizing:border-box;box-sizing:border-box;" + | ||
+ | "position:relative;display:block;" + | ||
+ | "margin:auto;border:1px;padding:1px;" + | ||
+ | "top:1%;width:50%"; | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Assume reasonable values in the absence of getComputedStyle | ||
+ | pixelPositionVal = boxSizingReliableVal = reliableMarginLeftVal = false; | ||
+ | pixelMarginRightVal = reliableMarginRightVal = true; | ||
+ | |||
+ | // Check for getComputedStyle so that this code is not run in IE<9. | ||
+ | if ( window.getComputedStyle ) { | ||
+ | divStyle = window.getComputedStyle( div ); | ||
+ | pixelPositionVal = ( divStyle || {} ).top !== "1%"; | ||
+ | reliableMarginLeftVal = ( divStyle || {} ).marginLeft === "2px"; | ||
+ | boxSizingReliableVal = ( divStyle || { width: "4px" } ).width === "4px"; | ||
+ | |||
+ | // Support: Android 4.0 - 4.3 only | ||
+ | // Some styles come back with percentage values, even though they shouldn't | ||
+ | div.style.marginRight = "50%"; | ||
+ | pixelMarginRightVal = ( divStyle || { marginRight: "4px" } ).marginRight === "4px"; | ||
+ | |||
+ | // Support: Android 2.3 only | ||
+ | // Div with explicit width and no margin-right incorrectly | ||
+ | // gets computed margin-right based on width of container (#3333) | ||
+ | // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right | ||
+ | contents = div.appendChild( document.createElement( "div" ) ); | ||
+ | |||
+ | // Reset CSS: box-sizing; display; margin; border; padding | ||
+ | contents.style.cssText = div.style.cssText = | ||
+ | |||
+ | // Support: Android 2.3 | ||
+ | // Vendor-prefix box-sizing | ||
+ | "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + | ||
+ | "box-sizing:content-box;display:block;margin:0;border:0;padding:0"; | ||
+ | contents.style.marginRight = contents.style.width = "0"; | ||
+ | div.style.width = "1px"; | ||
+ | |||
+ | reliableMarginRightVal = | ||
+ | !parseFloat( ( window.getComputedStyle( contents ) || {} ).marginRight ); | ||
+ | |||
+ | div.removeChild( contents ); | ||
+ | } | ||
+ | |||
+ | // Support: IE6-8 | ||
+ | // First check that getClientRects works as expected | ||
+ | // Check if table cells still have offsetWidth/Height when they are set | ||
+ | // to display:none and there are still other visible table cells in a | ||
+ | // table row; if so, offsetWidth/Height are not reliable for use when | ||
+ | // determining if an element has been hidden directly using | ||
+ | // display:none (it is still safe to use offsets if a parent element is | ||
+ | // hidden; don safety goggles and see bug #4512 for more information). | ||
+ | div.style.display = "none"; | ||
+ | reliableHiddenOffsetsVal = div.getClientRects().length === 0; | ||
+ | if ( reliableHiddenOffsetsVal ) { | ||
+ | div.style.display = ""; | ||
+ | div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"; | ||
+ | div.childNodes[ 0 ].style.borderCollapse = "separate"; | ||
+ | contents = div.getElementsByTagName( "td" ); | ||
+ | contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none"; | ||
+ | reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; | ||
+ | if ( reliableHiddenOffsetsVal ) { | ||
+ | contents[ 0 ].style.display = ""; | ||
+ | contents[ 1 ].style.display = "none"; | ||
+ | reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Teardown | ||
+ | documentElement.removeChild( container ); | ||
+ | } | ||
+ | |||
+ | } )(); | ||
+ | |||
+ | |||
+ | var getStyles, curCSS, | ||
+ | rposition = /^(top|right|bottom|left)$/; | ||
+ | |||
+ | if ( window.getComputedStyle ) { | ||
+ | getStyles = function( elem ) { | ||
+ | |||
+ | // Support: IE<=11+, Firefox<=30+ (#15098, #14150) | ||
+ | // IE throws on elements created in popups | ||
+ | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" | ||
+ | var view = elem.ownerDocument.defaultView; | ||
+ | |||
+ | if ( !view || !view.opener ) { | ||
+ | view = window; | ||
+ | } | ||
+ | |||
+ | return view.getComputedStyle( elem ); | ||
+ | }; | ||
+ | |||
+ | curCSS = function( elem, name, computed ) { | ||
+ | var width, minWidth, maxWidth, ret, | ||
+ | style = elem.style; | ||
+ | |||
+ | computed = computed || getStyles( elem ); | ||
+ | |||
+ | // getPropertyValue is only needed for .css('filter') in IE9, see #12537 | ||
+ | ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined; | ||
+ | |||
+ | // Support: Opera 12.1x only | ||
+ | // Fall back to style even without computed | ||
+ | // computed is undefined for elems on document fragments | ||
+ | if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) { | ||
+ | ret = jQuery.style( elem, name ); | ||
+ | } | ||
+ | |||
+ | if ( computed ) { | ||
+ | |||
+ | // A tribute to the "awesome hack by Dean Edwards" | ||
+ | // Chrome < 17 and Safari 5.0 uses "computed value" | ||
+ | // instead of "used value" for margin-right | ||
+ | // Safari 5.1.7 (at least) returns percentage for a larger set of values, | ||
+ | // but width seems to be reliably pixels | ||
+ | // this is against the CSSOM draft spec: | ||
+ | // http://dev.w3.org/csswg/cssom/#resolved-values | ||
+ | if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { | ||
+ | |||
+ | // Remember the original values | ||
+ | width = style.width; | ||
+ | minWidth = style.minWidth; | ||
+ | maxWidth = style.maxWidth; | ||
+ | |||
+ | // Put in the new values to get a computed value out | ||
+ | style.minWidth = style.maxWidth = style.width = ret; | ||
+ | ret = computed.width; | ||
+ | |||
+ | // Revert the changed values | ||
+ | style.width = width; | ||
+ | style.minWidth = minWidth; | ||
+ | style.maxWidth = maxWidth; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Support: IE | ||
+ | // IE returns zIndex value as an integer. | ||
+ | return ret === undefined ? | ||
+ | ret : | ||
+ | ret + ""; | ||
+ | }; | ||
+ | } else if ( documentElement.currentStyle ) { | ||
+ | getStyles = function( elem ) { | ||
+ | return elem.currentStyle; | ||
+ | }; | ||
+ | |||
+ | curCSS = function( elem, name, computed ) { | ||
+ | var left, rs, rsLeft, ret, | ||
+ | style = elem.style; | ||
+ | |||
+ | computed = computed || getStyles( elem ); | ||
+ | ret = computed ? computed[ name ] : undefined; | ||
+ | |||
+ | // Avoid setting ret to empty string here | ||
+ | // so we don't default to auto | ||
+ | if ( ret == null && style && style[ name ] ) { | ||
+ | ret = style[ name ]; | ||
+ | } | ||
+ | |||
+ | // From the awesome hack by Dean Edwards | ||
+ | // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 | ||
+ | |||
+ | // If we're not dealing with a regular pixel number | ||
+ | // but a number that has a weird ending, we need to convert it to pixels | ||
+ | // but not position css attributes, as those are | ||
+ | // proportional to the parent element instead | ||
+ | // and we can't measure the parent instead because it | ||
+ | // might trigger a "stacking dolls" problem | ||
+ | if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { | ||
+ | |||
+ | // Remember the original values | ||
+ | left = style.left; | ||
+ | rs = elem.runtimeStyle; | ||
+ | rsLeft = rs && rs.left; | ||
+ | |||
+ | // Put in the new values to get a computed value out | ||
+ | if ( rsLeft ) { | ||
+ | rs.left = elem.currentStyle.left; | ||
+ | } | ||
+ | style.left = name === "fontSize" ? "1em" : ret; | ||
+ | ret = style.pixelLeft + "px"; | ||
+ | |||
+ | // Revert the changed values | ||
+ | style.left = left; | ||
+ | if ( rsLeft ) { | ||
+ | rs.left = rsLeft; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Support: IE | ||
+ | // IE returns zIndex value as an integer. | ||
+ | return ret === undefined ? | ||
+ | ret : | ||
+ | ret + "" || "auto"; | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | function addGetHookIf( conditionFn, hookFn ) { | ||
+ | |||
+ | // Define the hook, we'll check on the first run if it's really needed. | ||
+ | return { | ||
+ | get: function() { | ||
+ | if ( conditionFn() ) { | ||
+ | |||
+ | // Hook not needed (or it's not possible to use it due | ||
+ | // to missing dependency), remove it. | ||
+ | delete this.get; | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Hook needed; redefine it so that the support test is not executed again. | ||
+ | return ( this.get = hookFn ).apply( this, arguments ); | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | |||
+ | var | ||
+ | |||
+ | ralpha = /alpha\([^)]*\)/i, | ||
+ | ropacity = /opacity\s*=\s*([^)]*)/i, | ||
+ | |||
+ | // swappable if display is none or starts with table except | ||
+ | // "table", "table-cell", or "table-caption" | ||
+ | // see here for display values: | ||
+ | // https://developer.mozilla.org/en-US/docs/CSS/display | ||
+ | rdisplayswap = /^(none|table(?!-c[ea]).+)/, | ||
+ | rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), | ||
+ | |||
+ | cssShow = { position: "absolute", visibility: "hidden", display: "block" }, | ||
+ | cssNormalTransform = { | ||
+ | letterSpacing: "0", | ||
+ | fontWeight: "400" | ||
+ | }, | ||
+ | |||
+ | cssPrefixes = [ "Webkit", "O", "Moz", "ms" ], | ||
+ | emptyStyle = document.createElement( "div" ).style; | ||
+ | |||
+ | |||
+ | // return a css property mapped to a potentially vendor prefixed property | ||
+ | function vendorPropName( name ) { | ||
+ | |||
+ | // shortcut for names that are not vendor prefixed | ||
+ | if ( name in emptyStyle ) { | ||
+ | return name; | ||
+ | } | ||
+ | |||
+ | // check for vendor prefixed names | ||
+ | var capName = name.charAt( 0 ).toUpperCase() + name.slice( 1 ), | ||
+ | i = cssPrefixes.length; | ||
+ | |||
+ | while ( i-- ) { | ||
+ | name = cssPrefixes[ i ] + capName; | ||
+ | if ( name in emptyStyle ) { | ||
+ | return name; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function showHide( elements, show ) { | ||
+ | var display, elem, hidden, | ||
+ | values = [], | ||
+ | index = 0, | ||
+ | length = elements.length; | ||
+ | |||
+ | for ( ; index < length; index++ ) { | ||
+ | elem = elements[ index ]; | ||
+ | if ( !elem.style ) { | ||
+ | continue; | ||
+ | } | ||
+ | |||
+ | values[ index ] = jQuery._data( elem, "olddisplay" ); | ||
+ | display = elem.style.display; | ||
+ | if ( show ) { | ||
+ | |||
+ | // Reset the inline display of this element to learn if it is | ||
+ | // being hidden by cascaded rules or not | ||
+ | if ( !values[ index ] && display === "none" ) { | ||
+ | elem.style.display = ""; | ||
+ | } | ||
+ | |||
+ | // Set elements which have been overridden with display: none | ||
+ | // in a stylesheet to whatever the default browser style is | ||
+ | // for such an element | ||
+ | if ( elem.style.display === "" && isHidden( elem ) ) { | ||
+ | values[ index ] = | ||
+ | jQuery._data( elem, "olddisplay", defaultDisplay( elem.nodeName ) ); | ||
+ | } | ||
+ | } else { | ||
+ | hidden = isHidden( elem ); | ||
+ | |||
+ | if ( display && display !== "none" || !hidden ) { | ||
+ | jQuery._data( | ||
+ | elem, | ||
+ | "olddisplay", | ||
+ | hidden ? display : jQuery.css( elem, "display" ) | ||
+ | ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Set the display of most of the elements in a second loop | ||
+ | // to avoid the constant reflow | ||
+ | for ( index = 0; index < length; index++ ) { | ||
+ | elem = elements[ index ]; | ||
+ | if ( !elem.style ) { | ||
+ | continue; | ||
+ | } | ||
+ | if ( !show || elem.style.display === "none" || elem.style.display === "" ) { | ||
+ | elem.style.display = show ? values[ index ] || "" : "none"; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return elements; | ||
+ | } | ||
+ | |||
+ | function setPositiveNumber( elem, value, subtract ) { | ||
+ | var matches = rnumsplit.exec( value ); | ||
+ | return matches ? | ||
+ | |||
+ | // Guard against undefined "subtract", e.g., when used as in cssHooks | ||
+ | Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : | ||
+ | value; | ||
+ | } | ||
+ | |||
+ | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { | ||
+ | var i = extra === ( isBorderBox ? "border" : "content" ) ? | ||
+ | |||
+ | // If we already have the right measurement, avoid augmentation | ||
+ | 4 : | ||
+ | |||
+ | // Otherwise initialize for horizontal or vertical properties | ||
+ | name === "width" ? 1 : 0, | ||
+ | |||
+ | val = 0; | ||
+ | |||
+ | for ( ; i < 4; i += 2 ) { | ||
+ | |||
+ | // both box models exclude margin, so add it if we want it | ||
+ | if ( extra === "margin" ) { | ||
+ | val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); | ||
+ | } | ||
+ | |||
+ | if ( isBorderBox ) { | ||
+ | |||
+ | // border-box includes padding, so remove it if we want content | ||
+ | if ( extra === "content" ) { | ||
+ | val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); | ||
+ | } | ||
+ | |||
+ | // at this point, extra isn't border nor margin, so remove border | ||
+ | if ( extra !== "margin" ) { | ||
+ | val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); | ||
+ | } | ||
+ | } else { | ||
+ | |||
+ | // at this point, extra isn't content, so add padding | ||
+ | val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); | ||
+ | |||
+ | // at this point, extra isn't content nor padding, so add border | ||
+ | if ( extra !== "padding" ) { | ||
+ | val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return val; | ||
+ | } | ||
+ | |||
+ | function getWidthOrHeight( elem, name, extra ) { | ||
+ | |||
+ | // Start with offset property, which is equivalent to the border-box value | ||
+ | var valueIsBorderBox = true, | ||
+ | val = name === "width" ? elem.offsetWidth : elem.offsetHeight, | ||
+ | styles = getStyles( elem ), | ||
+ | isBorderBox = support.boxSizing && | ||
+ | jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; | ||
+ | |||
+ | // some non-html elements return undefined for offsetWidth, so check for null/undefined | ||
+ | // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 | ||
+ | // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 | ||
+ | if ( val <= 0 || val == null ) { | ||
+ | |||
+ | // Fall back to computed then uncomputed css if necessary | ||
+ | val = curCSS( elem, name, styles ); | ||
+ | if ( val < 0 || val == null ) { | ||
+ | val = elem.style[ name ]; | ||
+ | } | ||
+ | |||
+ | // Computed unit is not pixels. Stop here and return. | ||
+ | if ( rnumnonpx.test( val ) ) { | ||
+ | return val; | ||
+ | } | ||
+ | |||
+ | // we need the check for style in case a browser which returns unreliable values | ||
+ | // for getComputedStyle silently falls back to the reliable elem.style | ||
+ | valueIsBorderBox = isBorderBox && | ||
+ | ( support.boxSizingReliable() || val === elem.style[ name ] ); | ||
+ | |||
+ | // Normalize "", auto, and prepare for extra | ||
+ | val = parseFloat( val ) || 0; | ||
+ | } | ||
+ | |||
+ | // use the active box-sizing model to add/subtract irrelevant styles | ||
+ | return ( val + | ||
+ | augmentWidthOrHeight( | ||
+ | elem, | ||
+ | name, | ||
+ | extra || ( isBorderBox ? "border" : "content" ), | ||
+ | valueIsBorderBox, | ||
+ | styles | ||
+ | ) | ||
+ | ) + "px"; | ||
+ | } | ||
+ | |||
+ | jQuery.extend( { | ||
+ | |||
+ | // Add in style property hooks for overriding the default | ||
+ | // behavior of getting and setting a style property | ||
+ | cssHooks: { | ||
+ | opacity: { | ||
+ | get: function( elem, computed ) { | ||
+ | if ( computed ) { | ||
+ | |||
+ | // We should always get a number back from opacity | ||
+ | var ret = curCSS( elem, "opacity" ); | ||
+ | return ret === "" ? "1" : ret; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | // Don't automatically add "px" to these possibly-unitless properties | ||
+ | cssNumber: { | ||
+ | "animationIterationCount": true, | ||
+ | "columnCount": true, | ||
+ | "fillOpacity": true, | ||
+ | "flexGrow": true, | ||
+ | "flexShrink": true, | ||
+ | "fontWeight": true, | ||
+ | "lineHeight": true, | ||
+ | "opacity": true, | ||
+ | "order": true, | ||
+ | "orphans": true, | ||
+ | "widows": true, | ||
+ | "zIndex": true, | ||
+ | "zoom": true | ||
+ | }, | ||
+ | |||
+ | // Add in properties whose names you wish to fix before | ||
+ | // setting or getting the value | ||
+ | cssProps: { | ||
+ | |||
+ | // normalize float css property | ||
+ | "float": support.cssFloat ? "cssFloat" : "styleFloat" | ||
+ | }, | ||
+ | |||
+ | // Get and set the style property on a DOM Node | ||
+ | style: function( elem, name, value, extra ) { | ||
+ | |||
+ | // Don't set styles on text and comment nodes | ||
+ | if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Make sure that we're working with the right name | ||
+ | var ret, type, hooks, | ||
+ | origName = jQuery.camelCase( name ), | ||
+ | style = elem.style; | ||
+ | |||
+ | name = jQuery.cssProps[ origName ] || | ||
+ | ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); | ||
+ | |||
+ | // gets hook for the prefixed version | ||
+ | // followed by the unprefixed version | ||
+ | hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; | ||
+ | |||
+ | // Check if we're setting a value | ||
+ | if ( value !== undefined ) { | ||
+ | type = typeof value; | ||
+ | |||
+ | // Convert "+=" or "-=" to relative numbers (#7345) | ||
+ | if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { | ||
+ | value = adjustCSS( elem, name, ret ); | ||
+ | |||
+ | // Fixes bug #9237 | ||
+ | type = "number"; | ||
+ | } | ||
+ | |||
+ | // Make sure that null and NaN values aren't set. See: #7116 | ||
+ | if ( value == null || value !== value ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // If a number was passed in, add the unit (except for certain CSS properties) | ||
+ | if ( type === "number" ) { | ||
+ | value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); | ||
+ | } | ||
+ | |||
+ | // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, | ||
+ | // but it would mean to define eight | ||
+ | // (for every problematic property) identical functions | ||
+ | if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { | ||
+ | style[ name ] = "inherit"; | ||
+ | } | ||
+ | |||
+ | // If a hook was provided, use that value, otherwise just set the specified value | ||
+ | if ( !hooks || !( "set" in hooks ) || | ||
+ | ( value = hooks.set( elem, value, extra ) ) !== undefined ) { | ||
+ | |||
+ | // Support: IE | ||
+ | // Swallow errors from 'invalid' CSS values (#5509) | ||
+ | try { | ||
+ | style[ name ] = value; | ||
+ | } catch ( e ) {} | ||
+ | } | ||
+ | |||
+ | } else { | ||
+ | |||
+ | // If a hook was provided get the non-computed value from there | ||
+ | if ( hooks && "get" in hooks && | ||
+ | ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { | ||
+ | |||
+ | return ret; | ||
+ | } | ||
+ | |||
+ | // Otherwise just get the value from the style object | ||
+ | return style[ name ]; | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | css: function( elem, name, extra, styles ) { | ||
+ | var num, val, hooks, | ||
+ | origName = jQuery.camelCase( name ); | ||
+ | |||
+ | // Make sure that we're working with the right name | ||
+ | name = jQuery.cssProps[ origName ] || | ||
+ | ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); | ||
+ | |||
+ | // gets hook for the prefixed version | ||
+ | // followed by the unprefixed version | ||
+ | hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; | ||
+ | |||
+ | // If a hook was provided get the computed value from there | ||
+ | if ( hooks && "get" in hooks ) { | ||
+ | val = hooks.get( elem, true, extra ); | ||
+ | } | ||
+ | |||
+ | // Otherwise, if a way to get the computed value exists, use that | ||
+ | if ( val === undefined ) { | ||
+ | val = curCSS( elem, name, styles ); | ||
+ | } | ||
+ | |||
+ | //convert "normal" to computed value | ||
+ | if ( val === "normal" && name in cssNormalTransform ) { | ||
+ | val = cssNormalTransform[ name ]; | ||
+ | } | ||
+ | |||
+ | // Return, converting to number if forced or a qualifier was provided and val looks numeric | ||
+ | if ( extra === "" || extra ) { | ||
+ | num = parseFloat( val ); | ||
+ | return extra === true || isFinite( num ) ? num || 0 : val; | ||
+ | } | ||
+ | return val; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.each( [ "height", "width" ], function( i, name ) { | ||
+ | jQuery.cssHooks[ name ] = { | ||
+ | get: function( elem, computed, extra ) { | ||
+ | if ( computed ) { | ||
+ | |||
+ | // certain elements can have dimension info if we invisibly show them | ||
+ | // however, it must have a current display style that would benefit from this | ||
+ | return rdisplayswap.test( jQuery.css( elem, "display" ) ) && | ||
+ | elem.offsetWidth === 0 ? | ||
+ | swap( elem, cssShow, function() { | ||
+ | return getWidthOrHeight( elem, name, extra ); | ||
+ | } ) : | ||
+ | getWidthOrHeight( elem, name, extra ); | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | set: function( elem, value, extra ) { | ||
+ | var styles = extra && getStyles( elem ); | ||
+ | return setPositiveNumber( elem, value, extra ? | ||
+ | augmentWidthOrHeight( | ||
+ | elem, | ||
+ | name, | ||
+ | extra, | ||
+ | support.boxSizing && | ||
+ | jQuery.css( elem, "boxSizing", false, styles ) === "border-box", | ||
+ | styles | ||
+ | ) : 0 | ||
+ | ); | ||
+ | } | ||
+ | }; | ||
+ | } ); | ||
+ | |||
+ | if ( !support.opacity ) { | ||
+ | jQuery.cssHooks.opacity = { | ||
+ | get: function( elem, computed ) { | ||
+ | |||
+ | // IE uses filters for opacity | ||
+ | return ropacity.test( ( computed && elem.currentStyle ? | ||
+ | elem.currentStyle.filter : | ||
+ | elem.style.filter ) || "" ) ? | ||
+ | ( 0.01 * parseFloat( RegExp.$1 ) ) + "" : | ||
+ | computed ? "1" : ""; | ||
+ | }, | ||
+ | |||
+ | set: function( elem, value ) { | ||
+ | var style = elem.style, | ||
+ | currentStyle = elem.currentStyle, | ||
+ | opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "", | ||
+ | filter = currentStyle && currentStyle.filter || style.filter || ""; | ||
+ | |||
+ | // IE has trouble with opacity if it does not have layout | ||
+ | // Force it by setting the zoom level | ||
+ | style.zoom = 1; | ||
+ | |||
+ | // if setting opacity to 1, and no other filters exist - | ||
+ | // attempt to remove filter attribute #6652 | ||
+ | // if value === "", then remove inline opacity #12685 | ||
+ | if ( ( value >= 1 || value === "" ) && | ||
+ | jQuery.trim( filter.replace( ralpha, "" ) ) === "" && | ||
+ | style.removeAttribute ) { | ||
+ | |||
+ | // Setting style.filter to null, "" & " " still leave "filter:" in the cssText | ||
+ | // if "filter:" is present at all, clearType is disabled, we want to avoid this | ||
+ | // style.removeAttribute is IE Only, but so apparently is this code path... | ||
+ | style.removeAttribute( "filter" ); | ||
+ | |||
+ | // if there is no filter style applied in a css rule | ||
+ | // or unset inline opacity, we are done | ||
+ | if ( value === "" || currentStyle && !currentStyle.filter ) { | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // otherwise, set new filter values | ||
+ | style.filter = ralpha.test( filter ) ? | ||
+ | filter.replace( ralpha, opacity ) : | ||
+ | filter + " " + opacity; | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, | ||
+ | function( elem, computed ) { | ||
+ | if ( computed ) { | ||
+ | return swap( elem, { "display": "inline-block" }, | ||
+ | curCSS, [ elem, "marginRight" ] ); | ||
+ | } | ||
+ | } | ||
+ | ); | ||
+ | |||
+ | jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, | ||
+ | function( elem, computed ) { | ||
+ | if ( computed ) { | ||
+ | return ( | ||
+ | parseFloat( curCSS( elem, "marginLeft" ) ) || | ||
+ | |||
+ | // Support: IE<=11+ | ||
+ | // Running getBoundingClientRect on a disconnected node in IE throws an error | ||
+ | // Support: IE8 only | ||
+ | // getClientRects() errors on disconnected elems | ||
+ | ( jQuery.contains( elem.ownerDocument, elem ) ? | ||
+ | elem.getBoundingClientRect().left - | ||
+ | swap( elem, { marginLeft: 0 }, function() { | ||
+ | return elem.getBoundingClientRect().left; | ||
+ | } ) : | ||
+ | 0 | ||
+ | ) | ||
+ | ) + "px"; | ||
+ | } | ||
+ | } | ||
+ | ); | ||
+ | |||
+ | // These hooks are used by animate to expand properties | ||
+ | jQuery.each( { | ||
+ | margin: "", | ||
+ | padding: "", | ||
+ | border: "Width" | ||
+ | }, function( prefix, suffix ) { | ||
+ | jQuery.cssHooks[ prefix + suffix ] = { | ||
+ | expand: function( value ) { | ||
+ | var i = 0, | ||
+ | expanded = {}, | ||
+ | |||
+ | // assumes a single number if not a string | ||
+ | parts = typeof value === "string" ? value.split( " " ) : [ value ]; | ||
+ | |||
+ | for ( ; i < 4; i++ ) { | ||
+ | expanded[ prefix + cssExpand[ i ] + suffix ] = | ||
+ | parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; | ||
+ | } | ||
+ | |||
+ | return expanded; | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | if ( !rmargin.test( prefix ) ) { | ||
+ | jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | css: function( name, value ) { | ||
+ | return access( this, function( elem, name, value ) { | ||
+ | var styles, len, | ||
+ | map = {}, | ||
+ | i = 0; | ||
+ | |||
+ | if ( jQuery.isArray( name ) ) { | ||
+ | styles = getStyles( elem ); | ||
+ | len = name.length; | ||
+ | |||
+ | for ( ; i < len; i++ ) { | ||
+ | map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); | ||
+ | } | ||
+ | |||
+ | return map; | ||
+ | } | ||
+ | |||
+ | return value !== undefined ? | ||
+ | jQuery.style( elem, name, value ) : | ||
+ | jQuery.css( elem, name ); | ||
+ | }, name, value, arguments.length > 1 ); | ||
+ | }, | ||
+ | show: function() { | ||
+ | return showHide( this, true ); | ||
+ | }, | ||
+ | hide: function() { | ||
+ | return showHide( this ); | ||
+ | }, | ||
+ | toggle: function( state ) { | ||
+ | if ( typeof state === "boolean" ) { | ||
+ | return state ? this.show() : this.hide(); | ||
+ | } | ||
+ | |||
+ | return this.each( function() { | ||
+ | if ( isHidden( this ) ) { | ||
+ | jQuery( this ).show(); | ||
+ | } else { | ||
+ | jQuery( this ).hide(); | ||
+ | } | ||
+ | } ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | function Tween( elem, options, prop, end, easing ) { | ||
+ | return new Tween.prototype.init( elem, options, prop, end, easing ); | ||
+ | } | ||
+ | jQuery.Tween = Tween; | ||
+ | |||
+ | Tween.prototype = { | ||
+ | constructor: Tween, | ||
+ | init: function( elem, options, prop, end, easing, unit ) { | ||
+ | this.elem = elem; | ||
+ | this.prop = prop; | ||
+ | this.easing = easing || jQuery.easing._default; | ||
+ | this.options = options; | ||
+ | this.start = this.now = this.cur(); | ||
+ | this.end = end; | ||
+ | this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); | ||
+ | }, | ||
+ | cur: function() { | ||
+ | var hooks = Tween.propHooks[ this.prop ]; | ||
+ | |||
+ | return hooks && hooks.get ? | ||
+ | hooks.get( this ) : | ||
+ | Tween.propHooks._default.get( this ); | ||
+ | }, | ||
+ | run: function( percent ) { | ||
+ | var eased, | ||
+ | hooks = Tween.propHooks[ this.prop ]; | ||
+ | |||
+ | if ( this.options.duration ) { | ||
+ | this.pos = eased = jQuery.easing[ this.easing ]( | ||
+ | percent, this.options.duration * percent, 0, 1, this.options.duration | ||
+ | ); | ||
+ | } else { | ||
+ | this.pos = eased = percent; | ||
+ | } | ||
+ | this.now = ( this.end - this.start ) * eased + this.start; | ||
+ | |||
+ | if ( this.options.step ) { | ||
+ | this.options.step.call( this.elem, this.now, this ); | ||
+ | } | ||
+ | |||
+ | if ( hooks && hooks.set ) { | ||
+ | hooks.set( this ); | ||
+ | } else { | ||
+ | Tween.propHooks._default.set( this ); | ||
+ | } | ||
+ | return this; | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | Tween.prototype.init.prototype = Tween.prototype; | ||
+ | |||
+ | Tween.propHooks = { | ||
+ | _default: { | ||
+ | get: function( tween ) { | ||
+ | var result; | ||
+ | |||
+ | // Use a property on the element directly when it is not a DOM element, | ||
+ | // or when there is no matching style property that exists. | ||
+ | if ( tween.elem.nodeType !== 1 || | ||
+ | tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { | ||
+ | return tween.elem[ tween.prop ]; | ||
+ | } | ||
+ | |||
+ | // passing an empty string as a 3rd parameter to .css will automatically | ||
+ | // attempt a parseFloat and fallback to a string if the parse fails | ||
+ | // so, simple values such as "10px" are parsed to Float. | ||
+ | // complex values such as "rotate(1rad)" are returned as is. | ||
+ | result = jQuery.css( tween.elem, tween.prop, "" ); | ||
+ | |||
+ | // Empty strings, null, undefined and "auto" are converted to 0. | ||
+ | return !result || result === "auto" ? 0 : result; | ||
+ | }, | ||
+ | set: function( tween ) { | ||
+ | |||
+ | // use step hook for back compat - use cssHook if its there - use .style if its | ||
+ | // available and use plain properties where available | ||
+ | if ( jQuery.fx.step[ tween.prop ] ) { | ||
+ | jQuery.fx.step[ tween.prop ]( tween ); | ||
+ | } else if ( tween.elem.nodeType === 1 && | ||
+ | ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || | ||
+ | jQuery.cssHooks[ tween.prop ] ) ) { | ||
+ | jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); | ||
+ | } else { | ||
+ | tween.elem[ tween.prop ] = tween.now; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | // Support: IE <=9 | ||
+ | // Panic based approach to setting things on disconnected nodes | ||
+ | |||
+ | Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { | ||
+ | set: function( tween ) { | ||
+ | if ( tween.elem.nodeType && tween.elem.parentNode ) { | ||
+ | tween.elem[ tween.prop ] = tween.now; | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | jQuery.easing = { | ||
+ | linear: function( p ) { | ||
+ | return p; | ||
+ | }, | ||
+ | swing: function( p ) { | ||
+ | return 0.5 - Math.cos( p * Math.PI ) / 2; | ||
+ | }, | ||
+ | _default: "swing" | ||
+ | }; | ||
+ | |||
+ | jQuery.fx = Tween.prototype.init; | ||
+ | |||
+ | // Back Compat <1.8 extension point | ||
+ | jQuery.fx.step = {}; | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | var | ||
+ | fxNow, timerId, | ||
+ | rfxtypes = /^(?:toggle|show|hide)$/, | ||
+ | rrun = /queueHooks$/; | ||
+ | |||
+ | // Animations created synchronously will run synchronously | ||
+ | function createFxNow() { | ||
+ | window.setTimeout( function() { | ||
+ | fxNow = undefined; | ||
+ | } ); | ||
+ | return ( fxNow = jQuery.now() ); | ||
+ | } | ||
+ | |||
+ | // Generate parameters to create a standard animation | ||
+ | function genFx( type, includeWidth ) { | ||
+ | var which, | ||
+ | attrs = { height: type }, | ||
+ | i = 0; | ||
+ | |||
+ | // if we include width, step value is 1 to do all cssExpand values, | ||
+ | // if we don't include width, step value is 2 to skip over Left and Right | ||
+ | includeWidth = includeWidth ? 1 : 0; | ||
+ | for ( ; i < 4 ; i += 2 - includeWidth ) { | ||
+ | which = cssExpand[ i ]; | ||
+ | attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; | ||
+ | } | ||
+ | |||
+ | if ( includeWidth ) { | ||
+ | attrs.opacity = attrs.width = type; | ||
+ | } | ||
+ | |||
+ | return attrs; | ||
+ | } | ||
+ | |||
+ | function createTween( value, prop, animation ) { | ||
+ | var tween, | ||
+ | collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), | ||
+ | index = 0, | ||
+ | length = collection.length; | ||
+ | for ( ; index < length; index++ ) { | ||
+ | if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { | ||
+ | |||
+ | // we're done with this property | ||
+ | return tween; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function defaultPrefilter( elem, props, opts ) { | ||
+ | /* jshint validthis: true */ | ||
+ | var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, | ||
+ | anim = this, | ||
+ | orig = {}, | ||
+ | style = elem.style, | ||
+ | hidden = elem.nodeType && isHidden( elem ), | ||
+ | dataShow = jQuery._data( elem, "fxshow" ); | ||
+ | |||
+ | // handle queue: false promises | ||
+ | if ( !opts.queue ) { | ||
+ | hooks = jQuery._queueHooks( elem, "fx" ); | ||
+ | if ( hooks.unqueued == null ) { | ||
+ | hooks.unqueued = 0; | ||
+ | oldfire = hooks.empty.fire; | ||
+ | hooks.empty.fire = function() { | ||
+ | if ( !hooks.unqueued ) { | ||
+ | oldfire(); | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | hooks.unqueued++; | ||
+ | |||
+ | anim.always( function() { | ||
+ | |||
+ | // doing this makes sure that the complete handler will be called | ||
+ | // before this completes | ||
+ | anim.always( function() { | ||
+ | hooks.unqueued--; | ||
+ | if ( !jQuery.queue( elem, "fx" ).length ) { | ||
+ | hooks.empty.fire(); | ||
+ | } | ||
+ | } ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | // height/width overflow pass | ||
+ | if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { | ||
+ | |||
+ | // Make sure that nothing sneaks out | ||
+ | // Record all 3 overflow attributes because IE does not | ||
+ | // change the overflow attribute when overflowX and | ||
+ | // overflowY are set to the same value | ||
+ | opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; | ||
+ | |||
+ | // Set display property to inline-block for height/width | ||
+ | // animations on inline elements that are having width/height animated | ||
+ | display = jQuery.css( elem, "display" ); | ||
+ | |||
+ | // Test default display if display is currently "none" | ||
+ | checkDisplay = display === "none" ? | ||
+ | jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display; | ||
+ | |||
+ | if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) { | ||
+ | |||
+ | // inline-level elements accept inline-block; | ||
+ | // block-level elements need to be inline with layout | ||
+ | if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) { | ||
+ | style.display = "inline-block"; | ||
+ | } else { | ||
+ | style.zoom = 1; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ( opts.overflow ) { | ||
+ | style.overflow = "hidden"; | ||
+ | if ( !support.shrinkWrapBlocks() ) { | ||
+ | anim.always( function() { | ||
+ | style.overflow = opts.overflow[ 0 ]; | ||
+ | style.overflowX = opts.overflow[ 1 ]; | ||
+ | style.overflowY = opts.overflow[ 2 ]; | ||
+ | } ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // show/hide pass | ||
+ | for ( prop in props ) { | ||
+ | value = props[ prop ]; | ||
+ | if ( rfxtypes.exec( value ) ) { | ||
+ | delete props[ prop ]; | ||
+ | toggle = toggle || value === "toggle"; | ||
+ | if ( value === ( hidden ? "hide" : "show" ) ) { | ||
+ | |||
+ | // If there is dataShow left over from a stopped hide or show | ||
+ | // and we are going to proceed with show, we should pretend to be hidden | ||
+ | if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { | ||
+ | hidden = true; | ||
+ | } else { | ||
+ | continue; | ||
+ | } | ||
+ | } | ||
+ | orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); | ||
+ | |||
+ | // Any non-fx value stops us from restoring the original display value | ||
+ | } else { | ||
+ | display = undefined; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ( !jQuery.isEmptyObject( orig ) ) { | ||
+ | if ( dataShow ) { | ||
+ | if ( "hidden" in dataShow ) { | ||
+ | hidden = dataShow.hidden; | ||
+ | } | ||
+ | } else { | ||
+ | dataShow = jQuery._data( elem, "fxshow", {} ); | ||
+ | } | ||
+ | |||
+ | // store state if its toggle - enables .stop().toggle() to "reverse" | ||
+ | if ( toggle ) { | ||
+ | dataShow.hidden = !hidden; | ||
+ | } | ||
+ | if ( hidden ) { | ||
+ | jQuery( elem ).show(); | ||
+ | } else { | ||
+ | anim.done( function() { | ||
+ | jQuery( elem ).hide(); | ||
+ | } ); | ||
+ | } | ||
+ | anim.done( function() { | ||
+ | var prop; | ||
+ | jQuery._removeData( elem, "fxshow" ); | ||
+ | for ( prop in orig ) { | ||
+ | jQuery.style( elem, prop, orig[ prop ] ); | ||
+ | } | ||
+ | } ); | ||
+ | for ( prop in orig ) { | ||
+ | tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); | ||
+ | |||
+ | if ( !( prop in dataShow ) ) { | ||
+ | dataShow[ prop ] = tween.start; | ||
+ | if ( hidden ) { | ||
+ | tween.end = tween.start; | ||
+ | tween.start = prop === "width" || prop === "height" ? 1 : 0; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // If this is a noop like .hide().hide(), restore an overwritten display value | ||
+ | } else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) { | ||
+ | style.display = display; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function propFilter( props, specialEasing ) { | ||
+ | var index, name, easing, value, hooks; | ||
+ | |||
+ | // camelCase, specialEasing and expand cssHook pass | ||
+ | for ( index in props ) { | ||
+ | name = jQuery.camelCase( index ); | ||
+ | easing = specialEasing[ name ]; | ||
+ | value = props[ index ]; | ||
+ | if ( jQuery.isArray( value ) ) { | ||
+ | easing = value[ 1 ]; | ||
+ | value = props[ index ] = value[ 0 ]; | ||
+ | } | ||
+ | |||
+ | if ( index !== name ) { | ||
+ | props[ name ] = value; | ||
+ | delete props[ index ]; | ||
+ | } | ||
+ | |||
+ | hooks = jQuery.cssHooks[ name ]; | ||
+ | if ( hooks && "expand" in hooks ) { | ||
+ | value = hooks.expand( value ); | ||
+ | delete props[ name ]; | ||
+ | |||
+ | // not quite $.extend, this wont overwrite keys already present. | ||
+ | // also - reusing 'index' from above because we have the correct "name" | ||
+ | for ( index in value ) { | ||
+ | if ( !( index in props ) ) { | ||
+ | props[ index ] = value[ index ]; | ||
+ | specialEasing[ index ] = easing; | ||
+ | } | ||
+ | } | ||
+ | } else { | ||
+ | specialEasing[ name ] = easing; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function Animation( elem, properties, options ) { | ||
+ | var result, | ||
+ | stopped, | ||
+ | index = 0, | ||
+ | length = Animation.prefilters.length, | ||
+ | deferred = jQuery.Deferred().always( function() { | ||
+ | |||
+ | // don't match elem in the :animated selector | ||
+ | delete tick.elem; | ||
+ | } ), | ||
+ | tick = function() { | ||
+ | if ( stopped ) { | ||
+ | return false; | ||
+ | } | ||
+ | var currentTime = fxNow || createFxNow(), | ||
+ | remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), | ||
+ | |||
+ | // Support: Android 2.3 | ||
+ | // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) | ||
+ | temp = remaining / animation.duration || 0, | ||
+ | percent = 1 - temp, | ||
+ | index = 0, | ||
+ | length = animation.tweens.length; | ||
+ | |||
+ | for ( ; index < length ; index++ ) { | ||
+ | animation.tweens[ index ].run( percent ); | ||
+ | } | ||
+ | |||
+ | deferred.notifyWith( elem, [ animation, percent, remaining ] ); | ||
+ | |||
+ | if ( percent < 1 && length ) { | ||
+ | return remaining; | ||
+ | } else { | ||
+ | deferred.resolveWith( elem, [ animation ] ); | ||
+ | return false; | ||
+ | } | ||
+ | }, | ||
+ | animation = deferred.promise( { | ||
+ | elem: elem, | ||
+ | props: jQuery.extend( {}, properties ), | ||
+ | opts: jQuery.extend( true, { | ||
+ | specialEasing: {}, | ||
+ | easing: jQuery.easing._default | ||
+ | }, options ), | ||
+ | originalProperties: properties, | ||
+ | originalOptions: options, | ||
+ | startTime: fxNow || createFxNow(), | ||
+ | duration: options.duration, | ||
+ | tweens: [], | ||
+ | createTween: function( prop, end ) { | ||
+ | var tween = jQuery.Tween( elem, animation.opts, prop, end, | ||
+ | animation.opts.specialEasing[ prop ] || animation.opts.easing ); | ||
+ | animation.tweens.push( tween ); | ||
+ | return tween; | ||
+ | }, | ||
+ | stop: function( gotoEnd ) { | ||
+ | var index = 0, | ||
+ | |||
+ | // if we are going to the end, we want to run all the tweens | ||
+ | // otherwise we skip this part | ||
+ | length = gotoEnd ? animation.tweens.length : 0; | ||
+ | if ( stopped ) { | ||
+ | return this; | ||
+ | } | ||
+ | stopped = true; | ||
+ | for ( ; index < length ; index++ ) { | ||
+ | animation.tweens[ index ].run( 1 ); | ||
+ | } | ||
+ | |||
+ | // resolve when we played the last frame | ||
+ | // otherwise, reject | ||
+ | if ( gotoEnd ) { | ||
+ | deferred.notifyWith( elem, [ animation, 1, 0 ] ); | ||
+ | deferred.resolveWith( elem, [ animation, gotoEnd ] ); | ||
+ | } else { | ||
+ | deferred.rejectWith( elem, [ animation, gotoEnd ] ); | ||
+ | } | ||
+ | return this; | ||
+ | } | ||
+ | } ), | ||
+ | props = animation.props; | ||
+ | |||
+ | propFilter( props, animation.opts.specialEasing ); | ||
+ | |||
+ | for ( ; index < length ; index++ ) { | ||
+ | result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); | ||
+ | if ( result ) { | ||
+ | if ( jQuery.isFunction( result.stop ) ) { | ||
+ | jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = | ||
+ | jQuery.proxy( result.stop, result ); | ||
+ | } | ||
+ | return result; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | jQuery.map( props, createTween, animation ); | ||
+ | |||
+ | if ( jQuery.isFunction( animation.opts.start ) ) { | ||
+ | animation.opts.start.call( elem, animation ); | ||
+ | } | ||
+ | |||
+ | jQuery.fx.timer( | ||
+ | jQuery.extend( tick, { | ||
+ | elem: elem, | ||
+ | anim: animation, | ||
+ | queue: animation.opts.queue | ||
+ | } ) | ||
+ | ); | ||
+ | |||
+ | // attach callbacks from options | ||
+ | return animation.progress( animation.opts.progress ) | ||
+ | .done( animation.opts.done, animation.opts.complete ) | ||
+ | .fail( animation.opts.fail ) | ||
+ | .always( animation.opts.always ); | ||
+ | } | ||
+ | |||
+ | jQuery.Animation = jQuery.extend( Animation, { | ||
+ | |||
+ | tweeners: { | ||
+ | "*": [ function( prop, value ) { | ||
+ | var tween = this.createTween( prop, value ); | ||
+ | adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); | ||
+ | return tween; | ||
+ | } ] | ||
+ | }, | ||
+ | |||
+ | tweener: function( props, callback ) { | ||
+ | if ( jQuery.isFunction( props ) ) { | ||
+ | callback = props; | ||
+ | props = [ "*" ]; | ||
+ | } else { | ||
+ | props = props.match( rnotwhite ); | ||
+ | } | ||
+ | |||
+ | var prop, | ||
+ | index = 0, | ||
+ | length = props.length; | ||
+ | |||
+ | for ( ; index < length ; index++ ) { | ||
+ | prop = props[ index ]; | ||
+ | Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; | ||
+ | Animation.tweeners[ prop ].unshift( callback ); | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | prefilters: [ defaultPrefilter ], | ||
+ | |||
+ | prefilter: function( callback, prepend ) { | ||
+ | if ( prepend ) { | ||
+ | Animation.prefilters.unshift( callback ); | ||
+ | } else { | ||
+ | Animation.prefilters.push( callback ); | ||
+ | } | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.speed = function( speed, easing, fn ) { | ||
+ | var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { | ||
+ | complete: fn || !fn && easing || | ||
+ | jQuery.isFunction( speed ) && speed, | ||
+ | duration: speed, | ||
+ | easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing | ||
+ | }; | ||
+ | |||
+ | opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : | ||
+ | opt.duration in jQuery.fx.speeds ? | ||
+ | jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; | ||
+ | |||
+ | // normalize opt.queue - true/undefined/null -> "fx" | ||
+ | if ( opt.queue == null || opt.queue === true ) { | ||
+ | opt.queue = "fx"; | ||
+ | } | ||
+ | |||
+ | // Queueing | ||
+ | opt.old = opt.complete; | ||
+ | |||
+ | opt.complete = function() { | ||
+ | if ( jQuery.isFunction( opt.old ) ) { | ||
+ | opt.old.call( this ); | ||
+ | } | ||
+ | |||
+ | if ( opt.queue ) { | ||
+ | jQuery.dequeue( this, opt.queue ); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | return opt; | ||
+ | }; | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | fadeTo: function( speed, to, easing, callback ) { | ||
+ | |||
+ | // show any hidden elements after setting opacity to 0 | ||
+ | return this.filter( isHidden ).css( "opacity", 0 ).show() | ||
+ | |||
+ | // animate to the value specified | ||
+ | .end().animate( { opacity: to }, speed, easing, callback ); | ||
+ | }, | ||
+ | animate: function( prop, speed, easing, callback ) { | ||
+ | var empty = jQuery.isEmptyObject( prop ), | ||
+ | optall = jQuery.speed( speed, easing, callback ), | ||
+ | doAnimation = function() { | ||
+ | |||
+ | // Operate on a copy of prop so per-property easing won't be lost | ||
+ | var anim = Animation( this, jQuery.extend( {}, prop ), optall ); | ||
+ | |||
+ | // Empty animations, or finishing resolves immediately | ||
+ | if ( empty || jQuery._data( this, "finish" ) ) { | ||
+ | anim.stop( true ); | ||
+ | } | ||
+ | }; | ||
+ | doAnimation.finish = doAnimation; | ||
+ | |||
+ | return empty || optall.queue === false ? | ||
+ | this.each( doAnimation ) : | ||
+ | this.queue( optall.queue, doAnimation ); | ||
+ | }, | ||
+ | stop: function( type, clearQueue, gotoEnd ) { | ||
+ | var stopQueue = function( hooks ) { | ||
+ | var stop = hooks.stop; | ||
+ | delete hooks.stop; | ||
+ | stop( gotoEnd ); | ||
+ | }; | ||
+ | |||
+ | if ( typeof type !== "string" ) { | ||
+ | gotoEnd = clearQueue; | ||
+ | clearQueue = type; | ||
+ | type = undefined; | ||
+ | } | ||
+ | if ( clearQueue && type !== false ) { | ||
+ | this.queue( type || "fx", [] ); | ||
+ | } | ||
+ | |||
+ | return this.each( function() { | ||
+ | var dequeue = true, | ||
+ | index = type != null && type + "queueHooks", | ||
+ | timers = jQuery.timers, | ||
+ | data = jQuery._data( this ); | ||
+ | |||
+ | if ( index ) { | ||
+ | if ( data[ index ] && data[ index ].stop ) { | ||
+ | stopQueue( data[ index ] ); | ||
+ | } | ||
+ | } else { | ||
+ | for ( index in data ) { | ||
+ | if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { | ||
+ | stopQueue( data[ index ] ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | for ( index = timers.length; index--; ) { | ||
+ | if ( timers[ index ].elem === this && | ||
+ | ( type == null || timers[ index ].queue === type ) ) { | ||
+ | |||
+ | timers[ index ].anim.stop( gotoEnd ); | ||
+ | dequeue = false; | ||
+ | timers.splice( index, 1 ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // start the next in the queue if the last step wasn't forced | ||
+ | // timers currently will call their complete callbacks, which will dequeue | ||
+ | // but only if they were gotoEnd | ||
+ | if ( dequeue || !gotoEnd ) { | ||
+ | jQuery.dequeue( this, type ); | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | finish: function( type ) { | ||
+ | if ( type !== false ) { | ||
+ | type = type || "fx"; | ||
+ | } | ||
+ | return this.each( function() { | ||
+ | var index, | ||
+ | data = jQuery._data( this ), | ||
+ | queue = data[ type + "queue" ], | ||
+ | hooks = data[ type + "queueHooks" ], | ||
+ | timers = jQuery.timers, | ||
+ | length = queue ? queue.length : 0; | ||
+ | |||
+ | // enable finishing flag on private data | ||
+ | data.finish = true; | ||
+ | |||
+ | // empty the queue first | ||
+ | jQuery.queue( this, type, [] ); | ||
+ | |||
+ | if ( hooks && hooks.stop ) { | ||
+ | hooks.stop.call( this, true ); | ||
+ | } | ||
+ | |||
+ | // look for any active animations, and finish them | ||
+ | for ( index = timers.length; index--; ) { | ||
+ | if ( timers[ index ].elem === this && timers[ index ].queue === type ) { | ||
+ | timers[ index ].anim.stop( true ); | ||
+ | timers.splice( index, 1 ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // look for any animations in the old queue and finish them | ||
+ | for ( index = 0; index < length; index++ ) { | ||
+ | if ( queue[ index ] && queue[ index ].finish ) { | ||
+ | queue[ index ].finish.call( this ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // turn off finishing flag | ||
+ | delete data.finish; | ||
+ | } ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { | ||
+ | var cssFn = jQuery.fn[ name ]; | ||
+ | jQuery.fn[ name ] = function( speed, easing, callback ) { | ||
+ | return speed == null || typeof speed === "boolean" ? | ||
+ | cssFn.apply( this, arguments ) : | ||
+ | this.animate( genFx( name, true ), speed, easing, callback ); | ||
+ | }; | ||
+ | } ); | ||
+ | |||
+ | // Generate shortcuts for custom animations | ||
+ | jQuery.each( { | ||
+ | slideDown: genFx( "show" ), | ||
+ | slideUp: genFx( "hide" ), | ||
+ | slideToggle: genFx( "toggle" ), | ||
+ | fadeIn: { opacity: "show" }, | ||
+ | fadeOut: { opacity: "hide" }, | ||
+ | fadeToggle: { opacity: "toggle" } | ||
+ | }, function( name, props ) { | ||
+ | jQuery.fn[ name ] = function( speed, easing, callback ) { | ||
+ | return this.animate( props, speed, easing, callback ); | ||
+ | }; | ||
+ | } ); | ||
+ | |||
+ | jQuery.timers = []; | ||
+ | jQuery.fx.tick = function() { | ||
+ | var timer, | ||
+ | timers = jQuery.timers, | ||
+ | i = 0; | ||
+ | |||
+ | fxNow = jQuery.now(); | ||
+ | |||
+ | for ( ; i < timers.length; i++ ) { | ||
+ | timer = timers[ i ]; | ||
+ | |||
+ | // Checks the timer has not already been removed | ||
+ | if ( !timer() && timers[ i ] === timer ) { | ||
+ | timers.splice( i--, 1 ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ( !timers.length ) { | ||
+ | jQuery.fx.stop(); | ||
+ | } | ||
+ | fxNow = undefined; | ||
+ | }; | ||
+ | |||
+ | jQuery.fx.timer = function( timer ) { | ||
+ | jQuery.timers.push( timer ); | ||
+ | if ( timer() ) { | ||
+ | jQuery.fx.start(); | ||
+ | } else { | ||
+ | jQuery.timers.pop(); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | jQuery.fx.interval = 13; | ||
+ | |||
+ | jQuery.fx.start = function() { | ||
+ | if ( !timerId ) { | ||
+ | timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval ); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | jQuery.fx.stop = function() { | ||
+ | window.clearInterval( timerId ); | ||
+ | timerId = null; | ||
+ | }; | ||
+ | |||
+ | jQuery.fx.speeds = { | ||
+ | slow: 600, | ||
+ | fast: 200, | ||
+ | |||
+ | // Default speed | ||
+ | _default: 400 | ||
+ | }; | ||
+ | |||
+ | |||
+ | // Based off of the plugin by Clint Helfers, with permission. | ||
+ | // http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ | ||
+ | jQuery.fn.delay = function( time, type ) { | ||
+ | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; | ||
+ | type = type || "fx"; | ||
+ | |||
+ | return this.queue( type, function( next, hooks ) { | ||
+ | var timeout = window.setTimeout( next, time ); | ||
+ | hooks.stop = function() { | ||
+ | window.clearTimeout( timeout ); | ||
+ | }; | ||
+ | } ); | ||
+ | }; | ||
+ | |||
+ | |||
+ | ( function() { | ||
+ | var a, | ||
+ | input = document.createElement( "input" ), | ||
+ | div = document.createElement( "div" ), | ||
+ | select = document.createElement( "select" ), | ||
+ | opt = select.appendChild( document.createElement( "option" ) ); | ||
+ | |||
+ | // Setup | ||
+ | div = document.createElement( "div" ); | ||
+ | div.setAttribute( "className", "t" ); | ||
+ | div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; | ||
+ | a = div.getElementsByTagName( "a" )[ 0 ]; | ||
+ | |||
+ | // Support: Windows Web Apps (WWA) | ||
+ | // `type` must use .setAttribute for WWA (#14901) | ||
+ | input.setAttribute( "type", "checkbox" ); | ||
+ | div.appendChild( input ); | ||
+ | |||
+ | a = div.getElementsByTagName( "a" )[ 0 ]; | ||
+ | |||
+ | // First batch of tests. | ||
+ | a.style.cssText = "top:1px"; | ||
+ | |||
+ | // Test setAttribute on camelCase class. | ||
+ | // If it works, we need attrFixes when doing get/setAttribute (ie6/7) | ||
+ | support.getSetAttribute = div.className !== "t"; | ||
+ | |||
+ | // Get the style information from getAttribute | ||
+ | // (IE uses .cssText instead) | ||
+ | support.style = /top/.test( a.getAttribute( "style" ) ); | ||
+ | |||
+ | // Make sure that URLs aren't manipulated | ||
+ | // (IE normalizes it by default) | ||
+ | support.hrefNormalized = a.getAttribute( "href" ) === "/a"; | ||
+ | |||
+ | // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) | ||
+ | support.checkOn = !!input.value; | ||
+ | |||
+ | // Make sure that a selected-by-default option has a working selected property. | ||
+ | // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) | ||
+ | support.optSelected = opt.selected; | ||
+ | |||
+ | // Tests for enctype support on a form (#6743) | ||
+ | support.enctype = !!document.createElement( "form" ).enctype; | ||
+ | |||
+ | // Make sure that the options inside disabled selects aren't marked as disabled | ||
+ | // (WebKit marks them as disabled) | ||
+ | select.disabled = true; | ||
+ | support.optDisabled = !opt.disabled; | ||
+ | |||
+ | // Support: IE8 only | ||
+ | // Check if we can trust getAttribute("value") | ||
+ | input = document.createElement( "input" ); | ||
+ | input.setAttribute( "value", "" ); | ||
+ | support.input = input.getAttribute( "value" ) === ""; | ||
+ | |||
+ | // Check if an input maintains its value after becoming a radio | ||
+ | input.value = "t"; | ||
+ | input.setAttribute( "type", "radio" ); | ||
+ | support.radioValue = input.value === "t"; | ||
+ | } )(); | ||
+ | |||
+ | |||
+ | var rreturn = /\r/g, | ||
+ | rspaces = /[\x20\t\r\n\f]+/g; | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | val: function( value ) { | ||
+ | var hooks, ret, isFunction, | ||
+ | elem = this[ 0 ]; | ||
+ | |||
+ | if ( !arguments.length ) { | ||
+ | if ( elem ) { | ||
+ | hooks = jQuery.valHooks[ elem.type ] || | ||
+ | jQuery.valHooks[ elem.nodeName.toLowerCase() ]; | ||
+ | |||
+ | if ( | ||
+ | hooks && | ||
+ | "get" in hooks && | ||
+ | ( ret = hooks.get( elem, "value" ) ) !== undefined | ||
+ | ) { | ||
+ | return ret; | ||
+ | } | ||
+ | |||
+ | ret = elem.value; | ||
+ | |||
+ | return typeof ret === "string" ? | ||
+ | |||
+ | // handle most common string cases | ||
+ | ret.replace( rreturn, "" ) : | ||
+ | |||
+ | // handle cases where value is null/undef or number | ||
+ | ret == null ? "" : ret; | ||
+ | } | ||
+ | |||
+ | return; | ||
+ | } | ||
+ | |||
+ | isFunction = jQuery.isFunction( value ); | ||
+ | |||
+ | return this.each( function( i ) { | ||
+ | var val; | ||
+ | |||
+ | if ( this.nodeType !== 1 ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | if ( isFunction ) { | ||
+ | val = value.call( this, i, jQuery( this ).val() ); | ||
+ | } else { | ||
+ | val = value; | ||
+ | } | ||
+ | |||
+ | // Treat null/undefined as ""; convert numbers to string | ||
+ | if ( val == null ) { | ||
+ | val = ""; | ||
+ | } else if ( typeof val === "number" ) { | ||
+ | val += ""; | ||
+ | } else if ( jQuery.isArray( val ) ) { | ||
+ | val = jQuery.map( val, function( value ) { | ||
+ | return value == null ? "" : value + ""; | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; | ||
+ | |||
+ | // If set returns undefined, fall back to normal setting | ||
+ | if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { | ||
+ | this.value = val; | ||
+ | } | ||
+ | } ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.extend( { | ||
+ | valHooks: { | ||
+ | option: { | ||
+ | get: function( elem ) { | ||
+ | var val = jQuery.find.attr( elem, "value" ); | ||
+ | return val != null ? | ||
+ | val : | ||
+ | |||
+ | // Support: IE10-11+ | ||
+ | // option.text throws exceptions (#14686, #14858) | ||
+ | // Strip and collapse whitespace | ||
+ | // https://html.spec.whatwg.org/#strip-and-collapse-whitespace | ||
+ | jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " ); | ||
+ | } | ||
+ | }, | ||
+ | select: { | ||
+ | get: function( elem ) { | ||
+ | var value, option, | ||
+ | options = elem.options, | ||
+ | index = elem.selectedIndex, | ||
+ | one = elem.type === "select-one" || index < 0, | ||
+ | values = one ? null : [], | ||
+ | max = one ? index + 1 : options.length, | ||
+ | i = index < 0 ? | ||
+ | max : | ||
+ | one ? index : 0; | ||
+ | |||
+ | // Loop through all the selected options | ||
+ | for ( ; i < max; i++ ) { | ||
+ | option = options[ i ]; | ||
+ | |||
+ | // oldIE doesn't update selected after form reset (#2551) | ||
+ | if ( ( option.selected || i === index ) && | ||
+ | |||
+ | // Don't return options that are disabled or in a disabled optgroup | ||
+ | ( support.optDisabled ? | ||
+ | !option.disabled : | ||
+ | option.getAttribute( "disabled" ) === null ) && | ||
+ | ( !option.parentNode.disabled || | ||
+ | !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { | ||
+ | |||
+ | // Get the specific value for the option | ||
+ | value = jQuery( option ).val(); | ||
+ | |||
+ | // We don't need an array for one selects | ||
+ | if ( one ) { | ||
+ | return value; | ||
+ | } | ||
+ | |||
+ | // Multi-Selects return an array | ||
+ | values.push( value ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return values; | ||
+ | }, | ||
+ | |||
+ | set: function( elem, value ) { | ||
+ | var optionSet, option, | ||
+ | options = elem.options, | ||
+ | values = jQuery.makeArray( value ), | ||
+ | i = options.length; | ||
+ | |||
+ | while ( i-- ) { | ||
+ | option = options[ i ]; | ||
+ | |||
+ | if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 ) { | ||
+ | |||
+ | // Support: IE6 | ||
+ | // When new option element is added to select box we need to | ||
+ | // force reflow of newly added node in order to workaround delay | ||
+ | // of initialization properties | ||
+ | try { | ||
+ | option.selected = optionSet = true; | ||
+ | |||
+ | } catch ( _ ) { | ||
+ | |||
+ | // Will be executed only in IE6 | ||
+ | option.scrollHeight; | ||
+ | } | ||
+ | |||
+ | } else { | ||
+ | option.selected = false; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Force browsers to behave consistently when non-matching value is set | ||
+ | if ( !optionSet ) { | ||
+ | elem.selectedIndex = -1; | ||
+ | } | ||
+ | |||
+ | return options; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // Radios and checkboxes getter/setter | ||
+ | jQuery.each( [ "radio", "checkbox" ], function() { | ||
+ | jQuery.valHooks[ this ] = { | ||
+ | set: function( elem, value ) { | ||
+ | if ( jQuery.isArray( value ) ) { | ||
+ | return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | if ( !support.checkOn ) { | ||
+ | jQuery.valHooks[ this ].get = function( elem ) { | ||
+ | return elem.getAttribute( "value" ) === null ? "on" : elem.value; | ||
+ | }; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | var nodeHook, boolHook, | ||
+ | attrHandle = jQuery.expr.attrHandle, | ||
+ | ruseDefault = /^(?:checked|selected)$/i, | ||
+ | getSetAttribute = support.getSetAttribute, | ||
+ | getSetInput = support.input; | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | attr: function( name, value ) { | ||
+ | return access( this, jQuery.attr, name, value, arguments.length > 1 ); | ||
+ | }, | ||
+ | |||
+ | removeAttr: function( name ) { | ||
+ | return this.each( function() { | ||
+ | jQuery.removeAttr( this, name ); | ||
+ | } ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.extend( { | ||
+ | attr: function( elem, name, value ) { | ||
+ | var ret, hooks, | ||
+ | nType = elem.nodeType; | ||
+ | |||
+ | // Don't get/set attributes on text, comment and attribute nodes | ||
+ | if ( nType === 3 || nType === 8 || nType === 2 ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // Fallback to prop when attributes are not supported | ||
+ | if ( typeof elem.getAttribute === "undefined" ) { | ||
+ | return jQuery.prop( elem, name, value ); | ||
+ | } | ||
+ | |||
+ | // All attributes are lowercase | ||
+ | // Grab necessary hook if one is defined | ||
+ | if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { | ||
+ | name = name.toLowerCase(); | ||
+ | hooks = jQuery.attrHooks[ name ] || | ||
+ | ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); | ||
+ | } | ||
+ | |||
+ | if ( value !== undefined ) { | ||
+ | if ( value === null ) { | ||
+ | jQuery.removeAttr( elem, name ); | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | if ( hooks && "set" in hooks && | ||
+ | ( ret = hooks.set( elem, value, name ) ) !== undefined ) { | ||
+ | return ret; | ||
+ | } | ||
+ | |||
+ | elem.setAttribute( name, value + "" ); | ||
+ | return value; | ||
+ | } | ||
+ | |||
+ | if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { | ||
+ | return ret; | ||
+ | } | ||
+ | |||
+ | ret = jQuery.find.attr( elem, name ); | ||
+ | |||
+ | // Non-existent attributes return null, we normalize to undefined | ||
+ | return ret == null ? undefined : ret; | ||
+ | }, | ||
+ | |||
+ | attrHooks: { | ||
+ | type: { | ||
+ | set: function( elem, value ) { | ||
+ | if ( !support.radioValue && value === "radio" && | ||
+ | jQuery.nodeName( elem, "input" ) ) { | ||
+ | |||
+ | // Setting the type on a radio button after the value resets the value in IE8-9 | ||
+ | // Reset value to default in case type is set after value during creation | ||
+ | var val = elem.value; | ||
+ | elem.setAttribute( "type", value ); | ||
+ | if ( val ) { | ||
+ | elem.value = val; | ||
+ | } | ||
+ | return value; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | removeAttr: function( elem, value ) { | ||
+ | var name, propName, | ||
+ | i = 0, | ||
+ | attrNames = value && value.match( rnotwhite ); | ||
+ | |||
+ | if ( attrNames && elem.nodeType === 1 ) { | ||
+ | while ( ( name = attrNames[ i++ ] ) ) { | ||
+ | propName = jQuery.propFix[ name ] || name; | ||
+ | |||
+ | // Boolean attributes get special treatment (#10870) | ||
+ | if ( jQuery.expr.match.bool.test( name ) ) { | ||
+ | |||
+ | // Set corresponding property to false | ||
+ | if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { | ||
+ | elem[ propName ] = false; | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Also clear defaultChecked/defaultSelected (if appropriate) | ||
+ | } else { | ||
+ | elem[ jQuery.camelCase( "default-" + name ) ] = | ||
+ | elem[ propName ] = false; | ||
+ | } | ||
+ | |||
+ | // See #9699 for explanation of this approach (setting first, then removal) | ||
+ | } else { | ||
+ | jQuery.attr( elem, name, "" ); | ||
+ | } | ||
+ | |||
+ | elem.removeAttribute( getSetAttribute ? name : propName ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // Hooks for boolean attributes | ||
+ | boolHook = { | ||
+ | set: function( elem, value, name ) { | ||
+ | if ( value === false ) { | ||
+ | |||
+ | // Remove boolean attributes when set to false | ||
+ | jQuery.removeAttr( elem, name ); | ||
+ | } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { | ||
+ | |||
+ | // IE<8 needs the *property* name | ||
+ | elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); | ||
+ | |||
+ | } else { | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // Use defaultChecked and defaultSelected for oldIE | ||
+ | elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; | ||
+ | } | ||
+ | return name; | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { | ||
+ | var getter = attrHandle[ name ] || jQuery.find.attr; | ||
+ | |||
+ | if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { | ||
+ | attrHandle[ name ] = function( elem, name, isXML ) { | ||
+ | var ret, handle; | ||
+ | if ( !isXML ) { | ||
+ | |||
+ | // Avoid an infinite loop by temporarily removing this function from the getter | ||
+ | handle = attrHandle[ name ]; | ||
+ | attrHandle[ name ] = ret; | ||
+ | ret = getter( elem, name, isXML ) != null ? | ||
+ | name.toLowerCase() : | ||
+ | null; | ||
+ | attrHandle[ name ] = handle; | ||
+ | } | ||
+ | return ret; | ||
+ | }; | ||
+ | } else { | ||
+ | attrHandle[ name ] = function( elem, name, isXML ) { | ||
+ | if ( !isXML ) { | ||
+ | return elem[ jQuery.camelCase( "default-" + name ) ] ? | ||
+ | name.toLowerCase() : | ||
+ | null; | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // fix oldIE attroperties | ||
+ | if ( !getSetInput || !getSetAttribute ) { | ||
+ | jQuery.attrHooks.value = { | ||
+ | set: function( elem, value, name ) { | ||
+ | if ( jQuery.nodeName( elem, "input" ) ) { | ||
+ | |||
+ | // Does not return so that setAttribute is also used | ||
+ | elem.defaultValue = value; | ||
+ | } else { | ||
+ | |||
+ | // Use nodeHook if defined (#1954); otherwise setAttribute is fine | ||
+ | return nodeHook && nodeHook.set( elem, value, name ); | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | // IE6/7 do not support getting/setting some attributes with get/setAttribute | ||
+ | if ( !getSetAttribute ) { | ||
+ | |||
+ | // Use this for any attribute in IE6/7 | ||
+ | // This fixes almost every IE6/7 issue | ||
+ | nodeHook = { | ||
+ | set: function( elem, value, name ) { | ||
+ | |||
+ | // Set the existing or create a new attribute node | ||
+ | var ret = elem.getAttributeNode( name ); | ||
+ | if ( !ret ) { | ||
+ | elem.setAttributeNode( | ||
+ | ( ret = elem.ownerDocument.createAttribute( name ) ) | ||
+ | ); | ||
+ | } | ||
+ | |||
+ | ret.value = value += ""; | ||
+ | |||
+ | // Break association with cloned elements by also using setAttribute (#9646) | ||
+ | if ( name === "value" || value === elem.getAttribute( name ) ) { | ||
+ | return value; | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | // Some attributes are constructed with empty-string values when not defined | ||
+ | attrHandle.id = attrHandle.name = attrHandle.coords = | ||
+ | function( elem, name, isXML ) { | ||
+ | var ret; | ||
+ | if ( !isXML ) { | ||
+ | return ( ret = elem.getAttributeNode( name ) ) && ret.value !== "" ? | ||
+ | ret.value : | ||
+ | null; | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | // Fixing value retrieval on a button requires this module | ||
+ | jQuery.valHooks.button = { | ||
+ | get: function( elem, name ) { | ||
+ | var ret = elem.getAttributeNode( name ); | ||
+ | if ( ret && ret.specified ) { | ||
+ | return ret.value; | ||
+ | } | ||
+ | }, | ||
+ | set: nodeHook.set | ||
+ | }; | ||
+ | |||
+ | // Set contenteditable to false on removals(#10429) | ||
+ | // Setting to empty string throws an error as an invalid value | ||
+ | jQuery.attrHooks.contenteditable = { | ||
+ | set: function( elem, value, name ) { | ||
+ | nodeHook.set( elem, value === "" ? false : value, name ); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | // Set width and height to auto instead of 0 on empty string( Bug #8150 ) | ||
+ | // This is for removals | ||
+ | jQuery.each( [ "width", "height" ], function( i, name ) { | ||
+ | jQuery.attrHooks[ name ] = { | ||
+ | set: function( elem, value ) { | ||
+ | if ( value === "" ) { | ||
+ | elem.setAttribute( name, "auto" ); | ||
+ | return value; | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | if ( !support.style ) { | ||
+ | jQuery.attrHooks.style = { | ||
+ | get: function( elem ) { | ||
+ | |||
+ | // Return undefined in the case of empty string | ||
+ | // Note: IE uppercases css property names, but if we were to .toLowerCase() | ||
+ | // .cssText, that would destroy case sensitivity in URL's, like in "background" | ||
+ | return elem.style.cssText || undefined; | ||
+ | }, | ||
+ | set: function( elem, value ) { | ||
+ | return ( elem.style.cssText = value + "" ); | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | var rfocusable = /^(?:input|select|textarea|button|object)$/i, | ||
+ | rclickable = /^(?:a|area)$/i; | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | prop: function( name, value ) { | ||
+ | return access( this, jQuery.prop, name, value, arguments.length > 1 ); | ||
+ | }, | ||
+ | |||
+ | removeProp: function( name ) { | ||
+ | name = jQuery.propFix[ name ] || name; | ||
+ | return this.each( function() { | ||
+ | |||
+ | // try/catch handles cases where IE balks (such as removing a property on window) | ||
+ | try { | ||
+ | this[ name ] = undefined; | ||
+ | delete this[ name ]; | ||
+ | } catch ( e ) {} | ||
+ | } ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.extend( { | ||
+ | prop: function( elem, name, value ) { | ||
+ | var ret, hooks, | ||
+ | nType = elem.nodeType; | ||
+ | |||
+ | // Don't get/set properties on text, comment and attribute nodes | ||
+ | if ( nType === 3 || nType === 8 || nType === 2 ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { | ||
+ | |||
+ | // Fix name and attach hooks | ||
+ | name = jQuery.propFix[ name ] || name; | ||
+ | hooks = jQuery.propHooks[ name ]; | ||
+ | } | ||
+ | |||
+ | if ( value !== undefined ) { | ||
+ | if ( hooks && "set" in hooks && | ||
+ | ( ret = hooks.set( elem, value, name ) ) !== undefined ) { | ||
+ | return ret; | ||
+ | } | ||
+ | |||
+ | return ( elem[ name ] = value ); | ||
+ | } | ||
+ | |||
+ | if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { | ||
+ | return ret; | ||
+ | } | ||
+ | |||
+ | return elem[ name ]; | ||
+ | }, | ||
+ | |||
+ | propHooks: { | ||
+ | tabIndex: { | ||
+ | get: function( elem ) { | ||
+ | |||
+ | // elem.tabIndex doesn't always return the | ||
+ | // correct value when it hasn't been explicitly set | ||
+ | // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ | ||
+ | // Use proper attribute retrieval(#12072) | ||
+ | var tabindex = jQuery.find.attr( elem, "tabindex" ); | ||
+ | |||
+ | return tabindex ? | ||
+ | parseInt( tabindex, 10 ) : | ||
+ | rfocusable.test( elem.nodeName ) || | ||
+ | rclickable.test( elem.nodeName ) && elem.href ? | ||
+ | 0 : | ||
+ | -1; | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | propFix: { | ||
+ | "for": "htmlFor", | ||
+ | "class": "className" | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // Some attributes require a special call on IE | ||
+ | // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx | ||
+ | if ( !support.hrefNormalized ) { | ||
+ | |||
+ | // href/src property should get the full normalized URL (#10299/#12915) | ||
+ | jQuery.each( [ "href", "src" ], function( i, name ) { | ||
+ | jQuery.propHooks[ name ] = { | ||
+ | get: function( elem ) { | ||
+ | return elem.getAttribute( name, 4 ); | ||
+ | } | ||
+ | }; | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | // Support: Safari, IE9+ | ||
+ | // Accessing the selectedIndex property | ||
+ | // forces the browser to respect setting selected | ||
+ | // on the option | ||
+ | // The getter ensures a default option is selected | ||
+ | // when in an optgroup | ||
+ | if ( !support.optSelected ) { | ||
+ | jQuery.propHooks.selected = { | ||
+ | get: function( elem ) { | ||
+ | var parent = elem.parentNode; | ||
+ | |||
+ | if ( parent ) { | ||
+ | parent.selectedIndex; | ||
+ | |||
+ | // Make sure that it also works with optgroups, see #5701 | ||
+ | if ( parent.parentNode ) { | ||
+ | parent.parentNode.selectedIndex; | ||
+ | } | ||
+ | } | ||
+ | return null; | ||
+ | }, | ||
+ | set: function( elem ) { | ||
+ | var parent = elem.parentNode; | ||
+ | if ( parent ) { | ||
+ | parent.selectedIndex; | ||
+ | |||
+ | if ( parent.parentNode ) { | ||
+ | parent.parentNode.selectedIndex; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | jQuery.each( [ | ||
+ | "tabIndex", | ||
+ | "readOnly", | ||
+ | "maxLength", | ||
+ | "cellSpacing", | ||
+ | "cellPadding", | ||
+ | "rowSpan", | ||
+ | "colSpan", | ||
+ | "useMap", | ||
+ | "frameBorder", | ||
+ | "contentEditable" | ||
+ | ], function() { | ||
+ | jQuery.propFix[ this.toLowerCase() ] = this; | ||
+ | } ); | ||
+ | |||
+ | // IE6/7 call enctype encoding | ||
+ | if ( !support.enctype ) { | ||
+ | jQuery.propFix.enctype = "encoding"; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | var rclass = /[\t\r\n\f]/g; | ||
+ | |||
+ | function getClass( elem ) { | ||
+ | return jQuery.attr( elem, "class" ) || ""; | ||
+ | } | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | addClass: function( value ) { | ||
+ | var classes, elem, cur, curValue, clazz, j, finalValue, | ||
+ | i = 0; | ||
+ | |||
+ | if ( jQuery.isFunction( value ) ) { | ||
+ | return this.each( function( j ) { | ||
+ | jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | if ( typeof value === "string" && value ) { | ||
+ | classes = value.match( rnotwhite ) || []; | ||
+ | |||
+ | while ( ( elem = this[ i++ ] ) ) { | ||
+ | curValue = getClass( elem ); | ||
+ | cur = elem.nodeType === 1 && | ||
+ | ( " " + curValue + " " ).replace( rclass, " " ); | ||
+ | |||
+ | if ( cur ) { | ||
+ | j = 0; | ||
+ | while ( ( clazz = classes[ j++ ] ) ) { | ||
+ | if ( cur.indexOf( " " + clazz + " " ) < 0 ) { | ||
+ | cur += clazz + " "; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // only assign if different to avoid unneeded rendering. | ||
+ | finalValue = jQuery.trim( cur ); | ||
+ | if ( curValue !== finalValue ) { | ||
+ | jQuery.attr( elem, "class", finalValue ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | removeClass: function( value ) { | ||
+ | var classes, elem, cur, curValue, clazz, j, finalValue, | ||
+ | i = 0; | ||
+ | |||
+ | if ( jQuery.isFunction( value ) ) { | ||
+ | return this.each( function( j ) { | ||
+ | jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | if ( !arguments.length ) { | ||
+ | return this.attr( "class", "" ); | ||
+ | } | ||
+ | |||
+ | if ( typeof value === "string" && value ) { | ||
+ | classes = value.match( rnotwhite ) || []; | ||
+ | |||
+ | while ( ( elem = this[ i++ ] ) ) { | ||
+ | curValue = getClass( elem ); | ||
+ | |||
+ | // This expression is here for better compressibility (see addClass) | ||
+ | cur = elem.nodeType === 1 && | ||
+ | ( " " + curValue + " " ).replace( rclass, " " ); | ||
+ | |||
+ | if ( cur ) { | ||
+ | j = 0; | ||
+ | while ( ( clazz = classes[ j++ ] ) ) { | ||
+ | |||
+ | // Remove *all* instances | ||
+ | while ( cur.indexOf( " " + clazz + " " ) > -1 ) { | ||
+ | cur = cur.replace( " " + clazz + " ", " " ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Only assign if different to avoid unneeded rendering. | ||
+ | finalValue = jQuery.trim( cur ); | ||
+ | if ( curValue !== finalValue ) { | ||
+ | jQuery.attr( elem, "class", finalValue ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | toggleClass: function( value, stateVal ) { | ||
+ | var type = typeof value; | ||
+ | |||
+ | if ( typeof stateVal === "boolean" && type === "string" ) { | ||
+ | return stateVal ? this.addClass( value ) : this.removeClass( value ); | ||
+ | } | ||
+ | |||
+ | if ( jQuery.isFunction( value ) ) { | ||
+ | return this.each( function( i ) { | ||
+ | jQuery( this ).toggleClass( | ||
+ | value.call( this, i, getClass( this ), stateVal ), | ||
+ | stateVal | ||
+ | ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | return this.each( function() { | ||
+ | var className, i, self, classNames; | ||
+ | |||
+ | if ( type === "string" ) { | ||
+ | |||
+ | // Toggle individual class names | ||
+ | i = 0; | ||
+ | self = jQuery( this ); | ||
+ | classNames = value.match( rnotwhite ) || []; | ||
+ | |||
+ | while ( ( className = classNames[ i++ ] ) ) { | ||
+ | |||
+ | // Check each className given, space separated list | ||
+ | if ( self.hasClass( className ) ) { | ||
+ | self.removeClass( className ); | ||
+ | } else { | ||
+ | self.addClass( className ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Toggle whole class name | ||
+ | } else if ( value === undefined || type === "boolean" ) { | ||
+ | className = getClass( this ); | ||
+ | if ( className ) { | ||
+ | |||
+ | // store className if set | ||
+ | jQuery._data( this, "__className__", className ); | ||
+ | } | ||
+ | |||
+ | // If the element has a class name or if we're passed "false", | ||
+ | // then remove the whole classname (if there was one, the above saved it). | ||
+ | // Otherwise bring back whatever was previously saved (if anything), | ||
+ | // falling back to the empty string if nothing was stored. | ||
+ | jQuery.attr( this, "class", | ||
+ | className || value === false ? | ||
+ | "" : | ||
+ | jQuery._data( this, "__className__" ) || "" | ||
+ | ); | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | hasClass: function( selector ) { | ||
+ | var className, elem, | ||
+ | i = 0; | ||
+ | |||
+ | className = " " + selector + " "; | ||
+ | while ( ( elem = this[ i++ ] ) ) { | ||
+ | if ( elem.nodeType === 1 && | ||
+ | ( " " + getClass( elem ) + " " ).replace( rclass, " " ) | ||
+ | .indexOf( className ) > -1 | ||
+ | ) { | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return false; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | // Return jQuery for attributes-only inclusion | ||
+ | |||
+ | |||
+ | jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " + | ||
+ | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + | ||
+ | "change select submit keydown keypress keyup error contextmenu" ).split( " " ), | ||
+ | function( i, name ) { | ||
+ | |||
+ | // Handle event binding | ||
+ | jQuery.fn[ name ] = function( data, fn ) { | ||
+ | return arguments.length > 0 ? | ||
+ | this.on( name, null, data, fn ) : | ||
+ | this.trigger( name ); | ||
+ | }; | ||
+ | } ); | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | hover: function( fnOver, fnOut ) { | ||
+ | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | var location = window.location; | ||
+ | |||
+ | var nonce = jQuery.now(); | ||
+ | |||
+ | var rquery = ( /\?/ ); | ||
+ | |||
+ | |||
+ | |||
+ | var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; | ||
+ | |||
+ | jQuery.parseJSON = function( data ) { | ||
+ | |||
+ | // Attempt to parse using the native JSON parser first | ||
+ | if ( window.JSON && window.JSON.parse ) { | ||
+ | |||
+ | // Support: Android 2.3 | ||
+ | // Workaround failure to string-cast null input | ||
+ | return window.JSON.parse( data + "" ); | ||
+ | } | ||
+ | |||
+ | var requireNonComma, | ||
+ | depth = null, | ||
+ | str = jQuery.trim( data + "" ); | ||
+ | |||
+ | // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains | ||
+ | // after removing valid tokens | ||
+ | return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) { | ||
+ | |||
+ | // Force termination if we see a misplaced comma | ||
+ | if ( requireNonComma && comma ) { | ||
+ | depth = 0; | ||
+ | } | ||
+ | |||
+ | // Perform no more replacements after returning to outermost depth | ||
+ | if ( depth === 0 ) { | ||
+ | return token; | ||
+ | } | ||
+ | |||
+ | // Commas must not follow "[", "{", or "," | ||
+ | requireNonComma = open || comma; | ||
+ | |||
+ | // Determine new depth | ||
+ | // array/object open ("[" or "{"): depth += true - false (increment) | ||
+ | // array/object close ("]" or "}"): depth += false - true (decrement) | ||
+ | // other cases ("," or primitive): depth += true - true (numeric cast) | ||
+ | depth += !close - !open; | ||
+ | |||
+ | // Remove this token | ||
+ | return ""; | ||
+ | } ) ) ? | ||
+ | ( Function( "return " + str ) )() : | ||
+ | jQuery.error( "Invalid JSON: " + data ); | ||
+ | }; | ||
+ | |||
+ | |||
+ | // Cross-browser xml parsing | ||
+ | jQuery.parseXML = function( data ) { | ||
+ | var xml, tmp; | ||
+ | if ( !data || typeof data !== "string" ) { | ||
+ | return null; | ||
+ | } | ||
+ | try { | ||
+ | if ( window.DOMParser ) { // Standard | ||
+ | tmp = new window.DOMParser(); | ||
+ | xml = tmp.parseFromString( data, "text/xml" ); | ||
+ | } else { // IE | ||
+ | xml = new window.ActiveXObject( "Microsoft.XMLDOM" ); | ||
+ | xml.async = "false"; | ||
+ | xml.loadXML( data ); | ||
+ | } | ||
+ | } catch ( e ) { | ||
+ | xml = undefined; | ||
+ | } | ||
+ | if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { | ||
+ | jQuery.error( "Invalid XML: " + data ); | ||
+ | } | ||
+ | return xml; | ||
+ | }; | ||
+ | |||
+ | |||
+ | var | ||
+ | rhash = /#.*$/, | ||
+ | rts = /([?&])_=[^&]*/, | ||
+ | |||
+ | // IE leaves an \r character at EOL | ||
+ | rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, | ||
+ | |||
+ | // #7653, #8125, #8152: local protocol detection | ||
+ | rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, | ||
+ | rnoContent = /^(?:GET|HEAD)$/, | ||
+ | rprotocol = /^\/\//, | ||
+ | rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, | ||
+ | |||
+ | /* Prefilters | ||
+ | * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) | ||
+ | * 2) These are called: | ||
+ | * - BEFORE asking for a transport | ||
+ | * - AFTER param serialization (s.data is a string if s.processData is true) | ||
+ | * 3) key is the dataType | ||
+ | * 4) the catchall symbol "*" can be used | ||
+ | * 5) execution will start with transport dataType and THEN continue down to "*" if needed | ||
+ | */ | ||
+ | prefilters = {}, | ||
+ | |||
+ | /* Transports bindings | ||
+ | * 1) key is the dataType | ||
+ | * 2) the catchall symbol "*" can be used | ||
+ | * 3) selection will start with transport dataType and THEN go to "*" if needed | ||
+ | */ | ||
+ | transports = {}, | ||
+ | |||
+ | // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression | ||
+ | allTypes = "*/".concat( "*" ), | ||
+ | |||
+ | // Document location | ||
+ | ajaxLocation = location.href, | ||
+ | |||
+ | // Segment location into parts | ||
+ | ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; | ||
+ | |||
+ | // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport | ||
+ | function addToPrefiltersOrTransports( structure ) { | ||
+ | |||
+ | // dataTypeExpression is optional and defaults to "*" | ||
+ | return function( dataTypeExpression, func ) { | ||
+ | |||
+ | if ( typeof dataTypeExpression !== "string" ) { | ||
+ | func = dataTypeExpression; | ||
+ | dataTypeExpression = "*"; | ||
+ | } | ||
+ | |||
+ | var dataType, | ||
+ | i = 0, | ||
+ | dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; | ||
+ | |||
+ | if ( jQuery.isFunction( func ) ) { | ||
+ | |||
+ | // For each dataType in the dataTypeExpression | ||
+ | while ( ( dataType = dataTypes[ i++ ] ) ) { | ||
+ | |||
+ | // Prepend if requested | ||
+ | if ( dataType.charAt( 0 ) === "+" ) { | ||
+ | dataType = dataType.slice( 1 ) || "*"; | ||
+ | ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); | ||
+ | |||
+ | // Otherwise append | ||
+ | } else { | ||
+ | ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | // Base inspection function for prefilters and transports | ||
+ | function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { | ||
+ | |||
+ | var inspected = {}, | ||
+ | seekingTransport = ( structure === transports ); | ||
+ | |||
+ | function inspect( dataType ) { | ||
+ | var selected; | ||
+ | inspected[ dataType ] = true; | ||
+ | jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { | ||
+ | var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); | ||
+ | if ( typeof dataTypeOrTransport === "string" && | ||
+ | !seekingTransport && !inspected[ dataTypeOrTransport ] ) { | ||
+ | |||
+ | options.dataTypes.unshift( dataTypeOrTransport ); | ||
+ | inspect( dataTypeOrTransport ); | ||
+ | return false; | ||
+ | } else if ( seekingTransport ) { | ||
+ | return !( selected = dataTypeOrTransport ); | ||
+ | } | ||
+ | } ); | ||
+ | return selected; | ||
+ | } | ||
+ | |||
+ | return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); | ||
+ | } | ||
+ | |||
+ | // A special extend for ajax options | ||
+ | // that takes "flat" options (not to be deep extended) | ||
+ | // Fixes #9887 | ||
+ | function ajaxExtend( target, src ) { | ||
+ | var deep, key, | ||
+ | flatOptions = jQuery.ajaxSettings.flatOptions || {}; | ||
+ | |||
+ | for ( key in src ) { | ||
+ | if ( src[ key ] !== undefined ) { | ||
+ | ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; | ||
+ | } | ||
+ | } | ||
+ | if ( deep ) { | ||
+ | jQuery.extend( true, target, deep ); | ||
+ | } | ||
+ | |||
+ | return target; | ||
+ | } | ||
+ | |||
+ | /* Handles responses to an ajax request: | ||
+ | * - finds the right dataType (mediates between content-type and expected dataType) | ||
+ | * - returns the corresponding response | ||
+ | */ | ||
+ | function ajaxHandleResponses( s, jqXHR, responses ) { | ||
+ | var firstDataType, ct, finalDataType, type, | ||
+ | contents = s.contents, | ||
+ | dataTypes = s.dataTypes; | ||
+ | |||
+ | // Remove auto dataType and get content-type in the process | ||
+ | while ( dataTypes[ 0 ] === "*" ) { | ||
+ | dataTypes.shift(); | ||
+ | if ( ct === undefined ) { | ||
+ | ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Check if we're dealing with a known content-type | ||
+ | if ( ct ) { | ||
+ | for ( type in contents ) { | ||
+ | if ( contents[ type ] && contents[ type ].test( ct ) ) { | ||
+ | dataTypes.unshift( type ); | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Check to see if we have a response for the expected dataType | ||
+ | if ( dataTypes[ 0 ] in responses ) { | ||
+ | finalDataType = dataTypes[ 0 ]; | ||
+ | } else { | ||
+ | |||
+ | // Try convertible dataTypes | ||
+ | for ( type in responses ) { | ||
+ | if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { | ||
+ | finalDataType = type; | ||
+ | break; | ||
+ | } | ||
+ | if ( !firstDataType ) { | ||
+ | firstDataType = type; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Or just use first one | ||
+ | finalDataType = finalDataType || firstDataType; | ||
+ | } | ||
+ | |||
+ | // If we found a dataType | ||
+ | // We add the dataType to the list if needed | ||
+ | // and return the corresponding response | ||
+ | if ( finalDataType ) { | ||
+ | if ( finalDataType !== dataTypes[ 0 ] ) { | ||
+ | dataTypes.unshift( finalDataType ); | ||
+ | } | ||
+ | return responses[ finalDataType ]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /* Chain conversions given the request and the original response | ||
+ | * Also sets the responseXXX fields on the jqXHR instance | ||
+ | */ | ||
+ | function ajaxConvert( s, response, jqXHR, isSuccess ) { | ||
+ | var conv2, current, conv, tmp, prev, | ||
+ | converters = {}, | ||
+ | |||
+ | // Work with a copy of dataTypes in case we need to modify it for conversion | ||
+ | dataTypes = s.dataTypes.slice(); | ||
+ | |||
+ | // Create converters map with lowercased keys | ||
+ | if ( dataTypes[ 1 ] ) { | ||
+ | for ( conv in s.converters ) { | ||
+ | converters[ conv.toLowerCase() ] = s.converters[ conv ]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | current = dataTypes.shift(); | ||
+ | |||
+ | // Convert to each sequential dataType | ||
+ | while ( current ) { | ||
+ | |||
+ | if ( s.responseFields[ current ] ) { | ||
+ | jqXHR[ s.responseFields[ current ] ] = response; | ||
+ | } | ||
+ | |||
+ | // Apply the dataFilter if provided | ||
+ | if ( !prev && isSuccess && s.dataFilter ) { | ||
+ | response = s.dataFilter( response, s.dataType ); | ||
+ | } | ||
+ | |||
+ | prev = current; | ||
+ | current = dataTypes.shift(); | ||
+ | |||
+ | if ( current ) { | ||
+ | |||
+ | // There's only work to do if current dataType is non-auto | ||
+ | if ( current === "*" ) { | ||
+ | |||
+ | current = prev; | ||
+ | |||
+ | // Convert response if prev dataType is non-auto and differs from current | ||
+ | } else if ( prev !== "*" && prev !== current ) { | ||
+ | |||
+ | // Seek a direct converter | ||
+ | conv = converters[ prev + " " + current ] || converters[ "* " + current ]; | ||
+ | |||
+ | // If none found, seek a pair | ||
+ | if ( !conv ) { | ||
+ | for ( conv2 in converters ) { | ||
+ | |||
+ | // If conv2 outputs current | ||
+ | tmp = conv2.split( " " ); | ||
+ | if ( tmp[ 1 ] === current ) { | ||
+ | |||
+ | // If prev can be converted to accepted input | ||
+ | conv = converters[ prev + " " + tmp[ 0 ] ] || | ||
+ | converters[ "* " + tmp[ 0 ] ]; | ||
+ | if ( conv ) { | ||
+ | |||
+ | // Condense equivalence converters | ||
+ | if ( conv === true ) { | ||
+ | conv = converters[ conv2 ]; | ||
+ | |||
+ | // Otherwise, insert the intermediate dataType | ||
+ | } else if ( converters[ conv2 ] !== true ) { | ||
+ | current = tmp[ 0 ]; | ||
+ | dataTypes.unshift( tmp[ 1 ] ); | ||
+ | } | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Apply converter (if not an equivalence) | ||
+ | if ( conv !== true ) { | ||
+ | |||
+ | // Unless errors are allowed to bubble, catch and return them | ||
+ | if ( conv && s[ "throws" ] ) { // jscs:ignore requireDotNotation | ||
+ | response = conv( response ); | ||
+ | } else { | ||
+ | try { | ||
+ | response = conv( response ); | ||
+ | } catch ( e ) { | ||
+ | return { | ||
+ | state: "parsererror", | ||
+ | error: conv ? e : "No conversion from " + prev + " to " + current | ||
+ | }; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return { state: "success", data: response }; | ||
+ | } | ||
+ | |||
+ | jQuery.extend( { | ||
+ | |||
+ | // Counter for holding the number of active queries | ||
+ | active: 0, | ||
+ | |||
+ | // Last-Modified header cache for next request | ||
+ | lastModified: {}, | ||
+ | etag: {}, | ||
+ | |||
+ | ajaxSettings: { | ||
+ | url: ajaxLocation, | ||
+ | type: "GET", | ||
+ | isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), | ||
+ | global: true, | ||
+ | processData: true, | ||
+ | async: true, | ||
+ | contentType: "application/x-www-form-urlencoded; charset=UTF-8", | ||
+ | /* | ||
+ | timeout: 0, | ||
+ | data: null, | ||
+ | dataType: null, | ||
+ | username: null, | ||
+ | password: null, | ||
+ | cache: null, | ||
+ | throws: false, | ||
+ | traditional: false, | ||
+ | headers: {}, | ||
+ | */ | ||
+ | |||
+ | accepts: { | ||
+ | "*": allTypes, | ||
+ | text: "text/plain", | ||
+ | html: "text/html", | ||
+ | xml: "application/xml, text/xml", | ||
+ | json: "application/json, text/javascript" | ||
+ | }, | ||
+ | |||
+ | contents: { | ||
+ | xml: /\bxml\b/, | ||
+ | html: /\bhtml/, | ||
+ | json: /\bjson\b/ | ||
+ | }, | ||
+ | |||
+ | responseFields: { | ||
+ | xml: "responseXML", | ||
+ | text: "responseText", | ||
+ | json: "responseJSON" | ||
+ | }, | ||
+ | |||
+ | // Data converters | ||
+ | // Keys separate source (or catchall "*") and destination types with a single space | ||
+ | converters: { | ||
+ | |||
+ | // Convert anything to text | ||
+ | "* text": String, | ||
+ | |||
+ | // Text to html (true = no transformation) | ||
+ | "text html": true, | ||
+ | |||
+ | // Evaluate text as a json expression | ||
+ | "text json": jQuery.parseJSON, | ||
+ | |||
+ | // Parse text as xml | ||
+ | "text xml": jQuery.parseXML | ||
+ | }, | ||
+ | |||
+ | // For options that shouldn't be deep extended: | ||
+ | // you can add your own custom options here if | ||
+ | // and when you create one that shouldn't be | ||
+ | // deep extended (see ajaxExtend) | ||
+ | flatOptions: { | ||
+ | url: true, | ||
+ | context: true | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | // Creates a full fledged settings object into target | ||
+ | // with both ajaxSettings and settings fields. | ||
+ | // If target is omitted, writes into ajaxSettings. | ||
+ | ajaxSetup: function( target, settings ) { | ||
+ | return settings ? | ||
+ | |||
+ | // Building a settings object | ||
+ | ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : | ||
+ | |||
+ | // Extending ajaxSettings | ||
+ | ajaxExtend( jQuery.ajaxSettings, target ); | ||
+ | }, | ||
+ | |||
+ | ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), | ||
+ | ajaxTransport: addToPrefiltersOrTransports( transports ), | ||
+ | |||
+ | // Main method | ||
+ | ajax: function( url, options ) { | ||
+ | |||
+ | // If url is an object, simulate pre-1.5 signature | ||
+ | if ( typeof url === "object" ) { | ||
+ | options = url; | ||
+ | url = undefined; | ||
+ | } | ||
+ | |||
+ | // Force options to be an object | ||
+ | options = options || {}; | ||
+ | |||
+ | var | ||
+ | |||
+ | // Cross-domain detection vars | ||
+ | parts, | ||
+ | |||
+ | // Loop variable | ||
+ | i, | ||
+ | |||
+ | // URL without anti-cache param | ||
+ | cacheURL, | ||
+ | |||
+ | // Response headers as string | ||
+ | responseHeadersString, | ||
+ | |||
+ | // timeout handle | ||
+ | timeoutTimer, | ||
+ | |||
+ | // To know if global events are to be dispatched | ||
+ | fireGlobals, | ||
+ | |||
+ | transport, | ||
+ | |||
+ | // Response headers | ||
+ | responseHeaders, | ||
+ | |||
+ | // Create the final options object | ||
+ | s = jQuery.ajaxSetup( {}, options ), | ||
+ | |||
+ | // Callbacks context | ||
+ | callbackContext = s.context || s, | ||
+ | |||
+ | // Context for global events is callbackContext if it is a DOM node or jQuery collection | ||
+ | globalEventContext = s.context && | ||
+ | ( callbackContext.nodeType || callbackContext.jquery ) ? | ||
+ | jQuery( callbackContext ) : | ||
+ | jQuery.event, | ||
+ | |||
+ | // Deferreds | ||
+ | deferred = jQuery.Deferred(), | ||
+ | completeDeferred = jQuery.Callbacks( "once memory" ), | ||
+ | |||
+ | // Status-dependent callbacks | ||
+ | statusCode = s.statusCode || {}, | ||
+ | |||
+ | // Headers (they are sent all at once) | ||
+ | requestHeaders = {}, | ||
+ | requestHeadersNames = {}, | ||
+ | |||
+ | // The jqXHR state | ||
+ | state = 0, | ||
+ | |||
+ | // Default abort message | ||
+ | strAbort = "canceled", | ||
+ | |||
+ | // Fake xhr | ||
+ | jqXHR = { | ||
+ | readyState: 0, | ||
+ | |||
+ | // Builds headers hashtable if needed | ||
+ | getResponseHeader: function( key ) { | ||
+ | var match; | ||
+ | if ( state === 2 ) { | ||
+ | if ( !responseHeaders ) { | ||
+ | responseHeaders = {}; | ||
+ | while ( ( match = rheaders.exec( responseHeadersString ) ) ) { | ||
+ | responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; | ||
+ | } | ||
+ | } | ||
+ | match = responseHeaders[ key.toLowerCase() ]; | ||
+ | } | ||
+ | return match == null ? null : match; | ||
+ | }, | ||
+ | |||
+ | // Raw string | ||
+ | getAllResponseHeaders: function() { | ||
+ | return state === 2 ? responseHeadersString : null; | ||
+ | }, | ||
+ | |||
+ | // Caches the header | ||
+ | setRequestHeader: function( name, value ) { | ||
+ | var lname = name.toLowerCase(); | ||
+ | if ( !state ) { | ||
+ | name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; | ||
+ | requestHeaders[ name ] = value; | ||
+ | } | ||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | // Overrides response content-type header | ||
+ | overrideMimeType: function( type ) { | ||
+ | if ( !state ) { | ||
+ | s.mimeType = type; | ||
+ | } | ||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | // Status-dependent callbacks | ||
+ | statusCode: function( map ) { | ||
+ | var code; | ||
+ | if ( map ) { | ||
+ | if ( state < 2 ) { | ||
+ | for ( code in map ) { | ||
+ | |||
+ | // Lazy-add the new callback in a way that preserves old ones | ||
+ | statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; | ||
+ | } | ||
+ | } else { | ||
+ | |||
+ | // Execute the appropriate callbacks | ||
+ | jqXHR.always( map[ jqXHR.status ] ); | ||
+ | } | ||
+ | } | ||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | // Cancel the request | ||
+ | abort: function( statusText ) { | ||
+ | var finalText = statusText || strAbort; | ||
+ | if ( transport ) { | ||
+ | transport.abort( finalText ); | ||
+ | } | ||
+ | done( 0, finalText ); | ||
+ | return this; | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | // Attach deferreds | ||
+ | deferred.promise( jqXHR ).complete = completeDeferred.add; | ||
+ | jqXHR.success = jqXHR.done; | ||
+ | jqXHR.error = jqXHR.fail; | ||
+ | |||
+ | // Remove hash character (#7531: and string promotion) | ||
+ | // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) | ||
+ | // Handle falsy url in the settings object (#10093: consistency with old signature) | ||
+ | // We also use the url parameter if available | ||
+ | s.url = ( ( url || s.url || ajaxLocation ) + "" ) | ||
+ | .replace( rhash, "" ) | ||
+ | .replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); | ||
+ | |||
+ | // Alias method option to type as per ticket #12004 | ||
+ | s.type = options.method || options.type || s.method || s.type; | ||
+ | |||
+ | // Extract dataTypes list | ||
+ | s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; | ||
+ | |||
+ | // A cross-domain request is in order when we have a protocol:host:port mismatch | ||
+ | if ( s.crossDomain == null ) { | ||
+ | parts = rurl.exec( s.url.toLowerCase() ); | ||
+ | s.crossDomain = !!( parts && | ||
+ | ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || | ||
+ | ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== | ||
+ | ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) | ||
+ | ); | ||
+ | } | ||
+ | |||
+ | // Convert data if not already a string | ||
+ | if ( s.data && s.processData && typeof s.data !== "string" ) { | ||
+ | s.data = jQuery.param( s.data, s.traditional ); | ||
+ | } | ||
+ | |||
+ | // Apply prefilters | ||
+ | inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); | ||
+ | |||
+ | // If request was aborted inside a prefilter, stop there | ||
+ | if ( state === 2 ) { | ||
+ | return jqXHR; | ||
+ | } | ||
+ | |||
+ | // We can fire global events as of now if asked to | ||
+ | // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) | ||
+ | fireGlobals = jQuery.event && s.global; | ||
+ | |||
+ | // Watch for a new set of requests | ||
+ | if ( fireGlobals && jQuery.active++ === 0 ) { | ||
+ | jQuery.event.trigger( "ajaxStart" ); | ||
+ | } | ||
+ | |||
+ | // Uppercase the type | ||
+ | s.type = s.type.toUpperCase(); | ||
+ | |||
+ | // Determine if request has content | ||
+ | s.hasContent = !rnoContent.test( s.type ); | ||
+ | |||
+ | // Save the URL in case we're toying with the If-Modified-Since | ||
+ | // and/or If-None-Match header later on | ||
+ | cacheURL = s.url; | ||
+ | |||
+ | // More options handling for requests with no content | ||
+ | if ( !s.hasContent ) { | ||
+ | |||
+ | // If data is available, append data to url | ||
+ | if ( s.data ) { | ||
+ | cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); | ||
+ | |||
+ | // #9682: remove data so that it's not used in an eventual retry | ||
+ | delete s.data; | ||
+ | } | ||
+ | |||
+ | // Add anti-cache in url if needed | ||
+ | if ( s.cache === false ) { | ||
+ | s.url = rts.test( cacheURL ) ? | ||
+ | |||
+ | // If there is already a '_' parameter, set its value | ||
+ | cacheURL.replace( rts, "$1_=" + nonce++ ) : | ||
+ | |||
+ | // Otherwise add one to the end | ||
+ | cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. | ||
+ | if ( s.ifModified ) { | ||
+ | if ( jQuery.lastModified[ cacheURL ] ) { | ||
+ | jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); | ||
+ | } | ||
+ | if ( jQuery.etag[ cacheURL ] ) { | ||
+ | jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Set the correct header, if data is being sent | ||
+ | if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { | ||
+ | jqXHR.setRequestHeader( "Content-Type", s.contentType ); | ||
+ | } | ||
+ | |||
+ | // Set the Accepts header for the server, depending on the dataType | ||
+ | jqXHR.setRequestHeader( | ||
+ | "Accept", | ||
+ | s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? | ||
+ | s.accepts[ s.dataTypes[ 0 ] ] + | ||
+ | ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : | ||
+ | s.accepts[ "*" ] | ||
+ | ); | ||
+ | |||
+ | // Check for headers option | ||
+ | for ( i in s.headers ) { | ||
+ | jqXHR.setRequestHeader( i, s.headers[ i ] ); | ||
+ | } | ||
+ | |||
+ | // Allow custom headers/mimetypes and early abort | ||
+ | if ( s.beforeSend && | ||
+ | ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { | ||
+ | |||
+ | // Abort if not done already and return | ||
+ | return jqXHR.abort(); | ||
+ | } | ||
+ | |||
+ | // aborting is no longer a cancellation | ||
+ | strAbort = "abort"; | ||
+ | |||
+ | // Install callbacks on deferreds | ||
+ | for ( i in { success: 1, error: 1, complete: 1 } ) { | ||
+ | jqXHR[ i ]( s[ i ] ); | ||
+ | } | ||
+ | |||
+ | // Get transport | ||
+ | transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); | ||
+ | |||
+ | // If no transport, we auto-abort | ||
+ | if ( !transport ) { | ||
+ | done( -1, "No Transport" ); | ||
+ | } else { | ||
+ | jqXHR.readyState = 1; | ||
+ | |||
+ | // Send global event | ||
+ | if ( fireGlobals ) { | ||
+ | globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); | ||
+ | } | ||
+ | |||
+ | // If request was aborted inside ajaxSend, stop there | ||
+ | if ( state === 2 ) { | ||
+ | return jqXHR; | ||
+ | } | ||
+ | |||
+ | // Timeout | ||
+ | if ( s.async && s.timeout > 0 ) { | ||
+ | timeoutTimer = window.setTimeout( function() { | ||
+ | jqXHR.abort( "timeout" ); | ||
+ | }, s.timeout ); | ||
+ | } | ||
+ | |||
+ | try { | ||
+ | state = 1; | ||
+ | transport.send( requestHeaders, done ); | ||
+ | } catch ( e ) { | ||
+ | |||
+ | // Propagate exception as error if not done | ||
+ | if ( state < 2 ) { | ||
+ | done( -1, e ); | ||
+ | |||
+ | // Simply rethrow otherwise | ||
+ | } else { | ||
+ | throw e; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Callback for when everything is done | ||
+ | function done( status, nativeStatusText, responses, headers ) { | ||
+ | var isSuccess, success, error, response, modified, | ||
+ | statusText = nativeStatusText; | ||
+ | |||
+ | // Called once | ||
+ | if ( state === 2 ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // State is "done" now | ||
+ | state = 2; | ||
+ | |||
+ | // Clear timeout if it exists | ||
+ | if ( timeoutTimer ) { | ||
+ | window.clearTimeout( timeoutTimer ); | ||
+ | } | ||
+ | |||
+ | // Dereference transport for early garbage collection | ||
+ | // (no matter how long the jqXHR object will be used) | ||
+ | transport = undefined; | ||
+ | |||
+ | // Cache response headers | ||
+ | responseHeadersString = headers || ""; | ||
+ | |||
+ | // Set readyState | ||
+ | jqXHR.readyState = status > 0 ? 4 : 0; | ||
+ | |||
+ | // Determine if successful | ||
+ | isSuccess = status >= 200 && status < 300 || status === 304; | ||
+ | |||
+ | // Get response data | ||
+ | if ( responses ) { | ||
+ | response = ajaxHandleResponses( s, jqXHR, responses ); | ||
+ | } | ||
+ | |||
+ | // Convert no matter what (that way responseXXX fields are always set) | ||
+ | response = ajaxConvert( s, response, jqXHR, isSuccess ); | ||
+ | |||
+ | // If successful, handle type chaining | ||
+ | if ( isSuccess ) { | ||
+ | |||
+ | // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. | ||
+ | if ( s.ifModified ) { | ||
+ | modified = jqXHR.getResponseHeader( "Last-Modified" ); | ||
+ | if ( modified ) { | ||
+ | jQuery.lastModified[ cacheURL ] = modified; | ||
+ | } | ||
+ | modified = jqXHR.getResponseHeader( "etag" ); | ||
+ | if ( modified ) { | ||
+ | jQuery.etag[ cacheURL ] = modified; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // if no content | ||
+ | if ( status === 204 || s.type === "HEAD" ) { | ||
+ | statusText = "nocontent"; | ||
+ | |||
+ | // if not modified | ||
+ | } else if ( status === 304 ) { | ||
+ | statusText = "notmodified"; | ||
+ | |||
+ | // If we have data, let's convert it | ||
+ | } else { | ||
+ | statusText = response.state; | ||
+ | success = response.data; | ||
+ | error = response.error; | ||
+ | isSuccess = !error; | ||
+ | } | ||
+ | } else { | ||
+ | |||
+ | // We extract error from statusText | ||
+ | // then normalize statusText and status for non-aborts | ||
+ | error = statusText; | ||
+ | if ( status || !statusText ) { | ||
+ | statusText = "error"; | ||
+ | if ( status < 0 ) { | ||
+ | status = 0; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Set data for the fake xhr object | ||
+ | jqXHR.status = status; | ||
+ | jqXHR.statusText = ( nativeStatusText || statusText ) + ""; | ||
+ | |||
+ | // Success/Error | ||
+ | if ( isSuccess ) { | ||
+ | deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); | ||
+ | } else { | ||
+ | deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); | ||
+ | } | ||
+ | |||
+ | // Status-dependent callbacks | ||
+ | jqXHR.statusCode( statusCode ); | ||
+ | statusCode = undefined; | ||
+ | |||
+ | if ( fireGlobals ) { | ||
+ | globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", | ||
+ | [ jqXHR, s, isSuccess ? success : error ] ); | ||
+ | } | ||
+ | |||
+ | // Complete | ||
+ | completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); | ||
+ | |||
+ | if ( fireGlobals ) { | ||
+ | globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); | ||
+ | |||
+ | // Handle the global AJAX counter | ||
+ | if ( !( --jQuery.active ) ) { | ||
+ | jQuery.event.trigger( "ajaxStop" ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return jqXHR; | ||
+ | }, | ||
+ | |||
+ | getJSON: function( url, data, callback ) { | ||
+ | return jQuery.get( url, data, callback, "json" ); | ||
+ | }, | ||
+ | |||
+ | getScript: function( url, callback ) { | ||
+ | return jQuery.get( url, undefined, callback, "script" ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | jQuery.each( [ "get", "post" ], function( i, method ) { | ||
+ | jQuery[ method ] = function( url, data, callback, type ) { | ||
+ | |||
+ | // shift arguments if data argument was omitted | ||
+ | if ( jQuery.isFunction( data ) ) { | ||
+ | type = type || callback; | ||
+ | callback = data; | ||
+ | data = undefined; | ||
+ | } | ||
+ | |||
+ | // The url can be an options object (which then must have .url) | ||
+ | return jQuery.ajax( jQuery.extend( { | ||
+ | url: url, | ||
+ | type: method, | ||
+ | dataType: type, | ||
+ | data: data, | ||
+ | success: callback | ||
+ | }, jQuery.isPlainObject( url ) && url ) ); | ||
+ | }; | ||
+ | } ); | ||
+ | |||
+ | |||
+ | jQuery._evalUrl = function( url ) { | ||
+ | return jQuery.ajax( { | ||
+ | url: url, | ||
+ | |||
+ | // Make this explicit, since user can override this through ajaxSetup (#11264) | ||
+ | type: "GET", | ||
+ | dataType: "script", | ||
+ | cache: true, | ||
+ | async: false, | ||
+ | global: false, | ||
+ | "throws": true | ||
+ | } ); | ||
+ | }; | ||
+ | |||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | wrapAll: function( html ) { | ||
+ | if ( jQuery.isFunction( html ) ) { | ||
+ | return this.each( function( i ) { | ||
+ | jQuery( this ).wrapAll( html.call( this, i ) ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | if ( this[ 0 ] ) { | ||
+ | |||
+ | // The elements to wrap the target around | ||
+ | var wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); | ||
+ | |||
+ | if ( this[ 0 ].parentNode ) { | ||
+ | wrap.insertBefore( this[ 0 ] ); | ||
+ | } | ||
+ | |||
+ | wrap.map( function() { | ||
+ | var elem = this; | ||
+ | |||
+ | while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { | ||
+ | elem = elem.firstChild; | ||
+ | } | ||
+ | |||
+ | return elem; | ||
+ | } ).append( this ); | ||
+ | } | ||
+ | |||
+ | return this; | ||
+ | }, | ||
+ | |||
+ | wrapInner: function( html ) { | ||
+ | if ( jQuery.isFunction( html ) ) { | ||
+ | return this.each( function( i ) { | ||
+ | jQuery( this ).wrapInner( html.call( this, i ) ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | return this.each( function() { | ||
+ | var self = jQuery( this ), | ||
+ | contents = self.contents(); | ||
+ | |||
+ | if ( contents.length ) { | ||
+ | contents.wrapAll( html ); | ||
+ | |||
+ | } else { | ||
+ | self.append( html ); | ||
+ | } | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | wrap: function( html ) { | ||
+ | var isFunction = jQuery.isFunction( html ); | ||
+ | |||
+ | return this.each( function( i ) { | ||
+ | jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); | ||
+ | } ); | ||
+ | }, | ||
+ | |||
+ | unwrap: function() { | ||
+ | return this.parent().each( function() { | ||
+ | if ( !jQuery.nodeName( this, "body" ) ) { | ||
+ | jQuery( this ).replaceWith( this.childNodes ); | ||
+ | } | ||
+ | } ).end(); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | function getDisplay( elem ) { | ||
+ | return elem.style && elem.style.display || jQuery.css( elem, "display" ); | ||
+ | } | ||
+ | |||
+ | function filterHidden( elem ) { | ||
+ | |||
+ | // Disconnected elements are considered hidden | ||
+ | if ( !jQuery.contains( elem.ownerDocument || document, elem ) ) { | ||
+ | return true; | ||
+ | } | ||
+ | while ( elem && elem.nodeType === 1 ) { | ||
+ | if ( getDisplay( elem ) === "none" || elem.type === "hidden" ) { | ||
+ | return true; | ||
+ | } | ||
+ | elem = elem.parentNode; | ||
+ | } | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | jQuery.expr.filters.hidden = function( elem ) { | ||
+ | |||
+ | // Support: Opera <= 12.12 | ||
+ | // Opera reports offsetWidths and offsetHeights less than zero on some elements | ||
+ | return support.reliableHiddenOffsets() ? | ||
+ | ( elem.offsetWidth <= 0 && elem.offsetHeight <= 0 && | ||
+ | !elem.getClientRects().length ) : | ||
+ | filterHidden( elem ); | ||
+ | }; | ||
+ | |||
+ | jQuery.expr.filters.visible = function( elem ) { | ||
+ | return !jQuery.expr.filters.hidden( elem ); | ||
+ | }; | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | var r20 = /%20/g, | ||
+ | rbracket = /\[\]$/, | ||
+ | rCRLF = /\r?\n/g, | ||
+ | rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, | ||
+ | rsubmittable = /^(?:input|select|textarea|keygen)/i; | ||
+ | |||
+ | function buildParams( prefix, obj, traditional, add ) { | ||
+ | var name; | ||
+ | |||
+ | if ( jQuery.isArray( obj ) ) { | ||
+ | |||
+ | // Serialize array item. | ||
+ | jQuery.each( obj, function( i, v ) { | ||
+ | if ( traditional || rbracket.test( prefix ) ) { | ||
+ | |||
+ | // Treat each array item as a scalar. | ||
+ | add( prefix, v ); | ||
+ | |||
+ | } else { | ||
+ | |||
+ | // Item is non-scalar (array or object), encode its numeric index. | ||
+ | buildParams( | ||
+ | prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", | ||
+ | v, | ||
+ | traditional, | ||
+ | add | ||
+ | ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | } else if ( !traditional && jQuery.type( obj ) === "object" ) { | ||
+ | |||
+ | // Serialize object item. | ||
+ | for ( name in obj ) { | ||
+ | buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); | ||
+ | } | ||
+ | |||
+ | } else { | ||
+ | |||
+ | // Serialize scalar item. | ||
+ | add( prefix, obj ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Serialize an array of form elements or a set of | ||
+ | // key/values into a query string | ||
+ | jQuery.param = function( a, traditional ) { | ||
+ | var prefix, | ||
+ | s = [], | ||
+ | add = function( key, value ) { | ||
+ | |||
+ | // If value is a function, invoke it and return its value | ||
+ | value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); | ||
+ | s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); | ||
+ | }; | ||
+ | |||
+ | // Set traditional to true for jQuery <= 1.3.2 behavior. | ||
+ | if ( traditional === undefined ) { | ||
+ | traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; | ||
+ | } | ||
+ | |||
+ | // If an array was passed in, assume that it is an array of form elements. | ||
+ | if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { | ||
+ | |||
+ | // Serialize the form elements | ||
+ | jQuery.each( a, function() { | ||
+ | add( this.name, this.value ); | ||
+ | } ); | ||
+ | |||
+ | } else { | ||
+ | |||
+ | // If traditional, encode the "old" way (the way 1.3.2 or older | ||
+ | // did it), otherwise encode params recursively. | ||
+ | for ( prefix in a ) { | ||
+ | buildParams( prefix, a[ prefix ], traditional, add ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Return the resulting serialization | ||
+ | return s.join( "&" ).replace( r20, "+" ); | ||
+ | }; | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | serialize: function() { | ||
+ | return jQuery.param( this.serializeArray() ); | ||
+ | }, | ||
+ | serializeArray: function() { | ||
+ | return this.map( function() { | ||
+ | |||
+ | // Can add propHook for "elements" to filter or add form elements | ||
+ | var elements = jQuery.prop( this, "elements" ); | ||
+ | return elements ? jQuery.makeArray( elements ) : this; | ||
+ | } ) | ||
+ | .filter( function() { | ||
+ | var type = this.type; | ||
+ | |||
+ | // Use .is(":disabled") so that fieldset[disabled] works | ||
+ | return this.name && !jQuery( this ).is( ":disabled" ) && | ||
+ | rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && | ||
+ | ( this.checked || !rcheckableType.test( type ) ); | ||
+ | } ) | ||
+ | .map( function( i, elem ) { | ||
+ | var val = jQuery( this ).val(); | ||
+ | |||
+ | return val == null ? | ||
+ | null : | ||
+ | jQuery.isArray( val ) ? | ||
+ | jQuery.map( val, function( val ) { | ||
+ | return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; | ||
+ | } ) : | ||
+ | { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; | ||
+ | } ).get(); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | // Create the request object | ||
+ | // (This is still attached to ajaxSettings for backward compatibility) | ||
+ | jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ? | ||
+ | |||
+ | // Support: IE6-IE8 | ||
+ | function() { | ||
+ | |||
+ | // XHR cannot access local files, always use ActiveX for that case | ||
+ | if ( this.isLocal ) { | ||
+ | return createActiveXHR(); | ||
+ | } | ||
+ | |||
+ | // Support: IE 9-11 | ||
+ | // IE seems to error on cross-domain PATCH requests when ActiveX XHR | ||
+ | // is used. In IE 9+ always use the native XHR. | ||
+ | // Note: this condition won't catch Edge as it doesn't define | ||
+ | // document.documentMode but it also doesn't support ActiveX so it won't | ||
+ | // reach this code. | ||
+ | if ( document.documentMode > 8 ) { | ||
+ | return createStandardXHR(); | ||
+ | } | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // oldIE XHR does not support non-RFC2616 methods (#13240) | ||
+ | // See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx | ||
+ | // and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9 | ||
+ | // Although this check for six methods instead of eight | ||
+ | // since IE also does not support "trace" and "connect" | ||
+ | return /^(get|post|head|put|delete|options)$/i.test( this.type ) && | ||
+ | createStandardXHR() || createActiveXHR(); | ||
+ | } : | ||
+ | |||
+ | // For all other browsers, use the standard XMLHttpRequest object | ||
+ | createStandardXHR; | ||
+ | |||
+ | var xhrId = 0, | ||
+ | xhrCallbacks = {}, | ||
+ | xhrSupported = jQuery.ajaxSettings.xhr(); | ||
+ | |||
+ | // Support: IE<10 | ||
+ | // Open requests must be manually aborted on unload (#5280) | ||
+ | // See https://support.microsoft.com/kb/2856746 for more info | ||
+ | if ( window.attachEvent ) { | ||
+ | window.attachEvent( "onunload", function() { | ||
+ | for ( var key in xhrCallbacks ) { | ||
+ | xhrCallbacks[ key ]( undefined, true ); | ||
+ | } | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | // Determine support properties | ||
+ | support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); | ||
+ | xhrSupported = support.ajax = !!xhrSupported; | ||
+ | |||
+ | // Create transport if the browser can provide an xhr | ||
+ | if ( xhrSupported ) { | ||
+ | |||
+ | jQuery.ajaxTransport( function( options ) { | ||
+ | |||
+ | // Cross domain only allowed if supported through XMLHttpRequest | ||
+ | if ( !options.crossDomain || support.cors ) { | ||
+ | |||
+ | var callback; | ||
+ | |||
+ | return { | ||
+ | send: function( headers, complete ) { | ||
+ | var i, | ||
+ | xhr = options.xhr(), | ||
+ | id = ++xhrId; | ||
+ | |||
+ | // Open the socket | ||
+ | xhr.open( | ||
+ | options.type, | ||
+ | options.url, | ||
+ | options.async, | ||
+ | options.username, | ||
+ | options.password | ||
+ | ); | ||
+ | |||
+ | // Apply custom fields if provided | ||
+ | if ( options.xhrFields ) { | ||
+ | for ( i in options.xhrFields ) { | ||
+ | xhr[ i ] = options.xhrFields[ i ]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Override mime type if needed | ||
+ | if ( options.mimeType && xhr.overrideMimeType ) { | ||
+ | xhr.overrideMimeType( options.mimeType ); | ||
+ | } | ||
+ | |||
+ | // X-Requested-With header | ||
+ | // For cross-domain requests, seeing as conditions for a preflight are | ||
+ | // akin to a jigsaw puzzle, we simply never set it to be sure. | ||
+ | // (it can always be set on a per-request basis or even using ajaxSetup) | ||
+ | // For same-domain requests, won't change header if already provided. | ||
+ | if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { | ||
+ | headers[ "X-Requested-With" ] = "XMLHttpRequest"; | ||
+ | } | ||
+ | |||
+ | // Set headers | ||
+ | for ( i in headers ) { | ||
+ | |||
+ | // Support: IE<9 | ||
+ | // IE's ActiveXObject throws a 'Type Mismatch' exception when setting | ||
+ | // request header to a null-value. | ||
+ | // | ||
+ | // To keep consistent with other XHR implementations, cast the value | ||
+ | // to string and ignore `undefined`. | ||
+ | if ( headers[ i ] !== undefined ) { | ||
+ | xhr.setRequestHeader( i, headers[ i ] + "" ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Do send the request | ||
+ | // This may raise an exception which is actually | ||
+ | // handled in jQuery.ajax (so no try/catch here) | ||
+ | xhr.send( ( options.hasContent && options.data ) || null ); | ||
+ | |||
+ | // Listener | ||
+ | callback = function( _, isAbort ) { | ||
+ | var status, statusText, responses; | ||
+ | |||
+ | // Was never called and is aborted or complete | ||
+ | if ( callback && ( isAbort || xhr.readyState === 4 ) ) { | ||
+ | |||
+ | // Clean up | ||
+ | delete xhrCallbacks[ id ]; | ||
+ | callback = undefined; | ||
+ | xhr.onreadystatechange = jQuery.noop; | ||
+ | |||
+ | // Abort manually if needed | ||
+ | if ( isAbort ) { | ||
+ | if ( xhr.readyState !== 4 ) { | ||
+ | xhr.abort(); | ||
+ | } | ||
+ | } else { | ||
+ | responses = {}; | ||
+ | status = xhr.status; | ||
+ | |||
+ | // Support: IE<10 | ||
+ | // Accessing binary-data responseText throws an exception | ||
+ | // (#11426) | ||
+ | if ( typeof xhr.responseText === "string" ) { | ||
+ | responses.text = xhr.responseText; | ||
+ | } | ||
+ | |||
+ | // Firefox throws an exception when accessing | ||
+ | // statusText for faulty cross-domain requests | ||
+ | try { | ||
+ | statusText = xhr.statusText; | ||
+ | } catch ( e ) { | ||
+ | |||
+ | // We normalize with Webkit giving an empty statusText | ||
+ | statusText = ""; | ||
+ | } | ||
+ | |||
+ | // Filter status for non standard behaviors | ||
+ | |||
+ | // If the request is local and we have data: assume a success | ||
+ | // (success with no data won't get notified, that's the best we | ||
+ | // can do given current implementations) | ||
+ | if ( !status && options.isLocal && !options.crossDomain ) { | ||
+ | status = responses.text ? 200 : 404; | ||
+ | |||
+ | // IE - #1450: sometimes returns 1223 when it should be 204 | ||
+ | } else if ( status === 1223 ) { | ||
+ | status = 204; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Call complete if needed | ||
+ | if ( responses ) { | ||
+ | complete( status, statusText, responses, xhr.getAllResponseHeaders() ); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | // Do send the request | ||
+ | // `xhr.send` may raise an exception, but it will be | ||
+ | // handled in jQuery.ajax (so no try/catch here) | ||
+ | if ( !options.async ) { | ||
+ | |||
+ | // If we're in sync mode we fire the callback | ||
+ | callback(); | ||
+ | } else if ( xhr.readyState === 4 ) { | ||
+ | |||
+ | // (IE6 & IE7) if it's in cache and has been | ||
+ | // retrieved directly we need to fire the callback | ||
+ | window.setTimeout( callback ); | ||
+ | } else { | ||
+ | |||
+ | // Register the callback, but delay it in case `xhr.send` throws | ||
+ | // Add to the list of active xhr callbacks | ||
+ | xhr.onreadystatechange = xhrCallbacks[ id ] = callback; | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | abort: function() { | ||
+ | if ( callback ) { | ||
+ | callback( undefined, true ); | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | // Functions to create xhrs | ||
+ | function createStandardXHR() { | ||
+ | try { | ||
+ | return new window.XMLHttpRequest(); | ||
+ | } catch ( e ) {} | ||
+ | } | ||
+ | |||
+ | function createActiveXHR() { | ||
+ | try { | ||
+ | return new window.ActiveXObject( "Microsoft.XMLHTTP" ); | ||
+ | } catch ( e ) {} | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | // Install script dataType | ||
+ | jQuery.ajaxSetup( { | ||
+ | accepts: { | ||
+ | script: "text/javascript, application/javascript, " + | ||
+ | "application/ecmascript, application/x-ecmascript" | ||
+ | }, | ||
+ | contents: { | ||
+ | script: /\b(?:java|ecma)script\b/ | ||
+ | }, | ||
+ | converters: { | ||
+ | "text script": function( text ) { | ||
+ | jQuery.globalEval( text ); | ||
+ | return text; | ||
+ | } | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // Handle cache's special case and global | ||
+ | jQuery.ajaxPrefilter( "script", function( s ) { | ||
+ | if ( s.cache === undefined ) { | ||
+ | s.cache = false; | ||
+ | } | ||
+ | if ( s.crossDomain ) { | ||
+ | s.type = "GET"; | ||
+ | s.global = false; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // Bind script tag hack transport | ||
+ | jQuery.ajaxTransport( "script", function( s ) { | ||
+ | |||
+ | // This transport only deals with cross domain requests | ||
+ | if ( s.crossDomain ) { | ||
+ | |||
+ | var script, | ||
+ | head = document.head || jQuery( "head" )[ 0 ] || document.documentElement; | ||
+ | |||
+ | return { | ||
+ | |||
+ | send: function( _, callback ) { | ||
+ | |||
+ | script = document.createElement( "script" ); | ||
+ | |||
+ | script.async = true; | ||
+ | |||
+ | if ( s.scriptCharset ) { | ||
+ | script.charset = s.scriptCharset; | ||
+ | } | ||
+ | |||
+ | script.src = s.url; | ||
+ | |||
+ | // Attach handlers for all browsers | ||
+ | script.onload = script.onreadystatechange = function( _, isAbort ) { | ||
+ | |||
+ | if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { | ||
+ | |||
+ | // Handle memory leak in IE | ||
+ | script.onload = script.onreadystatechange = null; | ||
+ | |||
+ | // Remove the script | ||
+ | if ( script.parentNode ) { | ||
+ | script.parentNode.removeChild( script ); | ||
+ | } | ||
+ | |||
+ | // Dereference the script | ||
+ | script = null; | ||
+ | |||
+ | // Callback if not abort | ||
+ | if ( !isAbort ) { | ||
+ | callback( 200, "success" ); | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending | ||
+ | // Use native DOM manipulation to avoid our domManip AJAX trickery | ||
+ | head.insertBefore( script, head.firstChild ); | ||
+ | }, | ||
+ | |||
+ | abort: function() { | ||
+ | if ( script ) { | ||
+ | script.onload( undefined, true ); | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | var oldCallbacks = [], | ||
+ | rjsonp = /(=)\?(?=&|$)|\?\?/; | ||
+ | |||
+ | // Default jsonp settings | ||
+ | jQuery.ajaxSetup( { | ||
+ | jsonp: "callback", | ||
+ | jsonpCallback: function() { | ||
+ | var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); | ||
+ | this[ callback ] = true; | ||
+ | return callback; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // Detect, normalize options and install callbacks for jsonp requests | ||
+ | jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { | ||
+ | |||
+ | var callbackName, overwritten, responseContainer, | ||
+ | jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? | ||
+ | "url" : | ||
+ | typeof s.data === "string" && | ||
+ | ( s.contentType || "" ) | ||
+ | .indexOf( "application/x-www-form-urlencoded" ) === 0 && | ||
+ | rjsonp.test( s.data ) && "data" | ||
+ | ); | ||
+ | |||
+ | // Handle iff the expected data type is "jsonp" or we have a parameter to set | ||
+ | if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { | ||
+ | |||
+ | // Get callback name, remembering preexisting value associated with it | ||
+ | callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? | ||
+ | s.jsonpCallback() : | ||
+ | s.jsonpCallback; | ||
+ | |||
+ | // Insert callback into url or form data | ||
+ | if ( jsonProp ) { | ||
+ | s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); | ||
+ | } else if ( s.jsonp !== false ) { | ||
+ | s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; | ||
+ | } | ||
+ | |||
+ | // Use data converter to retrieve json after script execution | ||
+ | s.converters[ "script json" ] = function() { | ||
+ | if ( !responseContainer ) { | ||
+ | jQuery.error( callbackName + " was not called" ); | ||
+ | } | ||
+ | return responseContainer[ 0 ]; | ||
+ | }; | ||
+ | |||
+ | // force json dataType | ||
+ | s.dataTypes[ 0 ] = "json"; | ||
+ | |||
+ | // Install callback | ||
+ | overwritten = window[ callbackName ]; | ||
+ | window[ callbackName ] = function() { | ||
+ | responseContainer = arguments; | ||
+ | }; | ||
+ | |||
+ | // Clean-up function (fires after converters) | ||
+ | jqXHR.always( function() { | ||
+ | |||
+ | // If previous value didn't exist - remove it | ||
+ | if ( overwritten === undefined ) { | ||
+ | jQuery( window ).removeProp( callbackName ); | ||
+ | |||
+ | // Otherwise restore preexisting value | ||
+ | } else { | ||
+ | window[ callbackName ] = overwritten; | ||
+ | } | ||
+ | |||
+ | // Save back as free | ||
+ | if ( s[ callbackName ] ) { | ||
+ | |||
+ | // make sure that re-using the options doesn't screw things around | ||
+ | s.jsonpCallback = originalSettings.jsonpCallback; | ||
+ | |||
+ | // save the callback name for future use | ||
+ | oldCallbacks.push( callbackName ); | ||
+ | } | ||
+ | |||
+ | // Call if it was a function and we have a response | ||
+ | if ( responseContainer && jQuery.isFunction( overwritten ) ) { | ||
+ | overwritten( responseContainer[ 0 ] ); | ||
+ | } | ||
+ | |||
+ | responseContainer = overwritten = undefined; | ||
+ | } ); | ||
+ | |||
+ | // Delegate to script | ||
+ | return "script"; | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | // data: string of html | ||
+ | // context (optional): If specified, the fragment will be created in this context, | ||
+ | // defaults to document | ||
+ | // keepScripts (optional): If true, will include scripts passed in the html string | ||
+ | jQuery.parseHTML = function( data, context, keepScripts ) { | ||
+ | if ( !data || typeof data !== "string" ) { | ||
+ | return null; | ||
+ | } | ||
+ | if ( typeof context === "boolean" ) { | ||
+ | keepScripts = context; | ||
+ | context = false; | ||
+ | } | ||
+ | context = context || document; | ||
+ | |||
+ | var parsed = rsingleTag.exec( data ), | ||
+ | scripts = !keepScripts && []; | ||
+ | |||
+ | // Single tag | ||
+ | if ( parsed ) { | ||
+ | return [ context.createElement( parsed[ 1 ] ) ]; | ||
+ | } | ||
+ | |||
+ | parsed = buildFragment( [ data ], context, scripts ); | ||
+ | |||
+ | if ( scripts && scripts.length ) { | ||
+ | jQuery( scripts ).remove(); | ||
+ | } | ||
+ | |||
+ | return jQuery.merge( [], parsed.childNodes ); | ||
+ | }; | ||
+ | |||
+ | |||
+ | // Keep a copy of the old load method | ||
+ | var _load = jQuery.fn.load; | ||
+ | |||
+ | /** | ||
+ | * Load a url into a page | ||
+ | */ | ||
+ | jQuery.fn.load = function( url, params, callback ) { | ||
+ | if ( typeof url !== "string" && _load ) { | ||
+ | return _load.apply( this, arguments ); | ||
+ | } | ||
+ | |||
+ | var selector, type, response, | ||
+ | self = this, | ||
+ | off = url.indexOf( " " ); | ||
+ | |||
+ | if ( off > -1 ) { | ||
+ | selector = jQuery.trim( url.slice( off, url.length ) ); | ||
+ | url = url.slice( 0, off ); | ||
+ | } | ||
+ | |||
+ | // If it's a function | ||
+ | if ( jQuery.isFunction( params ) ) { | ||
+ | |||
+ | // We assume that it's the callback | ||
+ | callback = params; | ||
+ | params = undefined; | ||
+ | |||
+ | // Otherwise, build a param string | ||
+ | } else if ( params && typeof params === "object" ) { | ||
+ | type = "POST"; | ||
+ | } | ||
+ | |||
+ | // If we have elements to modify, make the request | ||
+ | if ( self.length > 0 ) { | ||
+ | jQuery.ajax( { | ||
+ | url: url, | ||
+ | |||
+ | // If "type" variable is undefined, then "GET" method will be used. | ||
+ | // Make value of this field explicit since | ||
+ | // user can override it through ajaxSetup method | ||
+ | type: type || "GET", | ||
+ | dataType: "html", | ||
+ | data: params | ||
+ | } ).done( function( responseText ) { | ||
+ | |||
+ | // Save response for use in complete callback | ||
+ | response = arguments; | ||
+ | |||
+ | self.html( selector ? | ||
+ | |||
+ | // If a selector was specified, locate the right elements in a dummy div | ||
+ | // Exclude scripts to avoid IE 'Permission Denied' errors | ||
+ | jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : | ||
+ | |||
+ | // Otherwise use the full result | ||
+ | responseText ); | ||
+ | |||
+ | // If the request succeeds, this function gets "data", "status", "jqXHR" | ||
+ | // but they are ignored because response was set above. | ||
+ | // If it fails, this function gets "jqXHR", "status", "error" | ||
+ | } ).always( callback && function( jqXHR, status ) { | ||
+ | self.each( function() { | ||
+ | callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); | ||
+ | } ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | return this; | ||
+ | }; | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | // Attach a bunch of functions for handling common AJAX events | ||
+ | jQuery.each( [ | ||
+ | "ajaxStart", | ||
+ | "ajaxStop", | ||
+ | "ajaxComplete", | ||
+ | "ajaxError", | ||
+ | "ajaxSuccess", | ||
+ | "ajaxSend" | ||
+ | ], function( i, type ) { | ||
+ | jQuery.fn[ type ] = function( fn ) { | ||
+ | return this.on( type, fn ); | ||
+ | }; | ||
+ | } ); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | jQuery.expr.filters.animated = function( elem ) { | ||
+ | return jQuery.grep( jQuery.timers, function( fn ) { | ||
+ | return elem === fn.elem; | ||
+ | } ).length; | ||
+ | }; | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | /** | ||
+ | * Gets a window from an element | ||
+ | */ | ||
+ | function getWindow( elem ) { | ||
+ | return jQuery.isWindow( elem ) ? | ||
+ | elem : | ||
+ | elem.nodeType === 9 ? | ||
+ | elem.defaultView || elem.parentWindow : | ||
+ | false; | ||
+ | } | ||
+ | |||
+ | jQuery.offset = { | ||
+ | setOffset: function( elem, options, i ) { | ||
+ | var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, | ||
+ | position = jQuery.css( elem, "position" ), | ||
+ | curElem = jQuery( elem ), | ||
+ | props = {}; | ||
+ | |||
+ | // set position first, in-case top/left are set even on static elem | ||
+ | if ( position === "static" ) { | ||
+ | elem.style.position = "relative"; | ||
+ | } | ||
+ | |||
+ | curOffset = curElem.offset(); | ||
+ | curCSSTop = jQuery.css( elem, "top" ); | ||
+ | curCSSLeft = jQuery.css( elem, "left" ); | ||
+ | calculatePosition = ( position === "absolute" || position === "fixed" ) && | ||
+ | jQuery.inArray( "auto", [ curCSSTop, curCSSLeft ] ) > -1; | ||
+ | |||
+ | // need to be able to calculate position if either top or left | ||
+ | // is auto and position is either absolute or fixed | ||
+ | if ( calculatePosition ) { | ||
+ | curPosition = curElem.position(); | ||
+ | curTop = curPosition.top; | ||
+ | curLeft = curPosition.left; | ||
+ | } else { | ||
+ | curTop = parseFloat( curCSSTop ) || 0; | ||
+ | curLeft = parseFloat( curCSSLeft ) || 0; | ||
+ | } | ||
+ | |||
+ | if ( jQuery.isFunction( options ) ) { | ||
+ | |||
+ | // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) | ||
+ | options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); | ||
+ | } | ||
+ | |||
+ | if ( options.top != null ) { | ||
+ | props.top = ( options.top - curOffset.top ) + curTop; | ||
+ | } | ||
+ | if ( options.left != null ) { | ||
+ | props.left = ( options.left - curOffset.left ) + curLeft; | ||
+ | } | ||
+ | |||
+ | if ( "using" in options ) { | ||
+ | options.using.call( elem, props ); | ||
+ | } else { | ||
+ | curElem.css( props ); | ||
+ | } | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | offset: function( options ) { | ||
+ | if ( arguments.length ) { | ||
+ | return options === undefined ? | ||
+ | this : | ||
+ | this.each( function( i ) { | ||
+ | jQuery.offset.setOffset( this, options, i ); | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | var docElem, win, | ||
+ | box = { top: 0, left: 0 }, | ||
+ | elem = this[ 0 ], | ||
+ | doc = elem && elem.ownerDocument; | ||
+ | |||
+ | if ( !doc ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | docElem = doc.documentElement; | ||
+ | |||
+ | // Make sure it's not a disconnected DOM node | ||
+ | if ( !jQuery.contains( docElem, elem ) ) { | ||
+ | return box; | ||
+ | } | ||
+ | |||
+ | // If we don't have gBCR, just use 0,0 rather than error | ||
+ | // BlackBerry 5, iOS 3 (original iPhone) | ||
+ | if ( typeof elem.getBoundingClientRect !== "undefined" ) { | ||
+ | box = elem.getBoundingClientRect(); | ||
+ | } | ||
+ | win = getWindow( doc ); | ||
+ | return { | ||
+ | top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ), | ||
+ | left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 ) | ||
+ | }; | ||
+ | }, | ||
+ | |||
+ | position: function() { | ||
+ | if ( !this[ 0 ] ) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | var offsetParent, offset, | ||
+ | parentOffset = { top: 0, left: 0 }, | ||
+ | elem = this[ 0 ]; | ||
+ | |||
+ | // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, | ||
+ | // because it is its only offset parent | ||
+ | if ( jQuery.css( elem, "position" ) === "fixed" ) { | ||
+ | |||
+ | // we assume that getBoundingClientRect is available when computed position is fixed | ||
+ | offset = elem.getBoundingClientRect(); | ||
+ | } else { | ||
+ | |||
+ | // Get *real* offsetParent | ||
+ | offsetParent = this.offsetParent(); | ||
+ | |||
+ | // Get correct offsets | ||
+ | offset = this.offset(); | ||
+ | if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { | ||
+ | parentOffset = offsetParent.offset(); | ||
+ | } | ||
+ | |||
+ | // Add offsetParent borders | ||
+ | parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); | ||
+ | parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); | ||
+ | } | ||
+ | |||
+ | // Subtract parent offsets and element margins | ||
+ | // note: when an element has margin: auto the offsetLeft and marginLeft | ||
+ | // are the same in Safari causing offset.left to incorrectly be 0 | ||
+ | return { | ||
+ | top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), | ||
+ | left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) | ||
+ | }; | ||
+ | }, | ||
+ | |||
+ | offsetParent: function() { | ||
+ | return this.map( function() { | ||
+ | var offsetParent = this.offsetParent; | ||
+ | |||
+ | while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && | ||
+ | jQuery.css( offsetParent, "position" ) === "static" ) ) { | ||
+ | offsetParent = offsetParent.offsetParent; | ||
+ | } | ||
+ | return offsetParent || documentElement; | ||
+ | } ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // Create scrollLeft and scrollTop methods | ||
+ | jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { | ||
+ | var top = /Y/.test( prop ); | ||
+ | |||
+ | jQuery.fn[ method ] = function( val ) { | ||
+ | return access( this, function( elem, method, val ) { | ||
+ | var win = getWindow( elem ); | ||
+ | |||
+ | if ( val === undefined ) { | ||
+ | return win ? ( prop in win ) ? win[ prop ] : | ||
+ | win.document.documentElement[ method ] : | ||
+ | elem[ method ]; | ||
+ | } | ||
+ | |||
+ | if ( win ) { | ||
+ | win.scrollTo( | ||
+ | !top ? val : jQuery( win ).scrollLeft(), | ||
+ | top ? val : jQuery( win ).scrollTop() | ||
+ | ); | ||
+ | |||
+ | } else { | ||
+ | elem[ method ] = val; | ||
+ | } | ||
+ | }, method, val, arguments.length, null ); | ||
+ | }; | ||
+ | } ); | ||
+ | |||
+ | // Support: Safari<7-8+, Chrome<37-44+ | ||
+ | // Add the top/left cssHooks using jQuery.fn.position | ||
+ | // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 | ||
+ | // getComputedStyle returns percent when specified for top/left/bottom/right | ||
+ | // rather than make the css module depend on the offset module, we just check for it here | ||
+ | jQuery.each( [ "top", "left" ], function( i, prop ) { | ||
+ | jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, | ||
+ | function( elem, computed ) { | ||
+ | if ( computed ) { | ||
+ | computed = curCSS( elem, prop ); | ||
+ | |||
+ | // if curCSS returns percentage, fallback to offset | ||
+ | return rnumnonpx.test( computed ) ? | ||
+ | jQuery( elem ).position()[ prop ] + "px" : | ||
+ | computed; | ||
+ | } | ||
+ | } | ||
+ | ); | ||
+ | } ); | ||
+ | |||
+ | |||
+ | // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods | ||
+ | jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { | ||
+ | jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, | ||
+ | function( defaultExtra, funcName ) { | ||
+ | |||
+ | // margin is only for outerHeight, outerWidth | ||
+ | jQuery.fn[ funcName ] = function( margin, value ) { | ||
+ | var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), | ||
+ | extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); | ||
+ | |||
+ | return access( this, function( elem, type, value ) { | ||
+ | var doc; | ||
+ | |||
+ | if ( jQuery.isWindow( elem ) ) { | ||
+ | |||
+ | // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there | ||
+ | // isn't a whole lot we can do. See pull request at this URL for discussion: | ||
+ | // https://github.com/jquery/jquery/pull/764 | ||
+ | return elem.document.documentElement[ "client" + name ]; | ||
+ | } | ||
+ | |||
+ | // Get document width or height | ||
+ | if ( elem.nodeType === 9 ) { | ||
+ | doc = elem.documentElement; | ||
+ | |||
+ | // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], | ||
+ | // whichever is greatest | ||
+ | // unfortunately, this causes bug #3838 in IE6/8 only, | ||
+ | // but there is currently no good, small way to fix it. | ||
+ | return Math.max( | ||
+ | elem.body[ "scroll" + name ], doc[ "scroll" + name ], | ||
+ | elem.body[ "offset" + name ], doc[ "offset" + name ], | ||
+ | doc[ "client" + name ] | ||
+ | ); | ||
+ | } | ||
+ | |||
+ | return value === undefined ? | ||
+ | |||
+ | // Get width or height on the element, requesting but not forcing parseFloat | ||
+ | jQuery.css( elem, type, extra ) : | ||
+ | |||
+ | // Set width or height on the element | ||
+ | jQuery.style( elem, type, value, extra ); | ||
+ | }, type, chainable ? margin : undefined, chainable, null ); | ||
+ | }; | ||
+ | } ); | ||
+ | } ); | ||
+ | |||
+ | |||
+ | jQuery.fn.extend( { | ||
+ | |||
+ | bind: function( types, data, fn ) { | ||
+ | return this.on( types, null, data, fn ); | ||
+ | }, | ||
+ | unbind: function( types, fn ) { | ||
+ | return this.off( types, null, fn ); | ||
+ | }, | ||
+ | |||
+ | delegate: function( selector, types, data, fn ) { | ||
+ | return this.on( types, selector, data, fn ); | ||
+ | }, | ||
+ | undelegate: function( selector, types, fn ) { | ||
+ | |||
+ | // ( namespace ) or ( selector, types [, fn] ) | ||
+ | return arguments.length === 1 ? | ||
+ | this.off( selector, "**" ) : | ||
+ | this.off( types, selector || "**", fn ); | ||
+ | } | ||
+ | } ); | ||
+ | |||
+ | // The number of elements contained in the matched element set | ||
+ | jQuery.fn.size = function() { | ||
+ | return this.length; | ||
+ | }; | ||
+ | |||
+ | jQuery.fn.andSelf = jQuery.fn.addBack; | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | // Register as a named AMD module, since jQuery can be concatenated with other | ||
+ | // files that may use define, but not via a proper concatenation script that | ||
+ | // understands anonymous AMD modules. A named AMD is safest and most robust | ||
+ | // way to register. Lowercase jquery is used because AMD module names are | ||
+ | // derived from file names, and jQuery is normally delivered in a lowercase | ||
+ | // file name. Do this after creating the global so that if an AMD module wants | ||
+ | // to call noConflict to hide this version of jQuery, it will work. | ||
+ | |||
+ | // Note that for maximum portability, libraries that are not jQuery should | ||
+ | // declare themselves as anonymous modules, and avoid setting a global if an | ||
+ | // AMD loader is present. jQuery is a special case. For more information, see | ||
+ | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon | ||
+ | |||
+ | if ( typeof define === "function" && define.amd ) { | ||
+ | define( "jquery", [], function() { | ||
+ | return jQuery; | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | var | ||
+ | |||
+ | // Map over jQuery in case of overwrite | ||
+ | _jQuery = window.jQuery, | ||
+ | |||
+ | // Map over the $ in case of overwrite | ||
+ | _$ = window.$; | ||
+ | |||
+ | jQuery.noConflict = function( deep ) { | ||
+ | if ( window.$ === jQuery ) { | ||
+ | window.$ = _$; | ||
+ | } | ||
+ | |||
+ | if ( deep && window.jQuery === jQuery ) { | ||
+ | window.jQuery = _jQuery; | ||
+ | } | ||
+ | |||
+ | return jQuery; | ||
+ | }; | ||
+ | |||
+ | // Expose jQuery and $ identifiers, even in | ||
+ | // AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557) | ||
+ | // and CommonJS for browser emulators (#13566) | ||
+ | if ( !noGlobal ) { | ||
+ | window.jQuery = window.$ = jQuery; | ||
+ | } | ||
+ | |||
+ | return jQuery; | ||
+ | })); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</script> | </script> | ||
− | <!-- | + | <!-- BOOTSTRAP MIN JS --> |
− | <script> | + | <script type="text/javascript"> |
/*! | /*! | ||
− | + | * Bootstrap v3.3.7 (http://getbootstrap.com) | |
− | + | * Copyright 2011-2016 Twitter, Inc. | |
− | + | * Licensed under the MIT license | |
− | + | */ | |
− | + | ||
− | + | ||
− | + | ||
+ | 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) { | ||
+ | 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); | ||
+ | |||
+ | </script> | ||
+ | <!-- BEGIN template --> | ||
<style> | <style> | ||
/*------------------------------------------------*/ | /*------------------------------------------------*/ | ||
Line 93: | Line 20,489: | ||
h1, h2, h3, h4, h5, h6, h7{ | h1, h2, h3, h4, h5, h6, h7{ | ||
padding-top: 0px; | padding-top: 0px; | ||
− | |||
− | |||
− | |||
− | |||
} | } | ||
/*------------------------------------------------*/ | /*------------------------------------------------*/ | ||
Line 122: | Line 20,514: | ||
} | } | ||
+ | </style> | ||
− | + | <!-- PAGES SHARED CSS --> | |
− | + | <style type="text/css"> | |
− | + | body { | |
− | + | line-height: 1.4; | |
− | + | font-family: "Source Sans Pro", sans-serif; | |
+ | -webkit-font-smoothing: antialiased; | ||
} | } | ||
− | + | p { | |
− | + | font-family: "Source Sans Pro", sans-serif; | |
− | + | color: #848484; | |
− | + | font-size: 16px; | |
} | } | ||
− | + | h1, h2, h3, h4, h5, h6 { | |
− | + | font-family: "Roboto", sans-serif; | |
− | + | font-weight: 600; | |
− | + | ||
} | } | ||
− | + | /*=== MEDIA QUERY ===*/ | |
− | + | body { | |
− | + | font-size: 15px; | |
− | + | color: #777777; | |
+ | line-height: 1.8em; | ||
+ | font-weight: 400; | ||
+ | background: #ffffff; | ||
+ | background-size: cover; | ||
+ | background-repeat: no-repeat; | ||
+ | background-position: center top; | ||
+ | -webkit-font-smoothing: antialiased; | ||
+ | font-family: "Roboto", sans-serif; | ||
} | } | ||
− | + | .page-wrapper { | |
− | + | overflow: hidden; | |
− | + | ||
− | + | ||
} | } | ||
− | + | a { | |
− | + | text-decoration: none; | |
− | + | cursor: pointer; | |
+ | } | ||
− | . | + | .dropItem{ |
− | + | font-size: 40px; | |
− | + | color: #222222; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | + | a:hover, a:focus, a:visited { | |
− | + | text-decoration: none; | |
+ | outline: none; | ||
} | } | ||
− | + | h1, h2, h3, h4, h5, h6 { | |
− | + | margin: 0px; | |
} | } | ||
− | + | input, button, select, textarea { | |
− | + | font-family: "Roboto", sans-serif; | |
− | + | ||
− | + | ||
} | } | ||
− | + | ||
− | + | p { | |
− | + | position: relative; | |
− | + | line-height: 1.8em; | |
} | } | ||
− | . | + | .section-title h3 { |
− | + | font-size: 40px; | |
− | + | line-height: 50px; | |
− | + | color: #222222; | |
− | + | font-weight: 700; | |
− | + | font-family: "Source Sans Pro", sans-serif; | |
} | } | ||
− | . | + | .section-title span { |
− | + | color: #222222; | |
+ | font-weight: 400; | ||
} | } | ||
− | + | .timeline-paragraph p{ | |
− | . | + | text-transform: none; |
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | . | + | .section-title p { |
− | + | font-size: 15px; | |
− | + | line-height: 25px; | |
− | + | font-weight: 400; | |
+ | color: #777777; | ||
+ | font-family: "Roboto", sans-serif; | ||
} | } | ||
− | + | ||
− | . | + | .strike-through { |
− | + | text-decoration: line-through; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | . | + | .auto-container { |
− | + | position: static; | |
+ | max-width: 1200px; | ||
+ | padding: 0px 15px; | ||
+ | margin: 0 auto; | ||
} | } | ||
− | + | .small-container { | |
+ | max-width: 680px; | ||
+ | margin: 0 auto; | ||
+ | } | ||
− | . | + | .page-wrapper { |
− | display: | + | position: relative; |
− | padding: 0; | + | margin: 0 auto; |
+ | width: 100%; | ||
+ | min-width: 300px; | ||
+ | } | ||
+ | |||
+ | li { | ||
+ | list-style: none; | ||
+ | padding: 0px; | ||
+ | margin: 0px; | ||
+ | } | ||
+ | |||
+ | .anim-3, .anim-3-all * { | ||
+ | transition: all 0.3s ease; | ||
+ | -moz-transition: all 0.3s ease; | ||
+ | -webkit-transition: all 0.3s ease; | ||
+ | -ms-transition: all 0.3s ease; | ||
+ | -o-transition: all 0.3s ease; | ||
+ | } | ||
+ | |||
+ | .anim-5, .anim-5-all * { | ||
+ | transition: all 0.5s ease; | ||
+ | -moz-transition: all 0.5s ease; | ||
+ | -webkit-transition: all 0.5s ease; | ||
+ | -ms-transition: all 0.5s ease; | ||
+ | -o-transition: all 0.5s ease; | ||
+ | } | ||
+ | |||
+ | .anim-7, .anim-7-all * { | ||
+ | transition: all 0.7s ease; | ||
+ | -moz-transition: all 0.7s ease; | ||
+ | -webkit-transition: all 0.7s ease; | ||
+ | -ms-transition: all 0.7s ease; | ||
+ | -o-transition: all 0.7s ease; | ||
+ | } | ||
+ | |||
+ | .btn-style-one { | ||
+ | font-size: 14px; | ||
+ | font-weight: 600; | ||
+ | color: #ffffff; | ||
+ | line-height: 27px; | ||
+ | padding: 8px 36px; | ||
+ | background: #886488; | ||
+ | border: 1px solid #886488; | ||
+ | display: inline-block; | ||
+ | text-transform: uppercase; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | transition: all 0.5s ease; | ||
+ | -moz-transition: all 0.5s ease; | ||
+ | -webkit-transition: all 0.5s ease; | ||
+ | -ms-transition: all 0.5s ease; | ||
+ | -o-transition: all 0.5s ease; | ||
+ | } | ||
+ | |||
+ | .btn-style-one:hover { | ||
+ | color: #886488; | ||
+ | border: 1px solid #886488; | ||
+ | background: #ffffff; | ||
+ | transition: all 0.5s ease; | ||
+ | -moz-transition: all 0.5s ease; | ||
+ | -webkit-transition: all 0.5s ease; | ||
+ | -ms-transition: all 0.5s ease; | ||
+ | -o-transition: all 0.5s ease; | ||
+ | } | ||
+ | |||
+ | .btn-style-two { | ||
+ | font-size: 14px; | ||
+ | font-weight: 600; | ||
+ | color: #222222; | ||
+ | line-height: 27px; | ||
+ | padding: 8px 36px; | ||
+ | background: #f4f4f4; | ||
+ | border: 1px solid #ececec; | ||
+ | display: inline-block; | ||
+ | text-transform: uppercase; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | transition: all 0.5s ease; | ||
+ | -moz-transition: all 0.5s ease; | ||
+ | -webkit-transition: all 0.5s ease; | ||
+ | -ms-transition: all 0.5s ease; | ||
+ | -o-transition: all 0.5s ease; | ||
+ | } | ||
+ | |||
+ | .btn-style-two:hover { | ||
+ | color: #ffffff; | ||
+ | border: 1px solid #886488; | ||
+ | background: #886488; | ||
+ | transition: all 0.5s ease; | ||
+ | -moz-transition: all 0.5s ease; | ||
+ | -webkit-transition: all 0.5s ease; | ||
+ | -ms-transition: all 0.5s ease; | ||
+ | -o-transition: all 0.5s ease; | ||
+ | } | ||
+ | |||
+ | .section { | ||
+ | padding: 100px 0; | ||
+ | } | ||
+ | |||
+ | .pb-0 { | ||
+ | padding-bottom: 0 !important; | ||
+ | } | ||
+ | |||
+ | .pt-0 { | ||
+ | padding-top: 0 !important; | ||
+ | } | ||
+ | |||
+ | .p-0 { | ||
+ | padding: 0 !important; | ||
+ | } | ||
+ | |||
+ | .bg-gray { | ||
+ | background: #fafafa; | ||
+ | } | ||
+ | |||
+ | .logo { | ||
+ | display: inline-block; | ||
+ | } | ||
+ | |||
+ | .single-page-header { | ||
+ | background-image: url("../images/about/about-header.jpg"); | ||
+ | background-size: cover; | ||
+ | padding: 140px 0 70px; | ||
+ | text-align: center; | ||
+ | color: #fff; | ||
+ | position: relative; | ||
+ | } | ||
+ | |||
+ | .single-page-header:before { | ||
+ | background: rgba(0, 0, 0, 0.5); | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | top: 0; | ||
+ | right: 0; | ||
+ | left: 0; | ||
+ | bottom: 0; | ||
+ | } | ||
+ | |||
+ | .header-top { | ||
+ | background: #ffffff; | ||
+ | border-bottom: 1px solid #ececec; | ||
+ | } | ||
+ | |||
+ | .header-top .top-left { | ||
+ | float: left; | ||
+ | } | ||
+ | |||
+ | @media (max-width: 767px) { | ||
+ | .header-top .top-left { | ||
+ | float: unset; | ||
+ | text-align: center; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .header-top .top-left h6 { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | color: #777777; | ||
+ | font-weight: 400; | ||
+ | padding: 14px 0px; | ||
+ | font-family: "Roboto", sans-serif; | ||
+ | } | ||
+ | |||
+ | .header-top .top-right { | ||
+ | float: right; | ||
+ | } | ||
+ | |||
+ | @media (max-width: 767px) { | ||
+ | .header-top .top-right { | ||
+ | float: unset; | ||
+ | text-align: center; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .header-top .top-left .contact-links li { | ||
+ | display: inline-block; | ||
+ | font-size: 15px; | ||
+ | font-weight: 400; | ||
+ | line-height: 26px; | ||
+ | color: #b2b2b7; | ||
+ | margin-right: 40px; | ||
+ | font-family: 'Open Sans', sans-serif; | ||
+ | } | ||
+ | |||
+ | .header-top .top-right .social-links { | ||
+ | position: relative; | ||
+ | display: inline-block; | ||
+ | margin-bottom: 0px; | ||
+ | } | ||
+ | |||
+ | @media (max-width: 767px) { | ||
+ | .header-top .top-right .social-links { | ||
+ | padding-left: 0; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .header-top .top-right .social-links li { | ||
+ | display: inline-block; | ||
+ | } | ||
+ | |||
+ | .header-top .top-right .social-links li i { | ||
+ | width: 50px; | ||
+ | height: 56px; | ||
+ | line-height: 56px; | ||
+ | margin: -1px; | ||
+ | font-size: 16px; | ||
+ | color: #777777; | ||
+ | font-weight: 600; | ||
+ | text-align: center; | ||
+ | border: 1px solid #ececec; | ||
+ | } | ||
+ | |||
+ | .header-top .top-right .social-links li:hover i { | ||
+ | color: #7b64cb; | ||
+ | border-color: #7b64cb; | ||
+ | } | ||
+ | |||
+ | .header-uper { | ||
+ | padding: 40px 0px; | ||
+ | } | ||
+ | |||
+ | .header-uper .logo { | ||
+ | float: left; | ||
+ | } | ||
+ | |||
+ | .header-uper .right-side { | ||
+ | float: right; | ||
+ | } | ||
+ | |||
+ | @media (max-width: 991px) { | ||
+ | .header-uper .right-side { | ||
+ | float: unset; | ||
+ | text-align: center; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .header-uper .contact-info { | ||
+ | float: left; | ||
+ | } | ||
+ | |||
+ | @media (max-width: 991px) { | ||
+ | .header-uper .contact-info { | ||
+ | padding-left: 0; | ||
+ | float: unset; | ||
+ | margin-bottom: 30px; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .header-uper .link-btn { | ||
+ | float: right; | ||
+ | } | ||
+ | |||
+ | @media (max-width: 991px) { | ||
+ | .header-uper .link-btn { | ||
+ | float: unset; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .header-uper .contact-info .item { | ||
+ | position: relative; | ||
+ | display: inline-block; | ||
+ | padding-left: 70px; | ||
+ | margin-right: 40px; | ||
+ | } | ||
+ | |||
+ | .header-uper .contact-info .item .icon-box { | ||
+ | position: absolute; | ||
+ | top: 0px; | ||
+ | left: 0px; | ||
+ | width: 53px; | ||
+ | height: 53px; | ||
+ | border-radius: 50%; | ||
+ | text-align: center; | ||
+ | line-height: 53px; | ||
+ | border: 1px solid #5ec5cc; | ||
+ | } | ||
+ | |||
+ | .header-uper .contact-info .item .icon-box i:before { | ||
+ | color: #5ec5cc; | ||
+ | font-size: 22px; | ||
+ | } | ||
+ | |||
+ | .header-uper .contact-info .item strong { | ||
+ | font-size: 16px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 600; | ||
+ | color: #222222; | ||
+ | text-transform: capitalize; | ||
+ | font-family: "Roboto", sans-serif; | ||
+ | } | ||
+ | |||
+ | .header-uper .contact-info .item span { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | font-family: "Roboto", sans-serif; | ||
+ | } | ||
+ | |||
+ | .header-uper .right-side .link-btn { | ||
+ | margin-left: 20px; | ||
+ | margin-top: 5px; | ||
+ | } | ||
+ | |||
+ | @-webkit-keyframes menu_sticky { | ||
+ | 0% { | ||
+ | margin-top: -150px; | ||
+ | } | ||
+ | 50% { | ||
+ | margin-top: -130px; | ||
+ | } | ||
+ | 100% { | ||
margin-top: 0; | margin-top: 0; | ||
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | + | @keyframes menu_sticky { | |
− | + | 0% { | |
− | + | margin-top: -150px; | |
− | + | } | |
− | + | 50% { | |
+ | margin-top: -130px; | ||
+ | } | ||
+ | 100% { | ||
+ | margin-top: 0; | ||
+ | } | ||
} | } | ||
− | . | + | .main-header { |
− | + | position: relative; | |
+ | width: 100%; | ||
+ | z-index: 9999; | ||
+ | margin-bottom: -60px; | ||
+ | background: rgba(0, 0, 0, 0.66); | ||
+ | transition: all 500ms ease; | ||
+ | -moz-transition: all 500ms ease; | ||
+ | -webkit-transition: all 500ms ease; | ||
+ | -ms-transition: all 500ms ease; | ||
+ | -o-transition: all 500ms ease; | ||
} | } | ||
− | . | + | .fixed-header { |
− | + | position: fixed; | |
− | + | top: 0px; | |
+ | left: 0px; | ||
+ | margin: 0; | ||
+ | z-index: 9999; | ||
+ | background: rgba(0, 0, 0, 0.66); | ||
+ | transition: all 500ms ease; | ||
+ | -webkit-animation-name: menu_sticky; | ||
+ | animation-name: menu_sticky; | ||
+ | -webkit-animation-duration: 0.60s; | ||
+ | animation-duration: 0.60s; | ||
+ | -webkit-animation-timing-function: ease-out; | ||
+ | animation-timing-function: ease-out; | ||
+ | box-shadow: 0px 3px 20px 0px rgba(0, 0, 0, 0.11); | ||
} | } | ||
− | . | + | .navbar { |
− | . | + | margin-bottom: 0; |
+ | background: #886488; | ||
+ | border: none; | ||
+ | border-radius: 0; | ||
+ | } | ||
+ | |||
+ | .navbar .navbar-nav li a { | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | font-size: 17px; | ||
+ | color: #fff; | ||
+ | text-transform: uppercase; | ||
+ | padding: 25px 20px; | ||
+ | } | ||
+ | |||
+ | .navbar .navbar-nav li a:hover { | ||
+ | color: #000; | ||
+ | } | ||
+ | |||
+ | .navbar .navbar-nav li.active a { | ||
+ | background: transparent; | ||
+ | color: #fff; | ||
+ | font-weight: bold; | ||
+ | } | ||
+ | |||
+ | .navbar .navbar-nav li.active a:hover { | ||
+ | background: transparent; | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder { | ||
+ | margin-top: 60px; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder .panel-default { | ||
+ | box-shadow: none; | ||
+ | border-radius: 0; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder .panel-default .panel-heading { | ||
+ | background: #fff; | ||
+ | padding: 0; | ||
+ | border-radius: 0; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder .panel-default .panel-heading h4 { | ||
+ | position: relative; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder .panel-default .panel-heading h4 a { | ||
+ | font-weight: bold; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | font-size: 20px; | ||
+ | display: block; | ||
+ | background: #886488; | ||
+ | color: #fff; | ||
+ | padding: 20px 30px; | ||
+ | transition: all .3s ease; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder .panel-default .panel-heading h4 a:before { | ||
+ | content: '\f106'; | ||
+ | position: absolute; | ||
+ | right: 20px; | ||
+ | font-family: FontAwesome; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder .panel-default .panel-heading h4 a.collapsed { | ||
+ | background: #fff; | ||
+ | color: #000; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder .panel-default .panel-heading h4 a.collapsed:before { | ||
+ | content: '\f107'; | ||
+ | position: absolute; | ||
+ | font-family: FontAwesome; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder .panel-default .panel-heading h4 a.collapsed:hover { | ||
+ | color: #886488; | ||
+ | } | ||
+ | |||
+ | .accordion-section .accordion-holder .panel-default .panel-body { | ||
+ | padding: 20px 30px; | ||
+ | } | ||
+ | |||
+ | .hero-slider { | ||
+ | height: 80vh; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slider-item { | ||
+ | height: 80vh; | ||
+ | display: -webkit-box !important; | ||
+ | display: -ms-flexbox !important; | ||
+ | display: flex !important; | ||
+ | -webkit-box-pack: center; | ||
+ | -ms-flex-pack: center; | ||
+ | justify-content: center; | ||
+ | -webkit-box-align: center; | ||
+ | -ms-flex-align: center; | ||
+ | align-items: center; | ||
+ | background-repeat: no-repeat; | ||
+ | background-position: center; | ||
+ | background-size: cover; | ||
+ | position: relative; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slider-item:before { | ||
+ | position: absolute; | ||
+ | background: rgba(0, 0, 0, 0.5); | ||
+ | content: ''; | ||
+ | top: 0; | ||
+ | height: 100%; | ||
+ | width: 100%; | ||
+ | } | ||
+ | |||
+ | .hero-slider .content { | ||
+ | position: relative; | ||
+ | z-index: 2; | ||
+ | } | ||
+ | |||
+ | .hero-slider .content.style h2 { | ||
+ | font-size: 60px; | ||
+ | } | ||
+ | |||
+ | @media (max-width: 767px) { | ||
+ | .hero-slider .content.style h2 { | ||
+ | font-size: 30px; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .hero-slider .content.style .offer-text { | ||
+ | letter-spacing: 7px; | ||
+ | font-size: 15px; | ||
+ | margin-bottom: 5px; | ||
+ | } | ||
+ | |||
+ | .hero-slider .content.style .tag-text { | ||
+ | font-size: 20px; | ||
+ | font-weight: normal; | ||
+ | } | ||
+ | |||
+ | .hero-slider .content.style .btn-main { | ||
+ | border-radius: 3px; | ||
+ | padding: 16px 50px; | ||
+ | font-weight: 700; | ||
+ | } | ||
+ | |||
+ | .hero-slider .content h2 { | ||
+ | font-size: 35px; | ||
+ | text-transform: capitalize; | ||
+ | font-weight: 600; | ||
+ | font-family: "Roboto", sans-serif; | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .hero-slider .content p { | ||
+ | font-size: 26px; | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .hero-slider .content .btn-white { | ||
+ | background: transparent; | ||
+ | text-transform: uppercase; | ||
+ | letter-spacing: 1px; | ||
+ | color: #fff; | ||
+ | border: 1px solid #fff; | ||
+ | transition: all .3s ease; | ||
+ | } | ||
+ | |||
+ | .hero-slider .content .btn-white:hover { | ||
+ | background: #fff; | ||
+ | color: #000; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slick-dots { | ||
+ | bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slick-dots li { | ||
+ | margin: 0 3px; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slick-dots li button:before { | ||
+ | font-size: 15px; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slick-dots li.slick-active button:before { | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slick-prev { | ||
+ | left: 20px; | ||
+ | z-index: 100; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slick-prev:before { | ||
+ | content: '\f177'; | ||
+ | font-family: "FontAwesome"; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slick-next { | ||
+ | right: 20px; | ||
+ | z-index: 100; | ||
+ | } | ||
+ | |||
+ | .hero-slider .slick-next:before { | ||
+ | content: '\f178'; | ||
+ | font-family: "FontAwesome"; | ||
+ | } | ||
+ | |||
+ | .slick-dotted.slick-slider { | ||
+ | margin-bottom: 0 !important; | ||
+ | } | ||
+ | |||
+ | .cta { | ||
+ | padding: 40px 0; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block { | ||
+ | display: -webkit-box; | ||
+ | display: -ms-flexbox; | ||
+ | display: flex; | ||
+ | border-radius: 4px; | ||
+ | overflow: hidden; | ||
+ | } | ||
+ | |||
+ | @media (max-width: 767px) { | ||
+ | .cta .cta-block { | ||
+ | -webkit-box-orient: vertical; | ||
+ | -webkit-box-direction: normal; | ||
+ | -ms-flex-direction: column; | ||
+ | flex-direction: column; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .emmergency { | ||
+ | background: #886488; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .emmergency a { | ||
+ | color: #fff; | ||
+ | font-size: 30px; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .emmergency p { | ||
+ | padding-top: 20px; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .top-doctor { | ||
+ | background: #966996; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .top-doctor .btn-main { | ||
+ | margin-top: 10px; | ||
+ | color: #fff; | ||
+ | border: 1px solid #fff; | ||
+ | padding: 10px 20px; | ||
+ | transition: all .3s ease; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .top-doctor .btn-main:hover { | ||
+ | background: #fff; | ||
+ | color: #886488; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .working-time { | ||
+ | background: #ad7bad; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .working-time ul { | ||
+ | margin: 0; | ||
+ | padding: 0; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .working-time ul li { | ||
+ | color: #fff; | ||
+ | text-transform: uppercase; | ||
+ | letter-spacing: 2px; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .working-time ul li span { | ||
+ | float: right; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .working-time ul li:not(:last-child) { | ||
+ | border-bottom: 1px solid #fff; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .item { | ||
+ | padding: 20px 30px; | ||
+ | -ms-flex-preferred-size: 33.33%; | ||
+ | flex-basis: 33.33%; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .item i, .cta .cta-block .item h2, .cta .cta-block .item p { | ||
+ | transition: all .2s ease; | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .item i { | ||
+ | font-size: 30px; | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .item h2 { | ||
+ | font-weight: normal; | ||
+ | text-transform: uppercase; | ||
+ | letter-spacing: 1px; | ||
+ | font-size: 25px; | ||
+ | margin-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .cta .cta-block .item p { | ||
+ | font-size: 16px; | ||
+ | line-height: 19px; | ||
+ | } | ||
+ | |||
+ | .map { | ||
+ | position: relative; | ||
+ | } | ||
+ | |||
+ | .map #map { | ||
+ | height: 400px; | ||
+ | color: white; | ||
+ | } | ||
+ | |||
+ | .contact .contact-form .form-control { | ||
+ | margin-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .contact .address-block .media { | ||
+ | display: -webkit-box; | ||
+ | display: -ms-flexbox; | ||
+ | display: flex; | ||
+ | } | ||
+ | |||
+ | @media (max-width: 767px) { | ||
+ | .contact .address-block .media { | ||
+ | -ms-flex-wrap: wrap; | ||
+ | flex-wrap: wrap; | ||
text-align: center; | text-align: center; | ||
− | + | } | |
− | + | .contact .address-block .media:last-child { | |
− | + | margin-bottom: 30px; | |
+ | } | ||
} | } | ||
− | . | + | .contact .address-block .media i { |
− | + | color: #886488; | |
− | + | font-size: 30px; | |
− | + | margin-right: 35px; | |
+ | width: 40px; | ||
+ | display: block; | ||
} | } | ||
− | + | @media (max-width: 767px) { | |
− | @media | + | .contact .address-block .media i { |
− | + | -ms-flex-preferred-size: 100%; | |
− | + | flex-basis: 100%; | |
− | + | margin-right: 0; | |
− | + | margin-bottom: 30px; | |
− | + | } | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | .contact .address-block .media .media-body h3 { | ||
+ | font-size: 24px; | ||
+ | margin-bottom: 15px; | ||
} | } | ||
− | + | .contact .address-block .media .media-body p { | |
− | + | line-height: 25px; | |
− | + | } | |
− | . | + | .contact .address-block .media:not(:last-child) { |
− | + | margin-bottom: 20px; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | . | + | .form-control { |
− | + | box-shadow: none; | |
+ | border-radius: 0; | ||
+ | padding: 15px 20px; | ||
+ | font-size: 14px; | ||
} | } | ||
− | . | + | .form-control:focus { |
− | + | box-shadow: none; | |
− | + | border: 1px solid #886488; | |
− | + | ||
} | } | ||
− | + | ||
− | . | + | .form-control.main { |
− | + | padding: 20px; | |
} | } | ||
− | . | + | .feature-section { |
− | + | position: relative; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | + | .feature-section .image-content .section-title { | |
− | + | margin-bottom: 20px; | |
− | + | } | |
− | . | + | .feature-section .image-content .section-title h3 { |
− | + | position: relative; | |
− | + | padding-bottom: 15px; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | . | + | |
− | + | .feature-section .image-content .section-title p { | |
− | + | margin-bottom: 40px; | |
− | + | ||
} | } | ||
− | + | .feature-section .image-content .item { | |
− | + | position: relative; | |
− | + | margin-bottom: 40px; | |
+ | } | ||
− | : | + | @media (max-width: 767px) { |
− | + | .feature-section .image-content .item { | |
− | + | padding: 0 30px; | |
− | + | } | |
− | + | ||
} | } | ||
− | + | .feature-section .image-content .icon-box { | |
− | + | height: 50px; | |
− | + | margin-bottom: 20px; | |
} | } | ||
− | + | .feature-section .image-content .item h6 { | |
− | + | font-size: 20px; | |
− | + | line-height: 30px; | |
− | + | font-weight: 400; | |
+ | text-transform: uppercase; | ||
+ | color: #222222; | ||
+ | font-family: "Roboto", sans-serif; | ||
} | } | ||
− | + | .feature-section .image-content .item p { | |
− | + | font-size: 15px; | |
− | + | line-height: 28px; | |
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | + | .feature-section .contact-info .item { | |
− | + | position: relative; | |
− | + | display: inline-block; | |
− | + | margin: -2px; | |
− | } | + | padding: 22px 67px 20px 105px; |
− | + | } | |
− | + | .feature-section .contact-info .item:nth-child(1) { | |
+ | background: #8383d1; | ||
+ | } | ||
− | + | .feature-section .contact-info .item:nth-child(2) { | |
− | + | background: #7491ce; | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | .feature-section .contact-info .item:nth-child(3) { | |
− | + | background: #6fb4d0; | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | .feature-section .contact-info .icon-box { | |
− | + | position: absolute; | |
− | + | top: 40px; | |
+ | left: 45px; | ||
+ | } | ||
− | + | .feature-section .contact-info i:before { | |
− | + | font-size: 30px; | |
− | + | color: #ffffff; | |
+ | } | ||
− | + | .feature-section .contact-info h6 { | |
− | + | font-size: 22px; | |
− | + | line-height: 30px; | |
− | + | font-weight: 600; | |
− | + | color: #ffffff; | |
− | + | font-family: "Source Sans Pro", sans-serif; | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | .feature-section .contact-info p { | |
− | + | font-size: 15px; | |
− | + | line-height: 28px; | |
+ | font-weight: 600; | ||
+ | color: #ffffff; | ||
+ | font-family: "Roboto", sans-serif; | ||
+ | } | ||
+ | .feature-section.style-two { | ||
+ | position: relative; | ||
+ | padding: 0px; | ||
+ | margin-top: -56px; | ||
+ | margin-bottom: -50px; | ||
+ | z-index: 11; | ||
+ | } | ||
− | + | .service-tab-section { | |
− | + | position: relative; | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | .service-tab-section .outer-box { | ||
+ | position: relative; | ||
+ | z-index: 1; | ||
+ | } | ||
− | + | .tabs .nav-tabs > li, .tabs .nav-pills > li { | |
− | + | float: none; | |
− | + | display: inline-block; | |
+ | margin-bottom: 10px; | ||
+ | } | ||
+ | .tabs .nav-tabs { | ||
+ | text-align: center; | ||
+ | border-bottom: 0; | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
− | + | .tabs .nav-tabs li:not(:last-child) { | |
− | + | margin-right: 10px; | |
− | + | } | |
− | + | .tabs .nav-tabs li a { | |
− | + | text-transform: capitalize; | |
− | + | font-size: 20px; | |
− | + | padding: 10px 25px; | |
+ | font-weight: 600; | ||
+ | color: #4d4d4d; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | border: 2px solid #886488; | ||
+ | border-radius: 0; | ||
+ | transition: all .3s ease; | ||
+ | } | ||
+ | .tabs .nav-tabs li a:hover { | ||
+ | background: #886488; | ||
+ | color: #fff; | ||
+ | border: 2px solid #886488; | ||
+ | } | ||
− | + | .tabs .nav-tabs li.active a { | |
− | + | color: #fff; | |
− | + | background: #886488; | |
+ | border: 2px solid #886488; | ||
+ | } | ||
+ | .tab-content { | ||
+ | position: relative; | ||
+ | float: left; | ||
+ | width: 100%; | ||
+ | z-index: 99; | ||
+ | } | ||
− | + | .service-box { | |
− | + | position: relative; | |
− | + | width: 100%; | |
+ | } | ||
− | + | .service-box img { | |
− | + | border-radius: 14px; | |
− | + | width: 100%; | |
− | + | box-shadow: 0px 0px 20px -5px rgba(0, 0, 0, 0.2); | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | .service-box .contents { | |
− | + | margin-left: 30px; | |
− | + | } | |
− | + | ||
− | + | @media (max-width: 991px) { | |
− | + | .service-box .contents { | |
− | + | margin-left: 0; | |
− | } | + | margin-top: 50px; |
+ | } | ||
+ | } | ||
− | + | .service-box .contents .btn-style-one { | |
− | + | margin-top: 20px; | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | .service-box .section-title h3 { | |
− | + | position: relative; | |
− | + | font-size: 32px; | |
− | + | line-height: 42px; | |
− | + | font-weight: 700; | |
− | + | padding-bottom: 20px; | |
− | + | margin-bottom: 45px; | |
+ | color: #000; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
− | + | .service-box .section-title h3:before { | |
− | + | position: absolute; | |
− | + | left: 0px; | |
− | + | content: ''; | |
− | + | bottom: 0px; | |
− | + | background: #333333; | |
+ | height: 1px; | ||
+ | width: 55px; | ||
+ | } | ||
− | + | .service-box .text { | |
− | + | position: relative; | |
− | + | margin-bottom: 15px; | |
− | + | } | |
− | + | ||
− | + | .service-box .text p { | |
+ | font-size: 20px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 500; | ||
+ | padding-top: 5px; | ||
+ | } | ||
+ | |||
+ | .service-box .icon-box { | ||
+ | position: absolute; | ||
+ | top: 0px; | ||
+ | left: -5px; | ||
+ | } | ||
+ | |||
+ | .service-box .content-list { | ||
+ | padding-left: 0; | ||
+ | } | ||
+ | |||
+ | .service-box .content-list li { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 500; | ||
+ | padding: 7px 0px; | ||
+ | list-style: none; | ||
+ | } | ||
+ | |||
+ | .service-box .content-list li i:before { | ||
+ | margin-right: 15px; | ||
+ | } | ||
+ | |||
+ | .service-section { | ||
+ | position: relative; | ||
+ | } | ||
+ | |||
+ | .service-section .section-title h3 { | ||
+ | position: relative; | ||
+ | padding-bottom: 15px; | ||
+ | } | ||
+ | |||
+ | .service-section .section-title p { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | color: #777777; | ||
+ | font-weight: 400; | ||
+ | } | ||
+ | |||
+ | .service-section .items-container { | ||
+ | margin-top: 30px; | ||
+ | } | ||
+ | |||
+ | .service-section .items-container .slick-prev:before, .service-section .items-container .slick-next:before { | ||
+ | font-size: 25px; | ||
+ | color: #886488; | ||
+ | } | ||
+ | |||
+ | .service-section .items-container .item { | ||
+ | margin: 10px 20px; | ||
+ | outline: 0; | ||
+ | } | ||
+ | |||
+ | .service-section .inner-box { | ||
+ | position: relative; | ||
+ | border-radius: 5px 5px 0px 0px; | ||
+ | box-shadow: 0 0 20px #f1f1f1; | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .service-section .inner-box .img_holder img { | ||
+ | width: 100%; | ||
+ | border-radius: 5px; | ||
+ | } | ||
+ | |||
+ | .service-section .inner-box .image-content { | ||
+ | padding: 38px 30px; | ||
+ | background: #fff; | ||
+ | } | ||
+ | |||
+ | .service-section .inner-box .image-content span { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | letter-spacing: .5px; | ||
+ | } | ||
+ | |||
+ | .service-section .inner-box .image-content h6 { | ||
+ | font-size: 18px; | ||
+ | line-height: 28px; | ||
+ | font-weight: 600; | ||
+ | color: #222222; | ||
+ | padding-top: 6px; | ||
+ | padding-bottom: 8px; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .service-section .inner-box .image-content p { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | padding-bottom: 15px; | ||
+ | } | ||
+ | |||
+ | .service-two .left-side { | ||
+ | padding: 140px 0px; | ||
+ | } | ||
+ | |||
+ | .service-two .left-side .section-title h3 { | ||
+ | position: relative; | ||
+ | padding-bottom: 15px; | ||
+ | margin-bottom: 22px; | ||
+ | } | ||
+ | |||
+ | .service-two .left-side .section-title h3:before { | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | background: #ececec; | ||
+ | bottom: 0px; | ||
+ | left: 0px; | ||
+ | height: 1px; | ||
+ | width: 240px; | ||
+ | } | ||
+ | |||
+ | .service-two .left-side .section-title h3:after { | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | background: #886488; | ||
+ | bottom: 0px; | ||
+ | left: 0px; | ||
+ | height: 1px; | ||
+ | width: 50px; | ||
+ | } | ||
+ | |||
+ | .service-two .left-side .section-title p { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | color: #777777; | ||
+ | font-weight: 400; | ||
+ | padding-bottom: 40px; | ||
+ | } | ||
+ | |||
+ | .service-two .social-links { | ||
+ | margin-bottom: 50px; | ||
+ | } | ||
+ | |||
+ | .service-two .social-links li { | ||
+ | position: relative; | ||
+ | display: inline-block; | ||
+ | width: 170px; | ||
+ | margin-right: 40px; | ||
+ | } | ||
+ | |||
+ | .service-two .social-links li .icon-box { | ||
+ | width: 95px; | ||
+ | height: 95px; | ||
+ | line-height: 95px; | ||
+ | border-radius: 50%; | ||
+ | text-align: center; | ||
+ | margin-bottom: 20px; | ||
+ | border: 1px solid #dfdfdf; | ||
+ | } | ||
+ | |||
+ | .service-two .social-links li .icon-box i:before { | ||
+ | font-size: 35px; | ||
+ | color: #222222; | ||
+ | } | ||
+ | |||
+ | .service-two .social-links li .border-shep { | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | top: 50px; | ||
+ | right: 0px; | ||
+ | background: #cdcdcd; | ||
+ | height: 1px; | ||
+ | width: 20px; | ||
+ | } | ||
+ | |||
+ | .service-two .social-links li h6 { | ||
+ | font-size: 16px; | ||
+ | line-height: 28px; | ||
+ | color: #222222; | ||
+ | font-weight: 400; | ||
+ | padding-bottom: 5px; | ||
+ | letter-spacing: .5px; | ||
+ | } | ||
+ | |||
+ | .service-two .link-buttons li { | ||
+ | display: inline-block; | ||
+ | color: #777777; | ||
+ | font-size: 18px; | ||
+ | font-weight: 400; | ||
+ | } | ||
+ | |||
+ | .service-two .link-buttons li.link-btn a { | ||
+ | font-size: 14px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 600; | ||
+ | text-transform: uppercase; | ||
+ | color: #ffffff; | ||
+ | height: 45px; | ||
+ | padding: 0px 35px; | ||
+ | line-height: 45px; | ||
+ | } | ||
+ | |||
+ | .service-two .link-buttons li.link-btn.style-one { | ||
+ | background: #886488; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .service-two .link-buttons li.link-btn.style-one:hover { | ||
+ | background: #7b64cb; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .service-two .link-buttons li.or-background { | ||
+ | margin: 0px 20px; | ||
+ | } | ||
+ | |||
+ | .service-two .link-buttons li.link-btn.style-two { | ||
+ | background: #7b64cb; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .service-two .link-buttons li.link-btn.style-two:hover { | ||
+ | background: #886488; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .service-two .image-box img { | ||
+ | width: 100%; | ||
+ | margin-top: 28px; | ||
+ | } | ||
+ | |||
+ | .service-details { | ||
+ | padding: 120px 0px; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side { | ||
+ | margin-right: 40px; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .image-holder .image-box { | ||
+ | margin-bottom: 40px; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .image-holder img { | ||
+ | width: 100%; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .text-title h6 { | ||
+ | font-size: 20px; | ||
+ | line-height: 30px; | ||
+ | font-weight: 600; | ||
+ | color: #222222; | ||
+ | padding: 10px 0px; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .links-btn a { | ||
+ | font-size: 14px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 700; | ||
+ | color: #222222; | ||
+ | padding: 11px 32px; | ||
+ | display: inline-block; | ||
+ | border-radius: 5px; | ||
+ | margin-left: 10px; | ||
+ | border: 1px solid #ececec; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .links-btn a i { | ||
+ | font-size: 14px; | ||
+ | margin-right: 10px; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .text p { | ||
+ | font-size: 15px; | ||
+ | line-height: 30px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | padding-top: 30px; | ||
+ | letter-spacing: 0.3px; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .image-text { | ||
+ | margin-top: 40px; | ||
+ | margin-bottom: 10px; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .image-text h6 { | ||
+ | position: relative; | ||
+ | font-size: 22px; | ||
+ | font-weight: 700; | ||
+ | color: #222222; | ||
+ | line-height: 30px; | ||
+ | padding-bottom: 15px; | ||
+ | margin-bottom: 15px; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .image-text h6:before { | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | background: #e0e0e0; | ||
+ | bottom: 0px; | ||
+ | left: 0; | ||
+ | height: 1px; | ||
+ | width: 50px; | ||
+ | } | ||
+ | |||
+ | .service-details .left-side .image-text p { | ||
+ | font-size: 15px; | ||
+ | line-height: 30px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | margin-bottom: 0px; | ||
+ | } | ||
+ | |||
+ | .accordion-box { | ||
+ | margin-top: 40px; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion { | ||
+ | position: relative; | ||
+ | margin-bottom: 20px; | ||
+ | box-shadow: 0 0 20px #f1f1f1; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion .accord-btn { | ||
+ | position: relative; | ||
+ | cursor: pointer; | ||
+ | padding: 20px; | ||
+ | background: #fafafa; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion .accord-btn h6 { | ||
+ | font-size: 15px; | ||
+ | font-weight: 400; | ||
+ | color: #222222; | ||
+ | line-height: 26px; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion .accord-btn::after { | ||
+ | position: absolute; | ||
+ | color: #777777; | ||
+ | content: "\f107"; | ||
+ | font-size: 17px; | ||
+ | font-weight: 400; | ||
+ | line-height: 24px; | ||
+ | top: 20px; | ||
+ | right: 20px; | ||
+ | width: 26px; | ||
+ | text-align: center; | ||
+ | height: 26px; | ||
+ | border-radius: 25px; | ||
+ | font-family: 'FontAwesome'; | ||
+ | transition: all 500ms ease 0s; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion .accord-btn.active { | ||
+ | background: #f4f4f4; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion .accord-btn.active h6 { | ||
+ | font-weight: 700; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion .accord-btn.active:after { | ||
+ | content: "\f106"; | ||
+ | color: #012f5d; | ||
+ | transition: all 500ms ease 0s; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion .accord-content { | ||
+ | position: relative; | ||
+ | display: none; | ||
+ | padding-left: 20px; | ||
+ | padding-right: 50px; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion .accord-content.collapsed { | ||
+ | display: block; | ||
+ | } | ||
+ | |||
+ | .accordion-box .accordion .accord-content p { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | padding: 20px 0px; | ||
+ | } | ||
+ | |||
+ | .service-details .right-side { | ||
+ | margin-left: -30px; | ||
+ | } | ||
+ | |||
+ | .service-details .right-side .categori-list { | ||
+ | margin-top: 25px; | ||
+ | } | ||
+ | |||
+ | .service-details .right-side .categori-list li { | ||
+ | transition: all 500ms ease 0s; | ||
+ | } | ||
+ | |||
+ | .service-details .right-side .categori-list li:hover { | ||
+ | transition: all 500ms ease 0s; | ||
+ | background: linear-gradient(to right, rgba(122, 102, 203, 0.8) 0%, rgba(72, 189, 197, 0.74) 100%); | ||
+ | } | ||
+ | |||
+ | .service-details .right-side .categori-list li a { | ||
+ | font-size: 17px; | ||
+ | line-height: 28px; | ||
+ | font-weight: 400; | ||
+ | color: #222222; | ||
+ | display: inline-block; | ||
+ | padding: 20px 30px; | ||
+ | width: 100%; | ||
+ | border: 1px solid #ececec; | ||
+ | } | ||
+ | |||
+ | .service-details .right-side .categori-list li i:before { | ||
+ | margin-top: 8px; | ||
+ | margin-right: 10px; | ||
+ | color: #334d5e; | ||
+ | } | ||
+ | |||
+ | .service-details .right-side .categori-list li:hover a, .service-details .right-side .categori-list li:hover i:before { | ||
+ | color: #ffffff; | ||
+ | transition: all 500ms ease 0s; | ||
+ | } | ||
+ | |||
+ | .service-details .service-testimonials { | ||
+ | margin-top: 65px; | ||
+ | margin-bottom: 60px; | ||
+ | } | ||
+ | |||
+ | .service-details .service-testimonials .text-title h6 { | ||
+ | margin-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .service-details .service-testimonials .item { | ||
+ | padding: 40px 17px; | ||
+ | border: 2px solid #e5e5e5; | ||
+ | } | ||
+ | |||
+ | .service-details .service-testimonials .text p { | ||
+ | font-size: 15px; | ||
+ | font-weight: 400; | ||
+ | line-height: 26px; | ||
+ | color: #777777; | ||
+ | padding-top: 15px; | ||
+ | } | ||
+ | |||
+ | .service-details .service-testimonials strong { | ||
+ | font-size: 14px; | ||
+ | line-height: 26px; | ||
+ | color: #222222; | ||
+ | font-weight: 700; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .service-details .service-testimonials .image img { | ||
+ | display: inline-block; | ||
+ | } | ||
+ | |||
+ | .service-details .service-testimonials .owl-theme .owl-controls { | ||
+ | display: none; | ||
+ | } | ||
+ | |||
+ | .service-details .contact-links { | ||
+ | padding: 50px 30px; | ||
+ | border: 2px solid #e5e5e5; | ||
+ | } | ||
+ | |||
+ | .service-details .contact-links .text-title h6 { | ||
+ | margin-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .service-details .contact-text .item { | ||
+ | position: relative; | ||
+ | padding-left: 65px; | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .service-details .contact-text .item:last-child { | ||
+ | margin-bottom: 0px; | ||
+ | } | ||
+ | |||
+ | .service-details .contact-text .item .icon-box { | ||
+ | position: absolute; | ||
+ | top: 0px; | ||
+ | left: 0px; | ||
+ | width: 50px; | ||
+ | height: 50px; | ||
+ | line-height: 50px; | ||
+ | text-align: center; | ||
+ | background: #f2f2f2; | ||
+ | } | ||
+ | |||
+ | .service-details .contact-text .item i:before { | ||
+ | font-size: 20px; | ||
+ | color: #53c0c8; | ||
+ | } | ||
+ | |||
+ | .service-details .contact-text .item p { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | margin-bottom: 0px; | ||
+ | } | ||
+ | |||
+ | .service-overview .content-block { | ||
+ | margin-bottom: 100px; | ||
+ | } | ||
+ | |||
+ | .service-overview .content-block h2 { | ||
+ | font-size: 40px; | ||
+ | color: #000; | ||
+ | text-transform: uppercase; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | font-weight: bold; | ||
+ | margin-bottom: 40px; | ||
+ | position: relative; | ||
+ | } | ||
+ | |||
+ | .service-overview .content-block h2:before { | ||
+ | position: absolute; | ||
+ | width: 50px; | ||
+ | height: 1px; | ||
+ | content: ''; | ||
+ | bottom: -10px; | ||
+ | background: #886488; | ||
+ | } | ||
+ | |||
+ | .service-overview .content-block p { | ||
+ | font-size: 16px; | ||
+ | line-height: 22px; | ||
+ | margin-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .service-overview .content-block ul { | ||
+ | padding-left: 0; | ||
+ | padding-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .service-overview .content-block ul li { | ||
+ | text-transform: capitalize; | ||
+ | font-weight: bold; | ||
+ | font-size: 16px; | ||
+ | } | ||
+ | |||
+ | .service-overview .content-block ul li i { | ||
+ | margin-right: 10px; | ||
+ | } | ||
+ | |||
+ | .service-overview .accordion-holder { | ||
+ | margin-top: 0; | ||
+ | } | ||
+ | |||
+ | .team-section { | ||
+ | position: relative; | ||
+ | background: #ffffff; | ||
+ | z-index: 1; | ||
+ | } | ||
+ | |||
+ | .team-section .section-title h3 { | ||
+ | position: relative; | ||
+ | padding-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .team-section .section-title p { | ||
+ | font-size: 20px; | ||
+ | line-height: 26px; | ||
+ | color: #777777; | ||
+ | font-weight: 400; | ||
+ | padding-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .team-section .team-member { | ||
+ | margin-top: 20px; | ||
+ | border-radius: 10px; | ||
+ | overflow: hidden; | ||
+ | box-shadow: 0px 0px 20px -5px rgba(0, 0, 0, 0.2); | ||
+ | } | ||
+ | |||
+ | .team-section .team-member img { | ||
+ | width: 100%; | ||
+ | } | ||
+ | |||
+ | .team-section .team-member .contents { | ||
+ | background: #fff; | ||
+ | padding: 20px 10px; | ||
+ | } | ||
+ | |||
+ | .team-section .team-member .contents h4 { | ||
+ | text-transform: uppercase; | ||
+ | letter-spacing: 1px; | ||
+ | margin-bottom: 20px; | ||
+ | color: #000; | ||
+ | position: relative; | ||
+ | } | ||
+ | |||
+ | .team-section .team-member .contents h4:before { | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | width: 30px; | ||
+ | height: 1px; | ||
+ | background: #777777; | ||
+ | bottom: -8px; | ||
+ | left: 50%; | ||
+ | -webkit-transform: translateX(-50%); | ||
+ | transform: translateX(-50%); | ||
+ | } | ||
+ | |||
+ | .team-section .team-member .contents .btn-main { | ||
+ | margin-top: 30px; | ||
+ | background: #fff; | ||
+ | text-transform: uppercase; | ||
+ | color: #886488; | ||
+ | padding: 10px 25px; | ||
+ | border: 1px solid #886488; | ||
+ | transition: all .2s ease-in; | ||
+ | } | ||
+ | |||
+ | .team-section .team-member .contents .btn-main:hover { | ||
+ | background: #886488; | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .team-members .team-person { | ||
+ | margin-top: 30px; | ||
+ | } | ||
+ | |||
+ | .team-members .team-person img { | ||
+ | border-radius: 5px; | ||
+ | width: 100%; | ||
+ | } | ||
+ | |||
+ | .team-members .team-person h6 { | ||
+ | margin-top: 20px; | ||
+ | font-size: 20px; | ||
+ | text-transform: uppercase; | ||
+ | color: #000; | ||
+ | } | ||
+ | |||
+ | .team-members .team-person p { | ||
+ | font-weight: bold; | ||
+ | letter-spacing: 1px; | ||
+ | |||
+ | font-size: 14px; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | } | ||
+ | |||
+ | .testimonial-section { | ||
+ | position: relative; | ||
+ | background-size: cover !important; | ||
+ | padding: 110px 0px; | ||
+ | background-repeat: no-repeat !important; | ||
+ | } | ||
+ | |||
+ | .testimonial-section:before { | ||
+ | position: absolute; | ||
+ | top: 0px; | ||
+ | left: 0px; | ||
+ | content: ''; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | background: rgba(173, 123, 173,0.7) | ||
+ | } | ||
+ | |||
+ | .testimonial-section .section-title h3 { | ||
+ | position: relative; | ||
+ | padding-bottom: 30px; | ||
+ | color: #ffffff; | ||
+ | } | ||
+ | |||
+ | .testimonial-section .section-title h3 span { | ||
+ | color: #ffffff; | ||
+ | } | ||
+ | |||
+ | .testimonial-section .testimonial-carousel .slide-item { | ||
+ | outline: 0; | ||
+ | } | ||
+ | |||
+ | .testimonial-section .testimonial-carousel .slick-dots li button:before { | ||
+ | font-size: 15px; | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .testimonial-section .inner-box { | ||
+ | position: relative; | ||
+ | padding: 60px 30px; | ||
+ | background: #fff; | ||
+ | margin-top: 50px; | ||
+ | margin-bottom: 20px; | ||
+ | margin-left: 20px; | ||
+ | margin-right: 20px; | ||
+ | border-radius: 10px; | ||
+ | box-shadow: 0px 0px 10px -2px rgba(0, 0, 0, 0.2); | ||
+ | } | ||
+ | |||
+ | .testimonial-section .inner-box h6 { | ||
+ | position: relative; | ||
+ | font-size: 18px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 600; | ||
+ | color: #000; | ||
+ | padding-bottom: 15px; | ||
+ | text-transform: uppercase; | ||
+ | font-weight: normal; | ||
+ | } | ||
+ | |||
+ | .testimonial-section .inner-box p { | ||
+ | font-size: 15px; | ||
+ | line-height: 24px; | ||
+ | font-weight: 400; | ||
+ | color: #1a1a1a; | ||
+ | } | ||
+ | |||
+ | .testimonial-section .inner-box .image-box { | ||
+ | position: absolute; | ||
+ | top: -45px; | ||
+ | left: 50%; | ||
+ | -webkit-transform: translateX(-50%); | ||
+ | transform: translateX(-50%); | ||
+ | border-radius: 50%; | ||
+ | border: 5px solid #fff; | ||
+ | } | ||
+ | |||
+ | .testimonial-section .inner-box .image-box img { | ||
+ | width: 90px; | ||
+ | height: 90px; | ||
+ | border-radius: 50%; | ||
+ | } | ||
+ | |||
+ | .blog-section .section-title h3 { | ||
+ | position: relative; | ||
+ | font-size: 36px; | ||
+ | } | ||
+ | |||
+ | .blog-section .blog-side { | ||
+ | margin-right: -30px; | ||
+ | } | ||
+ | |||
+ | .blog-section .item-holder { | ||
+ | position: relative; | ||
+ | margin-top: 60px; | ||
+ | } | ||
+ | |||
+ | .blog-section .image-box { | ||
+ | position: relative; | ||
+ | display: table-cell; | ||
+ | } | ||
+ | |||
+ | .blog-section .content-text { | ||
+ | position: relative; | ||
+ | display: table-cell; | ||
+ | vertical-align: middle; | ||
+ | padding-left: 30px; | ||
+ | } | ||
+ | |||
+ | .blog-section .content-text h6 { | ||
+ | font-size: 18px; | ||
+ | font-weight: 700; | ||
+ | color: #222222; | ||
+ | padding-bottom: 4px; | ||
+ | letter-spacing: .4px; | ||
+ | margin-top: -5px; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .blog-section .content-text span { | ||
+ | font-size: 13px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | line-height: 24px; | ||
+ | } | ||
+ | |||
+ | .blog-section .content-text p { | ||
+ | font-size: 15px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | line-height: 24px; | ||
+ | padding: 10px 0px 15px 0px; | ||
+ | letter-spacing: .4px; | ||
+ | } | ||
+ | |||
+ | .contact-area { | ||
+ | padding-left: 70px; | ||
+ | } | ||
+ | |||
+ | .contact-area form { | ||
+ | margin-top: 60px; | ||
+ | } | ||
+ | |||
+ | .contact-area .form-group { | ||
+ | position: relative; | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .contact-area input, .contact-area textarea { | ||
+ | position: relative; | ||
+ | width: 100%; | ||
+ | height: 50px; | ||
+ | color: #777777; | ||
+ | padding: 10px 25px; | ||
+ | background: #f4f4f4; | ||
+ | display: block; | ||
+ | border: 1px solid #ececec; | ||
+ | } | ||
+ | |||
+ | .contact-area .form-group select { | ||
+ | -webkit-appearance: none; | ||
+ | -ms-appearance: none; | ||
+ | -moz-appearance: none; | ||
+ | -o-appearance: none; | ||
+ | height: 50px; | ||
+ | width: 100%; | ||
+ | padding: 10px 20px; | ||
+ | border: 1px solid #ececec; | ||
+ | background: #f4f4f4 url(../images/icons/icon-select.png) right center no-repeat; | ||
+ | cursor: pointer; | ||
+ | } | ||
+ | |||
+ | .contact-area .form-group option { | ||
+ | font-weight: normal; | ||
+ | display: block; | ||
+ | white-space: pre; | ||
+ | height: 50px; | ||
+ | padding: 20px; | ||
+ | } | ||
+ | |||
+ | .contact-area .form-group option:hover { | ||
+ | background: #7b64cb; | ||
+ | } | ||
+ | |||
+ | .contact-area textarea { | ||
+ | height: 190px; | ||
+ | resize: none; | ||
+ | } | ||
+ | |||
+ | .contact-area button { | ||
+ | width: 100%; | ||
+ | height: 50px; | ||
+ | } | ||
+ | |||
+ | .contact-area .form-group i { | ||
+ | position: absolute; | ||
+ | top: 16px; | ||
+ | right: 20px; | ||
+ | font-size: 15px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .section-title h3 { | ||
+ | position: relative; | ||
+ | padding-bottom: 15px; | ||
+ | margin-bottom: 22px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .section-title h3:before { | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | background: #ececec; | ||
+ | bottom: 0px; | ||
+ | left: 50%; | ||
+ | margin-left: -115px; | ||
+ | height: 1px; | ||
+ | width: 230px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .section-title h3:after { | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | background: #886488; | ||
+ | bottom: 0px; | ||
+ | left: 50%; | ||
+ | margin-left: -25px; | ||
+ | height: 1px; | ||
+ | width: 50px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .section-title p { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | color: #777777; | ||
+ | font-weight: 400; | ||
+ | padding-bottom: 40px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .item-holder { | ||
+ | margin-top: 0px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .content-text { | ||
+ | padding: 55px 37px; | ||
+ | border: 1px solid #ececec; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .owl-theme .owl-controls .owl-nav { | ||
+ | display: none; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .owl-theme .owl-controls .owl-dots { | ||
+ | margin-top: 40px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .owl-theme .owl-controls .owl-dots span { | ||
+ | height: 6px; | ||
+ | width: 12px; | ||
+ | background: #e2e2e2; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-two .owl-theme .owl-controls .owl-dot.active span { | ||
+ | height: 6px; | ||
+ | width: 30px; | ||
+ | background: #e2e2e2; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-four .content-text h5 { | ||
+ | font-size: 20px; | ||
+ | font-weight: 700; | ||
+ | color: #222222; | ||
+ | line-height: 26px; | ||
+ | padding-bottom: 4px; | ||
+ | letter-spacing: .4px; | ||
+ | margin-top: -5px; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-four .left-side { | ||
+ | margin-right: 45px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-four .item-holder { | ||
+ | margin-top: 50px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-four .item-holder:first-child { | ||
+ | margin-top: 0px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-four .image-box { | ||
+ | display: block; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-four .image-box img { | ||
+ | border-radius: 10px; | ||
+ | width: 100%; | ||
+ | box-shadow: 0px 0px 20px -5px rgba(0, 0, 0, 0.2); | ||
+ | } | ||
+ | |||
+ | .blog-section.style-four .content-text { | ||
+ | display: block; | ||
+ | padding-top: 40px; | ||
+ | padding-left: 10px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-four .right-side { | ||
+ | margin-left: -15px; | ||
+ | margin-top: 10px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-four .link-btn a { | ||
+ | border-radius: 4px; | ||
+ | } | ||
+ | |||
+ | .right-side .search-box { | ||
+ | position: relative; | ||
+ | margin-bottom: 40px; | ||
+ | } | ||
+ | |||
+ | .right-side .text-title h6 { | ||
+ | position: relative; | ||
+ | font-size: 20px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 600; | ||
+ | color: #222222; | ||
+ | padding-bottom: 10px; | ||
+ | margin-bottom: 20px; | ||
+ | text-transform: capitalize; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | } | ||
+ | |||
+ | .right-side .text-title h6:before { | ||
+ | position: absolute; | ||
+ | bottom: 0px; | ||
+ | left: 0px; | ||
+ | content: ''; | ||
+ | height: 1px; | ||
+ | width: 40px; | ||
+ | background: #886488; | ||
+ | } | ||
+ | |||
+ | .right-side .search-box input { | ||
+ | height: 50px; | ||
+ | width: 100%; | ||
+ | padding: 10px 20px; | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | color: #777777; | ||
+ | font-weight: 400; | ||
+ | background: #ffffff; | ||
+ | border: 1px solid #ececec; | ||
+ | } | ||
+ | |||
+ | .right-side .search-box button { | ||
+ | position: absolute; | ||
+ | top: 12px; | ||
+ | right: 20px; | ||
+ | background: #ffffff; | ||
+ | } | ||
+ | |||
+ | .right-side .search-box i:before { | ||
+ | font-size: 20px; | ||
+ | } | ||
+ | |||
+ | .right-side .categorise-menu { | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .right-side .categorise-list { | ||
+ | padding-left: 0; | ||
+ | } | ||
+ | |||
+ | .right-side .categorise-list li { | ||
+ | padding: 15px 0px; | ||
+ | border-bottom: 1px solid #e0e0e0; | ||
+ | } | ||
+ | |||
+ | .right-side .categorise-list li:last-child { | ||
+ | border-bottom: none; | ||
+ | } | ||
+ | |||
+ | .right-side .categorise-list li:first-child { | ||
+ | padding-top: 10px; | ||
+ | } | ||
+ | |||
+ | .right-side .categorise-list li a { | ||
+ | text-transform: capitalize; | ||
+ | font-size: 15px; | ||
+ | font-weight: 400; | ||
+ | color: #000; | ||
+ | } | ||
+ | |||
+ | .right-side .categorise-list li a:hover { | ||
+ | color: #886488; | ||
+ | } | ||
+ | |||
+ | .right-side .categorise-list li span { | ||
+ | float: right; | ||
+ | } | ||
+ | |||
+ | .right-side .tag-list { | ||
+ | position: relative; | ||
+ | margin-right: -6px; | ||
+ | } | ||
+ | |||
+ | .right-side .tag-list a { | ||
+ | border-radius: 4px; | ||
+ | font-size: 14px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | padding: 6px 26px; | ||
+ | margin-right: 5px; | ||
+ | margin-bottom: 10px; | ||
+ | display: inline-block; | ||
+ | border: 1px solid #886488; | ||
+ | transition: all 0.5s ease; | ||
+ | } | ||
+ | |||
+ | .right-side .tag-list a:hover { | ||
+ | background: #886488; | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .content-text .social-link { | ||
+ | margin-top: 20px; | ||
+ | margin-bottom: 50px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .content-text .social-link li { | ||
+ | position: relative; | ||
+ | display: inline-block; | ||
+ | width: 29px; | ||
+ | height: 29px; | ||
+ | line-height: 26px; | ||
+ | border-radius: 50%; | ||
+ | margin: 5px; | ||
+ | border: 2px solid #888888; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .content-text .social-link li i { | ||
+ | font-size: 14px; | ||
+ | color: #969696; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .comments-area { | ||
+ | margin-top: 50px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .comment { | ||
+ | position: relative; | ||
+ | margin-bottom: 40px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .comment.reply-comment { | ||
+ | position: relative; | ||
+ | padding-left: 150px; | ||
+ | padding-top: 40px; | ||
+ | padding-bottom: 40px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .image-holder { | ||
+ | display: table-cell; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .image-holder img { | ||
+ | border-radius: 50%; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .image-text { | ||
+ | display: table-cell; | ||
+ | padding-left: 20px; | ||
+ | vertical-align: middle; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .content-text p { | ||
+ | font-size: 15px; | ||
+ | line-height: 28px; | ||
+ | font-weight: 400; | ||
+ | padding-top: 20px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .content-text .text { | ||
+ | margin-top: 10px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .content-text .image-side { | ||
+ | margin-right: 40px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .content-text .image-side img { | ||
+ | width: 100%; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .item-title h6 { | ||
+ | font-size: 18px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 700; | ||
+ | color: #222222; | ||
+ | padding-bottom: 20px; | ||
+ | text-transform: capitalize; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .text-image { | ||
+ | margin-left: -15px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .text-image p { | ||
+ | font-size: 15px; | ||
+ | line-height: 28px; | ||
+ | font-weight: 400; | ||
+ | padding-top: 0px; | ||
+ | margin-top: -5px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .image-text h6 { | ||
+ | font-size: 14px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 700; | ||
+ | color: #222222; | ||
+ | padding-bottom: 20px; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .image-text h6 span { | ||
+ | position: relative; | ||
+ | font-size: 14px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | margin-left: 10px; | ||
+ | padding-left: 10px; | ||
+ | text-transform: capitalize; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .image-text h6 span:before { | ||
+ | position: absolute; | ||
+ | top: 4px; | ||
+ | left: 0px; | ||
+ | content: ''; | ||
+ | height: 15px; | ||
+ | width: 1px; | ||
+ | background: #c1c1c1; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .comment h5 { | ||
+ | position: absolute; | ||
+ | font-size: 14px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #222222; | ||
+ | right: 0px; | ||
+ | top: 0px; | ||
+ | text-transform: capitalize; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .comment h5 i { | ||
+ | color: #886488; | ||
+ | margin-right: 10px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .comment p { | ||
+ | font-size: 14px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .form-group { | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .sec-title h6 { | ||
+ | position: relative; | ||
+ | font-size: 20px; | ||
+ | line-height: 30px; | ||
+ | font-weight: 700; | ||
+ | color: #222222; | ||
+ | padding-bottom: 20px; | ||
+ | margin-bottom: 40px; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .sec-title h6:before { | ||
+ | position: absolute; | ||
+ | bottom: 0px; | ||
+ | left: 0px; | ||
+ | content: ''; | ||
+ | height: 2px; | ||
+ | width: 35px; | ||
+ | background: #886488; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .form-group input { | ||
+ | height: 50px; | ||
+ | font-size: 15px; | ||
+ | font-weight: 400; | ||
+ | line-height: 26px; | ||
+ | border-radius: 0px; | ||
+ | box-shadow: none; | ||
+ | padding: 10px 20px; | ||
+ | display: inline-block; | ||
+ | border: 1px solid #ececec; | ||
+ | } | ||
+ | |||
+ | .blog-section.style-five .form-group textarea { | ||
+ | height: 160px; | ||
+ | border-radius: 0px; | ||
+ | box-shadow: none; | ||
+ | padding: 10px 20px; | ||
+ | resize: none; | ||
+ | border: 1px solid #ececec; | ||
+ | } | ||
+ | |||
+ | .appointment-image-holder { | ||
+ | padding: 20px; | ||
+ | } | ||
+ | |||
+ | .appointment-image-holder img { | ||
+ | border-radius: 14px; | ||
+ | margin-top: -10px; | ||
+ | } | ||
+ | |||
+ | .sponsors-logos { | ||
+ | padding: 52px 0px; | ||
+ | background: #f8f8fa; | ||
+ | } | ||
+ | |||
+ | .sponsors-logos .owl-theme .owl-controls { | ||
+ | display: none; | ||
+ | } | ||
+ | |||
+ | .sponsors-logos img { | ||
+ | padding: 15px 50px; | ||
+ | width: 100%; | ||
+ | } | ||
+ | |||
+ | .about-section { | ||
+ | padding: 100px 0px; | ||
+ | } | ||
+ | |||
+ | .about-section .section-title h3 { | ||
+ | position: relative; | ||
+ | padding-bottom: 15px; | ||
+ | margin-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .about-section .section-title h3:before { | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | background: #ececec; | ||
+ | bottom: 0px; | ||
+ | left: 50%; | ||
+ | margin-left: -120px; | ||
+ | height: 1px; | ||
+ | width: 240px; | ||
+ | } | ||
+ | |||
+ | .about-section .section-title h3:after { | ||
+ | position: absolute; | ||
+ | content: ''; | ||
+ | background: #886488; | ||
+ | bottom: 0px; | ||
+ | left: 50%; | ||
+ | margin-left: -25px; | ||
+ | height: 1px; | ||
+ | width: 50px; | ||
+ | } | ||
+ | |||
+ | .about-section .section-title p { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | color: #777777; | ||
+ | font-weight: 400; | ||
+ | padding-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder { | ||
+ | position: relative; | ||
+ | padding: 55px; | ||
+ | margin-bottom: 28px; | ||
+ | z-index: 1; | ||
+ | cursor: pointer; | ||
+ | background-size: cover !important; | ||
+ | background-repeat: no-repeat !important; | ||
+ | transition: all 1500ms ease; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder:before { | ||
+ | position: absolute; | ||
+ | top: 0px; | ||
+ | left: 0px; | ||
+ | content: ''; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | background: #fafafa; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder:hover:before { | ||
+ | display: none; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder:hover:after { | ||
+ | position: absolute; | ||
+ | top: 0px; | ||
+ | left: 0px; | ||
+ | content: ''; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | z-index: -1; | ||
+ | transition: all 1500ms ease; | ||
+ | background: linear-gradient(to right, rgba(122, 102, 203, 0.8) 0%, rgba(72, 189, 197, 0.74) 100%); | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder .icon-box { | ||
+ | position: relative; | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder i:before { | ||
+ | font-size: 55px; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder:hover i:before { | ||
+ | color: #ffffff; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder h6 { | ||
+ | position: relative; | ||
+ | font-size: 18px; | ||
+ | font-weight: 600; | ||
+ | line-height: 26px; | ||
+ | color: #222222; | ||
+ | padding-bottom: 10px; | ||
+ | margin-bottom: 10px; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder:hover h6 { | ||
+ | color: #ffffff; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder h6:before { | ||
+ | position: absolute; | ||
+ | bottom: 0px; | ||
+ | left: 50%; | ||
+ | content: ''; | ||
+ | margin-left: -25px; | ||
+ | background: #d1d1d1; | ||
+ | height: 1px; | ||
+ | width: 55px; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder:hover h6:before { | ||
+ | background: #ffffff; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder p { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #777777; | ||
+ | margin-bottom: 0px; | ||
+ | } | ||
+ | |||
+ | .about-section .item-holder:hover p { | ||
+ | color: #ffffff; | ||
+ | } | ||
+ | |||
+ | .story { | ||
+ | padding: 100px 0; | ||
+ | } | ||
+ | |||
+ | .story img { | ||
+ | border-radius: 14px; | ||
+ | width: 100%; | ||
+ | box-shadow: 0px 0px 20px -5px rgba(0, 0, 0, 0.2); | ||
+ | } | ||
+ | |||
+ | @media (max-width: 991px) { | ||
+ | .story .story-content { | ||
+ | margin-top: 50px; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .story .story-content h2 { | ||
+ | text-transform: uppercase; | ||
+ | color: #000; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | font-weight: bold; | ||
+ | margin-bottom: 30px; | ||
+ | font-size: 40px; | ||
+ | text-transform: capitalize; | ||
+ | } | ||
+ | |||
+ | .story .story-content .tagline { | ||
+ | color: #886488; | ||
+ | font-size: 20px; | ||
+ | font-weight: normal; | ||
+ | font-style: italic; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .story .story-content p { | ||
+ | font-size: 16px; | ||
+ | line-height: 19px; | ||
+ | } | ||
+ | |||
+ | .story .story-content h6 { | ||
+ | margin-top: 30px; | ||
+ | color: #333333; | ||
+ | font-size: 20px; | ||
+ | margin-bottom: 10px; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | font-weight: bold; | ||
+ | } | ||
+ | |||
+ | .promo-video { | ||
+ | position: relative; | ||
+ | padding: 150px 0; | ||
+ | background: url("../images/background/promo-video.jpg"); | ||
+ | background-size: cover; | ||
+ | background-position: center center; | ||
+ | } | ||
+ | |||
+ | .promo-video:before { | ||
+ | position: absolute; | ||
+ | top: 0; | ||
+ | content: ''; | ||
+ | height: 100%; | ||
+ | width: 100%; | ||
+ | background: rgba(12, 120, 163, 0.8); | ||
+ | } | ||
+ | |||
+ | .promo-video .block { | ||
+ | position: relative; | ||
+ | z-index: 10; | ||
+ | } | ||
+ | |||
+ | .promo-video h6, .promo-video h1, .promo-video i { | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .promo-video h6 { | ||
+ | font-size: 16px; | ||
+ | text-transform: uppercase; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | letter-spacing: 2px; | ||
+ | } | ||
+ | |||
+ | .promo-video h1 { | ||
+ | font-size: 60px; | ||
+ | text-transform: uppercase; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | font-weight: bold; | ||
+ | margin-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .promo-video a { | ||
+ | display: block; | ||
+ | height: 80px; | ||
+ | width: 80px; | ||
+ | margin: 0 auto; | ||
+ | border: 5px solid #fff; | ||
+ | transition: all .3s ease; | ||
+ | border-radius: 100%; | ||
+ | } | ||
+ | |||
+ | .promo-video a i { | ||
+ | line-height: 70px; | ||
+ | font-size: 20px; | ||
+ | } | ||
+ | |||
+ | .promo-video a:hover { | ||
+ | -webkit-transform: scale(1.1); | ||
+ | transform: scale(1.1); | ||
+ | } | ||
+ | |||
+ | .gallery { | ||
+ | padding: 100px 0; | ||
+ | } | ||
+ | |||
+ | .gallery .gallery-item { | ||
+ | margin-top: 30px; | ||
+ | border-radius: 6px; | ||
+ | overflow: hidden; | ||
+ | position: relative; | ||
+ | box-shadow: 0px 0px 20px -5px rgba(0, 0, 0, 0.2); | ||
+ | } | ||
+ | |||
+ | .gallery .gallery-item img { | ||
+ | width: 100%; | ||
+ | } | ||
+ | |||
+ | .gallery .gallery-item:before { | ||
+ | content: ''; | ||
+ | position: absolute; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.5)); | ||
+ | top: 0; | ||
+ | opacity: 0; | ||
+ | transition: all .3s ease; | ||
+ | } | ||
+ | |||
+ | .gallery .gallery-item a { | ||
+ | position: absolute; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | top: 0; | ||
+ | left: 0; | ||
+ | } | ||
+ | |||
+ | .gallery .gallery-item h3 { | ||
+ | position: absolute; | ||
+ | z-index: 5; | ||
+ | bottom: 70px; | ||
+ | color: #fff; | ||
+ | text-transform: uppercase; | ||
+ | font-weight: bold; | ||
+ | opacity: 0; | ||
+ | transition: all .3s ease; | ||
+ | padding: 30px; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | -webkit-transform: translateY(20px); | ||
+ | transform: translateY(20px); | ||
+ | } | ||
+ | |||
+ | .gallery .gallery-item p { | ||
+ | position: absolute; | ||
+ | z-index: 5; | ||
+ | bottom: 20px; | ||
+ | color: #fff; | ||
+ | font-weight: normal; | ||
+ | opacity: 0; | ||
+ | transition: all .3s ease; | ||
+ | padding: 30px; | ||
+ | font-size: 14px; | ||
+ | line-height: 16px; | ||
+ | -webkit-transform: translateY(20px); | ||
+ | transform: translateY(20px); | ||
+ | } | ||
+ | |||
+ | .gallery .gallery-item:hover:before { | ||
+ | opacity: 1; | ||
+ | } | ||
+ | |||
+ | .gallery .gallery-item:hover h3, .gallery .gallery-item:hover p { | ||
+ | opacity: 1; | ||
+ | -webkit-transform: translateY(0); | ||
+ | transform: translateY(0); | ||
+ | } | ||
+ | |||
+ | .video-gallery { | ||
+ | padding: 100px 0; | ||
+ | } | ||
+ | |||
+ | .video-gallery .video-gallery-item { | ||
+ | margin-top: 50px; | ||
+ | } | ||
+ | |||
+ | .video-gallery .video-gallery-item .image-holder { | ||
+ | position: relative; | ||
+ | border-radius: 3px; | ||
+ | overflow: hidden; | ||
+ | box-shadow: 0px 0px 20px -5px rgba(0, 0, 0, 0.2); | ||
+ | } | ||
+ | |||
+ | .video-gallery .video-gallery-item .image-holder img { | ||
+ | width: 100%; | ||
+ | } | ||
+ | |||
+ | .video-gallery .video-gallery-item .image-holder:before { | ||
+ | content: ''; | ||
+ | position: absolute; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | background: rgba(19, 38, 70, 0.7); | ||
+ | top: 0; | ||
+ | } | ||
+ | |||
+ | .video-gallery .video-gallery-item .image-holder a { | ||
+ | position: absolute; | ||
+ | display: block; | ||
+ | width: 80px; | ||
+ | height: 80px; | ||
+ | top: 50%; | ||
+ | left: 50%; | ||
+ | -webkit-transform: translate3d(-50%, -50%, 0); | ||
+ | transform: translate3d(-50%, -50%, 0); | ||
+ | text-align: center; | ||
+ | z-index: 5; | ||
+ | border: 5px solid #fff; | ||
+ | border-radius: 50%; | ||
+ | transition: all .3s ease-in-out; | ||
+ | } | ||
+ | |||
+ | .video-gallery .video-gallery-item .image-holder a i { | ||
+ | font-size: 25px; | ||
+ | line-height: 70px; | ||
+ | color: #fff; | ||
+ | } | ||
+ | |||
+ | .video-gallery .video-gallery-item h3 { | ||
+ | text-align: center; | ||
+ | color: #886488; | ||
+ | margin-top: 15px; | ||
+ | text-transform: capitalize; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | font-size: 20px; | ||
+ | } | ||
+ | |||
+ | .work-skill { | ||
+ | position: relative; | ||
+ | z-index: 1; | ||
+ | background-size: cover !important; | ||
+ | background-repeat: no-repeat !important; | ||
+ | } | ||
+ | |||
+ | .work-skill:before { | ||
+ | position: absolute; | ||
+ | top: 0px; | ||
+ | left: 0px; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | content: ''; | ||
+ | z-index: -1; | ||
+ | background: linear-gradient(to right, rgba(122, 102, 203, 0.8) 0%, rgba(72, 189, 197, 0.74) 100%); | ||
+ | } | ||
+ | |||
+ | .work-skill .pie-value { | ||
+ | display: block; | ||
+ | position: absolute; | ||
+ | font-size: 24px; | ||
+ | height: 40px; | ||
+ | top: 50%; | ||
+ | margin-top: -26px; | ||
+ | margin-left: -25px; | ||
+ | left: 50%; | ||
+ | color: #ffffff; | ||
+ | font-weight: 600; | ||
+ | line-height: 40px; | ||
+ | } | ||
+ | |||
+ | .work-skill .knob { | ||
+ | position: relative; | ||
+ | text-align: center; | ||
+ | width: 270px; | ||
+ | } | ||
+ | |||
+ | .work-wkill .knob { | ||
+ | position: relative; | ||
+ | } | ||
+ | |||
+ | .work-skill .knob:before { | ||
+ | position: absolute; | ||
+ | top: 9px; | ||
+ | left: 59px; | ||
+ | right: 59px; | ||
+ | bottom: 18px; | ||
+ | content: ''; | ||
+ | border: 24px solid #ffffff; | ||
+ | border-radius: 50%; | ||
+ | } | ||
+ | |||
+ | .work-skill .skills { | ||
+ | padding: 105px 0px; | ||
+ | } | ||
+ | |||
+ | .work-skill .skills h6 { | ||
+ | color: #ffffff; | ||
+ | font-size: 20px; | ||
+ | font-weight: 700; | ||
+ | padding-top: 25px; | ||
+ | text-transform: capitalize; | ||
+ | } | ||
+ | |||
+ | .page-title { | ||
+ | position: relative; | ||
+ | padding: 80px 0; | ||
+ | background-size: cover; | ||
+ | background-position: center center; | ||
+ | background-repeat: no-repeat; | ||
+ | } | ||
+ | |||
+ | .page-title:before { | ||
+ | content: ''; | ||
+ | left: 0px; | ||
+ | top: 0px; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | position: absolute; | ||
+ | background: rgba(19, 38, 70, 0.6); | ||
+ | } | ||
+ | |||
+ | .page-title .title-text h1 { | ||
+ | position: relative; | ||
+ | font-size: 40px; | ||
+ | color: #ffffff; | ||
+ | line-height: 50px; | ||
+ | font-weight: 700; | ||
+ | text-transform: uppercase; | ||
+ | margin-bottom: 20px; | ||
+ | letter-spacing: 1px; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | } | ||
+ | |||
+ | .page-title .title-text .title-menu { | ||
+ | padding-left: 0; | ||
+ | } | ||
+ | |||
+ | .page-title .title-text .title-menu li { | ||
+ | position: relative; | ||
+ | color: #886488; | ||
+ | font-size: 17px; | ||
+ | display: inline-block; | ||
+ | line-height: 30px; | ||
+ | text-transform: capitalize; | ||
+ | } | ||
+ | |||
+ | .page-title .title-text .title-menu li a { | ||
+ | margin-right: 8px; | ||
+ | color: #ffffff; | ||
+ | font-weight: 500; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .page-title .title-text .title-menu li a:hover { | ||
+ | color: #886488; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .styled-pagination { | ||
+ | padding-top: 50px; | ||
+ | } | ||
+ | |||
+ | .styled-pagination ul { | ||
+ | padding-left: 0; | ||
+ | } | ||
+ | |||
+ | .styled-pagination ul li { | ||
+ | position: relative; | ||
+ | display: inline-block; | ||
+ | margin-right: 5px; | ||
+ | } | ||
+ | |||
+ | .styled-pagination ul li a { | ||
+ | position: relative; | ||
+ | display: block; | ||
+ | line-height: 50px; | ||
+ | font-size: 16px; | ||
+ | width: 50px; | ||
+ | height: 50px; | ||
+ | color: #777777; | ||
+ | font-weight: 500; | ||
+ | text-align: center; | ||
+ | background: #f4f4f4; | ||
+ | border-radius: 4px; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .styled-pagination ul li a.prev, .styled-pagination ul li a.next { | ||
+ | font-size: 18px; | ||
+ | } | ||
+ | |||
+ | .styled-pagination ul li a:hover, .styled-pagination ul li a.active { | ||
+ | color: #ffffff; | ||
+ | background: #886488; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .footer-main { | ||
+ | position: relative; | ||
+ | background-size: cover; | ||
+ | z-index: 1; | ||
+ | background: #886488; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top { | ||
+ | padding-top: 20px; | ||
+ | padding-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .footer-logo { | ||
+ | padding-bottom: 20px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top p { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #ababab; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top h6 { | ||
+ | font-size: 18px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #ffffff; | ||
+ | padding-bottom: 35px; | ||
+ | text-transform: uppercase; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .location-link { | ||
+ | padding-top: 10px; | ||
+ | padding-left: 0; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .location-link .item { | ||
+ | position: relative; | ||
+ | padding-left: 30px; | ||
+ | margin-bottom: 15px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .location-link .item i { | ||
+ | position: absolute; | ||
+ | top: 0px; | ||
+ | left: 0px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .location-link .item i:before { | ||
+ | font-size: 20px; | ||
+ | color: #ababab; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-icons { | ||
+ | margin-top: 20px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-icons li a { | ||
+ | display: block; | ||
+ | height: 30px; | ||
+ | width: 30px; | ||
+ | color: #886488; | ||
+ | background: #fff; | ||
+ | text-align: center; | ||
+ | border-radius: 50%; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-icons li a i { | ||
+ | line-height: 30px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .menu-link { | ||
+ | padding-left: 0; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .menu-link li { | ||
+ | padding-bottom: 15px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .menu-link li a { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | color: #ababab; | ||
+ | letter-spacing: .5px; | ||
+ | font-family: "Source Sans Pro", sans-serif; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .menu-link li i { | ||
+ | margin-right: 12px; | ||
+ | font-size: 13px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-links ul { | ||
+ | padding-left: 0; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-links ul li { | ||
+ | position: relative; | ||
+ | margin-bottom: 30px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-links ul li h4 { | ||
+ | margin-bottom: 15px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-links ul li p { | ||
+ | margin-top: -7px; | ||
+ | line-height: 24px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-links ul li a { | ||
+ | color: #ffffff; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-links ul li i { | ||
+ | position: absolute; | ||
+ | left: 0px; | ||
+ | top: 7px; | ||
+ | width: 47px; | ||
+ | height: 47px; | ||
+ | color: #ffffff; | ||
+ | line-height: 47px; | ||
+ | text-align: center; | ||
+ | background: #886488; | ||
+ | margin-right: 10px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .social-links span { | ||
+ | color: #ababab; | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | font-weight: 400; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .gallery-widget { | ||
+ | position: relative; | ||
+ | margin-left: 15px; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .gallery-widget .image { | ||
+ | position: relative; | ||
+ | float: left; | ||
+ | width: 30%; | ||
+ | margin: 2.5px; | ||
+ | overflow: hidden; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .gallery-widget .image img { | ||
+ | position: relative; | ||
+ | width: 100%; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .gallery-widget .image .lightbox-image { | ||
+ | position: absolute; | ||
+ | width: 100%; | ||
+ | height: 100%; | ||
+ | content: ''; | ||
+ | top: 0px; | ||
+ | left: 0px; | ||
+ | display: -webkit-box; | ||
+ | display: -ms-flexbox; | ||
+ | display: flex; | ||
+ | z-index: 99; | ||
+ | -webkit-box-align: center; | ||
+ | -ms-flex-align: center; | ||
+ | align-items: center; | ||
+ | -webkit-box-pack: center; | ||
+ | -ms-flex-pack: center; | ||
+ | justify-content: center; | ||
+ | background: linear-gradient(to right, rgba(122, 102, 203, 0.8) 0%, rgba(72, 189, 197, 0.74) 100%); | ||
+ | transition: all 500ms ease; | ||
+ | -webkit-transform: scale(0, 0); | ||
+ | transform: scale(0, 0); | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .gallery-widget .image .lightbox-image i { | ||
+ | color: #ffffff; | ||
+ | font-size: 20px; | ||
+ | font-weight: 400; | ||
+ | } | ||
+ | |||
+ | .footer-main .footer-top .gallery-widget .image:hover .lightbox-image { | ||
+ | transition: all 500ms ease; | ||
+ | -webkit-transform: scale(1, 1); | ||
+ | transform: scale(1, 1); | ||
+ | } | ||
+ | |||
+ | .footer-bottom { | ||
+ | padding: 24px 0px; | ||
+ | background: #664966; | ||
+ | } | ||
+ | |||
+ | .footer-bottom .copyright-text { | ||
+ | float: left; | ||
+ | } | ||
+ | |||
+ | .footer-bottom .copyright-text p { | ||
+ | font-size: 15px; | ||
+ | font-weight: 400; | ||
+ | color: #ababab; | ||
+ | line-height: 26px; | ||
+ | margin-bottom: 0px; | ||
+ | letter-spacing: .5px; | ||
+ | text-transform: capitalize; | ||
+ | } | ||
+ | |||
+ | .footer-bottom .copyright-text a { | ||
+ | color: #ababab; | ||
+ | } | ||
+ | |||
+ | .footer-bottom .footer-bottom-link { | ||
+ | float: right; | ||
+ | margin-bottom: 0px; | ||
+ | padding-left: 0; | ||
+ | } | ||
+ | |||
+ | .footer-bottom .footer-bottom-link li { | ||
+ | display: inline-block; | ||
+ | margin-left: 32px; | ||
+ | } | ||
+ | |||
+ | .footer-bottom .footer-bottom-link li a { | ||
+ | font-size: 15px; | ||
+ | line-height: 26px; | ||
+ | color: #ababab; | ||
+ | font-weight: 400; | ||
+ | } | ||
+ | |||
+ | .scroll-to-top { | ||
+ | position: fixed; | ||
+ | bottom: 40px; | ||
+ | right: 40px; | ||
+ | color: #ffffff; | ||
+ | font-size: 24px; | ||
+ | line-height: 45px; | ||
+ | width: 50px; | ||
+ | height: 50px; | ||
+ | border: 1px solid #7b64cb; | ||
+ | background: #7b64cb; | ||
+ | text-align: center; | ||
+ | z-index: 100; | ||
+ | cursor: pointer; | ||
+ | display: none; | ||
+ | border-radius: 25px; | ||
+ | transition: all 500ms ease; | ||
+ | -moz-transition: all 500ms ease; | ||
+ | -webkit-transition: all 500ms ease; | ||
+ | -ms-transition: all 500ms ease; | ||
+ | -o-transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | .scroll-to-top:hover { | ||
+ | background: #ffffff; | ||
+ | color: #7b64cb; | ||
+ | border-color: #7b64cb; | ||
+ | transition: all 500ms ease; | ||
+ | } | ||
+ | |||
+ | /* Theme HTML Template */ | ||
+ | @media only screen and (min-width: 768px) { | ||
+ | .main-menu .navigation > li > ul, | ||
+ | .main-menu .navigation > li > ul > li > ul { | ||
+ | display: block !important; | ||
+ | visibility: hidden; | ||
+ | opacity: 0; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media only screen and (min-width: 1920px) { | ||
+ | .service-tab-section .tab-list-column .tab-list { | ||
+ | margin-left: 30% !important; | ||
+ | margin-right: -30% !important; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media only screen and (max-width: 1200px) { | ||
+ | .service-section .filter { | ||
+ | margin-bottom: 20px !important; | ||
+ | } | ||
+ | .footer-bottom .copyright-text { | ||
+ | float: none !important; | ||
+ | text-align: center; | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | .footer-bottom .footer-bottom-link { | ||
+ | float: none !important; | ||
+ | text-align: center; | ||
+ | } | ||
+ | .feature-section.style-two { | ||
+ | margin-bottom: 0px !important; | ||
+ | } | ||
+ | .feature-section .contact-info .item { | ||
+ | display: block !important; | ||
+ | margin-bottom: 20px !important; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media only screen and (max-width: 1100px) { | ||
+ | .service-tab-section .tab-list-column { | ||
+ | width: 40% !important; | ||
+ | } | ||
+ | .service-tab-section .tab-content { | ||
+ | width: 60% !important; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media only screen and (max-width: 991px) { | ||
+ | .main-header .search-box { | ||
+ | display: none; | ||
+ | } | ||
+ | .header-uper .logo { | ||
+ | float: none !important; | ||
+ | text-align: center; | ||
+ | margin-bottom: 20px; | ||
+ | width: 100%; | ||
+ | } | ||
+ | .main-header.style-two .logo { | ||
+ | float: none !important; | ||
+ | text-align: center; | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | .main-header.style-two .search-box-btn { | ||
+ | top: 95px !important; | ||
+ | } | ||
+ | .main-header.style-two .main-menu { | ||
+ | float: none !important; | ||
+ | } | ||
+ | .service-tab-section .tab-content .inner-box { | ||
+ | padding-left: 0px; | ||
+ | } | ||
+ | .feature-section .image-content { | ||
+ | margin-left: 0px !important; | ||
+ | margin-top: 40px; | ||
+ | } | ||
+ | .feature-section .contact-info .item { | ||
+ | width: 100%; | ||
+ | margin-right: 30px !important; | ||
+ | margin-bottom: 20px !important; | ||
+ | } | ||
+ | .service-tab-section .tab-list-column { | ||
+ | width: 100% !important; | ||
+ | } | ||
+ | .service-tab-section .tab-list-column .tab-list, | ||
+ | .service-tab-section .tab-content .inner-box { | ||
+ | float: none !important; | ||
+ | padding-left: 115px !important; | ||
+ | max-width: 700px !important; | ||
+ | } | ||
+ | .service-tab-section .tab-content { | ||
+ | width: 100% !important; | ||
+ | } | ||
+ | .service-tab-section .tab-content .content-list { | ||
+ | margin-top: 40px !important; | ||
+ | } | ||
+ | .service-section .inner-box { | ||
+ | margin-bottom: 40px !important; | ||
+ | } | ||
+ | .fact-counter .column .item { | ||
+ | margin-bottom: 40px !important; | ||
+ | } | ||
+ | .contact-area { | ||
+ | margin-top: 70px !important; | ||
+ | padding-left: 0px !important; | ||
+ | } | ||
+ | .footer-main .footer-top .social-links { | ||
+ | margin-left: 0px !important; | ||
+ | } | ||
+ | .footer-bottom .footer-bottom-link { | ||
+ | margin-top: 30px; | ||
+ | } | ||
+ | .blog-section.style-four .content-text { | ||
+ | padding-left: 0px !important; | ||
+ | } | ||
+ | .blog-section.style-four .right-side { | ||
+ | margin-left: 0px !important; | ||
+ | margin-top: 40px !important; | ||
+ | } | ||
+ | .blog-section.style-four .left-side { | ||
+ | margin-right: 0px !important; | ||
+ | } | ||
+ | .blog-section.style-four .image-box img { | ||
+ | width: 100%; | ||
+ | } | ||
+ | .blog-section.style-five .text-image { | ||
+ | margin-left: 0px !important; | ||
+ | margin-top: 40px !important; | ||
+ | } | ||
+ | .service-details .right-side { | ||
+ | margin-left: 0px !important; | ||
+ | } | ||
+ | .gallery-section .owl-theme .owl-controls .owl-nav .owl-prev { | ||
+ | left: 90px !important; | ||
+ | } | ||
+ | .gallery-section .owl-theme .owl-controls .owl-nav .owl-next { | ||
+ | right: 90px !important; | ||
+ | } | ||
+ | .feature-section.style-two { | ||
+ | margin-bottom: 40px !important; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media only screen and (max-width: 767px) { | ||
+ | .main-header .main-menu { | ||
+ | top: 0px; | ||
+ | width: 100%; | ||
+ | } | ||
+ | .main-menu .navbar-header { | ||
+ | position: relative; | ||
+ | float: none; | ||
+ | display: block; | ||
+ | text-align: right; | ||
+ | width: 100%; | ||
+ | padding: 0px; | ||
+ | right: 0px; | ||
+ | z-index: 12; | ||
+ | } | ||
+ | .main-menu .navbar-header .navbar-toggle { | ||
+ | display: block; | ||
+ | border: 1px solid #ffffff; | ||
+ | float: left; | ||
+ | height: 50px; | ||
+ | width: 50px; | ||
+ | padding-left: 12px; | ||
+ | text-align: center; | ||
+ | margin: 0px 0px 0px 0px; | ||
+ | border-radius: 0px; | ||
+ | background: #7b64cb; | ||
+ | } | ||
+ | .main-menu .navbar-header .navbar-toggle .icon-bar { | ||
+ | background: #ffffff; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation { | ||
+ | float: none !important; | ||
+ | margin: 0px !important; | ||
+ | width: 100% !important; | ||
+ | background: #886488; | ||
+ | border: 1px solid #ffffff; | ||
+ | border-top: none; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation > li { | ||
+ | margin: 0px !important; | ||
+ | float: none !important; | ||
+ | width: 100%; | ||
+ | } | ||
+ | .main-menu .navigation > li > a, | ||
+ | .main-menu .navigation > li > ul:before { | ||
+ | border: none; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation > li > a { | ||
+ | padding: 10px 10px !important; | ||
+ | border: none !important; | ||
+ | } | ||
+ | .main-menu .navigation li.dropdown > a:after, | ||
+ | .main-menu .navigation > li.dropdown > a:before, | ||
+ | .main-menu .navigation > li > ul > li > a::before, | ||
+ | .main-menu .navigation > li > ul > li > ul > li > a::before { | ||
+ | color: #000000 !important; | ||
+ | right: 15px; | ||
+ | font-size: 16px; | ||
+ | display: none !important; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul, | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul > li > ul { | ||
+ | position: relative; | ||
+ | border: none; | ||
+ | float: none; | ||
+ | visibility: visible; | ||
+ | opacity: 1; | ||
+ | display: none; | ||
+ | margin: 0px; | ||
+ | left: auto !important; | ||
+ | right: auto !important; | ||
+ | top: auto !important; | ||
+ | width: 100%; | ||
+ | background: #e4b700; | ||
+ | border-radius: 0px; | ||
+ | transition: none !important; | ||
+ | -webkit-transition: none !important; | ||
+ | -ms-transition: none !important; | ||
+ | -o-transition: none !important; | ||
+ | -moz-transition: none !important; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul, | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul > li > ul { | ||
+ | border-top: 1px solid white !important; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation > li, | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul > li, | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul > li > ul > li { | ||
+ | border-top: 1px solid white !important; | ||
+ | opacity: 1 !important; | ||
+ | top: 0px !important; | ||
+ | left: 0px !important; | ||
+ | visibility: visible !important; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation > li:first-child { | ||
+ | border: none; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation > li > a, | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul > li > a, | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul > li > ul > li > a { | ||
+ | padding: 15px 10px !important; | ||
+ | line-height: 22px; | ||
+ | color: #ffffff; | ||
+ | background: #7b64cb; | ||
+ | text-align: left; | ||
+ | } | ||
+ | .main-header.style-two .main-menu .navigation > li > a { | ||
+ | color: #ffffff !important; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation > li > a:hover, | ||
+ | .main-menu .navbar-collapse > .navigation > li > a:active, | ||
+ | .main-menu .navbar-collapse > .navigation > li > a:focus { | ||
+ | background: #1cc9ce; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation > li:hover > a, | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul > li:hover > a, | ||
+ | .main-menu .navbar-collapse > .navigation > li > ul > li > ul > li:hover > a, | ||
+ | .main-menu .navbar-collapse > .navigation > li.current > a, | ||
+ | .main-menu .navbar-collapse > .navigation > li.current-menu-item > a { | ||
+ | background: #886488; | ||
+ | color: #fff !important; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation li.dropdown:after, | ||
+ | .main-menu .navigation > li > ul:before { | ||
+ | display: none !important; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation li.dropdown .dropdown-btn { | ||
+ | display: block; | ||
+ | position: absolute; | ||
+ | right: 15px; | ||
+ | top: 12px; | ||
+ | color: #ffffff; | ||
+ | } | ||
+ | .main-menu .navbar-collapse > .navigation li.current .dropdown-btn, | ||
+ | .main-menu .navbar-collapse > .navigation li:hover .dropdown-btn { | ||
+ | color: #ffffff; | ||
+ | } | ||
+ | .main-header { | ||
+ | margin-bottom: 0px !important; | ||
+ | } | ||
+ | .main-header .logo { | ||
+ | position: absolute !important; | ||
+ | top: -5px; | ||
+ | left: 30%; | ||
+ | } | ||
+ | .search_option { | ||
+ | position: absolute !important; | ||
+ | top: 2px; | ||
+ | right: 5px; | ||
+ | } | ||
+ | .footer-main .footer-top .menu-link { | ||
+ | margin-left: 0px !important; | ||
+ | } | ||
+ | .main-header.style-two .search-box-btn { | ||
+ | top: 15px !important; | ||
+ | } | ||
+ | .footer-main .footer-top .gallery-widget { | ||
+ | margin-left: 0px !important; | ||
+ | } | ||
+ | .service-tab-section .tab-list-column .tab-list, | ||
+ | .service-tab-section .tab-content .inner-box { | ||
+ | margin-left: 0px !important; | ||
+ | } | ||
+ | .rev_slider_wrapper .tp-caption img { | ||
+ | display: none; | ||
+ | } | ||
+ | .header-uper .right-side { | ||
+ | float: none !important; | ||
+ | text-align: center !important; | ||
+ | } | ||
+ | .header-uper .contact-info { | ||
+ | float: none !important; | ||
+ | margin-bottom: 30px !important; | ||
+ | } | ||
+ | .header-uper .logo { | ||
+ | margin-bottom: 40px !important; | ||
+ | } | ||
+ | .header-uper .contact-info .item { | ||
+ | text-align: left !important; | ||
+ | margin-left: 40px !important; | ||
+ | margin-right: 0px !important; | ||
+ | } | ||
+ | .header-uper .link-btn { | ||
+ | float: none !important; | ||
+ | margin-left: 0px !important; | ||
+ | } | ||
+ | .gallery-section .owl-theme .owl-controls { | ||
+ | display: none !important; | ||
+ | } | ||
+ | .work-skill .knob { | ||
+ | display: inline-block !important; | ||
+ | } | ||
+ | .work-skill .skills h6 { | ||
+ | margin-bottom: 40px; | ||
+ | } | ||
+ | .service-two .social-links li .border-shep { | ||
+ | display: none !important; | ||
+ | } | ||
+ | .service-two .social-links li { | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | .service-two .link-buttons li { | ||
+ | margin-bottom: 20px; | ||
+ | } | ||
+ | .service-two .left-side { | ||
+ | padding: 50px 0px !important; | ||
+ | } | ||
+ | .fixed-header { | ||
+ | background: #000000 !important; | ||
+ | } | ||
+ | .google-map-area { | ||
+ | margin-right: 0px !important; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media only screen and (max-width: 567px) { | ||
+ | .blog-section .content-text { | ||
+ | display: block !important; | ||
+ | padding-left: 0px !important; | ||
+ | margin-top: 20px !important; | ||
+ | } | ||
+ | .header-uper .contact-info { | ||
+ | margin-bottom: 0px !important; | ||
+ | } | ||
+ | .header-uper .contact-info .item { | ||
+ | margin-left: 0px !important; | ||
+ | margin-bottom: 30px !important; | ||
+ | } | ||
+ | .service-tab-section .tab-list-column .tab-list, | ||
+ | .service-tab-section .tab-content .inner-box { | ||
+ | padding-left: 20px !important; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media only screen and (max-width: 467px) { | ||
+ | .rev_slider_wrapper .tp-caption { | ||
+ | display: none !important; | ||
+ | } | ||
+ | .main-header .logo { | ||
+ | position: relative !important; | ||
+ | top: 0px !important; | ||
+ | left: 0px !important; | ||
+ | } | ||
+ | .main-header.style-two .search-box-btn { | ||
+ | top: 95px !important; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | @media only screen and (max-width: 350px) { | ||
+ | .feature-section .contact-info .item { | ||
+ | padding-left: 50px !important; | ||
+ | padding-right: 0px !important; | ||
+ | } | ||
+ | .feature-section .contact-info .icon-box { | ||
+ | left: 10px !important; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | .sponsor-box{ | ||
+ | border-radius: 50%; | ||
+ | width: 7%; | ||
+ | box-shadow: 0px 0px 20px -5px rgba(0, 0, 0, 0.2); | ||
+ | margin-left: 25px; | ||
+ | } | ||
+ | |||
+ | .content-img{ | ||
+ | |||
+ | } | ||
+ | |||
+ | .main-timeline{position:relative} | ||
+ | .main-timeline:before{content:"";width:5px;height:100%;border-radius:20px;margin:0 auto;background:#242922;position:absolute;top:0;left:0;right:0} | ||
+ | .main-timeline .timeline{display:inline-block;margin-bottom:50px;position:relative} | ||
+ | .main-timeline .timeline:before{content:"";width:20px;height:20px;border-radius:50%;border:4px solid #fff;background:#876488;position:absolute;top:50%;left:50%;z-index:1;transform:translate(-50%,-50%)} | ||
+ | .main-timeline .timeline-icon{display:inline-block;width:130px;height:130px;border-radius:50%;border:3px solid #876488;padding:13px;text-align:center;position:absolute;top:50%;left:30%;transform:translateY(-50%)} | ||
+ | .main-timeline .timeline-icon i{display:block;border-radius:50%;background:#876488;font-size:64px;color:#fff;line-height:100px;z-index:1;position:relative} | ||
+ | .main-timeline .timeline-icon:after,.main-timeline .timeline-icon:before{content:"";width:100px;height:4px;background:#876488;position:absolute;top:50%;right:-100px;transform:translateY(-50%)} | ||
+ | .main-timeline .timeline-icon:after{width:20px;height:20px;background:#fff;top:89px;right:-30px} | ||
+ | .main-timeline .timeline-content{width:50%;padding:0 50px;margin:52px 0 0;float:right;position:relative} | ||
+ | .main-timeline .timeline-content:before{content:"";width:70%;height:100%;border:3px solid #876488;border-top:none;border-right:none;position:absolute;bottom:-13px;left:35px} | ||
+ | .main-timeline .timeline-content:after{content:"";width:37px;height:3px;background:#876488;position:absolute;top:13px;left:0} | ||
+ | .main-timeline .title{font-size:18px;font-weight:600;color:#876488;text-transform:uppercase;margin:0 0 5px} | ||
+ | .main-timeline .description{display:inline-block;font-size:16px;color:#404040;line-height:20px;letter-spacing:1px;margin:0} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-icon{left:auto;right:30%} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-icon:before{right:auto;left:-100px} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-icon:after{right:auto;left:-30px} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-content{float:left} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-content:before{left:auto;right:35px;transform:rotateY(180deg)} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-content:after{left:auto;right:0} | ||
+ | .main-timeline .timeline:nth-child(2n) .timeline-content:after,.main-timeline .timeline:nth-child(2n) .timeline-icon i,.main-timeline .timeline:nth-child(2n) .timeline-icon:before,.main-timeline .timeline:nth-child(2n):before{background:#876488} | ||
+ | .main-timeline .timeline:nth-child(2n) .timeline-icon{border-color:#876488} | ||
+ | .main-timeline .timeline:nth-child(2n) .title{color:#876488} | ||
+ | .main-timeline .timeline:nth-child(2n) .timeline-content:before{border-left-color:#876488;border-bottom-color:#876488} | ||
+ | .main-timeline .timeline:nth-child(3n) .timeline-content:after,.main-timeline .timeline:nth-child(3n) .timeline-icon i,.main-timeline .timeline:nth-child(3n) .timeline-icon:before,.main-timeline .timeline:nth-child(3n):before{background:#a83e66} | ||
+ | .main-timeline .timeline:nth-child(3n) .timeline-icon{border-color:#a83e66} | ||
+ | .main-timeline .timeline:nth-child(3n) .title{color:#a83e66} | ||
+ | .main-timeline .timeline:nth-child(3n) .timeline-content:before{border-left-color:#a83e66;border-bottom-color:#a83e66} | ||
+ | .main-timeline .timeline:nth-child(4n) .timeline-content:after,.main-timeline .timeline:nth-child(4n) .timeline-icon i,.main-timeline .timeline:nth-child(4n) .timeline-icon:before,.main-timeline .timeline:nth-child(4n):before{background:#a83e66} | ||
+ | .main-timeline .timeline:nth-child(4n) .timeline-icon{border-color:#a83e66} | ||
+ | .main-timeline .timeline:nth-child(4n) .title{color:#a83e66} | ||
+ | .main-timeline .timeline:nth-child(4n) .timeline-content:before{border-left-color:#a83e66;border-bottom-color:#a83e66} | ||
+ | |||
+ | .main-timeline .timeline:nth-child(5n) .timeline-content:after,.main-timeline .timeline:nth-child(5n) .timeline-icon i,.main-timeline .timeline:nth-child(5n) .timeline-icon:before,.main-timeline .timeline:nth-child(5n):before{background:#db5d5c} | ||
+ | .main-timeline .timeline:nth-child(5n) .timeline-icon{border-color:#db5d5c} | ||
+ | .main-timeline .timeline:nth-child(5n) .title{color:#db5d5c} | ||
+ | .main-timeline .timeline:nth-child(5n) .timeline-content:before{border-left-color:#db5d5c;border-bottom-color:#db5d5c} | ||
+ | |||
+ | .main-timeline .timeline:nth-child(6n) .timeline-content:after,.main-timeline .timeline:nth-child(6n) .timeline-icon i,.main-timeline .timeline:nth-child(6n) .timeline-icon:before,.main-timeline .timeline:nth-child(6n):before{background:#db5d5c} | ||
+ | .main-timeline .timeline:nth-child(6n) .timeline-icon{border-color:#db5d5c} | ||
+ | .main-timeline .timeline:nth-child(6n) .title{color:#db5d5c} | ||
+ | .main-timeline .timeline:nth-child(6n) .timeline-content:before{border-left-color:#db5d5c;border-bottom-color:#db5d5c} | ||
+ | |||
+ | .main-timeline .timeline:nth-child(7n) .timeline-content:after,.main-timeline .timeline:nth-child(7n) .timeline-icon i,.main-timeline .timeline:nth-child(7n) .timeline-icon:before,.main-timeline .timeline:nth-child(7n):before{background:#f88f58} | ||
+ | .main-timeline .timeline:nth-child(7n) .timeline-icon{border-color:#f88f58} | ||
+ | .main-timeline .timeline:nth-child(7n) .title{color:#f88f58} | ||
+ | .main-timeline .timeline:nth-child(7n) .timeline-content:before{border-left-color:#f88f58;border-bottom-color:#f88f58} | ||
+ | |||
+ | .main-timeline .timeline:nth-child(8n) .timeline-content:after,.main-timeline .timeline:nth-child(8n) .timeline-icon i,.main-timeline .timeline:nth-child(8n) .timeline-icon:before,.main-timeline .timeline:nth-child(8n):before{background:#f88f58} | ||
+ | .main-timeline .timeline:nth-child(8n) .timeline-icon{border-color:#f88f58} | ||
+ | .main-timeline .timeline:nth-child(8n) .title{color:#f88f58} | ||
+ | .main-timeline .timeline:nth-child(8n) .timeline-content:before{border-left-color:#f88f58;border-bottom-color:#f88f58} | ||
+ | |||
+ | |||
+ | .main-timeline .timeline:nth-child(9n) .timeline-content:after,.main-timeline .timeline:nth-child(9n) .timeline-icon i,.main-timeline .timeline:nth-child(9n) .timeline-icon:before,.main-timeline .timeline:nth-child(9n):before{background:#e1bc75} | ||
+ | .main-timeline .timeline:nth-child(9n) .timeline-icon{border-color:#e1bc75} | ||
+ | .main-timeline .timeline:nth-child(9n) .title{color:#e1bc75} | ||
+ | .main-timeline .timeline:nth-child(9n) .timeline-content:before{border-left-color:#e1bc75;border-bottom-color:#e1bc75} | ||
+ | |||
+ | .main-timeline .timeline:nth-child(10n) .timeline-content:after,.main-timeline .timeline:nth-child(10n) .timeline-icon i,.main-timeline .timeline:nth-child(10n) .timeline-icon:before,.main-timeline .timeline:nth-child(10n):before{background:#e1bc75} | ||
+ | .main-timeline .timeline:nth-child(10n) .timeline-icon{border-color:#e1bc75} | ||
+ | .main-timeline .timeline:nth-child(10n) .title{color:#e1bc75} | ||
+ | .main-timeline .timeline:nth-child(10n) .timeline-content:before{border-left-color:#e1bc75;border-bottom-color:#e1bc75} | ||
+ | |||
+ | .main-timeline .timeline:nth-child(11n) .timeline-content:after,.main-timeline .timeline:nth-child(11n) .timeline-icon i,.main-timeline .timeline:nth-child(11n) .timeline-icon:before,.main-timeline .timeline:nth-child(11n):before{background:#e1bc75} | ||
+ | .main-timeline .timeline:nth-child(11n) .timeline-icon{border-color:#e1bc75} | ||
+ | .main-timeline .timeline:nth-child(11n) .title{color:#e1bc75} | ||
+ | .main-timeline .timeline:nth-child(11n) .timeline-content:before{border-left-color:#e1bc75;border-bottom-color:#e1bc75} | ||
+ | @media only screen and (max-width:1200px){.main-timeline .timeline-icon:before{width:50px;right:-50px} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-icon:before{right:auto;left:-50px} | ||
+ | .main-timeline .timeline-content{margin-top:75px} | ||
+ | } | ||
+ | @media only screen and (max-width:990px){.main-timeline .timeline{margin:0 0 10px} | ||
+ | .main-timeline .timeline-icon{left:25%} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-icon{right:25%} | ||
+ | .main-timeline .timeline-content{margin-top:115px} | ||
+ | } | ||
+ | @media only screen and (max-width:767px){.main-timeline{padding-top:50px} | ||
+ | .main-timeline:before{left:80px;right:0;margin:0} | ||
+ | .main-timeline .timeline{margin-bottom:70px} | ||
+ | .main-timeline .timeline:before{top:0;left:83px;right:0;margin:0} | ||
+ | .main-timeline .timeline-icon{width:60px;height:60px;line-height:40px;padding:5px;top:0;left:0} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-icon{left:0;right:auto} | ||
+ | .main-timeline .timeline-icon:before,.main-timeline .timeline:nth-child(even) .timeline-icon:before{width:25px;left:auto;right:-25px} | ||
+ | .main-timeline .timeline-icon:after,.main-timeline .timeline:nth-child(even) .timeline-icon:after{width:25px;height:30px;top:44px;left:auto;right:-5px} | ||
+ | .main-timeline .timeline-icon i{font-size:30px;line-height:45px} | ||
+ | .main-timeline .timeline-content,.main-timeline .timeline:nth-child(even) .timeline-content{width:100%;margin-top:-15px;padding-left:130px;padding-right:5px} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-content{float:right} | ||
+ | .main-timeline .timeline-content:before,.main-timeline .timeline:nth-child(even) .timeline-content:before{width:50%;left:120px} | ||
+ | .main-timeline .timeline:nth-child(even) .timeline-content:before{right:auto;transform:rotateY(0)} | ||
+ | .main-timeline .timeline-content:after,.main-timeline .timeline:nth-child(even) .timeline-content:after{left:85px} | ||
+ | } | ||
+ | @media only screen and (max-width:479px){.main-timeline .timeline-content,.main-timeline .timeline:nth-child(2n) .timeline-content{padding-left:110px} | ||
+ | .main-timeline .timeline-content:before,.main-timeline .timeline:nth-child(2n) .timeline-content:before{left:99px} | ||
+ | .main-timeline .timeline-content:after,.main-timeline .timeline:nth-child(2n) .timeline-content:after{left:65px} | ||
+ | } | ||
+ | </style> | ||
+ | <!-- PAGES SHARED JS --> | ||
+ | <script> | ||
+ | (function($) { | ||
+ | "use strict"; | ||
+ | |||
+ | //1.Hide Loading Box (Preloader) | ||
+ | function handlePreloader() { | ||
+ | if($('.preloader').length){ | ||
+ | $('.preloader').delay(200).fadeOut(500); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | //6.Scroll to a Specific Div | ||
+ | if($('.scroll-to-target').length){ | ||
+ | $(".scroll-to-target").click('click', function() { | ||
+ | var target = $(this).attr('data-target'); | ||
+ | // animate | ||
+ | $('html, body').animate({ | ||
+ | scrollTop: $(target).offset().top | ||
+ | }, 1000); | ||
+ | |||
+ | }); | ||
+ | } | ||
+ | |||
+ | //20.Contact Form Validation | ||
+ | if($("#contact-form").length){ | ||
+ | $("#contact-form").validate({ | ||
+ | submitHandler: function(form) { | ||
+ | var form_btn = $(form).find('button[type="submit"]'); | ||
+ | var form_result_div = '#form-result'; | ||
+ | $(form_result_div).remove(); | ||
+ | form_btn.before('<div id="form-result" class="alert alert-success" role="alert" style="display: none;"></div>'); | ||
+ | var form_btn_old_msg = form_btn.html(); | ||
+ | form_btn.html(form_btn.prop('disabled', true).data("loading-text")); | ||
+ | $(form).ajaxSubmit({ | ||
+ | dataType: 'json', | ||
+ | success: function(data) { | ||
+ | if( data.status = 'true' ) { | ||
+ | $(form).find('.form-control').val(''); | ||
+ | } | ||
+ | form_btn.prop('disabled', false).html(form_btn_old_msg); | ||
+ | $(form_result_div).html(data.message).fadeIn('slow'); | ||
+ | setTimeout(function(){ $(form_result_div).fadeOut('slow') }, 6000); | ||
} | } | ||
− | + | }); | |
− | + | ||
− | + | ||
− | + | ||
} | } | ||
+ | }); | ||
+ | } | ||
− | + | //22.Appoinment Form Validation | |
− | + | if($("#appoinment-form").length){ | |
− | + | $("#appoinment-form").validate({ | |
− | + | submitHandler: function(form) { | |
− | + | var form_btn = $(form).find('button[type="submit"]'); | |
− | + | var form_result_div = '#form-result'; | |
+ | $(form_result_div).remove(); | ||
+ | form_btn.before('<div id="form-result" class="alert alert-success" role="alert" style="display: none;"></div>'); | ||
+ | var form_btn_old_msg = form_btn.html(); | ||
+ | form_btn.html(form_btn.prop('disabled', true).data("loading-text")); | ||
+ | $(form).ajaxSubmit({ | ||
+ | dataType: 'json', | ||
+ | success: function(data) { | ||
+ | if( data.status = 'true' ) { | ||
+ | $(form).find('.form-control').val(''); | ||
+ | } | ||
+ | form_btn.prop('disabled', false).html(form_btn_old_msg); | ||
+ | $(form_result_div).html(data.message).fadeIn('slow'); | ||
+ | setTimeout(function(){ $(form_result_div).fadeOut('slow') }, 6000); | ||
+ | } | ||
+ | }); | ||
+ | } | ||
}); | }); | ||
+ | } | ||
− | + | //26.Date picker | |
+ | function datepicker () { | ||
+ | if ($('#datepicker').length) { | ||
+ | $('#datepicker').datepicker(); | ||
+ | }; | ||
+ | } | ||
+ | //27.Select menu | ||
+ | function selectDropdown() { | ||
+ | if ($(".selectmenu").length) { | ||
+ | $(".selectmenu").selectmenu(); | ||
− | + | var changeSelectMenu = function(event, item) { | |
+ | $(this).trigger('change', item); | ||
+ | }; | ||
+ | $(".selectmenu").selectmenu({ change: changeSelectMenu }); | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | //28.Elements Animation | ||
+ | if($('.wow').length){ | ||
+ | var wow = new WOW( | ||
+ | { | ||
+ | boxClass: 'wow', // animated element css class (default is wow) | ||
+ | animateClass: 'animated', // animation css class (default is animated) | ||
+ | offset: 0, // distance to the element when triggering the animation (default is 0) | ||
+ | mobile: false, // trigger animations on mobile devices (default is true) | ||
+ | live: true // act on asynchronously loaded content (default is true) | ||
+ | } | ||
+ | ); | ||
+ | wow.init(); | ||
+ | } | ||
− | + | // Hero Slider | |
− | + | $('.hero-slider').slick({ | |
− | + | slidesToShow: 1, | |
− | + | autoplay: true, | |
− | + | autoplaySpeed: 5000, | |
− | + | infinite: true, | |
− | + | speed: 300, | |
− | + | dots: true, | |
− | + | arrows: true, | |
+ | fade: true, | ||
+ | responsive: [ | ||
+ | { | ||
+ | breakpoint: 600, | ||
+ | settings: { | ||
+ | arrows: false | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | }); | ||
+ | // Item Slider | ||
+ | $('.items-container').slick({ | ||
+ | infinite: true, | ||
+ | arrows: true, | ||
+ | autoplay: true, | ||
+ | slidesToShow: 3, | ||
+ | slidesToScroll: 1, | ||
+ | responsive: [ | ||
+ | { | ||
+ | breakpoint: 991, | ||
+ | settings: { | ||
+ | slidesToShow: 2, | ||
+ | arrows: false | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | breakpoint: 525, | ||
+ | settings: { | ||
+ | slidesToShow: 1, | ||
+ | arrows: false | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | }); | ||
+ | // Testimonial Slider | ||
+ | $('.testimonial-carousel').slick({ | ||
+ | infinite: true, | ||
+ | arrows: false, | ||
+ | autoplay: true, | ||
+ | slidesToShow: 2, | ||
+ | dots: true, | ||
+ | slidesToScroll: 2, | ||
+ | responsive: [ | ||
+ | { | ||
+ | breakpoint: 991, | ||
+ | settings: { | ||
+ | slidesToShow: 2 | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | breakpoint: 525, | ||
+ | settings: { | ||
+ | slidesToShow: 1 | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | }); | ||
+ | |||
+ | // FancyBox Video | ||
+ | $('[data-fancybox]').fancybox({ | ||
+ | youtube: { | ||
+ | controls: 0, | ||
+ | showinfo: 0 | ||
+ | }, | ||
+ | vimeo: { | ||
+ | color: 'f00' | ||
+ | } | ||
+ | }); | ||
− | + | /* ========================When document is loaded, do===================== */ | |
− | + | $(window).on('load', function() { | |
− | + | // add your functions | |
− | + | (function ($) { | |
− | + | handlePreloader(); | |
+ | datepicker(); | ||
+ | })(jQuery); | ||
+ | }); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | })(window.jQuery); | |
− | + | </script> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </ | + | |
<!-- CONTENT OF THE PAGE --> | <!-- CONTENT OF THE PAGE --> |
Revision as of 06:35, 17 October 2018