diff --git a/Gruntfile.js b/Gruntfile.js index f3c3af8f8e..98cc655f9a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -56,27 +56,64 @@ module.exports = function (grunt) { docs: 'docs/dist' }, - jshint: { - options: { - jshintrc: 'js/.jshintrc' - }, - grunt: { - options: { - jshintrc: 'grunt/.jshintrc' + // JS build configuration + + lineremover: { + es6Import: { + files: { + '<%= concat.bootstrap.dest %>': '<%= concat.bootstrap.dest %>' }, - src: ['Gruntfile.js', 'grunt/*.js'] - }, - core: { - src: 'js/*.js' - }, - test: { options: { - jshintrc: 'js/tests/unit/.jshintrc' + exclusionPattern: /^(import|export)/g + } + } + }, + + babel: { + dev: { + options: { + sourceMap: true, + modules: 'ignore' }, - src: 'js/tests/unit/*.js' + files: { + 'js/dist/util.js' : 'js/src/util.js', + 'js/dist/alert.js' : 'js/src/alert.js', + 'js/dist/button.js' : 'js/src/button.js', + 'js/dist/carousel.js' : 'js/src/carousel.js', + 'js/dist/collapse.js' : 'js/src/collapse.js', + 'js/dist/dropdown.js' : 'js/src/dropdown.js', + 'js/dist/modal.js' : 'js/src/modal.js', + 'js/dist/scrollspy.js' : 'js/src/scrollspy.js', + 'js/dist/tab.js' : 'js/src/tab.js', + 'js/dist/tooltip.js' : 'js/src/tooltip.js', + 'js/dist/popover.js' : 'js/src/popover.js' + } }, - assets: { - src: ['docs/assets/js/src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js'] + dist: { + options: { + modules: 'ignore' + }, + files: { + '<%= concat.bootstrap.dest %>' : '<%= concat.bootstrap.dest %>' + } + }, + umd: { + options: { + modules: 'umd' + }, + files: { + 'dist/js/umd/util.js' : 'js/src/util.js', + 'dist/js/umd/alert.js' : 'js/src/alert.js', + 'dist/js/umd/button.js' : 'js/src/button.js', + 'dist/js/umd/carousel.js' : 'js/src/carousel.js', + 'dist/js/umd/collapse.js' : 'js/src/collapse.js', + 'dist/js/umd/dropdown.js' : 'js/src/dropdown.js', + 'dist/js/umd/modal.js' : 'js/src/modal.js', + 'dist/js/umd/scrollspy.js' : 'js/src/scrollspy.js', + 'dist/js/umd/tab.js' : 'js/src/tab.js', + 'dist/js/umd/tooltip.js' : 'js/src/tooltip.js', + 'dist/js/umd/popover.js' : 'js/src/popover.js' + } } }, @@ -85,41 +122,51 @@ module.exports = function (grunt) { config: 'js/.jscsrc' }, grunt: { - src: '<%= jshint.grunt.src %>' + src: ['Gruntfile.js', 'grunt/*.js'] }, core: { - src: '<%= jshint.core.src %>' + src: 'js/src/*.js' }, test: { - src: '<%= jshint.test.src %>' + src: 'js/tests/unit/*.js' }, assets: { options: { requireCamelCaseOrUpperCaseIdentifiers: null }, - src: '<%= jshint.assets.src %>' + src: ['docs/assets/js/src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js'] + } + }, + + stamp: { + options: { + banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>\n+function ($) {\n', + footer: '\n}(jQuery);' + }, + bootstrap: { + files: { + src: '<%= concat.bootstrap.dest %>' + } } }, concat: { options: { - banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>', stripBanners: false }, bootstrap: { src: [ - 'js/transition.js', - 'js/alert.js', - 'js/button.js', - 'js/carousel.js', - 'js/collapse.js', - 'js/dropdown.js', - 'js/modal.js', - 'js/tooltip.js', - 'js/popover.js', - 'js/scrollspy.js', - 'js/tab.js', - 'js/affix.js' + 'js/src/util.js', + 'js/src/alert.js', + 'js/src/button.js', + 'js/src/carousel.js', + 'js/src/collapse.js', + 'js/src/dropdown.js', + 'js/src/modal.js', + 'js/src/scrollspy.js', + 'js/src/tab.js', + 'js/src/tooltip.js', + 'js/src/popover.js' ], dest: 'dist/js/<%= pkg.name %>.js' } @@ -154,6 +201,9 @@ module.exports = function (grunt) { files: 'js/tests/index.html' }, + + // CSS build configuration + scsslint: { scss: ['scss/*.scss', '!scss/_normalize.scss'], options: { @@ -301,12 +351,12 @@ module.exports = function (grunt) { watch: { src: { - files: '<%= jshint.core.src %>', - tasks: ['jshint:core', 'qunit', 'concat'] + files: '<%= jscs.core.src %>', + tasks: ['babel:dev'] }, test: { - files: '<%= jshint.test.src %>', - tasks: ['jshint:test', 'qunit'] + files: '<%= jscs.test.src %>', + tasks: ['qunit'] }, sass: { files: 'scss/**/*.scss', @@ -398,10 +448,10 @@ module.exports = function (grunt) { testSubtasks.push('saucelabs-qunit'); } grunt.registerTask('test', testSubtasks); - grunt.registerTask('test-js', ['jshint:core', 'jshint:test', 'jshint:grunt', 'jscs:core', 'jscs:test', 'jscs:grunt', 'qunit']); + grunt.registerTask('test-js', ['jscs:core', 'jscs:test', 'jscs:grunt', 'qunit']); // JS distribution task. - grunt.registerTask('dist-js', ['concat', 'uglify:core', 'commonjs']); + grunt.registerTask('dist-js', ['concat', 'lineremover', 'babel:dist', 'stamp', 'uglify:core', 'commonjs']); grunt.registerTask('test-scss', ['scsslint:scss']); @@ -425,8 +475,12 @@ module.exports = function (grunt) { // This can be overzealous, so its changes should always be manually reviewed! grunt.registerTask('change-version-number', 'sed'); - grunt.registerTask('commonjs', 'Generate CommonJS entrypoint module in dist dir.', function () { - var srcFiles = grunt.config.get('concat.bootstrap.src'); + grunt.registerTask('commonjs', ['babel:umd', 'npm-js']); + + grunt.registerTask('npm-js', 'Generate npm-js entrypoint module in dist dir.', function () { + var srcFiles = Object.keys(grunt.config.get('babel.umd.files')).map(function (filename) { + return './' + path.join('umd', path.basename(filename)) + }) var destFilepath = 'dist/js/npm.js'; generateCommonJSModule(grunt, srcFiles, destFilepath); }); @@ -434,7 +488,7 @@ module.exports = function (grunt) { // Docs task. grunt.registerTask('docs-css', ['autoprefixer:docs', 'autoprefixer:examples', 'csscomb:docs', 'csscomb:examples', 'cssmin:docs']); grunt.registerTask('docs-js', ['uglify:docsJs']); - grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']); + grunt.registerTask('lint-docs-js', ['jscs:assets']); grunt.registerTask('docs', ['docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs']); grunt.registerTask('docs-github', ['jekyll:github']); diff --git a/dist/css/bootstrap.css b/dist/css/bootstrap.css index acf6ed35f9..f7cabd0e08 100644 --- a/dist/css/bootstrap.css +++ b/dist/css/bootstrap.css @@ -1,402 +1,363 @@ -/*! - * Bootstrap v4.0.0-alpha (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - +@charset "UTF-8"; /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ html { font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; } body { - margin: 0; -} + margin: 0; } -article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { - display: block; -} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; } -audio, canvas, progress, video { +audio, +canvas, +progress, +video { display: inline-block; - vertical-align: baseline; -} + vertical-align: baseline; } audio:not([controls]) { display: none; - height: 0; -} + height: 0; } -[hidden], template { - display: none; -} +[hidden], +template { + display: none; } a { - background-color: transparent; -} + background-color: transparent; } a:active { - outline: 0; -} + outline: 0; } + a:hover { - outline: 0; -} + outline: 0; } abbr[title] { - border-bottom: 1px dotted; -} + border-bottom: 1px dotted; } -b, strong { - font-weight: bold; -} +b, +strong { + font-weight: bold; } dfn { - font-style: italic; -} + font-style: italic; } h1 { - margin: .67em 0; font-size: 2em; -} + margin: 0.67em 0; } mark { - color: #000; background: #ff0; -} + color: #000; } small { - font-size: 80%; -} + font-size: 80%; } -sub, sup { - position: relative; +sub, +sup { font-size: 75%; line-height: 0; - vertical-align: baseline; -} + position: relative; + vertical-align: baseline; } sup { - top: -.5em; -} + top: -0.5em; } sub { - bottom: -.25em; -} + bottom: -0.25em; } img { - border: 0; -} + border: 0; } svg:not(:root) { - overflow: hidden; -} + overflow: hidden; } figure { - margin: 1em 40px; -} + margin: 1em 40px; } hr { - height: 0; - -webkit-box-sizing: content-box; - box-sizing: content-box; -} + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; } pre { - overflow: auto; -} + overflow: auto; } -code, kbd, pre, samp { +code, +kbd, +pre, +samp { font-family: monospace, monospace; - font-size: 1em; -} + font-size: 1em; } -button, input, optgroup, select, textarea { - margin: 0; - font: inherit; +button, +input, +optgroup, +select, +textarea { color: inherit; -} + font: inherit; + margin: 0; } button { - overflow: visible; -} + overflow: visible; } -button, select { - text-transform: none; -} +button, +select { + text-transform: none; } -button, html input[type="button"], input[type="reset"], input[type="submit"] { +button, +html input[type="button"], input[type="reset"], +input[type="submit"] { -webkit-appearance: button; - cursor: pointer; -} + cursor: pointer; } -button[disabled], html input[disabled] { - cursor: default; -} +button[disabled], +html input[disabled] { + cursor: default; } -button::-moz-focus-inner, input::-moz-focus-inner { - padding: 0; +button::-moz-focus-inner, +input::-moz-focus-inner { border: 0; -} + padding: 0; } input { - line-height: normal; -} + line-height: normal; } -input[type="checkbox"], input[type="radio"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; } -input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { - height: auto; -} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; } input[type="search"] { - -webkit-box-sizing: content-box; - box-sizing: content-box; -webkit-appearance: textfield; -} + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; } -input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} +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 #c0c0c0; -} + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } legend { - padding: 0; border: 0; -} + padding: 0; } textarea { - overflow: auto; -} + overflow: auto; } optgroup { - font-weight: bold; -} + font-weight: bold; } table { - border-spacing: 0; border-collapse: collapse; -} + border-spacing: 0; } -td, th { - padding: 0; -} +td, +th { + padding: 0; } @media print { - *, *:before, *:after { + *, + *:before, + *:after { text-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - } - a, a:visited { - text-decoration: underline; - } + box-shadow: none !important; } + a, + a:visited { + text-decoration: underline; } abbr[title]:after { - content: " (" attr(title) ")"; - } - pre, blockquote { + content: " (" attr(title) ")"; } + pre, + blockquote { border: 1px solid #999; - - page-break-inside: avoid; - } + page-break-inside: avoid; } thead { - display: table-header-group; - } - tr, img { - page-break-inside: avoid; - } + display: table-header-group; } + tr, img { - max-width: 100% !important; - } - p, h2, h3 { + page-break-inside: avoid; } + img { + max-width: 100% !important; } + p, + h2, + h3 { orphans: 3; - widows: 3; - } - h2, h3 { - page-break-after: avoid; - } + widows: 3; } + h2, + h3 { + page-break-after: avoid; } .navbar { - display: none; - } - .btn > .caret, .dropup > .btn > .caret { - border-top-color: #000 !important; - } + display: none; } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; } .label { - border: 1px solid #000; - } + border: 1px solid #000; } .table { - border-collapse: collapse !important; - } - .table td, .table th { - background-color: #fff !important; - } - .table-bordered th, .table-bordered td { - border: 1px solid #ddd !important; - } -} + border-collapse: collapse !important; } + .table td, + .table th { + background-color: #fff !important; } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; } } html { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} + box-sizing: border-box; } -*, *:before, *:after { - -webkit-box-sizing: inherit; - box-sizing: inherit; -} +*, +*:before, +*:after { + box-sizing: inherit; } -@at-root { - @-moz-viewport { - width: device-width; - } +@-moz-viewport { + width: device-width; } - @-ms-viewport { - width: device-width; - } +@-ms-viewport { + width: device-width; } - @-webkit-viewport { - width: device-width; - } +@-o-viewport { + width: device-width; } - @viewport { - width: device-width; - } -} +@-webkit-viewport { + width: device-width; } + +@viewport { + width: device-width; } html { font-size: 16px; - - -webkit-tap-highlight-color: transparent; -} + -webkit-tap-highlight-color: transparent; } body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 1rem; line-height: 1.5; color: #373a3c; - background-color: #fff; -} + background-color: #fff; } h1, h2, h3, h4, h5, h6 { margin-top: 0; - margin-bottom: .5rem; -} + margin-bottom: .5rem; } p { margin-top: 0; - margin-bottom: 1rem; -} + margin-bottom: 1rem; } -abbr[title], abbr[data-original-title] { +abbr[title], +abbr[data-original-title] { cursor: help; - border-bottom: 1px dotted #818a91; -} + border-bottom: 1px dotted #818a91; } address { margin-bottom: 1rem; font-style: normal; - line-height: inherit; -} + line-height: inherit; } -ol, ul, dl { +ol, +ul, +dl { margin-top: 0; - margin-bottom: 1rem; -} + margin-bottom: 1rem; } -ol ol, ul ul, ol ul, ul ol { - margin-bottom: 0; -} +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; } dt { - font-weight: bold; -} + font-weight: bold; } dd { - margin-bottom: .5rem; margin-left: 0; -} + margin-bottom: .5rem; } blockquote { - margin: 0 0 1rem; -} + margin: 0 0 1rem; } a { color: #0275d8; - text-decoration: none; -} -a:focus, a:hover { - color: #014c8c; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} + text-decoration: none; } + a:focus, + a:hover { + color: #014c8c; + text-decoration: underline; } + a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } pre { margin-top: 0; - margin-bottom: 1rem; -} + margin-bottom: 1rem; } figure { - margin: 0 0 1rem; -} + margin: 0 0 1rem; } img { - vertical-align: middle; -} + vertical-align: middle; } [role="button"] { - cursor: pointer; -} + cursor: pointer; } table { - background-color: transparent; -} + background-color: transparent; } caption { - padding-top: .75rem; - padding-bottom: .75rem; - color: #818a91; - text-align: left; caption-side: bottom; -} + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #818a91; + text-align: left; } th { - text-align: left; -} + text-align: left; } label { display: inline-block; - margin-bottom: .5rem; -} + margin-bottom: .5rem; } -input, button, select, textarea { +input, +button, +select, +textarea { margin: 0; - line-height: inherit; -} + line-height: inherit; } textarea { - resize: vertical; -} + resize: vertical; } fieldset { - min-width: 0; padding: 0; margin: 0; border: 0; -} + min-width: 0; } legend { display: block; @@ -404,206 +365,206 @@ legend { padding: 0; margin-bottom: .5rem; font-size: 1.5rem; - line-height: inherit; -} + line-height: inherit; } input[type="search"] { - -webkit-appearance: none; -} + -webkit-appearance: none; } output { - display: inline-block; -} + display: inline-block; } -h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { +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: normal; - line-height: 1; - color: #818a91; -} + 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: normal; + line-height: 1; + color: #818a91; } -h1, .h1, h2, .h2, h3, .h3 { - margin-bottom: .5rem; -} -h1 small, h1 .small, .h1 small, .h1 .small, h2 small, h2 .small, .h2 small, .h2 .small, h3 small, h3 .small, .h3 small, .h3 .small { - font-size: 65%; -} +h1, .h1, +h2, .h2, +h3, .h3 { + margin-bottom: 0.5rem; } + h1 small, + h1 .small, .h1 small, + .h1 .small, + h2 small, + h2 .small, .h2 small, + .h2 .small, + h3 small, + h3 .small, .h3 small, + .h3 .small { + font-size: 65%; } -h4, .h4, h5, .h5, h6, .h6 { - margin-bottom: .5rem; -} -h4 small, h4 .small, .h4 small, .h4 .small, h5 small, h5 .small, .h5 small, .h5 .small, h6 small, h6 .small, .h6 small, .h6 .small { - font-size: 75%; -} +h4, .h4, +h5, .h5, +h6, .h6 { + margin-bottom: 0.5rem; } + h4 small, + h4 .small, .h4 small, + .h4 .small, + h5 small, + h5 .small, .h5 small, + .h5 .small, + h6 small, + h6 .small, .h6 small, + .h6 .small { + font-size: 75%; } h1, .h1 { - font-size: 2.75rem; -} + font-size: 2.75rem; } h2, .h2 { - font-size: 2.25rem; -} + font-size: 2.25rem; } h3, .h3 { - font-size: 1.75rem; -} + font-size: 1.75rem; } h4, .h4 { - font-size: 1.5rem; -} + font-size: 1.5rem; } h5, .h5 { - font-size: 1.25rem; -} + font-size: 1.25rem; } h6, .h6 { - font-size: 1rem; -} + font-size: 1rem; } .lead { font-size: 1.25rem; - font-weight: 300; -} + font-weight: 300; } hr { margin-top: 1rem; margin-bottom: 1rem; border: 0; - border-top: .0625rem solid #eceeef; -} + border-top: 0.0625rem solid #eceeef; } -small, .small { - font-size: 85%; -} +small, +.small { + font-size: 85%; } -mark, .mark { +mark, +.mark { padding: .2em; - background-color: #fcf8e3; -} + background-color: #fcf8e3; } .list-unstyled { padding-left: 0; - list-style: none; -} + 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; -} + list-style: none; } + .list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; } .dl-horizontal { margin-right: -1.5rem; - margin-left: -1.5rem; -} -.dl-horizontal:before, .dl-horizontal:after { - display: table; - content: " "; -} -.dl-horizontal:after { - clear: both; -} + margin-left: -1.5rem; } + .dl-horizontal:before, + .dl-horizontal:after { + content: " "; + display: table; } + .dl-horizontal:after { + clear: both; } .initialism { font-size: 90%; - text-transform: uppercase; -} + text-transform: uppercase; } .blockquote { - padding: .5rem 1rem; + padding: 0.5rem 1rem; margin-bottom: 1rem; font-size: 1.25rem; - border-left: .25rem solid #eceeef; -} -.blockquote p:last-child, .blockquote ul:last-child, .blockquote ol:last-child { - margin-bottom: 0; -} -.blockquote footer { - display: block; - font-size: 80%; - line-height: 1.5; - color: #818a91; -} -.blockquote footer:before { - content: "\2014 \00A0"; -} + border-left: 0.25rem solid #eceeef; } + .blockquote p:last-child, + .blockquote ul:last-child, + .blockquote ol:last-child { + margin-bottom: 0; } + .blockquote footer { + display: block; + font-size: 80%; + line-height: 1.5; + color: #818a91; } + .blockquote footer:before { + content: "\2014 \00A0"; } .blockquote-reverse { padding-right: 1rem; padding-left: 0; text-align: right; - border-right: .25rem solid #eceeef; - border-left: 0; -} -.blockquote-reverse footer:before { - content: ""; -} -.blockquote-reverse footer:after { - content: "\00A0 \2014"; -} + border-right: 0.25rem solid #eceeef; + border-left: 0; } + .blockquote-reverse footer:before { + content: ""; } + .blockquote-reverse footer:after { + content: "\00A0 \2014"; } -.img-responsive, .carousel-inner > .carousel-item > img, .carousel-inner > .carousel-item > a > img { +.img-responsive, .carousel-inner > .carousel-item > img, +.carousel-inner > .carousel-item > a > img { display: block; max-width: 100%; - height: auto; -} + height: auto; } .img-rounded { - border-radius: .3rem; -} + border-radius: 0.3rem; } .img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: .25rem; + padding: 0.25rem; line-height: 1.5; background-color: #fff; border: 1px solid #ddd; - border-radius: .25rem; - -webkit-transition: all .2s ease-in-out; - -o-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} + border-radius: 0.25rem; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; } .img-circle { - border-radius: 50%; -} + border-radius: 50%; } -code, kbd, pre, samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } code { - padding: .2rem .4rem; + padding: 0.2rem 0.4rem; font-size: 90%; color: #d44950; background-color: #f7f7f9; - border-radius: .25rem; -} + border-radius: 0.25rem; } kbd { - padding: .2rem .4rem; + padding: 0.2rem 0.4rem; font-size: 90%; color: #fff; background-color: #333; - border-radius: .2rem; -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; -} + border-radius: 0.2rem; } + kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; } pre { display: block; @@ -611,1668 +572,1039 @@ pre { margin-bottom: 1rem; font-size: 90%; line-height: 1.5; - color: #373a3c; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - background-color: transparent; - border-radius: 0; -} + color: #373a3c; } + pre code { + padding: 0; + font-size: inherit; + color: inherit; + background-color: transparent; + border-radius: 0; } .pre-scrollable { max-height: 340px; - overflow-y: scroll; -} + overflow-y: scroll; } .container { - padding-right: .75rem; - padding-left: .75rem; margin-right: auto; margin-left: auto; -} -.container:before, .container:after { - display: table; - content: " "; -} -.container:after { - clear: both; -} -@media (min-width: 34em) { - .container { - max-width: 34rem; - } -} -@media (min-width: 48em) { - .container { - max-width: 45rem; - } -} -@media (min-width: 62em) { - .container { - max-width: 60rem; - } -} -@media (min-width: 75em) { - .container { - max-width: 72.25rem; - } -} + padding-left: 0.75rem; + padding-right: 0.75rem; } + .container:before, + .container:after { + content: " "; + display: table; } + .container:after { + clear: both; } + @media (min-width: 34em) { + .container { + max-width: 34rem; } } + @media (min-width: 48em) { + .container { + max-width: 45rem; } } + @media (min-width: 62em) { + .container { + max-width: 60rem; } } + @media (min-width: 75em) { + .container { + max-width: 72.25rem; } } .container-fluid { - padding-right: .75rem; - padding-left: .75rem; margin-right: auto; margin-left: auto; -} -.container-fluid:before, .container-fluid:after { - display: table; - content: " "; -} -.container-fluid:after { - clear: both; -} + padding-left: 0.75rem; + padding-right: 0.75rem; } + .container-fluid:before, + .container-fluid:after { + content: " "; + display: table; } + .container-fluid:after { + clear: both; } .row { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - margin-right: -.75rem; - margin-left: -.75rem; - - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; -} -.row:before, .row:after { - display: table; - content: " "; -} -.row:after { - clear: both; -} + display: flex; + flex-wrap: wrap; + margin-left: -0.75rem; + margin-right: -0.75rem; } + .row:before, + .row:after { + content: " "; + display: table; } + .row:after { + clear: both; } .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .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-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .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-md-10, .col-md-11, .col-md-12, .col-lg-1, .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-lg-10, .col-lg-11, .col-lg-12, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 { position: relative; min-height: 1px; - padding-right: .75rem; - padding-left: .75rem; -} + padding-left: 0.75rem; + padding-right: 0.75rem; } .col-xs-1 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 8.333333%; - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; -} + flex: 0 0 8.333333%; } .col-xs-2 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 16.666667%; - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; -} + flex: 0 0 16.666667%; } .col-xs-3 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; -} + flex: 0 0 25%; } .col-xs-4 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33.333333%; - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; -} + flex: 0 0 33.333333%; } .col-xs-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 41.666667%; - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; -} + flex: 0 0 41.666667%; } .col-xs-6 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; -} + flex: 0 0 50%; } .col-xs-7 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 58.333333%; - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; -} + flex: 0 0 58.333333%; } .col-xs-8 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66.666667%; - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; -} + flex: 0 0 66.666667%; } .col-xs-9 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; -} + flex: 0 0 75%; } .col-xs-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 83.333333%; - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; -} + flex: 0 0 83.333333%; } .col-xs-11 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 91.666667%; - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; -} + flex: 0 0 91.666667%; } .col-xs-12 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; -} + flex: 0 0 100%; } .col-xs-pull-0 { - right: auto; -} + right: auto; } .col-xs-pull-1 { - right: 8.333333%; -} + right: 8.333333%; } .col-xs-pull-2 { - right: 16.666667%; -} + right: 16.666667%; } .col-xs-pull-3 { - right: 25%; -} + right: 25%; } .col-xs-pull-4 { - right: 33.333333%; -} + right: 33.333333%; } .col-xs-pull-5 { - right: 41.666667%; -} + right: 41.666667%; } .col-xs-pull-6 { - right: 50%; -} + right: 50%; } .col-xs-pull-7 { - right: 58.333333%; -} + right: 58.333333%; } .col-xs-pull-8 { - right: 66.666667%; -} + right: 66.666667%; } .col-xs-pull-9 { - right: 75%; -} + right: 75%; } .col-xs-pull-10 { - right: 83.333333%; -} + right: 83.333333%; } .col-xs-pull-11 { - right: 91.666667%; -} + right: 91.666667%; } .col-xs-pull-12 { - right: 100%; -} + right: 100%; } .col-xs-push-0 { - left: auto; -} + left: auto; } .col-xs-push-1 { - left: 8.333333%; -} + left: 8.333333%; } .col-xs-push-2 { - left: 16.666667%; -} + left: 16.666667%; } .col-xs-push-3 { - left: 25%; -} + left: 25%; } .col-xs-push-4 { - left: 33.333333%; -} + left: 33.333333%; } .col-xs-push-5 { - left: 41.666667%; -} + left: 41.666667%; } .col-xs-push-6 { - left: 50%; -} + left: 50%; } .col-xs-push-7 { - left: 58.333333%; -} + left: 58.333333%; } .col-xs-push-8 { - left: 66.666667%; -} + left: 66.666667%; } .col-xs-push-9 { - left: 75%; -} + left: 75%; } .col-xs-push-10 { - left: 83.333333%; -} + left: 83.333333%; } .col-xs-push-11 { - left: 91.666667%; -} + left: 91.666667%; } .col-xs-push-12 { - left: 100%; -} + left: 100%; } .col-xs-offset-0 { - margin-left: 0; -} + margin-left: 0%; } .col-xs-offset-1 { - margin-left: 8.333333%; -} + margin-left: 8.333333%; } .col-xs-offset-2 { - margin-left: 16.666667%; -} + margin-left: 16.666667%; } .col-xs-offset-3 { - margin-left: 25%; -} + margin-left: 25%; } .col-xs-offset-4 { - margin-left: 33.333333%; -} + margin-left: 33.333333%; } .col-xs-offset-5 { - margin-left: 41.666667%; -} + margin-left: 41.666667%; } .col-xs-offset-6 { - margin-left: 50%; -} + margin-left: 50%; } .col-xs-offset-7 { - margin-left: 58.333333%; -} + margin-left: 58.333333%; } .col-xs-offset-8 { - margin-left: 66.666667%; -} + margin-left: 66.666667%; } .col-xs-offset-9 { - margin-left: 75%; -} + margin-left: 75%; } .col-xs-offset-10 { - margin-left: 83.333333%; -} + margin-left: 83.333333%; } .col-xs-offset-11 { - margin-left: 91.666667%; -} + margin-left: 91.666667%; } .col-xs-offset-12 { - margin-left: 100%; -} + margin-left: 100%; } @media (min-width: 34em) { .col-sm-1 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 8.333333%; - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - } + flex: 0 0 8.333333%; } .col-sm-2 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 16.666667%; - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - } + flex: 0 0 16.666667%; } .col-sm-3 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - } + flex: 0 0 25%; } .col-sm-4 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33.333333%; - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - } + flex: 0 0 33.333333%; } .col-sm-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 41.666667%; - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - } + flex: 0 0 41.666667%; } .col-sm-6 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - } + flex: 0 0 50%; } .col-sm-7 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 58.333333%; - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - } + flex: 0 0 58.333333%; } .col-sm-8 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66.666667%; - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - } + flex: 0 0 66.666667%; } .col-sm-9 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - } + flex: 0 0 75%; } .col-sm-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 83.333333%; - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - } + flex: 0 0 83.333333%; } .col-sm-11 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 91.666667%; - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - } + flex: 0 0 91.666667%; } .col-sm-12 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - } + flex: 0 0 100%; } .col-sm-pull-0 { - right: auto; - } + right: auto; } .col-sm-pull-1 { - right: 8.333333%; - } + right: 8.333333%; } .col-sm-pull-2 { - right: 16.666667%; - } + right: 16.666667%; } .col-sm-pull-3 { - right: 25%; - } + right: 25%; } .col-sm-pull-4 { - right: 33.333333%; - } + right: 33.333333%; } .col-sm-pull-5 { - right: 41.666667%; - } + right: 41.666667%; } .col-sm-pull-6 { - right: 50%; - } + right: 50%; } .col-sm-pull-7 { - right: 58.333333%; - } + right: 58.333333%; } .col-sm-pull-8 { - right: 66.666667%; - } + right: 66.666667%; } .col-sm-pull-9 { - right: 75%; - } + right: 75%; } .col-sm-pull-10 { - right: 83.333333%; - } + right: 83.333333%; } .col-sm-pull-11 { - right: 91.666667%; - } + right: 91.666667%; } .col-sm-pull-12 { - right: 100%; - } + right: 100%; } .col-sm-push-0 { - left: auto; - } + left: auto; } .col-sm-push-1 { - left: 8.333333%; - } + left: 8.333333%; } .col-sm-push-2 { - left: 16.666667%; - } + left: 16.666667%; } .col-sm-push-3 { - left: 25%; - } + left: 25%; } .col-sm-push-4 { - left: 33.333333%; - } + left: 33.333333%; } .col-sm-push-5 { - left: 41.666667%; - } + left: 41.666667%; } .col-sm-push-6 { - left: 50%; - } + left: 50%; } .col-sm-push-7 { - left: 58.333333%; - } + left: 58.333333%; } .col-sm-push-8 { - left: 66.666667%; - } + left: 66.666667%; } .col-sm-push-9 { - left: 75%; - } + left: 75%; } .col-sm-push-10 { - left: 83.333333%; - } + left: 83.333333%; } .col-sm-push-11 { - left: 91.666667%; - } + left: 91.666667%; } .col-sm-push-12 { - left: 100%; - } + left: 100%; } .col-sm-offset-0 { - margin-left: 0; - } + margin-left: 0%; } .col-sm-offset-1 { - margin-left: 8.333333%; - } + margin-left: 8.333333%; } .col-sm-offset-2 { - margin-left: 16.666667%; - } + margin-left: 16.666667%; } .col-sm-offset-3 { - margin-left: 25%; - } + margin-left: 25%; } .col-sm-offset-4 { - margin-left: 33.333333%; - } + margin-left: 33.333333%; } .col-sm-offset-5 { - margin-left: 41.666667%; - } + margin-left: 41.666667%; } .col-sm-offset-6 { - margin-left: 50%; - } + margin-left: 50%; } .col-sm-offset-7 { - margin-left: 58.333333%; - } + margin-left: 58.333333%; } .col-sm-offset-8 { - margin-left: 66.666667%; - } + margin-left: 66.666667%; } .col-sm-offset-9 { - margin-left: 75%; - } + margin-left: 75%; } .col-sm-offset-10 { - margin-left: 83.333333%; - } + margin-left: 83.333333%; } .col-sm-offset-11 { - margin-left: 91.666667%; - } + margin-left: 91.666667%; } .col-sm-offset-12 { - margin-left: 100%; - } -} + margin-left: 100%; } } @media (min-width: 48em) { .col-md-1 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 8.333333%; - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - } + flex: 0 0 8.333333%; } .col-md-2 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 16.666667%; - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - } + flex: 0 0 16.666667%; } .col-md-3 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - } + flex: 0 0 25%; } .col-md-4 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33.333333%; - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - } + flex: 0 0 33.333333%; } .col-md-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 41.666667%; - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - } + flex: 0 0 41.666667%; } .col-md-6 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - } + flex: 0 0 50%; } .col-md-7 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 58.333333%; - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - } + flex: 0 0 58.333333%; } .col-md-8 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66.666667%; - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - } + flex: 0 0 66.666667%; } .col-md-9 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - } + flex: 0 0 75%; } .col-md-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 83.333333%; - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - } + flex: 0 0 83.333333%; } .col-md-11 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 91.666667%; - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - } + flex: 0 0 91.666667%; } .col-md-12 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - } + flex: 0 0 100%; } .col-md-pull-0 { - right: auto; - } + right: auto; } .col-md-pull-1 { - right: 8.333333%; - } + right: 8.333333%; } .col-md-pull-2 { - right: 16.666667%; - } + right: 16.666667%; } .col-md-pull-3 { - right: 25%; - } + right: 25%; } .col-md-pull-4 { - right: 33.333333%; - } + right: 33.333333%; } .col-md-pull-5 { - right: 41.666667%; - } + right: 41.666667%; } .col-md-pull-6 { - right: 50%; - } + right: 50%; } .col-md-pull-7 { - right: 58.333333%; - } + right: 58.333333%; } .col-md-pull-8 { - right: 66.666667%; - } + right: 66.666667%; } .col-md-pull-9 { - right: 75%; - } + right: 75%; } .col-md-pull-10 { - right: 83.333333%; - } + right: 83.333333%; } .col-md-pull-11 { - right: 91.666667%; - } + right: 91.666667%; } .col-md-pull-12 { - right: 100%; - } + right: 100%; } .col-md-push-0 { - left: auto; - } + left: auto; } .col-md-push-1 { - left: 8.333333%; - } + left: 8.333333%; } .col-md-push-2 { - left: 16.666667%; - } + left: 16.666667%; } .col-md-push-3 { - left: 25%; - } + left: 25%; } .col-md-push-4 { - left: 33.333333%; - } + left: 33.333333%; } .col-md-push-5 { - left: 41.666667%; - } + left: 41.666667%; } .col-md-push-6 { - left: 50%; - } + left: 50%; } .col-md-push-7 { - left: 58.333333%; - } + left: 58.333333%; } .col-md-push-8 { - left: 66.666667%; - } + left: 66.666667%; } .col-md-push-9 { - left: 75%; - } + left: 75%; } .col-md-push-10 { - left: 83.333333%; - } + left: 83.333333%; } .col-md-push-11 { - left: 91.666667%; - } + left: 91.666667%; } .col-md-push-12 { - left: 100%; - } + left: 100%; } .col-md-offset-0 { - margin-left: 0; - } + margin-left: 0%; } .col-md-offset-1 { - margin-left: 8.333333%; - } + margin-left: 8.333333%; } .col-md-offset-2 { - margin-left: 16.666667%; - } + margin-left: 16.666667%; } .col-md-offset-3 { - margin-left: 25%; - } + margin-left: 25%; } .col-md-offset-4 { - margin-left: 33.333333%; - } + margin-left: 33.333333%; } .col-md-offset-5 { - margin-left: 41.666667%; - } + margin-left: 41.666667%; } .col-md-offset-6 { - margin-left: 50%; - } + margin-left: 50%; } .col-md-offset-7 { - margin-left: 58.333333%; - } + margin-left: 58.333333%; } .col-md-offset-8 { - margin-left: 66.666667%; - } + margin-left: 66.666667%; } .col-md-offset-9 { - margin-left: 75%; - } + margin-left: 75%; } .col-md-offset-10 { - margin-left: 83.333333%; - } + margin-left: 83.333333%; } .col-md-offset-11 { - margin-left: 91.666667%; - } + margin-left: 91.666667%; } .col-md-offset-12 { - margin-left: 100%; - } -} + margin-left: 100%; } } @media (min-width: 62em) { .col-lg-1 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 8.333333%; - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - } + flex: 0 0 8.333333%; } .col-lg-2 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 16.666667%; - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - } + flex: 0 0 16.666667%; } .col-lg-3 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - } + flex: 0 0 25%; } .col-lg-4 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33.333333%; - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - } + flex: 0 0 33.333333%; } .col-lg-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 41.666667%; - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - } + flex: 0 0 41.666667%; } .col-lg-6 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - } + flex: 0 0 50%; } .col-lg-7 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 58.333333%; - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - } + flex: 0 0 58.333333%; } .col-lg-8 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66.666667%; - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - } + flex: 0 0 66.666667%; } .col-lg-9 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - } + flex: 0 0 75%; } .col-lg-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 83.333333%; - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - } + flex: 0 0 83.333333%; } .col-lg-11 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 91.666667%; - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - } + flex: 0 0 91.666667%; } .col-lg-12 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - } + flex: 0 0 100%; } .col-lg-pull-0 { - right: auto; - } + right: auto; } .col-lg-pull-1 { - right: 8.333333%; - } + right: 8.333333%; } .col-lg-pull-2 { - right: 16.666667%; - } + right: 16.666667%; } .col-lg-pull-3 { - right: 25%; - } + right: 25%; } .col-lg-pull-4 { - right: 33.333333%; - } + right: 33.333333%; } .col-lg-pull-5 { - right: 41.666667%; - } + right: 41.666667%; } .col-lg-pull-6 { - right: 50%; - } + right: 50%; } .col-lg-pull-7 { - right: 58.333333%; - } + right: 58.333333%; } .col-lg-pull-8 { - right: 66.666667%; - } + right: 66.666667%; } .col-lg-pull-9 { - right: 75%; - } + right: 75%; } .col-lg-pull-10 { - right: 83.333333%; - } + right: 83.333333%; } .col-lg-pull-11 { - right: 91.666667%; - } + right: 91.666667%; } .col-lg-pull-12 { - right: 100%; - } + right: 100%; } .col-lg-push-0 { - left: auto; - } + left: auto; } .col-lg-push-1 { - left: 8.333333%; - } + left: 8.333333%; } .col-lg-push-2 { - left: 16.666667%; - } + left: 16.666667%; } .col-lg-push-3 { - left: 25%; - } + left: 25%; } .col-lg-push-4 { - left: 33.333333%; - } + left: 33.333333%; } .col-lg-push-5 { - left: 41.666667%; - } + left: 41.666667%; } .col-lg-push-6 { - left: 50%; - } + left: 50%; } .col-lg-push-7 { - left: 58.333333%; - } + left: 58.333333%; } .col-lg-push-8 { - left: 66.666667%; - } + left: 66.666667%; } .col-lg-push-9 { - left: 75%; - } + left: 75%; } .col-lg-push-10 { - left: 83.333333%; - } + left: 83.333333%; } .col-lg-push-11 { - left: 91.666667%; - } + left: 91.666667%; } .col-lg-push-12 { - left: 100%; - } + left: 100%; } .col-lg-offset-0 { - margin-left: 0; - } + margin-left: 0%; } .col-lg-offset-1 { - margin-left: 8.333333%; - } + margin-left: 8.333333%; } .col-lg-offset-2 { - margin-left: 16.666667%; - } + margin-left: 16.666667%; } .col-lg-offset-3 { - margin-left: 25%; - } + margin-left: 25%; } .col-lg-offset-4 { - margin-left: 33.333333%; - } + margin-left: 33.333333%; } .col-lg-offset-5 { - margin-left: 41.666667%; - } + margin-left: 41.666667%; } .col-lg-offset-6 { - margin-left: 50%; - } + margin-left: 50%; } .col-lg-offset-7 { - margin-left: 58.333333%; - } + margin-left: 58.333333%; } .col-lg-offset-8 { - margin-left: 66.666667%; - } + margin-left: 66.666667%; } .col-lg-offset-9 { - margin-left: 75%; - } + margin-left: 75%; } .col-lg-offset-10 { - margin-left: 83.333333%; - } + margin-left: 83.333333%; } .col-lg-offset-11 { - margin-left: 91.666667%; - } + margin-left: 91.666667%; } .col-lg-offset-12 { - margin-left: 100%; - } -} + margin-left: 100%; } } @media (min-width: 75em) { .col-xl-1 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 8.333333%; - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - } + flex: 0 0 8.333333%; } .col-xl-2 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 16.666667%; - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - } + flex: 0 0 16.666667%; } .col-xl-3 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - } + flex: 0 0 25%; } .col-xl-4 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33.333333%; - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - } + flex: 0 0 33.333333%; } .col-xl-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 41.666667%; - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - } + flex: 0 0 41.666667%; } .col-xl-6 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - } + flex: 0 0 50%; } .col-xl-7 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 58.333333%; - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - } + flex: 0 0 58.333333%; } .col-xl-8 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66.666667%; - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - } + flex: 0 0 66.666667%; } .col-xl-9 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - } + flex: 0 0 75%; } .col-xl-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 83.333333%; - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - } + flex: 0 0 83.333333%; } .col-xl-11 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 91.666667%; - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - } + flex: 0 0 91.666667%; } .col-xl-12 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - } + flex: 0 0 100%; } .col-xl-pull-0 { - right: auto; - } + right: auto; } .col-xl-pull-1 { - right: 8.333333%; - } + right: 8.333333%; } .col-xl-pull-2 { - right: 16.666667%; - } + right: 16.666667%; } .col-xl-pull-3 { - right: 25%; - } + right: 25%; } .col-xl-pull-4 { - right: 33.333333%; - } + right: 33.333333%; } .col-xl-pull-5 { - right: 41.666667%; - } + right: 41.666667%; } .col-xl-pull-6 { - right: 50%; - } + right: 50%; } .col-xl-pull-7 { - right: 58.333333%; - } + right: 58.333333%; } .col-xl-pull-8 { - right: 66.666667%; - } + right: 66.666667%; } .col-xl-pull-9 { - right: 75%; - } + right: 75%; } .col-xl-pull-10 { - right: 83.333333%; - } + right: 83.333333%; } .col-xl-pull-11 { - right: 91.666667%; - } + right: 91.666667%; } .col-xl-pull-12 { - right: 100%; - } + right: 100%; } .col-xl-push-0 { - left: auto; - } + left: auto; } .col-xl-push-1 { - left: 8.333333%; - } + left: 8.333333%; } .col-xl-push-2 { - left: 16.666667%; - } + left: 16.666667%; } .col-xl-push-3 { - left: 25%; - } + left: 25%; } .col-xl-push-4 { - left: 33.333333%; - } + left: 33.333333%; } .col-xl-push-5 { - left: 41.666667%; - } + left: 41.666667%; } .col-xl-push-6 { - left: 50%; - } + left: 50%; } .col-xl-push-7 { - left: 58.333333%; - } + left: 58.333333%; } .col-xl-push-8 { - left: 66.666667%; - } + left: 66.666667%; } .col-xl-push-9 { - left: 75%; - } + left: 75%; } .col-xl-push-10 { - left: 83.333333%; - } + left: 83.333333%; } .col-xl-push-11 { - left: 91.666667%; - } + left: 91.666667%; } .col-xl-push-12 { - left: 100%; - } + left: 100%; } .col-xl-offset-0 { - margin-left: 0; - } + margin-left: 0%; } .col-xl-offset-1 { - margin-left: 8.333333%; - } + margin-left: 8.333333%; } .col-xl-offset-2 { - margin-left: 16.666667%; - } + margin-left: 16.666667%; } .col-xl-offset-3 { - margin-left: 25%; - } + margin-left: 25%; } .col-xl-offset-4 { - margin-left: 33.333333%; - } + margin-left: 33.333333%; } .col-xl-offset-5 { - margin-left: 41.666667%; - } + margin-left: 41.666667%; } .col-xl-offset-6 { - margin-left: 50%; - } + margin-left: 50%; } .col-xl-offset-7 { - margin-left: 58.333333%; - } + margin-left: 58.333333%; } .col-xl-offset-8 { - margin-left: 66.666667%; - } + margin-left: 66.666667%; } .col-xl-offset-9 { - margin-left: 75%; - } + margin-left: 75%; } .col-xl-offset-10 { - margin-left: 83.333333%; - } + margin-left: 83.333333%; } .col-xl-offset-11 { - margin-left: 91.666667%; - } + margin-left: 91.666667%; } .col-xl-offset-12 { - margin-left: 100%; - } -} + margin-left: 100%; } } .col-xs-first { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; -} + order: -1; } .col-xs-last { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; -} + order: 1; } @media (min-width: 34em) { .col-sm-first { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; - } + order: -1; } .col-sm-last { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; - } -} + order: 1; } } @media (min-width: 48em) { .col-md-first { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; - } + order: -1; } .col-md-last { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; - } -} + order: 1; } } @media (min-width: 62em) { .col-lg-first { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; - } + order: -1; } .col-lg-last { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; - } -} + order: 1; } } @media (min-width: 75em) { .col-xl-first { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; - } + order: -1; } .col-xl-last { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; - } -} + order: 1; } } .row-xs-top { - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; -} + align-items: flex-start; } .row-xs-center { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} + align-items: center; } .row-xs-bottom { - -webkit-box-align: end; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; -} + align-items: flex-end; } @media (min-width: 34em) { .row-sm-top { - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - } + align-items: flex-start; } .row-sm-center { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - } + align-items: center; } .row-sm-bottom { - -webkit-box-align: end; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; - } -} + align-items: flex-end; } } @media (min-width: 48em) { .row-md-top { - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - } + align-items: flex-start; } .row-md-center { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - } + align-items: center; } .row-md-bottom { - -webkit-box-align: end; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; - } -} + align-items: flex-end; } } @media (min-width: 62em) { .row-lg-top { - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - } + align-items: flex-start; } .row-lg-center { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - } + align-items: center; } .row-lg-bottom { - -webkit-box-align: end; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; - } -} + align-items: flex-end; } } @media (min-width: 75em) { .row-xl-top { - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - } + align-items: flex-start; } .row-xl-center { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - } + align-items: center; } .row-xl-bottom { - -webkit-box-align: end; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; - } -} + align-items: flex-end; } } .col-xs-top { - -webkit-align-self: flex-start; - -ms-flex-item-align: start; - align-self: flex-start; -} + align-self: flex-start; } .col-xs-center { - -webkit-align-self: center; - -ms-flex-item-align: center; - align-self: center; -} + align-self: center; } .col-xs-bottom { - -webkit-align-self: flex-end; - -ms-flex-item-align: end; - align-self: flex-end; -} + align-self: flex-end; } @media (min-width: 34em) { .col-sm-top { - -webkit-align-self: flex-start; - -ms-flex-item-align: start; - align-self: flex-start; - } + align-self: flex-start; } .col-sm-center { - -webkit-align-self: center; - -ms-flex-item-align: center; - align-self: center; - } + align-self: center; } .col-sm-bottom { - -webkit-align-self: flex-end; - -ms-flex-item-align: end; - align-self: flex-end; - } -} + align-self: flex-end; } } @media (min-width: 48em) { .col-md-top { - -webkit-align-self: flex-start; - -ms-flex-item-align: start; - align-self: flex-start; - } + align-self: flex-start; } .col-md-center { - -webkit-align-self: center; - -ms-flex-item-align: center; - align-self: center; - } + align-self: center; } .col-md-bottom { - -webkit-align-self: flex-end; - -ms-flex-item-align: end; - align-self: flex-end; - } -} + align-self: flex-end; } } @media (min-width: 62em) { .col-lg-top { - -webkit-align-self: flex-start; - -ms-flex-item-align: start; - align-self: flex-start; - } + align-self: flex-start; } .col-lg-center { - -webkit-align-self: center; - -ms-flex-item-align: center; - align-self: center; - } + align-self: center; } .col-lg-bottom { - -webkit-align-self: flex-end; - -ms-flex-item-align: end; - align-self: flex-end; - } -} + align-self: flex-end; } } @media (min-width: 75em) { .col-xl-top { - -webkit-align-self: flex-start; - -ms-flex-item-align: start; - align-self: flex-start; - } + align-self: flex-start; } .col-xl-center { - -webkit-align-self: center; - -ms-flex-item-align: center; - align-self: center; - } + align-self: center; } .col-xl-bottom { - -webkit-align-self: flex-end; - -ms-flex-item-align: end; - align-self: flex-end; - } -} + align-self: flex-end; } } .table { width: 100%; max-width: 100%; - margin-bottom: 1rem; -} -.table th, .table td { - padding: .75rem; - line-height: 1.5; - vertical-align: top; - border-top: 1px solid #eceeef; -} -.table thead th { - vertical-align: bottom; - border-bottom: 2px solid #eceeef; -} -.table tbody + tbody { - border-top: 2px solid #eceeef; -} -.table .table { - background-color: #fff; -} + margin-bottom: 1rem; } + .table th, + .table td { + padding: 0.75rem; + line-height: 1.5; + vertical-align: top; + border-top: 1px solid #eceeef; } + .table thead th { + vertical-align: bottom; + border-bottom: 2px solid #eceeef; } + .table tbody + tbody { + border-top: 2px solid #eceeef; } + .table .table { + background-color: #fff; } -.table-sm th, .table-sm td { - padding: .3rem; -} +.table-sm th, +.table-sm td { + padding: 0.3rem; } .table-bordered { - border: 1px solid #eceeef; -} -.table-bordered th, .table-bordered td { - border: 1px solid #eceeef; -} -.table-bordered thead th, .table-bordered thead td { - border-bottom-width: 2px; -} + border: 1px solid #eceeef; } + .table-bordered th, + .table-bordered td { + border: 1px solid #eceeef; } + .table-bordered thead th, + .table-bordered thead td { + border-bottom-width: 2px; } .table-striped tbody tr:nth-of-type(odd) { - background-color: #f9f9f9; -} + background-color: #f9f9f9; } .table-hover tbody tr:hover { - background-color: #f5f5f5; -} + background-color: #f5f5f5; } -.table-active, .table-active > th, .table-active > td { - background-color: #f5f5f5; -} +.table-active, +.table-active > th, +.table-active > td { + background-color: #f5f5f5; } .table-hover .table-active:hover { - background-color: #e8e8e8; -} -.table-hover .table-active:hover > td, .table-hover .table-active:hover > th { - background-color: #e8e8e8; -} + background-color: #e8e8e8; } + .table-hover .table-active:hover > td, + .table-hover .table-active:hover > th { + background-color: #e8e8e8; } -.table-success, .table-success > th, .table-success > td { - background-color: #dff0d8; -} +.table-success, +.table-success > th, +.table-success > td { + background-color: #dff0d8; } .table-hover .table-success:hover { - background-color: #d0e9c6; -} -.table-hover .table-success:hover > td, .table-hover .table-success:hover > th { - background-color: #d0e9c6; -} + background-color: #d0e9c6; } + .table-hover .table-success:hover > td, + .table-hover .table-success:hover > th { + background-color: #d0e9c6; } -.table-info, .table-info > th, .table-info > td { - background-color: #d9edf7; -} +.table-info, +.table-info > th, +.table-info > td { + background-color: #d9edf7; } .table-hover .table-info:hover { - background-color: #c4e3f3; -} -.table-hover .table-info:hover > td, .table-hover .table-info:hover > th { - background-color: #c4e3f3; -} + background-color: #c4e3f3; } + .table-hover .table-info:hover > td, + .table-hover .table-info:hover > th { + background-color: #c4e3f3; } -.table-warning, .table-warning > th, .table-warning > td { - background-color: #fcf8e3; -} +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #fcf8e3; } .table-hover .table-warning:hover { - background-color: #faf2cc; -} -.table-hover .table-warning:hover > td, .table-hover .table-warning:hover > th { - background-color: #faf2cc; -} + background-color: #faf2cc; } + .table-hover .table-warning:hover > td, + .table-hover .table-warning:hover > th { + background-color: #faf2cc; } -.table-danger, .table-danger > th, .table-danger > td { - background-color: #f2dede; -} +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f2dede; } .table-hover .table-danger:hover { - background-color: #ebcccc; -} -.table-hover .table-danger:hover > td, .table-hover .table-danger:hover > th { - background-color: #ebcccc; -} + background-color: #ebcccc; } + .table-hover .table-danger:hover > td, + .table-hover .table-danger:hover > th { + background-color: #ebcccc; } .table-responsive { display: block; width: 100%; - overflow-x: auto; -} + overflow-x: auto; } .thead-inverse th { color: #fff; - background-color: #373a3c; -} + background-color: #373a3c; } .thead-default th { color: #55595c; - background-color: #eceeef; -} + background-color: #eceeef; } .table-inverse { color: #eceeef; - background-color: #373a3c; -} -.table-inverse.table-bordered { - border: 0; -} -.table-inverse th, .table-inverse td, .table-inverse thead th { - border-color: #55595c; -} + background-color: #373a3c; } + .table-inverse.table-bordered { + border: 0; } + .table-inverse th, + .table-inverse td, + .table-inverse thead th { + border-color: #55595c; } .table-reflow thead { - float: left; -} + float: left; } + .table-reflow tbody { display: block; - white-space: nowrap; -} -.table-reflow th, .table-reflow td { + white-space: nowrap; } + +.table-reflow th, +.table-reflow td { border-top: 1px solid #eceeef; - border-left: 1px solid #eceeef; -} -.table-reflow th:last-child, .table-reflow td:last-child { - border-right: 1px solid #eceeef; -} -.table-reflow thead:last-child tr:last-child th, .table-reflow thead:last-child tr:last-child td, .table-reflow tbody:last-child tr:last-child th, .table-reflow tbody:last-child tr:last-child td, .table-reflow tfoot:last-child tr:last-child th, .table-reflow tfoot:last-child tr:last-child td { - border-bottom: 1px solid #eceeef; -} + border-left: 1px solid #eceeef; } + .table-reflow th:last-child, + .table-reflow td:last-child { + border-right: 1px solid #eceeef; } + +.table-reflow thead:last-child tr:last-child th, +.table-reflow thead:last-child tr:last-child td, +.table-reflow tbody:last-child tr:last-child th, +.table-reflow tbody:last-child tr:last-child td, +.table-reflow tfoot:last-child tr:last-child th, +.table-reflow tfoot:last-child tr:last-child td { + border-bottom: 1px solid #eceeef; } + .table-reflow tr { - float: left; -} -.table-reflow tr th, .table-reflow tr td { - display: block !important; - border: 1px solid #eceeef; -} + float: left; } + .table-reflow tr th, + .table-reflow tr td { + display: block !important; + border: 1px solid #eceeef; } .form-control { display: block; width: 100%; - padding: .5rem .75rem; + padding: 0.5rem 0.75rem; font-size: 1rem; line-height: 1.5; color: #55595c; background-color: #fff; background-image: none; border: 1px solid #ccc; - border-radius: .25rem; - -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:not(textarea), .form-control:not(select[size]), .form-control:not(select[multiple]) { - height: 2.625rem; -} -.form-control:focus { - border-color: #66afe9; - outline: none; -} -.form-control::-webkit-input-placeholder { - color: #999; - opacity: 1; -} -.form-control::-moz-placeholder { - color: #999; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #999; - opacity: 1; -} -.form-control::placeholder { - color: #999; - opacity: 1; -} -.form-control:disabled, .form-control[readonly], fieldset[disabled] .form-control { - background-color: #eceeef; - opacity: 1; -} -.form-control[disabled], fieldset[disabled] .form-control { - cursor: false; -} + border-radius: 0.25rem; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; } + .form-control:not(textarea), + .form-control:not(select[size]), + .form-control:not(select[multiple]) { + height: 2.625rem; } + .form-control:focus { + border-color: #66afe9; + outline: none; } + .form-control::placeholder { + color: #999; + opacity: 1; } + .form-control:disabled, + .form-control[readonly], + fieldset[disabled] .form-control { + background-color: #eceeef; + opacity: 1; } + .form-control[disabled], + fieldset[disabled] .form-control { + cursor: not-allowed; } -.form-control-file, .form-control-range { - display: block; -} +.form-control-file, +.form-control-range { + display: block; } .form-control-label { - padding: .5625rem .75rem; - margin-bottom: 0; -} + padding: 0.5625rem 0.75rem; + margin-bottom: 0; } .form-control-static { min-height: 2.625rem; - padding-top: .5625rem; - padding-bottom: .5625rem; - margin-bottom: 0; -} -.form-control-static.form-control-sm, .input-group-sm > .form-control-static.form-control, .input-group-sm > .form-control-static.input-group-addon, .input-group-sm > .input-group-btn > .form-control-static.btn, .form-control-static.form-control-lg, .input-group-lg > .form-control-static.form-control, .input-group-lg > .form-control-static.input-group-addon, .input-group-lg > .input-group-btn > .form-control-static.btn { - padding-right: 0; - padding-left: 0; -} + padding-top: 0.5625rem; + padding-bottom: 0.5625rem; + margin-bottom: 0; } + .form-control-static.form-control-sm, + .input-group-sm > .form-control-static.form-control, + .input-group-sm > .form-control-static.input-group-addon, + .input-group-sm > .input-group-btn > .form-control-static.btn, + .form-control-static.form-control-lg, .input-group-lg > .form-control-static.form-control, + .input-group-lg > .form-control-static.input-group-addon, + .input-group-lg > .input-group-btn > .form-control-static.btn { + padding-right: 0; + padding-left: 0; } -.form-control-sm, .input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn { +.form-control-sm, .input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { height: 2rem; - padding: .3rem .75rem; - font-size: .85rem; + padding: 0.3rem 0.75rem; + font-size: 0.85rem; line-height: 1.5; - border-radius: .2rem; -} + border-radius: 0.2rem; } -.form-control-lg, .input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { +.form-control-lg, .input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { height: 3.291667rem; - padding: .75rem 1.5rem; + padding: 0.75rem 1.5rem; font-size: 1.25rem; line-height: 1.333333; - border-radius: .3rem; -} + border-radius: 0.3rem; } .form-group { - margin-bottom: 15px; -} + margin-bottom: 15px; } -.radio, .checkbox { +.radio, +.checkbox { position: relative; display: block; - margin-bottom: .75rem; -} -.radio label, .checkbox label { - padding-left: 1.25rem; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio label input:only-child, .checkbox label input:only-child { - position: static; -} + margin-bottom: 0.75rem; } + .radio label, + .checkbox label { + padding-left: 1.25rem; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; } + .radio label input:only-child, + .checkbox label input:only-child { + position: static; } -.radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { position: absolute; margin-top: .25rem; - margin-left: -1.25rem; -} + margin-left: -1.25rem; } -.radio + .radio, .checkbox + .checkbox { - margin-top: -.25rem; -} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -.25rem; } -.radio-inline, .checkbox-inline { +.radio-inline, +.checkbox-inline { position: relative; display: inline-block; padding-left: 1.25rem; margin-bottom: 0; font-weight: normal; vertical-align: middle; - cursor: pointer; -} + cursor: pointer; } -.radio-inline + .radio-inline, .checkbox-inline + .checkbox-inline { +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { margin-top: 0; - margin-left: .75rem; -} + margin-left: .75rem; } -input[type="radio"]:disabled, input[type="radio"].disabled, fieldset[disabled] input[type="radio"], input[type="checkbox"]:disabled, input[type="checkbox"].disabled, fieldset[disabled] input[type="checkbox"] { - cursor: false; -} +input[type="radio"]:disabled, +input[type="radio"].disabled, +fieldset[disabled] input[type="radio"], +input[type="checkbox"]:disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; } -.radio-inline.disabled, fieldset[disabled] .radio-inline, .checkbox-inline.disabled, fieldset[disabled] .checkbox-inline { - cursor: false; -} +.radio-inline.disabled, +fieldset[disabled] .radio-inline, +.checkbox-inline.disabled, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; } -.radio.disabled label, fieldset[disabled] .radio label, .checkbox.disabled label, fieldset[disabled] .checkbox label { - cursor: false; -} +.radio.disabled label, +fieldset[disabled] .radio label, +.checkbox.disabled label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; } .has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 3.28125rem; -} + position: relative; } + .has-feedback .form-control { + padding-right: 3.28125rem; } .form-control-feedback { position: absolute; @@ -2284,460 +1616,545 @@ input[type="radio"]:disabled, input[type="radio"].disabled, fieldset[disabled] i height: 2.625rem; line-height: 2.625rem; text-align: center; - pointer-events: none; -} + pointer-events: none; } -.input-lg + .form-control-feedback, .input-group-lg + .form-control-feedback { +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback { width: 3.291667rem; height: 3.291667rem; - line-height: 3.291667rem; -} + line-height: 3.291667rem; } -.input-sm + .form-control-feedback, .input-group-sm + .form-control-feedback { +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback { width: 2rem; height: 2rem; - line-height: 2rem; -} + line-height: 2rem; } + +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; } -.has-success .help-block, .has-success .control-label, .has-success .radio, .has-success .checkbox, .has-success .radio-inline, .has-success .checkbox-inline, .has-success.radio label, .has-success.checkbox label, .has-success.radio-inline label, .has-success.checkbox-inline label { - color: #3c763d; -} .has-success .form-control { - border-color: #3c763d; -} -.has-success .form-control:focus { - border-color: #2b542c; -} + border-color: #3c763d; } + .has-success .form-control:focus { + border-color: #2b542c; } + .has-success .input-group-addon { color: #3c763d; - background-color: #dff0d8; border-color: #3c763d; -} -.has-success .form-control-feedback { - color: #3c763d; -} + background-color: #dff0d8; } + +.has-success .form-control-feedback { + color: #3c763d; } + +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; } -.has-warning .help-block, .has-warning .control-label, .has-warning .radio, .has-warning .checkbox, .has-warning .radio-inline, .has-warning .checkbox-inline, .has-warning.radio label, .has-warning.checkbox label, .has-warning.radio-inline label, .has-warning.checkbox-inline label { - color: #8a6d3b; -} .has-warning .form-control { - border-color: #8a6d3b; -} -.has-warning .form-control:focus { - border-color: #66512c; -} + border-color: #8a6d3b; } + .has-warning .form-control:focus { + border-color: #66512c; } + .has-warning .input-group-addon { color: #8a6d3b; - background-color: #fcf8e3; border-color: #8a6d3b; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} + background-color: #fcf8e3; } + +.has-warning .form-control-feedback { + color: #8a6d3b; } + +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; } -.has-error .help-block, .has-error .control-label, .has-error .radio, .has-error .checkbox, .has-error .radio-inline, .has-error .checkbox-inline, .has-error.radio label, .has-error.checkbox label, .has-error.radio-inline label, .has-error.checkbox-inline label { - color: #a94442; -} .has-error .form-control { - border-color: #a94442; -} -.has-error .form-control:focus { - border-color: #843534; -} + border-color: #a94442; } + .has-error .form-control:focus { + border-color: #843534; } + .has-error .input-group-addon { color: #a94442; - background-color: #f2dede; border-color: #a94442; -} + background-color: #f2dede; } + .has-error .form-control-feedback { - color: #a94442; -} + color: #a94442; } .has-feedback label ~ .form-control-feedback { - top: 6; -} + top: 6; } + .has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} + top: 0; } .help-block { display: block; margin-top: .25rem; margin-bottom: .75rem; - color: #747a7f; -} + color: #747a7f; } @media (min-width: 34em) { .form-inline .form-group { display: inline-block; margin-bottom: 0; - vertical-align: middle; - } + vertical-align: middle; } .form-inline .form-control { display: inline-block; width: auto; - vertical-align: middle; - } + vertical-align: middle; } .form-inline .form-control-static { - display: inline-block; - } + display: inline-block; } .form-inline .input-group { display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, .form-inline .input-group .input-group-btn, .form-inline .input-group .form-control { - width: auto; - } + vertical-align: middle; } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; } .form-inline .input-group > .form-control { - width: 100%; - } + width: 100%; } .form-inline .control-label { margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, .form-inline .checkbox { + vertical-align: middle; } + .form-inline .radio, + .form-inline .checkbox { display: inline-block; margin-top: 0; margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { + vertical-align: middle; } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { position: relative; - margin-left: 0; - } + margin-left: 0; } .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} + top: 0; } } .btn { display: inline-block; - padding: .5rem .75rem; - font-size: 1rem; font-weight: normal; - line-height: 1.5; text-align: center; white-space: nowrap; vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; + touch-action: manipulation; cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: .0625rem solid transparent; - border-radius: .25rem; - -webkit-transition: all .2s ease-in-out; - -o-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:focus, .btn:hover { - text-decoration: none; -} -.btn.focus { - text-decoration: none; -} -.btn:active, .btn.active { - background-image: none; - outline: 0; -} -.btn.disabled, .btn:disabled, fieldset[disabled] .btn { - cursor: false; - opacity: .65; -} + user-select: none; + border: 0.0625rem solid transparent; + padding: 0.5rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + transition: all 0.2s ease-in-out; } + .btn:focus, + .btn.focus, + .btn:active:focus, + .btn:active.focus, + .btn.active:focus, + .btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } + .btn:focus, + .btn:hover { + text-decoration: none; } + .btn.focus { + text-decoration: none; } + .btn:active, + .btn.active { + background-image: none; + outline: 0; } + .btn.disabled, + .btn:disabled, + fieldset[disabled] .btn { + cursor: not-allowed; + opacity: .65; } -a.btn.disaabled, fieldset[disabled] a.btn { - pointer-events: none; -} +a.btn.disaabled, +fieldset[disabled] a.btn { + pointer-events: none; } .btn-primary { color: #fff; background-color: #0275d8; - border-color: #0267bf; -} -.btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active, .open > .btn-primary.dropdown-toggle { - color: #fff; - background-color: #025aa5; - border-color: #014682; -} -.btn-primary:hover { - color: #fff; - background-color: #025aa5; - border-color: #014682; -} -.btn-primary:active, .btn-primary.active, .open > .btn-primary.dropdown-toggle { - background-image: none; -} -.btn-primary.disabled, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary:disabled, .btn-primary:disabled:focus, .btn-primary:disabled.focus, .btn-primary:disabled:active, .btn-primary:disabled.active, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary.active { - background-color: #0275d8; - border-color: #0267bf; -} -.btn-primary.disabled:hover, .btn-primary:disabled:hover, fieldset[disabled] .btn-primary:hover { - background-color: #0275d8; - border-color: #0267bf; -} -.btn-primary .badge { - color: #0275d8; - background-color: #fff; -} + border-color: #0267bf; } + .btn-primary:focus, + .btn-primary.focus, + .btn-primary:active, + .btn-primary.active, + .open > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #025aa5; + border-color: #014682; } + .btn-primary:hover { + color: #fff; + background-color: #025aa5; + border-color: #014682; } + .btn-primary:active, + .btn-primary.active, + .open > .btn-primary.dropdown-toggle { + background-image: none; } + .btn-primary.disabled, + .btn-primary.disabled:focus, + .btn-primary.disabled.focus, + .btn-primary.disabled:active, + .btn-primary.disabled.active, + .btn-primary:disabled, + .btn-primary:disabled:focus, + .btn-primary:disabled.focus, + .btn-primary:disabled:active, + .btn-primary:disabled.active, + fieldset[disabled] .btn-primary, + fieldset[disabled] .btn-primary:focus, + fieldset[disabled] .btn-primary.focus, + fieldset[disabled] .btn-primary:active, + fieldset[disabled] .btn-primary.active { + background-color: #0275d8; + border-color: #0267bf; } + .btn-primary.disabled:hover, + .btn-primary:disabled:hover, + fieldset[disabled] .btn-primary:hover { + background-color: #0275d8; + border-color: #0267bf; } + .btn-primary .badge { + color: #0275d8; + background-color: #fff; } .btn-secondary { color: #373a3c; background-color: #fff; - border-color: #ccc; -} -.btn-secondary:focus, .btn-secondary.focus, .btn-secondary:active, .btn-secondary.active, .open > .btn-secondary.dropdown-toggle { - color: #373a3c; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-secondary:hover { - color: #373a3c; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-secondary:active, .btn-secondary.active, .open > .btn-secondary.dropdown-toggle { - background-image: none; -} -.btn-secondary.disabled, .btn-secondary.disabled:focus, .btn-secondary.disabled.focus, .btn-secondary.disabled:active, .btn-secondary.disabled.active, .btn-secondary:disabled, .btn-secondary:disabled:focus, .btn-secondary:disabled.focus, .btn-secondary:disabled:active, .btn-secondary:disabled.active, fieldset[disabled] .btn-secondary, fieldset[disabled] .btn-secondary:focus, fieldset[disabled] .btn-secondary.focus, fieldset[disabled] .btn-secondary:active, fieldset[disabled] .btn-secondary.active { - background-color: #fff; - border-color: #ccc; -} -.btn-secondary.disabled:hover, .btn-secondary:disabled:hover, fieldset[disabled] .btn-secondary:hover { - background-color: #fff; - border-color: #ccc; -} -.btn-secondary .badge { - color: #fff; - background-color: #373a3c; -} + border-color: #ccc; } + .btn-secondary:focus, + .btn-secondary.focus, + .btn-secondary:active, + .btn-secondary.active, + .open > .btn-secondary.dropdown-toggle { + color: #373a3c; + background-color: #e6e6e6; + border-color: #adadad; } + .btn-secondary:hover { + color: #373a3c; + background-color: #e6e6e6; + border-color: #adadad; } + .btn-secondary:active, + .btn-secondary.active, + .open > .btn-secondary.dropdown-toggle { + background-image: none; } + .btn-secondary.disabled, + .btn-secondary.disabled:focus, + .btn-secondary.disabled.focus, + .btn-secondary.disabled:active, + .btn-secondary.disabled.active, + .btn-secondary:disabled, + .btn-secondary:disabled:focus, + .btn-secondary:disabled.focus, + .btn-secondary:disabled:active, + .btn-secondary:disabled.active, + fieldset[disabled] .btn-secondary, + fieldset[disabled] .btn-secondary:focus, + fieldset[disabled] .btn-secondary.focus, + fieldset[disabled] .btn-secondary:active, + fieldset[disabled] .btn-secondary.active { + background-color: #fff; + border-color: #ccc; } + .btn-secondary.disabled:hover, + .btn-secondary:disabled:hover, + fieldset[disabled] .btn-secondary:hover { + background-color: #fff; + border-color: #ccc; } + .btn-secondary .badge { + color: #fff; + background-color: #373a3c; } .btn-info { color: #fff; background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:focus, .btn-info.focus, .btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:hover { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle { - background-image: none; -} -.btn-info.disabled, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info.disabled:active, .btn-info.disabled.active, .btn-info:disabled, .btn-info:disabled:focus, .btn-info:disabled.focus, .btn-info:disabled:active, .btn-info:disabled.active, fieldset[disabled] .btn-info, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info.focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info.disabled:hover, .btn-info:disabled:hover, fieldset[disabled] .btn-info:hover { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} + border-color: #46b8da; } + .btn-info:focus, + .btn-info.focus, + .btn-info:active, + .btn-info.active, + .open > .btn-info.dropdown-toggle { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; } + .btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; } + .btn-info:active, + .btn-info.active, + .open > .btn-info.dropdown-toggle { + background-image: none; } + .btn-info.disabled, + .btn-info.disabled:focus, + .btn-info.disabled.focus, + .btn-info.disabled:active, + .btn-info.disabled.active, + .btn-info:disabled, + .btn-info:disabled:focus, + .btn-info:disabled.focus, + .btn-info:disabled:active, + .btn-info:disabled.active, + fieldset[disabled] .btn-info, + fieldset[disabled] .btn-info:focus, + fieldset[disabled] .btn-info.focus, + fieldset[disabled] .btn-info:active, + fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; } + .btn-info.disabled:hover, + .btn-info:disabled:hover, + fieldset[disabled] .btn-info:hover { + background-color: #5bc0de; + border-color: #46b8da; } + .btn-info .badge { + color: #5bc0de; + background-color: #fff; } .btn-success { color: #fff; background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:focus, .btn-success.focus, .btn-success:active, .btn-success.active, .open > .btn-success.dropdown-toggle { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:hover { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active, .btn-success.active, .open > .btn-success.dropdown-toggle { - background-image: none; -} -.btn-success.disabled, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success:disabled, .btn-success:disabled:focus, .btn-success:disabled.focus, .btn-success:disabled:active, .btn-success:disabled.active, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success.focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success.disabled:hover, .btn-success:disabled:hover, fieldset[disabled] .btn-success:hover { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} + border-color: #4cae4c; } + .btn-success:focus, + .btn-success.focus, + .btn-success:active, + .btn-success.active, + .open > .btn-success.dropdown-toggle { + color: #fff; + background-color: #449d44; + border-color: #398439; } + .btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; } + .btn-success:active, + .btn-success.active, + .open > .btn-success.dropdown-toggle { + background-image: none; } + .btn-success.disabled, + .btn-success.disabled:focus, + .btn-success.disabled.focus, + .btn-success.disabled:active, + .btn-success.disabled.active, + .btn-success:disabled, + .btn-success:disabled:focus, + .btn-success:disabled.focus, + .btn-success:disabled:active, + .btn-success:disabled.active, + fieldset[disabled] .btn-success, + fieldset[disabled] .btn-success:focus, + fieldset[disabled] .btn-success.focus, + fieldset[disabled] .btn-success:active, + fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; } + .btn-success.disabled:hover, + .btn-success:disabled:hover, + fieldset[disabled] .btn-success:hover { + background-color: #5cb85c; + border-color: #4cae4c; } + .btn-success .badge { + color: #5cb85c; + background-color: #fff; } .btn-warning { color: #fff; background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:focus, .btn-warning.focus, .btn-warning:active, .btn-warning.active, .open > .btn-warning.dropdown-toggle { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:hover { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active, .btn-warning.active, .open > .btn-warning.dropdown-toggle { - background-image: none; -} -.btn-warning.disabled, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning.disabled:active, .btn-warning.disabled.active, .btn-warning:disabled, .btn-warning:disabled:focus, .btn-warning:disabled.focus, .btn-warning:disabled:active, .btn-warning:disabled.active, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning.focus, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning.disabled:hover, .btn-warning:disabled:hover, fieldset[disabled] .btn-warning:hover { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} + border-color: #eea236; } + .btn-warning:focus, + .btn-warning.focus, + .btn-warning:active, + .btn-warning.active, + .open > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #ec971f; + border-color: #d58512; } + .btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; } + .btn-warning:active, + .btn-warning.active, + .open > .btn-warning.dropdown-toggle { + background-image: none; } + .btn-warning.disabled, + .btn-warning.disabled:focus, + .btn-warning.disabled.focus, + .btn-warning.disabled:active, + .btn-warning.disabled.active, + .btn-warning:disabled, + .btn-warning:disabled:focus, + .btn-warning:disabled.focus, + .btn-warning:disabled:active, + .btn-warning:disabled.active, + fieldset[disabled] .btn-warning, + fieldset[disabled] .btn-warning:focus, + fieldset[disabled] .btn-warning.focus, + fieldset[disabled] .btn-warning:active, + fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; } + .btn-warning.disabled:hover, + .btn-warning:disabled:hover, + 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, .btn-danger:active, .btn-danger.active, .open > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:hover { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active, .btn-danger.active, .open > .btn-danger.dropdown-toggle { - background-image: none; -} -.btn-danger.disabled, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger.disabled:active, .btn-danger.disabled.active, .btn-danger:disabled, .btn-danger:disabled:focus, .btn-danger:disabled.focus, .btn-danger:disabled:active, .btn-danger:disabled.active, fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger.focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger.disabled:hover, .btn-danger:disabled:hover, fieldset[disabled] .btn-danger:hover { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} + border-color: #d43f3a; } + .btn-danger:focus, + .btn-danger.focus, + .btn-danger:active, + .btn-danger.active, + .open > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; } + .btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; } + .btn-danger:active, + .btn-danger.active, + .open > .btn-danger.dropdown-toggle { + background-image: none; } + .btn-danger.disabled, + .btn-danger.disabled:focus, + .btn-danger.disabled.focus, + .btn-danger.disabled:active, + .btn-danger.disabled.active, + .btn-danger:disabled, + .btn-danger:disabled:focus, + .btn-danger:disabled.focus, + .btn-danger:disabled:active, + .btn-danger:disabled.active, + fieldset[disabled] .btn-danger, + fieldset[disabled] .btn-danger:focus, + fieldset[disabled] .btn-danger.focus, + fieldset[disabled] .btn-danger:active, + fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; } + .btn-danger.disabled:hover, + .btn-danger:disabled:hover, + fieldset[disabled] .btn-danger:hover { + background-color: #d9534f; + border-color: #d43f3a; } + .btn-danger .badge { + color: #d9534f; + background-color: #fff; } .btn-link { font-weight: normal; color: #0275d8; - border-radius: 0; -} -.btn-link, .btn-link:active, .btn-link.active, .btn-link:disabled, fieldset[disabled] .btn-link { - background-color: transparent; -} -.btn-link, .btn-link:focus, .btn-link:active { - border-color: transparent; -} -.btn-link:hover { - border-color: transparent; -} -.btn-link:focus, .btn-link:hover { - color: #014c8c; - 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: #818a91; - text-decoration: none; -} + border-radius: 0; } + .btn-link, + .btn-link:active, + .btn-link.active, + .btn-link:disabled, + fieldset[disabled] .btn-link { + background-color: transparent; } + .btn-link, + .btn-link:focus, + .btn-link:active { + border-color: transparent; } + .btn-link:hover { + border-color: transparent; } + .btn-link:focus, + .btn-link:hover { + color: #014c8c; + 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: #818a91; + text-decoration: none; } .btn-lg, .btn-group-lg > .btn { - padding: .75rem 1.5rem; + padding: 0.75rem 1.5rem; font-size: 1.25rem; line-height: 1.333333; - border-radius: .3rem; -} + border-radius: 0.3rem; } .btn-sm, .btn-group-sm > .btn { - padding: .3rem .75rem; - font-size: .85rem; + padding: 0.3rem 0.75rem; + font-size: 0.85rem; line-height: 1.5; - border-radius: .2rem; -} + border-radius: 0.2rem; } .btn-xs, .btn-group-xs > .btn { - padding: .2rem .5rem; - font-size: .75rem; + padding: 0.2rem 0.5rem; + font-size: 0.75rem; line-height: 1.5; - border-radius: .2rem; -} + border-radius: 0.2rem; } .btn-block { display: block; - width: 100%; -} + width: 100%; } .btn-block + .btn-block { - margin-top: 5px; -} + margin-top: 5px; } -input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { - width: 100%; -} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].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; -} + transition: opacity 0.15s linear; } + .fade.in { + opacity: 1; } .collapse { - display: none; -} -.collapse.in { - display: block; -} + display: none; } + .collapse.in { + display: block; } .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; - -o-transition-property: height; - transition-property: height; -} + transition-timing-function: ease; + transition-duration: .35s; + transition-property: height; } -.dropup, .dropdown { - position: relative; -} +.dropup, +.dropdown { + position: relative; } .dropdown-toggle:after { display: inline-block; @@ -2746,13 +2163,12 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto margin-left: .25rem; vertical-align: middle; content: ""; - border-top: .3em solid; - border-right: .3em solid transparent; - border-left: .3em solid transparent; -} + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-left: 0.3em solid transparent; } + .dropdown-toggle:focus { - outline: 0; -} + outline: 0; } .dropdown-menu { position: absolute; @@ -2768,76 +2184,71 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto text-align: left; list-style: none; background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: .25rem; -} -.dropdown-menu .divider { - height: 1px; - margin: -.5 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.5; - color: #373a3c; - white-space: nowrap; -} + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; } + .dropdown-menu .divider { + height: 1px; + margin: 0.5rem 0; + overflow: hidden; + background-color: #e5e5e5; } + .dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.5; + color: #373a3c; + white-space: nowrap; } -.dropdown-menu > li > a:focus, .dropdown-menu > li > a:hover { +.dropdown-menu > li > a:focus, +.dropdown-menu > li > a:hover { color: #2b2d2f; text-decoration: none; - background-color: #f5f5f5; -} + background-color: #f5f5f5; } -.dropdown-menu > .active > a, .dropdown-menu > .active > a:focus, .dropdown-menu > .active > a:hover { +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:focus, +.dropdown-menu > .active > a:hover { color: #fff; text-decoration: none; background-color: #0275d8; - outline: 0; -} + outline: 0; } -.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:focus, .dropdown-menu > .disabled > a:hover { - color: #818a91; -} -.dropdown-menu > .disabled > a:focus, .dropdown-menu > .disabled > a:hover { +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:focus, +.dropdown-menu > .disabled > a:hover { + color: #818a91; } + +.dropdown-menu > .disabled > a:focus, +.dropdown-menu > .disabled > a:hover { text-decoration: none; - cursor: false; + cursor: not-allowed; background-color: transparent; background-image: none; - filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)"; -} + filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)"; } .open > .dropdown-menu { - display: block; -} + display: block; } + .open > a { - outline: 0; -} + outline: 0; } .dropdown-menu-right { right: 0; - left: auto; -} + left: auto; } .dropdown-menu-left { right: auto; - left: 0; -} + left: 0; } .dropdown-header { display: block; padding: 3px 20px; - font-size: .85rem; + font-size: 0.85rem; line-height: 1.5; color: #818a91; - white-space: nowrap; -} + white-space: nowrap; } .dropdown-backdrop { position: fixed; @@ -2845,208 +2256,197 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto right: 0; bottom: 0; left: 0; - z-index: 990; -} + z-index: 990; } .pull-right > .dropdown-menu { right: 0; - left: auto; -} + left: auto; } -.dropup .caret, .navbar-fixed-bottom .dropdown .caret { +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { content: ""; border-top: 0; - border-bottom: .3em solid; -} -.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + border-bottom: 0.3em solid; } + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { top: auto; bottom: 100%; - margin-bottom: 2px; -} + margin-bottom: 2px; } -.btn-group, .btn-group-vertical { +.btn-group, +.btn-group-vertical { position: relative; display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, .btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group > .btn:hover, .btn-group-vertical > .btn:hover { - z-index: 2; -} + vertical-align: middle; } + .btn-group > .btn, + .btn-group-vertical > .btn { + position: relative; + float: left; } + .btn-group > .btn:focus, + .btn-group > .btn:active, + .btn-group > .btn.active, + .btn-group-vertical > .btn:focus, + .btn-group-vertical > .btn:active, + .btn-group-vertical > .btn.active { + z-index: 2; } + .btn-group > .btn:hover, + .btn-group-vertical > .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-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:before, .btn-toolbar:after { - display: table; - content: " "; -} -.btn-toolbar:after { - clear: both; -} -.btn-toolbar .btn-group, .btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, .btn-toolbar > .btn-group, .btn-toolbar > .input-group { - margin-left: 5px; -} + margin-left: -5px; } + .btn-toolbar:before, + .btn-toolbar:after { + content: " "; + display: table; } + .btn-toolbar:after { + clear: both; } + .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; -} + 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; -} + margin-left: 0; } + .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } -.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { border-bottom-left-radius: 0; -} + border-top-left-radius: 0; } .btn-group > .btn-group { - float: left; -} + float: left; } .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} + 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; +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { border-bottom-right-radius: 0; -} + border-top-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; -} + border-top-left-radius: 0; } -.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { - outline: 0; -} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; } .btn-group > .btn + .dropdown-toggle { padding-right: 8px; - padding-left: 8px; -} + padding-left: 8px; } .btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle { padding-right: 12px; - padding-left: 12px; -} + padding-left: 12px; } .btn .caret { - margin-left: 0; -} + margin-left: 0; } .btn-lg .caret, .btn-group-lg > .btn .caret { - border-width: .3em .3em 0; - border-bottom-width: 0; -} + border-width: 0.3em 0.3em 0; + border-bottom-width: 0; } .dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret { - border-width: 0 .3em .3em; -} + border-width: 0 0.3em 0.3em; } -.btn-group-vertical > .btn, .btn-group-vertical > .btn-group, .btn-group-vertical > .btn-group > .btn { +.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:before, .btn-group-vertical > .btn-group:after { - display: table; - content: " "; -} + max-width: 100%; } + +.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after { - clear: both; -} + content: " "; + display: table; } + +.btn-group-vertical > .btn-group:after { + clear: both; } + .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 { + 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; -} + margin-left: 0; } .btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} + border-radius: 0; } + .btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: .25rem; + border-top-right-radius: 0.25rem; border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} + border-bottom-left-radius: 0; } + .btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; + border-bottom-left-radius: 0.25rem; border-top-right-radius: 0; - border-bottom-left-radius: .25rem; -} + border-top-left-radius: 0; } .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} + 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 { +.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; -} + 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; -} + border-top-left-radius: 0; } -[data-toggle="buttons"] > .btn input[type="radio"], [data-toggle="buttons"] > .btn input[type="checkbox"], [data-toggle="buttons"] > .btn-group > .btn input[type="radio"], [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { position: absolute; clip: rect(0, 0, 0, 0); - pointer-events: none; -} + pointer-events: none; } .input-group { position: relative; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} -.input-group .form-control { - position: relative; - z-index: 2; - margin-bottom: 0; + display: flex; } + .input-group .form-control { + position: relative; + z-index: 2; + flex: 1; + margin-bottom: 0; } - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; -} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; } -.input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} - -.input-group-addon, .input-group-btn { +.input-group-addon, +.input-group-btn { white-space: nowrap; - vertical-align: middle; -} + vertical-align: middle; } .input-group-addon { - padding: .5rem .75rem; + padding: 0.5rem 0.75rem; font-size: 1rem; font-weight: normal; line-height: 1; @@ -3054,84 +2454,84 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto text-align: center; background-color: #eceeef; border: 1px solid #ccc; - border-radius: .25rem; -} -.input-group-addon.form-control-sm, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .input-group-addon.btn { - padding: .3rem .75rem; - font-size: .85rem; - border-radius: .2rem; -} -.input-group-addon.form-control-lg, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .input-group-addon.btn { - padding: .75rem 1.5rem; - font-size: 1.25rem; - border-radius: .3rem; -} -.input-group-addon input[type="radio"], .input-group-addon input[type="checkbox"] { - margin-top: 0; -} + border-radius: 0.25rem; } + .input-group-addon.form-control-sm, .input-group-sm > .input-group-addon, + .input-group-sm > .input-group-btn > .input-group-addon.btn { + padding: 0.3rem 0.75rem; + font-size: 0.85rem; + border-radius: 0.2rem; } + .input-group-addon.form-control-lg, .input-group-lg > .input-group-addon, + .input-group-lg > .input-group-btn > .input-group-addon.btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + border-radius: 0.3rem; } + .input-group-addon input[type="radio"], + .input-group-addon input[type="checkbox"] { + 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:not(:last-child):not(.dropdown-toggle), .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 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:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { border-bottom-right-radius: 0; -} + border-top-right-radius: 0; } .input-group-addon:first-child { - border-right: 0; -} + border-right: 0; } -.input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group > .btn, .input-group-btn:last-child > .dropdown-toggle, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { border-bottom-left-radius: 0; -} + border-top-left-radius: 0; } .input-group-addon:last-child { - border-left: 0; -} + 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:focus, .input-group-btn > .btn:active, .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 { - margin-left: -1px; -} + white-space: nowrap; } + .input-group-btn > .btn { + position: relative; } + .input-group-btn > .btn + .btn { + margin-left: -1px; } + .input-group-btn > .btn:focus, + .input-group-btn > .btn:active, + .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 { + margin-left: -1px; } .c-input { position: relative; display: inline; padding-left: 1.5rem; color: #555; - cursor: pointer; -} -.c-input > input { - position: absolute; - z-index: -1; - opacity: 0; -} -.c-input > input:checked ~ .c-indicator { - color: #fff; - background-color: #0074d9; -} -.c-input > input:active ~ .c-indicator { - color: #fff; - background-color: #84c6ff; -} -.c-input + .c-input { - margin-left: 1rem; -} + cursor: pointer; } + .c-input > input { + position: absolute; + z-index: -1; + opacity: 0; } + .c-input > input:checked ~ .c-indicator { + color: #fff; + background-color: #0074d9; } + .c-input > input:active ~ .c-indicator { + color: #fff; + background-color: #84c6ff; } + .c-input + .c-input { + margin-left: 1rem; } .c-indicator { position: absolute; @@ -3144,123 +2544,97 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto line-height: 1rem; color: #eee; text-align: center; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + user-select: none; background-color: #eee; background-repeat: no-repeat; background-position: center center; - -webkit-background-size: 50% 50%; - background-size: 50% 50%; -} + background-size: 50% 50%; } .c-checkbox .c-indicator { - border-radius: .25rem; -} + border-radius: .25rem; } + .c-checkbox input:checked ~ .c-indicator { - background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTYuNCwxTDUuNywxLjdMMi45LDQuNUwyLjEsMy43TDEuNCwzTDAsNC40bDAuNywwLjdsMS41LDEuNWwwLjcsMC43bDAuNy0wLjdsMy41LTMuNWwwLjctMC43TDYuNCwxTDYuNCwxeiINCgkvPg0KPC9zdmc+DQo=); -} + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTYuNCwxTDUuNywxLjdMMi45LDQuNUwyLjEsMy43TDEuNCwzTDAsNC40bDAuNywwLjdsMS41LDEuNWwwLjcsMC43bDAuNy0wLjdsMy41LTMuNWwwLjctMC43TDYuNCwxTDYuNCwxeiINCgkvPg0KPC9zdmc+DQo=); } + .c-checkbox input:indeterminate ~ .c-indicator { background-color: #0074d9; - background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOHB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDggOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOCA4IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0wLDN2Mmg4VjNIMHoiLz4NCjwvc3ZnPg0K); -} + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOHB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDggOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOCA4IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0wLDN2Mmg4VjNIMHoiLz4NCjwvc3ZnPg0K); } .c-radio .c-indicator { - border-radius: 50%; -} + border-radius: 50%; } + .c-radio input:checked ~ .c-indicator { - background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQsMUMyLjMsMSwxLDIuMywxLDRzMS4zLDMsMywzczMtMS4zLDMtM1M1LjcsMSw0LDF6Ii8+DQo8L3N2Zz4NCg==); -} + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQsMUMyLjMsMSwxLDIuMywxLDRzMS4zLDMsMywzczMtMS4zLDMtM1M1LjcsMSw0LDF6Ii8+DQo8L3N2Zz4NCg==); } .c-inputs-stacked .c-input { - display: inline; -} -.c-inputs-stacked .c-input:after { - display: block; - margin-bottom: .25rem; - content: ""; -} -.c-inputs-stacked .c-input + .c-input { - margin-left: 0; -} + display: inline; } + .c-inputs-stacked .c-input:after { + display: block; + margin-bottom: .25rem; + content: ""; } + .c-inputs-stacked .c-input + .c-input { + margin-left: 0; } .select { position: relative; display: inline-block; - color: #555; -} -.select > select { - display: inline-block; - width: 100%; - -webkit-appearance: none; - padding: .5rem 2.25rem .5rem 1rem; - margin: 0; - line-height: 1.5; - color: #555; - cursor: pointer; - background-color: #eee; - border: 0; - border-radius: .25rem; - outline: 0; - - appearance: none; -} -.select > select:focus { - -webkit-box-shadow: 0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9; - box-shadow: 0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9; -} -.select > select:focus:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 #000; -} -.select > select:active { - color: #fff; - background-color: #0074d9; -} -.select > select::-ms-expand { - display: none; -} -.select:after { - position: absolute; - top: 50%; - right: 1.25rem; - display: inline-block; - width: 0; - height: 0; - margin-top: -.15rem; - pointer-events: none; - content: ""; - border-top: .35rem solid; - border-right: .35rem solid transparent; - border-bottom: .35rem solid transparent; - border-left: .35rem solid transparent; -} + color: #555; } + .select > select { + display: inline-block; + width: 100%; + padding: 0.5rem 2.25rem 0.5rem 1rem; + margin: 0; + line-height: 1.5; + color: #555; + cursor: pointer; + background-color: #eee; + border: 0; + border-radius: .25rem; + outline: 0; + -webkit-appearance: none; + appearance: none; } + .select > select:focus { + box-shadow: 0 0 0 0.075rem #fff, 0 0 0 0.2rem #0074d9; } + .select > select:focus:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #000; } + .select > select:active { + color: #fff; + background-color: #0074d9; } + .select > select::-ms-expand { + display: none; } + .select:after { + position: absolute; + top: 50%; + right: 1.25rem; + display: inline-block; + width: 0; + height: 0; + margin-top: -.15rem; + pointer-events: none; + content: ""; + border-top: .35rem solid; + border-right: .35rem solid transparent; + border-bottom: .35rem solid transparent; + border-left: .35rem solid transparent; } .select select:hover { - background-color: #ddd; -} + background-color: #ddd; } @-moz-document url-prefix() { .select select { padding-right: 1rem; - text-indent: .01px; - text-overflow: ""; - } - + text-indent: 0.01px; + text-overflow: ""; } .select option { - background-color: #fff; - } -} + background-color: #fff; } } -@media screen and (min-width: 0\0) { +@media screen and (min-width: 0 \0) { .select select { z-index: 1; - padding: .5rem 1.5rem .5rem 1rem; - } + padding: 0.5rem 1.5rem 0.5rem 1rem; } .select:after { - z-index: 5; - } + z-index: 5; } .select:before { position: absolute; top: 0; @@ -3270,27 +2644,24 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto display: block; width: 1.5rem; content: ""; - background-color: #eee; - } - .select select:focus, .select select:active, .select select:hover { + background-color: #eee; } + .select select:focus, + .select select:active, + .select select:hover { color: #555; - background-color: #eee; - } -} + background-color: #eee; } } .file { position: relative; display: inline-block; height: 2.5rem; - cursor: pointer; -} + cursor: pointer; } .file input { min-width: 14rem; margin: 0; filter: alpha(opacity=0); - opacity: 0; -} + opacity: 0; } .file-custom { position: absolute; @@ -3299,23 +2670,17 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto left: 0; z-index: 5; height: 2.5rem; - padding: .5rem 1rem; + padding: 0.5rem 1rem; line-height: 1.5; color: #555; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + user-select: none; background-color: #fff; border: .075rem solid #ddd; border-radius: .25rem; - -webkit-box-shadow: inset 0 .2rem .4rem rgba(0, 0, 0, .05); - box-shadow: inset 0 .2rem .4rem rgba(0, 0, 0, .05); -} + box-shadow: inset 0 0.2rem 0.4rem rgba(0, 0, 0, 0.05); } .file-custom:after { - content: "Choose file..."; -} + content: "Choose file..."; } .file-custom:before { position: absolute; @@ -3325,427 +2690,417 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto z-index: 6; display: block; height: 2.5rem; - padding: .5rem 1rem; + padding: 0.5rem 1rem; line-height: 1.5; color: #555; content: "Browse"; background-color: #eee; border: .075rem solid #ddd; - border-radius: 0 .25rem .25rem 0; -} + border-radius: 0 0.25rem 0.25rem 0; } .file input:focus ~ .file-custom { - -webkit-box-shadow: 0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9; - box-shadow: 0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9; -} + box-shadow: 0 0 0 0.075rem #fff, 0 0 0 0.2rem #0074d9; } .nav { padding-left: 0; margin-bottom: 0; - list-style: none; -} -.nav:before, .nav:after { - display: table; - content: " "; -} -.nav:after { - clear: both; -} + list-style: none; } + .nav:before, + .nav:after { + content: " "; + display: table; } + .nav:after { + clear: both; } .nav-item { position: relative; - display: inline-block; -} + display: inline-block; } .nav-link { display: inline-block; - padding: .75em 1em; - line-height: 1; -} -.nav-link:focus, .nav-link:hover { - text-decoration: none; - background-color: #eceeef; -} -.disabled > .nav-link, .nav-link.disabled { - color: #818a91; -} -.disabled > .nav-link, .disabled > .nav-link:focus, .disabled > .nav-link:hover, .nav-link.disabled, .nav-link.disabled:focus, .nav-link.disabled:hover { - color: #818a91; - cursor: false; - background-color: transparent; -} + padding: 0.75em 1em; + line-height: 1; } + .nav-link:focus, + .nav-link:hover { + text-decoration: none; + background-color: #eceeef; } + .disabled > .nav-link, + .nav-link.disabled { + color: #818a91; } + .disabled > .nav-link, + .disabled > .nav-link:focus, + .disabled > .nav-link:hover, + .nav-link.disabled, + .nav-link.disabled:focus, + .nav-link.disabled:hover { + color: #818a91; + cursor: not-allowed; + background-color: transparent; } .nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs .nav-item { - float: left; - margin-bottom: -1px; -} -.nav-tabs .nav-item + .nav-item { - margin-left: .2rem; -} -.nav-tabs .nav-link { - display: block; - border: 1px solid transparent; - border-radius: .25rem .25rem 0 0; -} -.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover { - border-color: #eceeef #eceeef #ddd; -} -.nav-tabs .open > .nav-link, .nav-tabs .open > .nav-link:focus, .nav-tabs .open > .nav-link:hover, .nav-tabs .active > .nav-link, .nav-tabs .active > .nav-link:focus, .nav-tabs .active > .nav-link:hover, .nav-tabs .nav-link.open, .nav-tabs .nav-link.open:focus, .nav-tabs .nav-link.open:hover, .nav-tabs .nav-link.active, .nav-tabs .nav-link.active:focus, .nav-tabs .nav-link.active:hover { - color: #55595c; - background-color: #fff; - border-color: #ddd #ddd transparent; -} -.nav-tabs .disabled > .nav-link, .nav-tabs .disabled > .nav-link:focus, .nav-tabs .disabled > .nav-link:hover, .nav-tabs .nav-link.disabled, .nav-tabs .nav-link.disabled:focus, .nav-tabs .nav-link.disabled:hover { - color: #818a91; - background-color: transparent; - border-color: transparent; -} + border-bottom: 1px solid #ddd; } + .nav-tabs .nav-item { + float: left; + margin-bottom: -1px; } + .nav-tabs .nav-item + .nav-item { + margin-left: .2rem; } + .nav-tabs .nav-link { + display: block; + border: 1px solid transparent; + border-radius: 0.25rem 0.25rem 0 0; } + .nav-tabs .nav-link:focus, + .nav-tabs .nav-link:hover { + border-color: #eceeef #eceeef #ddd; } + .nav-tabs .open > .nav-link, + .nav-tabs .open > .nav-link:focus, + .nav-tabs .open > .nav-link:hover, + .nav-tabs .active > .nav-link, + .nav-tabs .active > .nav-link:focus, + .nav-tabs .active > .nav-link:hover, + .nav-tabs .nav-link.open, + .nav-tabs .nav-link.open:focus, + .nav-tabs .nav-link.open:hover, + .nav-tabs .nav-link.active, + .nav-tabs .nav-link.active:focus, + .nav-tabs .nav-link.active:hover { + color: #55595c; + background-color: #fff; + border-color: #ddd #ddd transparent; } + .nav-tabs .disabled > .nav-link, + .nav-tabs .disabled > .nav-link:focus, + .nav-tabs .disabled > .nav-link:hover, + .nav-tabs .nav-link.disabled, + .nav-tabs .nav-link.disabled:focus, + .nav-tabs .nav-link.disabled:hover { + color: #818a91; + background-color: transparent; + border-color: transparent; } .nav-pills .nav-item { - float: left; -} -.nav-pills .nav-item + .nav-item { - margin-left: .2rem; -} + float: left; } + .nav-pills .nav-item + .nav-item { + margin-left: .2rem; } + .nav-pills .nav-link { display: block; - border-radius: .25rem; -} -.nav-pills .open > .nav-link, .nav-pills .open > .nav-link:focus, .nav-pills .open > .nav-link:hover, .nav-pills .active > .nav-link, .nav-pills .active > .nav-link:focus, .nav-pills .active > .nav-link:hover, .nav-pills .nav-link.open, .nav-pills .nav-link.open:focus, .nav-pills .nav-link.open:hover, .nav-pills .nav-link.active, .nav-pills .nav-link.active:focus, .nav-pills .nav-link.active:hover { + border-radius: 0.25rem; } + +.nav-pills .open > .nav-link, +.nav-pills .open > .nav-link:focus, +.nav-pills .open > .nav-link:hover, +.nav-pills .active > .nav-link, +.nav-pills .active > .nav-link:focus, +.nav-pills .active > .nav-link:hover, +.nav-pills .nav-link.open, +.nav-pills .nav-link.open:focus, +.nav-pills .nav-link.open:hover, +.nav-pills .nav-link.active, +.nav-pills .nav-link.active:focus, +.nav-pills .nav-link.active:hover { color: #fff; cursor: default; - background-color: #0275d8; -} + background-color: #0275d8; } .nav-stacked .nav-item { display: block; - float: none; -} -.nav-stacked .nav-item + .nav-item { - margin-top: .2rem; - margin-left: 0; -} + float: none; } + .nav-stacked .nav-item + .nav-item { + margin-top: .2rem; + margin-left: 0; } .tab-content > .tab-pane { - display: none; -} + display: none; } + .tab-content > .active { - display: block; -} + display: block; } .nav-tabs .dropdown-menu { margin-top: -1px; - border-top-left-radius: 0; border-top-right-radius: 0; -} + border-top-left-radius: 0; } .navbar { position: relative; padding: 1rem; - margin-bottom: 1; -} -.navbar:before, .navbar:after { - display: table; - content: " "; -} -.navbar:after { - clear: both; -} -@media (min-width: 34em) { - .navbar { - border-radius: .25rem; - } -} + margin-bottom: 1; } + .navbar:before, + .navbar:after { + content: " "; + display: table; } + .navbar:after { + clear: both; } + @media (min-width: 34em) { + .navbar { + border-radius: 0.25rem; } } .navbar-static-top { - z-index: 1000; -} -@media (min-width: 34em) { - .navbar-static-top { - border-radius: 0; - } -} + z-index: 1000; } + @media (min-width: 34em) { + .navbar-static-top { + border-radius: 0; } } -.navbar-fixed-top, .navbar-fixed-bottom { +.navbar-fixed-top, +.navbar-fixed-bottom { position: fixed; right: 0; left: 0; z-index: 1030; - margin-bottom: 0; -} -@media (min-width: 34em) { - .navbar-fixed-top, .navbar-fixed-bottom { - border-radius: 0; - } -} + margin-bottom: 0; } + @media (min-width: 34em) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; } } .navbar-fixed-top { - top: 0; -} + top: 0; } .navbar-fixed-bottom { - bottom: 0; -} + bottom: 0; } .navbar-sticky-top { - position: -webkit-sticky; - position: sticky; + position: sticky; top: 0; - z-index: 1030; width: 100%; -} -@media (min-width: 34em) { - .navbar-sticky-top { - border-radius: 0; - } -} + z-index: 1030; } + @media (min-width: 34em) { + .navbar-sticky-top { + border-radius: 0; } } .navbar-brand { float: left; - padding: .625rem .75rem; + padding: 0.625rem 0.75rem; margin-right: 1rem; margin-bottom: 0; font-size: 1.25rem; - line-height: 1; -} -.navbar-brand > a:focus, .navbar-brand > a:hover { - text-decoration: none; -} -.navbar-brand > img { - display: block; -} + line-height: 1; } + .navbar-brand > a:focus, + .navbar-brand > a:hover { + text-decoration: none; } + .navbar-brand > img { + display: block; } .navbar-toggler { - padding: .55rem .75rem; + padding: 0.55rem 0.75rem; margin-right: 1rem; margin-bottom: 0; font-size: 1.25rem; line-height: 1; background: none; - border: 0; -} -.navbar-toggler:focus, .navbar-toggler:hover { - text-decoration: none; -} + border: 0; } + .navbar-toggler:focus, + .navbar-toggler:hover { + text-decoration: none; } @media (min-width: 34em) { .navbar-toggleable-xs { - display: block !important; - } -} + display: block !important; } } + @media (min-width: 48em) { .navbar-toggleable-sm { - display: block !important; - } -} + display: block !important; } } .navbar-nav > li > .dropdown-menu { margin-top: 0; - border-top-left-radius: 0; border-top-right-radius: 0; -} + border-top-left-radius: 0; } .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-top-left-radius: .25rem; - border-top-right-radius: .25rem; + border-top-right-radius: 0.25rem; + border-top-left-radius: 0.25rem; border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} + border-bottom-left-radius: 0; } .navbar-condensed { padding-top: 0; - padding-bottom: 0; -} -.navbar-condensed .navbar-brand { - padding-top: .95rem; - padding-bottom: .95rem; -} -.navbar-condensed .form-inline { - margin-top: .6rem; -} + padding-bottom: 0; } + .navbar-condensed .navbar-brand { + padding-top: .95rem; + padding-bottom: .95rem; } + .navbar-condensed .form-inline { + margin-top: .6rem; } .navbar-nav .nav-item { - float: left; -} + float: left; } + .navbar-nav .nav-link { display: block; padding-top: .95rem; padding-bottom: .95rem; - line-height: 1.25; -} -.navbar-nav .open > .nav-link, .navbar-nav .open > .nav-link:focus, .navbar-nav .open > .nav-link:hover, .navbar-nav .active > .nav-link, .navbar-nav .active > .nav-link:focus, .navbar-nav .active > .nav-link:hover, .navbar-nav .nav-link.open, .navbar-nav .nav-link.open:focus, .navbar-nav .nav-link.open:hover, .navbar-nav .nav-link.active, .navbar-nav .nav-link.active:focus, .navbar-nav .nav-link.active:hover { + line-height: 1.25; } + +.navbar-nav .open > .nav-link, +.navbar-nav .open > .nav-link:focus, +.navbar-nav .open > .nav-link:hover, +.navbar-nav .active > .nav-link, +.navbar-nav .active > .nav-link:focus, +.navbar-nav .active > .nav-link:hover, +.navbar-nav .nav-link.open, +.navbar-nav .nav-link.open:focus, +.navbar-nav .nav-link.open:hover, +.navbar-nav .nav-link.active, +.navbar-nav .nav-link.active:focus, +.navbar-nav .nav-link.active:hover { color: #555; cursor: default; - background-color: #e7e7e7; -} + background-color: #e7e7e7; } .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; -} + 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-inverse { background-color: #373a3c; - border-color: #1f2021; -} -.navbar-inverse .navbar-toggler, .navbar-inverse .navbar-brand > a, .navbar-inverse .nav-pills > .nav-item > .nav-link { - color: #aab0b5; -} -.navbar-inverse .navbar-toggler:focus, .navbar-inverse .navbar-toggler:hover, .navbar-inverse .navbar-brand > a:focus, .navbar-inverse .navbar-brand > a:hover, .navbar-inverse .nav-pills > .nav-item > .nav-link:focus, .navbar-inverse .nav-pills > .nav-item > .nav-link:hover { - color: #fff; -} -.navbar-inverse .nav-pills > .nav-item > .nav-link:focus, .navbar-inverse .nav-pills > .nav-item > .nav-link:hover { - color: #fff; - background-color: #1f2021; -} -.navbar-inverse .nav-pills > .active > .nav-link, .navbar-inverse .nav-pills > .nav-link.active { - color: #fff; - background-color: #1f2021; -} -.navbar-inverse .navbar-brand { - color: #aab0b5; -} -.navbar-inverse .navbar-brand:focus, .navbar-inverse .navbar-brand:hover { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #a2a8ae; -} -.navbar-inverse .navbar-nav > li > a { - color: #aab0b5; -} -.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: #1f2021; -} -.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-collapse, .navbar-inverse .navbar-form { - border-color: #262829; -} -.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:focus, .navbar-inverse .navbar-nav > .open > a:hover { - color: #fff; - background-color: #1f2021; -} -.navbar-inverse .navbar-link { - color: #aab0b5; -} -.navbar-inverse .navbar-link:hover { - color: #fff; -} -.navbar-inverse .btn-link { - color: #aab0b5; -} -.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; -} + border-color: #1f2021; } + .navbar-inverse .navbar-toggler, + .navbar-inverse .navbar-brand > a, + .navbar-inverse .nav-pills > .nav-item > .nav-link { + color: #aab0b5; } + .navbar-inverse .navbar-toggler:focus, + .navbar-inverse .navbar-toggler:hover, + .navbar-inverse .navbar-brand > a:focus, + .navbar-inverse .navbar-brand > a:hover, + .navbar-inverse .nav-pills > .nav-item > .nav-link:focus, + .navbar-inverse .nav-pills > .nav-item > .nav-link:hover { + color: #fff; } + .navbar-inverse .nav-pills > .nav-item > .nav-link:focus, + .navbar-inverse .nav-pills > .nav-item > .nav-link:hover { + color: #fff; + background-color: #1f2021; } + .navbar-inverse .nav-pills > .active > .nav-link, + .navbar-inverse .nav-pills > .nav-link.active { + color: #fff; + background-color: #1f2021; } + .navbar-inverse .navbar-brand { + color: #aab0b5; } + .navbar-inverse .navbar-brand:focus, + .navbar-inverse .navbar-brand:hover { + color: #fff; + background-color: transparent; } + .navbar-inverse .navbar-text { + color: #a2a8ae; } + .navbar-inverse .navbar-nav > li > a { + color: #aab0b5; } + .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: #1f2021; } + .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-collapse, + .navbar-inverse .navbar-form { + border-color: #262829; } + .navbar-inverse .navbar-nav > .open > a, + .navbar-inverse .navbar-nav > .open > a:focus, + .navbar-inverse .navbar-nav > .open > a:hover { + color: #fff; + background-color: #1f2021; } + .navbar-inverse .navbar-link { + color: #aab0b5; } + .navbar-inverse .navbar-link:hover { + color: #fff; } + .navbar-inverse .btn-link { + color: #aab0b5; } + .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; } .card { position: relative; padding: 1.25rem; margin-bottom: 1.25rem; - border: .075rem solid #eee; -} + border: .075rem solid #eee; } .card-title { margin-top: 0; - margin-bottom: .75rem; -} + margin-bottom: .75rem; } .card-text:last-child { - margin-bottom: 0; -} + margin-bottom: 0; } .card-actions .card-link + .card-link { - margin-left: .75rem; -} + margin-left: .75rem; } .card-link:hover { - text-decoration: none; -} + text-decoration: none; } .card-header { - padding: .75rem 1.25rem; + padding: 0.75rem 1.25rem; margin: -1.25rem -1.25rem 1.25rem; border-bottom: .075rem solid #eee; - border-radius: .25rem .25rem 0 0; -} + border-radius: 0.25rem 0.25rem 0 0; } .card-footer { - padding: .75rem 1.25rem; + padding: 0.75rem 1.25rem; margin: 1.25rem -1.25rem -1.25rem; border-top: .075rem solid #eee; - border-radius: 0 0 .25rem .25rem; -} + border-radius: 0 0 0.25rem 0.25rem; } .card-primary { background-color: #0275d8; - border-color: #0275d8; -} + border-color: #0275d8; } .card-success { background-color: #5cb85c; - border-color: #5cb85c; -} + border-color: #5cb85c; } .card-info { background-color: #5bc0de; - border-color: #5bc0de; -} + border-color: #5bc0de; } .card-warning { background-color: #f0ad4e; - border-color: #f0ad4e; -} + border-color: #f0ad4e; } .card-danger { background-color: #d9534f; - border-color: #d9534f; -} + border-color: #d9534f; } -.card-inverse .card-header, .card-inverse .card-footer { - border-bottom: .075rem solid rgba(255, 255, 255, .2); -} -.card-inverse .card-header, .card-inverse .card-footer, .card-inverse .card-title, .card-inverse .card-blockquote { - color: #fff; -} -.card-inverse .card-link, .card-inverse .card-text, .card-inverse .card-blockquote > footer { - color: rgba(255, 255, 255, .65); -} -.card-inverse .card-link:focus, .card-inverse .card-link:hover { - color: #fff; -} +.card-inverse .card-header, +.card-inverse .card-footer { + border-bottom: 0.075rem solid rgba(255, 255, 255, 0.2); } + +.card-inverse .card-header, +.card-inverse .card-footer, +.card-inverse .card-title, +.card-inverse .card-blockquote { + color: #fff; } + +.card-inverse .card-link, +.card-inverse .card-text, +.card-inverse .card-blockquote > footer { + color: rgba(255, 255, 255, 0.65); } + +.card-inverse .card-link:focus, +.card-inverse .card-link:hover { + color: #fff; } .card-blockquote { padding: 0; margin-bottom: 0; - border-left: 0; -} + border-left: 0; } .card-img { margin: -1.325rem; - border-radius: .25rem; -} + border-radius: 0.25rem; } .card-img-overlay { position: absolute; @@ -3753,206 +3108,199 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto right: 0; bottom: 0; left: 0; - padding: 1.25rem; -} + padding: 1.25rem; } .card-img-top { margin: -1.325rem -1.325rem 1.25rem; - border-radius: .25rem .25rem 0 0; -} + border-radius: 0.25rem 0.25rem 0 0; } .card-img-bottom { margin: 1.25rem -1.325rem -1.325rem; - border-radius: 0 0 .25rem .25rem; -} + border-radius: 0 0 0.25rem 0.25rem; } .card-set { display: table; table-layout: fixed; - border-spacing: 1.25rem 0; -} -.card-set .card { - display: table-cell; - float: none; - max-width: none; -} + border-spacing: 1.25rem 0; } + .card-set .card { + display: table-cell; + float: none; + max-width: none; } .card-set-wrapper { margin-right: -1.25rem; - margin-left: -1.25rem; -} + margin-left: -1.25rem; } .card-group { display: table; width: 100%; - table-layout: fixed; -} -.card-group .card { - display: table-cell; - float: none; - max-width: none; -} -.card-group .card + .card { - margin-left: 0; - border-left: 0; -} + table-layout: fixed; } + .card-group .card { + display: table-cell; + float: none; + max-width: none; } + .card-group .card + .card { + margin-left: 0; + border-left: 0; } .card-columns { - -webkit-column-count: 3; - -moz-column-count: 3; - column-count: 3; - -webkit-column-gap: 1rem; - -moz-column-gap: 1rem; - column-gap: 1rem; -} -.card-columns .card { - display: inline-block; - width: 100%; -} + column-count: 3; + column-gap: 1rem; } + .card-columns .card { + display: inline-block; + width: 100%; } .breadcrumb { - padding: .75rem 1rem; + padding: 0.75rem 1rem; margin-bottom: 1rem; list-style: none; background-color: #eceeef; - border-radius: .25rem; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - padding-right: .5rem; - padding-left: .5rem; - color: #818a91; - content: "/\00a0"; -} -.breadcrumb > .active { - color: #818a91; -} + border-radius: 0.25rem; } + .breadcrumb > li { + display: inline-block; } + .breadcrumb > li + li:before { + padding-right: .5rem; + padding-left: .5rem; + color: #818a91; + content: "/ "; } + .breadcrumb > .active { + color: #818a91; } .pagination { display: inline-block; padding-left: 0; + margin-top: 1rem; + margin-bottom: 1rem; margin: 1 0; - border-radius: .25rem; -} -.pagination > li { - display: inline; -} -.pagination > li > a, .pagination > li > span { - position: relative; - float: left; - padding: .5rem .75rem; - margin-left: -1px; - line-height: 1.5; - color: #0275d8; - 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: .25rem; - border-bottom-left-radius: .25rem; -} -.pagination > li:last-child > a, .pagination > li:last-child > span { - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; -} -.pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover { - color: #014c8c; - background-color: #eceeef; - 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: 2; - color: #fff; - cursor: default; - background-color: #0275d8; - border-color: #0275d8; -} -.pagination > .disabled > span, .pagination > .disabled > span:focus, .pagination > .disabled > span:hover, .pagination > .disabled > a, .pagination > .disabled > a:focus, .pagination > .disabled > a:hover { - color: #818a91; - cursor: false; - background-color: #fff; - border-color: #ddd; -} + border-radius: 0.25rem; } + .pagination > li { + display: inline; } + .pagination > li > a, + .pagination > li > span { + position: relative; + float: left; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.5; + color: #0275d8; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; } + .pagination > li:first-child > a, + .pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 0.25rem; + border-top-left-radius: 0.25rem; } + .pagination > li:last-child > a, + .pagination > li:last-child > span { + border-bottom-right-radius: 0.25rem; + border-top-right-radius: 0.25rem; } + .pagination > li > a:focus, + .pagination > li > a:hover, + .pagination > li > span:focus, + .pagination > li > span:hover { + color: #014c8c; + background-color: #eceeef; + 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: 2; + color: #fff; + cursor: default; + background-color: #0275d8; + border-color: #0275d8; } + .pagination > .disabled > span, + .pagination > .disabled > span:focus, + .pagination > .disabled > span:hover, + .pagination > .disabled > a, + .pagination > .disabled > a:focus, + .pagination > .disabled > a:hover { + color: #818a91; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; } -.pagination-lg > li > a, .pagination-lg > li > span { - padding: .75rem 1.5rem; - font-size: 1.25rem; -} -.pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { - border-top-left-radius: .3rem; - border-bottom-left-radius: .3rem; -} -.pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span { - border-top-right-radius: .3rem; - border-bottom-right-radius: .3rem; -} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } -.pagination-sm > li > a, .pagination-sm > li > span { - padding: .3rem .75rem; - font-size: .85rem; -} -.pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { - border-top-left-radius: .2rem; - border-bottom-left-radius: .2rem; -} -.pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span { - border-top-right-radius: .2rem; - border-bottom-right-radius: .2rem; -} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 0.3rem; + border-top-left-radius: 0.3rem; } + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-bottom-right-radius: 0.3rem; + border-top-right-radius: 0.3rem; } + +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 0.3rem 0.75rem; + font-size: 0.85rem; } + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 0.2rem; + border-top-left-radius: 0.2rem; } + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-bottom-right-radius: 0.2rem; + border-top-right-radius: 0.2rem; } .pager { padding-left: 0; - margin: 1 0; + margin-top: 1rem; + margin-bottom: 1rem; text-align: center; - list-style: none; -} -.pager:before, .pager:after { - display: table; - content: " "; -} -.pager:after { - clear: both; -} -.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: #eceeef; -} -.pager .disabled > a, .pager .disabled > a:focus, .pager .disabled > a:hover { - color: #818a91; - cursor: false; - background-color: #fff; -} -.pager .disabled > span { - color: #818a91; - cursor: false; - background-color: #fff; -} + list-style: none; } + .pager:before, + .pager:after { + content: " "; + display: table; } + .pager:after { + clear: both; } + .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: #eceeef; } + .pager .disabled > a, + .pager .disabled > a:focus, + .pager .disabled > a:hover { + color: #818a91; + cursor: not-allowed; + background-color: #fff; } + .pager .disabled > span { + color: #818a91; + cursor: not-allowed; + background-color: #fff; } -.pager-next > a, .pager-next > span { - float: right; -} +.pager-next > a, +.pager-next > span { + float: right; } -.pager-prev > a, .pager-prev > span { - float: left; -} +.pager-prev > a, +.pager-prev > span { + float: left; } .label { display: inline-block; - padding: .25em .4em; + padding: 0.25em 0.4em; font-size: 75%; font-weight: bold; line-height: 1; @@ -3960,63 +3308,54 @@ input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="butto text-align: center; white-space: nowrap; vertical-align: baseline; - border-radius: .25rem; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} + border-radius: 0.25rem; } + .label:empty { + display: none; } + .btn .label { + position: relative; + top: -1px; } -a.label:focus, a.label:hover { +a.label:focus, +a.label:hover { color: #fff; text-decoration: none; - cursor: pointer; -} + cursor: pointer; } .label-default { - background-color: #818a91; -} -.label-default[href]:focus, .label-default[href]:hover { - background-color: #687077; -} + background-color: #818a91; } + .label-default[href]:focus, + .label-default[href]:hover { + background-color: #687077; } .label-primary { - background-color: #0275d8; -} -.label-primary[href]:focus, .label-primary[href]:hover { - background-color: #025aa5; -} + background-color: #0275d8; } + .label-primary[href]:focus, + .label-primary[href]:hover { + background-color: #025aa5; } .label-success { - background-color: #5cb85c; -} -.label-success[href]:focus, .label-success[href]:hover { - background-color: #449d44; -} + 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; -} + 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; -} + 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; -} + background-color: #d9534f; } + .label-danger[href]:focus, + .label-danger[href]:hover { + background-color: #c9302c; } .badge { position: relative; @@ -4030,362 +3369,260 @@ a.label:focus, a.label:hover { text-align: center; white-space: nowrap; background-color: #818a91; - border-radius: 2em; -} -.badge:empty { - display: none; -} -.badge.pull-left, .badge.pull-right { - top: .2em; -} -.list-group-item.active > .badge, .nav-pills > .active > a > .badge { - color: #0275d8; - 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; -} + border-radius: 2em; } + .badge:empty { + display: none; } + .badge.pull-left, + .badge.pull-right { + top: .2em; } + .list-group-item.active > .badge, + .nav-pills > .active > a > .badge { + color: #0275d8; + 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; } -a.badge:focus, a.badge:hover { +a.badge:focus, +a.badge:hover { color: #fff; text-decoration: none; - cursor: pointer; -} + cursor: pointer; } .jumbotron { padding: 2rem 1rem; margin-bottom: 2rem; color: inherit; background-color: #eceeef; - border-radius: .3rem; -} + border-radius: 0.3rem; } .jumbotron-heading { - color: inherit; -} + color: inherit; } .jumbotron-hr { - border-top-color: #d0d5d8; -} + border-top-color: #d0d5d8; } @media (min-width: 34em) { .jumbotron { - padding: 4rem 2rem; - } + padding: 4rem 2rem; } .jumbotron-heading { - font-size: 4.5rem; - } -} + font-size: 4.5rem; } } .jumbotron-fluid { padding-right: 0; padding-left: 0; - border-radius: 0; -} + border-radius: 0; } .alert { padding: 15px; margin-bottom: 1rem; border: 1px solid transparent; - border-radius: .25rem; -} -.alert > p, .alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} + border-radius: 0.25rem; } + .alert > p, + .alert > ul { + margin-bottom: 0; } + .alert > p + p { + margin-top: 5px; } .alert-heading { margin-top: 0; - color: inherit; -} + color: inherit; } .alert-link { - font-weight: bold; -} + font-weight: bold; } .alert-dismissible { - padding-right: 35px; -} -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} + padding-right: 35px; } + .alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; } .alert-success { - color: #3c763d; background-color: #dff0d8; border-color: #d0e9c6; -} -.alert-success hr { - border-top-color: #c1e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} + color: #3c763d; } + .alert-success hr { + border-top-color: #c1e2b3; } + .alert-success .alert-link { + color: #2b542c; } .alert-info { - color: #31708f; background-color: #d9edf7; border-color: #bcdff1; -} -.alert-info hr { - border-top-color: #a6d5ec; -} -.alert-info .alert-link { - color: #245269; -} + color: #31708f; } + .alert-info hr { + border-top-color: #a6d5ec; } + .alert-info .alert-link { + color: #245269; } .alert-warning { - color: #8a6d3b; background-color: #fcf8e3; border-color: #faf2cc; -} -.alert-warning hr { - border-top-color: #f7ecb5; -} -.alert-warning .alert-link { - color: #66512c; -} + color: #8a6d3b; } + .alert-warning hr { + border-top-color: #f7ecb5; } + .alert-warning .alert-link { + color: #66512c; } .alert-danger { - color: #a94442; background-color: #f2dede; border-color: #ebcccc; -} -.alert-danger hr { - border-top-color: #e4b9b9; -} -.alert-danger .alert-link { - color: #843534; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 1 0; - } - - to { - background-position: 0 0; - } -} - -@-o-keyframes progress-bar-stripes { - from { - background-position: 1 0; - } - - to { - background-position: 0 0; - } -} + color: #a94442; } + .alert-danger hr { + border-top-color: #e4b9b9; } + .alert-danger .alert-link { + color: #843534; } @keyframes progress-bar-stripes { from { - background-position: 1 0; - } - + background-position: 1rem 0; } to { - background-position: 0 0; - } -} + background-position: 0 0; } } .progress { display: block; width: 100%; - height: 1; - margin-bottom: 1; -} + height: 1rem; + margin-bottom: 1rem; } .progress[value] { color: #0074d9; border: 0; - - appearance: none; -} + appearance: none; } .progress[value]::-webkit-progress-bar { background-color: #eee; - border-radius: .25rem; -} + border-radius: 0.25rem; } .progress[value]::-webkit-progress-value::before { - content: attr(value); -} + content: attr(value); } .progress[value]::-webkit-progress-value { background-color: #0074d9; - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem; -} + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } .progress[value="100"]::-webkit-progress-value { - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; -} + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } -@media screen and ("min-width:0\0") { +@media screen and ("min-width:0�") { .progress { background-color: #eee; - border-radius: .25rem; - } + border-radius: 0.25rem; } .progress-bar { display: inline-block; - height: 1; + height: 1rem; text-indent: -999rem; background-color: #0074d9; - border-top-left-radius: .25rem; - border-bottom-left-radius: .25rem; - } + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } .progress[width^="0"] { min-width: 2rem; color: #818a91; background-color: transparent; - background-image: none; - } + background-image: none; } .progress[width="100%"] { - border-top-right-radius: .25rem; - border-bottom-right-radius: .25rem; - } -} + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } } .progress-striped[value]::-webkit-progress-value { - 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: 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: 1 1; - background-size: 1 1; -} + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } .progress-striped[value]::-moz-progress-bar { - 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); - background-size: 1 1; -} + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } -@media screen and ("min-width:0\0") { +@media screen and ("min-width:0�") { .progress-bar-striped { - 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: 1 1; - background-size: 1 1; - } -} + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } } .progress-animated[value]::-webkit-progress-value { - -webkit-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} + animation: progress-bar-stripes 2s linear infinite; } .progress-animated[value]::-moz-progress-bar { - animation: progress-bar-stripes 2s linear infinite; -} + animation: progress-bar-stripes 2s linear infinite; } -@media screen and ("min-width:0\0") { +@media screen and ("min-width:0�") { .progress-animated .progress-bar-striped { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; - } -} + animation: progress-bar-stripes 2s linear infinite; } } .progress-success[value]::-webkit-progress-value { - background-color: #5cb85c; -} + background-color: #5cb85c; } + .progress-success[value]::-moz-progress-bar { - background-color: #5cb85c; -} -@media screen and ("min-width:0\0") { + background-color: #5cb85c; } + +@media screen and ("min-width:0�") { .progress-success .progress-bar { - background-color: #5cb85c; - } -} + background-color: #5cb85c; } } .progress-info[value]::-webkit-progress-value { - background-color: #5bc0de; -} + background-color: #5bc0de; } + .progress-info[value]::-moz-progress-bar { - background-color: #5bc0de; -} -@media screen and ("min-width:0\0") { + background-color: #5bc0de; } + +@media screen and ("min-width:0�") { .progress-info .progress-bar { - background-color: #5bc0de; - } -} + background-color: #5bc0de; } } .progress-warning[value]::-webkit-progress-value { - background-color: #f0ad4e; -} + background-color: #f0ad4e; } + .progress-warning[value]::-moz-progress-bar { - background-color: #f0ad4e; -} -@media screen and ("min-width:0\0") { + background-color: #f0ad4e; } + +@media screen and ("min-width:0�") { .progress-warning .progress-bar { - background-color: #f0ad4e; - } -} + background-color: #f0ad4e; } } .progress-danger[value]::-webkit-progress-value { - background-color: #d9534f; -} + background-color: #d9534f; } + .progress-danger[value]::-moz-progress-bar { - background-color: #d9534f; -} -@media screen and ("min-width:0\0") { + background-color: #d9534f; } + +@media screen and ("min-width:0�") { .progress-danger .progress-bar { - background-color: #d9534f; - } -} + background-color: #d9534f; } } .media { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - margin-bottom: 1rem; -} + display: flex; + margin-bottom: 1rem; } .media-body { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; -} + flex: 1; } .media-object { - display: block; -} + display: block; } -.media-right, .media > .pull-right { - padding-left: 10px; -} +.media-right, +.media > .pull-right { + padding-left: 10px; } -.media-left, .media > .pull-left { - padding-right: 10px; -} +.media-left, +.media > .pull-left { + padding-right: 10px; } .media-heading { margin-top: 0; - margin-bottom: 5px; -} + margin-bottom: 5px; } .media-list { padding-left: 0; - list-style: none; -} + list-style: none; } .list-group { padding-left: 0; - margin-bottom: 20px; -} + margin-bottom: 20px; } .list-group-item { position: relative; @@ -4393,172 +3630,170 @@ a.badge:focus, a.badge:hover { padding: 10px 15px; margin-bottom: -1px; background-color: #fff; - border: 1px solid #ddd; -} -.list-group-item:first-child { - border-top-left-radius: .25rem; - border-top-right-radius: .25rem; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: .25rem; - border-bottom-left-radius: .25rem; -} + border: 1px solid #ddd; } + .list-group-item:first-child { + border-top-right-radius: 0.25rem; + border-top-left-radius: 0.25rem; } + .list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } a.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:focus, a.list-group-item:hover { - color: #555; - text-decoration: none; - background-color: #f5f5f5; -} + color: #555; } + a.list-group-item .list-group-item-heading { + color: #333; } + a.list-group-item:focus, + a.list-group-item:hover { + color: #555; + text-decoration: none; + background-color: #f5f5f5; } -.list-group-item.disabled, .list-group-item.disabled:focus, .list-group-item.disabled:hover { +.list-group-item.disabled, +.list-group-item.disabled:focus, +.list-group-item.disabled:hover { color: #818a91; - cursor: false; - background-color: #eceeef; -} -.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: #818a91; -} -.list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover { + cursor: not-allowed; + background-color: #eceeef; } + .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: #818a91; } + +.list-group-item.active, +.list-group-item.active:focus, +.list-group-item.active:hover { z-index: 2; color: #fff; background-color: #0275d8; - border-color: #0275d8; -} -.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: #a8d6fe; -} + border-color: #0275d8; } + .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: #a8d6fe; } .list-group-item-state { color: #3c763d; - background-color: #dff0d8; -} + background-color: #dff0d8; } a.list-group-item-state { - color: #3c763d; -} -a.list-group-item-state .list-group-item-heading { - color: inherit; -} -a.list-group-item-state:focus, a.list-group-item-state:hover { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-state.active, a.list-group-item-state.active:focus, a.list-group-item-state.active:hover { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} + color: #3c763d; } + a.list-group-item-state .list-group-item-heading { + color: inherit; } + a.list-group-item-state:focus, + a.list-group-item-state:hover { + color: #3c763d; + background-color: #d0e9c6; } + a.list-group-item-state.active, + a.list-group-item-state.active:focus, + a.list-group-item-state.active:hover { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; } .list-group-item-state { color: #31708f; - background-color: #d9edf7; -} + background-color: #d9edf7; } a.list-group-item-state { - color: #31708f; -} -a.list-group-item-state .list-group-item-heading { - color: inherit; -} -a.list-group-item-state:focus, a.list-group-item-state:hover { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-state.active, a.list-group-item-state.active:focus, a.list-group-item-state.active:hover { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} + color: #31708f; } + a.list-group-item-state .list-group-item-heading { + color: inherit; } + a.list-group-item-state:focus, + a.list-group-item-state:hover { + color: #31708f; + background-color: #c4e3f3; } + a.list-group-item-state.active, + a.list-group-item-state.active:focus, + a.list-group-item-state.active:hover { + color: #fff; + background-color: #31708f; + border-color: #31708f; } .list-group-item-state { color: #8a6d3b; - background-color: #fcf8e3; -} + background-color: #fcf8e3; } a.list-group-item-state { - color: #8a6d3b; -} -a.list-group-item-state .list-group-item-heading { - color: inherit; -} -a.list-group-item-state:focus, a.list-group-item-state:hover { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-state.active, a.list-group-item-state.active:focus, a.list-group-item-state.active:hover { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} + color: #8a6d3b; } + a.list-group-item-state .list-group-item-heading { + color: inherit; } + a.list-group-item-state:focus, + a.list-group-item-state:hover { + color: #8a6d3b; + background-color: #faf2cc; } + a.list-group-item-state.active, + a.list-group-item-state.active:focus, + a.list-group-item-state.active:hover { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; } .list-group-item-state { color: #a94442; - background-color: #f2dede; -} + background-color: #f2dede; } a.list-group-item-state { - color: #a94442; -} -a.list-group-item-state .list-group-item-heading { - color: inherit; -} -a.list-group-item-state:focus, a.list-group-item-state:hover { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-state.active, a.list-group-item-state.active:focus, a.list-group-item-state.active:hover { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} + color: #a94442; } + a.list-group-item-state .list-group-item-heading { + color: inherit; } + a.list-group-item-state:focus, + a.list-group-item-state:hover { + color: #a94442; + background-color: #ebcccc; } + a.list-group-item-state.active, + a.list-group-item-state.active:focus, + a.list-group-item-state.active:hover { + color: #fff; + background-color: #a94442; + border-color: #a94442; } .list-group-item-heading { margin-top: 0; - margin-bottom: 5px; -} + margin-bottom: 5px; } .list-group-item-text { margin-bottom: 0; - line-height: 1.3; -} + line-height: 1.3; } .embed-responsive { position: relative; display: block; height: 0; padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, .embed-responsive iframe, .embed-responsive embed, .embed-responsive object, .embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; -} + overflow: hidden; } + .embed-responsive .embed-responsive-item, + .embed-responsive iframe, + .embed-responsive embed, + .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%; -} + padding-bottom: 56.25%; } .embed-responsive-4by3 { - padding-bottom: 75%; -} + padding-bottom: 75%; } .close { float: right; @@ -4567,26 +3802,23 @@ a.list-group-item-state.active, a.list-group-item-state.active:focus, a.list-gro line-height: 1; color: #000; text-shadow: 0 1px 0 #fff; - opacity: .2; -} -.close:focus, .close:hover { - color: #000; - text-decoration: none; - cursor: pointer; - opacity: .5; -} + opacity: .2; } + .close:focus, + .close:hover { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: .5; } button.close { - -webkit-appearance: none; padding: 0; cursor: pointer; background: transparent; border: 0; -} + -webkit-appearance: none; } .modal-open { - overflow: hidden; -} + overflow: hidden; } .modal { position: fixed; @@ -4597,42 +3829,29 @@ button.close { z-index: 1050; display: none; overflow: hidden; - -webkit-overflow-scrolling: touch; outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transform: transition .3s ease-out, translate(0, -25%); - -ms-transform: transition .3s ease-out, translate(0, -25%); - -o-transform: transition .3s ease-out, translate(0, -25%); - transform: transition .3s ease-out, 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); -} + -webkit-overflow-scrolling: touch; } + .modal.fade .modal-dialog { + transform: transition 0.3s ease-out, translate(0, -25%); } + .modal.in .modal-dialog { + transform: translate(0, 0); } .modal-open .modal { overflow-x: hidden; - overflow-y: auto; -} + overflow-y: auto; } .modal-dialog { position: relative; width: auto; - margin: 10px; -} + margin: 10px; } .modal-content { position: relative; background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: .3rem; - outline: 0; -} + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; } .modal-backdrop { position: fixed; @@ -4641,115 +3860,119 @@ button.close { bottom: 0; left: 0; z-index: 1040; - background-color: #000; -} -.modal-backdrop.fade { - opacity: 0; -} -.modal-backdrop.in { - opacity: .5; -} + background-color: #000; } + .modal-backdrop.fade { + opacity: 0; } + .modal-backdrop.in { + opacity: 0.5; } .modal-header { min-height: 16.5px; padding: 15px; - border-bottom: 1px solid #e5e5e5; -} + border-bottom: 1px solid #e5e5e5; } .modal-header .close { - margin-top: -2px; -} + margin-top: -2px; } .modal-title { margin: 0; - line-height: 1.5; -} + line-height: 1.5; } .modal-body { position: relative; - padding: 15px; -} + padding: 15px; } .modal-footer { padding: 15px; text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer:before, .modal-footer:after { - display: table; - content: " "; -} -.modal-footer:after { - clear: both; -} -.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; -} + border-top: 1px solid #e5e5e5; } + .modal-footer:before, + .modal-footer:after { + content: " "; + display: table; } + .modal-footer:after { + clear: both; } + .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; -} + overflow: scroll; } @media (min-width: 34em) { .modal-dialog { width: 600px; - margin: 30px auto; - } + margin: 30px auto; } .modal-sm { - width: 300px; - } -} + width: 300px; } } @media (min-width: 48em) { .modal-lg { - width: 900px; - } -} + width: 900px; } } .tooltip { position: absolute; z-index: 1070; display: block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: .85rem; + font-size: 0.85rem; font-weight: normal; line-height: 1.4; - opacity: 0; -} -.tooltip.in { - 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; -} + opacity: 0; } + .tooltip.in { + opacity: 0.9; } + .tooltip.tooltip-top, + .tooltip.bs-tether-element-attached-bottom { + padding: 5px 0; + margin-top: -3px; } + .tooltip.tooltip-top .tooltip-arrow, + .tooltip.bs-tether-element-attached-bottom .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; } + .tooltip.tooltip-right, + .tooltip.bs-tether-element-attached-left { + padding: 0 5px; + margin-left: 3px; } + .tooltip.tooltip-right .tooltip-arrow, + .tooltip.bs-tether-element-attached-left .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; } + .tooltip.tooltip-bottom, + .tooltip.bs-tether-element-attached-top { + padding: 5px 0; + margin-top: 3px; } + .tooltip.tooltip-bottom .tooltip-arrow, + .tooltip.bs-tether-element-attached-top .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } + .tooltip.tooltip-left, + .tooltip.bs-tether-element-attached-right { + padding: 0 5px; + margin-left: -3px; } + .tooltip.tooltip-left .tooltip-arrow, + .tooltip.bs-tether-element-attached-right .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; } .tooltip-inner { max-width: 200px; @@ -4758,55 +3981,21 @@ button.close { text-align: center; text-decoration: none; background-color: #000; - border-radius: .25rem; -} + border-radius: 0.25rem; } .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-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; -} + border-style: solid; } .popover { position: absolute; top: 0; left: 0; z-index: 1060; - display: none; + display: block; max-width: 276px; padding: 1px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -4816,27 +4005,77 @@ button.close { text-align: left; white-space: normal; background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: .3rem; -} - -.popover-top { - margin-top: -10px; -} - -.popover-right { - margin-left: 10px; -} - -.popover-bottom { - margin-top: 10px; -} - -.popover-left { - margin-left: -10px; -} + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; } + .popover.popover-top, + .popover.bs-tether-element-attached-bottom { + margin-top: -10px; } + .popover.popover-top .popover-arrow, + .popover.bs-tether-element-attached-bottom .popover-arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; } + .popover.popover-top .popover-arrow:after, + .popover.bs-tether-element-attached-bottom .popover-arrow:after { + bottom: 1px; + margin-left: -10px; + content: ""; + border-top-color: #fff; + border-bottom-width: 0; } + .popover.popover-right, + .popover.bs-tether-element-attached-left { + margin-left: 10px; } + .popover.popover-right .popover-arrow, + .popover.bs-tether-element-attached-left .popover-arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; } + .popover.popover-right .popover-arrow:after, + .popover.bs-tether-element-attached-left .popover-arrow:after { + bottom: -10px; + left: 1px; + content: ""; + border-right-color: #fff; + border-left-width: 0; } + .popover.popover-bottom, + .popover.bs-tether-element-attached-top { + margin-top: 10px; } + .popover.popover-bottom .popover-arrow, + .popover.bs-tether-element-attached-top .popover-arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: rgba(0, 0, 0, 0.25); } + .popover.popover-bottom .popover-arrow:after, + .popover.bs-tether-element-attached-top .popover-arrow:after { + top: 1px; + margin-left: -10px; + content: ""; + border-top-width: 0; + border-bottom-color: #fff; } + .popover.popover-left, + .popover.bs-tether-element-attached-right { + margin-left: -10px; } + .popover.popover-left .popover-arrow, + .popover.bs-tether-element-attached-right .popover-arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: rgba(0, 0, 0, 0.25); } + .popover.popover-left .popover-arrow:after, + .popover.bs-tether-element-attached-right .popover-arrow:after { + right: 1px; + bottom: -10px; + content: ""; + border-right-width: 0; + border-left-color: #fff; } .popover-title { padding: 8px 14px; @@ -4844,163 +4083,81 @@ button.close { font-size: 1rem; background-color: #f7f7f7; border-bottom: 1px solid #ebebeb; - border-radius: -.7rem -.7rem 0 0; -} + border-radius: -0.7rem -0.7rem 0 0; } .popover-content { - padding: 9px 14px; -} + padding: 9px 14px; } -.popover-arrow, .popover-arrow:after { +.popover-arrow, +.popover-arrow:after { position: absolute; display: block; width: 0; height: 0; border-color: transparent; - border-style: solid; -} + border-style: solid; } .popover-arrow { - border-width: 11px; -} + border-width: 11px; } .popover-arrow:after { content: ""; - border-width: 10px; -} - -.popover-top > .popover-arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: rgba(0, 0, 0, .25); - border-bottom-width: 0; -} -.popover-top > .popover-arrow:after { - bottom: 1px; - margin-left: -10px; - content: ""; - border-top-color: #fff; - border-bottom-width: 0; -} - -.popover-right > .popover-arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: rgba(0, 0, 0, .25); - border-left-width: 0; -} -.popover-right > .popover-arrow:after { - bottom: -10px; - left: 1px; - content: ""; - border-right-color: #fff; - border-left-width: 0; -} - -.popover-bottom > .popover-arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: rgba(0, 0, 0, .25); -} -.popover-bottom > .popover-arrow:after { - top: 1px; - margin-left: -10px; - content: ""; - border-top-width: 0; - border-bottom-color: #fff; -} - -.popover-left > .popover-arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: rgba(0, 0, 0, .25); -} -.popover-left > .popover-arrow:after { - right: 1px; - bottom: -10px; - content: ""; - border-right-width: 0; - border-left-color: #fff; -} + border-width: 10px; } .carousel { - position: relative; -} + position: relative; } .carousel-inner { position: relative; width: 100%; - overflow: hidden; -} -.carousel-inner > .carousel-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 > .carousel-item > img, .carousel-inner > .carousel-item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { + overflow: hidden; } .carousel-inner > .carousel-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: 1000; - perspective: 1000; - } - .carousel-inner > .carousel-item.next, .carousel-inner > .carousel-item.active.right { - left: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - .carousel-inner > .carousel-item.prev, .carousel-inner > .carousel-item.active.left { - left: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - .carousel-inner > .carousel-item.next.left, .carousel-inner > .carousel-item.prev.right, .carousel-inner > .carousel-item.active { - 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%; -} + position: relative; + display: none; + transition: .6s ease-in-out left; } + .carousel-inner > .carousel-item > img, + .carousel-inner > .carousel-item > a > img { + line-height: 1; } + @media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .carousel-item { + transition: transform 0.6s ease-in-out; + backface-visibility: hidden; + perspective: 1000; } + .carousel-inner > .carousel-item.next, + .carousel-inner > .carousel-item.active.right { + left: 0; + transform: translate3d(100%, 0, 0); } + .carousel-inner > .carousel-item.prev, + .carousel-inner > .carousel-item.active.left { + left: 0; + transform: translate3d(-100%, 0, 0); } + .carousel-inner > .carousel-item.next.left, + .carousel-inner > .carousel-item.prev.right, + .carousel-inner > .carousel-item.active { + left: 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; @@ -5011,58 +4168,45 @@ button.close { font-size: 20px; color: #fff; text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); - opacity: .5; -} -.carousel-control.left { - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); - 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: 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-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); - 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: 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; - outline: 0; - opacity: .9; -} -.carousel-control .icon-prev, .carousel-control .icon-next { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; - width: 20px; - height: 20px; - margin-top: -10px; - font-family: serif; - line-height: 1; -} -.carousel-control .icon-prev { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev:before { - content: "\2039"; -} -.carousel-control .icon-next:before { - content: "\203a"; -} + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + opacity: 0.5; } + .carousel-control.left { + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); } + .carousel-control.right { + right: 0; + left: auto; + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); } + .carousel-control:focus, + .carousel-control:hover { + color: #fff; + text-decoration: none; + outline: 0; + opacity: .9; } + .carousel-control .icon-prev, + .carousel-control .icon-next { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + width: 20px; + height: 20px; + margin-top: -10px; + font-family: serif; + line-height: 1; } + .carousel-control .icon-prev { + left: 50%; + margin-left: -10px; } + .carousel-control .icon-next { + right: 50%; + margin-right: -10px; } + .carousel-control .icon-prev:before { + content: "\2039"; } + .carousel-control .icon-next:before { + content: "\203a"; } .carousel-indicators { position: absolute; @@ -5073,25 +4217,22 @@ button.close { 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: transparent; - border: 1px solid #fff; - border-radius: 10px; -} -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; -} + list-style: none; } + .carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: transparent; + border: 1px solid #fff; + border-radius: 10px; } + .carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; } .carousel-caption { position: absolute; @@ -5103,56 +4244,46 @@ button.close { padding-bottom: 20px; color: #fff; text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); -} -.carousel-caption .btn { - text-shadow: none; -} + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); } + .carousel-caption .btn { + text-shadow: none; } @media (min-width: 34em) { - .carousel-control .icon-prev, .carousel-control .icon-next { + .carousel-control .icon-prev, + .carousel-control .icon-next { width: 30px; height: 30px; margin-top: -15px; - font-size: 30px; - } + font-size: 30px; } .carousel-control .icon-prev { - margin-left: -15px; - } + margin-left: -15px; } .carousel-control .icon-next { - margin-right: -15px; - } + margin-right: -15px; } .carousel-caption { right: 20%; left: 20%; - padding-bottom: 30px; - } + padding-bottom: 30px; } .carousel-indicators { - bottom: 20px; - } -} + bottom: 20px; } } -.clearfix:before, .clearfix:after { - display: table; - content: " "; -} +.clearfix:before, .clearfix:after { - clear: both; -} + content: " "; + display: table; } + +.clearfix:after { + clear: both; } .center-block { display: block; - margin-right: auto; margin-left: auto; -} + margin-right: auto; } .pull-right { - float: right !important; -} + float: right !important; } .pull-left { - float: left !important; -} + float: left !important; } .sr-only { position: absolute; @@ -5162,463 +4293,360 @@ button.close { margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); - border: 0; -} + border: 0; } -.sr-only-focusable:active, .sr-only-focusable:focus { +.sr-only-focusable:active, +.sr-only-focusable:focus { position: static; width: auto; height: auto; margin: 0; overflow: visible; - clip: auto; -} + clip: auto; } .m-a-0 { - margin: 0; -} + margin: 0; } .m-t-0 { - margin-top: 0; -} + margin-top: 0; } .m-r-0 { - margin-right: 0; -} + margin-right: 0; } .m-b-0 { - margin-bottom: 0; -} + margin-bottom: 0; } .m-l-0 { - margin-left: 0; -} + margin-left: 0; } .m-a { - margin: 1rem; -} + margin: 1rem; } .m-t { - margin-top: 1rem; -} + margin-top: 1rem; } .m-r { - margin-right: 1rem; -} + margin-right: 1rem; } .m-b { - margin-bottom: 1rem; -} + margin-bottom: 1rem; } .m-l { - margin-left: 1rem; -} + margin-left: 1rem; } .m-x { margin-right: 1rem; - margin-left: 1rem; -} + margin-left: 1rem; } .m-y { margin-top: 1rem; - margin-bottom: 1rem; -} + margin-bottom: 1rem; } .m-t-md { - margin-top: 1.5rem; -} + margin-top: 1.5rem; } .m-r-md { - margin-right: 1.5rem; -} + margin-right: 1.5rem; } .m-b-md { - margin-bottom: 1.5rem; -} + margin-bottom: 1.5rem; } .m-l-md { - margin-left: 1.5rem; -} + margin-left: 1.5rem; } .m-x-md { margin-right: 1.5rem; - margin-left: 1.5rem; -} + margin-left: 1.5rem; } .m-y-md { margin-top: 1.5rem; - margin-bottom: 1.5rem; -} + margin-bottom: 1.5rem; } .m-t-lg { - margin-top: 3rem; -} + margin-top: 3rem; } .m-r-lg { - margin-right: 3rem; -} + margin-right: 3rem; } .m-b-lg { - margin-bottom: 3rem; -} + margin-bottom: 3rem; } .m-l-lg { - margin-left: 3rem; -} + margin-left: 3rem; } .m-x-lg { margin-right: 3rem; - margin-left: 3rem; -} + margin-left: 3rem; } .m-y-lg { margin-top: 3rem; - margin-bottom: 3rem; -} + margin-bottom: 3rem; } .p-a-0 { - padding: 0; -} + padding: 0; } .p-t-0 { - padding-top: 0; -} + padding-top: 0; } .p-r-0 { - padding-right: 0; -} + padding-right: 0; } .p-b-0 { - padding-bottom: 0; -} + padding-bottom: 0; } .p-l-0 { - padding-left: 0; -} + padding-left: 0; } .p-a { - padding: 1rem; -} + padding: 1rem; } .p-t { - padding-top: 1rem; -} + padding-top: 1rem; } .p-r { - padding-right: 1rem; -} + padding-right: 1rem; } .p-b { - padding-bottom: 1rem; -} + padding-bottom: 1rem; } .p-l { - padding-left: 1rem; -} + padding-left: 1rem; } .p-x { padding-right: 1rem; - padding-left: 1rem; -} + padding-left: 1rem; } .p-y { padding-top: 1rem; - padding-bottom: 1rem; -} + padding-bottom: 1rem; } .p-t-md { - padding-top: 1.5rem; -} + padding-top: 1.5rem; } .p-r-md { - padding-right: 1.5rem; -} + padding-right: 1.5rem; } .p-b-md { - padding-bottom: 1.5rem; -} + padding-bottom: 1.5rem; } .p-l-md { - padding-left: 1.5rem; -} + padding-left: 1.5rem; } .p-x-md { padding-right: 1.5rem; - padding-left: 1.5rem; -} + padding-left: 1.5rem; } .p-y-md { padding-top: 1.5rem; - padding-bottom: 1.5rem; -} + padding-bottom: 1.5rem; } .p-t-lg { - padding-top: 3rem; -} + padding-top: 3rem; } .p-r-lg { - padding-right: 3rem; -} + padding-right: 3rem; } .p-b-lg { - padding-bottom: 3rem; -} + padding-bottom: 3rem; } .p-l-lg { - padding-left: 3rem; -} + padding-left: 3rem; } .p-x-lg { padding-right: 3rem; - padding-left: 3rem; -} + padding-left: 3rem; } .p-y-lg { padding-top: 3rem; - padding-bottom: 3rem; -} + padding-bottom: 3rem; } .pos-f-t { position: fixed; top: 0; right: 0; left: 0; - z-index: 1030; -} + z-index: 1030; } [hidden] { - display: none !important; -} + display: none !important; } .invisible { - visibility: hidden; -} + visibility: hidden; } .text-hide { font: "0/0" a; color: transparent; text-shadow: none; background-color: transparent; - border: 0; -} + border: 0; } .text-left { - text-align: left; -} + text-align: left; } .text-right { - text-align: right; -} + text-align: right; } .text-center { - text-align: center; -} + text-align: center; } .text-justify { - text-align: justify; -} + text-align: justify; } .text-nowrap { - white-space: nowrap; -} + white-space: nowrap; } .text-truncate { overflow: hidden; text-overflow: ellipsis; - white-space: nowrap; -} + white-space: nowrap; } .text-lowercase { - text-transform: lowercase; -} + text-transform: lowercase; } .text-uppercase { - text-transform: uppercase; -} + text-transform: uppercase; } .text-capitalize { - text-transform: capitalize; -} + text-transform: capitalize; } .text-muted { - color: #818a91; -} + color: #818a91; } .text-primary { - color: #0275d8; -} + color: #0275d8; } -a.text-primary:focus, a.text-primary:hover { - color: #025aa5; -} +a.text-primary:focus, +a.text-primary:hover { + color: #025aa5; } .text-success { - color: #3c763d; -} + color: #3c763d; } -a.text-success:focus, a.text-success:hover { - color: #2b542c; -} +a.text-success:focus, +a.text-success:hover { + color: #2b542c; } .text-info { - color: #31708f; -} + color: #31708f; } -a.text-info:focus, a.text-info:hover { - color: #245269; -} +a.text-info:focus, +a.text-info:hover { + color: #245269; } .text-warning { - color: #8a6d3b; -} + color: #8a6d3b; } -a.text-warning:focus, a.text-warning:hover { - color: #66512c; -} +a.text-warning:focus, +a.text-warning:hover { + color: #66512c; } .text-danger { - color: #a94442; -} + color: #a94442; } -a.text-danger:focus, a.text-danger:hover { - color: #843534; -} +a.text-danger:focus, +a.text-danger:hover { + color: #843534; } .inverse { color: #eceeef; - background-color: #373a3c; -} + background-color: #373a3c; } .bg-primary { - color: #fff; -} + color: #fff; } .bg-primary { - background-color: #0275d8; -} + background-color: #0275d8; } -a.bg-primary:focus, a.bg-primary:hover { - background-color: #025aa5; -} +a.bg-primary:focus, +a.bg-primary:hover { + background-color: #025aa5; } .bg-success { - background-color: #dff0d8; -} + background-color: #dff0d8; } -a.bg-success:focus, a.bg-success:hover { - background-color: #c1e2b3; -} +a.bg-success:focus, +a.bg-success:hover { + background-color: #c1e2b3; } .bg-info { - background-color: #d9edf7; -} + background-color: #d9edf7; } -a.bg-info:focus, a.bg-info:hover { - background-color: #afd9ee; -} +a.bg-info:focus, +a.bg-info:hover { + background-color: #afd9ee; } .bg-warning { - background-color: #fcf8e3; -} + background-color: #fcf8e3; } -a.bg-warning:focus, a.bg-warning:hover { - background-color: #f7ecb5; -} +a.bg-warning:focus, +a.bg-warning:hover { + background-color: #f7ecb5; } .bg-danger { - background-color: #f2dede; -} + background-color: #f2dede; } -a.bg-danger:focus, a.bg-danger:hover { - background-color: #e4b9b9; -} +a.bg-danger:focus, +a.bg-danger:hover { + background-color: #e4b9b9; } .hidden-xs-up { - display: none !important; -} + display: none !important; } @media (max-width: 33.9em) { .hidden-xs-down { - display: none !important; - } -} + display: none !important; } } @media (min-width: 34em) { .hidden-sm-up { - display: none !important; - } -} + display: none !important; } } @media (max-width: 47.9em) { .hidden-sm-down { - display: none !important; - } -} + display: none !important; } } @media (min-width: 48em) { .hidden-md-up { - display: none !important; - } -} + display: none !important; } } @media (max-width: 61.9em) { .hidden-md-down { - display: none !important; - } -} + display: none !important; } } @media (min-width: 62em) { .hidden-lg-up { - display: none !important; - } -} + display: none !important; } } @media (max-width: 74.9em) { .hidden-lg-down { - display: none !important; - } -} + display: none !important; } } @media (min-width: 75em) { .hidden-xl-up { - display: none !important; - } -} + display: none !important; } } .hidden-xl-down { - display: none !important; -} + display: none !important; } .visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; - } -} + 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; - } -} + 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; - } -} + display: none !important; } + @media print { + .visible-print-inline-block { + display: inline-block !important; } } @media print { .hidden-print .hidden-print { - display: none !important; - } -} -/*# sourceMappingURL=bootstrap.css.map */ + display: none !important; } } + +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/dist/css/bootstrap.css.map b/dist/css/bootstrap.css.map index 1d038873a7..e21e231a97 100644 --- a/dist/css/bootstrap.css.map +++ b/dist/css/bootstrap.css.map @@ -1 +1,77 @@ -{"version":3,"sources":["bootstrap.css","../../_normalize.scss","../../mixins/_hover.scss","../../_print.scss","../../_reboot.scss","../../mixins/_tab-focus.scss","../../_type.scss","../../mixins/_clearfix.scss","../../_images.scss","../../mixins/_image.scss","../../_mixins.scss","../../_code.scss","../../_grid.scss","../../mixins/_grid.scss","../../mixins/_breakpoints.scss","../../mixins/_grid-framework.scss","../../_tables.scss","../../mixins/_table-row.scss","../../_variables.scss","../../_forms.scss","../../mixins/_forms.scss","../../_buttons.scss","../../mixins/_buttons.scss","../../_animation.scss","../../_dropdown.scss","../../mixins/_nav-divider.scss","../../mixins/_reset-filter.scss","../../_button-group.scss","../../_input-group.scss","../../_custom-forms.scss","../../_nav.scss","../../_navbar.scss","../../_card.scss","../../_breadcrumb.scss","../../_pagination.scss","../../mixins/_pagination.scss","../../_pager.scss","../../_labels.scss","../../mixins/_label.scss","../../_badge.scss","../../_jumbotron.scss","../../_alert.scss","../../mixins/_alert.scss","../../_progress.scss","../../mixins/_gradients.scss","../../mixins/_progress.scss","../../_media.scss","../../_list-group.scss","../../mixins/_list-group.scss","../../_responsive-embed.scss","../../_close.scss","../../_modal.scss","../../_tooltip.scss","../../_popover.scss","../../_carousel.scss","../../_utilities.scss","../../mixins/_center-block.scss","../../mixins/_pulls.scss","../../mixins/_screen-reader.scss","../../mixins/_hide-text.scss","../../mixins/_text-truncate.scss","../../mixins/_text-emphasis.scss","../../mixins/_background-variant.scss","../../_utilities-responsive.scss","../../mixins/_responsive-visibility.scss"],"names":[],"mappings":"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","file":"bootstrap.css"} \ No newline at end of file +{ + "version": 3, + "file": "bootstrap.css", + "sources": [ + "../../scss/bootstrap.scss", + "../../scss/_variables.scss", + "../../scss/_mixins.scss", + "../../scss/_normalize.scss", + "../../scss/_print.scss", + "../../scss/_reboot.scss", + "../../scss/_type.scss", + "../../scss/_images.scss", + "../../scss/_code.scss", + "../../scss/_grid.scss", + "../../scss/_tables.scss", + "../../scss/_forms.scss", + "../../scss/_buttons.scss", + "../../scss/_animation.scss", + "../../scss/_dropdown.scss", + "../../scss/_button-group.scss", + "../../scss/_input-group.scss", + "../../scss/_custom-forms.scss", + "../../scss/_nav.scss", + "../../scss/_navbar.scss", + "../../scss/_card.scss", + "../../scss/_breadcrumb.scss", + "../../scss/_pagination.scss", + "../../scss/_pager.scss", + "../../scss/_labels.scss", + "../../scss/_badge.scss", + "../../scss/_jumbotron.scss", + "../../scss/_alert.scss", + "../../scss/_progress.scss", + "../../scss/_media.scss", + "../../scss/_list-group.scss", + "../../scss/_responsive-embed.scss", + "../../scss/_close.scss", + "../../scss/_modal.scss", + "../../scss/_tooltip.scss", + "../../scss/_popover.scss", + "../../scss/_carousel.scss", + "../../scss/_utilities.scss", + "../../scss/_utilities-responsive.scss", + "../../scss/mixins/_breakpoints.scss", + "../../scss/mixins/_hide-text.scss", + "../../scss/mixins/_hover.scss", + "../../scss/mixins/_image.scss", + "../../scss/mixins/_label.scss", + "../../scss/mixins/_reset-filter.scss", + "../../scss/mixins/_resize.scss", + "../../scss/mixins/_responsive-visibility.scss", + "../../scss/mixins/_screen-reader.scss", + "../../scss/mixins/_size.scss", + "../../scss/mixins/_tab-focus.scss", + "../../scss/mixins/_text-emphasis.scss", + "../../scss/mixins/_text-truncate.scss", + "../../scss/mixins/_alert.scss", + "../../scss/mixins/_buttons.scss", + "../../scss/mixins/_pagination.scss", + "../../scss/mixins/_list-group.scss", + "../../scss/mixins/_nav-divider.scss", + "../../scss/mixins/_forms.scss", + "../../scss/mixins/_progress.scss", + "../../scss/mixins/_table-row.scss", + "../../scss/mixins/_background-variant.scss", + "../../scss/mixins/_border-radius.scss", + "../../scss/mixins/_gradients.scss", + "../../scss/mixins/_clearfix.scss", + "../../scss/mixins/_center-block.scss", + "../../scss/mixins/_grid-framework.scss", + "../../scss/mixins/_grid.scss", + "../../scss/mixins/_pulls.scss" + ], + "sourcesContent": [], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js index a6827d652c..01f0a6dac2 100644 --- a/dist/js/bootstrap.js +++ b/dist/js/bootstrap.js @@ -15,2348 +15,3491 @@ if (typeof jQuery === 'undefined') { } }(jQuery); -/* ======================================================================== - * Bootstrap: transition.js v3.3.4 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - +function ($) { - 'use strict'; - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ +'use strict'; - function transitionEnd() { - var el = document.createElement('bootstrap') +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var transEndEventNames = { - WebkitTransition : 'webkitTransitionEnd', - MozTransition : 'transitionend', - OTransition : 'oTransitionEnd otransitionend', - transition : 'transitionend' +function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): util.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Util = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Private TransitionEnd Helpers + * ------------------------------------------------------------------------ + */ + + var transition = false; + + var TransitionEndEvent = { + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend' + }; + + // shoutout AngusCroll (https://goo.gl/pxwQGp) + function toType(obj) { + return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); + } + + function isElement(obj) { + return (obj[0] || obj).nodeType; + } + + function getSpecialTransitionEndEvent() { + return { + bindType: transition.end, + delegateType: transition.end, + handle: function handle(event) { + if ($(event.target).is(this)) { + return event.handleObj.handler.apply(this, arguments); + } + } + }; + } + + function transitionEndTest() { + if (window.QUnit) { + return false; } - for (var name in transEndEventNames) { + var el = document.createElement('bootstrap'); + + for (var name in TransitionEndEvent) { if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } + return { end: TransitionEndEvent[name] }; } } - return false // explicit for ie8 ( ._.) + return false; } - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false - var $el = this - $(this).one('bsTransitionEnd', function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this + function transitionEndEmulator(duration) { + var _this = this; + + var called = false; + + $(this).one(Util.TRANSITION_END, function () { + called = true; + }); + + setTimeout(function () { + if (!called) { + Util.triggerTransitionEnd(_this); + } + }, duration); + + return this; } - $(function () { - $.support.transition = transitionEnd() + function setTransitionEndSupport() { + transition = transitionEndTest(); - if (!$.support.transition) return + $.fn.emulateTransitionEnd = transitionEndEmulator; - $.event.special.bsTransitionEnd = { - bindType: $.support.transition.end, - delegateType: $.support.transition.end, - handle: function (e) { - if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) + if (Util.supportsTransitionEnd()) { + $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); + } + } + + /** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + var Util = { + + TRANSITION_END: 'bsTransitionEnd', + + getUID: function getUID(prefix) { + do prefix += ~ ~(Math.random() * 1000000); while (document.getElementById(prefix)); + return prefix; + }, + + getSelectorFromElement: function getSelectorFromElement(element) { + var selector = element.getAttribute('data-target'); + + if (!selector) { + selector = element.getAttribute('href') || ''; + selector = /^#[a-z]/i.test(selector) ? selector : null; + } + + return selector; + }, + + reflow: function reflow(element) { + new Function('bs', 'return bs')(element.offsetHeight); + }, + + triggerTransitionEnd: function triggerTransitionEnd(element) { + $(element).trigger(transition.end); + }, + + supportsTransitionEnd: function supportsTransitionEnd() { + return !!transition; + }, + + typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { + + for (var property in configTypes) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = undefined; + + if (value && isElement(value)) valueType = 'element';else valueType = toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new Error('' + componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".')); + } } } - }) -}(jQuery); + }; -/* ======================================================================== - * Bootstrap: alert.js v3.3.4 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + setTransitionEndSupport(); + + return Util; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): alert.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ + * -------------------------------------------------------------------------- + */ +var Alert = (function ($) { -+function ($) { - 'use strict'; + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ - // ALERT CLASS DEFINITION - // ====================== + var NAME = 'alert'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.alert'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } + var Selector = { + DISMISS: '[data-dismiss="alert"]' + }; - Alert.VERSION = '3.3.4' + var Event = { + CLOSE: 'close' + EVENT_KEY, + CLOSED: 'closed' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; - Alert.TRANSITION_DURATION = 150 + var ClassName = { + ALERT: 'alert', + FADE: 'fade', + IN: 'in' + }; - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + var Alert = (function () { + function Alert(element) { + _classCallCheck(this, Alert); + + this._element = element; } - var $parent = $(selector) + _createClass(Alert, [{ + key: 'close', - if (e) e.preventDefault() + // public - if (!$parent.length) { - $parent = $this.closest('.alert') - } + value: function close(element) { + element = element || this._element; - $parent.trigger(e = $.Event('close.bs.alert')) + var rootElement = this._getRootElement(element); + var customEvent = this._triggerCloseEvent(rootElement); - if (e.isDefaultPrevented()) return + if (customEvent.isDefaultPrevented()) { + return; + } - $parent.removeClass('in') - - function removeElement() { - // detach from parent, fire event then clean up data - $parent.detach().trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one('bsTransitionEnd', removeElement) - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.alert - - $.fn.alert = Plugin - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: button.js v3.3.4 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.VERSION = '3.3.4' - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state += 'Text' - - if (data.resetText == null) $el.data('resetText', $el[val]()) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - $el[val](data[state] == null ? this.options[state] : data[state]) - - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d) + this._removeElement(rootElement); } - }, this), 0) - } - - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked')) changed = false - $parent.find('.active').removeClass('active') - this.$element.addClass('active') - } else if ($input.prop('type') == 'checkbox') { - if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false - this.$element.toggleClass('active') + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + this._element = null; } - $input.prop('checked', this.$element.hasClass('active')) - if (changed) $input.trigger('change') - } else { - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) - this.$element.toggleClass('active') - } - } + }, { + key: '_getRootElement', + // private - // BUTTON PLUGIN DEFINITION - // ======================== + value: function _getRootElement(element) { + var parent = false; + var selector = Util.getSelectorFromElement(element); - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option + if (selector) { + parent = $(selector)[0]; + } - if (!data) $this.data('bs.button', (data = new Button(this, options))) + if (!parent) { + parent = $(element).closest('.' + ClassName.ALERT)[0]; + } - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } + return parent; + } + }, { + key: '_triggerCloseEvent', + value: function _triggerCloseEvent(element) { + var closeEvent = $.Event(Event.CLOSE); + $(element).trigger(closeEvent); + return closeEvent; + } + }, { + key: '_removeElement', + value: function _removeElement(element) { + $(element).removeClass(ClassName.IN); - var old = $.fn.button + if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) { + this._destroyElement(element); + return; + } - $.fn.button = Plugin - $.fn.button.Constructor = Button + $(element).one(Util.TRANSITION_END, this._destroyElement.bind(this, element)).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: '_destroyElement', + value: function _destroyElement(element) { + $(element).detach().trigger(Event.CLOSED).remove(); + } + }], [{ + key: 'VERSION', + // getters - // BUTTON NO CONFLICT - // ================== + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } + // static + value: function _jQueryInterface(config) { + return this.each(function () { + var $element = $(this); + var data = $element.data(DATA_KEY); - // BUTTON DATA-API - // =============== + if (!data) { + data = new Alert(this); + $element.data(DATA_KEY, data); + } - $(document) - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - Plugin.call($btn, 'toggle') - if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault() - }) - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) - }) + if (config === 'close') { + data[config](this); + } + }); + } + }, { + key: '_handleDismiss', + value: function _handleDismiss(alertInstance) { + return function (event) { + if (event) { + event.preventDefault(); + } -}(jQuery); + alertInstance.close(this); + }; + } + }]); -/* ======================================================================== - * Bootstrap: carousel.js v3.3.4 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + return Alert; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Alert._jQueryInterface; + $.fn[NAME].Constructor = Alert; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Alert._jQueryInterface; + }; + + return Alert; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): button.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ + * -------------------------------------------------------------------------- + */ +var Button = (function ($) { -+function ($) { - 'use strict'; + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ - // CAROUSEL CLASS DEFINITION - // ========================= + var NAME = 'button'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.button'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = null - this.sliding = null - this.interval = null - this.$active = null - this.$items = null + var ClassName = { + ACTIVE: 'active', + BUTTON: 'btn', + FOCUS: 'focus' + }; - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) + var Selector = { + DATA_TOGGLE_CARROT: '[data-toggle^="button"]', + DATA_TOGGLE: '[data-toggle="buttons"]', + INPUT: 'input', + ACTIVE: '.active', + BUTTON: '.btn' + }; - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) - } + var Event = { + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY, + FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + '' + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + '' + DATA_API_KEY) + }; - Carousel.VERSION = '3.3.4' + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ - Carousel.TRANSITION_DURATION = 600 + var Button = (function () { + function Button(element) { + _classCallCheck(this, Button); - Carousel.DEFAULTS = { + this._element = element; + } + + _createClass(Button, [{ + key: 'toggle', + + // public + + value: function toggle() { + var triggerChangeEvent = true; + var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0]; + + if (rootElement) { + var input = $(this._element).find(Selector.INPUT)[0]; + + if (input) { + if (input.type === 'radio') { + if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) { + triggerChangeEvent = false; + } else { + var activeElement = $(rootElement).find(Selector.ACTIVE)[0]; + + if (activeElement) { + $(activeElement).removeClass(ClassName.ACTIVE); + } + } + } + + if (triggerChangeEvent) { + input.checked = !$(this._element).hasClass(ClassName.ACTIVE); + $(this._element).trigger('change'); + } + } + } else { + this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE)); + } + + if (triggerChangeEvent) { + $(this._element).toggleClass(ClassName.ACTIVE); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + this._element = null; + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + + if (!data) { + data = new Button(this); + $(this).data(DATA_KEY, data); + } + + if (config === 'toggle') { + data[config](); + } + }); + } + }]); + + return Button; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + event.preventDefault(); + + var button = event.target; + + if (!$(button).hasClass(ClassName.BUTTON)) { + button = $(button).closest(Selector.BUTTON); + } + + Button._jQueryInterface.call($(button), 'toggle'); + }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + var button = $(event.target).closest(Selector.BUTTON)[0]; + $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Button._jQueryInterface; + $.fn[NAME].Constructor = Button; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Button._jQueryInterface; + }; + + return Button; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Carousel = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'carousel'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.carousel'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 600; + + var Default = { interval: 5000, + keyboard: true, + slide: false, pause: 'hover', - wrap: true, - keyboard: true - } + wrap: true + }; - Carousel.prototype.keydown = function (e) { - if (/input|textarea/i.test(e.target.tagName)) return - switch (e.which) { - case 37: this.prev(); break - case 39: this.next(); break - default: return + var DefaultType = { + interval: '(number|boolean)', + keyboard: 'boolean', + slide: '(boolean|string)', + pause: '(string|boolean)', + wrap: 'boolean' + }; + + var Direction = { + NEXT: 'next', + PREVIOUS: 'prev' + }; + + var Event = { + SLIDE: 'slide' + EVENT_KEY, + SLID: 'slid' + EVENT_KEY, + KEYDOWN: 'keydown' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY, + LOAD_DATA_API: 'load' + EVENT_KEY + '' + DATA_API_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + CAROUSEL: 'carousel', + ACTIVE: 'active', + SLIDE: 'slide', + RIGHT: 'right', + LEFT: 'left', + ITEM: 'carousel-item' + }; + + var Selector = { + ACTIVE: '.active', + ACTIVE_ITEM: '.active.carousel-item', + ITEM: '.carousel-item', + NEXT_PREV: '.next, .prev', + INDICATORS: '.carousel-indicators', + DATA_SLIDE: '[data-slide], [data-slide-to]', + DATA_RIDE: '[data-ride="carousel"]' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Carousel = (function () { + function Carousel(element, config) { + _classCallCheck(this, Carousel); + + this._items = null; + this._interval = null; + this._activeElement = null; + + this._isPaused = false; + this._isSliding = false; + + this._config = this._getConfig(config); + this._element = $(element)[0]; + this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]; + + this._addEventListeners(); } - e.preventDefault() - } + _createClass(Carousel, [{ + key: 'next', - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) + // public - this.interval && clearInterval(this.interval) + value: function next() { + if (!this._isSliding) { + this._slide(Direction.NEXT); + } + } + }, { + key: 'prev', + value: function prev() { + if (!this._isSliding) { + this._slide(Direction.PREVIOUS); + } + } + }, { + key: 'pause', + value: function pause(event) { + if (!event) { + this._isPaused = true; + } - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) { + Util.triggerTransitionEnd(this._element); + this.cycle(true); + } - return this - } + clearInterval(this._interval); + this._interval = null; + } + }, { + key: 'cycle', + value: function cycle(event) { + if (!event) { + this._isPaused = false; + } - Carousel.prototype.getItemIndex = function (item) { - this.$items = item.parent().children('.item') - return this.$items.index(item || this.$active) - } + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } - Carousel.prototype.getItemForDirection = function (direction, active) { - var activeIndex = this.getItemIndex(active) - var willWrap = (direction == 'prev' && activeIndex === 0) - || (direction == 'next' && activeIndex == (this.$items.length - 1)) - if (willWrap && !this.options.wrap) return active - var delta = direction == 'prev' ? -1 : 1 - var itemIndex = (activeIndex + delta) % this.$items.length - return this.$items.eq(itemIndex) - } + if (this._config.interval && !this._isPaused) { + this._interval = setInterval($.proxy(this.next, this), this._config.interval); + } + } + }, { + key: 'to', + value: function to(index) { + var _this2 = this; - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) + this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; - if (pos > (this.$items.length - 1) || pos < 0) return + var activeIndex = this._getItemIndex(this._activeElement); - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" - if (activeIndex == pos) return this.pause().cycle() + if (index > this._items.length - 1 || index < 0) { + return; + } - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) - } + if (this._isSliding) { + $(this._element).one(Event.SLID, function () { + return _this2.to(index); + }); + return; + } - Carousel.prototype.pause = function (e) { - e || (this.paused = true) + if (activeIndex == index) { + this.pause(); + this.cycle(); + return; + } - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } + var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS; - this.interval = clearInterval(this.interval) + this._slide(direction, this._items[index]); + } + }, { + key: 'dispose', + value: function dispose() { + $(this._element).off(EVENT_KEY); + $.removeData(this._element, DATA_KEY); - return this - } + this._items = null; + this._config = null; + this._element = null; + this._interval = null; + this._isPaused = null; + this._isSliding = null; + this._activeElement = null; + this._indicatorsElement = null; + } + }, { + key: '_getConfig', - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } + // private - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } + value: function _getConfig(config) { + config = $.extend({}, Default, config); + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_addEventListeners', + value: function _addEventListeners() { + if (this._config.keyboard) { + $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this)); + } - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || this.getItemForDirection(type, $active) - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var that = this + if (this._config.pause == 'hover' && !('ontouchstart' in document.documentElement)) { + $(this._element).on(Event.MOUSEENTER, $.proxy(this.pause, this)).on(Event.MOUSELEAVE, $.proxy(this.cycle, this)); + } + } + }, { + key: '_keydown', + value: function _keydown(event) { + event.preventDefault(); - if ($next.hasClass('active')) return (this.sliding = false) + if (/input|textarea/i.test(event.target.tagName)) return; - var relatedTarget = $next[0] - var slideEvent = $.Event('slide.bs.carousel', { - relatedTarget: relatedTarget, - direction: direction - }) - this.$element.trigger(slideEvent) - if (slideEvent.isDefaultPrevented()) return + switch (event.which) { + case 37: + this.prev();break; + case 39: + this.next();break; + default: + return; + } + } + }, { + key: '_getItemIndex', + value: function _getItemIndex(element) { + this._items = $.makeArray($(element).parent().find(Selector.ITEM)); + return this._items.indexOf(element); + } + }, { + key: '_getItemByDirection', + value: function _getItemByDirection(direction, activeElement) { + var isNextDirection = direction === Direction.NEXT; + var isPrevDirection = direction === Direction.PREVIOUS; + var activeIndex = this._getItemIndex(activeElement); + var lastItemIndex = this._items.length - 1; + var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex == lastItemIndex; - this.sliding = true + if (isGoingToWrap && !this._config.wrap) { + return activeElement; + } - isCycling && this.pause() + var delta = direction == Direction.PREVIOUS ? -1 : 1; + var itemIndex = (activeIndex + delta) % this._items.length; - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) - $nextIndicator && $nextIndicator.addClass('active') - } + return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; + } + }, { + key: '_triggerSlideEvent', + value: function _triggerSlideEvent(relatedTarget, directionalClassname) { + var slideEvent = $.Event(Event.SLIDE, { + relatedTarget: relatedTarget, + direction: directionalClassname + }); - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one('bsTransitionEnd', function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { - that.$element.trigger(slidEvent) - }, 0) - }) - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger(slidEvent) - } + $(this._element).trigger(slideEvent); - isCycling && this.cycle() + return slideEvent; + } + }, { + key: '_setActiveIndicatorElement', + value: function _setActiveIndicatorElement(element) { + if (this._indicatorsElement) { + $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE); - return this - } + var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; + if (nextIndicator) { + $(nextIndicator).addClass(ClassName.ACTIVE); + } + } + } + }, { + key: '_slide', + value: function _slide(direction, element) { + var _this3 = this; - // CAROUSEL PLUGIN DEFINITION - // ========================== + var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide + var isCycling = !!this._interval; - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } + var directionalClassName = direction == Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT; - var old = $.fn.carousel + if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) { + this._isSliding = false; + return; + } - $.fn.carousel = Plugin - $.fn.carousel.Constructor = Carousel + var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName); + if (slideEvent.isDefaultPrevented()) { + return; + } + if (!activeElement || !nextElement) { + // some weirdness is happening, so we bail + return; + } - // CAROUSEL NO CONFLICT - // ==================== + this._isSliding = true; - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } + if (isCycling) { + this.pause(); + } + this._setActiveIndicatorElement(nextElement); - // CAROUSEL DATA-API - // ================= + var slidEvent = $.Event(Event.SLID, { + relatedTarget: nextElement, + direction: directionalClassName + }); - var clickHandler = function (e) { - var href - var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 - if (!$target.hasClass('carousel')) return - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { - Plugin.call($target, options) + $(nextElement).addClass(direction); - if (slideIndex) { - $target.data('bs.carousel').to(slideIndex) - } + Util.reflow(nextElement); - e.preventDefault() - } + $(activeElement).addClass(directionalClassName); + $(nextElement).addClass(directionalClassName); - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) + $(activeElement).one(Util.TRANSITION_END, function () { + $(nextElement).removeClass(directionalClassName).removeClass(direction); - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - Plugin.call($carousel, $carousel.data()) - }) - }) + $(nextElement).addClass(ClassName.ACTIVE); -}(jQuery); + $(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName); -/* ======================================================================== - * Bootstrap: collapse.js v3.3.4 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + _this3._isSliding = false; + + setTimeout(function () { + return $(_this3._element).trigger(slidEvent); + }, 0); + }).emulateTransitionEnd(TRANSITION_DURATION); + } else { + $(activeElement).removeClass(ClassName.ACTIVE); + $(nextElement).addClass(ClassName.ACTIVE); + + this._isSliding = false; + $(this._element).trigger(slidEvent); + } + + if (isCycling) { + this.cycle(); + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = $.extend({}, Default, $(this).data()); + + if (typeof config === 'object') { + $.extend(_config, config); + } + + var action = typeof config === 'string' ? config : _config.slide; + + if (!data) { + data = new Carousel(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config == 'number') { + data.to(config); + } else if (action) { + data[action](); + } else if (_config.interval) { + data.pause(); + data.cycle(); + } + }); + } + }, { + key: '_dataApiClickHandler', + value: function _dataApiClickHandler(event) { + var selector = Util.getSelectorFromElement(this); + + if (!selector) { + return; + } + + var target = $(selector)[0]; + + if (!target || !$(target).hasClass(ClassName.CAROUSEL)) { + return; + } + + var config = $.extend({}, $(target).data(), $(this).data()); + + var slideIndex = this.getAttribute('data-slide-to'); + if (slideIndex) { + config.interval = false; + } + + Carousel._jQueryInterface.call($(target), config); + + if (slideIndex) { + $(target).data(DATA_KEY).to(slideIndex); + } + + event.preventDefault(); + } + }]); + + return Carousel; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler); + + $(window).on(Event.LOAD_DATA_API, function () { + $(Selector.DATA_RIDE).each(function () { + var $carousel = $(this); + Carousel._jQueryInterface.call($carousel, $carousel.data()); + }); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Carousel._jQueryInterface; + $.fn[NAME].Constructor = Carousel; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Carousel._jQueryInterface; + }; + + return Carousel; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): collapse.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + - '[data-toggle="collapse"][data-target="#' + element.id + '"]') - this.transitioning = null - - if (this.options.parent) { - this.$parent = this.getParent() - } else { - this.addAriaAndCollapsedClass(this.$element, this.$trigger) - } - - if (this.options.toggle) this.toggle() - } - - Collapse.VERSION = '3.3.4' - - Collapse.TRANSITION_DURATION = 350 - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var activesData - var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') - - if (actives && actives.length) { - activesData = actives.data('bs.collapse') - if (activesData && activesData.transitioning) return - } - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - if (actives && actives.length) { - Plugin.call(actives, 'hide') - activesData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - .attr('aria-expanded', true) - - this.$trigger - .removeClass('collapsed') - .attr('aria-expanded', true) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in')[dimension]('') - this.transitioning = 0 - this.$element - .trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse in') - .attr('aria-expanded', false) - - this.$trigger - .addClass('collapsed') - .attr('aria-expanded', false) - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .removeClass('collapsing') - .addClass('collapse') - .trigger('hidden.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - Collapse.prototype.getParent = function () { - return $(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each($.proxy(function (i, element) { - var $element = $(element) - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) - }, this)) - .end() - } - - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { - var isOpen = $element.hasClass('in') - - $element.attr('aria-expanded', isOpen) - $trigger - .toggleClass('collapsed', !isOpen) - .attr('aria-expanded', isOpen) - } - - function getTargetFromTrigger($trigger) { - var href - var target = $trigger.attr('data-target') - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - - return $(target) - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.collapse - - $.fn.collapse = Plugin - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { - var $this = $(this) - - if (!$this.attr('data-target')) e.preventDefault() - - var $target = getTargetFromTrigger($this) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - - Plugin.call($target, option) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.3.4 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle="dropdown"]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.VERSION = '3.3.4' - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = selector && $(selector) - - return $parent && $parent.length ? $parent : $this.parent() - } - - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) - }) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $(document.createElement('div')) - .addClass('dropdown-backdrop') - .insertAfter($(this)) - .on('click', clearMenus) + * -------------------------------------------------------------------------- + */ + +var Collapse = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'collapse'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.collapse'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 600; + + var Default = { + toggle: true, + parent: '' + }; + + var DefaultType = { + toggle: 'boolean', + parent: 'string' + }; + + var Event = { + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + IN: 'in', + COLLAPSE: 'collapse', + COLLAPSING: 'collapsing', + COLLAPSED: 'collapsed' + }; + + var Dimension = { + WIDTH: 'width', + HEIGHT: 'height' + }; + + var Selector = { + ACTIVES: '.panel > .in, .panel > .collapsing', + DATA_TOGGLE: '[data-toggle="collapse"]' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Collapse = (function () { + function Collapse(element, config) { + _classCallCheck(this, Collapse); + + this._isTransitioning = false; + this._element = element; + this._config = this._getConfig(config); + this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]'))); + + this._parent = this._config.parent ? this._getParent() : null; + + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); } - var relatedTarget = { relatedTarget: this } - $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this - .trigger('focus') - .attr('aria-expanded', 'true') - - $parent - .toggleClass('open') - .trigger('shown.bs.dropdown', relatedTarget) + if (this._config.toggle) { + this.toggle(); + } } - return false - } + _createClass(Collapse, [{ + key: 'toggle', - Dropdown.prototype.keydown = function (e) { - if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return + // public - var $this = $(this) + value: function toggle() { + if ($(this._element).hasClass(ClassName.IN)) { + this.hide(); + } else { + this.show(); + } + } + }, { + key: 'show', + value: function show() { + var _this4 = this; - e.preventDefault() - e.stopPropagation() + if (this._isTransitioning || $(this._element).hasClass(ClassName.IN)) { + return; + } - if ($this.is('.disabled, :disabled')) return + var actives = undefined; + var activesData = undefined; - var $parent = getParent($this) - var isActive = $parent.hasClass('open') + if (this._parent) { + actives = $.makeArray($(Selector.ACTIVES)); + if (!actives.length) { + actives = null; + } + } - if (!isActive && e.which != 27 || isActive && e.which == 27) { - if (e.which == 27) $parent.find(toggle).trigger('focus') - return $this.trigger('click') - } + if (actives) { + activesData = $(actives).data(DATA_KEY); + if (activesData && activesData._isTransitioning) { + return; + } + } - var desc = ' li:not(.disabled):visible a' - var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc) + var startEvent = $.Event(Event.SHOW); + $(this._element).trigger(startEvent); + if (startEvent.isDefaultPrevented()) { + return; + } - if (!$items.length) return + if (actives) { + Collapse._jQueryInterface.call($(actives), 'hide'); + if (!activesData) { + $(actives).data(DATA_KEY, null); + } + } - var index = $items.index(e.target) + var dimension = this._getDimension(); - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 + $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); - $items.eq(index).trigger('focus') - } + this._element.style[dimension] = 0; + this._element.setAttribute('aria-expanded', true); + if (this._triggerArray.length) { + $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); + } - // DROPDOWN PLUGIN DEFINITION - // ========================== + this.setTransitioning(true); - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.dropdown') + var complete = function complete() { + $(_this4._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.IN); - if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } + _this4._element.style[dimension] = ''; - var old = $.fn.dropdown + _this4.setTransitioning(false); - $.fn.dropdown = Plugin - $.fn.dropdown.Constructor = Dropdown + $(_this4._element).trigger(Event.SHOWN); + }; + if (!Util.supportsTransitionEnd()) { + complete(); + return; + } - // DROPDOWN NO CONFLICT - // ==================== + var scrollSize = 'scroll' + (dimension[0].toUpperCase() + dimension.slice(1)); - $.fn.dropdown.noConflict = function () { - $.fn.dropdown = old - return this - } + $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + this._element.style[dimension] = this._element[scrollSize] + 'px'; + } + }, { + key: 'hide', + value: function hide() { + var _this5 = this; - // APPLY TO STANDARD DROPDOWN ELEMENTS - // =================================== + if (this._isTransitioning || !$(this._element).hasClass(ClassName.IN)) { + return; + } - $(document) - .on('click.bs.dropdown.data-api', clearMenus) - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) + var startEvent = $.Event(Event.HIDE); + $(this._element).trigger(startEvent); + if (startEvent.isDefaultPrevented()) { + return; + } -}(jQuery); + var dimension = this._getDimension(); + var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight'; -/* ======================================================================== - * Bootstrap: modal.js v3.3.4 - * http://getbootstrap.com/javascript/#modals - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + this._element.style[dimension] = this._element[offsetDimension] + 'px'; + + Util.reflow(this._element); + + $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.IN); + + this._element.setAttribute('aria-expanded', false); + + if (this._triggerArray.length) { + $(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false); + } + + this.setTransitioning(true); + + var complete = function complete() { + _this5.setTransitioning(false); + $(_this5._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); + }; + + this._element.style[dimension] = 0; + + if (!Util.supportsTransitionEnd()) { + return complete(); + } + + $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: 'setTransitioning', + value: function setTransitioning(isTransitioning) { + this._isTransitioning = isTransitioning; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + + this._config = null; + this._parent = null; + this._element = null; + this._triggerArray = null; + this._isTransitioning = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + config.toggle = !!config.toggle; // coerce string values + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_getDimension', + value: function _getDimension() { + var hasWidth = $(this._element).hasClass(Dimension.WIDTH); + return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; + } + }, { + key: '_getParent', + value: function _getParent() { + var _this6 = this; + + var parent = $(this._config.parent)[0]; + var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]'; + + $(parent).find(selector).each(function (i, element) { + _this6._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); + }); + + return parent; + } + }, { + key: '_addAriaAndCollapsedClass', + value: function _addAriaAndCollapsedClass(element, triggerArray) { + if (element) { + var isOpen = $(element).hasClass(ClassName.IN); + element.setAttribute('aria-expanded', isOpen); + + if (triggerArray.length) { + $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); + } + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_getTargetFromElement', + + // static + + value: function _getTargetFromElement(element) { + var selector = Util.getSelectorFromElement(element); + return selector ? $(selector)[0] : null; + } + }, { + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DATA_KEY); + var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config); + + if (!data && _config.toggle && /show|hide/.test(config)) { + _config.toggle = false; + } + + if (!data) { + data = new Collapse(this, _config); + $this.data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Collapse; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault(); + + var target = Collapse._getTargetFromElement(this); + + var data = $(target).data(DATA_KEY); + var config = data ? 'toggle' : $(this).data(); + + Collapse._jQueryInterface.call($(target), config); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Collapse._jQueryInterface; + $.fn[NAME].Constructor = Collapse; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Collapse._jQueryInterface; + }; + + return Collapse; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): dropdown.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ + * -------------------------------------------------------------------------- + */ +var Dropdown = (function ($) { -+function ($) { - 'use strict'; + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ - // MODAL CLASS DEFINITION - // ====================== + var NAME = 'dropdown'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.dropdown'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; - var Modal = function (element, options) { - this.options = options - this.$body = $(document.body) - this.$element = $(element) - this.$dialog = this.$element.find('.modal-dialog') - this.$backdrop = null - this.isShown = null - this.originalBodyPad = null - this.scrollbarWidth = 0 - this.ignoreBackdropClick = false + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY, + KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + '' + DATA_API_KEY + }; - if (this.options.remote) { - this.$element - .find('.modal-content') - .load(this.options.remote, $.proxy(function () { - this.$element.trigger('loaded.bs.modal') - }, this)) + var ClassName = { + BACKDROP: 'dropdown-backdrop', + DISABLED: 'disabled', + OPEN: 'open' + }; + + var Selector = { + BACKDROP: '.dropdown-backdrop', + DATA_TOGGLE: '[data-toggle="dropdown"]', + FORM_CHILD: '.dropdown form', + ROLE_MENU: '[role="menu"]', + ROLE_LISTBOX: '[role="listbox"]', + NAVBAR_NAV: '.navbar-nav', + VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Dropdown = (function () { + function Dropdown(element) { + _classCallCheck(this, Dropdown); + + this._element = element; + + this._addEventListeners(); } - } - Modal.VERSION = '3.3.4' + _createClass(Dropdown, [{ + key: 'toggle', - Modal.TRANSITION_DURATION = 300 - Modal.BACKDROP_TRANSITION_DURATION = 150 + // public - Modal.DEFAULTS = { + value: function toggle() { + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this); + var isActive = $(parent).hasClass(ClassName.OPEN); + + Dropdown._clearMenus(); + + if (isActive) { + return false; + } + + if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) { + + // if mobile we use a backdrop because click events don't delegate + var dropdown = document.createElement('div'); + dropdown.className = ClassName.BACKDROP; + $(dropdown).insertBefore(this); + $(dropdown).on('click', Dropdown._clearMenus); + } + + var relatedTarget = { relatedTarget: this }; + var showEvent = $.Event(Event.SHOW, relatedTarget); + + $(parent).trigger(showEvent); + + if (showEvent.isDefaultPrevented()) { + return; + } + + this.focus(); + this.setAttribute('aria-expanded', 'true'); + + $(parent).toggleClass(ClassName.OPEN); + $(parent).trigger(Event.SHOWN, relatedTarget); + + return false; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._element).off(EVENT_KEY); + this._element = null; + } + }, { + key: '_addEventListeners', + + // private + + value: function _addEventListeners() { + $(this._element).on(Event.CLICK, this.toggle); + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + + if (!data) { + $(this).data(DATA_KEY, data = new Dropdown(this)); + } + + if (typeof config === 'string') { + data[config].call(this); + } + }); + } + }, { + key: '_clearMenus', + value: function _clearMenus(event) { + if (event && event.which === 3) { + return; + } + + var backdrop = $(Selector.BACKDROP)[0]; + if (backdrop) { + backdrop.parentNode.removeChild(backdrop); + } + + var toggles = $.makeArray($(Selector.DATA_TOGGLE)); + + for (var i = 0; i < toggles.length; i++) { + var _parent = Dropdown._getParentFromElement(toggles[i]); + var relatedTarget = { relatedTarget: toggles[i] }; + + if (!$(_parent).hasClass(ClassName.OPEN)) { + continue; + } + + if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(_parent, event.target)) { + continue; + } + + var hideEvent = $.Event(Event.HIDE, relatedTarget); + $(_parent).trigger(hideEvent); + if (hideEvent.isDefaultPrevented()) { + continue; + } + + toggles[i].setAttribute('aria-expanded', 'false'); + + $(_parent).removeClass(ClassName.OPEN).trigger(Event.HIDDEN, relatedTarget); + } + } + }, { + key: '_getParentFromElement', + value: function _getParentFromElement(element) { + var parent = undefined; + var selector = Util.getSelectorFromElement(element); + + if (selector) { + parent = $(selector)[0]; + } + + return parent || element.parentNode; + } + }, { + key: '_dataApiKeydownHandler', + value: function _dataApiKeydownHandler(event) { + if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) { + return; + } + + event.preventDefault(); + event.stopPropagation(); + + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this); + var isActive = $(parent).hasClass(ClassName.OPEN); + + if (!isActive && event.which !== 27 || isActive && event.which === 27) { + + if (event.which === 27) { + var toggle = $(parent).find(Selector.DATA_TOGGLE)[0]; + $(toggle).trigger('focus'); + } + + $(this).trigger('click'); + return; + } + + var items = $.makeArray($(Selector.VISIBLE_ITEMS)); + + items = items.filter(function (item) { + return item.offsetWidth || item.offsetHeight; + }); + + if (!items.length) { + return; + } + + var index = items.indexOf(event.target); + + if (event.which === 38 && index > 0) index--; // up + if (event.which === 40 && index < items.length - 1) index++; // down + if (! ~index) index = 0; + + items[index].focus(); + } + }]); + + return Dropdown; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { + e.stopPropagation(); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Dropdown._jQueryInterface; + $.fn[NAME].Constructor = Dropdown; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Dropdown._jQueryInterface; + }; + + return Dropdown; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Modal = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'modal'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.modal'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 300; + var BACKDROP_TRANSITION_DURATION = 150; + + var Default = { backdrop: true, keyboard: true, + focus: true, show: true - } + }; - Modal.prototype.toggle = function (_relatedTarget) { - return this.isShown ? this.hide() : this.show(_relatedTarget) - } + var DefaultType = { + backdrop: '(boolean|string)', + keyboard: 'boolean', + focus: 'boolean', + show: 'boolean' + }; - Modal.prototype.show = function (_relatedTarget) { - var that = this - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + RESIZE: 'resize' + EVENT_KEY, + CLICK_DISMISS: 'click.dismiss' + EVENT_KEY, + KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY, + MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY, + MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; - this.$element.trigger(e) + var ClassName = { + BACKDROP: 'modal-backdrop', + OPEN: 'modal-open', + FADE: 'fade', + IN: 'in' + }; - if (this.isShown || e.isDefaultPrevented()) return + var Selector = { + DIALOG: '.modal-dialog', + DATA_TOGGLE: '[data-toggle="modal"]', + DATA_DISMISS: '[data-dismiss="modal"]', + SCROLLBAR_MEASURER: 'modal-scrollbar-measure' + }; - this.isShown = true + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ - this.checkScrollbar() - this.setScrollbar() - this.$body.addClass('modal-open') + var Modal = (function () { + function Modal(element, config) { + _classCallCheck(this, Modal); - this.escape() - this.resize() + this._config = this._getConfig(config); + this._element = element; + this._dialog = $(element).find(Selector.DIALOG)[0]; + this._backdrop = null; + this._isShown = false; + this._isBodyOverflowing = false; + this._ignoreBackdropClick = false; + this._originalBodyPadding = 0; + this._scrollbarWidth = 0; + } - this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) + _createClass(Modal, [{ + key: 'toggle', - this.$dialog.on('mousedown.dismiss.bs.modal', function () { - that.$element.one('mouseup.dismiss.bs.modal', function (e) { - if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true - }) - }) + // public - this.backdrop(function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(that.$body) // don't move modals dom position + value: function toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); } + }, { + key: 'show', + value: function show(relatedTarget) { + var _this7 = this; - that.$element - .show() - .scrollTop(0) + var showEvent = $.Event(Event.SHOW, { + relatedTarget: relatedTarget + }); - that.adjustDialog() + $(this._element).trigger(showEvent); - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - that.enforceFocus() - - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) - - transition ? - that.$dialog // wait for modal to slide in - .one('bsTransitionEnd', function () { - that.$element.trigger('focus').trigger(e) - }) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.$element.trigger('focus').trigger(e) - }) - } - - Modal.prototype.hide = function (e) { - if (e) e.preventDefault() - - e = $.Event('hide.bs.modal') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - this.escape() - this.resize() - - $(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') - - $.support.transition && this.$element.hasClass('fade') ? - this.$element - .one('bsTransitionEnd', $.proxy(this.hideModal, this)) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - this.hideModal() - } - - Modal.prototype.enforceFocus = function () { - $(document) - .off('focusin.bs.modal') // guard against infinite focus loop - .on('focusin.bs.modal', $.proxy(function (e) { - if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { - this.$element.trigger('focus') + if (this._isShown || showEvent.isDefaultPrevented()) { + return; } - }, this)) - } - Modal.prototype.escape = function () { - if (this.isShown && this.options.keyboard) { - this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { - e.which == 27 && this.hide() - }, this)) - } else if (!this.isShown) { - this.$element.off('keydown.dismiss.bs.modal') - } - } + this._isShown = true; - Modal.prototype.resize = function () { - if (this.isShown) { - $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) - } else { - $(window).off('resize.bs.modal') - } - } + this._checkScrollbar(); + this._setScrollbar(); - Modal.prototype.hideModal = function () { - var that = this - this.$element.hide() - this.backdrop(function () { - that.$body.removeClass('modal-open') - that.resetAdjustments() - that.resetScrollbar() - that.$element.trigger('hidden.bs.modal') - }) - } + $(document.body).addClass(ClassName.OPEN); - Modal.prototype.removeBackdrop = function () { - this.$backdrop && this.$backdrop.remove() - this.$backdrop = null - } + this._setEscapeEvent(); + this._setResizeEvent(); - Modal.prototype.backdrop = function (callback) { - var that = this - var animate = this.$element.hasClass('fade') ? 'fade' : '' + $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this)); - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate + $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { + $(_this7._element).one(Event.MOUSEUP_DISMISS, function (event) { + if ($(event.target).is(_this7._element)) { + that._ignoreBackdropClick = true; + } + }); + }); - this.$backdrop = $(document.createElement('div')) - .addClass('modal-backdrop ' + animate) - .appendTo(this.$body) - - this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { - if (this.ignoreBackdropClick) { - this.ignoreBackdropClick = false - return - } - if (e.target !== e.currentTarget) return - this.options.backdrop == 'static' - ? this.$element[0].focus() - : this.hide() - }, this)) - - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow - - this.$backdrop.addClass('in') - - if (!callback) return - - doAnimate ? - this.$backdrop - .one('bsTransitionEnd', callback) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callback() - - } else if (!this.isShown && this.$backdrop) { - this.$backdrop.removeClass('in') - - var callbackRemove = function () { - that.removeBackdrop() - callback && callback() + this._showBackdrop($.proxy(this._showElement, this, relatedTarget)); } - $.support.transition && this.$element.hasClass('fade') ? - this.$backdrop - .one('bsTransitionEnd', callbackRemove) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callbackRemove() + }, { + key: 'hide', + value: function hide(event) { + if (event) { + event.preventDefault(); + } - } else if (callback) { - callback() + var hideEvent = $.Event(Event.HIDE); + + $(this._element).trigger(hideEvent); + + if (!this._isShown || hideEvent.isDefaultPrevented()) { + return; + } + + this._isShown = false; + + this._setEscapeEvent(); + this._setResizeEvent(); + + $(document).off(Event.FOCUSIN); + + $(this._element).removeClass(ClassName.IN); + + $(this._element).off(Event.CLICK_DISMISS); + $(this._dialog).off(Event.MOUSEDOWN_DISMISS); + + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + + $(this._element).one(Util.TRANSITION_END, $.proxy(this._hideModal, this)).emulateTransitionEnd(TRANSITION_DURATION); + } else { + this._hideModal(); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + + $(window).off(EVENT_KEY); + $(document).off(EVENT_KEY); + $(this._element).off(EVENT_KEY); + $(this._backdrop).off(EVENT_KEY); + + this._config = null; + this._element = null; + this._dialog = null; + this._backdrop = null; + this._isShown = null; + this._isBodyOverflowing = null; + this._ignoreBackdropClick = null; + this._originalBodyPadding = null; + this._scrollbarWidth = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_showElement', + value: function _showElement(relatedTarget) { + var _this8 = this; + + var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE); + + if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { + // don't move modals dom position + document.body.appendChild(this._element); + } + + this._element.style.display = 'block'; + this._element.scrollTop = 0; + + if (transition) { + Util.reflow(this._element); + } + + $(this._element).addClass(ClassName.IN); + + if (this._config.focus) this._enforceFocus(); + + var shownEvent = $.Event(Event.SHOWN, { + relatedTarget: relatedTarget + }); + + var transitionComplete = function transitionComplete() { + if (_this8._config.focus) _this8._element.focus(); + $(_this8._element).trigger(shownEvent); + }; + + if (transition) { + $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + transitionComplete(); + } + } + }, { + key: '_enforceFocus', + value: function _enforceFocus() { + var _this9 = this; + + $(document).off(Event.FOCUSIN) // guard against infinite focus loop + .on(Event.FOCUSIN, function (event) { + if (_this9._element !== event.target && !$(_this9._element).has(event.target).length) { + _this9._element.focus(); + } + }); + } + }, { + key: '_setEscapeEvent', + value: function _setEscapeEvent() { + var _this10 = this; + + if (this._isShown && this._config.keyboard) { + $(this._element).on(Event.KEYDOWN_DISMISS, function (event) { + if (event.which === 27) { + _this10.hide(); + } + }); + } else if (!this._isShown) { + $(this._element).off(Event.KEYDOWN_DISMISS); + } + } + }, { + key: '_setResizeEvent', + value: function _setResizeEvent() { + if (this._isShown) { + $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this)); + } else { + $(window).off(Event.RESIZE); + } + } + }, { + key: '_hideModal', + value: function _hideModal() { + var _this11 = this; + + this._element.style.display = 'none'; + this._showBackdrop(function () { + $(document.body).removeClass(ClassName.OPEN); + _this11._resetAdjustments(); + _this11._resetScrollbar(); + $(_this11._element).trigger(Event.HIDDEN); + }); + } + }, { + key: '_removeBackdrop', + value: function _removeBackdrop() { + if (this._backdrop) { + $(this._backdrop).remove(); + this._backdrop = null; + } + } + }, { + key: '_showBackdrop', + value: function _showBackdrop(callback) { + var _this12 = this; + + var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : ''; + + if (this._isShown && this._config.backdrop) { + var doAnimate = Util.supportsTransitionEnd() && animate; + + this._backdrop = document.createElement('div'); + this._backdrop.className = ClassName.BACKDROP; + + if (animate) { + $(this._backdrop).addClass(animate); + } + + $(this._backdrop).appendTo(this.$body); + + $(this._element).on(Event.CLICK_DISMISS, function (event) { + if (_this12._ignoreBackdropClick) { + _this12._ignoreBackdropClick = false; + return; + } + if (event.target !== event.currentTarget) { + return; + } + if (_this12._config.backdrop === 'static') { + _this12._element.focus(); + } else { + _this12.hide(); + } + }); + + if (doAnimate) { + Util.reflow(this._backdrop); + } + + $(this._backdrop).addClass(ClassName.IN); + + if (!callback) { + return; + } + + if (!doAnimate) { + callback(); + return; + } + + $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + } else if (!this._isShown && this._backdrop) { + $(this._backdrop).removeClass(ClassName.IN); + + var callbackRemove = function callbackRemove() { + _this12._removeBackdrop(); + if (callback) { + callback(); + } + }; + + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + } else { + callbackRemove(); + } + } else if (callback) { + callback(); + } + } + }, { + key: '_handleUpdate', + + // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // todo (fat): these should probably be refactored out of modal.js + // ---------------------------------------------------------------------- + + value: function _handleUpdate() { + this._adjustDialog(); + } + }, { + key: '_adjustDialog', + value: function _adjustDialog() { + var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing) { + this._element.style.paddingLeft = this._scrollbarWidth + 'px'; + } + + if (this._isBodyOverflowing && !isModalOverflowing) { + this._element.style.paddingRight = this._scrollbarWidth + 'px'; + } + } + }, { + key: '_resetAdjustments', + value: function _resetAdjustments() { + this._element.style.paddingLeft = ''; + this._element.style.paddingRight = ''; + } + }, { + key: '_checkScrollbar', + value: function _checkScrollbar() { + var fullWindowWidth = window.innerWidth; + if (!fullWindowWidth) { + // workaround for missing window.innerWidth in IE8 + var documentElementRect = document.documentElement.getBoundingClientRect(); + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left); + } + this._isBodyOverflowing = document.body.clientWidth < fullWindowWidth; + this._scrollbarWidth = this._getScrollbarWidth(); + } + }, { + key: '_setScrollbar', + value: function _setScrollbar() { + var bodyPadding = parseInt($(document.body).css('padding-right') || 0, 10); + + this._originalBodyPadding = document.body.style.paddingRight || ''; + + if (this._isBodyOverflowing) { + document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px'; + } + } + }, { + key: '_resetScrollbar', + value: function _resetScrollbar() { + document.body.style.paddingRight = this._originalBodyPadding; + } + }, { + key: '_getScrollbarWidth', + value: function _getScrollbarWidth() { + // thx d.walsh + var scrollDiv = document.createElement('div'); + scrollDiv.className = Selector.SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config, relatedTarget) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config); + + if (!data) { + data = new Modal(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](relatedTarget); + } else if (_config.show) { + data.show(relatedTarget); + } + }); + } + }]); + + return Modal; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + var _this13 = this; + + var target = undefined; + var selector = Util.getSelectorFromElement(this); + + if (selector) { + target = $(selector)[0]; } - } - // these following methods are used to handle overflowing modals + var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data()); - Modal.prototype.handleUpdate = function () { - this.adjustDialog() - } - - Modal.prototype.adjustDialog = function () { - var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight - - this.$element.css({ - paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', - paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' - }) - } - - Modal.prototype.resetAdjustments = function () { - this.$element.css({ - paddingLeft: '', - paddingRight: '' - }) - } - - Modal.prototype.checkScrollbar = function () { - var fullWindowWidth = window.innerWidth - if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 - var documentElementRect = document.documentElement.getBoundingClientRect() - fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) + if (this.tagName === 'A') { + event.preventDefault(); } - this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth - this.scrollbarWidth = this.measureScrollbar() - } - Modal.prototype.setScrollbar = function () { - var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) - this.originalBodyPad = document.body.style.paddingRight || '' - if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) - } + var $target = $(target).one(Event.SHOW, function (showEvent) { + if (showEvent.isDefaultPrevented()) { + // only register focus restorer if modal will actually get shown + return; + } - Modal.prototype.resetScrollbar = function () { - this.$body.css('padding-right', this.originalBodyPad) - } + $target.one(Event.HIDDEN, function () { + if ($(_this13).is(':visible')) { + _this13.focus(); + } + }); + }); - Modal.prototype.measureScrollbar = function () { // thx walsh - var scrollDiv = document.createElement('div') - scrollDiv.className = 'modal-scrollbar-measure' - this.$body.append(scrollDiv) - var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth - this.$body[0].removeChild(scrollDiv) - return scrollbarWidth - } + Modal._jQueryInterface.call($(target), config, this); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ - // MODAL PLUGIN DEFINITION - // ======================= + $.fn[NAME] = Modal._jQueryInterface; + $.fn[NAME].Constructor = Modal; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Modal._jQueryInterface; + }; - function Plugin(option, _relatedTarget) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.modal') - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) + return Modal; +})(jQuery); - if (!data) $this.data('bs.modal', (data = new Modal(this, options))) - if (typeof option == 'string') data[option](_relatedTarget) - else if (options.show) data.show(_relatedTarget) - }) - } - - var old = $.fn.modal - - $.fn.modal = Plugin - $.fn.modal.Constructor = Modal - - - // MODAL NO CONFLICT - // ================= - - $.fn.modal.noConflict = function () { - $.fn.modal = old - return this - } - - - // MODAL DATA-API - // ============== - - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { - var $this = $(this) - var href = $this.attr('href') - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 - var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) - - if ($this.is('a')) e.preventDefault() - - $target.one('show.bs.modal', function (showEvent) { - if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown - $target.one('hidden.bs.modal', function () { - $this.is(':visible') && $this.trigger('focus') - }) - }) - Plugin.call($target, option, this) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tooltip.js v3.3.4 - * http://getbootstrap.com/javascript/#tooltip - * Inspired by the original jQuery.tipsy by Jason Frame - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): scrollspy.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ + * -------------------------------------------------------------------------- + */ +var ScrollSpy = (function ($) { -+function ($) { - 'use strict'; + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ - // TOOLTIP PUBLIC CLASS DEFINITION - // =============================== + var NAME = 'scrollspy'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.scrollspy'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; - var Tooltip = function (element, options) { - this.type = null - this.options = null - this.enabled = null - this.timeout = null - this.hoverState = null - this.$element = null - this.inState = null + var Default = { + offset: 10, + method: 'auto', + target: '' + }; - this.init('tooltip', element, options) - } + var DefaultType = { + offset: 'number', + method: 'string', + target: '(string|element)' + }; - Tooltip.VERSION = '3.3.4' + var Event = { + ACTIVATE: 'activate' + EVENT_KEY, + SCROLL: 'scroll' + EVENT_KEY, + LOAD_DATA_API: 'load' + EVENT_KEY + '' + DATA_API_KEY + }; - Tooltip.TRANSITION_DURATION = 150 + var ClassName = { + DROPDOWN_MENU: 'dropdown-menu', + ACTIVE: 'active' + }; - Tooltip.DEFAULTS = { + var Selector = { + DATA_SPY: '[data-spy="scroll"]', + ACTIVE: '.active', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + NAV_ANCHORS: '.nav li > a' + }; + + var OffsetMethod = { + OFFSET: 'offset', + POSITION: 'position' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var ScrollSpy = (function () { + function ScrollSpy(element, config) { + _classCallCheck(this, ScrollSpy); + + this._element = element; + this._scrollElement = element.tagName === 'BODY' ? window : element; + this._config = this._getConfig(config); + this._selector = '' + this._config.target + ' ' + Selector.NAV_ANCHORS; + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + + $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this)); + + this.refresh(); + this._process(); + } + + _createClass(ScrollSpy, [{ + key: 'refresh', + + // public + + value: function refresh() { + var _this14 = this; + + var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET; + + var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + + var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; + + this._offsets = []; + this._targets = []; + + this._scrollHeight = this._getScrollHeight(); + + var targets = $.makeArray($(this._selector)); + + targets.map(function (element) { + var target = undefined; + var targetSelector = Util.getSelectorFromElement(element); + + if (targetSelector) { + target = $(targetSelector)[0]; + } + + if (target && (target.offsetWidth || target.offsetHeight)) { + // todo (fat): remove sketch reliance on jQuery position/offset + return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; + } + }).filter(function (item) { + return item; + }).sort(function (a, b) { + return a[0] - b[0]; + }).forEach(function (item) { + _this14._offsets.push(item[0]); + _this14._targets.push(item[1]); + }); + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._scrollElement).off(EVENT_KEY); + + this._element = null; + this._scrollElement = null; + this._config = null; + this._selector = null; + this._offsets = null; + this._targets = null; + this._activeTarget = null; + this._scrollHeight = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + + if (typeof config.target !== 'string') { + var id = $(config.target).attr('id'); + if (!id) { + id = Util.getUID(NAME); + $(config.target).attr('id', id); + } + config.target = '#' + id; + } + + Util.typeCheckConfig(NAME, config, DefaultType); + + return config; + } + }, { + key: '_getScrollTop', + value: function _getScrollTop() { + return this._scrollElement === window ? this._scrollElement.scrollY : this._scrollElement.scrollTop; + } + }, { + key: '_getScrollHeight', + value: function _getScrollHeight() { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); + } + }, { + key: '_process', + value: function _process() { + var scrollTop = this._getScrollTop() + this._config.offset; + var scrollHeight = this._getScrollHeight(); + var maxScroll = this._config.offset + scrollHeight - this._scrollElement.offsetHeight; + + if (this._scrollHeight !== scrollHeight) { + this.refresh(); + } + + if (scrollTop >= maxScroll) { + var target = this._targets[this._targets.length - 1]; + + if (this._activeTarget !== target) { + this._activate(target); + } + } + + if (this._activeTarget && scrollTop < this._offsets[0]) { + this._activeTarget = null; + this._clear(); + return; + } + + for (var i = this._offsets.length; i--;) { + var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]); + + if (isActiveTarget) { + this._activate(this._targets[i]); + } + } + } + }, { + key: '_activate', + value: function _activate(target) { + this._activeTarget = target; + + this._clear(); + + var selector = '' + this._selector + '[data-target="' + target + '"],' + ('' + this._selector + '[href="' + target + '"]'); + + // todo (fat): getting all the raw li's up the tree is not great. + var parentListItems = $(selector).parents(Selector.LI); + + for (var i = parentListItems.length; i--;) { + $(parentListItems[i]).addClass(ClassName.ACTIVE); + + var itemParent = parentListItems[i].parentNode; + + if (itemParent && $(itemParent).hasClass(ClassName.DROPDOWN_MENU)) { + var closestDropdown = $(itemParent).closest(Selector.LI_DROPDOWN)[0]; + $(closestDropdown).addClass(ClassName.ACTIVE); + } + } + + $(this._scrollElement).trigger(Event.ACTIVATE, { + relatedTarget: target + }); + } + }, { + key: '_clear', + value: function _clear() { + var activeParents = $(this._selector).parentsUntil(this._config.target, Selector.ACTIVE); + + for (var i = activeParents.length; i--;) { + $(activeParents[i]).removeClass(ClassName.ACTIVE); + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' && config || null; + + if (!data) { + data = new ScrollSpy(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return ScrollSpy; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(window).on(Event.LOAD_DATA_API, function () { + var scrollSpys = $.makeArray($(Selector.DATA_SPY)); + + for (var i = scrollSpys.length; i--;) { + var $spy = $(scrollSpys[i]); + ScrollSpy._jQueryInterface.call($spy, $spy.data()); + } + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = ScrollSpy._jQueryInterface; + $.fn[NAME].Constructor = ScrollSpy; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return ScrollSpy._jQueryInterface; + }; + + return ScrollSpy; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tab.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Tab = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'tab'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.tab'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + DROPDOWN_MENU: 'dropdown-menu', + ACTIVE: 'active', + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + A: 'a', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + UL: 'ul:not(.dropdown-menu)', + FADE_CHILD: '> .fade', + ACTIVE: '.active', + ACTIVE_CHILD: '> .active', + DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]', + DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu > .active' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tab = (function () { + function Tab(element) { + _classCallCheck(this, Tab); + + this._element = element; + } + + _createClass(Tab, [{ + key: 'show', + + // public + + value: function show() { + var _this15 = this; + + if (this._element.parentNode && this._element.parentNode.nodeType == Node.ELEMENT_NODE && $(this._element).parent().hasClass(ClassName.ACTIVE)) { + return; + } + + var target = undefined; + var previous = undefined; + var ulElement = $(this._element).closest(Selector.UL)[0]; + var selector = Util.getSelectorFromElement(this._element); + + if (ulElement) { + previous = $.makeArray($(ulElement).find(Selector.ACTIVE)); + previous = previous[previous.length - 1]; + + if (previous) { + previous = $(previous).find(Selector.A)[0]; + } + } + + var hideEvent = $.Event(Event.HIDE, { + relatedTarget: this._element + }); + + var showEvent = $.Event(Event.SHOW, { + relatedTarget: previous + }); + + if (previous) { + $(previous).trigger(hideEvent); + } + + $(this._element).trigger(showEvent); + + if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { + return; + } + + if (selector) { + target = $(selector)[0]; + } + + this._activate($(this._element).closest(Selector.LI)[0], ulElement); + + var complete = function complete() { + var hiddenEvent = $.Event(Event.HIDDEN, { + relatedTarget: _this15._element + }); + + var shownEvent = $.Event(Event.SHOWN, { + relatedTarget: previous + }); + + $(previous).trigger(hiddenEvent); + $(_this15._element).trigger(shownEvent); + }; + + if (target) { + this._activate(target, target.parentNode, complete); + } else { + complete(); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeClass(this._element, DATA_KEY); + this._element = null; + } + }, { + key: '_activate', + + // private + + value: function _activate(element, container, callback) { + var active = $(container).find(Selector.ACTIVE_CHILD)[0]; + var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || !!$(container).find(Selector.FADE_CHILD)[0]); + + var complete = $.proxy(this._transitionComplete, this, element, active, isTransitioning, callback); + + if (active && isTransitioning) { + $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + if (active) { + $(active).removeClass(ClassName.IN); + } + } + }, { + key: '_transitionComplete', + value: function _transitionComplete(element, active, isTransitioning, callback) { + if (active) { + $(active).removeClass(ClassName.ACTIVE); + + var dropdownChild = $(active).find(Selector.DROPDOWN_ACTIVE_CHILD)[0]; + if (dropdownChild) { + $(dropdownChild).removeClass(ClassName.ACTIVE); + } + + var activeToggle = $(active).find(Selector.DATA_TOGGLE)[0]; + if (activeToggle) { + activeToggle.setAttribute('aria-expanded', false); + } + } + + $(element).addClass(ClassName.ACTIVE); + + var elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]; + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true); + } + + if (isTransitioning) { + Util.reflow(element); + $(element).addClass(ClassName.IN); + } else { + $(element).removeClass(ClassName.FADE); + } + + if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { + + var dropdownElement = $(element).closest(Selector.LI_DROPDOWN)[0]; + if (dropdownElement) { + $(dropdownElement).addClass(ClassName.ACTIVE); + } + + elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]; + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true); + } + } + + if (callback) { + callback(); + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DATA_KEY); + + if (!data) { + data = data = new Tab(this); + $this.data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Tab; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault(); + Tab._jQueryInterface.call($(this), 'show'); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Tab._jQueryInterface; + $.fn[NAME].Constructor = Tab; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tab._jQueryInterface; + }; + + return Tab; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Tooltip = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'tooltip'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.tooltip'; + var EVENT_KEY = '.' + DATA_KEY; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + var CLASS_PREFIX = 'bs-tether'; + + var Default = { animation: true, - placement: 'top', - selector: false, - template: '', + template: '', trigger: 'hover focus', title: '', delay: 0, html: false, - container: false, - viewport: { - selector: 'body', - padding: 0 - } - } + selector: false, + placement: 'top', + offset: '0 0', + constraints: [] + }; - Tooltip.prototype.init = function (type, element, options) { - this.enabled = true - this.type = type - this.$element = $(element) - this.options = this.getOptions(options) - this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) - this.inState = { click: false, hover: false, focus: false } + var DefaultType = { + animation: 'boolean', + template: 'string', + title: '(string|function)', + trigger: 'string', + delay: '(number|object)', + html: 'boolean', + selector: '(string|boolean)', + placement: '(string|function)', + offset: 'string', + constraints: 'array' + }; - if (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!') + var AttachmentMap = { + TOP: 'bottom center', + RIGHT: 'middle left', + BOTTOM: 'top center', + LEFT: 'middle right' + }; + + var HoverState = { + IN: 'in', + OUT: 'out' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + INSERTED: 'inserted' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + FOCUSOUT: 'focusout' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY + }; + + var ClassName = { + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + TOOLTIP: '.tooltip', + TOOLTIP_INNER: '.tooltip-inner' + }; + + var TetherClass = { + element: false, + enabled: false + }; + + var Trigger = { + HOVER: 'hover', + FOCUS: 'focus', + CLICK: 'click', + MANUAL: 'manual' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tooltip = (function () { + function Tooltip(element, config) { + _classCallCheck(this, Tooltip); + + // private + this._isEnabled = true; + this._timeout = 0; + this._hoverState = ''; + this._activeTrigger = {}; + this._tether = null; + + // protected + this.element = element; + this.config = this._getConfig(config); + this.tip = null; + + this._setListeners(); } - var triggers = this.options.trigger.split(' ') + _createClass(Tooltip, [{ + key: 'enable', - for (var i = triggers.length; i--;) { - var trigger = triggers[i] + // public - if (trigger == 'click') { - this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) - } else if (trigger != 'manual') { - var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' - var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' - - this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) - this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) + value: function enable() { + this._isEnabled = true; } - } - - this.options.selector ? - (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : - this.fixTitle() - } - - Tooltip.prototype.getDefaults = function () { - return Tooltip.DEFAULTS - } - - Tooltip.prototype.getOptions = function (options) { - options = $.extend({}, this.getDefaults(), this.$element.data(), options) - - if (options.delay && typeof options.delay == 'number') { - options.delay = { - show: options.delay, - hide: options.delay + }, { + key: 'disable', + value: function disable() { + this._isEnabled = false; } - } - - return options - } - - Tooltip.prototype.getDelegateOptions = function () { - var options = {} - var defaults = this.getDefaults() - - this._options && $.each(this._options, function (key, value) { - if (defaults[key] != value) options[key] = value - }) - - return options - } - - Tooltip.prototype.enter = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true - } - - if (self.tip().hasClass('in') || self.hoverState == 'in') { - self.hoverState = 'in' - return - } - - clearTimeout(self.timeout) - - self.hoverState = 'in' - - if (!self.options.delay || !self.options.delay.show) return self.show() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'in') self.show() - }, self.options.delay.show) - } - - Tooltip.prototype.isInStateTrue = function () { - for (var key in this.inState) { - if (this.inState[key]) return true - } - - return false - } - - Tooltip.prototype.leave = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false - } - - if (self.isInStateTrue()) return - - clearTimeout(self.timeout) - - self.hoverState = 'out' - - if (!self.options.delay || !self.options.delay.hide) return self.hide() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'out') self.hide() - }, self.options.delay.hide) - } - - Tooltip.prototype.show = function () { - var e = $.Event('show.bs.' + this.type) - - if (this.hasContent() && this.enabled) { - this.$element.trigger(e) - - var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) - if (e.isDefaultPrevented() || !inDom) return - var that = this - - var $tip = this.tip() - - var tipId = this.getUID(this.type) - - this.setContent() - $tip.attr('id', tipId) - this.$element.attr('aria-describedby', tipId) - - if (this.options.animation) $tip.addClass('fade') - - var placement = typeof this.options.placement == 'function' ? - this.options.placement.call(this, $tip[0], this.$element[0]) : - this.options.placement - - var autoToken = /\s?auto?\s?/i - var autoPlace = autoToken.test(placement) - if (autoPlace) placement = placement.replace(autoToken, '') || 'top' - - $tip - .detach() - .css({ top: 0, left: 0, display: 'block' }) - .addClass(placement) - .data('bs.' + this.type, this) - - this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) - this.$element.trigger('inserted.bs.' + this.type) - - var pos = this.getPosition() - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (autoPlace) { - var orgPlacement = placement - var viewportDim = this.getPosition(this.$viewport) - - placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : - placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : - placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : - placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : - placement - - $tip - .removeClass(orgPlacement) - .addClass(placement) + }, { + key: 'toggleEnabled', + value: function toggleEnabled() { + this._isEnabled = !this._isEnabled; } + }, { + key: 'toggle', + value: function toggle(event) { + var context = this; + var dataKey = this.constructor.DATA_KEY; - var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) + if (event) { + context = $(event.currentTarget).data(dataKey); - this.applyPlacement(calculatedOffset, placement) + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } - var complete = function () { - var prevHoverState = that.hoverState - that.$element.trigger('shown.bs.' + that.type) - that.hoverState = null + context._activeTrigger.click = !context._activeTrigger.click; - if (prevHoverState == 'out') that.leave(that) + if (context._isWithActiveTrigger()) { + context._enter(null, context); + } else { + context._leave(null, context); + } + } else { + $(context.getTipElement()).hasClass(ClassName.IN) ? context._leave(null, context) : context._enter(null, context); + } } + }, { + key: 'dispose', + value: function dispose() { + clearTimeout(this._timeout); - $.support.transition && this.$tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - } - } + this.cleanupTether(); - Tooltip.prototype.applyPlacement = function (offset, placement) { - var $tip = this.tip() - var width = $tip[0].offsetWidth - var height = $tip[0].offsetHeight + $.removeData(this.element, this.constructor.DATA_KEY); - // manually read margins because getBoundingClientRect includes difference - var marginTop = parseInt($tip.css('margin-top'), 10) - var marginLeft = parseInt($tip.css('margin-left'), 10) + $(this.element).off(this.constructor.EVENT_KEY); - // we must check for NaN for ie 8/9 - if (isNaN(marginTop)) marginTop = 0 - if (isNaN(marginLeft)) marginLeft = 0 + if (this.tip) { + $(this.tip).remove(); + } - offset.top += marginTop - offset.left += marginLeft + this._isEnabled = null; + this._timeout = null; + this._hoverState = null; + this._activeTrigger = null; + this._tether = null; - // $.fn.offset doesn't round pixel values - // so we use setOffset directly with our own function B-0 - $.offset.setOffset($tip[0], $.extend({ - using: function (props) { - $tip.css({ - top: Math.round(props.top), - left: Math.round(props.left) - }) + this.element = null; + this.config = null; + this.tip = null; } - }, offset), 0) + }, { + key: 'show', + value: function show() { + var _this16 = this; - $tip.addClass('in') + var showEvent = $.Event(this.constructor.Event.SHOW); - // check to see if placing tip in new offset caused the tip to resize itself - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight + if (this.isWithContent() && this._isEnabled) { + $(this.element).trigger(showEvent); - if (placement == 'top' && actualHeight != height) { - offset.top = offset.top + height - actualHeight - } + var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element); - var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) + if (showEvent.isDefaultPrevented() || !isInTheDom) { + return; + } - if (delta.left) offset.left += delta.left - else offset.top += delta.top + var tip = this.getTipElement(); + var tipId = Util.getUID(this.constructor.NAME); - var isVertical = /top|bottom/.test(placement) - var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight - var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' + tip.setAttribute('id', tipId); + this.element.setAttribute('aria-describedby', tipId); - $tip.offset(offset) - this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) - } + this.setContent(); - Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { - this.arrow() - .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') - .css(isVertical ? 'top' : 'left', '') - } + if (this.config.animation) { + $(tip).addClass(ClassName.FADE); + } - Tooltip.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() + var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; - $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) - $tip.removeClass('fade in top bottom left right') - } + var attachment = this._getAttachment(placement); - Tooltip.prototype.hide = function (callback) { - var that = this - var $tip = $(this.$tip) - var e = $.Event('hide.bs.' + this.type) + $(tip).data(this.constructor.DATA_KEY, this).appendTo(document.body); - function complete() { - if (that.hoverState != 'in') $tip.detach() - that.$element - .removeAttr('aria-describedby') - .trigger('hidden.bs.' + that.type) - callback && callback() - } + $(this.element).trigger(this.constructor.Event.INSERTED); - this.$element.trigger(e) + this._tether = new Tether({ + element: tip, + target: this.element, + attachment: attachment, + classes: TetherClass, + classPrefix: CLASS_PREFIX, + offset: this.config.offset, + constraints: this.config.constraints + }); - if (e.isDefaultPrevented()) return + Util.reflow(tip); + this._tether.position(); - $tip.removeClass('in') + $(tip).addClass(ClassName.IN); - $.support.transition && $tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() + var complete = function complete() { + var prevHoverState = _this16._hoverState; + _this16._hoverState = null; - this.hoverState = null + $(_this16.element).trigger(_this16.constructor.Event.SHOWN); - return this - } + if (prevHoverState === HoverState.OUT) { + _this16._leave(null, _this16); + } + }; - Tooltip.prototype.fixTitle = function () { - var $e = this.$element - if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { - $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') - } - } - - Tooltip.prototype.hasContent = function () { - return this.getTitle() - } - - Tooltip.prototype.getPosition = function ($element) { - $element = $element || this.$element - - var el = $element[0] - var isBody = el.tagName == 'BODY' - - var elRect = el.getBoundingClientRect() - if (elRect.width == null) { - // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 - elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) - } - var elOffset = isBody ? { top: 0, left: 0 } : $element.offset() - var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } - var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null - - return $.extend({}, elRect, scroll, outerDims, elOffset) - } - - Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { - return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : - /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } - - } - - Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { - var delta = { top: 0, left: 0 } - if (!this.$viewport) return delta - - var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 - var viewportDimensions = this.getPosition(this.$viewport) - - if (/right|left/.test(placement)) { - var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll - var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight - if (topEdgeOffset < viewportDimensions.top) { // top overflow - delta.top = viewportDimensions.top - topEdgeOffset - } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow - delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset + Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE) ? $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION) : complete(); + } } - } else { - var leftEdgeOffset = pos.left - viewportPadding - var rightEdgeOffset = pos.left + viewportPadding + actualWidth - if (leftEdgeOffset < viewportDimensions.left) { // left overflow - delta.left = viewportDimensions.left - leftEdgeOffset - } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow - delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset + }, { + key: 'hide', + value: function hide(callback) { + var _this17 = this; + + var tip = this.getTipElement(); + var hideEvent = $.Event(this.constructor.Event.HIDE); + var complete = function complete() { + if (_this17._hoverState !== HoverState.IN && tip.parentNode) { + tip.parentNode.removeChild(tip); + } + + _this17.element.removeAttribute('aria-describedby'); + $(_this17.element).trigger(_this17.constructor.Event.HIDDEN); + _this17.cleanupTether(); + + if (callback) { + callback(); + } + }; + + $(this.element).trigger(hideEvent); + + if (hideEvent.isDefaultPrevented()) { + return; + } + + $(tip).removeClass(ClassName.IN); + + if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + + $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + this._hoverState = ''; } - } + }, { + key: 'isWithContent', - return delta - } + // protected - Tooltip.prototype.getTitle = function () { - var title - var $e = this.$element - var o = this.options - - title = $e.attr('data-original-title') - || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) - - return title - } - - Tooltip.prototype.getUID = function (prefix) { - do prefix += ~~(Math.random() * 1000000) - while (document.getElementById(prefix)) - return prefix - } - - Tooltip.prototype.tip = function () { - if (!this.$tip) { - this.$tip = $(this.options.template) - if (this.$tip.length != 1) { - throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') + value: function isWithContent() { + return !!this.getTitle(); } - } - return this.$tip - } - - Tooltip.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) - } - - Tooltip.prototype.enable = function () { - this.enabled = true - } - - Tooltip.prototype.disable = function () { - this.enabled = false - } - - Tooltip.prototype.toggleEnabled = function () { - this.enabled = !this.enabled - } - - Tooltip.prototype.toggle = function (e) { - var self = this - if (e) { - self = $(e.currentTarget).data('bs.' + this.type) - if (!self) { - self = new this.constructor(e.currentTarget, this.getDelegateOptions()) - $(e.currentTarget).data('bs.' + this.type, self) + }, { + key: 'getTipElement', + value: function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; } - } + }, { + key: 'setContent', + value: function setContent() { + var tip = this.getTipElement(); + var title = this.getTitle(); + var method = this.config.html ? 'innerHTML' : 'innerText'; - if (e) { - self.inState.click = !self.inState.click - if (self.isInStateTrue()) self.enter(self) - else self.leave(self) - } else { - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) - } - } + $(tip).find(Selector.TOOLTIP_INNER)[0][method] = title; - Tooltip.prototype.destroy = function () { - var that = this - clearTimeout(this.timeout) - this.hide(function () { - that.$element.off('.' + that.type).removeData('bs.' + that.type) - if (that.$tip) { - that.$tip.detach() + $(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN); + + this.cleanupTether(); } - that.$tip = null - that.$arrow = null - that.$viewport = null - }) - } + }, { + key: 'getTitle', + value: function getTitle() { + var title = this.element.getAttribute('data-original-title'); + if (!title) { + title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; + } - // TOOLTIP PLUGIN DEFINITION - // ========================= + return title; + } + }, { + key: 'cleanupTether', + value: function cleanupTether() { + if (this._tether) { + this._tether.destroy(); - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tooltip') - var options = typeof option == 'object' && option + // clean up after tether's junk classes + // remove after they fix issue + // (https://github.com/HubSpot/tether/issues/36) + $(this.element).removeClass(this._removeTetherClasses); + $(this.tip).removeClass(this._removeTetherClasses); + } + } + }, { + key: '_getAttachment', - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) - if (typeof option == 'string') data[option]() - }) - } + // private - var old = $.fn.tooltip + value: function _getAttachment(placement) { + return AttachmentMap[placement.toUpperCase()]; + } + }, { + key: '_setListeners', + value: function _setListeners() { + var _this18 = this; - $.fn.tooltip = Plugin - $.fn.tooltip.Constructor = Tooltip + var triggers = this.config.trigger.split(' '); + triggers.forEach(function (trigger) { + if (trigger === 'click') { + $(_this18.element).on(_this18.constructor.Event.CLICK, _this18.config.selector, $.proxy(_this18.toggle, _this18)); + } else if (trigger !== Trigger.MANUAL) { + var eventIn = trigger == Trigger.HOVER ? _this18.constructor.Event.MOUSEENTER : _this18.constructor.Event.FOCUSIN; + var eventOut = trigger == Trigger.HOVER ? _this18.constructor.Event.MOUSELEAVE : _this18.constructor.Event.FOCUSOUT; - // TOOLTIP NO CONFLICT - // =================== + $(_this18.element).on(eventIn, _this18.config.selector, $.proxy(_this18._enter, _this18)).on(eventOut, _this18.config.selector, $.proxy(_this18._leave, _this18)); + } + }); - $.fn.tooltip.noConflict = function () { - $.fn.tooltip = old - return this - } + if (this.config.selector) { + this.config = $.extend({}, this.config, { + trigger: 'manual', + selector: '' + }); + } else { + this._fixTitle(); + } + } + }, { + key: '_removeTetherClasses', + value: function _removeTetherClasses(i, css) { + return ((css.baseVal || css).match(new RegExp('(^|\\s)' + CLASS_PREFIX + '-\\S+', 'g')) || []).join(' '); + } + }, { + key: '_fixTitle', + value: function _fixTitle() { + var titleType = typeof this.element.getAttribute('data-original-title'); + if (this.element.getAttribute('title') || titleType !== 'string') { + this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); + this.element.setAttribute('title', ''); + } + } + }, { + key: '_enter', + value: function _enter(event, context) { + var dataKey = this.constructor.DATA_KEY; -}(jQuery); + context = context || $(event.currentTarget).data(dataKey); -/* ======================================================================== - * Bootstrap: popover.js v3.3.4 - * http://getbootstrap.com/javascript/#popovers - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type == 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; + } + + if ($(context.getTipElement()).hasClass(ClassName.IN) || context._hoverState === HoverState.IN) { + context._hoverState = HoverState.IN; + return; + } + + clearTimeout(context._timeout); + + context._hoverState = HoverState.IN; + + if (!context.config.delay || !context.config.delay.show) { + context.show(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.IN) { + context.show(); + } + }, context.config.delay.show); + } + }, { + key: '_leave', + value: function _leave(event, context) { + var dataKey = this.constructor.DATA_KEY; + + context = context || $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type == 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; + } + + if (context._isWithActiveTrigger()) { + return; + } + + clearTimeout(context._timeout); + + context._hoverState = HoverState.OUT; + + if (!context.config.delay || !context.config.delay.hide) { + context.hide(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.OUT) { + context.hide(); + } + }, context.config.delay.hide); + } + }, { + key: '_isWithActiveTrigger', + value: function _isWithActiveTrigger() { + for (var trigger in this._activeTrigger) { + if (this._activeTrigger[trigger]) { + return true; + } + } + + return false; + } + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, this.constructor.Default, $(this.element).data(), config); + + if (config.delay && typeof config.delay === 'number') { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + + Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + + return config; + } + }, { + key: '_getDelegateConfig', + value: function _getDelegateConfig() { + var config = {}; + + if (this.config) { + for (var key in this.config) { + var value = this.config[key]; + if (this.constructor.Default[key] !== value) { + config[key] = value; + } + } + } + + return config; + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: 'NAME', + get: function () { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function () { + return DATA_KEY; + } + }, { + key: 'Event', + get: function () { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function () { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function () { + return DefaultType; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' ? config : null; + + if (!data && /destroy|hide/.test(config)) { + return; + } + + if (!data) { + data = new Tooltip(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Tooltip; + })(); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Tooltip._jQueryInterface; + $.fn[NAME].Constructor = Tooltip; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tooltip._jQueryInterface; + }; + + return Tooltip; +})(jQuery); + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): popover.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ + * -------------------------------------------------------------------------- + */ +var Popover = (function ($) { -+function ($) { - 'use strict'; + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ - // POPOVER PUBLIC CLASS DEFINITION - // =============================== + var NAME = 'popover'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.popover'; + var EVENT_KEY = '.' + DATA_KEY; + var JQUERY_NO_CONFLICT = $.fn[NAME]; - var Popover = function (element, options) { - this.init('popover', element, options) - } - - if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - - Popover.VERSION = '3.3.4' - - Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { + var Default = $.extend({}, Tooltip.Default, { placement: 'right', trigger: 'click', content: '', - template: '' - }) - - - // NOTE: POPOVER EXTENDS tooltip.js - // ================================ - - Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) - - Popover.prototype.constructor = Popover - - Popover.prototype.getDefaults = function () { - return Popover.DEFAULTS - } - - Popover.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - var content = this.getContent() - - $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) - $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events - this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' - ](content) - - $tip.removeClass('fade top bottom left right in') - - // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do - // this manually by checking the contents. - if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() - } - - Popover.prototype.hasContent = function () { - return this.getTitle() || this.getContent() - } - - Popover.prototype.getContent = function () { - var $e = this.$element - var o = this.options - - return $e.attr('data-content') - || (typeof o.content == 'function' ? - o.content.call($e[0]) : - o.content) - } - - Popover.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.arrow')) - } - - - // POPOVER PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.popover') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.popover', (data = new Popover(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.popover - - $.fn.popover = Plugin - $.fn.popover.Constructor = Popover - - - // POPOVER NO CONFLICT - // =================== - - $.fn.popover.noConflict = function () { - $.fn.popover = old - return this - } - -}(jQuery); - -/* ======================================================================== - * Bootstrap: scrollspy.js v3.3.4 - * http://getbootstrap.com/javascript/#scrollspy - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // SCROLLSPY CLASS DEFINITION - // ========================== - - function ScrollSpy(element, options) { - this.$body = $(document.body) - this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) - this.options = $.extend({}, ScrollSpy.DEFAULTS, options) - this.selector = (this.options.target || '') + ' .nav li > a' - this.offsets = [] - this.targets = [] - this.activeTarget = null - this.scrollHeight = 0 - - this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) - this.refresh() - this.process() - } - - ScrollSpy.VERSION = '3.3.4' - - ScrollSpy.DEFAULTS = { - offset: 10 - } - - ScrollSpy.prototype.getScrollHeight = function () { - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - } - - ScrollSpy.prototype.refresh = function () { - var that = this - var offsetMethod = 'offset' - var offsetBase = 0 - - this.offsets = [] - this.targets = [] - this.scrollHeight = this.getScrollHeight() - - if (!$.isWindow(this.$scrollElement[0])) { - offsetMethod = 'position' - offsetBase = this.$scrollElement.scrollTop() - } - - this.$body - .find(this.selector) - .map(function () { - var $el = $(this) - var href = $el.data('target') || $el.attr('href') - var $href = /^#./.test(href) && $(href) - - return ($href - && $href.length - && $href.is(':visible') - && [[$href[offsetMethod]().top + offsetBase, href]]) || null - }) - .sort(function (a, b) { return a[0] - b[0] }) - .each(function () { - that.offsets.push(this[0]) - that.targets.push(this[1]) - }) - } - - ScrollSpy.prototype.process = function () { - var scrollTop = this.$scrollElement.scrollTop() + this.options.offset - var scrollHeight = this.getScrollHeight() - var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() - var offsets = this.offsets - var targets = this.targets - var activeTarget = this.activeTarget - var i - - if (this.scrollHeight != scrollHeight) { - this.refresh() - } - - if (scrollTop >= maxScroll) { - return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) - } - - if (activeTarget && scrollTop < offsets[0]) { - this.activeTarget = null - return this.clear() - } - - for (i = offsets.length; i--;) { - activeTarget != targets[i] - && scrollTop >= offsets[i] - && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) - && this.activate(targets[i]) - } - } - - ScrollSpy.prototype.activate = function (target) { - this.activeTarget = target - - this.clear() - - var selector = this.selector + - '[data-target="' + target + '"],' + - this.selector + '[href="' + target + '"]' - - var active = $(selector) - .parents('li') - .addClass('active') - - if (active.parent('.dropdown-menu').length) { - active = active - .closest('li.dropdown') - .addClass('active') - } - - active.trigger('activate.bs.scrollspy') - } - - ScrollSpy.prototype.clear = function () { - $(this.selector) - .parentsUntil(this.options.target, '.active') - .removeClass('active') - } - - - // SCROLLSPY PLUGIN DEFINITION - // =========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.scrollspy') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.scrollspy - - $.fn.scrollspy = Plugin - $.fn.scrollspy.Constructor = ScrollSpy - - - // SCROLLSPY NO CONFLICT - // ===================== - - $.fn.scrollspy.noConflict = function () { - $.fn.scrollspy = old - return this - } - - - // SCROLLSPY DATA-API - // ================== - - $(window).on('load.bs.scrollspy.data-api', function () { - $('[data-spy="scroll"]').each(function () { - var $spy = $(this) - Plugin.call($spy, $spy.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tab.js v3.3.4 - * http://getbootstrap.com/javascript/#tabs - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TAB CLASS DEFINITION - // ==================== - - var Tab = function (element) { - // jscs:disable requireDollarBeforejQueryAssignment - this.element = $(element) - // jscs:enable requireDollarBeforejQueryAssignment - } - - Tab.VERSION = '3.3.4' - - Tab.TRANSITION_DURATION = 150 - - Tab.prototype.show = function () { - var $this = this.element - var $ul = $this.closest('ul:not(.dropdown-menu)') - var selector = $this.data('target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - if ($this.parent('li').hasClass('active')) return - - var $previous = $ul.find('.active:last a') - var hideEvent = $.Event('hide.bs.tab', { - relatedTarget: $this[0] - }) - var showEvent = $.Event('show.bs.tab', { - relatedTarget: $previous[0] - }) - - $previous.trigger(hideEvent) - $this.trigger(showEvent) - - if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return - - var $target = $(selector) - - this.activate($this.closest('li'), $ul) - this.activate($target, $target.parent(), function () { - $previous.trigger({ - type: 'hidden.bs.tab', - relatedTarget: $this[0] - }) - $this.trigger({ - type: 'shown.bs.tab', - relatedTarget: $previous[0] - }) - }) - } - - Tab.prototype.activate = function (element, container, callback) { - var $active = container.find('> .active') - var transition = callback - && $.support.transition - && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', false) - - element - .addClass('active') - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - - if (transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') - } else { - element.removeClass('fade') + template: '' + }); + + var DefaultType = $.extend({}, Tooltip.DefaultType, { + content: '(string|function)' + }); + + var ClassName = { + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + TITLE: '.popover-title', + CONTENT: '.popover-content', + ARROW: '.popover-arrow' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + INSERTED: 'inserted' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + FOCUSOUT: 'focusout' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Popover = (function (_Tooltip) { + function Popover() { + _classCallCheck(this, Popover); + + if (_Tooltip != null) { + _Tooltip.apply(this, arguments); } + } - if (element.parent('.dropdown-menu').length) { - element - .closest('li.dropdown') - .addClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) + _inherits(Popover, _Tooltip); + + _createClass(Popover, [{ + key: 'isWithContent', + + // overrides + + value: function isWithContent() { + return this.getTitle() || this._getContent(); } + }, { + key: 'getTipElement', + value: function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; + } + }, { + key: 'setContent', + value: function setContent() { + var tip = this.getTipElement(); + var title = this.getTitle(); + var content = this._getContent(); + var titleElement = $(tip).find(Selector.TITLE)[0]; - callback && callback() - } + if (titleElement) { + titleElement[this.config.html ? 'innerHTML' : 'innerText'] = title; + } - $active.length && transition ? - $active - .one('bsTransitionEnd', next) - .emulateTransitionEnd(Tab.TRANSITION_DURATION) : - next() + // we use append for html objects to maintain js events + $(tip).find(Selector.CONTENT).children().detach().end()[this.config.html ? typeof content === 'string' ? 'html' : 'append' : 'text'](content); - $active.removeClass('in') - } + $(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN); + this.cleanupTether(); + } + }, { + key: '_getContent', - // TAB PLUGIN DEFINITION - // ===================== + // private - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tab') + value: function _getContent() { + return this.element.getAttribute('data-content') || (typeof this.config.content == 'function' ? this.config.content.call(this.element) : this.config.content); + } + }], [{ + key: 'VERSION', - if (!data) $this.data('bs.tab', (data = new Tab(this))) - if (typeof option == 'string') data[option]() - }) - } + // getters - var old = $.fn.tab + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: 'NAME', + get: function () { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function () { + return DATA_KEY; + } + }, { + key: 'Event', + get: function () { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function () { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function () { + return DefaultType; + } + }, { + key: '_jQueryInterface', - $.fn.tab = Plugin - $.fn.tab.Constructor = Tab + // static + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' ? config : null; - // TAB NO CONFLICT - // =============== + if (!data && /destroy|hide/.test(config)) { + return; + } - $.fn.tab.noConflict = function () { - $.fn.tab = old - return this - } + if (!data) { + data = new Popover(this, _config); + $(this).data(DATA_KEY, data); + } + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); - // TAB DATA-API - // ============ + return Popover; + })(Tooltip); - var clickHandler = function (e) { - e.preventDefault() - Plugin.call($(this), 'show') - } + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ - $(document) - .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) - .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: affix.js v3.3.4 - * http://getbootstrap.com/javascript/#affix - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // AFFIX CLASS DEFINITION - // ====================== - - var Affix = function (element, options) { - this.options = $.extend({}, Affix.DEFAULTS, options) - - this.$target = $(this.options.target) - .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) - .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) - - this.$element = $(element) - this.affixed = null - this.unpin = null - this.pinnedOffset = null - - this.checkPosition() - } - - Affix.VERSION = '3.3.4' - - Affix.RESET = 'affix affix-top affix-bottom' - - Affix.DEFAULTS = { - offset: 0, - target: window - } - - Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - var targetHeight = this.$target.height() - - if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false - - if (this.affixed == 'bottom') { - if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' - return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' - } - - var initializing = this.affixed == null - var colliderTop = initializing ? scrollTop : position.top - var colliderHeight = initializing ? targetHeight : height - - if (offsetTop != null && scrollTop <= offsetTop) return 'top' - if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' - - return false - } - - Affix.prototype.getPinnedOffset = function () { - if (this.pinnedOffset) return this.pinnedOffset - this.$element.removeClass(Affix.RESET).addClass('affix') - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - return (this.pinnedOffset = position.top - scrollTop) - } - - Affix.prototype.checkPositionWithEventLoop = function () { - setTimeout($.proxy(this.checkPosition, this), 1) - } - - Affix.prototype.checkPosition = function () { - if (!this.$element.is(':visible')) return - - var height = this.$element.height() - var offset = this.options.offset - var offsetTop = offset.top - var offsetBottom = offset.bottom - var scrollHeight = Math.max($(document).height(), $(document.body).height()) - - if (typeof offset != 'object') offsetBottom = offsetTop = offset - if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) - if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) - - var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) - - if (this.affixed != affix) { - if (this.unpin != null) this.$element.css('top', '') - - var affixType = 'affix' + (affix ? '-' + affix : '') - var e = $.Event(affixType + '.bs.affix') - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - this.affixed = affix - this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null - - this.$element - .removeClass(Affix.RESET) - .addClass(affixType) - .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') - } - - if (affix == 'bottom') { - this.$element.offset({ - top: scrollHeight - height - offsetBottom - }) - } - } - - - // AFFIX PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.affix') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.affix', (data = new Affix(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.affix - - $.fn.affix = Plugin - $.fn.affix.Constructor = Affix - - - // AFFIX NO CONFLICT - // ================= - - $.fn.affix.noConflict = function () { - $.fn.affix = old - return this - } - - - // AFFIX DATA-API - // ============== - - $(window).on('load', function () { - $('[data-spy="affix"]').each(function () { - var $spy = $(this) - var data = $spy.data() - - data.offset = data.offset || {} - - if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom - if (data.offsetTop != null) data.offset.top = data.offsetTop - - Plugin.call($spy, data) - }) - }) + $.fn[NAME] = Popover._jQueryInterface; + $.fn[NAME].Constructor = Popover; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Popover._jQueryInterface; + }; + + return Popover; +})(jQuery); }(jQuery); diff --git a/dist/js/bootstrap.min.js b/dist/js/bootstrap.min.js index 7665759238..497cc8176c 100644 --- a/dist/js/bootstrap.min.js +++ b/dist/js/bootstrap.min.js @@ -3,5 +3,6 @@ * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(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){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(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.4",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);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.4",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)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},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);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).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.4",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"));return a>this.$items.length-1||0>a?void 0: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(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0: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.4",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("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.4",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("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('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.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
',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);return 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()?void 0:(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-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.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})};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.4",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),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.4",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[a]&&(void 0===e[a+1]||b .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.4",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 c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},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); \ No newline at end of file +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(){"use strict";function a(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)}function b(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}{var c=function(){function a(a,b){for(var c=0;cthis._items.length-1||0>b)){if(this._isSliding)return void a(this._element).one(o.SLID,function(){return c.to(b)});if(d==b)return this.pause(),void this.cycle();var e=b>d?n.NEXT:n.PREVIOUS;this._slide(e,this._items[b])}}},{key:"dispose",value:function(){a(this._element).off(h),a.removeData(this._element,g),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}},{key:"_getConfig",value:function(b){return b=a.extend({},l,b),d.typeCheckConfig(e,b,m),b}},{key:"_addEventListeners",value:function(){this._config.keyboard&&a(this._element).on(o.KEYDOWN,a.proxy(this._keydown,this)),"hover"!=this._config.pause||"ontouchstart"in document.documentElement||a(this._element).on(o.MOUSEENTER,a.proxy(this.pause,this)).on(o.MOUSELEAVE,a.proxy(this.cycle,this))}},{key:"_keydown",value:function(a){if(a.preventDefault(),!/input|textarea/i.test(a.target.tagName))switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}}},{key:"_getItemIndex",value:function(b){return this._items=a.makeArray(a(b).parent().find(q.ITEM)),this._items.indexOf(b)}},{key:"_getItemByDirection",value:function(a,b){var c=a===n.NEXT,d=a===n.PREVIOUS,e=this._getItemIndex(b),f=this._items.length-1,g=d&&0===e||c&&e==f;if(g&&!this._config.wrap)return b;var h=a==n.PREVIOUS?-1:1,i=(e+h)%this._items.length;return-1===i?this._items[this._items.length-1]:this._items[i]}},{key:"_triggerSlideEvent",value:function(b,c){var d=a.Event(o.SLIDE,{relatedTarget:b,direction:c});return a(this._element).trigger(d),d}},{key:"_setActiveIndicatorElement",value:function(b){if(this._indicatorsElement){a(this._indicatorsElement).find(q.ACTIVE).removeClass(p.ACTIVE);var c=this._indicatorsElement.children[this._getItemIndex(b)];c&&a(c).addClass(p.ACTIVE)}}},{key:"_slide",value:function(b,c){var e=this,f=a(this._element).find(q.ACTIVE_ITEM)[0],g=c||f&&this._getItemByDirection(b,f),h=!!this._interval,i=b==n.NEXT?p.LEFT:p.RIGHT;if(g&&a(g).hasClass(p.ACTIVE))return void(this._isSliding=!1);var j=this._triggerSlideEvent(g,i);if(!j.isDefaultPrevented()&&f&&g){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(g);var l=a.Event(o.SLID,{relatedTarget:g,direction:i});d.supportsTransitionEnd()&&a(this._element).hasClass(p.SLIDE)?(a(g).addClass(b),d.reflow(g),a(f).addClass(i),a(g).addClass(i),a(f).one(d.TRANSITION_END,function(){a(g).removeClass(i).removeClass(b),a(g).addClass(p.ACTIVE),a(f).removeClass(p.ACTIVE).removeClass(b).removeClass(i),e._isSliding=!1,setTimeout(function(){return a(e._element).trigger(l)},0)}).emulateTransitionEnd(k)):(a(f).removeClass(p.ACTIVE),a(g).addClass(p.ACTIVE),this._isSliding=!1,a(this._element).trigger(l)),h&&this.cycle()}}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d=a.extend({},l,a(this).data());"object"==typeof b&&a.extend(d,b);var e="string"==typeof b?b:d.slide;c||(c=new i(this,d),a(this).data(g,c)),"number"==typeof b?c.to(b):e?c[e]():d.interval&&(c.pause(),c.cycle())})}},{key:"_dataApiClickHandler",value:function(b){var c=d.getSelectorFromElement(this);if(c){var e=a(c)[0];if(e&&a(e).hasClass(p.CAROUSEL)){var f=a.extend({},a(e).data(),a(this).data()),h=this.getAttribute("data-slide-to");h&&(f.interval=!1),i._jQueryInterface.call(a(e),f),h&&a(e).data(g).to(h),b.preventDefault()}}}}]),i}();return a(document).on(o.CLICK_DATA_API,q.DATA_SLIDE,r._dataApiClickHandler),a(window).on(o.LOAD_DATA_API,function(){a(q.DATA_RIDE).each(function(){var b=a(this);r._jQueryInterface.call(b,b.data())})}),a.fn[e]=r._jQueryInterface,a.fn[e].Constructor=r,a.fn[e].noConflict=function(){return a.fn[e]=j,r._jQueryInterface},r}(jQuery),function(a){var e="collapse",f="4.0.0",g="bs.collapse",h="."+g,i=".data-api",j=a.fn[e],k=600,l={toggle:!0,parent:""},m={toggle:"boolean",parent:"string"},n={SHOW:"show"+h,SHOWN:"shown"+h,HIDE:"hide"+h,HIDDEN:"hidden"+h,CLICK_DATA_API:"click"+h+i},o={IN:"in",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},p={WIDTH:"width",HEIGHT:"height"},q={ACTIVES:".panel > .in, .panel > .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},r=function(){function h(c,d){b(this,h),this._isTransitioning=!1,this._element=c,this._config=this._getConfig(d),this._triggerArray=a.makeArray(a('[data-toggle="collapse"][href="#'+c.id+'"],'+('[data-toggle="collapse"][data-target="#'+c.id+'"]'))),this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}return c(h,[{key:"toggle",value:function(){a(this._element).hasClass(o.IN)?this.hide():this.show()}},{key:"show",value:function(){var b=this;if(!this._isTransitioning&&!a(this._element).hasClass(o.IN)){var c=void 0,e=void 0;if(this._parent&&(c=a.makeArray(a(q.ACTIVES)),c.length||(c=null)),!(c&&(e=a(c).data(g),e&&e._isTransitioning))){var f=a.Event(n.SHOW);if(a(this._element).trigger(f),!f.isDefaultPrevented()){c&&(h._jQueryInterface.call(a(c),"hide"),e||a(c).data(g,null));var i=this._getDimension();a(this._element).removeClass(o.COLLAPSE).addClass(o.COLLAPSING),this._element.style[i]=0,this._element.setAttribute("aria-expanded",!0),this._triggerArray.length&&a(this._triggerArray).removeClass(o.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var j=function(){a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).addClass(o.IN),b._element.style[i]="",b.setTransitioning(!1),a(b._element).trigger(n.SHOWN)};if(!d.supportsTransitionEnd())return void j();var l="scroll"+(i[0].toUpperCase()+i.slice(1));a(this._element).one(d.TRANSITION_END,j).emulateTransitionEnd(k),this._element.style[i]=this._element[l]+"px"}}}}},{key:"hide",value:function(){var b=this;if(!this._isTransitioning&&a(this._element).hasClass(o.IN)){var c=a.Event(n.HIDE);if(a(this._element).trigger(c),!c.isDefaultPrevented()){var e=this._getDimension(),f=e===p.WIDTH?"offsetWidth":"offsetHeight";this._element.style[e]=this._element[f]+"px",d.reflow(this._element),a(this._element).addClass(o.COLLAPSING).removeClass(o.COLLAPSE).removeClass(o.IN),this._element.setAttribute("aria-expanded",!1),this._triggerArray.length&&a(this._triggerArray).addClass(o.COLLAPSED).attr("aria-expanded",!1),this.setTransitioning(!0);var g=function(){b.setTransitioning(!1),a(b._element).removeClass(o.COLLAPSING).addClass(o.COLLAPSE).trigger(n.HIDDEN)};return this._element.style[e]=0,d.supportsTransitionEnd()?void a(this._element).one(d.TRANSITION_END,g).emulateTransitionEnd(k):g()}}}},{key:"setTransitioning",value:function(a){this._isTransitioning=a}},{key:"dispose",value:function(){a.removeData(this._element,g),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}},{key:"_getConfig",value:function(b){return b=a.extend({},l,b),b.toggle=!!b.toggle,d.typeCheckConfig(e,b,m),b}},{key:"_getDimension",value:function(){var b=a(this._element).hasClass(p.WIDTH);return b?p.WIDTH:p.HEIGHT}},{key:"_getParent",value:function(){var b=this,c=a(this._config.parent)[0],d='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return a(c).find(d).each(function(a,c){b._addAriaAndCollapsedClass(h._getTargetFromElement(c),[c])}),c}},{key:"_addAriaAndCollapsedClass",value:function(b,c){if(b){var d=a(b).hasClass(o.IN);b.setAttribute("aria-expanded",d),c.length&&a(c).toggleClass(o.COLLAPSED,!d).attr("aria-expanded",d)}}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"_getTargetFromElement",value:function(b){var c=d.getSelectorFromElement(b);return c?a(c)[0]:null}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g),e=a.extend({},l,c.data(),"object"==typeof b&&b);!d&&e.toggle&&/show|hide/.test(b)&&(e.toggle=!1),d||(d=new h(this,e),c.data(g,d)),"string"==typeof b&&d[b]()})}}]),h}();return a(document).on(n.CLICK_DATA_API,q.DATA_TOGGLE,function(b){b.preventDefault();var c=r._getTargetFromElement(this),d=a(c).data(g),e=d?"toggle":a(this).data();r._jQueryInterface.call(a(c),e)}),a.fn[e]=r._jQueryInterface,a.fn[e].Constructor=r,a.fn[e].noConflict=function(){return a.fn[e]=j,r._jQueryInterface},r}(jQuery),function(a){var e="dropdown",f="4.0.0",g="bs.dropdown",h="."+g,i=".data-api",j=a.fn[e],k={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,CLICK:"click"+h,CLICK_DATA_API:"click"+h+i,KEYDOWN_DATA_API:"keydown"+h+i},l={BACKDROP:"dropdown-backdrop",DISABLED:"disabled",OPEN:"open"},m={BACKDROP:".dropdown-backdrop",DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",ROLE_MENU:'[role="menu"]',ROLE_LISTBOX:'[role="listbox"]',NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:'[role="menu"] li:not(.disabled) a, [role="listbox"] li:not(.disabled) a'},n=function(){function e(a){b(this,e),this._element=a,this._addEventListeners()}return c(e,[{key:"toggle",value:function(){if(!this.disabled&&!a(this).hasClass(l.DISABLED)){var b=e._getParentFromElement(this),c=a(b).hasClass(l.OPEN);if(e._clearMenus(),c)return!1;if("ontouchstart"in document.documentElement&&!a(b).closest(m.NAVBAR_NAV).length){var d=document.createElement("div");d.className=l.BACKDROP,a(d).insertBefore(this),a(d).on("click",e._clearMenus)}var f={relatedTarget:this},g=a.Event(k.SHOW,f);if(a(b).trigger(g),!g.isDefaultPrevented())return this.focus(),this.setAttribute("aria-expanded","true"),a(b).toggleClass(l.OPEN),a(b).trigger(k.SHOWN,f),!1}}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._element).off(h),this._element=null}},{key:"_addEventListeners",value:function(){a(this._element).on(k.CLICK,this.toggle)}}],[{key:"VERSION",get:function(){return f}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g);c||a(this).data(g,c=new e(this)),"string"==typeof b&&c[b].call(this)})}},{key:"_clearMenus",value:function(b){if(!b||3!==b.which){var c=a(m.BACKDROP)[0];c&&c.parentNode.removeChild(c);for(var d=a.makeArray(a(m.DATA_TOGGLE)),f=0;f0&&h--,40===b.which&&hdocument.documentElement.clientHeight;!this._isBodyOverflowing&&a&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!a&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}},{key:"_resetAdjustments",value:function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}},{key:"_checkScrollbar",value:function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this._isBodyOverflowing=document.body.clientWidth a"},p={OFFSET:"offset",POSITION:"position"},q=function(){function i(c,d){b(this,i),this._element=c,this._scrollElement="BODY"===c.tagName?window:c,this._config=this._getConfig(d),this._selector=""+this._config.target+" "+o.NAV_ANCHORS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,a(this._scrollElement).on(m.SCROLL,a.proxy(this._process,this)),this.refresh(),this._process()}return c(i,[{key:"refresh",value:function(){var b=this,c=this._scrollElement!==this._scrollElement.window?p.POSITION:p.OFFSET,e="auto"===this._config.method?c:this._config.method,f=e===p.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();var g=a.makeArray(a(this._selector));g.map(function(b){var c=void 0,g=d.getSelectorFromElement(b);return g&&(c=a(g)[0]),c&&(c.offsetWidth||c.offsetHeight)?[a(c)[e]().top+f,g]:void 0}).filter(function(a){return a}).sort(function(a,b){return a[0]-b[0]}).forEach(function(a){b._offsets.push(a[0]),b._targets.push(a[1])})}},{key:"dispose",value:function(){a.removeData(this._element,g),a(this._scrollElement).off(h),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}},{key:"_getConfig",value:function(b){if(b=a.extend({},k,b),"string"!=typeof b.target){var c=a(b.target).attr("id");c||(c=d.getUID(e),a(b.target).attr("id",c)),b.target="#"+c}return d.typeCheckConfig(e,b,l),b}},{key:"_getScrollTop",value:function(){return this._scrollElement===window?this._scrollElement.scrollY:this._scrollElement.scrollTop}},{key:"_getScrollHeight",value:function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}},{key:"_process",value:function(){var a=this._getScrollTop()+this._config.offset,b=this._getScrollHeight(),c=this._config.offset+b-this._scrollElement.offsetHeight;if(this._scrollHeight!==b&&this.refresh(),a>=c){var d=this._targets[this._targets.length-1];this._activeTarget!==d&&this._activate(d)}if(this._activeTarget&&a=this._offsets[e]&&(void 0===this._offsets[e+1]||a .fade",ACTIVE:".active",ACTIVE_CHILD:"> .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"]',DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu > .active"},o=function(){function e(a){b(this,e),this._element=a}return c(e,[{key:"show",value:function(){var b=this;if(!this._element.parentNode||this._element.parentNode.nodeType!=Node.ELEMENT_NODE||!a(this._element).parent().hasClass(m.ACTIVE)){var c=void 0,e=void 0,f=a(this._element).closest(n.UL)[0],g=d.getSelectorFromElement(this._element);f&&(e=a.makeArray(a(f).find(n.ACTIVE)),e=e[e.length-1],e&&(e=a(e).find(n.A)[0]));var h=a.Event(l.HIDE,{relatedTarget:this._element}),i=a.Event(l.SHOW,{relatedTarget:e});if(e&&a(e).trigger(h),a(this._element).trigger(i),!i.isDefaultPrevented()&&!h.isDefaultPrevented()){g&&(c=a(g)[0]),this._activate(a(this._element).closest(n.LI)[0],f);var j=function(){var c=a.Event(l.HIDDEN,{relatedTarget:b._element}),d=a.Event(l.SHOWN,{relatedTarget:e});a(e).trigger(c),a(b._element).trigger(d)};c?this._activate(c,c.parentNode,j):j()}}}},{key:"dispose",value:function(){a.removeClass(this._element,g),this._element=null}},{key:"_activate",value:function(b,c,e){var f=a(c).find(n.ACTIVE_CHILD)[0],g=e&&d.supportsTransitionEnd()&&(f&&a(f).hasClass(m.FADE)||!!a(c).find(n.FADE_CHILD)[0]),h=a.proxy(this._transitionComplete,this,b,f,g,e); + +f&&g?a(f).one(d.TRANSITION_END,h).emulateTransitionEnd(k):h(),f&&a(f).removeClass(m.IN)}},{key:"_transitionComplete",value:function(b,c,e,f){if(c){a(c).removeClass(m.ACTIVE);var g=a(c).find(n.DROPDOWN_ACTIVE_CHILD)[0];g&&a(g).removeClass(m.ACTIVE);var h=a(c).find(n.DATA_TOGGLE)[0];h&&h.setAttribute("aria-expanded",!1)}a(b).addClass(m.ACTIVE);var i=a(b).find(n.DATA_TOGGLE)[0];if(i&&i.setAttribute("aria-expanded",!0),e?(d.reflow(b),a(b).addClass(m.IN)):a(b).removeClass(m.FADE),b.parentNode&&a(b.parentNode).hasClass(m.DROPDOWN_MENU)){var j=a(b).closest(n.LI_DROPDOWN)[0];j&&a(j).addClass(m.ACTIVE),i=a(b).find(n.DATA_TOGGLE)[0],i&&i.setAttribute("aria-expanded",!0)}f&&f()}}],[{key:"VERSION",get:function(){return f}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this),d=c.data(g);d||(d=d=new e(this),c.data(g,d)),"string"==typeof b&&d[b]()})}}]),e}();return a(document).on(l.CLICK_DATA_API,n.DATA_TOGGLE,function(b){b.preventDefault(),o._jQueryInterface.call(a(this),"show")}),a.fn[e]=o._jQueryInterface,a.fn[e].Constructor=o,a.fn[e].noConflict=function(){return a.fn[e]=j,o._jQueryInterface},o}(jQuery),function(a){var e="tooltip",f="4.0.0",g="bs.tooltip",h="."+g,i=a.fn[e],j=150,k="bs-tether",l={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:"0 0",constraints:[]},m={animation:"boolean",template:"string",title:"(string|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"string",constraints:"array"},n={TOP:"bottom center",RIGHT:"middle left",BOTTOM:"top center",LEFT:"middle right"},o={IN:"in",OUT:"out"},p={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h},q={FADE:"fade",IN:"in"},r={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner"},s={element:!1,enabled:!1},t={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},u=function(){function i(a,c){b(this,i),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._tether=null,this.element=a,this.config=this._getConfig(c),this.tip=null,this._setListeners()}return c(i,[{key:"enable",value:function(){this._isEnabled=!0}},{key:"disable",value:function(){this._isEnabled=!1}},{key:"toggleEnabled",value:function(){this._isEnabled=!this._isEnabled}},{key:"toggle",value:function(b){var c=this,d=this.constructor.DATA_KEY;b?(c=a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),c._activeTrigger.click=!c._activeTrigger.click,c._isWithActiveTrigger()?c._enter(null,c):c._leave(null,c)):a(c.getTipElement()).hasClass(q.IN)?c._leave(null,c):c._enter(null,c)}},{key:"dispose",value:function(){clearTimeout(this._timeout),this.cleanupTether(),a.removeData(this.element,this.constructor.DATA_KEY),a(this.element).off(this.constructor.EVENT_KEY),this.tip&&a(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._tether=null,this.element=null,this.config=null,this.tip=null}},{key:"show",value:function(){var b=this,c=a.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){a(this.element).trigger(c);var e=a.contains(this.element.ownerDocument.documentElement,this.element);if(c.isDefaultPrevented()||!e)return;var f=this.getTipElement(),g=d.getUID(this.constructor.NAME);f.setAttribute("id",g),this.element.setAttribute("aria-describedby",g),this.setContent(),this.config.animation&&a(f).addClass(q.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,f,this.element):this.config.placement,j=this._getAttachment(h);a(f).data(this.constructor.DATA_KEY,this).appendTo(document.body),a(this.element).trigger(this.constructor.Event.INSERTED),this._tether=new Tether({element:f,target:this.element,attachment:j,classes:s,classPrefix:k,offset:this.config.offset,constraints:this.config.constraints}),d.reflow(f),this._tether.position(),a(f).addClass(q.IN);var l=function(){var c=b._hoverState;b._hoverState=null,a(b.element).trigger(b.constructor.Event.SHOWN),c===o.OUT&&b._leave(null,b)};d.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(this.tip).one(d.TRANSITION_END,l).emulateTransitionEnd(i._TRANSITION_DURATION):l()}}},{key:"hide",value:function(b){var c=this,e=this.getTipElement(),f=a.Event(this.constructor.Event.HIDE),g=function(){c._hoverState!==o.IN&&e.parentNode&&e.parentNode.removeChild(e),c.element.removeAttribute("aria-describedby"),a(c.element).trigger(c.constructor.Event.HIDDEN),c.cleanupTether(),b&&b()};a(this.element).trigger(f),f.isDefaultPrevented()||(a(e).removeClass(q.IN),d.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(e).one(d.TRANSITION_END,g).emulateTransitionEnd(j):g(),this._hoverState="")}},{key:"isWithContent",value:function(){return!!this.getTitle()}},{key:"getTipElement",value:function(){return this.tip=this.tip||a(this.config.template)[0]}},{key:"setContent",value:function(){var b=this.getTipElement(),c=this.getTitle(),d=this.config.html?"innerHTML":"innerText";a(b).find(r.TOOLTIP_INNER)[0][d]=c,a(b).removeClass(q.FADE).removeClass(q.IN),this.cleanupTether()}},{key:"getTitle",value:function(){var a=this.element.getAttribute("data-original-title");return a||(a="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),a}},{key:"cleanupTether",value:function(){this._tether&&(this._tether.destroy(),a(this.element).removeClass(this._removeTetherClasses),a(this.tip).removeClass(this._removeTetherClasses))}},{key:"_getAttachment",value:function(a){return n[a.toUpperCase()]}},{key:"_setListeners",value:function(){var b=this,c=this.config.trigger.split(" ");c.forEach(function(c){if("click"===c)a(b.element).on(b.constructor.Event.CLICK,b.config.selector,a.proxy(b.toggle,b));else if(c!==t.MANUAL){var d=c==t.HOVER?b.constructor.Event.MOUSEENTER:b.constructor.Event.FOCUSIN,e=c==t.HOVER?b.constructor.Event.MOUSELEAVE:b.constructor.Event.FOCUSOUT;a(b.element).on(d,b.config.selector,a.proxy(b._enter,b)).on(e,b.config.selector,a.proxy(b._leave,b))}}),this.config.selector?this.config=a.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()}},{key:"_removeTetherClasses",value:function(a,b){return((b.baseVal||b).match(new RegExp("(^|\\s)"+k+"-\\S+","g"))||[]).join(" ")}},{key:"_fixTitle",value:function(){var a=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==a)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}},{key:"_enter",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusin"==b.type?t.FOCUS:t.HOVER]=!0),a(c.getTipElement()).hasClass(q.IN)||c._hoverState===o.IN?void(c._hoverState=o.IN):(clearTimeout(c._timeout),c._hoverState=o.IN,c.config.delay&&c.config.delay.show?void(c._timeout=setTimeout(function(){c._hoverState===o.IN&&c.show()},c.config.delay.show)):void c.show())}},{key:"_leave",value:function(b,c){var d=this.constructor.DATA_KEY;return c=c||a(b.currentTarget).data(d),c||(c=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(d,c)),b&&(c._activeTrigger["focusout"==b.type?t.FOCUS:t.HOVER]=!1),c._isWithActiveTrigger()?void 0:(clearTimeout(c._timeout),c._hoverState=o.OUT,c.config.delay&&c.config.delay.hide?void(c._timeout=setTimeout(function(){c._hoverState===o.OUT&&c.hide()},c.config.delay.hide)):void c.hide())}},{key:"_isWithActiveTrigger",value:function(){for(var a in this._activeTrigger)if(this._activeTrigger[a])return!0;return!1}},{key:"_getConfig",value:function(b){return b=a.extend({},this.constructor.Default,a(this.element).data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),d.typeCheckConfig(e,b,this.constructor.DefaultType),b}},{key:"_getDelegateConfig",value:function(){var a={};if(this.config)for(var b in this.config){var c=this.config[b];this.constructor.Default[b]!==c&&(a[b]=c)}return a}}],[{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return g}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return h}},{key:"DefaultType",get:function(){return m}},{key:"_jQueryInterface",value:function(b){return this.each(function(){var c=a(this).data(g),d="object"==typeof b?b:null;(c||!/destroy|hide/.test(b))&&(c||(c=new i(this,d),a(this).data(g,c)),"string"==typeof b&&c[b]())})}}]),i}();return a.fn[e]=u._jQueryInterface,a.fn[e].Constructor=u,a.fn[e].noConflict=function(){return a.fn[e]=i,u._jQueryInterface},u}(jQuery));!function(d){var f="popover",g="4.0.0",h="bs.popover",i="."+h,j=d.fn[f],k=d.extend({},e.Default,{placement:"right",trigger:"click",content:"",template:''}),l=d.extend({},e.DefaultType,{content:"(string|function)"}),m={FADE:"fade",IN:"in"},n={TITLE:".popover-title",CONTENT:".popover-content",ARROW:".popover-arrow"},o={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},p=function(e){function j(){b(this,j),null!=e&&e.apply(this,arguments)}return a(j,e),c(j,[{key:"isWithContent",value:function(){return this.getTitle()||this._getContent()}},{key:"getTipElement",value:function(){return this.tip=this.tip||d(this.config.template)[0]}},{key:"setContent",value:function(){var a=this.getTipElement(),b=this.getTitle(),c=this._getContent(),e=d(a).find(n.TITLE)[0];e&&(e[this.config.html?"innerHTML":"innerText"]=b),d(a).find(n.CONTENT).children().detach().end()[this.config.html?"string"==typeof c?"html":"append":"text"](c),d(a).removeClass(m.FADE).removeClass(m.IN),this.cleanupTether()}},{key:"_getContent",value:function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)}}],[{key:"VERSION",get:function(){return g}},{key:"Default",get:function(){return k}},{key:"NAME",get:function(){return f}},{key:"DATA_KEY",get:function(){return h}},{key:"Event",get:function(){return o}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return l}},{key:"_jQueryInterface",value:function(a){return this.each(function(){var b=d(this).data(h),c="object"==typeof a?a:null;(b||!/destroy|hide/.test(a))&&(b||(b=new j(this,c),d(this).data(h,b)),"string"==typeof a&&b[a]())})}}]),j}(e);return d.fn[f]=p._jQueryInterface,d.fn[f].Constructor=p,d.fn[f].noConflict=function(){return d.fn[f]=j,p._jQueryInterface},p}(jQuery)}}(jQuery); \ No newline at end of file diff --git a/dist/js/npm.js b/dist/js/npm.js index bf6aa80602..d0564681c8 100644 --- a/dist/js/npm.js +++ b/dist/js/npm.js @@ -1,13 +1,12 @@ // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. -require('../../js/transition.js') -require('../../js/alert.js') -require('../../js/button.js') -require('../../js/carousel.js') -require('../../js/collapse.js') -require('../../js/dropdown.js') -require('../../js/modal.js') -require('../../js/tooltip.js') -require('../../js/popover.js') -require('../../js/scrollspy.js') -require('../../js/tab.js') -require('../../js/affix.js') \ No newline at end of file +require('./umd/util.js') +require('./umd/alert.js') +require('./umd/button.js') +require('./umd/carousel.js') +require('./umd/collapse.js') +require('./umd/dropdown.js') +require('./umd/modal.js') +require('./umd/scrollspy.js') +require('./umd/tab.js') +require('./umd/tooltip.js') +require('./umd/popover.js') \ No newline at end of file diff --git a/dist/js/umd/alert.js b/dist/js/umd/alert.js new file mode 100644 index 0000000000..eae17ceb6b --- /dev/null +++ b/dist/js/umd/alert.js @@ -0,0 +1,211 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module', './util'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module, require('./util')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod, global.Util); + global.alert = mod.exports; + } +})(this, function (exports, module, _util) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _Util = _interopRequire(_util); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var Alert = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'alert'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.alert'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var Selector = { + DISMISS: '[data-dismiss="alert"]' + }; + + var Event = { + CLOSE: 'close' + EVENT_KEY, + CLOSED: 'closed' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + ALERT: 'alert', + FADE: 'fade', + IN: 'in' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Alert = (function () { + function Alert(element) { + _classCallCheck(this, Alert); + + this._element = element; + } + + _createClass(Alert, [{ + key: 'close', + + // public + + value: function close(element) { + element = element || this._element; + + var rootElement = this._getRootElement(element); + var customEvent = this._triggerCloseEvent(rootElement); + + if (customEvent.isDefaultPrevented()) { + return; + } + + this._removeElement(rootElement); + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + this._element = null; + } + }, { + key: '_getRootElement', + + // private + + value: function _getRootElement(element) { + var parent = false; + var selector = _Util.getSelectorFromElement(element); + + if (selector) { + parent = $(selector)[0]; + } + + if (!parent) { + parent = $(element).closest('.' + ClassName.ALERT)[0]; + } + + return parent; + } + }, { + key: '_triggerCloseEvent', + value: function _triggerCloseEvent(element) { + var closeEvent = $.Event(Event.CLOSE); + $(element).trigger(closeEvent); + return closeEvent; + } + }, { + key: '_removeElement', + value: function _removeElement(element) { + $(element).removeClass(ClassName.IN); + + if (!_Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) { + this._destroyElement(element); + return; + } + + $(element).one(_Util.TRANSITION_END, this._destroyElement.bind(this, element)).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: '_destroyElement', + value: function _destroyElement(element) { + $(element).detach().trigger(Event.CLOSED).remove(); + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var $element = $(this); + var data = $element.data(DATA_KEY); + + if (!data) { + data = new Alert(this); + $element.data(DATA_KEY, data); + } + + if (config === 'close') { + data[config](this); + } + }); + } + }, { + key: '_handleDismiss', + value: function _handleDismiss(alertInstance) { + return function (event) { + if (event) { + event.preventDefault(); + } + + alertInstance.close(this); + }; + } + }]); + + return Alert; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Alert._jQueryInterface; + $.fn[NAME].Constructor = Alert; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Alert._jQueryInterface; + }; + + return Alert; + })(jQuery); + + module.exports = Alert; +}); \ No newline at end of file diff --git a/dist/js/umd/button.js b/dist/js/umd/button.js new file mode 100644 index 0000000000..730b3ef018 --- /dev/null +++ b/dist/js/umd/button.js @@ -0,0 +1,189 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod); + global.button = mod.exports; + } +})(this, function (exports, module) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var Button = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'button'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.button'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var ClassName = { + ACTIVE: 'active', + BUTTON: 'btn', + FOCUS: 'focus' + }; + + var Selector = { + DATA_TOGGLE_CARROT: '[data-toggle^="button"]', + DATA_TOGGLE: '[data-toggle="buttons"]', + INPUT: 'input', + ACTIVE: '.active', + BUTTON: '.btn' + }; + + var Event = { + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY, + FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + '' + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + '' + DATA_API_KEY) + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Button = (function () { + function Button(element) { + _classCallCheck(this, Button); + + this._element = element; + } + + _createClass(Button, [{ + key: 'toggle', + + // public + + value: function toggle() { + var triggerChangeEvent = true; + var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0]; + + if (rootElement) { + var input = $(this._element).find(Selector.INPUT)[0]; + + if (input) { + if (input.type === 'radio') { + if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) { + triggerChangeEvent = false; + } else { + var activeElement = $(rootElement).find(Selector.ACTIVE)[0]; + + if (activeElement) { + $(activeElement).removeClass(ClassName.ACTIVE); + } + } + } + + if (triggerChangeEvent) { + input.checked = !$(this._element).hasClass(ClassName.ACTIVE); + $(this._element).trigger('change'); + } + } + } else { + this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE)); + } + + if (triggerChangeEvent) { + $(this._element).toggleClass(ClassName.ACTIVE); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + this._element = null; + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + + if (!data) { + data = new Button(this); + $(this).data(DATA_KEY, data); + } + + if (config === 'toggle') { + data[config](); + } + }); + } + }]); + + return Button; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + event.preventDefault(); + + var button = event.target; + + if (!$(button).hasClass(ClassName.BUTTON)) { + button = $(button).closest(Selector.BUTTON); + } + + Button._jQueryInterface.call($(button), 'toggle'); + }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + var button = $(event.target).closest(Selector.BUTTON)[0]; + $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Button._jQueryInterface; + $.fn[NAME].Constructor = Button; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Button._jQueryInterface; + }; + + return Button; + })(jQuery); + + module.exports = Button; +}); \ No newline at end of file diff --git a/dist/js/umd/carousel.js b/dist/js/umd/carousel.js new file mode 100644 index 0000000000..1352a5dc2d --- /dev/null +++ b/dist/js/umd/carousel.js @@ -0,0 +1,485 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module', './util'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module, require('./util')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod, global.Util); + global.carousel = mod.exports; + } +})(this, function (exports, module, _util) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _Util = _interopRequire(_util); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var Carousel = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'carousel'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.carousel'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 600; + + var Default = { + interval: 5000, + keyboard: true, + slide: false, + pause: 'hover', + wrap: true + }; + + var DefaultType = { + interval: '(number|boolean)', + keyboard: 'boolean', + slide: '(boolean|string)', + pause: '(string|boolean)', + wrap: 'boolean' + }; + + var Direction = { + NEXT: 'next', + PREVIOUS: 'prev' + }; + + var Event = { + SLIDE: 'slide' + EVENT_KEY, + SLID: 'slid' + EVENT_KEY, + KEYDOWN: 'keydown' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY, + LOAD_DATA_API: 'load' + EVENT_KEY + '' + DATA_API_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + CAROUSEL: 'carousel', + ACTIVE: 'active', + SLIDE: 'slide', + RIGHT: 'right', + LEFT: 'left', + ITEM: 'carousel-item' + }; + + var Selector = { + ACTIVE: '.active', + ACTIVE_ITEM: '.active.carousel-item', + ITEM: '.carousel-item', + NEXT_PREV: '.next, .prev', + INDICATORS: '.carousel-indicators', + DATA_SLIDE: '[data-slide], [data-slide-to]', + DATA_RIDE: '[data-ride="carousel"]' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Carousel = (function () { + function Carousel(element, config) { + _classCallCheck(this, Carousel); + + this._items = null; + this._interval = null; + this._activeElement = null; + + this._isPaused = false; + this._isSliding = false; + + this._config = this._getConfig(config); + this._element = $(element)[0]; + this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]; + + this._addEventListeners(); + } + + _createClass(Carousel, [{ + key: 'next', + + // public + + value: function next() { + if (!this._isSliding) { + this._slide(Direction.NEXT); + } + } + }, { + key: 'prev', + value: function prev() { + if (!this._isSliding) { + this._slide(Direction.PREVIOUS); + } + } + }, { + key: 'pause', + value: function pause(event) { + if (!event) { + this._isPaused = true; + } + + if ($(this._element).find(Selector.NEXT_PREV)[0] && _Util.supportsTransitionEnd()) { + _Util.triggerTransitionEnd(this._element); + this.cycle(true); + } + + clearInterval(this._interval); + this._interval = null; + } + }, { + key: 'cycle', + value: function cycle(event) { + if (!event) { + this._isPaused = false; + } + + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + + if (this._config.interval && !this._isPaused) { + this._interval = setInterval($.proxy(this.next, this), this._config.interval); + } + } + }, { + key: 'to', + value: function to(index) { + var _this = this; + + this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + + var activeIndex = this._getItemIndex(this._activeElement); + + if (index > this._items.length - 1 || index < 0) { + return; + } + + if (this._isSliding) { + $(this._element).one(Event.SLID, function () { + return _this.to(index); + }); + return; + } + + if (activeIndex == index) { + this.pause(); + this.cycle(); + return; + } + + var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS; + + this._slide(direction, this._items[index]); + } + }, { + key: 'dispose', + value: function dispose() { + $(this._element).off(EVENT_KEY); + $.removeData(this._element, DATA_KEY); + + this._items = null; + this._config = null; + this._element = null; + this._interval = null; + this._isPaused = null; + this._isSliding = null; + this._activeElement = null; + this._indicatorsElement = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + _Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_addEventListeners', + value: function _addEventListeners() { + if (this._config.keyboard) { + $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this)); + } + + if (this._config.pause == 'hover' && !('ontouchstart' in document.documentElement)) { + $(this._element).on(Event.MOUSEENTER, $.proxy(this.pause, this)).on(Event.MOUSELEAVE, $.proxy(this.cycle, this)); + } + } + }, { + key: '_keydown', + value: function _keydown(event) { + event.preventDefault(); + + if (/input|textarea/i.test(event.target.tagName)) return; + + switch (event.which) { + case 37: + this.prev();break; + case 39: + this.next();break; + default: + return; + } + } + }, { + key: '_getItemIndex', + value: function _getItemIndex(element) { + this._items = $.makeArray($(element).parent().find(Selector.ITEM)); + return this._items.indexOf(element); + } + }, { + key: '_getItemByDirection', + value: function _getItemByDirection(direction, activeElement) { + var isNextDirection = direction === Direction.NEXT; + var isPrevDirection = direction === Direction.PREVIOUS; + var activeIndex = this._getItemIndex(activeElement); + var lastItemIndex = this._items.length - 1; + var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex == lastItemIndex; + + if (isGoingToWrap && !this._config.wrap) { + return activeElement; + } + + var delta = direction == Direction.PREVIOUS ? -1 : 1; + var itemIndex = (activeIndex + delta) % this._items.length; + + return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; + } + }, { + key: '_triggerSlideEvent', + value: function _triggerSlideEvent(relatedTarget, directionalClassname) { + var slideEvent = $.Event(Event.SLIDE, { + relatedTarget: relatedTarget, + direction: directionalClassname + }); + + $(this._element).trigger(slideEvent); + + return slideEvent; + } + }, { + key: '_setActiveIndicatorElement', + value: function _setActiveIndicatorElement(element) { + if (this._indicatorsElement) { + $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE); + + var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; + + if (nextIndicator) { + $(nextIndicator).addClass(ClassName.ACTIVE); + } + } + } + }, { + key: '_slide', + value: function _slide(direction, element) { + var _this2 = this; + + var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + + var isCycling = !!this._interval; + + var directionalClassName = direction == Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT; + + if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) { + this._isSliding = false; + return; + } + + var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName); + if (slideEvent.isDefaultPrevented()) { + return; + } + + if (!activeElement || !nextElement) { + // some weirdness is happening, so we bail + return; + } + + this._isSliding = true; + + if (isCycling) { + this.pause(); + } + + this._setActiveIndicatorElement(nextElement); + + var slidEvent = $.Event(Event.SLID, { + relatedTarget: nextElement, + direction: directionalClassName + }); + + if (_Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { + + $(nextElement).addClass(direction); + + _Util.reflow(nextElement); + + $(activeElement).addClass(directionalClassName); + $(nextElement).addClass(directionalClassName); + + $(activeElement).one(_Util.TRANSITION_END, function () { + $(nextElement).removeClass(directionalClassName).removeClass(direction); + + $(nextElement).addClass(ClassName.ACTIVE); + + $(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName); + + _this2._isSliding = false; + + setTimeout(function () { + return $(_this2._element).trigger(slidEvent); + }, 0); + }).emulateTransitionEnd(TRANSITION_DURATION); + } else { + $(activeElement).removeClass(ClassName.ACTIVE); + $(nextElement).addClass(ClassName.ACTIVE); + + this._isSliding = false; + $(this._element).trigger(slidEvent); + } + + if (isCycling) { + this.cycle(); + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = $.extend({}, Default, $(this).data()); + + if (typeof config === 'object') { + $.extend(_config, config); + } + + var action = typeof config === 'string' ? config : _config.slide; + + if (!data) { + data = new Carousel(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config == 'number') { + data.to(config); + } else if (action) { + data[action](); + } else if (_config.interval) { + data.pause(); + data.cycle(); + } + }); + } + }, { + key: '_dataApiClickHandler', + value: function _dataApiClickHandler(event) { + var selector = _Util.getSelectorFromElement(this); + + if (!selector) { + return; + } + + var target = $(selector)[0]; + + if (!target || !$(target).hasClass(ClassName.CAROUSEL)) { + return; + } + + var config = $.extend({}, $(target).data(), $(this).data()); + + var slideIndex = this.getAttribute('data-slide-to'); + if (slideIndex) { + config.interval = false; + } + + Carousel._jQueryInterface.call($(target), config); + + if (slideIndex) { + $(target).data(DATA_KEY).to(slideIndex); + } + + event.preventDefault(); + } + }]); + + return Carousel; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler); + + $(window).on(Event.LOAD_DATA_API, function () { + $(Selector.DATA_RIDE).each(function () { + var $carousel = $(this); + Carousel._jQueryInterface.call($carousel, $carousel.data()); + }); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Carousel._jQueryInterface; + $.fn[NAME].Constructor = Carousel; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Carousel._jQueryInterface; + }; + + return Carousel; + })(jQuery); + + module.exports = Carousel; +}); \ No newline at end of file diff --git a/dist/js/umd/collapse.js b/dist/js/umd/collapse.js new file mode 100644 index 0000000000..35c29c9848 --- /dev/null +++ b/dist/js/umd/collapse.js @@ -0,0 +1,380 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module', './util'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module, require('./util')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod, global.Util); + global.collapse = mod.exports; + } +})(this, function (exports, module, _util) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _Util = _interopRequire(_util); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var Collapse = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'collapse'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.collapse'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 600; + + var Default = { + toggle: true, + parent: '' + }; + + var DefaultType = { + toggle: 'boolean', + parent: 'string' + }; + + var Event = { + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + IN: 'in', + COLLAPSE: 'collapse', + COLLAPSING: 'collapsing', + COLLAPSED: 'collapsed' + }; + + var Dimension = { + WIDTH: 'width', + HEIGHT: 'height' + }; + + var Selector = { + ACTIVES: '.panel > .in, .panel > .collapsing', + DATA_TOGGLE: '[data-toggle="collapse"]' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Collapse = (function () { + function Collapse(element, config) { + _classCallCheck(this, Collapse); + + this._isTransitioning = false; + this._element = element; + this._config = this._getConfig(config); + this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]'))); + + this._parent = this._config.parent ? this._getParent() : null; + + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); + } + + if (this._config.toggle) { + this.toggle(); + } + } + + _createClass(Collapse, [{ + key: 'toggle', + + // public + + value: function toggle() { + if ($(this._element).hasClass(ClassName.IN)) { + this.hide(); + } else { + this.show(); + } + } + }, { + key: 'show', + value: function show() { + var _this = this; + + if (this._isTransitioning || $(this._element).hasClass(ClassName.IN)) { + return; + } + + var actives = undefined; + var activesData = undefined; + + if (this._parent) { + actives = $.makeArray($(Selector.ACTIVES)); + if (!actives.length) { + actives = null; + } + } + + if (actives) { + activesData = $(actives).data(DATA_KEY); + if (activesData && activesData._isTransitioning) { + return; + } + } + + var startEvent = $.Event(Event.SHOW); + $(this._element).trigger(startEvent); + if (startEvent.isDefaultPrevented()) { + return; + } + + if (actives) { + Collapse._jQueryInterface.call($(actives), 'hide'); + if (!activesData) { + $(actives).data(DATA_KEY, null); + } + } + + var dimension = this._getDimension(); + + $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); + + this._element.style[dimension] = 0; + this._element.setAttribute('aria-expanded', true); + + if (this._triggerArray.length) { + $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); + } + + this.setTransitioning(true); + + var complete = function complete() { + $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.IN); + + _this._element.style[dimension] = ''; + + _this.setTransitioning(false); + + $(_this._element).trigger(Event.SHOWN); + }; + + if (!_Util.supportsTransitionEnd()) { + complete(); + return; + } + + var scrollSize = 'scroll' + (dimension[0].toUpperCase() + dimension.slice(1)); + + $(this._element).one(_Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + + this._element.style[dimension] = this._element[scrollSize] + 'px'; + } + }, { + key: 'hide', + value: function hide() { + var _this2 = this; + + if (this._isTransitioning || !$(this._element).hasClass(ClassName.IN)) { + return; + } + + var startEvent = $.Event(Event.HIDE); + $(this._element).trigger(startEvent); + if (startEvent.isDefaultPrevented()) { + return; + } + + var dimension = this._getDimension(); + var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight'; + + this._element.style[dimension] = this._element[offsetDimension] + 'px'; + + _Util.reflow(this._element); + + $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.IN); + + this._element.setAttribute('aria-expanded', false); + + if (this._triggerArray.length) { + $(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false); + } + + this.setTransitioning(true); + + var complete = function complete() { + _this2.setTransitioning(false); + $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); + }; + + this._element.style[dimension] = 0; + + if (!_Util.supportsTransitionEnd()) { + return complete(); + } + + $(this._element).one(_Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: 'setTransitioning', + value: function setTransitioning(isTransitioning) { + this._isTransitioning = isTransitioning; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + + this._config = null; + this._parent = null; + this._element = null; + this._triggerArray = null; + this._isTransitioning = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + config.toggle = !!config.toggle; // coerce string values + _Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_getDimension', + value: function _getDimension() { + var hasWidth = $(this._element).hasClass(Dimension.WIDTH); + return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; + } + }, { + key: '_getParent', + value: function _getParent() { + var _this3 = this; + + var parent = $(this._config.parent)[0]; + var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]'; + + $(parent).find(selector).each(function (i, element) { + _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); + }); + + return parent; + } + }, { + key: '_addAriaAndCollapsedClass', + value: function _addAriaAndCollapsedClass(element, triggerArray) { + if (element) { + var isOpen = $(element).hasClass(ClassName.IN); + element.setAttribute('aria-expanded', isOpen); + + if (triggerArray.length) { + $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); + } + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_getTargetFromElement', + + // static + + value: function _getTargetFromElement(element) { + var selector = _Util.getSelectorFromElement(element); + return selector ? $(selector)[0] : null; + } + }, { + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DATA_KEY); + var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config); + + if (!data && _config.toggle && /show|hide/.test(config)) { + _config.toggle = false; + } + + if (!data) { + data = new Collapse(this, _config); + $this.data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Collapse; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault(); + + var target = Collapse._getTargetFromElement(this); + + var data = $(target).data(DATA_KEY); + var config = data ? 'toggle' : $(this).data(); + + Collapse._jQueryInterface.call($(target), config); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Collapse._jQueryInterface; + $.fn[NAME].Constructor = Collapse; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Collapse._jQueryInterface; + }; + + return Collapse; + })(jQuery); + + module.exports = Collapse; +}); \ No newline at end of file diff --git a/dist/js/umd/dropdown.js b/dist/js/umd/dropdown.js new file mode 100644 index 0000000000..86ac7500df --- /dev/null +++ b/dist/js/umd/dropdown.js @@ -0,0 +1,300 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module', './util'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module, require('./util')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod, global.Util); + global.dropdown = mod.exports; + } +})(this, function (exports, module, _util) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _Util = _interopRequire(_util); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var Dropdown = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'dropdown'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.dropdown'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY, + KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + BACKDROP: 'dropdown-backdrop', + DISABLED: 'disabled', + OPEN: 'open' + }; + + var Selector = { + BACKDROP: '.dropdown-backdrop', + DATA_TOGGLE: '[data-toggle="dropdown"]', + FORM_CHILD: '.dropdown form', + ROLE_MENU: '[role="menu"]', + ROLE_LISTBOX: '[role="listbox"]', + NAVBAR_NAV: '.navbar-nav', + VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Dropdown = (function () { + function Dropdown(element) { + _classCallCheck(this, Dropdown); + + this._element = element; + + this._addEventListeners(); + } + + _createClass(Dropdown, [{ + key: 'toggle', + + // public + + value: function toggle() { + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this); + var isActive = $(parent).hasClass(ClassName.OPEN); + + Dropdown._clearMenus(); + + if (isActive) { + return false; + } + + if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) { + + // if mobile we use a backdrop because click events don't delegate + var dropdown = document.createElement('div'); + dropdown.className = ClassName.BACKDROP; + $(dropdown).insertBefore(this); + $(dropdown).on('click', Dropdown._clearMenus); + } + + var relatedTarget = { relatedTarget: this }; + var showEvent = $.Event(Event.SHOW, relatedTarget); + + $(parent).trigger(showEvent); + + if (showEvent.isDefaultPrevented()) { + return; + } + + this.focus(); + this.setAttribute('aria-expanded', 'true'); + + $(parent).toggleClass(ClassName.OPEN); + $(parent).trigger(Event.SHOWN, relatedTarget); + + return false; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._element).off(EVENT_KEY); + this._element = null; + } + }, { + key: '_addEventListeners', + + // private + + value: function _addEventListeners() { + $(this._element).on(Event.CLICK, this.toggle); + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + + if (!data) { + $(this).data(DATA_KEY, data = new Dropdown(this)); + } + + if (typeof config === 'string') { + data[config].call(this); + } + }); + } + }, { + key: '_clearMenus', + value: function _clearMenus(event) { + if (event && event.which === 3) { + return; + } + + var backdrop = $(Selector.BACKDROP)[0]; + if (backdrop) { + backdrop.parentNode.removeChild(backdrop); + } + + var toggles = $.makeArray($(Selector.DATA_TOGGLE)); + + for (var i = 0; i < toggles.length; i++) { + var _parent = Dropdown._getParentFromElement(toggles[i]); + var relatedTarget = { relatedTarget: toggles[i] }; + + if (!$(_parent).hasClass(ClassName.OPEN)) { + continue; + } + + if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(_parent, event.target)) { + continue; + } + + var hideEvent = $.Event(Event.HIDE, relatedTarget); + $(_parent).trigger(hideEvent); + if (hideEvent.isDefaultPrevented()) { + continue; + } + + toggles[i].setAttribute('aria-expanded', 'false'); + + $(_parent).removeClass(ClassName.OPEN).trigger(Event.HIDDEN, relatedTarget); + } + } + }, { + key: '_getParentFromElement', + value: function _getParentFromElement(element) { + var parent = undefined; + var selector = _Util.getSelectorFromElement(element); + + if (selector) { + parent = $(selector)[0]; + } + + return parent || element.parentNode; + } + }, { + key: '_dataApiKeydownHandler', + value: function _dataApiKeydownHandler(event) { + if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) { + return; + } + + event.preventDefault(); + event.stopPropagation(); + + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this); + var isActive = $(parent).hasClass(ClassName.OPEN); + + if (!isActive && event.which !== 27 || isActive && event.which === 27) { + + if (event.which === 27) { + var toggle = $(parent).find(Selector.DATA_TOGGLE)[0]; + $(toggle).trigger('focus'); + } + + $(this).trigger('click'); + return; + } + + var items = $.makeArray($(Selector.VISIBLE_ITEMS)); + + items = items.filter(function (item) { + return item.offsetWidth || item.offsetHeight; + }); + + if (!items.length) { + return; + } + + var index = items.indexOf(event.target); + + if (event.which === 38 && index > 0) index--; // up + if (event.which === 40 && index < items.length - 1) index++; // down + if (! ~index) index = 0; + + items[index].focus(); + } + }]); + + return Dropdown; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { + e.stopPropagation(); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Dropdown._jQueryInterface; + $.fn[NAME].Constructor = Dropdown; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Dropdown._jQueryInterface; + }; + + return Dropdown; + })(jQuery); + + module.exports = Dropdown; +}); \ No newline at end of file diff --git a/dist/js/umd/modal.js b/dist/js/umd/modal.js new file mode 100644 index 0000000000..7d41969571 --- /dev/null +++ b/dist/js/umd/modal.js @@ -0,0 +1,548 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module', './util'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module, require('./util')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod, global.Util); + global.modal = mod.exports; + } +})(this, function (exports, module, _util) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _Util = _interopRequire(_util); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var Modal = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'modal'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.modal'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 300; + var BACKDROP_TRANSITION_DURATION = 150; + + var Default = { + backdrop: true, + keyboard: true, + focus: true, + show: true + }; + + var DefaultType = { + backdrop: '(boolean|string)', + keyboard: 'boolean', + focus: 'boolean', + show: 'boolean' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + RESIZE: 'resize' + EVENT_KEY, + CLICK_DISMISS: 'click.dismiss' + EVENT_KEY, + KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY, + MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY, + MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + BACKDROP: 'modal-backdrop', + OPEN: 'modal-open', + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + DIALOG: '.modal-dialog', + DATA_TOGGLE: '[data-toggle="modal"]', + DATA_DISMISS: '[data-dismiss="modal"]', + SCROLLBAR_MEASURER: 'modal-scrollbar-measure' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Modal = (function () { + function Modal(element, config) { + _classCallCheck(this, Modal); + + this._config = this._getConfig(config); + this._element = element; + this._dialog = $(element).find(Selector.DIALOG)[0]; + this._backdrop = null; + this._isShown = false; + this._isBodyOverflowing = false; + this._ignoreBackdropClick = false; + this._originalBodyPadding = 0; + this._scrollbarWidth = 0; + } + + _createClass(Modal, [{ + key: 'toggle', + + // public + + value: function toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + }, { + key: 'show', + value: function show(relatedTarget) { + var _this = this; + + var showEvent = $.Event(Event.SHOW, { + relatedTarget: relatedTarget + }); + + $(this._element).trigger(showEvent); + + if (this._isShown || showEvent.isDefaultPrevented()) { + return; + } + + this._isShown = true; + + this._checkScrollbar(); + this._setScrollbar(); + + $(document.body).addClass(ClassName.OPEN); + + this._setEscapeEvent(); + this._setResizeEvent(); + + $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this)); + + $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { + $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) { + if ($(event.target).is(_this._element)) { + that._ignoreBackdropClick = true; + } + }); + }); + + this._showBackdrop($.proxy(this._showElement, this, relatedTarget)); + } + }, { + key: 'hide', + value: function hide(event) { + if (event) { + event.preventDefault(); + } + + var hideEvent = $.Event(Event.HIDE); + + $(this._element).trigger(hideEvent); + + if (!this._isShown || hideEvent.isDefaultPrevented()) { + return; + } + + this._isShown = false; + + this._setEscapeEvent(); + this._setResizeEvent(); + + $(document).off(Event.FOCUSIN); + + $(this._element).removeClass(ClassName.IN); + + $(this._element).off(Event.CLICK_DISMISS); + $(this._dialog).off(Event.MOUSEDOWN_DISMISS); + + if (_Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + + $(this._element).one(_Util.TRANSITION_END, $.proxy(this._hideModal, this)).emulateTransitionEnd(TRANSITION_DURATION); + } else { + this._hideModal(); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + + $(window).off(EVENT_KEY); + $(document).off(EVENT_KEY); + $(this._element).off(EVENT_KEY); + $(this._backdrop).off(EVENT_KEY); + + this._config = null; + this._element = null; + this._dialog = null; + this._backdrop = null; + this._isShown = null; + this._isBodyOverflowing = null; + this._ignoreBackdropClick = null; + this._originalBodyPadding = null; + this._scrollbarWidth = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + _Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_showElement', + value: function _showElement(relatedTarget) { + var _this2 = this; + + var transition = _Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE); + + if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { + // don't move modals dom position + document.body.appendChild(this._element); + } + + this._element.style.display = 'block'; + this._element.scrollTop = 0; + + if (transition) { + _Util.reflow(this._element); + } + + $(this._element).addClass(ClassName.IN); + + if (this._config.focus) this._enforceFocus(); + + var shownEvent = $.Event(Event.SHOWN, { + relatedTarget: relatedTarget + }); + + var transitionComplete = function transitionComplete() { + if (_this2._config.focus) _this2._element.focus(); + $(_this2._element).trigger(shownEvent); + }; + + if (transition) { + $(this._dialog).one(_Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + transitionComplete(); + } + } + }, { + key: '_enforceFocus', + value: function _enforceFocus() { + var _this3 = this; + + $(document).off(Event.FOCUSIN) // guard against infinite focus loop + .on(Event.FOCUSIN, function (event) { + if (_this3._element !== event.target && !$(_this3._element).has(event.target).length) { + _this3._element.focus(); + } + }); + } + }, { + key: '_setEscapeEvent', + value: function _setEscapeEvent() { + var _this4 = this; + + if (this._isShown && this._config.keyboard) { + $(this._element).on(Event.KEYDOWN_DISMISS, function (event) { + if (event.which === 27) { + _this4.hide(); + } + }); + } else if (!this._isShown) { + $(this._element).off(Event.KEYDOWN_DISMISS); + } + } + }, { + key: '_setResizeEvent', + value: function _setResizeEvent() { + if (this._isShown) { + $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this)); + } else { + $(window).off(Event.RESIZE); + } + } + }, { + key: '_hideModal', + value: function _hideModal() { + var _this5 = this; + + this._element.style.display = 'none'; + this._showBackdrop(function () { + $(document.body).removeClass(ClassName.OPEN); + _this5._resetAdjustments(); + _this5._resetScrollbar(); + $(_this5._element).trigger(Event.HIDDEN); + }); + } + }, { + key: '_removeBackdrop', + value: function _removeBackdrop() { + if (this._backdrop) { + $(this._backdrop).remove(); + this._backdrop = null; + } + } + }, { + key: '_showBackdrop', + value: function _showBackdrop(callback) { + var _this6 = this; + + var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : ''; + + if (this._isShown && this._config.backdrop) { + var doAnimate = _Util.supportsTransitionEnd() && animate; + + this._backdrop = document.createElement('div'); + this._backdrop.className = ClassName.BACKDROP; + + if (animate) { + $(this._backdrop).addClass(animate); + } + + $(this._backdrop).appendTo(this.$body); + + $(this._element).on(Event.CLICK_DISMISS, function (event) { + if (_this6._ignoreBackdropClick) { + _this6._ignoreBackdropClick = false; + return; + } + if (event.target !== event.currentTarget) { + return; + } + if (_this6._config.backdrop === 'static') { + _this6._element.focus(); + } else { + _this6.hide(); + } + }); + + if (doAnimate) { + _Util.reflow(this._backdrop); + } + + $(this._backdrop).addClass(ClassName.IN); + + if (!callback) { + return; + } + + if (!doAnimate) { + callback(); + return; + } + + $(this._backdrop).one(_Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + } else if (!this._isShown && this._backdrop) { + $(this._backdrop).removeClass(ClassName.IN); + + var callbackRemove = function callbackRemove() { + _this6._removeBackdrop(); + if (callback) { + callback(); + } + }; + + if (_Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + $(this._backdrop).one(_Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + } else { + callbackRemove(); + } + } else if (callback) { + callback(); + } + } + }, { + key: '_handleUpdate', + + // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // todo (fat): these should probably be refactored out of modal.js + // ---------------------------------------------------------------------- + + value: function _handleUpdate() { + this._adjustDialog(); + } + }, { + key: '_adjustDialog', + value: function _adjustDialog() { + var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing) { + this._element.style.paddingLeft = this._scrollbarWidth + 'px'; + } + + if (this._isBodyOverflowing && !isModalOverflowing) { + this._element.style.paddingRight = this._scrollbarWidth + 'px'; + } + } + }, { + key: '_resetAdjustments', + value: function _resetAdjustments() { + this._element.style.paddingLeft = ''; + this._element.style.paddingRight = ''; + } + }, { + key: '_checkScrollbar', + value: function _checkScrollbar() { + var fullWindowWidth = window.innerWidth; + if (!fullWindowWidth) { + // workaround for missing window.innerWidth in IE8 + var documentElementRect = document.documentElement.getBoundingClientRect(); + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left); + } + this._isBodyOverflowing = document.body.clientWidth < fullWindowWidth; + this._scrollbarWidth = this._getScrollbarWidth(); + } + }, { + key: '_setScrollbar', + value: function _setScrollbar() { + var bodyPadding = parseInt($(document.body).css('padding-right') || 0, 10); + + this._originalBodyPadding = document.body.style.paddingRight || ''; + + if (this._isBodyOverflowing) { + document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px'; + } + } + }, { + key: '_resetScrollbar', + value: function _resetScrollbar() { + document.body.style.paddingRight = this._originalBodyPadding; + } + }, { + key: '_getScrollbarWidth', + value: function _getScrollbarWidth() { + // thx d.walsh + var scrollDiv = document.createElement('div'); + scrollDiv.className = Selector.SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config, relatedTarget) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config); + + if (!data) { + data = new Modal(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](relatedTarget); + } else if (_config.show) { + data.show(relatedTarget); + } + }); + } + }]); + + return Modal; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + var _this7 = this; + + var target = undefined; + var selector = _Util.getSelectorFromElement(this); + + if (selector) { + target = $(selector)[0]; + } + + var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data()); + + if (this.tagName === 'A') { + event.preventDefault(); + } + + var $target = $(target).one(Event.SHOW, function (showEvent) { + if (showEvent.isDefaultPrevented()) { + // only register focus restorer if modal will actually get shown + return; + } + + $target.one(Event.HIDDEN, function () { + if ($(_this7).is(':visible')) { + _this7.focus(); + } + }); + }); + + Modal._jQueryInterface.call($(target), config, this); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Modal._jQueryInterface; + $.fn[NAME].Constructor = Modal; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Modal._jQueryInterface; + }; + + return Modal; + })(jQuery); + + module.exports = Modal; +}); \ No newline at end of file diff --git a/dist/js/umd/popover.js b/dist/js/umd/popover.js new file mode 100644 index 0000000000..8be0b80566 --- /dev/null +++ b/dist/js/umd/popover.js @@ -0,0 +1,223 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module', './tooltip'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module, require('./tooltip')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod, global.Tooltip); + global.popover = mod.exports; + } +})(this, function (exports, module, _tooltip) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + + var _Tooltip2 = _interopRequire(_tooltip); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var Popover = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'popover'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.popover'; + var EVENT_KEY = '.' + DATA_KEY; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + + var Default = $.extend({}, _Tooltip2.Default, { + placement: 'right', + trigger: 'click', + content: '', + template: '' + }); + + var DefaultType = $.extend({}, _Tooltip2.DefaultType, { + content: '(string|function)' + }); + + var ClassName = { + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + TITLE: '.popover-title', + CONTENT: '.popover-content', + ARROW: '.popover-arrow' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + INSERTED: 'inserted' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + FOCUSOUT: 'focusout' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Popover = (function (_Tooltip) { + function Popover() { + _classCallCheck(this, Popover); + + if (_Tooltip != null) { + _Tooltip.apply(this, arguments); + } + } + + _inherits(Popover, _Tooltip); + + _createClass(Popover, [{ + key: 'isWithContent', + + // overrides + + value: function isWithContent() { + return this.getTitle() || this._getContent(); + } + }, { + key: 'getTipElement', + value: function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; + } + }, { + key: 'setContent', + value: function setContent() { + var tip = this.getTipElement(); + var title = this.getTitle(); + var content = this._getContent(); + var titleElement = $(tip).find(Selector.TITLE)[0]; + + if (titleElement) { + titleElement[this.config.html ? 'innerHTML' : 'innerText'] = title; + } + + // we use append for html objects to maintain js events + $(tip).find(Selector.CONTENT).children().detach().end()[this.config.html ? typeof content === 'string' ? 'html' : 'append' : 'text'](content); + + $(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN); + + this.cleanupTether(); + } + }, { + key: '_getContent', + + // private + + value: function _getContent() { + return this.element.getAttribute('data-content') || (typeof this.config.content == 'function' ? this.config.content.call(this.element) : this.config.content); + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: 'NAME', + get: function () { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function () { + return DATA_KEY; + } + }, { + key: 'Event', + get: function () { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function () { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function () { + return DefaultType; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' ? config : null; + + if (!data && /destroy|hide/.test(config)) { + return; + } + + if (!data) { + data = new Popover(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Popover; + })(_Tooltip2); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Popover._jQueryInterface; + $.fn[NAME].Constructor = Popover; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Popover._jQueryInterface; + }; + + return Popover; + })(jQuery); + + module.exports = Popover; +}); \ No newline at end of file diff --git a/dist/js/umd/scrollspy.js b/dist/js/umd/scrollspy.js new file mode 100644 index 0000000000..feb77672cc --- /dev/null +++ b/dist/js/umd/scrollspy.js @@ -0,0 +1,334 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module', './util'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module, require('./util')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod, global.Util); + global.scrollspy = mod.exports; + } +})(this, function (exports, module, _util) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _Util = _interopRequire(_util); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var ScrollSpy = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'scrollspy'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.scrollspy'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + + var Default = { + offset: 10, + method: 'auto', + target: '' + }; + + var DefaultType = { + offset: 'number', + method: 'string', + target: '(string|element)' + }; + + var Event = { + ACTIVATE: 'activate' + EVENT_KEY, + SCROLL: 'scroll' + EVENT_KEY, + LOAD_DATA_API: 'load' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + DROPDOWN_MENU: 'dropdown-menu', + ACTIVE: 'active' + }; + + var Selector = { + DATA_SPY: '[data-spy="scroll"]', + ACTIVE: '.active', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + NAV_ANCHORS: '.nav li > a' + }; + + var OffsetMethod = { + OFFSET: 'offset', + POSITION: 'position' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var ScrollSpy = (function () { + function ScrollSpy(element, config) { + _classCallCheck(this, ScrollSpy); + + this._element = element; + this._scrollElement = element.tagName === 'BODY' ? window : element; + this._config = this._getConfig(config); + this._selector = '' + this._config.target + ' ' + Selector.NAV_ANCHORS; + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + + $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this)); + + this.refresh(); + this._process(); + } + + _createClass(ScrollSpy, [{ + key: 'refresh', + + // public + + value: function refresh() { + var _this = this; + + var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET; + + var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + + var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; + + this._offsets = []; + this._targets = []; + + this._scrollHeight = this._getScrollHeight(); + + var targets = $.makeArray($(this._selector)); + + targets.map(function (element) { + var target = undefined; + var targetSelector = _Util.getSelectorFromElement(element); + + if (targetSelector) { + target = $(targetSelector)[0]; + } + + if (target && (target.offsetWidth || target.offsetHeight)) { + // todo (fat): remove sketch reliance on jQuery position/offset + return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; + } + }).filter(function (item) { + return item; + }).sort(function (a, b) { + return a[0] - b[0]; + }).forEach(function (item) { + _this._offsets.push(item[0]); + _this._targets.push(item[1]); + }); + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._scrollElement).off(EVENT_KEY); + + this._element = null; + this._scrollElement = null; + this._config = null; + this._selector = null; + this._offsets = null; + this._targets = null; + this._activeTarget = null; + this._scrollHeight = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + + if (typeof config.target !== 'string') { + var id = $(config.target).attr('id'); + if (!id) { + id = _Util.getUID(NAME); + $(config.target).attr('id', id); + } + config.target = '#' + id; + } + + _Util.typeCheckConfig(NAME, config, DefaultType); + + return config; + } + }, { + key: '_getScrollTop', + value: function _getScrollTop() { + return this._scrollElement === window ? this._scrollElement.scrollY : this._scrollElement.scrollTop; + } + }, { + key: '_getScrollHeight', + value: function _getScrollHeight() { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); + } + }, { + key: '_process', + value: function _process() { + var scrollTop = this._getScrollTop() + this._config.offset; + var scrollHeight = this._getScrollHeight(); + var maxScroll = this._config.offset + scrollHeight - this._scrollElement.offsetHeight; + + if (this._scrollHeight !== scrollHeight) { + this.refresh(); + } + + if (scrollTop >= maxScroll) { + var target = this._targets[this._targets.length - 1]; + + if (this._activeTarget !== target) { + this._activate(target); + } + } + + if (this._activeTarget && scrollTop < this._offsets[0]) { + this._activeTarget = null; + this._clear(); + return; + } + + for (var i = this._offsets.length; i--;) { + var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]); + + if (isActiveTarget) { + this._activate(this._targets[i]); + } + } + } + }, { + key: '_activate', + value: function _activate(target) { + this._activeTarget = target; + + this._clear(); + + var selector = '' + this._selector + '[data-target="' + target + '"],' + ('' + this._selector + '[href="' + target + '"]'); + + // todo (fat): getting all the raw li's up the tree is not great. + var parentListItems = $(selector).parents(Selector.LI); + + for (var i = parentListItems.length; i--;) { + $(parentListItems[i]).addClass(ClassName.ACTIVE); + + var itemParent = parentListItems[i].parentNode; + + if (itemParent && $(itemParent).hasClass(ClassName.DROPDOWN_MENU)) { + var closestDropdown = $(itemParent).closest(Selector.LI_DROPDOWN)[0]; + $(closestDropdown).addClass(ClassName.ACTIVE); + } + } + + $(this._scrollElement).trigger(Event.ACTIVATE, { + relatedTarget: target + }); + } + }, { + key: '_clear', + value: function _clear() { + var activeParents = $(this._selector).parentsUntil(this._config.target, Selector.ACTIVE); + + for (var i = activeParents.length; i--;) { + $(activeParents[i]).removeClass(ClassName.ACTIVE); + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' && config || null; + + if (!data) { + data = new ScrollSpy(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return ScrollSpy; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(window).on(Event.LOAD_DATA_API, function () { + var scrollSpys = $.makeArray($(Selector.DATA_SPY)); + + for (var i = scrollSpys.length; i--;) { + var $spy = $(scrollSpys[i]); + ScrollSpy._jQueryInterface.call($spy, $spy.data()); + } + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = ScrollSpy._jQueryInterface; + $.fn[NAME].Constructor = ScrollSpy; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return ScrollSpy._jQueryInterface; + }; + + return ScrollSpy; + })(jQuery); + + module.exports = ScrollSpy; +}); \ No newline at end of file diff --git a/dist/js/umd/tab.js b/dist/js/umd/tab.js new file mode 100644 index 0000000000..3fbf4869c0 --- /dev/null +++ b/dist/js/umd/tab.js @@ -0,0 +1,292 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module', './util'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module, require('./util')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod, global.Util); + global.tab = mod.exports; + } +})(this, function (exports, module, _util) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _Util = _interopRequire(_util); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tab.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var Tab = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'tab'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.tab'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + DROPDOWN_MENU: 'dropdown-menu', + ACTIVE: 'active', + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + A: 'a', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + UL: 'ul:not(.dropdown-menu)', + FADE_CHILD: '> .fade', + ACTIVE: '.active', + ACTIVE_CHILD: '> .active', + DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]', + DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu > .active' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tab = (function () { + function Tab(element) { + _classCallCheck(this, Tab); + + this._element = element; + } + + _createClass(Tab, [{ + key: 'show', + + // public + + value: function show() { + var _this = this; + + if (this._element.parentNode && this._element.parentNode.nodeType == Node.ELEMENT_NODE && $(this._element).parent().hasClass(ClassName.ACTIVE)) { + return; + } + + var target = undefined; + var previous = undefined; + var ulElement = $(this._element).closest(Selector.UL)[0]; + var selector = _Util.getSelectorFromElement(this._element); + + if (ulElement) { + previous = $.makeArray($(ulElement).find(Selector.ACTIVE)); + previous = previous[previous.length - 1]; + + if (previous) { + previous = $(previous).find(Selector.A)[0]; + } + } + + var hideEvent = $.Event(Event.HIDE, { + relatedTarget: this._element + }); + + var showEvent = $.Event(Event.SHOW, { + relatedTarget: previous + }); + + if (previous) { + $(previous).trigger(hideEvent); + } + + $(this._element).trigger(showEvent); + + if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { + return; + } + + if (selector) { + target = $(selector)[0]; + } + + this._activate($(this._element).closest(Selector.LI)[0], ulElement); + + var complete = function complete() { + var hiddenEvent = $.Event(Event.HIDDEN, { + relatedTarget: _this._element + }); + + var shownEvent = $.Event(Event.SHOWN, { + relatedTarget: previous + }); + + $(previous).trigger(hiddenEvent); + $(_this._element).trigger(shownEvent); + }; + + if (target) { + this._activate(target, target.parentNode, complete); + } else { + complete(); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeClass(this._element, DATA_KEY); + this._element = null; + } + }, { + key: '_activate', + + // private + + value: function _activate(element, container, callback) { + var active = $(container).find(Selector.ACTIVE_CHILD)[0]; + var isTransitioning = callback && _Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || !!$(container).find(Selector.FADE_CHILD)[0]); + + var complete = $.proxy(this._transitionComplete, this, element, active, isTransitioning, callback); + + if (active && isTransitioning) { + $(active).one(_Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + if (active) { + $(active).removeClass(ClassName.IN); + } + } + }, { + key: '_transitionComplete', + value: function _transitionComplete(element, active, isTransitioning, callback) { + if (active) { + $(active).removeClass(ClassName.ACTIVE); + + var dropdownChild = $(active).find(Selector.DROPDOWN_ACTIVE_CHILD)[0]; + if (dropdownChild) { + $(dropdownChild).removeClass(ClassName.ACTIVE); + } + + var activeToggle = $(active).find(Selector.DATA_TOGGLE)[0]; + if (activeToggle) { + activeToggle.setAttribute('aria-expanded', false); + } + } + + $(element).addClass(ClassName.ACTIVE); + + var elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]; + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true); + } + + if (isTransitioning) { + _Util.reflow(element); + $(element).addClass(ClassName.IN); + } else { + $(element).removeClass(ClassName.FADE); + } + + if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { + + var dropdownElement = $(element).closest(Selector.LI_DROPDOWN)[0]; + if (dropdownElement) { + $(dropdownElement).addClass(ClassName.ACTIVE); + } + + elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]; + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true); + } + } + + if (callback) { + callback(); + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DATA_KEY); + + if (!data) { + data = data = new Tab(this); + $this.data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Tab; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault(); + Tab._jQueryInterface.call($(this), 'show'); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Tab._jQueryInterface; + $.fn[NAME].Constructor = Tab; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tab._jQueryInterface; + }; + + return Tab; + })(jQuery); + + module.exports = Tab; +}); \ No newline at end of file diff --git a/dist/js/umd/tooltip.js b/dist/js/umd/tooltip.js new file mode 100644 index 0000000000..07142ccd33 --- /dev/null +++ b/dist/js/umd/tooltip.js @@ -0,0 +1,613 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module', './util'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module, require('./util')); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod, global.Util); + global.tooltip = mod.exports; + } +})(this, function (exports, module, _util) { + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _Util = _interopRequire(_util); + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + var Tooltip = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'tooltip'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.tooltip'; + var EVENT_KEY = '.' + DATA_KEY; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + var CLASS_PREFIX = 'bs-tether'; + + var Default = { + animation: true, + template: '', + trigger: 'hover focus', + title: '', + delay: 0, + html: false, + selector: false, + placement: 'top', + offset: '0 0', + constraints: [] + }; + + var DefaultType = { + animation: 'boolean', + template: 'string', + title: '(string|function)', + trigger: 'string', + delay: '(number|object)', + html: 'boolean', + selector: '(string|boolean)', + placement: '(string|function)', + offset: 'string', + constraints: 'array' + }; + + var AttachmentMap = { + TOP: 'bottom center', + RIGHT: 'middle left', + BOTTOM: 'top center', + LEFT: 'middle right' + }; + + var HoverState = { + IN: 'in', + OUT: 'out' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + INSERTED: 'inserted' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + FOCUSOUT: 'focusout' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY + }; + + var ClassName = { + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + TOOLTIP: '.tooltip', + TOOLTIP_INNER: '.tooltip-inner' + }; + + var TetherClass = { + element: false, + enabled: false + }; + + var Trigger = { + HOVER: 'hover', + FOCUS: 'focus', + CLICK: 'click', + MANUAL: 'manual' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tooltip = (function () { + function Tooltip(element, config) { + _classCallCheck(this, Tooltip); + + // private + this._isEnabled = true; + this._timeout = 0; + this._hoverState = ''; + this._activeTrigger = {}; + this._tether = null; + + // protected + this.element = element; + this.config = this._getConfig(config); + this.tip = null; + + this._setListeners(); + } + + _createClass(Tooltip, [{ + key: 'enable', + + // public + + value: function enable() { + this._isEnabled = true; + } + }, { + key: 'disable', + value: function disable() { + this._isEnabled = false; + } + }, { + key: 'toggleEnabled', + value: function toggleEnabled() { + this._isEnabled = !this._isEnabled; + } + }, { + key: 'toggle', + value: function toggle(event) { + var context = this; + var dataKey = this.constructor.DATA_KEY; + + if (event) { + context = $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + context._activeTrigger.click = !context._activeTrigger.click; + + if (context._isWithActiveTrigger()) { + context._enter(null, context); + } else { + context._leave(null, context); + } + } else { + $(context.getTipElement()).hasClass(ClassName.IN) ? context._leave(null, context) : context._enter(null, context); + } + } + }, { + key: 'dispose', + value: function dispose() { + clearTimeout(this._timeout); + + this.cleanupTether(); + + $.removeData(this.element, this.constructor.DATA_KEY); + + $(this.element).off(this.constructor.EVENT_KEY); + + if (this.tip) { + $(this.tip).remove(); + } + + this._isEnabled = null; + this._timeout = null; + this._hoverState = null; + this._activeTrigger = null; + this._tether = null; + + this.element = null; + this.config = null; + this.tip = null; + } + }, { + key: 'show', + value: function show() { + var _this = this; + + var showEvent = $.Event(this.constructor.Event.SHOW); + + if (this.isWithContent() && this._isEnabled) { + $(this.element).trigger(showEvent); + + var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element); + + if (showEvent.isDefaultPrevented() || !isInTheDom) { + return; + } + + var tip = this.getTipElement(); + var tipId = _Util.getUID(this.constructor.NAME); + + tip.setAttribute('id', tipId); + this.element.setAttribute('aria-describedby', tipId); + + this.setContent(); + + if (this.config.animation) { + $(tip).addClass(ClassName.FADE); + } + + var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; + + var attachment = this._getAttachment(placement); + + $(tip).data(this.constructor.DATA_KEY, this).appendTo(document.body); + + $(this.element).trigger(this.constructor.Event.INSERTED); + + this._tether = new Tether({ + element: tip, + target: this.element, + attachment: attachment, + classes: TetherClass, + classPrefix: CLASS_PREFIX, + offset: this.config.offset, + constraints: this.config.constraints + }); + + _Util.reflow(tip); + this._tether.position(); + + $(tip).addClass(ClassName.IN); + + var complete = function complete() { + var prevHoverState = _this._hoverState; + _this._hoverState = null; + + $(_this.element).trigger(_this.constructor.Event.SHOWN); + + if (prevHoverState === HoverState.OUT) { + _this._leave(null, _this); + } + }; + + _Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE) ? $(this.tip).one(_Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION) : complete(); + } + } + }, { + key: 'hide', + value: function hide(callback) { + var _this2 = this; + + var tip = this.getTipElement(); + var hideEvent = $.Event(this.constructor.Event.HIDE); + var complete = function complete() { + if (_this2._hoverState !== HoverState.IN && tip.parentNode) { + tip.parentNode.removeChild(tip); + } + + _this2.element.removeAttribute('aria-describedby'); + $(_this2.element).trigger(_this2.constructor.Event.HIDDEN); + _this2.cleanupTether(); + + if (callback) { + callback(); + } + }; + + $(this.element).trigger(hideEvent); + + if (hideEvent.isDefaultPrevented()) { + return; + } + + $(tip).removeClass(ClassName.IN); + + if (_Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + + $(tip).one(_Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + this._hoverState = ''; + } + }, { + key: 'isWithContent', + + // protected + + value: function isWithContent() { + return !!this.getTitle(); + } + }, { + key: 'getTipElement', + value: function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; + } + }, { + key: 'setContent', + value: function setContent() { + var tip = this.getTipElement(); + var title = this.getTitle(); + var method = this.config.html ? 'innerHTML' : 'innerText'; + + $(tip).find(Selector.TOOLTIP_INNER)[0][method] = title; + + $(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN); + + this.cleanupTether(); + } + }, { + key: 'getTitle', + value: function getTitle() { + var title = this.element.getAttribute('data-original-title'); + + if (!title) { + title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; + } + + return title; + } + }, { + key: 'cleanupTether', + value: function cleanupTether() { + if (this._tether) { + this._tether.destroy(); + + // clean up after tether's junk classes + // remove after they fix issue + // (https://github.com/HubSpot/tether/issues/36) + $(this.element).removeClass(this._removeTetherClasses); + $(this.tip).removeClass(this._removeTetherClasses); + } + } + }, { + key: '_getAttachment', + + // private + + value: function _getAttachment(placement) { + return AttachmentMap[placement.toUpperCase()]; + } + }, { + key: '_setListeners', + value: function _setListeners() { + var _this3 = this; + + var triggers = this.config.trigger.split(' '); + + triggers.forEach(function (trigger) { + if (trigger === 'click') { + $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, $.proxy(_this3.toggle, _this3)); + } else if (trigger !== Trigger.MANUAL) { + var eventIn = trigger == Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN; + var eventOut = trigger == Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT; + + $(_this3.element).on(eventIn, _this3.config.selector, $.proxy(_this3._enter, _this3)).on(eventOut, _this3.config.selector, $.proxy(_this3._leave, _this3)); + } + }); + + if (this.config.selector) { + this.config = $.extend({}, this.config, { + trigger: 'manual', + selector: '' + }); + } else { + this._fixTitle(); + } + } + }, { + key: '_removeTetherClasses', + value: function _removeTetherClasses(i, css) { + return ((css.baseVal || css).match(new RegExp('(^|\\s)' + CLASS_PREFIX + '-\\S+', 'g')) || []).join(' '); + } + }, { + key: '_fixTitle', + value: function _fixTitle() { + var titleType = typeof this.element.getAttribute('data-original-title'); + if (this.element.getAttribute('title') || titleType !== 'string') { + this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); + this.element.setAttribute('title', ''); + } + } + }, { + key: '_enter', + value: function _enter(event, context) { + var dataKey = this.constructor.DATA_KEY; + + context = context || $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type == 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; + } + + if ($(context.getTipElement()).hasClass(ClassName.IN) || context._hoverState === HoverState.IN) { + context._hoverState = HoverState.IN; + return; + } + + clearTimeout(context._timeout); + + context._hoverState = HoverState.IN; + + if (!context.config.delay || !context.config.delay.show) { + context.show(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.IN) { + context.show(); + } + }, context.config.delay.show); + } + }, { + key: '_leave', + value: function _leave(event, context) { + var dataKey = this.constructor.DATA_KEY; + + context = context || $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type == 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; + } + + if (context._isWithActiveTrigger()) { + return; + } + + clearTimeout(context._timeout); + + context._hoverState = HoverState.OUT; + + if (!context.config.delay || !context.config.delay.hide) { + context.hide(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.OUT) { + context.hide(); + } + }, context.config.delay.hide); + } + }, { + key: '_isWithActiveTrigger', + value: function _isWithActiveTrigger() { + for (var trigger in this._activeTrigger) { + if (this._activeTrigger[trigger]) { + return true; + } + } + + return false; + } + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, this.constructor.Default, $(this.element).data(), config); + + if (config.delay && typeof config.delay === 'number') { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + + _Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + + return config; + } + }, { + key: '_getDelegateConfig', + value: function _getDelegateConfig() { + var config = {}; + + if (this.config) { + for (var key in this.config) { + var value = this.config[key]; + if (this.constructor.Default[key] !== value) { + config[key] = value; + } + } + } + + return config; + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: 'NAME', + get: function () { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function () { + return DATA_KEY; + } + }, { + key: 'Event', + get: function () { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function () { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function () { + return DefaultType; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' ? config : null; + + if (!data && /destroy|hide/.test(config)) { + return; + } + + if (!data) { + data = new Tooltip(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Tooltip; + })(); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Tooltip._jQueryInterface; + $.fn[NAME].Constructor = Tooltip; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tooltip._jQueryInterface; + }; + + return Tooltip; + })(jQuery); + + module.exports = Tooltip; +}); \ No newline at end of file diff --git a/dist/js/umd/util.js b/dist/js/umd/util.js new file mode 100644 index 0000000000..a813505c84 --- /dev/null +++ b/dist/js/umd/util.js @@ -0,0 +1,166 @@ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + define(['exports', 'module'], factory); + } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') { + factory(exports, module); + } else { + var mod = { + exports: {} + }; + factory(mod.exports, mod); + global.util = mod.exports; + } +})(this, function (exports, module) { + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): util.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + 'use strict'; + + var Util = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Private TransitionEnd Helpers + * ------------------------------------------------------------------------ + */ + + var transition = false; + + var TransitionEndEvent = { + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend' + }; + + // shoutout AngusCroll (https://goo.gl/pxwQGp) + function toType(obj) { + return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); + } + + function isElement(obj) { + return (obj[0] || obj).nodeType; + } + + function getSpecialTransitionEndEvent() { + return { + bindType: transition.end, + delegateType: transition.end, + handle: function handle(event) { + if ($(event.target).is(this)) { + return event.handleObj.handler.apply(this, arguments); + } + } + }; + } + + function transitionEndTest() { + if (window.QUnit) { + return false; + } + + var el = document.createElement('bootstrap'); + + for (var name in TransitionEndEvent) { + if (el.style[name] !== undefined) { + return { end: TransitionEndEvent[name] }; + } + } + + return false; + } + + function transitionEndEmulator(duration) { + var _this = this; + + var called = false; + + $(this).one(Util.TRANSITION_END, function () { + called = true; + }); + + setTimeout(function () { + if (!called) { + Util.triggerTransitionEnd(_this); + } + }, duration); + + return this; + } + + function setTransitionEndSupport() { + transition = transitionEndTest(); + + $.fn.emulateTransitionEnd = transitionEndEmulator; + + if (Util.supportsTransitionEnd()) { + $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); + } + } + + /** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + var Util = { + + TRANSITION_END: 'bsTransitionEnd', + + getUID: function getUID(prefix) { + do prefix += ~ ~(Math.random() * 1000000); while (document.getElementById(prefix)); + return prefix; + }, + + getSelectorFromElement: function getSelectorFromElement(element) { + var selector = element.getAttribute('data-target'); + + if (!selector) { + selector = element.getAttribute('href') || ''; + selector = /^#[a-z]/i.test(selector) ? selector : null; + } + + return selector; + }, + + reflow: function reflow(element) { + new Function('bs', 'return bs')(element.offsetHeight); + }, + + triggerTransitionEnd: function triggerTransitionEnd(element) { + $(element).trigger(transition.end); + }, + + supportsTransitionEnd: function supportsTransitionEnd() { + return !!transition; + }, + + typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { + + for (var property in configTypes) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = undefined; + + if (value && isElement(value)) valueType = 'element';else valueType = toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new Error('' + componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".')); + } + } + } + + }; + + setTransitionEndSupport(); + + return Util; + })(jQuery); + + module.exports = Util; +}); \ No newline at end of file diff --git a/docs/assets/css/docs.min.css b/docs/assets/css/docs.min.css index 96239e4c41..24ee63e543 100644 --- a/docs/assets/css/docs.min.css +++ b/docs/assets/css/docs.min.css @@ -3,4 +3,1256 @@ * Copyright 2011-2014 Twitter, Inc. * Licensed under the Creative Commons Attribution 3.0 Unported License. For * details, see http://creativecommons.org/licenses/by/3.0/. - */.bd-featurette,.bd-footer{border-top:1px solid #eee}.bd-example:after,.bd-header:after{clear:both}.ge,.sd{font-style:italic}.bd-container{position:relative;max-width:62rem;padding:0 1rem 1rem;margin-right:auto;margin-left:auto}@media (min-width:768px){.bd-container{padding:2rem}}@media (min-width:992px){.bd-container{padding:4rem}}.bd-container>table{display:block;width:100%;max-width:100%;overflow-y:auto;margin-bottom:1rem}.bd-container>table>tbody>tr>td,.bd-container>table>tbody>tr>th,.bd-container>table>tfoot>tr>td,.bd-container>table>tfoot>tr>th,.bd-container>table>thead>tr>td,.bd-container>table>thead>tr>th{padding:.75rem;line-height:1.5;vertical-align:top;border:1px solid #eceeef}.bd-container>table td:first-child>code{white-space:nowrap}.bd-content>h2{margin-top:3rem}.bd-content>h3{margin-top:1.5rem}.bd-content>ol li,.bd-content>ul li{margin-bottom:.25rem}@media (min-width:34em){.bd-title{font-size:4rem}.bd-title+p{font-size:1.5rem;font-weight:300}}.bd-sidebar{padding:0;margin-bottom:0;background-color:#fafafa}.bd-sidebar .navbar-toggler{position:absolute;top:1.25rem;right:0;z-index:5}.bd-sidebar .navbar-header{float:none;margin-right:-15px}.bd-sidebar .navbar-collapse{padding:0;border:0}@media (min-width:992px){.bd-docs{margin-left:240px}.bd-sidebar{position:fixed;top:0;bottom:0;left:0;width:240px;overflow-y:auto;border-right:1px solid #eee}}.bd-example,.bd-masthead,.bd-search{position:relative}.bd-sidebar .navbar-brand{display:block;float:none;height:auto;padding:1.75rem 1.25rem;font-size:20px;font-weight:500;line-height:1}.bd-sidebar-brand:focus,.bd-sidebar-brand:hover{text-decoration:none}.bd-search{margin-right:1.25rem;margin-bottom:1.5rem;margin-left:1.25rem}.bd-search .form-control{height:2.45rem;padding-top:.4rem;padding-bottom:.4rem}.bd-search-results{right:0;display:block;padding:0;overflow:hidden;font-size:.9rem}.bd-search-results:empty{display:none}.bd-search-results>li>a{padding-left:.75rem;padding-right:.75rem}.bd-search-results>li:first-child{margin-top:.25rem}.bd-search-results>li:last-child{margin-bottom:.25rem}.bd-search-results>.no-results{padding:.75rem 1rem;color:#7a7a7a;text-align:center}.bd-sidenav{display:none}.active>.bd-sidenav,.bd-toc-link{display:block}.bd-toc-link{padding:.25rem 1.25rem;color:#55595c}.bd-toc-link:focus,.bd-toc-link:hover{color:#0275d8;text-decoration:none}.active>.bd-toc-link{font-weight:500;color:#373a3c}.bd-toc-item.active{margin-top:1rem;margin-bottom:1rem}.bd-toc-item:first-child{margin-top:0}.bd-toc-item:last-child{margin-bottom:2rem}.bd-sidebar .nav>li>a{display:block;padding:.25rem 1.25rem;font-size:90%;color:#99979c}.bd-sidebar .nav>li>a:focus,.bd-sidebar .nav>li>a:hover{color:#0275d8;text-decoration:none;background-color:transparent}.bd-sidebar .nav>.active:focus>a,.bd-sidebar .nav>.active:hover>a,.bd-sidebar .nav>.active>a{font-weight:500;color:#373a3c;background-color:transparent}.bd-sidebar .nav .nav{display:none;padding-bottom:.75rem}.bd-booticon,.bd-sidebar .nav>.active>.nav{display:block}.bd-sidebar .nav .nav>li>a{padding-top:1px;padding-bottom:1px;font-weight:400;padding-top:.125rem;padding-bottom:.125rem;padding-left:2rem;font-size:80%}.bd-sidebar .nav .nav>.active:focus>a,.bd-sidebar .nav .nav>.active:hover>a,.bd-sidebar .nav .nav>.active>a{font-weight:500}.bd-booticon{width:9rem;height:9rem;font-size:6.5rem;line-height:9rem;color:#fff;text-align:center;cursor:default;background-color:#563d7c;border-radius:15%}.bd-brand-logos,.bd-callout,.bd-callout code,.bd-team img,.color-swatch{border-radius:.25rem}.carbonad,.carbonad-tag,.carbonad-text{width:auto!important;height:auto!important}.bd-booticon.inverse{color:#563d7c;background-color:#fff}.bd-booticon.outline{background-color:transparent;border:1px solid #cdbfe3}.bd-nav-home{margin-bottom:0;background-color:#563d7c;border-bottom:0}.bd-nav-home .navbar-brand>a{font-weight:500;color:#fff}.bd-nav-home .nav-link{font-weight:500;color:#cdbfe3}.bd-nav-home .nav-link:focus,.bd-nav-home .nav-link:hover{color:#fff;background-color:rgba(0,0,0,.5)}.bd-header{padding-bottom:.5rem;margin-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.25)}.bd-header:after,.bd-header:before{content:" ";display:table}.bd-header .bd-header-mark{float:left;padding-top:.6em;padding-bottom:.6em;font-size:1.25rem;font-weight:500}.bd-header-nav{float:right}.bd-header-nav .nav-link{float:left}.bd-header-nav .nav-link:hover{background-color:transparent}.bd-masthead{padding:2rem 0;text-align:center}.bd-masthead .bd-booticon{margin:0 auto 2rem;color:#55595c;border-color:#55595c}.bd-masthead h1{font-weight:300;line-height:1}.bd-masthead .lead{margin-left:auto;margin-right:auto;margin-bottom:2rem;font-size:1.25rem}.bd-masthead .version{margin-top:-1rem;margin-bottom:2rem}.bd-masthead .btn{width:100%;padding:1rem 2rem;font-size:1.25rem;font-weight:500;color:#55595c;border-color:#55595c}.bd-masthead .btn:hover{color:#fff;background-color:#55595c}@media (min-width:480px){.bd-masthead .btn{width:auto}}@media (min-width:768px){.bd-masthead{padding:2rem 0 4rem}.bd-header{margin-bottom:4rem}.bd-masthead h1{font-size:4rem}.bd-masthead .lead{font-size:1.5rem}}@media (min-width:992px){.bd-masthead .lead{width:80%;font-size:2rem}}.bd-featurette{padding-top:3rem;padding-bottom:3rem;font-size:1rem;line-height:1.5;color:#555;text-align:center;background-color:#fff}.bd-featurette .highlight,.carbonad{text-align:left}.bd-featurette-title{margin-bottom:.5rem;font-size:2rem;font-weight:400;color:#333}.half-rule{width:6rem;margin:2.5rem auto}.bd-featurette h4{margin-top:1rem;margin-bottom:.5rem;font-weight:400;color:#333}.bd-featurette-img{display:block;margin-bottom:1.25rem;color:#333}.bd-featurette-img:hover{color:#0275d8;text-decoration:none}.bd-featurette-img img{display:block;margin-bottom:1rem}@media (min-width:480px){.bd-featurette .img-responsive{margin-top:2rem}}@media (min-width:768px){.bd-featurette{padding-top:6rem;padding-bottom:6rem}.bd-featurette-title{font-size:2.5rem}.bd-featurette .lead{max-width:80%;margin-right:auto;margin-left:auto}.bd-featurette .img-responsive{margin-top:0}}.bd-featured-sites{margin-right:-1px;margin-left:-1px}.bd-featured-sites .col-xs-6{padding:1px}.bd-featured-sites .img-responsive{margin-top:0}.carbonad{padding:1.25rem!important;margin:0 -1rem 2rem!important;overflow:hidden;font-size:.8rem!important;line-height:1rem!important;color:#55595c!important;background:#f5f5f5!important;border:0!important}.carbonad-img{margin:0!important}.carbonad-tag,.carbonad-text{display:block!important;float:none!important;margin-left:145px!important;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important}.carbonad-text{padding-top:0!important}.carbonad-tag{color:inherit!important;text-align:left!important}.anchorjs-link,.bd-brand-item,.bd-example-tooltips,.responsive-utilities td{text-align:center}.carbonad-tag a,.carbonad-text a{color:#55595c!important}.carbonad-tag a:hover,.carbonad-text a:hover{color:#0275d8!important}.carbonad #azcarbon>img{display:none}@media (min-width:34em){.carbonad{width:330px!important;margin:1.5rem auto!important;border-width:1px!important;border-radius:.25rem}.bd-masthead .carbonad{margin:3rem auto 0!important}}@media (min-width:48em){.carbonad{margin-right:0!important;margin-left:0!important}}@media (min-width:62em){.carbonad{float:right;width:330px!important;padding:1rem!important;margin:.5rem 0 1rem 2rem!important}.bd-masthead .carbonad{float:none;margin:0 auto!important}}.bd-footer{padding-top:2rem;margin-top:2rem;font-size:85%;color:#777}.bd-footer-links{padding-left:0;margin-top:20px;color:#999}.bd-footer-links li{display:inline;padding:0 2px}.bd-footer-links li:first-child{padding-left:0}@media (min-width:768px){.bd-featured-sites .col-sm-3:first-child img{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.bd-featured-sites .col-sm-3:last-child img{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.bd-footer p{margin-bottom:0}}.bd-social{margin-bottom:1.5rem;margin-left:-.5rem}.bd-social-buttons{display:inline-block;padding-left:0;margin-bottom:0;list-style:none}.bd-social-buttons li{display:inline-block;padding:.25rem .5rem;line-height:1}.bd-social-buttons .twitter-follow-button{width:225px!important}.bd-social-buttons .twitter-share-button{width:98px!important}.github-btn{overflow:hidden;border:0}.bd-example-row .row{margin-bottom:1rem}.bd-example-row .row>[class^=col-]{padding-top:.75rem;padding-bottom:.75rem;background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.2)}.bd-example{padding:1rem;margin:1rem -1rem;border:solid #f7f7f9;border-width:.2rem 0 0}.bd-example:after,.bd-example:before{content:" ";display:table}@media (min-width:34em){.bd-example{margin-left:0;margin-right:0;margin-bottom:0;padding:1.5rem;border-width:.2rem}}.bd-example+.highlight{margin-top:-1rem}.bd-example+.zero-clipboard+.highlight{margin-top:0}.bd-example+p{margin-top:2rem}.bd-example .container{width:auto}.bd-example>.alert+.alert,.bd-example>.nav+.nav,.bd-example>.navbar+.navbar,.bd-example>.progress+.btn,.bd-example>.progress+.progress{margin-top:1rem}.bd-example>.dropdown-menu:first-child{position:static;display:block}.bd-example>.table-responsive:last-child>.table,.bd-example>:last-child{margin-bottom:0!important}.bd-example>.close{float:none}.bd-example-type .table .type-info{color:#999;vertical-align:middle}.bd-example-type .table td{padding:1rem 0;border-color:#eee}.bd-example-type .table tr:first-child td{border-top:0}.bd-example-type h1,.bd-example-type h2,.bd-example-type h3,.bd-example-type h4,.bd-example-type h5,.bd-example-type h6{margin:0}.bd-example-bg-classes p{padding:1rem}.bd-example>img+img{margin-left:.5rem}.bd-example>.btn-group{margin-top:.25rem;margin-bottom:.25rem}.bd-example-control-sizing input[type=text]+input[type=text],.bd-example-control-sizing select,.bd-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.bd-example-form .input-group{margin-bottom:.5rem}.bd-example>textarea.form-control{resize:vertical}.bd-example>.list-group{max-width:400px}.bd-example .navbar:last-child{margin-bottom:0}.bd-navbar-bottom-example,.bd-navbar-top-example{z-index:1;padding:0;overflow:hidden}.bd-navbar-bottom-example .navbar-header,.bd-navbar-top-example .navbar-header{margin-left:0}.bd-navbar-bottom-example .navbar-fixed-bottom,.bd-navbar-top-example .navbar-fixed-top{position:relative;margin-right:0;margin-left:0}.bd-navbar-top-example{padding-bottom:45px}.bd-navbar-top-example .navbar-fixed-top{top:-1px}.bd-navbar-bottom-example{padding-top:45px}.bd-navbar-bottom-example .navbar-fixed-bottom{bottom:-1px}.bd-navbar-bottom-example .navbar{margin-bottom:0}@media (min-width:768px){.bd-navbar-bottom-example .navbar-fixed-bottom,.bd-navbar-top-example .navbar-fixed-top{position:absolute}}.bd-example .pagination{margin-top:.5rem;margin-bottom:.5rem}.bd-example>.pager{margin-top:0}.bd-example-modal{background-color:#f5f5f5}.bd-example-modal .modal{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;display:block}.bd-example-modal .modal-dialog{left:auto;margin-right:auto;margin-left:auto}.bd-example>.dropdown>.dropdown-toggle{float:left}.bd-example>.dropdown>.dropdown-menu{position:static;display:block;margin-bottom:.25rem;clear:left}.bd-example-tabs .nav-tabs{margin-bottom:1rem}.bd-example-tooltips>.btn{margin-top:.25rem;margin-bottom:.25rem}.bd-example-popover{padding-bottom:1.5rem;background-color:#f9f9f9}.bd-example-popover .popover{position:relative;display:block;float:left;width:260px;margin:1.25rem}.bd-example-tooltip .tooltip{position:relative;display:inline-block;margin:10px 20px;opacity:1}.scrollspy-example{position:relative;height:200px;margin-top:.5rem;overflow:auto}.bd-example>.center-block:not(img){max-width:200px;padding:.5rem;background-color:#eee}.bd-example>.bg-danger,.bd-example>.bg-info,.bd-example>.bg-primary,.bd-example>.bg-success,.bd-example>.bg-warning{padding:.5rem;margin-top:.5rem;margin-bottom:.5rem}.highlight{padding:1rem;margin:1rem -1rem;background-color:#f7f7f9}@media (min-width:34em){.highlight{padding:1.5rem;margin-right:0;margin-left:0}}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit;color:#373a3c}#focusedInput{border-color:#66afe9;outline:0;outline:dotted thin;-webkit-box-shadow:0 0 .5rem rgba(102,175,233,.6);box-shadow:0 0 .5rem rgba(102,175,233,.6)}.table-responsive .highlight pre{white-space:normal}.bd-table th small,.responsive-utilities th small{display:block;font-weight:400;color:#999}.responsive-utilities tbody th{font-weight:400}.responsive-utilities td.is-visible{color:#468847;background-color:#dff0d8!important}.responsive-utilities td.is-hidden{color:#ccc;background-color:#f9f9f9!important}.responsive-utilities-test{margin-top:.25rem}.responsive-utilities-test .col-xs-6{margin-bottom:.5rem}.responsive-utilities-test span{display:block;padding:1rem .5rem;font-size:1rem;font-weight:700;line-height:1.1;text-align:center;border-radius:.25rem}.hidden-on .col-xs-6>.not-visible,.visible-on .col-xs-6>.not-visible{color:#999;border:1px solid #ddd}.hidden-on .col-xs-6 .visible,.visible-on .col-xs-6 .visible{color:#468847;background-color:#dff0d8;border:1px solid #d6e9c6}@media (max-width:33.9em){.hidden-xs-only{display:none!important}}@media (min-width:34em)and (max-width:47.9em){.hidden-sm-only{display:none!important}}@media (min-width:48em)and (max-width:61.9em){.hidden-md-only{display:none!important}}@media (min-width:62em)and (max-width:74.9em){.hidden-lg-only{display:none!important}}@media (min-width:75em){.hidden-xl-only{display:none!important}}.btn-outline{color:#563d7c;background-color:transparent;border-color:#563d7c}.btn-outline:active,.btn-outline:focus,.btn-outline:hover{color:#fff;background-color:#563d7c;border-color:#563d7c}.btn-outline-inverse{color:#fff;background-color:transparent;border-color:#cdbfe3}.btn-outline-inverse:active,.btn-outline-inverse:focus,.btn-outline-inverse:hover{color:#563d7c;text-shadow:none;background-color:#fff;border-color:#fff}.bd-callout{padding:1.25rem;margin-top:1.25rem;margin-bottom:1.25rem;border:1px solid #eee;border-left-width:.25rem}.bd-callout h4{margin-top:0;margin-bottom:.25rem}.bd-callout p:last-child{margin-bottom:0}.bd-callout+.bd-callout{margin-top:-.25rem}.bd-callout-info{border-left-color:#5bc0de}.bd-callout-info h4{color:#5bc0de}.bd-callout-warning{border-left-color:#f0ad4e}.bd-callout-warning h4{color:#f0ad4e}.bd-callout-danger{border-left-color:#d9534f}.bd-callout-danger h4{color:#d9534f}.bd-examples .img-thumbnail{margin-bottom:.75rem}.bd-examples h4{margin-bottom:.25rem}.bd-examples p{margin-bottom:1.25rem}@media (max-width:480px){.bd-examples{margin-right:-.75rem;margin-left:-.75rem}.bd-examples>[class^=col-]{padding-right:.75rem;padding-left:.75rem}}.bd-team .team-member{line-height:2rem;color:#555}.bd-team .team-member:hover{color:#333;text-decoration:none}.bd-team .github-btn{float:right;width:180px;height:1.25rem;margin-top:.25rem}.bd-team img{float:left;width:2rem;margin-right:.5rem}.bd-browser-bugs td p{margin-bottom:0}.bd-browser-bugs th:first-child{width:18%}.bd-brand-logos{display:table;width:100%;margin-bottom:1rem;overflow:hidden;color:#563d7c;background-color:#f9f9f9}.bd-brand-logos .inverse,.color-swatches .bd-purple{background-color:#563d7c}.bd-brand-item{padding:4rem 0}.bd-brand-item+.bd-brand-item{border-top:1px solid #fff}.bd-brand-logos .inverse{color:#fff}.bd-brand-item h1,.bd-brand-item h3{margin-top:0;margin-bottom:0}.bd-brand-item .bd-booticon{margin-right:auto;margin-left:auto}@media (min-width:768px){.bd-brand-item{display:table-cell;width:1%}.bd-brand-item+.bd-brand-item{border-top:0;border-left:1px solid #fff}.bd-brand-item h1{font-size:4rem}}.color-swatches{margin:0 -5px;overflow:hidden}.color-swatch{float:left;width:4rem;height:4rem;margin-right:.25rem;margin-left:.25rem}.color-swatches .bd-purple-light{background-color:#cdbfe3}.color-swatches .bd-purple-lighter{background-color:#e5e1ea}.color-swatches .bd-gray{background-color:#f9f9f9}.zero-clipboard{position:relative;display:none;float:right}.btn-clipboard{position:absolute;top:0;right:0;z-index:10;display:block;padding:.25rem .5rem;font-size:75%;color:#818a91;cursor:pointer;background-color:#eceeef;border-radius:0 .2rem}.btn-clipboard-hover{color:#fff;background-color:#027de7}@media (min-width:768px){.color-swatch{width:6rem;height:6rem}.zero-clipboard{display:block}}.hll{background-color:#ffc}.c{color:#999}.err{color:#A00;background-color:#FAA}.k{color:#069}.o{color:#555}.cm{color:#999}.cp{color:#099}.c1,.cs{color:#999}.gd{background-color:#FCC;border:1px solid #C00}.gr{color:red}.gh{color:#030}.gi{background-color:#CFC;border:1px solid #0C0}.go{color:#AAA}.gp{color:#009}.gu{color:#030}.gt{color:#9C6}.kc,.kd,.kn,.kp,.kr{color:#069}.kt{color:#078}.m{color:#F60}.s{color:#d44950}.na{color:#4f9fcf}.nb{color:#366}.nc{color:#0A8}.no{color:#360}.nd{color:#99F}.ni{color:#999}.ne{color:#C00}.nf{color:#C0F}.nl{color:#99F}.nn{color:#0CF}.nt{color:#2f6f9f}.nv{color:#033}.ow{color:#000}.w{color:#bbb}.mf,.mh,.mi,.mo{color:#F60}.s2,.sb,.sc,.sd,.se,.sh{color:#C30}.si{color:#A00}.sx{color:#C30}.sr{color:#3AA}.s1{color:#C30}.ss{color:#FC3}.bp{color:#366}.vc,.vg,.vi{color:#033}.il{color:#F60}.css .nt+.nt,.css .o,.css .o+.nt{color:#999}@font-face{font-family:anchorjs-icons;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg6v8yoAAAC8AAAAYGNtYXDL8RqdAAABHAAAADxnYXNwAAAAEAAAAVgAAAAIZ2x5Zkm2oNUAAAFgAAABWGhlYWQAHd4cAAACuAAAADZoaGVhB3sECwAAAvAAAAAkaG10eAYAAEcAAAMUAAAADGxvY2EACgCsAAADIAAAAAhtYXhwAAYAcAAAAygAAAAgbmFtZUQXtNYAAANIAAABOXBvc3QAAwAAAAAEhAAAACAAAwQAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACDmAAPA/8D/wAPAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEACgAAAAGAAQAAQACACDmAP//AAAAIOYA////4RoCAAEAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAIARwAHA7kDeQA2AG0AAAEnLgEiBg8BDgEUFh8BHgMXNy4DLwEuATQ2PwE+ATIWHwEeARQGDwEeAxU3PgE0JicBLgMnBx4DHwEeARQGDwEOASImLwEuATQ2PwEuAzUHDgEUFh8BHgEyNj8BPgE0Ji8BA7kEI1ldWiPaIyQkIwQDBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMk/r4DBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMkBCNZXVoj2iMkJCMEA3UEJCMjJNojWV1aIwQDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkj/sYDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkjBCQjIyTaI1ldWiMEAAEAAAABAABR/4xQXw889QALBAAAAAAAzqNM0wAAAADOo0zTAAAAAAO5A3kAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAABHA7kAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAgAAAAQAAEcAAAAAAAoArAABAAAAAwBuAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoAKABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoAKABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADAALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'),url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAATwAAsAAAAABKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDq/zKmNtYXAAAAFoAAAAPAAAADzL8RqdZ2FzcAAAAaQAAAAIAAAACAAAABBnbHlmAAABrAAAAVgAAAFYSbag1WhlYWQAAAMEAAAANgAAADYAHd4caGhlYQAAAzwAAAAkAAAAJAd7BAtobXR4AAADYAAAAAwAAAAMBgAAR2xvY2EAAANsAAAACAAAAAgACgCsbWF4cAAAA3QAAAAgAAAAIAAGAHBuYW1lAAADlAAAATkAAAE5RBe01nBvc3QAAATQAAAAIAAAACAAAwAAAAMEAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAg5gADwP/A/8ADwABAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAAoAAAABgAEAAEAAgAg5gD//wAAACDmAP///+EaAgABAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAACAEcABwO5A3kANgBtAAABJy4BIgYPAQ4BFBYfAR4DFzcuAy8BLgE0Nj8BPgEyFh8BHgEUBg8BHgMVNz4BNCYnAS4DJwceAx8BHgEUBg8BDgEiJi8BLgE0Nj8BLgM1Bw4BFBYfAR4BMjY/AT4BNCYvAQO5BCNZXVoj2iMkJCMEAwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJP6+AwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJAQjWV1aI9ojJCQjBAN1BCQjIyTaI1ldWiMEAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZI/7GAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZIwQkIyMk2iNZXVojBAABAAAAAQAAUf+MUF8PPPUACwQAAAAAAM6jTNMAAAAAzqNM0wAAAAADuQN5AAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAARwO5AAEAAAAAAAAAAAAAAAAAAAADAAAAAAIAAAAEAABHAAAAAAAKAKwAAQAAAAMAbgACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA4AAAABAAAAAAACAA4ARwABAAAAAAADAA4AJAABAAAAAAAEAA4AVQABAAAAAAAFABYADgABAAAAAAAGAAcAMgABAAAAAAAKACgAYwADAAEECQABAA4AAAADAAEECQACAA4ARwADAAEECQADAA4AJAADAAEECQAEAA4AVQADAAEECQAFABYADgADAAEECQAGAA4AOQADAAEECQAKACgAYwBpAGMAbwBtAG8AbwBuAFYAZQByAHMAaQBvAG4AIAAwAC4AMABpAGMAbwBtAG8AbwBuaWNvbW9vbgBpAGMAbwBtAG8AbwBuAFIAZQBnAHUAbABhAHIAaQBjAG8AbQBvAG8AbgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format('woff');font-style:normal;font-weight:400}.anchorjs-icon{font-family:anchorjs-icons;font-style:normal;font-variant:normal;font-weight:400;line-height:1;speak:none;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anchorjs-link{opacity:0;text-decoration:none}.anchorjs-link:focus,:hover>.anchorjs-link{opacity:1;-webkit-transition:color .16s linear;-o-transition:color .16s linear;transition:color .16s linear}.anchorjs-description{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.anchorjs-link{float:left;width:1.2em;height:1em;padding-right:.2em;margin-top:.25em;margin-left:-1.2em;font-size:70%;color:inherit}:hover>.anchorjs-link:hover{color:#0275d8;text-decoration:none}.anchorjs-icon:before{content:'\e600'}@media (max-width:47.9em){.anchorjs-link{display:none}} \ No newline at end of file + */ +.bd-container { + position: relative; + max-width: 62rem; + padding: 0 1rem 1rem; + margin-right: auto; + margin-left: auto; } + @media (min-width: 768px) { + .bd-container { + padding: 2rem; } } + @media (min-width: 992px) { + .bd-container { + padding: 4rem; } } + .bd-container > table { + display: block; + width: 100%; + max-width: 100%; + overflow-y: auto; + margin-bottom: 1rem; } + .bd-container > table > thead > tr > th, + .bd-container > table > thead > tr > td, + .bd-container > table > tbody > tr > th, + .bd-container > table > tbody > tr > td, + .bd-container > table > tfoot > tr > th, + .bd-container > table > tfoot > tr > td { + padding: 0.75rem; + line-height: 1.5; + vertical-align: top; + border: 1px solid #eceeef; } + .bd-container > table td:first-child > code { + white-space: nowrap; } + +.bd-content > h2 { + margin-top: 3rem; } + +.bd-content > h3 { + margin-top: 1.5rem; } + +.bd-content > ul li, +.bd-content > ol li { + margin-bottom: .25rem; } + +@media (min-width: 34em) { + .bd-title { + font-size: 4rem; } + .bd-title + p { + font-size: 1.5rem; + font-weight: 300; } } + +.bd-sidebar { + padding: 0; + margin-bottom: 0; + background-color: #fafafa; } + .bd-sidebar .navbar-toggler { + position: absolute; + top: 1.25rem; + right: 0; + z-index: 5; } + +.bd-sidebar .navbar-header { + float: none; + margin-right: -15px; } + +.bd-sidebar .navbar-collapse { + padding: 0; + border: 0; } + +@media (min-width: 992px) { + .bd-docs { + margin-left: 240px; } + .bd-sidebar { + position: fixed; + top: 0; + bottom: 0; + left: 0; + width: 240px; + overflow-y: auto; + border-right: 1px solid #eee; } } + +.bd-sidebar .navbar-brand { + display: block; + float: none; + height: auto; + padding: 1.75rem 1.25rem; + font-size: 20px; + font-weight: 500; + line-height: 1; } + +.bd-sidebar-brand:hover, +.bd-sidebar-brand:focus { + text-decoration: none; } + +.bd-search { + position: relative; + margin-right: 1.25rem; + margin-bottom: 1.5rem; + margin-left: 1.25rem; } + .bd-search .form-control { + height: 2.45rem; + padding-top: .4rem; + padding-bottom: .4rem; } + +.bd-search-results { + right: 0; + display: block; + padding: 0; + overflow: hidden; + font-size: .9rem; } + .bd-search-results:empty { + display: none; } + .bd-search-results > li > a { + padding-left: .75rem; + padding-right: .75rem; } + .bd-search-results > li:first-child { + margin-top: .25rem; } + .bd-search-results > li:last-child { + margin-bottom: .25rem; } + .bd-search-results > .no-results { + padding: 0.75rem 1rem; + color: #7a7a7a; + text-align: center; } + +.bd-sidenav { + display: none; } + +.bd-toc-link { + display: block; + padding: 0.25rem 1.25rem; + color: #55595c; } + +.bd-toc-link:hover, +.bd-toc-link:focus { + color: #0275d8; + text-decoration: none; } + +.active > .bd-toc-link { + font-weight: 500; + color: #373a3c; } + +.active > .bd-sidenav { + display: block; } + +.bd-toc-item.active { + margin-top: 1rem; + margin-bottom: 1rem; } + +.bd-toc-item:first-child { + margin-top: 0; } + +.bd-toc-item:last-child { + margin-bottom: 2rem; } + +.bd-sidebar .nav > li > a { + display: block; + padding: 0.25rem 1.25rem; + font-size: 90%; + color: #99979c; } + +.bd-sidebar .nav > li > a:hover, +.bd-sidebar .nav > li > a:focus { + color: #0275d8; + text-decoration: none; + background-color: transparent; } + +.bd-sidebar .nav > .active > a, +.bd-sidebar .nav > .active:hover > a, +.bd-sidebar .nav > .active:focus > a { + font-weight: 500; + color: #373a3c; + background-color: transparent; } + +.bd-sidebar .nav .nav { + display: none; + padding-bottom: .75rem; } + +.bd-sidebar .nav .nav > li > a { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 2rem; + font-size: 75%; + font-weight: normal; } + +.bd-sidebar .nav .nav > .active > a, +.bd-sidebar .nav .nav > .active:hover > a, +.bd-sidebar .nav .nav > .active:focus > a { + font-weight: 500; } + +.bd-sidebar .nav > .active > .nav { + display: block; } + +.bd-sidebar .nav .nav > li > a { + padding-top: .125rem; + padding-bottom: .125rem; + padding-left: 2rem; + font-size: 80%; } + +.bd-booticon { + display: block; + width: 9rem; + height: 9rem; + font-size: 6.5rem; + line-height: 9rem; + color: #fff; + text-align: center; + cursor: default; + background-color: #563d7c; + border-radius: 15%; } + .bd-booticon.inverse { + color: #563d7c; + background-color: #fff; } + .bd-booticon.outline { + background-color: transparent; + border: 1px solid #cdbfe3; } + +.bd-nav-home { + margin-bottom: 0; + background-color: #563d7c; + border-bottom: 0; } + .bd-nav-home .navbar-brand > a { + font-weight: 500; + color: #fff; } + .bd-nav-home .nav-link { + font-weight: 500; + color: #cdbfe3; } + .bd-nav-home .nav-link:hover, + .bd-nav-home .nav-link:focus { + color: #fff; + background-color: rgba(0, 0, 0, 0.5); } + +.bd-header { + padding-bottom: .5rem; + margin-bottom: 1rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.25); } + .bd-header:before, + .bd-header:after { + content: " "; + display: table; } + .bd-header:after { + clear: both; } + .bd-header .bd-header-mark { + float: left; + padding-top: .6em; + padding-bottom: .6em; + font-size: 1.25rem; + font-weight: 500; } + +.bd-header-nav { + float: right; } + .bd-header-nav .nav-link { + float: left; } + .bd-header-nav .nav-link:hover { + background-color: transparent; } + +.bd-masthead { + position: relative; + padding: 2rem 0; + text-align: center; } + +.bd-masthead .bd-booticon { + margin: 0 auto 2rem; + color: #55595c; + border-color: #55595c; } + +.bd-masthead h1 { + font-weight: 300; + line-height: 1; } + +.bd-masthead .lead { + margin-left: auto; + margin-right: auto; + margin-bottom: 2rem; + font-size: 1.25rem; } + +.bd-masthead .version { + margin-top: -1rem; + margin-bottom: 2rem; } + +.bd-masthead .btn { + width: 100%; + padding: 1rem 2rem; + font-size: 1.25rem; + font-weight: 500; + color: #55595c; + border-color: #55595c; } + .bd-masthead .btn:hover { + color: #fff; + background-color: #55595c; } + +@media (min-width: 480px) { + .bd-masthead .btn { + width: auto; } } + +@media (min-width: 768px) { + .bd-masthead { + padding: 2rem 0 4rem; } + .bd-header { + margin-bottom: 4rem; } + .bd-masthead h1 { + font-size: 4rem; } + .bd-masthead .lead { + font-size: 1.5rem; } } + +@media (min-width: 992px) { + .bd-masthead .lead { + width: 80%; + font-size: 2rem; } } + +.bd-featurette { + padding-top: 3rem; + padding-bottom: 3rem; + font-size: 1rem; + line-height: 1.5; + color: #555; + text-align: center; + background-color: #fff; + border-top: 1px solid #eee; } + .bd-featurette .highlight { + text-align: left; } + +.bd-featurette-title { + margin-bottom: .5rem; + font-size: 2rem; + font-weight: normal; + color: #333; } + +.half-rule { + width: 6rem; + margin: 2.5rem auto; } + +.bd-featurette h4 { + margin-top: 1rem; + margin-bottom: .5rem; + font-weight: normal; + color: #333; } + +.bd-featurette-img { + display: block; + margin-bottom: 1.25rem; + color: #333; } + +.bd-featurette-img:hover { + color: #0275d8; + text-decoration: none; } + +.bd-featurette-img img { + display: block; + margin-bottom: 1rem; } + +@media (min-width: 480px) { + .bd-featurette .img-responsive { + margin-top: 2rem; } } + +@media (min-width: 768px) { + .bd-featurette { + padding-top: 6rem; + padding-bottom: 6rem; } + .bd-featurette-title { + font-size: 2.5rem; } + .bd-featurette .lead { + max-width: 80%; + margin-right: auto; + margin-left: auto; } + .bd-featurette .img-responsive { + margin-top: 0; } } + +.bd-featured-sites { + margin-right: -1px; + margin-left: -1px; } + +.bd-featured-sites .col-xs-6 { + padding: 1px; } + +.bd-featured-sites .img-responsive { + margin-top: 0; } + +@media (min-width: 768px) { + .bd-featured-sites .col-sm-3:first-child img { + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; } + .bd-featured-sites .col-sm-3:last-child img { + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; } } + +.carbonad { + width: auto !important; + height: auto !important; + padding: 1.25rem !important; + margin: 0 -1rem 2rem !important; + overflow: hidden; + /* clearfix */ + font-size: .8rem !important; + line-height: 1rem !important; + color: #55595c !important; + text-align: left; + background: #f5f5f5 !important; + border: 0 !important; } + +.carbonad-img { + margin: 0 !important; } + +.carbonad-text, +.carbonad-tag { + display: block !important; + float: none !important; + width: auto !important; + height: auto !important; + margin-left: 145px !important; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important; } + +.carbonad-text { + padding-top: 0 !important; } + +.carbonad-tag { + color: inherit !important; + text-align: left !important; } + +.carbonad-text a, +.carbonad-tag a { + color: #55595c !important; } + .carbonad-text a:hover, + .carbonad-tag a:hover { + color: #0275d8 !important; } + +.carbonad #azcarbon > img { + display: none; } + +@media (min-width: 34em) { + .carbonad { + width: 330px !important; + margin: 1.5rem auto !important; + border-width: 1px !important; + border-radius: .25rem; } + .bd-masthead .carbonad { + margin: 3rem auto 0 !important; } } + +@media (min-width: 48em) { + .carbonad { + margin-right: 0 !important; + margin-left: 0 !important; } } + +@media (min-width: 62em) { + .carbonad { + float: right; + width: 330px !important; + padding: 1rem !important; + margin: 0.5rem 0 1rem 2rem !important; } + .bd-masthead .carbonad { + float: none; + margin: 0 auto !important; } } + +.bd-footer { + padding-top: 2rem; + margin-top: 2rem; + font-size: 85%; + color: #777; + border-top: 1px solid #eee; } + +.bd-footer-links { + padding-left: 0; + margin-top: 20px; + color: #999; } + +.bd-footer-links li { + display: inline; + padding: 0 2px; } + +.bd-footer-links li:first-child { + padding-left: 0; } + +@media (min-width: 768px) { + .bd-footer p { + margin-bottom: 0; } } + +.bd-social { + margin-bottom: 1.5rem; + margin-left: -.5rem; } + +.bd-social-buttons { + display: inline-block; + padding-left: 0; + margin-bottom: 0; + list-style: none; } + +.bd-social-buttons li { + display: inline-block; + padding: 0.25rem 0.5rem; + line-height: 1; } + +.bd-social-buttons .twitter-follow-button { + width: 225px !important; } + +.bd-social-buttons .twitter-share-button { + width: 98px !important; } + +.github-btn { + overflow: hidden; + border: 0; } + +.bd-example-row .row { + margin-bottom: 1rem; } + .bd-example-row .row > [class^="col-"] { + padding-top: .75rem; + padding-bottom: .75rem; + background-color: rgba(86, 61, 124, 0.15); + border: 1px solid rgba(86, 61, 124, 0.2); } + +.bd-example { + position: relative; + padding: 1rem; + margin: 1rem -1rem; + border: solid #f7f7f9; + border-width: .2rem 0 0; } + .bd-example:before, + .bd-example:after { + content: " "; + display: table; } + .bd-example:after { + clear: both; } + @media (min-width: 34em) { + .bd-example { + margin-left: 0; + margin-right: 0; + margin-bottom: 0; + padding: 1.5rem; + border-width: .2rem; } } + .bd-example + .highlight { + margin-top: -1rem; } + .bd-example + .zero-clipboard + .highlight { + margin-top: 0; } + .bd-example + p { + margin-top: 2rem; } + .bd-example .container { + width: auto; } + .bd-example > .nav + .nav, + .bd-example > .alert + .alert, + .bd-example > .navbar + .navbar, + .bd-example > .progress + .progress, + .bd-example > .progress + .btn { + margin-top: 1rem; } + .bd-example > .dropdown-menu:first-child { + position: static; + display: block; } + +.bd-example > *:last-child, +.bd-example > .table-responsive:last-child > .table { + margin-bottom: 0 !important; } + +.bd-example > .close { + float: none; } + +.bd-example-type .table .type-info { + color: #999; + vertical-align: middle; } + +.bd-example-type .table td { + padding: 1rem 0; + border-color: #eee; } + +.bd-example-type .table tr:first-child td { + border-top: 0; } + +.bd-example-type h1, +.bd-example-type h2, +.bd-example-type h3, +.bd-example-type h4, +.bd-example-type h5, +.bd-example-type h6 { + margin: 0; } + +.bd-example-bg-classes p { + padding: 1rem; } + +.bd-example > img + img { + margin-left: .5rem; } + +.bd-example > .btn-group { + margin-top: .25rem; + margin-bottom: .25rem; } + +.bd-example > .btn-toolbar + .btn-toolbar { + margin-top: .5rem; } + +.bd-example-control-sizing select, +.bd-example-control-sizing input[type="text"] + input[type="text"] { + margin-top: .5rem; } + +.bd-example-form .input-group { + margin-bottom: .5rem; } + +.bd-example > textarea.form-control { + resize: vertical; } + +.bd-example > .list-group { + max-width: 400px; } + +.bd-example .navbar:last-child { + margin-bottom: 0; } + +.bd-navbar-top-example, +.bd-navbar-bottom-example { + z-index: 1; + padding: 0; + overflow: hidden; } + +.bd-navbar-top-example .navbar-header, +.bd-navbar-bottom-example .navbar-header { + margin-left: 0; } + +.bd-navbar-top-example .navbar-fixed-top, +.bd-navbar-bottom-example .navbar-fixed-bottom { + position: relative; + margin-right: 0; + margin-left: 0; } + +.bd-navbar-top-example { + padding-bottom: 45px; } + +.bd-navbar-top-example .navbar-fixed-top { + top: -1px; } + +.bd-navbar-bottom-example { + padding-top: 45px; } + +.bd-navbar-bottom-example .navbar-fixed-bottom { + bottom: -1px; } + +.bd-navbar-bottom-example .navbar { + margin-bottom: 0; } + +@media (min-width: 768px) { + .bd-navbar-top-example .navbar-fixed-top, + .bd-navbar-bottom-example .navbar-fixed-bottom { + position: absolute; } } + +.bd-example .pagination { + margin-top: .5rem; + margin-bottom: .5rem; } + +.bd-example > .pager { + margin-top: 0; } + +.bd-example-modal { + background-color: #f5f5f5; } + +.bd-example-modal .modal { + position: relative; + top: auto; + right: auto; + bottom: auto; + left: auto; + z-index: 1; + display: block; } + +.bd-example-modal .modal-dialog { + left: auto; + margin-right: auto; + margin-left: auto; } + +.bd-example > .dropdown > .dropdown-toggle { + float: left; } + +.bd-example > .dropdown > .dropdown-menu { + position: static; + display: block; + margin-bottom: .25rem; + clear: left; } + +.bd-example-tabs .nav-tabs { + margin-bottom: 1rem; } + +.bd-example-tooltips { + text-align: center; } + +.bd-example-tooltips > .btn { + margin-top: .25rem; + margin-bottom: .25rem; } + +.bd-example-popover { + padding-bottom: 1.5rem; + background-color: #f9f9f9; } + +.bd-example-popover .popover { + position: relative; + display: block; + float: left; + width: 260px; + margin: 1.25rem; } + +.bd-example-tooltip .tooltip { + position: relative; + display: inline-block; + margin: 10px 20px; + opacity: 1; } + +.scrollspy-example { + position: relative; + height: 200px; + margin-top: .5rem; + overflow: auto; } + +.bd-example > .center-block:not(img) { + max-width: 200px; + padding: .5rem; + background-color: #eee; } + +.bd-example > .bg-primary, +.bd-example > .bg-success, +.bd-example > .bg-info, +.bd-example > .bg-warning, +.bd-example > .bg-danger { + padding: .5rem; + margin-top: .5rem; + margin-bottom: .5rem; } + +.highlight { + padding: 1rem; + margin: 1rem -1rem; + background-color: #f7f7f9; } + @media (min-width: 34em) { + .highlight { + padding: 1.5rem; + margin-right: 0; + margin-left: 0; } } + +.highlight pre { + padding: 0; + margin-top: 0; + margin-bottom: 0; + background-color: transparent; + border: 0; } + +.highlight pre code { + font-size: inherit; + color: #373a3c; } + +#focusedInput { + border-color: #66afe9; + outline: 0; + outline: thin dotted \9; + box-shadow: 0 0 0.5rem rgba(102, 175, 233, 0.6); } + +.table-responsive .highlight pre { + white-space: normal; } + +.bd-table th small, +.responsive-utilities th small { + display: block; + font-weight: normal; + color: #999; } + +.responsive-utilities tbody th { + font-weight: normal; } + +.responsive-utilities td { + text-align: center; } + +.responsive-utilities td.is-visible { + color: #468847; + background-color: #dff0d8 !important; } + +.responsive-utilities td.is-hidden { + color: #ccc; + background-color: #f9f9f9 !important; } + +.responsive-utilities-test { + margin-top: .25rem; } + +.responsive-utilities-test .col-xs-6 { + margin-bottom: .5rem; } + +.responsive-utilities-test span { + display: block; + padding: 1rem 0.5rem; + font-size: 1rem; + font-weight: bold; + line-height: 1.1; + text-align: center; + border-radius: .25rem; } + +.visible-on .col-xs-6 > .not-visible, +.hidden-on .col-xs-6 > .not-visible { + color: #999; + border: 1px solid #ddd; } + +.visible-on .col-xs-6 .visible, +.hidden-on .col-xs-6 .visible { + color: #468847; + background-color: #dff0d8; + border: 1px solid #d6e9c6; } + +@media (max-width: 33.9em) { + .hidden-xs-only { + display: none !important; } } + +@media (min-width: 34em) and (max-width: 47.9em) { + .hidden-sm-only { + display: none !important; } } + +@media (min-width: 48em) and (max-width: 61.9em) { + .hidden-md-only { + display: none !important; } } + +@media (min-width: 62em) and (max-width: 74.9em) { + .hidden-lg-only { + display: none !important; } } + +@media (min-width: 75em) { + .hidden-xl-only { + display: none !important; } } + +.btn-outline { + color: #563d7c; + background-color: transparent; + border-color: #563d7c; } + .btn-outline:hover, + .btn-outline:focus, + .btn-outline:active { + color: #fff; + background-color: #563d7c; + border-color: #563d7c; } + +.btn-outline-inverse { + color: #fff; + background-color: transparent; + border-color: #cdbfe3; } + .btn-outline-inverse:hover, + .btn-outline-inverse:focus, + .btn-outline-inverse:active { + color: #563d7c; + text-shadow: none; + background-color: #fff; + border-color: #fff; } + +.bd-callout { + padding: 1.25rem; + margin-top: 1.25rem; + margin-bottom: 1.25rem; + border: 1px solid #eee; + border-left-width: .25rem; + border-radius: .25rem; } + +.bd-callout h4 { + margin-top: 0; + margin-bottom: .25rem; } + +.bd-callout p:last-child { + margin-bottom: 0; } + +.bd-callout code { + border-radius: .25rem; } + +.bd-callout + .bd-callout { + margin-top: -.25rem; } + +.bd-callout-info { + border-left-color: #5bc0de; } + .bd-callout-info h4 { + color: #5bc0de; } + +.bd-callout-warning { + border-left-color: #f0ad4e; } + .bd-callout-warning h4 { + color: #f0ad4e; } + +.bd-callout-danger { + border-left-color: #d9534f; } + .bd-callout-danger h4 { + color: #d9534f; } + +.bd-examples .img-thumbnail { + margin-bottom: .75rem; } + +.bd-examples h4 { + margin-bottom: .25rem; } + +.bd-examples p { + margin-bottom: 1.25rem; } + +@media (max-width: 480px) { + .bd-examples { + margin-right: -.75rem; + margin-left: -.75rem; } + .bd-examples > [class^="col-"] { + padding-right: .75rem; + padding-left: .75rem; } } + +.bd-team .team-member { + line-height: 2rem; + color: #555; } + +.bd-team .team-member:hover { + color: #333; + text-decoration: none; } + +.bd-team .github-btn { + float: right; + width: 180px; + height: 1.25rem; + margin-top: .25rem; } + +.bd-team img { + float: left; + width: 2rem; + margin-right: .5rem; + border-radius: .25rem; } + +.bd-browser-bugs td p { + margin-bottom: 0; } + +.bd-browser-bugs th:first-child { + width: 18%; } + +.bd-brand-logos { + display: table; + width: 100%; + margin-bottom: 1rem; + overflow: hidden; + color: #563d7c; + background-color: #f9f9f9; + border-radius: .25rem; } + +.bd-brand-item { + padding: 4rem 0; + text-align: center; } + +.bd-brand-item + .bd-brand-item { + border-top: 1px solid #fff; } + +.bd-brand-logos .inverse { + color: #fff; + background-color: #563d7c; } + +.bd-brand-item h1, +.bd-brand-item h3 { + margin-top: 0; + margin-bottom: 0; } + +.bd-brand-item .bd-booticon { + margin-right: auto; + margin-left: auto; } + +@media (min-width: 768px) { + .bd-brand-item { + display: table-cell; + width: 1%; } + .bd-brand-item + .bd-brand-item { + border-top: 0; + border-left: 1px solid #fff; } + .bd-brand-item h1 { + font-size: 4rem; } } + +.color-swatches { + margin: 0 -5px; + overflow: hidden; } + +.color-swatch { + float: left; + width: 4rem; + height: 4rem; + margin-right: .25rem; + margin-left: .25rem; + border-radius: .25rem; } + @media (min-width: 768px) { + .color-swatch { + width: 6rem; + height: 6rem; } } + +.color-swatches .bd-purple { + background-color: #563d7c; } + +.color-swatches .bd-purple-light { + background-color: #cdbfe3; } + +.color-swatches .bd-purple-lighter { + background-color: #e5e1ea; } + +.color-swatches .bd-gray { + background-color: #f9f9f9; } + +.zero-clipboard { + position: relative; + display: none; + float: right; } + +.btn-clipboard { + position: absolute; + top: 0; + right: 0; + z-index: 10; + display: block; + padding: 0.25rem 0.5rem; + font-size: 75%; + color: #818a91; + cursor: pointer; + background-color: #eceeef; + border-radius: 0 0.2rem 0 0.2rem; } + +.btn-clipboard-hover { + color: #fff; + background-color: #027de7; } + +@media (min-width: 768px) { + .zero-clipboard { + display: block; } } + +.hll { + background-color: #ffffcc; } + +.c { + color: #999; } + +.err { + color: #AA0000; + background-color: #FFAAAA; } + +.k { + color: #006699; } + +.o { + color: #555555; } + +.cm { + color: #999; } + +.cp { + color: #009999; } + +.c1 { + color: #999; } + +.cs { + color: #999; } + +.gd { + background-color: #FFCCCC; + border: 1px solid #CC0000; } + +.ge { + font-style: italic; } + +.gr { + color: #FF0000; } + +.gh { + color: #003300; } + +.gi { + background-color: #CCFFCC; + border: 1px solid #00CC00; } + +.go { + color: #AAAAAA; } + +.gp { + color: #000099; } + +.gu { + color: #003300; } + +.gt { + color: #99CC66; } + +.kc { + color: #006699; } + +.kd { + color: #006699; } + +.kn { + color: #006699; } + +.kp { + color: #006699; } + +.kr { + color: #006699; } + +.kt { + color: #007788; } + +.m { + color: #FF6600; } + +.s { + color: #d44950; } + +.na { + color: #4f9fcf; } + +.nb { + color: #336666; } + +.nc { + color: #00AA88; } + +.no { + color: #336600; } + +.nd { + color: #9999FF; } + +.ni { + color: #999999; } + +.ne { + color: #CC0000; } + +.nf { + color: #CC00FF; } + +.nl { + color: #9999FF; } + +.nn { + color: #00CCFF; } + +.nt { + color: #2f6f9f; } + +.nv { + color: #003333; } + +.ow { + color: #000000; } + +.w { + color: #bbbbbb; } + +.mf { + color: #FF6600; } + +.mh { + color: #FF6600; } + +.mi { + color: #FF6600; } + +.mo { + color: #FF6600; } + +.sb { + color: #CC3300; } + +.sc { + color: #CC3300; } + +.sd { + color: #CC3300; + font-style: italic; } + +.s2 { + color: #CC3300; } + +.se { + color: #CC3300; } + +.sh { + color: #CC3300; } + +.si { + color: #AA0000; } + +.sx { + color: #CC3300; } + +.sr { + color: #33AAAA; } + +.s1 { + color: #CC3300; } + +.ss { + color: #FFCC33; } + +.bp { + color: #336666; } + +.vc { + color: #003333; } + +.vg { + color: #003333; } + +.vi { + color: #003333; } + +.il { + color: #FF6600; } + +.css .o, +.css .o + .nt, +.css .nt + .nt { + color: #999; } + +@font-face { + font-family: 'anchorjs-icons'; + src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg6v8yoAAAC8AAAAYGNtYXDL8RqdAAABHAAAADxnYXNwAAAAEAAAAVgAAAAIZ2x5Zkm2oNUAAAFgAAABWGhlYWQAHd4cAAACuAAAADZoaGVhB3sECwAAAvAAAAAkaG10eAYAAEcAAAMUAAAADGxvY2EACgCsAAADIAAAAAhtYXhwAAYAcAAAAygAAAAgbmFtZUQXtNYAAANIAAABOXBvc3QAAwAAAAAEhAAAACAAAwQAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACDmAAPA/8D/wAPAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEACgAAAAGAAQAAQACACDmAP//AAAAIOYA////4RoCAAEAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAIARwAHA7kDeQA2AG0AAAEnLgEiBg8BDgEUFh8BHgMXNy4DLwEuATQ2PwE+ATIWHwEeARQGDwEeAxU3PgE0JicBLgMnBx4DHwEeARQGDwEOASImLwEuATQ2PwEuAzUHDgEUFh8BHgEyNj8BPgE0Ji8BA7kEI1ldWiPaIyQkIwQDBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMk/r4DBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMkBCNZXVoj2iMkJCMEA3UEJCMjJNojWV1aIwQDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkj/sYDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkjBCQjIyTaI1ldWiMEAAEAAAABAABR/4xQXw889QALBAAAAAAAzqNM0wAAAADOo0zTAAAAAAO5A3kAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAABHA7kAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAgAAAAQAAEcAAAAAAAoArAABAAAAAwBuAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoAKABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoAKABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADAALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("truetype"), url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAATwAAsAAAAABKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDq/zKmNtYXAAAAFoAAAAPAAAADzL8RqdZ2FzcAAAAaQAAAAIAAAACAAAABBnbHlmAAABrAAAAVgAAAFYSbag1WhlYWQAAAMEAAAANgAAADYAHd4caGhlYQAAAzwAAAAkAAAAJAd7BAtobXR4AAADYAAAAAwAAAAMBgAAR2xvY2EAAANsAAAACAAAAAgACgCsbWF4cAAAA3QAAAAgAAAAIAAGAHBuYW1lAAADlAAAATkAAAE5RBe01nBvc3QAAATQAAAAIAAAACAAAwAAAAMEAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAg5gADwP/A/8ADwABAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAAoAAAABgAEAAEAAgAg5gD//wAAACDmAP///+EaAgABAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAACAEcABwO5A3kANgBtAAABJy4BIgYPAQ4BFBYfAR4DFzcuAy8BLgE0Nj8BPgEyFh8BHgEUBg8BHgMVNz4BNCYnAS4DJwceAx8BHgEUBg8BDgEiJi8BLgE0Nj8BLgM1Bw4BFBYfAR4BMjY/AT4BNCYvAQO5BCNZXVoj2iMkJCMEAwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJP6+AwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJAQjWV1aI9ojJCQjBAN1BCQjIyTaI1ldWiMEAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZI/7GAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZIwQkIyMk2iNZXVojBAABAAAAAQAAUf+MUF8PPPUACwQAAAAAAM6jTNMAAAAAzqNM0wAAAAADuQN5AAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAARwO5AAEAAAAAAAAAAAAAAAAAAAADAAAAAAIAAAAEAABHAAAAAAAKAKwAAQAAAAMAbgACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA4AAAABAAAAAAACAA4ARwABAAAAAAADAA4AJAABAAAAAAAEAA4AVQABAAAAAAAFABYADgABAAAAAAAGAAcAMgABAAAAAAAKACgAYwADAAEECQABAA4AAAADAAEECQACAA4ARwADAAEECQADAA4AJAADAAEECQAEAA4AVQADAAEECQAFABYADgADAAEECQAGAA4AOQADAAEECQAKACgAYwBpAGMAbwBtAG8AbwBuAFYAZQByAHMAaQBvAG4AIAAwAC4AMABpAGMAbwBtAG8AbwBuaWNvbW9vbgBpAGMAbwBtAG8AbwBuAFIAZQBnAHUAbABhAHIAaQBjAG8AbQBvAG8AbgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("woff"); + font-style: normal; + font-weight: normal; } + +.anchorjs-icon { + font-family: 'anchorjs-icons'; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + speak: none; + text-transform: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +.anchorjs-link { + opacity: 0; + text-decoration: none; } + +*:hover > .anchorjs-link, +.anchorjs-link:focus { + opacity: 1; + transition: color 0.16s linear; } + +.anchorjs-description { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.anchorjs-link { + float: left; + width: 1.2em; + height: 1em; + padding-right: .2em; + margin-top: .25em; + margin-left: -1.2em; + font-size: 70%; + color: inherit; + text-align: center; } + +*:hover > .anchorjs-link:hover { + color: #0275d8; + text-decoration: none; } + +.anchorjs-icon:before { + content: '\e600'; } + +@media (max-width: 47.9em) { + .anchorjs-link { + display: none; } } + +/*# sourceMappingURL=docs.min.css.map */ \ No newline at end of file diff --git a/docs/assets/css/docs.min.css.map b/docs/assets/css/docs.min.css.map index c00d288af3..a90258684b 100644 --- a/docs/assets/css/docs.min.css.map +++ b/docs/assets/css/docs.min.css.map @@ -2,59 +2,59 @@ "version": 3, "file": "docs.min.css", "sources": [ - "../../../docs.scss", - "../../../../../../scss/_variables.scss", - "../../../../../../scss/_mixins.scss", - "../../../_layout.scss", - "../../../_sidebar.scss", - "../../../_booticon.scss", - "../../../_homepage.scss", - "../../../_ads.scss", - "../../../_footer.scss", - "../../../_social-buttons.scss", - "../../../_page-header.scss", - "../../../_component-examples.scss", - "../../../_responsive-tests.scss", - "../../../_buttons.scss", - "../../../_callouts.scss", - "../../../_examples.scss", - "../../../_team.scss", - "../../../_browser-bugs.scss", - "../../../_brand.scss", - "../../../_zeroclipboard.scss", - "../../../_syntax.scss", - "../../../_anchor.scss", - "../../../../../../scss/mixins/_breakpoints.scss", - "../../../../../../scss/mixins/_hide-text.scss", - "../../../../../../scss/mixins/_hover.scss", - "../../../../../../scss/mixins/_image.scss", - "../../../../../../scss/mixins/_label.scss", - "../../../../../../scss/mixins/_reset-filter.scss", - "../../../../../../scss/mixins/_resize.scss", - "../../../../../../scss/mixins/_responsive-visibility.scss", - "../../../../../../scss/mixins/_screen-reader.scss", - "../../../../../../scss/mixins/_size.scss", - "../../../../../../scss/mixins/_tab-focus.scss", - "../../../../../../scss/mixins/_text-emphasis.scss", - "../../../../../../scss/mixins/_text-truncate.scss", - "../../../../../../scss/mixins/_alert.scss", - "../../../../../../scss/mixins/_buttons.scss", - "../../../../../../scss/mixins/_pagination.scss", - "../../../../../../scss/mixins/_list-group.scss", - "../../../../../../scss/mixins/_nav-divider.scss", - "../../../../../../scss/mixins/_forms.scss", - "../../../../../../scss/mixins/_progress.scss", - "../../../../../../scss/mixins/_table-row.scss", - "../../../../../../scss/mixins/_background-variant.scss", - "../../../../../../scss/mixins/_border-radius.scss", - "../../../../../../scss/mixins/_gradients.scss", - "../../../../../../scss/mixins/_clearfix.scss", - "../../../../../../scss/mixins/_center-block.scss", - "../../../../../../scss/mixins/_grid-framework.scss", - "../../../../../../scss/mixins/_grid.scss", - "../../../../../../scss/mixins/_pulls.scss" + "../scss/docs.scss", + "../../../scss/_variables.scss", + "../../../scss/_mixins.scss", + "../scss/_layout.scss", + "../scss/_sidebar.scss", + "../scss/_booticon.scss", + "../scss/_homepage.scss", + "../scss/_ads.scss", + "../scss/_footer.scss", + "../scss/_social-buttons.scss", + "../scss/_page-header.scss", + "../scss/_component-examples.scss", + "../scss/_responsive-tests.scss", + "../scss/_buttons.scss", + "../scss/_callouts.scss", + "../scss/_examples.scss", + "../scss/_team.scss", + "../scss/_browser-bugs.scss", + "../scss/_brand.scss", + "../scss/_zeroclipboard.scss", + "../scss/_syntax.scss", + "../scss/_anchor.scss", + "../../../scss/mixins/_breakpoints.scss", + "../../../scss/mixins/_hide-text.scss", + "../../../scss/mixins/_hover.scss", + "../../../scss/mixins/_image.scss", + "../../../scss/mixins/_label.scss", + "../../../scss/mixins/_reset-filter.scss", + "../../../scss/mixins/_resize.scss", + "../../../scss/mixins/_responsive-visibility.scss", + "../../../scss/mixins/_screen-reader.scss", + "../../../scss/mixins/_size.scss", + "../../../scss/mixins/_tab-focus.scss", + "../../../scss/mixins/_text-emphasis.scss", + "../../../scss/mixins/_text-truncate.scss", + "../../../scss/mixins/_alert.scss", + "../../../scss/mixins/_buttons.scss", + "../../../scss/mixins/_pagination.scss", + "../../../scss/mixins/_list-group.scss", + "../../../scss/mixins/_nav-divider.scss", + "../../../scss/mixins/_forms.scss", + "../../../scss/mixins/_progress.scss", + "../../../scss/mixins/_table-row.scss", + "../../../scss/mixins/_background-variant.scss", + "../../../scss/mixins/_border-radius.scss", + "../../../scss/mixins/_gradients.scss", + "../../../scss/mixins/_clearfix.scss", + "../../../scss/mixins/_center-block.scss", + "../../../scss/mixins/_grid-framework.scss", + "../../../scss/mixins/_grid.scss", + "../../../scss/mixins/_pulls.scss" ], "sourcesContent": [], - "mappings": "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", + "mappings": "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", "names": [] } \ No newline at end of file diff --git a/grunt/bs-commonjs-generator.js b/grunt/bs-commonjs-generator.js index 5a3fc156d1..700b839ce0 100644 --- a/grunt/bs-commonjs-generator.js +++ b/grunt/bs-commonjs-generator.js @@ -9,8 +9,7 @@ module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) var destDir = path.dirname(destFilepath); function srcPathToDestRequire(srcFilepath) { - var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/'); - return 'require(\'' + requirePath + '\')'; + return 'require(\'' + srcFilepath + '\')'; } var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); diff --git a/js/.jscsrc b/js/.jscsrc index 9544d2d2b5..8d5ef3e569 100644 --- a/js/.jscsrc +++ b/js/.jscsrc @@ -1,4 +1,5 @@ { + "esnext": true, "disallowEmptyBlocks": true, "disallowKeywords": ["with"], "disallowMixedSpacesAndTabs": true, diff --git a/js/.jshintrc b/js/.jshintrc deleted file mode 100644 index a59e1d00a1..0000000000 --- a/js/.jshintrc +++ /dev/null @@ -1,15 +0,0 @@ -{ - "asi" : true, - "browser" : true, - "eqeqeq" : false, - "eqnull" : true, - "es3" : true, - "expr" : true, - "jquery" : true, - "latedef" : true, - "laxbreak" : true, - "nonbsp" : true, - "strict" : true, - "undef" : true, - "unused" : true -} diff --git a/js/affix.js b/js/affix.js deleted file mode 100644 index 9997379123..0000000000 --- a/js/affix.js +++ /dev/null @@ -1,162 +0,0 @@ -/* ======================================================================== - * Bootstrap: affix.js v3.3.4 - * http://getbootstrap.com/javascript/#affix - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // AFFIX CLASS DEFINITION - // ====================== - - var Affix = function (element, options) { - this.options = $.extend({}, Affix.DEFAULTS, options) - - this.$target = $(this.options.target) - .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) - .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) - - this.$element = $(element) - this.affixed = null - this.unpin = null - this.pinnedOffset = null - - this.checkPosition() - } - - Affix.VERSION = '3.3.4' - - Affix.RESET = 'affix affix-top affix-bottom' - - Affix.DEFAULTS = { - offset: 0, - target: window - } - - Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - var targetHeight = this.$target.height() - - if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false - - if (this.affixed == 'bottom') { - if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' - return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' - } - - var initializing = this.affixed == null - var colliderTop = initializing ? scrollTop : position.top - var colliderHeight = initializing ? targetHeight : height - - if (offsetTop != null && scrollTop <= offsetTop) return 'top' - if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' - - return false - } - - Affix.prototype.getPinnedOffset = function () { - if (this.pinnedOffset) return this.pinnedOffset - this.$element.removeClass(Affix.RESET).addClass('affix') - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - return (this.pinnedOffset = position.top - scrollTop) - } - - Affix.prototype.checkPositionWithEventLoop = function () { - setTimeout($.proxy(this.checkPosition, this), 1) - } - - Affix.prototype.checkPosition = function () { - if (!this.$element.is(':visible')) return - - var height = this.$element.height() - var offset = this.options.offset - var offsetTop = offset.top - var offsetBottom = offset.bottom - var scrollHeight = Math.max($(document).height(), $(document.body).height()) - - if (typeof offset != 'object') offsetBottom = offsetTop = offset - if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) - if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) - - var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) - - if (this.affixed != affix) { - if (this.unpin != null) this.$element.css('top', '') - - var affixType = 'affix' + (affix ? '-' + affix : '') - var e = $.Event(affixType + '.bs.affix') - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - this.affixed = affix - this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null - - this.$element - .removeClass(Affix.RESET) - .addClass(affixType) - .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') - } - - if (affix == 'bottom') { - this.$element.offset({ - top: scrollHeight - height - offsetBottom - }) - } - } - - - // AFFIX PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.affix') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.affix', (data = new Affix(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.affix - - $.fn.affix = Plugin - $.fn.affix.Constructor = Affix - - - // AFFIX NO CONFLICT - // ================= - - $.fn.affix.noConflict = function () { - $.fn.affix = old - return this - } - - - // AFFIX DATA-API - // ============== - - $(window).on('load', function () { - $('[data-spy="affix"]').each(function () { - var $spy = $(this) - var data = $spy.data() - - data.offset = data.offset || {} - - if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom - if (data.offsetTop != null) data.offset.top = data.offsetTop - - Plugin.call($spy, data) - }) - }) - -}(jQuery); diff --git a/js/alert.js b/js/alert.js deleted file mode 100644 index 1925ef011c..0000000000 --- a/js/alert.js +++ /dev/null @@ -1,94 +0,0 @@ -/* ======================================================================== - * Bootstrap: alert.js v3.3.4 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.VERSION = '3.3.4' - - Alert.TRANSITION_DURATION = 150 - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.closest('.alert') - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - // detach from parent, fire event then clean up data - $parent.detach().trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one('bsTransitionEnd', removeElement) - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.alert - - $.fn.alert = Plugin - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); diff --git a/js/button.js b/js/button.js deleted file mode 100644 index 3e2e345127..0000000000 --- a/js/button.js +++ /dev/null @@ -1,120 +0,0 @@ -/* ======================================================================== - * Bootstrap: button.js v3.3.4 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.VERSION = '3.3.4' - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state += 'Text' - - if (data.resetText == null) $el.data('resetText', $el[val]()) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - $el[val](data[state] == null ? this.options[state] : data[state]) - - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d) - } - }, this), 0) - } - - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked')) changed = false - $parent.find('.active').removeClass('active') - this.$element.addClass('active') - } else if ($input.prop('type') == 'checkbox') { - if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false - this.$element.toggleClass('active') - } - $input.prop('checked', this.$element.hasClass('active')) - if (changed) $input.trigger('change') - } else { - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) - this.$element.toggleClass('active') - } - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - var old = $.fn.button - - $.fn.button = Plugin - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - // BUTTON DATA-API - // =============== - - $(document) - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - Plugin.call($btn, 'toggle') - if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault() - }) - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) - }) - -}(jQuery); diff --git a/js/carousel.js b/js/carousel.js deleted file mode 100644 index a38ef14d0b..0000000000 --- a/js/carousel.js +++ /dev/null @@ -1,237 +0,0 @@ -/* ======================================================================== - * Bootstrap: carousel.js v3.3.4 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = null - this.sliding = null - this.interval = null - this.$active = null - this.$items = null - - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) - - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) - } - - Carousel.VERSION = '3.3.4' - - Carousel.TRANSITION_DURATION = 600 - - Carousel.DEFAULTS = { - interval: 5000, - pause: 'hover', - wrap: true, - keyboard: true - } - - Carousel.prototype.keydown = function (e) { - if (/input|textarea/i.test(e.target.tagName)) return - switch (e.which) { - case 37: this.prev(); break - case 39: this.next(); break - default: return - } - - e.preventDefault() - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getItemIndex = function (item) { - this.$items = item.parent().children('.item') - return this.$items.index(item || this.$active) - } - - Carousel.prototype.getItemForDirection = function (direction, active) { - var activeIndex = this.getItemIndex(active) - var willWrap = (direction == 'prev' && activeIndex === 0) - || (direction == 'next' && activeIndex == (this.$items.length - 1)) - if (willWrap && !this.options.wrap) return active - var delta = direction == 'prev' ? -1 : 1 - var itemIndex = (activeIndex + delta) % this.$items.length - return this.$items.eq(itemIndex) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || this.getItemForDirection(type, $active) - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var that = this - - if ($next.hasClass('active')) return (this.sliding = false) - - var relatedTarget = $next[0] - var slideEvent = $.Event('slide.bs.carousel', { - relatedTarget: relatedTarget, - direction: direction - }) - this.$element.trigger(slideEvent) - if (slideEvent.isDefaultPrevented()) return - - this.sliding = true - - isCycling && this.pause() - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) - $nextIndicator && $nextIndicator.addClass('active') - } - - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one('bsTransitionEnd', function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { - that.$element.trigger(slidEvent) - }, 0) - }) - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger(slidEvent) - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - var old = $.fn.carousel - - $.fn.carousel = Plugin - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - var clickHandler = function (e) { - var href - var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 - if (!$target.hasClass('carousel')) return - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - Plugin.call($target, options) - - if (slideIndex) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - } - - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - Plugin.call($carousel, $carousel.data()) - }) - }) - -}(jQuery); diff --git a/js/collapse.js b/js/collapse.js deleted file mode 100644 index 954513c5e1..0000000000 --- a/js/collapse.js +++ /dev/null @@ -1,211 +0,0 @@ -/* ======================================================================== - * Bootstrap: collapse.js v3.3.4 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + - '[data-toggle="collapse"][data-target="#' + element.id + '"]') - this.transitioning = null - - if (this.options.parent) { - this.$parent = this.getParent() - } else { - this.addAriaAndCollapsedClass(this.$element, this.$trigger) - } - - if (this.options.toggle) this.toggle() - } - - Collapse.VERSION = '3.3.4' - - Collapse.TRANSITION_DURATION = 350 - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var activesData - var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') - - if (actives && actives.length) { - activesData = actives.data('bs.collapse') - if (activesData && activesData.transitioning) return - } - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - if (actives && actives.length) { - Plugin.call(actives, 'hide') - activesData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - .attr('aria-expanded', true) - - this.$trigger - .removeClass('collapsed') - .attr('aria-expanded', true) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in')[dimension]('') - this.transitioning = 0 - this.$element - .trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse in') - .attr('aria-expanded', false) - - this.$trigger - .addClass('collapsed') - .attr('aria-expanded', false) - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .removeClass('collapsing') - .addClass('collapse') - .trigger('hidden.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - Collapse.prototype.getParent = function () { - return $(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each($.proxy(function (i, element) { - var $element = $(element) - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) - }, this)) - .end() - } - - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { - var isOpen = $element.hasClass('in') - - $element.attr('aria-expanded', isOpen) - $trigger - .toggleClass('collapsed', !isOpen) - .attr('aria-expanded', isOpen) - } - - function getTargetFromTrigger($trigger) { - var href - var target = $trigger.attr('data-target') - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - - return $(target) - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.collapse - - $.fn.collapse = Plugin - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { - var $this = $(this) - - if (!$this.attr('data-target')) e.preventDefault() - - var $target = getTargetFromTrigger($this) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - - Plugin.call($target, option) - }) - -}(jQuery); diff --git a/js/dist/alert.js b/js/dist/alert.js new file mode 100644 index 0000000000..876a5f3d04 --- /dev/null +++ b/js/dist/alert.js @@ -0,0 +1,192 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Alert = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'alert'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.alert'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var Selector = { + DISMISS: '[data-dismiss="alert"]' + }; + + var Event = { + CLOSE: 'close' + EVENT_KEY, + CLOSED: 'closed' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + ALERT: 'alert', + FADE: 'fade', + IN: 'in' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Alert = (function () { + function Alert(element) { + _classCallCheck(this, Alert); + + this._element = element; + } + + _createClass(Alert, [{ + key: 'close', + + // public + + value: function close(element) { + element = element || this._element; + + var rootElement = this._getRootElement(element); + var customEvent = this._triggerCloseEvent(rootElement); + + if (customEvent.isDefaultPrevented()) { + return; + } + + this._removeElement(rootElement); + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + this._element = null; + } + }, { + key: '_getRootElement', + + // private + + value: function _getRootElement(element) { + var parent = false; + var selector = Util.getSelectorFromElement(element); + + if (selector) { + parent = $(selector)[0]; + } + + if (!parent) { + parent = $(element).closest('.' + ClassName.ALERT)[0]; + } + + return parent; + } + }, { + key: '_triggerCloseEvent', + value: function _triggerCloseEvent(element) { + var closeEvent = $.Event(Event.CLOSE); + $(element).trigger(closeEvent); + return closeEvent; + } + }, { + key: '_removeElement', + value: function _removeElement(element) { + $(element).removeClass(ClassName.IN); + + if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) { + this._destroyElement(element); + return; + } + + $(element).one(Util.TRANSITION_END, this._destroyElement.bind(this, element)).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: '_destroyElement', + value: function _destroyElement(element) { + $(element).detach().trigger(Event.CLOSED).remove(); + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var $element = $(this); + var data = $element.data(DATA_KEY); + + if (!data) { + data = new Alert(this); + $element.data(DATA_KEY, data); + } + + if (config === 'close') { + data[config](this); + } + }); + } + }, { + key: '_handleDismiss', + value: function _handleDismiss(alertInstance) { + return function (event) { + if (event) { + event.preventDefault(); + } + + alertInstance.close(this); + }; + } + }]); + + return Alert; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Alert._jQueryInterface; + $.fn[NAME].Constructor = Alert; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Alert._jQueryInterface; + }; + + return Alert; +})(jQuery); +//# sourceMappingURL=alert.js.map \ No newline at end of file diff --git a/js/dist/alert.js.map b/js/dist/alert.js.map new file mode 100644 index 0000000000..a030fb73c8 --- /dev/null +++ b/js/dist/alert.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/alert.js"],"names":[],"mappings":"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","file":"js/src/alert.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n IN : 'in'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n close(element) {\n element = element || this._element\n\n let rootElement = this._getRootElement(element)\n let customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n\n // private\n\n _getRootElement(element) {\n let parent = false\n let selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n var closeEvent = $.Event(Event.CLOSE)\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.IN)\n\n if (!Util.supportsTransitionEnd() ||\n !$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n $(element)\n .one(Util.TRANSITION_END, this._destroyElement.bind(this, element))\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n\n})(jQuery)\n\nexport default Alert\n"]} \ No newline at end of file diff --git a/js/dist/button.js b/js/dist/button.js new file mode 100644 index 0000000000..fe6cfe9818 --- /dev/null +++ b/js/dist/button.js @@ -0,0 +1,174 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Button = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'button'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.button'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var ClassName = { + ACTIVE: 'active', + BUTTON: 'btn', + FOCUS: 'focus' + }; + + var Selector = { + DATA_TOGGLE_CARROT: '[data-toggle^="button"]', + DATA_TOGGLE: '[data-toggle="buttons"]', + INPUT: 'input', + ACTIVE: '.active', + BUTTON: '.btn' + }; + + var Event = { + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY, + FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + '' + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + '' + DATA_API_KEY) + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Button = (function () { + function Button(element) { + _classCallCheck(this, Button); + + this._element = element; + } + + _createClass(Button, [{ + key: 'toggle', + + // public + + value: function toggle() { + var triggerChangeEvent = true; + var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0]; + + if (rootElement) { + var input = $(this._element).find(Selector.INPUT)[0]; + + if (input) { + if (input.type === 'radio') { + if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) { + triggerChangeEvent = false; + } else { + var activeElement = $(rootElement).find(Selector.ACTIVE)[0]; + + if (activeElement) { + $(activeElement).removeClass(ClassName.ACTIVE); + } + } + } + + if (triggerChangeEvent) { + input.checked = !$(this._element).hasClass(ClassName.ACTIVE); + $(this._element).trigger('change'); + } + } + } else { + this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE)); + } + + if (triggerChangeEvent) { + $(this._element).toggleClass(ClassName.ACTIVE); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + this._element = null; + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + + if (!data) { + data = new Button(this); + $(this).data(DATA_KEY, data); + } + + if (config === 'toggle') { + data[config](); + } + }); + } + }]); + + return Button; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + event.preventDefault(); + + var button = event.target; + + if (!$(button).hasClass(ClassName.BUTTON)) { + button = $(button).closest(Selector.BUTTON); + } + + Button._jQueryInterface.call($(button), 'toggle'); + }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + var button = $(event.target).closest(Selector.BUTTON)[0]; + $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Button._jQueryInterface; + $.fn[NAME].Constructor = Button; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Button._jQueryInterface; + }; + + return Button; +})(jQuery); +//# sourceMappingURL=button.js.map \ No newline at end of file diff --git a/js/dist/button.js.map b/js/dist/button.js.map new file mode 100644 index 0000000000..109755be80 --- /dev/null +++ b/js/dist/button.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/button.js"],"names":[],"mappings":"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","file":"js/src/button.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n + `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n toggle() {\n let triggerChangeEvent = true\n let rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n let input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n\n } else {\n let activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(this._element).trigger('change')\n }\n }\n } else {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\n var button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n\n})(jQuery)\n\nexport default Button\n"]} \ No newline at end of file diff --git a/js/dist/carousel.js b/js/dist/carousel.js new file mode 100644 index 0000000000..029c69fdba --- /dev/null +++ b/js/dist/carousel.js @@ -0,0 +1,466 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Carousel = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'carousel'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.carousel'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 600; + + var Default = { + interval: 5000, + keyboard: true, + slide: false, + pause: 'hover', + wrap: true + }; + + var DefaultType = { + interval: '(number|boolean)', + keyboard: 'boolean', + slide: '(boolean|string)', + pause: '(string|boolean)', + wrap: 'boolean' + }; + + var Direction = { + NEXT: 'next', + PREVIOUS: 'prev' + }; + + var Event = { + SLIDE: 'slide' + EVENT_KEY, + SLID: 'slid' + EVENT_KEY, + KEYDOWN: 'keydown' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY, + LOAD_DATA_API: 'load' + EVENT_KEY + '' + DATA_API_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + CAROUSEL: 'carousel', + ACTIVE: 'active', + SLIDE: 'slide', + RIGHT: 'right', + LEFT: 'left', + ITEM: 'carousel-item' + }; + + var Selector = { + ACTIVE: '.active', + ACTIVE_ITEM: '.active.carousel-item', + ITEM: '.carousel-item', + NEXT_PREV: '.next, .prev', + INDICATORS: '.carousel-indicators', + DATA_SLIDE: '[data-slide], [data-slide-to]', + DATA_RIDE: '[data-ride="carousel"]' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Carousel = (function () { + function Carousel(element, config) { + _classCallCheck(this, Carousel); + + this._items = null; + this._interval = null; + this._activeElement = null; + + this._isPaused = false; + this._isSliding = false; + + this._config = this._getConfig(config); + this._element = $(element)[0]; + this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]; + + this._addEventListeners(); + } + + _createClass(Carousel, [{ + key: 'next', + + // public + + value: function next() { + if (!this._isSliding) { + this._slide(Direction.NEXT); + } + } + }, { + key: 'prev', + value: function prev() { + if (!this._isSliding) { + this._slide(Direction.PREVIOUS); + } + } + }, { + key: 'pause', + value: function pause(event) { + if (!event) { + this._isPaused = true; + } + + if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) { + Util.triggerTransitionEnd(this._element); + this.cycle(true); + } + + clearInterval(this._interval); + this._interval = null; + } + }, { + key: 'cycle', + value: function cycle(event) { + if (!event) { + this._isPaused = false; + } + + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + + if (this._config.interval && !this._isPaused) { + this._interval = setInterval($.proxy(this.next, this), this._config.interval); + } + } + }, { + key: 'to', + value: function to(index) { + var _this = this; + + this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + + var activeIndex = this._getItemIndex(this._activeElement); + + if (index > this._items.length - 1 || index < 0) { + return; + } + + if (this._isSliding) { + $(this._element).one(Event.SLID, function () { + return _this.to(index); + }); + return; + } + + if (activeIndex == index) { + this.pause(); + this.cycle(); + return; + } + + var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS; + + this._slide(direction, this._items[index]); + } + }, { + key: 'dispose', + value: function dispose() { + $(this._element).off(EVENT_KEY); + $.removeData(this._element, DATA_KEY); + + this._items = null; + this._config = null; + this._element = null; + this._interval = null; + this._isPaused = null; + this._isSliding = null; + this._activeElement = null; + this._indicatorsElement = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_addEventListeners', + value: function _addEventListeners() { + if (this._config.keyboard) { + $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this)); + } + + if (this._config.pause == 'hover' && !('ontouchstart' in document.documentElement)) { + $(this._element).on(Event.MOUSEENTER, $.proxy(this.pause, this)).on(Event.MOUSELEAVE, $.proxy(this.cycle, this)); + } + } + }, { + key: '_keydown', + value: function _keydown(event) { + event.preventDefault(); + + if (/input|textarea/i.test(event.target.tagName)) return; + + switch (event.which) { + case 37: + this.prev();break; + case 39: + this.next();break; + default: + return; + } + } + }, { + key: '_getItemIndex', + value: function _getItemIndex(element) { + this._items = $.makeArray($(element).parent().find(Selector.ITEM)); + return this._items.indexOf(element); + } + }, { + key: '_getItemByDirection', + value: function _getItemByDirection(direction, activeElement) { + var isNextDirection = direction === Direction.NEXT; + var isPrevDirection = direction === Direction.PREVIOUS; + var activeIndex = this._getItemIndex(activeElement); + var lastItemIndex = this._items.length - 1; + var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex == lastItemIndex; + + if (isGoingToWrap && !this._config.wrap) { + return activeElement; + } + + var delta = direction == Direction.PREVIOUS ? -1 : 1; + var itemIndex = (activeIndex + delta) % this._items.length; + + return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; + } + }, { + key: '_triggerSlideEvent', + value: function _triggerSlideEvent(relatedTarget, directionalClassname) { + var slideEvent = $.Event(Event.SLIDE, { + relatedTarget: relatedTarget, + direction: directionalClassname + }); + + $(this._element).trigger(slideEvent); + + return slideEvent; + } + }, { + key: '_setActiveIndicatorElement', + value: function _setActiveIndicatorElement(element) { + if (this._indicatorsElement) { + $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE); + + var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; + + if (nextIndicator) { + $(nextIndicator).addClass(ClassName.ACTIVE); + } + } + } + }, { + key: '_slide', + value: function _slide(direction, element) { + var _this2 = this; + + var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + + var isCycling = !!this._interval; + + var directionalClassName = direction == Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT; + + if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) { + this._isSliding = false; + return; + } + + var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName); + if (slideEvent.isDefaultPrevented()) { + return; + } + + if (!activeElement || !nextElement) { + // some weirdness is happening, so we bail + return; + } + + this._isSliding = true; + + if (isCycling) { + this.pause(); + } + + this._setActiveIndicatorElement(nextElement); + + var slidEvent = $.Event(Event.SLID, { + relatedTarget: nextElement, + direction: directionalClassName + }); + + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { + + $(nextElement).addClass(direction); + + Util.reflow(nextElement); + + $(activeElement).addClass(directionalClassName); + $(nextElement).addClass(directionalClassName); + + $(activeElement).one(Util.TRANSITION_END, function () { + $(nextElement).removeClass(directionalClassName).removeClass(direction); + + $(nextElement).addClass(ClassName.ACTIVE); + + $(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName); + + _this2._isSliding = false; + + setTimeout(function () { + return $(_this2._element).trigger(slidEvent); + }, 0); + }).emulateTransitionEnd(TRANSITION_DURATION); + } else { + $(activeElement).removeClass(ClassName.ACTIVE); + $(nextElement).addClass(ClassName.ACTIVE); + + this._isSliding = false; + $(this._element).trigger(slidEvent); + } + + if (isCycling) { + this.cycle(); + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = $.extend({}, Default, $(this).data()); + + if (typeof config === 'object') { + $.extend(_config, config); + } + + var action = typeof config === 'string' ? config : _config.slide; + + if (!data) { + data = new Carousel(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config == 'number') { + data.to(config); + } else if (action) { + data[action](); + } else if (_config.interval) { + data.pause(); + data.cycle(); + } + }); + } + }, { + key: '_dataApiClickHandler', + value: function _dataApiClickHandler(event) { + var selector = Util.getSelectorFromElement(this); + + if (!selector) { + return; + } + + var target = $(selector)[0]; + + if (!target || !$(target).hasClass(ClassName.CAROUSEL)) { + return; + } + + var config = $.extend({}, $(target).data(), $(this).data()); + + var slideIndex = this.getAttribute('data-slide-to'); + if (slideIndex) { + config.interval = false; + } + + Carousel._jQueryInterface.call($(target), config); + + if (slideIndex) { + $(target).data(DATA_KEY).to(slideIndex); + } + + event.preventDefault(); + } + }]); + + return Carousel; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler); + + $(window).on(Event.LOAD_DATA_API, function () { + $(Selector.DATA_RIDE).each(function () { + var $carousel = $(this); + Carousel._jQueryInterface.call($carousel, $carousel.data()); + }); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Carousel._jQueryInterface; + $.fn[NAME].Constructor = Carousel; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Carousel._jQueryInterface; + }; + + return Carousel; +})(jQuery); +//# sourceMappingURL=carousel.js.map \ No newline at end of file diff --git a/js/dist/carousel.js.map b/js/dist/carousel.js.map new file mode 100644 index 0000000000..0978f4836f --- /dev/null +++ b/js/dist/carousel.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/carousel.js"],"names":[],"mappings":"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","file":"js/src/carousel.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREVIOUS : 'prev'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'right',\n LEFT : 'left',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.next, .prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREVIOUS)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n $.proxy(this.next, this), this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n let activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > (this._items.length - 1) || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex == index) {\n this.pause()\n this.cycle()\n return\n }\n\n var direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREVIOUS\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, $.proxy(this._keydown, this))\n }\n\n if (this._config.pause == 'hover' &&\n !('ontouchstart' in document.documentElement)) {\n $(this._element)\n .on(Event.MOUSEENTER, $.proxy(this.pause, this))\n .on(Event.MOUSELEAVE, $.proxy(this.cycle, this))\n }\n }\n\n _keydown(event) {\n event.preventDefault()\n\n if (/input|textarea/i.test(event.target.tagName)) return\n\n switch (event.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n let isNextDirection = direction === Direction.NEXT\n let isPrevDirection = direction === Direction.PREVIOUS\n let activeIndex = this._getItemIndex(activeElement)\n let lastItemIndex = (this._items.length - 1)\n let isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex == lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n let delta = direction == Direction.PREVIOUS ? -1 : 1\n let itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n\n _triggerSlideEvent(relatedTarget, directionalClassname) {\n let slideEvent = $.Event(Event.SLIDE, {\n relatedTarget: relatedTarget,\n direction: directionalClassname\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n let nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n let activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n let nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n let isCycling = !!this._interval\n\n let directionalClassName = direction == Direction.NEXT ?\n ClassName.LEFT :\n ClassName.RIGHT\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n let slideEvent = this._triggerSlideEvent(nextElement, directionalClassName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n var slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: directionalClassName\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n\n $(nextElement).addClass(direction)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(directionalClassName)\n .removeClass(direction)\n\n $(nextElement).addClass(ClassName.ACTIVE)\n\n $(activeElement)\n .removeClass(ClassName.ACTIVE)\n .removeClass(direction)\n .removeClass(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n })\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = $.extend({}, Default, $(this).data())\n\n if (typeof config === 'object') {\n $.extend(_config, config)\n }\n\n let action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config == 'number') {\n data.to(config)\n\n } else if (action) {\n data[action]()\n\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n let selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n let target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n let config = $.extend({}, $(target).data(), $(this).data())\n\n let slideIndex = this.getAttribute('data-slide-to')\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, function () {\n $(Selector.DATA_RIDE).each(function () {\n let $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n\n})(jQuery)\n\nexport default Carousel\n"]} \ No newline at end of file diff --git a/js/dist/collapse.js b/js/dist/collapse.js new file mode 100644 index 0000000000..9db1b8e603 --- /dev/null +++ b/js/dist/collapse.js @@ -0,0 +1,361 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Collapse = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'collapse'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.collapse'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 600; + + var Default = { + toggle: true, + parent: '' + }; + + var DefaultType = { + toggle: 'boolean', + parent: 'string' + }; + + var Event = { + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + IN: 'in', + COLLAPSE: 'collapse', + COLLAPSING: 'collapsing', + COLLAPSED: 'collapsed' + }; + + var Dimension = { + WIDTH: 'width', + HEIGHT: 'height' + }; + + var Selector = { + ACTIVES: '.panel > .in, .panel > .collapsing', + DATA_TOGGLE: '[data-toggle="collapse"]' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Collapse = (function () { + function Collapse(element, config) { + _classCallCheck(this, Collapse); + + this._isTransitioning = false; + this._element = element; + this._config = this._getConfig(config); + this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]'))); + + this._parent = this._config.parent ? this._getParent() : null; + + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray); + } + + if (this._config.toggle) { + this.toggle(); + } + } + + _createClass(Collapse, [{ + key: 'toggle', + + // public + + value: function toggle() { + if ($(this._element).hasClass(ClassName.IN)) { + this.hide(); + } else { + this.show(); + } + } + }, { + key: 'show', + value: function show() { + var _this = this; + + if (this._isTransitioning || $(this._element).hasClass(ClassName.IN)) { + return; + } + + var actives = undefined; + var activesData = undefined; + + if (this._parent) { + actives = $.makeArray($(Selector.ACTIVES)); + if (!actives.length) { + actives = null; + } + } + + if (actives) { + activesData = $(actives).data(DATA_KEY); + if (activesData && activesData._isTransitioning) { + return; + } + } + + var startEvent = $.Event(Event.SHOW); + $(this._element).trigger(startEvent); + if (startEvent.isDefaultPrevented()) { + return; + } + + if (actives) { + Collapse._jQueryInterface.call($(actives), 'hide'); + if (!activesData) { + $(actives).data(DATA_KEY, null); + } + } + + var dimension = this._getDimension(); + + $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); + + this._element.style[dimension] = 0; + this._element.setAttribute('aria-expanded', true); + + if (this._triggerArray.length) { + $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); + } + + this.setTransitioning(true); + + var complete = function complete() { + $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.IN); + + _this._element.style[dimension] = ''; + + _this.setTransitioning(false); + + $(_this._element).trigger(Event.SHOWN); + }; + + if (!Util.supportsTransitionEnd()) { + complete(); + return; + } + + var scrollSize = 'scroll' + (dimension[0].toUpperCase() + dimension.slice(1)); + + $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + + this._element.style[dimension] = this._element[scrollSize] + 'px'; + } + }, { + key: 'hide', + value: function hide() { + var _this2 = this; + + if (this._isTransitioning || !$(this._element).hasClass(ClassName.IN)) { + return; + } + + var startEvent = $.Event(Event.HIDE); + $(this._element).trigger(startEvent); + if (startEvent.isDefaultPrevented()) { + return; + } + + var dimension = this._getDimension(); + var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight'; + + this._element.style[dimension] = this._element[offsetDimension] + 'px'; + + Util.reflow(this._element); + + $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.IN); + + this._element.setAttribute('aria-expanded', false); + + if (this._triggerArray.length) { + $(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false); + } + + this.setTransitioning(true); + + var complete = function complete() { + _this2.setTransitioning(false); + $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); + }; + + this._element.style[dimension] = 0; + + if (!Util.supportsTransitionEnd()) { + return complete(); + } + + $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: 'setTransitioning', + value: function setTransitioning(isTransitioning) { + this._isTransitioning = isTransitioning; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + + this._config = null; + this._parent = null; + this._element = null; + this._triggerArray = null; + this._isTransitioning = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + config.toggle = !!config.toggle; // coerce string values + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_getDimension', + value: function _getDimension() { + var hasWidth = $(this._element).hasClass(Dimension.WIDTH); + return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; + } + }, { + key: '_getParent', + value: function _getParent() { + var _this3 = this; + + var parent = $(this._config.parent)[0]; + var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]'; + + $(parent).find(selector).each(function (i, element) { + _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); + }); + + return parent; + } + }, { + key: '_addAriaAndCollapsedClass', + value: function _addAriaAndCollapsedClass(element, triggerArray) { + if (element) { + var isOpen = $(element).hasClass(ClassName.IN); + element.setAttribute('aria-expanded', isOpen); + + if (triggerArray.length) { + $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); + } + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_getTargetFromElement', + + // static + + value: function _getTargetFromElement(element) { + var selector = Util.getSelectorFromElement(element); + return selector ? $(selector)[0] : null; + } + }, { + key: '_jQueryInterface', + value: function _jQueryInterface(config) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DATA_KEY); + var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config); + + if (!data && _config.toggle && /show|hide/.test(config)) { + _config.toggle = false; + } + + if (!data) { + data = new Collapse(this, _config); + $this.data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Collapse; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault(); + + var target = Collapse._getTargetFromElement(this); + + var data = $(target).data(DATA_KEY); + var config = data ? 'toggle' : $(this).data(); + + Collapse._jQueryInterface.call($(target), config); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Collapse._jQueryInterface; + $.fn[NAME].Constructor = Collapse; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Collapse._jQueryInterface; + }; + + return Collapse; +})(jQuery); +//# sourceMappingURL=collapse.js.map \ No newline at end of file diff --git a/js/dist/collapse.js.map b/js/dist/collapse.js.map new file mode 100644 index 0000000000..abd2bac68a --- /dev/null +++ b/js/dist/collapse.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/collapse.js"],"names":[],"mappings":"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","file":"js/src/collapse.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : 'string'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n IN : 'in',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.panel > .in, .panel > .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.IN)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.IN)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray($(Selector.ACTIVES))\n if (!actives.length) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n let startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n let dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n this._element.setAttribute('aria-expanded', true)\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n let complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.IN)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n let scrollSize = 'scroll'\n + (dimension[0].toUpperCase()\n + dimension.slice(1))\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = this._element[scrollSize] + 'px'\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.IN)) {\n return\n }\n\n let startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n let dimension = this._getDimension()\n let offsetDimension = dimension === Dimension.WIDTH ?\n 'offsetWidth' : 'offsetHeight'\n\n this._element.style[dimension] = this._element[offsetDimension] + 'px'\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.IN)\n\n this._element.setAttribute('aria-expanded', false)\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n\n this.setTransitioning(true)\n\n let complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = 0\n\n if (!Util.supportsTransitionEnd()) {\n return complete()\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n config.toggle = !!config.toggle // coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n let hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = $(this._config.parent)[0]\n let selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n let isOpen = $(element).hasClass(ClassName.IN)\n element.setAttribute('aria-expanded', isOpen)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n\n // static\n\n static _getTargetFromElement(element) {\n let selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let $this = $(this)\n let data = $this.data(DATA_KEY)\n let _config = $.extend(\n {},\n Default,\n $this.data(),\n typeof config === 'object' && config\n )\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n let target = Collapse._getTargetFromElement(this)\n\n let data = $(target).data(DATA_KEY)\n let config = data ? 'toggle' : $(this).data()\n\n Collapse._jQueryInterface.call($(target), config)\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n\n})(jQuery)\n\nexport default Collapse\n"]} \ No newline at end of file diff --git a/js/dist/dropdown.js b/js/dist/dropdown.js new file mode 100644 index 0000000000..2ab5cf700d --- /dev/null +++ b/js/dist/dropdown.js @@ -0,0 +1,281 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Dropdown = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'dropdown'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.dropdown'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY, + KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + BACKDROP: 'dropdown-backdrop', + DISABLED: 'disabled', + OPEN: 'open' + }; + + var Selector = { + BACKDROP: '.dropdown-backdrop', + DATA_TOGGLE: '[data-toggle="dropdown"]', + FORM_CHILD: '.dropdown form', + ROLE_MENU: '[role="menu"]', + ROLE_LISTBOX: '[role="listbox"]', + NAVBAR_NAV: '.navbar-nav', + VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Dropdown = (function () { + function Dropdown(element) { + _classCallCheck(this, Dropdown); + + this._element = element; + + this._addEventListeners(); + } + + _createClass(Dropdown, [{ + key: 'toggle', + + // public + + value: function toggle() { + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this); + var isActive = $(parent).hasClass(ClassName.OPEN); + + Dropdown._clearMenus(); + + if (isActive) { + return false; + } + + if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) { + + // if mobile we use a backdrop because click events don't delegate + var dropdown = document.createElement('div'); + dropdown.className = ClassName.BACKDROP; + $(dropdown).insertBefore(this); + $(dropdown).on('click', Dropdown._clearMenus); + } + + var relatedTarget = { relatedTarget: this }; + var showEvent = $.Event(Event.SHOW, relatedTarget); + + $(parent).trigger(showEvent); + + if (showEvent.isDefaultPrevented()) { + return; + } + + this.focus(); + this.setAttribute('aria-expanded', 'true'); + + $(parent).toggleClass(ClassName.OPEN); + $(parent).trigger(Event.SHOWN, relatedTarget); + + return false; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._element).off(EVENT_KEY); + this._element = null; + } + }, { + key: '_addEventListeners', + + // private + + value: function _addEventListeners() { + $(this._element).on(Event.CLICK, this.toggle); + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + + if (!data) { + $(this).data(DATA_KEY, data = new Dropdown(this)); + } + + if (typeof config === 'string') { + data[config].call(this); + } + }); + } + }, { + key: '_clearMenus', + value: function _clearMenus(event) { + if (event && event.which === 3) { + return; + } + + var backdrop = $(Selector.BACKDROP)[0]; + if (backdrop) { + backdrop.parentNode.removeChild(backdrop); + } + + var toggles = $.makeArray($(Selector.DATA_TOGGLE)); + + for (var i = 0; i < toggles.length; i++) { + var _parent = Dropdown._getParentFromElement(toggles[i]); + var relatedTarget = { relatedTarget: toggles[i] }; + + if (!$(_parent).hasClass(ClassName.OPEN)) { + continue; + } + + if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(_parent, event.target)) { + continue; + } + + var hideEvent = $.Event(Event.HIDE, relatedTarget); + $(_parent).trigger(hideEvent); + if (hideEvent.isDefaultPrevented()) { + continue; + } + + toggles[i].setAttribute('aria-expanded', 'false'); + + $(_parent).removeClass(ClassName.OPEN).trigger(Event.HIDDEN, relatedTarget); + } + } + }, { + key: '_getParentFromElement', + value: function _getParentFromElement(element) { + var parent = undefined; + var selector = Util.getSelectorFromElement(element); + + if (selector) { + parent = $(selector)[0]; + } + + return parent || element.parentNode; + } + }, { + key: '_dataApiKeydownHandler', + value: function _dataApiKeydownHandler(event) { + if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) { + return; + } + + event.preventDefault(); + event.stopPropagation(); + + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return; + } + + var parent = Dropdown._getParentFromElement(this); + var isActive = $(parent).hasClass(ClassName.OPEN); + + if (!isActive && event.which !== 27 || isActive && event.which === 27) { + + if (event.which === 27) { + var toggle = $(parent).find(Selector.DATA_TOGGLE)[0]; + $(toggle).trigger('focus'); + } + + $(this).trigger('click'); + return; + } + + var items = $.makeArray($(Selector.VISIBLE_ITEMS)); + + items = items.filter(function (item) { + return item.offsetWidth || item.offsetHeight; + }); + + if (!items.length) { + return; + } + + var index = items.indexOf(event.target); + + if (event.which === 38 && index > 0) index--; // up + if (event.which === 40 && index < items.length - 1) index++; // down + if (! ~index) index = 0; + + items[index].focus(); + } + }]); + + return Dropdown; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { + e.stopPropagation(); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Dropdown._jQueryInterface; + $.fn[NAME].Constructor = Dropdown; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Dropdown._jQueryInterface; + }; + + return Dropdown; +})(jQuery); +//# sourceMappingURL=dropdown.js.map \ No newline at end of file diff --git a/js/dist/dropdown.js.map b/js/dist/dropdown.js.map new file mode 100644 index 0000000000..fa59184e94 --- /dev/null +++ b/js/dist/dropdown.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/dropdown.js"],"names":[],"mappings":"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","file":"js/src/dropdown.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE   : `hide${EVENT_KEY}`,\n HIDDEN   : `hidden${EVENT_KEY}`,\n SHOW   : `show${EVENT_KEY}`,\n SHOWN   : `shown${EVENT_KEY}`,\n CLICK   : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n BACKDROP : 'dropdown-backdrop',\n DISABLED : 'disabled',\n OPEN : 'open'\n }\n\n const Selector = {\n BACKDROP : '.dropdown-backdrop',\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n ROLE_MENU : '[role=\"menu\"]',\n ROLE_LISTBOX : '[role=\"listbox\"]',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '[role=\"menu\"] li:not(.disabled) a, '\n + '[role=\"listbox\"] li:not(.disabled) a'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n\n constructor(element) {\n this._element = element\n\n this._addEventListeners()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n toggle() {\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let parent = Dropdown._getParentFromElement(this)\n let isActive = $(parent).hasClass(ClassName.OPEN)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return false\n }\n\n if ('ontouchstart' in document.documentElement &&\n (!$(parent).closest(Selector.NAVBAR_NAV).length)) {\n\n // if mobile we use a backdrop because click events don't delegate\n let dropdown = document.createElement('div')\n dropdown.className = ClassName.BACKDROP\n $(dropdown).insertBefore(this)\n $(dropdown).on('click', Dropdown._clearMenus)\n }\n\n let relatedTarget = { relatedTarget : this }\n let showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this.focus()\n this.setAttribute('aria-expanded', 'true')\n\n $(parent).toggleClass(ClassName.OPEN)\n $(parent).trigger(Event.SHOWN, relatedTarget)\n\n return false\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n }\n\n\n // private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, this.toggle)\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n $(this).data(DATA_KEY, (data = new Dropdown(this)))\n }\n\n if (typeof config === 'string') {\n data[config].call(this)\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && event.which === 3) {\n return\n }\n\n let backdrop = $(Selector.BACKDROP)[0]\n if (backdrop) {\n backdrop.parentNode.removeChild(backdrop)\n }\n\n let toggles = $.makeArray($(Selector.DATA_TOGGLE))\n\n for (let i = 0; i < toggles.length; i++) {\n let parent = Dropdown._getParentFromElement(toggles[i])\n let relatedTarget = { relatedTarget : toggles[i] }\n\n if (!$(parent).hasClass(ClassName.OPEN)) {\n continue\n }\n\n if (event && event.type === 'click' &&\n (/input|textarea/i.test(event.target.tagName)) &&\n ($.contains(parent, event.target))) {\n continue\n }\n\n let hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(parent)\n .removeClass(ClassName.OPEN)\n .trigger(Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n let selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n if (!/(38|40|27|32)/.test(event.which) ||\n /input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let parent = Dropdown._getParentFromElement(this)\n let isActive = $(parent).hasClass(ClassName.OPEN)\n\n if ((!isActive && event.which !== 27) ||\n (isActive && event.which === 27)) {\n\n if (event.which === 27) {\n let toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n let items = $.makeArray($(Selector.VISIBLE_ITEMS))\n\n items = items.filter((item) => {\n return item.offsetWidth || item.offsetHeight\n })\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === 38 && index > 0) index-- // up\n if (event.which === 40 && index < items.length - 1) index++ // down\n if (!~index) index = 0\n\n items[index].focus()\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler)\n .on(Event.CLICK_DATA_API, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle)\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {\n e.stopPropagation()\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n\n})(jQuery)\n\nexport default Dropdown\n"]} \ No newline at end of file diff --git a/js/dist/modal.js b/js/dist/modal.js new file mode 100644 index 0000000000..2a63877259 --- /dev/null +++ b/js/dist/modal.js @@ -0,0 +1,529 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Modal = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'modal'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.modal'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 300; + var BACKDROP_TRANSITION_DURATION = 150; + + var Default = { + backdrop: true, + keyboard: true, + focus: true, + show: true + }; + + var DefaultType = { + backdrop: '(boolean|string)', + keyboard: 'boolean', + focus: 'boolean', + show: 'boolean' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + RESIZE: 'resize' + EVENT_KEY, + CLICK_DISMISS: 'click.dismiss' + EVENT_KEY, + KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY, + MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY, + MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + BACKDROP: 'modal-backdrop', + OPEN: 'modal-open', + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + DIALOG: '.modal-dialog', + DATA_TOGGLE: '[data-toggle="modal"]', + DATA_DISMISS: '[data-dismiss="modal"]', + SCROLLBAR_MEASURER: 'modal-scrollbar-measure' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Modal = (function () { + function Modal(element, config) { + _classCallCheck(this, Modal); + + this._config = this._getConfig(config); + this._element = element; + this._dialog = $(element).find(Selector.DIALOG)[0]; + this._backdrop = null; + this._isShown = false; + this._isBodyOverflowing = false; + this._ignoreBackdropClick = false; + this._originalBodyPadding = 0; + this._scrollbarWidth = 0; + } + + _createClass(Modal, [{ + key: 'toggle', + + // public + + value: function toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + }, { + key: 'show', + value: function show(relatedTarget) { + var _this = this; + + var showEvent = $.Event(Event.SHOW, { + relatedTarget: relatedTarget + }); + + $(this._element).trigger(showEvent); + + if (this._isShown || showEvent.isDefaultPrevented()) { + return; + } + + this._isShown = true; + + this._checkScrollbar(); + this._setScrollbar(); + + $(document.body).addClass(ClassName.OPEN); + + this._setEscapeEvent(); + this._setResizeEvent(); + + $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this)); + + $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { + $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) { + if ($(event.target).is(_this._element)) { + that._ignoreBackdropClick = true; + } + }); + }); + + this._showBackdrop($.proxy(this._showElement, this, relatedTarget)); + } + }, { + key: 'hide', + value: function hide(event) { + if (event) { + event.preventDefault(); + } + + var hideEvent = $.Event(Event.HIDE); + + $(this._element).trigger(hideEvent); + + if (!this._isShown || hideEvent.isDefaultPrevented()) { + return; + } + + this._isShown = false; + + this._setEscapeEvent(); + this._setResizeEvent(); + + $(document).off(Event.FOCUSIN); + + $(this._element).removeClass(ClassName.IN); + + $(this._element).off(Event.CLICK_DISMISS); + $(this._dialog).off(Event.MOUSEDOWN_DISMISS); + + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + + $(this._element).one(Util.TRANSITION_END, $.proxy(this._hideModal, this)).emulateTransitionEnd(TRANSITION_DURATION); + } else { + this._hideModal(); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + + $(window).off(EVENT_KEY); + $(document).off(EVENT_KEY); + $(this._element).off(EVENT_KEY); + $(this._backdrop).off(EVENT_KEY); + + this._config = null; + this._element = null; + this._dialog = null; + this._backdrop = null; + this._isShown = null; + this._isBodyOverflowing = null; + this._ignoreBackdropClick = null; + this._originalBodyPadding = null; + this._scrollbarWidth = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_showElement', + value: function _showElement(relatedTarget) { + var _this2 = this; + + var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE); + + if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { + // don't move modals dom position + document.body.appendChild(this._element); + } + + this._element.style.display = 'block'; + this._element.scrollTop = 0; + + if (transition) { + Util.reflow(this._element); + } + + $(this._element).addClass(ClassName.IN); + + if (this._config.focus) this._enforceFocus(); + + var shownEvent = $.Event(Event.SHOWN, { + relatedTarget: relatedTarget + }); + + var transitionComplete = function transitionComplete() { + if (_this2._config.focus) _this2._element.focus(); + $(_this2._element).trigger(shownEvent); + }; + + if (transition) { + $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + transitionComplete(); + } + } + }, { + key: '_enforceFocus', + value: function _enforceFocus() { + var _this3 = this; + + $(document).off(Event.FOCUSIN) // guard against infinite focus loop + .on(Event.FOCUSIN, function (event) { + if (_this3._element !== event.target && !$(_this3._element).has(event.target).length) { + _this3._element.focus(); + } + }); + } + }, { + key: '_setEscapeEvent', + value: function _setEscapeEvent() { + var _this4 = this; + + if (this._isShown && this._config.keyboard) { + $(this._element).on(Event.KEYDOWN_DISMISS, function (event) { + if (event.which === 27) { + _this4.hide(); + } + }); + } else if (!this._isShown) { + $(this._element).off(Event.KEYDOWN_DISMISS); + } + } + }, { + key: '_setResizeEvent', + value: function _setResizeEvent() { + if (this._isShown) { + $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this)); + } else { + $(window).off(Event.RESIZE); + } + } + }, { + key: '_hideModal', + value: function _hideModal() { + var _this5 = this; + + this._element.style.display = 'none'; + this._showBackdrop(function () { + $(document.body).removeClass(ClassName.OPEN); + _this5._resetAdjustments(); + _this5._resetScrollbar(); + $(_this5._element).trigger(Event.HIDDEN); + }); + } + }, { + key: '_removeBackdrop', + value: function _removeBackdrop() { + if (this._backdrop) { + $(this._backdrop).remove(); + this._backdrop = null; + } + } + }, { + key: '_showBackdrop', + value: function _showBackdrop(callback) { + var _this6 = this; + + var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : ''; + + if (this._isShown && this._config.backdrop) { + var doAnimate = Util.supportsTransitionEnd() && animate; + + this._backdrop = document.createElement('div'); + this._backdrop.className = ClassName.BACKDROP; + + if (animate) { + $(this._backdrop).addClass(animate); + } + + $(this._backdrop).appendTo(this.$body); + + $(this._element).on(Event.CLICK_DISMISS, function (event) { + if (_this6._ignoreBackdropClick) { + _this6._ignoreBackdropClick = false; + return; + } + if (event.target !== event.currentTarget) { + return; + } + if (_this6._config.backdrop === 'static') { + _this6._element.focus(); + } else { + _this6.hide(); + } + }); + + if (doAnimate) { + Util.reflow(this._backdrop); + } + + $(this._backdrop).addClass(ClassName.IN); + + if (!callback) { + return; + } + + if (!doAnimate) { + callback(); + return; + } + + $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + } else if (!this._isShown && this._backdrop) { + $(this._backdrop).removeClass(ClassName.IN); + + var callbackRemove = function callbackRemove() { + _this6._removeBackdrop(); + if (callback) { + callback(); + } + }; + + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + } else { + callbackRemove(); + } + } else if (callback) { + callback(); + } + } + }, { + key: '_handleUpdate', + + // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // todo (fat): these should probably be refactored out of modal.js + // ---------------------------------------------------------------------- + + value: function _handleUpdate() { + this._adjustDialog(); + } + }, { + key: '_adjustDialog', + value: function _adjustDialog() { + var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing) { + this._element.style.paddingLeft = this._scrollbarWidth + 'px'; + } + + if (this._isBodyOverflowing && !isModalOverflowing) { + this._element.style.paddingRight = this._scrollbarWidth + 'px'; + } + } + }, { + key: '_resetAdjustments', + value: function _resetAdjustments() { + this._element.style.paddingLeft = ''; + this._element.style.paddingRight = ''; + } + }, { + key: '_checkScrollbar', + value: function _checkScrollbar() { + var fullWindowWidth = window.innerWidth; + if (!fullWindowWidth) { + // workaround for missing window.innerWidth in IE8 + var documentElementRect = document.documentElement.getBoundingClientRect(); + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left); + } + this._isBodyOverflowing = document.body.clientWidth < fullWindowWidth; + this._scrollbarWidth = this._getScrollbarWidth(); + } + }, { + key: '_setScrollbar', + value: function _setScrollbar() { + var bodyPadding = parseInt($(document.body).css('padding-right') || 0, 10); + + this._originalBodyPadding = document.body.style.paddingRight || ''; + + if (this._isBodyOverflowing) { + document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px'; + } + } + }, { + key: '_resetScrollbar', + value: function _resetScrollbar() { + document.body.style.paddingRight = this._originalBodyPadding; + } + }, { + key: '_getScrollbarWidth', + value: function _getScrollbarWidth() { + // thx d.walsh + var scrollDiv = document.createElement('div'); + scrollDiv.className = Selector.SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config, relatedTarget) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config); + + if (!data) { + data = new Modal(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](relatedTarget); + } else if (_config.show) { + data.show(relatedTarget); + } + }); + } + }]); + + return Modal; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + var _this7 = this; + + var target = undefined; + var selector = Util.getSelectorFromElement(this); + + if (selector) { + target = $(selector)[0]; + } + + var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data()); + + if (this.tagName === 'A') { + event.preventDefault(); + } + + var $target = $(target).one(Event.SHOW, function (showEvent) { + if (showEvent.isDefaultPrevented()) { + // only register focus restorer if modal will actually get shown + return; + } + + $target.one(Event.HIDDEN, function () { + if ($(_this7).is(':visible')) { + _this7.focus(); + } + }); + }); + + Modal._jQueryInterface.call($(target), config, this); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Modal._jQueryInterface; + $.fn[NAME].Constructor = Modal; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Modal._jQueryInterface; + }; + + return Modal; +})(jQuery); +//# sourceMappingURL=modal.js.map \ No newline at end of file diff --git a/js/dist/modal.js.map b/js/dist/modal.js.map new file mode 100644 index 0000000000..5d10cd6d37 --- /dev/null +++ b/js/dist/modal.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/modal.js"],"names":[],"mappings":"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","file":"js/src/modal.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE   : `hide${EVENT_KEY}`,\n HIDDEN   : `hidden${EVENT_KEY}`,\n SHOW   : `show${EVENT_KEY}`,\n SHOWN   : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n IN : 'in'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n let showEvent = $.Event(Event.SHOW, {\n relatedTarget: relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n $.proxy(this.hide, this)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n that._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(\n $.proxy(this._showElement, this, relatedTarget)\n )\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n let hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.IN)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (Util.supportsTransitionEnd() &&\n ($(this._element).hasClass(ClassName.FADE))) {\n\n $(this._element)\n .one(Util.TRANSITION_END, $.proxy(this._hideModal, this))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window).off(EVENT_KEY)\n $(document).off(EVENT_KEY)\n $(this._element).off(EVENT_KEY)\n $(this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._originalBodyPadding = null\n this._scrollbarWidth = null\n }\n\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n let transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n (this._element.parentNode.nodeType !== Node.ELEMENT_NODE)) {\n // don't move modals dom position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.IN)\n\n if (this._config.focus) this._enforceFocus()\n\n let shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: relatedTarget\n })\n\n let transitionComplete = () => {\n if (this._config.focus) this._element.focus()\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (this._element !== event.target &&\n (!$(this._element).has(event.target).length)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === 27) {\n this.hide()\n }\n })\n\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n let animate = $(this._element).hasClass(ClassName.FADE) ?\n ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n let doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(this.$body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.IN)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.IN)\n\n let callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n ($(this._element).hasClass(ClassName.FADE))) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n\n } else if (callback) {\n callback()\n }\n }\n\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _handleUpdate() {\n this._adjustDialog()\n }\n\n _adjustDialog() {\n let isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = this._scrollbarWidth + 'px'\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = this._scrollbarWidth + 'px'\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n let fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n let documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth =\n documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this._isBodyOverflowing = document.body.clientWidth < fullWindowWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n let bodyPadding = parseInt(\n $(document.body).css('padding-right') || 0,\n 10\n )\n\n this._originalBodyPadding = document.body.style.paddingRight || ''\n\n if (this._isBodyOverflowing) {\n document.body.style.paddingRight =\n bodyPadding + this._scrollbarWidth + 'px'\n }\n }\n\n _resetScrollbar() {\n document.body.style.paddingRight = this._originalBodyPadding\n }\n\n _getScrollbarWidth() { // thx d.walsh\n let scrollDiv = document.createElement('div')\n scrollDiv.className = Selector.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = $.extend(\n {},\n Modal.Default,\n $(this).data(),\n typeof config === 'object' && config\n )\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n data[config](relatedTarget)\n\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n let selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n let config = $(target).data(DATA_KEY) ?\n 'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n if (this.tagName === 'A') {\n event.preventDefault()\n }\n\n let $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n\n})(jQuery)\n\nexport default Modal\n"]} \ No newline at end of file diff --git a/js/dist/popover.js b/js/dist/popover.js new file mode 100644 index 0000000000..8a30917c3b --- /dev/null +++ b/js/dist/popover.js @@ -0,0 +1,204 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Popover = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'popover'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.popover'; + var EVENT_KEY = '.' + DATA_KEY; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + + var Default = $.extend({}, Tooltip.Default, { + placement: 'right', + trigger: 'click', + content: '', + template: '' + }); + + var DefaultType = $.extend({}, Tooltip.DefaultType, { + content: '(string|function)' + }); + + var ClassName = { + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + TITLE: '.popover-title', + CONTENT: '.popover-content', + ARROW: '.popover-arrow' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + INSERTED: 'inserted' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + FOCUSOUT: 'focusout' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Popover = (function (_Tooltip) { + function Popover() { + _classCallCheck(this, Popover); + + if (_Tooltip != null) { + _Tooltip.apply(this, arguments); + } + } + + _inherits(Popover, _Tooltip); + + _createClass(Popover, [{ + key: 'isWithContent', + + // overrides + + value: function isWithContent() { + return this.getTitle() || this._getContent(); + } + }, { + key: 'getTipElement', + value: function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; + } + }, { + key: 'setContent', + value: function setContent() { + var tip = this.getTipElement(); + var title = this.getTitle(); + var content = this._getContent(); + var titleElement = $(tip).find(Selector.TITLE)[0]; + + if (titleElement) { + titleElement[this.config.html ? 'innerHTML' : 'innerText'] = title; + } + + // we use append for html objects to maintain js events + $(tip).find(Selector.CONTENT).children().detach().end()[this.config.html ? typeof content === 'string' ? 'html' : 'append' : 'text'](content); + + $(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN); + + this.cleanupTether(); + } + }, { + key: '_getContent', + + // private + + value: function _getContent() { + return this.element.getAttribute('data-content') || (typeof this.config.content == 'function' ? this.config.content.call(this.element) : this.config.content); + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: 'NAME', + get: function () { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function () { + return DATA_KEY; + } + }, { + key: 'Event', + get: function () { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function () { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function () { + return DefaultType; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' ? config : null; + + if (!data && /destroy|hide/.test(config)) { + return; + } + + if (!data) { + data = new Popover(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Popover; + })(Tooltip); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Popover._jQueryInterface; + $.fn[NAME].Constructor = Popover; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Popover._jQueryInterface; + }; + + return Popover; +})(jQuery); +//# sourceMappingURL=popover.js.map \ No newline at end of file diff --git a/js/dist/popover.js.map b/js/dist/popover.js.map new file mode 100644 index 0000000000..edc1301017 --- /dev/null +++ b/js/dist/popover.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/popover.js"],"names":[],"mappings":"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","file":"js/src/popover.js","sourcesContent":["import Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = $.extend({}, Tooltip.Default, {\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
'\n + '
'\n + '

'\n + '
'\n })\n\n const DefaultType = $.extend({}, Tooltip.DefaultType, {\n content : '(string|function)'\n })\n\n const ClassName = {\n FADE : 'fade',\n IN : 'in'\n }\n\n const Selector = {\n TITLE : '.popover-title',\n CONTENT : '.popover-content',\n ARROW : '.popover-arrow'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n\n // overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n getTipElement() {\n return (this.tip = this.tip || $(this.config.template)[0])\n }\n\n setContent() {\n let tip = this.getTipElement()\n let title = this.getTitle()\n let content = this._getContent()\n let titleElement = $(tip).find(Selector.TITLE)[0]\n\n if (titleElement) {\n titleElement[\n this.config.html ? 'innerHTML' : 'innerText'\n ] = title\n }\n\n // we use append for html objects to maintain js events\n $(tip).find(Selector.CONTENT).children().detach().end()[\n this.config.html ?\n (typeof content === 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $(tip)\n .removeClass(ClassName.FADE)\n .removeClass(ClassName.IN)\n\n this.cleanupTether()\n }\n\n // private\n\n _getContent() {\n return this.element.getAttribute('data-content')\n || (typeof this.config.content == 'function' ?\n this.config.content.call(this.element) :\n this.config.content)\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n data[config]()\n }\n })\n }\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n\n})(jQuery)\n\nexport default Popover\n"]} \ No newline at end of file diff --git a/js/dist/scrollspy.js b/js/dist/scrollspy.js new file mode 100644 index 0000000000..b214f86eeb --- /dev/null +++ b/js/dist/scrollspy.js @@ -0,0 +1,315 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var ScrollSpy = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'scrollspy'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.scrollspy'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + + var Default = { + offset: 10, + method: 'auto', + target: '' + }; + + var DefaultType = { + offset: 'number', + method: 'string', + target: '(string|element)' + }; + + var Event = { + ACTIVATE: 'activate' + EVENT_KEY, + SCROLL: 'scroll' + EVENT_KEY, + LOAD_DATA_API: 'load' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + DROPDOWN_MENU: 'dropdown-menu', + ACTIVE: 'active' + }; + + var Selector = { + DATA_SPY: '[data-spy="scroll"]', + ACTIVE: '.active', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + NAV_ANCHORS: '.nav li > a' + }; + + var OffsetMethod = { + OFFSET: 'offset', + POSITION: 'position' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var ScrollSpy = (function () { + function ScrollSpy(element, config) { + _classCallCheck(this, ScrollSpy); + + this._element = element; + this._scrollElement = element.tagName === 'BODY' ? window : element; + this._config = this._getConfig(config); + this._selector = '' + this._config.target + ' ' + Selector.NAV_ANCHORS; + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + + $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this)); + + this.refresh(); + this._process(); + } + + _createClass(ScrollSpy, [{ + key: 'refresh', + + // public + + value: function refresh() { + var _this = this; + + var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET; + + var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + + var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; + + this._offsets = []; + this._targets = []; + + this._scrollHeight = this._getScrollHeight(); + + var targets = $.makeArray($(this._selector)); + + targets.map(function (element) { + var target = undefined; + var targetSelector = Util.getSelectorFromElement(element); + + if (targetSelector) { + target = $(targetSelector)[0]; + } + + if (target && (target.offsetWidth || target.offsetHeight)) { + // todo (fat): remove sketch reliance on jQuery position/offset + return [$(target)[offsetMethod]().top + offsetBase, targetSelector]; + } + }).filter(function (item) { + return item; + }).sort(function (a, b) { + return a[0] - b[0]; + }).forEach(function (item) { + _this._offsets.push(item[0]); + _this._targets.push(item[1]); + }); + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._scrollElement).off(EVENT_KEY); + + this._element = null; + this._scrollElement = null; + this._config = null; + this._selector = null; + this._offsets = null; + this._targets = null; + this._activeTarget = null; + this._scrollHeight = null; + } + }, { + key: '_getConfig', + + // private + + value: function _getConfig(config) { + config = $.extend({}, Default, config); + + if (typeof config.target !== 'string') { + var id = $(config.target).attr('id'); + if (!id) { + id = Util.getUID(NAME); + $(config.target).attr('id', id); + } + config.target = '#' + id; + } + + Util.typeCheckConfig(NAME, config, DefaultType); + + return config; + } + }, { + key: '_getScrollTop', + value: function _getScrollTop() { + return this._scrollElement === window ? this._scrollElement.scrollY : this._scrollElement.scrollTop; + } + }, { + key: '_getScrollHeight', + value: function _getScrollHeight() { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); + } + }, { + key: '_process', + value: function _process() { + var scrollTop = this._getScrollTop() + this._config.offset; + var scrollHeight = this._getScrollHeight(); + var maxScroll = this._config.offset + scrollHeight - this._scrollElement.offsetHeight; + + if (this._scrollHeight !== scrollHeight) { + this.refresh(); + } + + if (scrollTop >= maxScroll) { + var target = this._targets[this._targets.length - 1]; + + if (this._activeTarget !== target) { + this._activate(target); + } + } + + if (this._activeTarget && scrollTop < this._offsets[0]) { + this._activeTarget = null; + this._clear(); + return; + } + + for (var i = this._offsets.length; i--;) { + var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]); + + if (isActiveTarget) { + this._activate(this._targets[i]); + } + } + } + }, { + key: '_activate', + value: function _activate(target) { + this._activeTarget = target; + + this._clear(); + + var selector = '' + this._selector + '[data-target="' + target + '"],' + ('' + this._selector + '[href="' + target + '"]'); + + // todo (fat): getting all the raw li's up the tree is not great. + var parentListItems = $(selector).parents(Selector.LI); + + for (var i = parentListItems.length; i--;) { + $(parentListItems[i]).addClass(ClassName.ACTIVE); + + var itemParent = parentListItems[i].parentNode; + + if (itemParent && $(itemParent).hasClass(ClassName.DROPDOWN_MENU)) { + var closestDropdown = $(itemParent).closest(Selector.LI_DROPDOWN)[0]; + $(closestDropdown).addClass(ClassName.ACTIVE); + } + } + + $(this._scrollElement).trigger(Event.ACTIVATE, { + relatedTarget: target + }); + } + }, { + key: '_clear', + value: function _clear() { + var activeParents = $(this._selector).parentsUntil(this._config.target, Selector.ACTIVE); + + for (var i = activeParents.length; i--;) { + $(activeParents[i]).removeClass(ClassName.ACTIVE); + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' && config || null; + + if (!data) { + data = new ScrollSpy(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return ScrollSpy; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(window).on(Event.LOAD_DATA_API, function () { + var scrollSpys = $.makeArray($(Selector.DATA_SPY)); + + for (var i = scrollSpys.length; i--;) { + var $spy = $(scrollSpys[i]); + ScrollSpy._jQueryInterface.call($spy, $spy.data()); + } + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = ScrollSpy._jQueryInterface; + $.fn[NAME].Constructor = ScrollSpy; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return ScrollSpy._jQueryInterface; + }; + + return ScrollSpy; +})(jQuery); +//# sourceMappingURL=scrollspy.js.map \ No newline at end of file diff --git a/js/dist/scrollspy.js.map b/js/dist/scrollspy.js.map new file mode 100644 index 0000000000..bde96eda32 --- /dev/null +++ b/js/dist/scrollspy.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/scrollspy.js"],"names":[],"mappings":"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","file":"js/src/scrollspy.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n LI : 'li',\n LI_DROPDOWN : 'li.dropdown',\n NAV_ANCHORS : '.nav li > a'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_ANCHORS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this))\n\n this.refresh()\n this._process()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n refresh() {\n let autoMethod = this._scrollElement !== this._scrollElement.window ?\n OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n let offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n let offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n let targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n let targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target && (target.offsetWidth || target.offsetHeight)) {\n // todo (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.scrollY : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _process() {\n let scrollTop = this._getScrollTop() + this._config.offset\n let scrollHeight = this._getScrollHeight()\n let maxScroll = this._config.offset\n + scrollHeight\n - this._scrollElement.offsetHeight\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n let target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0]) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n let isActiveTarget = this._activeTarget !== this._targets[i]\n && scrollTop >= this._offsets[i]\n && (this._offsets[i + 1] === undefined ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let selector =\n `${this._selector}[data-target=\"${target}\"],` +\n `${this._selector}[href=\"${target}\"]`\n\n // todo (fat): getting all the raw li's up the tree is not great.\n let parentListItems = $(selector).parents(Selector.LI)\n\n for (let i = parentListItems.length; i--;) {\n $(parentListItems[i]).addClass(ClassName.ACTIVE)\n\n let itemParent = parentListItems[i].parentNode\n\n if (itemParent && $(itemParent).hasClass(ClassName.DROPDOWN_MENU)) {\n let closestDropdown = $(itemParent)\n .closest(Selector.LI_DROPDOWN)[0]\n $(closestDropdown).addClass(ClassName.ACTIVE)\n }\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n let activeParents = $(this._selector).parentsUntil(\n this._config.target,\n Selector.ACTIVE\n )\n\n for (let i = activeParents.length; i--;) {\n $(activeParents[i]).removeClass(ClassName.ACTIVE)\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = typeof config === 'object' && config || null\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n data[config]()\n }\n })\n }\n\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, function () {\n let scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n let $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n\n})(jQuery)\n\nexport default ScrollSpy\n"]} \ No newline at end of file diff --git a/js/dist/tab.js b/js/dist/tab.js new file mode 100644 index 0000000000..95c5619400 --- /dev/null +++ b/js/dist/tab.js @@ -0,0 +1,273 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tab.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Tab = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'tab'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.tab'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY + }; + + var ClassName = { + DROPDOWN_MENU: 'dropdown-menu', + ACTIVE: 'active', + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + A: 'a', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + UL: 'ul:not(.dropdown-menu)', + FADE_CHILD: '> .fade', + ACTIVE: '.active', + ACTIVE_CHILD: '> .active', + DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]', + DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu > .active' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tab = (function () { + function Tab(element) { + _classCallCheck(this, Tab); + + this._element = element; + } + + _createClass(Tab, [{ + key: 'show', + + // public + + value: function show() { + var _this = this; + + if (this._element.parentNode && this._element.parentNode.nodeType == Node.ELEMENT_NODE && $(this._element).parent().hasClass(ClassName.ACTIVE)) { + return; + } + + var target = undefined; + var previous = undefined; + var ulElement = $(this._element).closest(Selector.UL)[0]; + var selector = Util.getSelectorFromElement(this._element); + + if (ulElement) { + previous = $.makeArray($(ulElement).find(Selector.ACTIVE)); + previous = previous[previous.length - 1]; + + if (previous) { + previous = $(previous).find(Selector.A)[0]; + } + } + + var hideEvent = $.Event(Event.HIDE, { + relatedTarget: this._element + }); + + var showEvent = $.Event(Event.SHOW, { + relatedTarget: previous + }); + + if (previous) { + $(previous).trigger(hideEvent); + } + + $(this._element).trigger(showEvent); + + if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { + return; + } + + if (selector) { + target = $(selector)[0]; + } + + this._activate($(this._element).closest(Selector.LI)[0], ulElement); + + var complete = function complete() { + var hiddenEvent = $.Event(Event.HIDDEN, { + relatedTarget: _this._element + }); + + var shownEvent = $.Event(Event.SHOWN, { + relatedTarget: previous + }); + + $(previous).trigger(hiddenEvent); + $(_this._element).trigger(shownEvent); + }; + + if (target) { + this._activate(target, target.parentNode, complete); + } else { + complete(); + } + } + }, { + key: 'dispose', + value: function dispose() { + $.removeClass(this._element, DATA_KEY); + this._element = null; + } + }, { + key: '_activate', + + // private + + value: function _activate(element, container, callback) { + var active = $(container).find(Selector.ACTIVE_CHILD)[0]; + var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || !!$(container).find(Selector.FADE_CHILD)[0]); + + var complete = $.proxy(this._transitionComplete, this, element, active, isTransitioning, callback); + + if (active && isTransitioning) { + $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + if (active) { + $(active).removeClass(ClassName.IN); + } + } + }, { + key: '_transitionComplete', + value: function _transitionComplete(element, active, isTransitioning, callback) { + if (active) { + $(active).removeClass(ClassName.ACTIVE); + + var dropdownChild = $(active).find(Selector.DROPDOWN_ACTIVE_CHILD)[0]; + if (dropdownChild) { + $(dropdownChild).removeClass(ClassName.ACTIVE); + } + + var activeToggle = $(active).find(Selector.DATA_TOGGLE)[0]; + if (activeToggle) { + activeToggle.setAttribute('aria-expanded', false); + } + } + + $(element).addClass(ClassName.ACTIVE); + + var elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]; + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true); + } + + if (isTransitioning) { + Util.reflow(element); + $(element).addClass(ClassName.IN); + } else { + $(element).removeClass(ClassName.FADE); + } + + if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { + + var dropdownElement = $(element).closest(Selector.LI_DROPDOWN)[0]; + if (dropdownElement) { + $(dropdownElement).addClass(ClassName.ACTIVE); + } + + elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]; + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true); + } + } + + if (callback) { + callback(); + } + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DATA_KEY); + + if (!data) { + data = data = new Tab(this); + $this.data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Tab; + })(); + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault(); + Tab._jQueryInterface.call($(this), 'show'); + }); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Tab._jQueryInterface; + $.fn[NAME].Constructor = Tab; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tab._jQueryInterface; + }; + + return Tab; +})(jQuery); +//# sourceMappingURL=tab.js.map \ No newline at end of file diff --git a/js/dist/tab.js.map b/js/dist/tab.js.map new file mode 100644 index 0000000000..82a86ecb16 --- /dev/null +++ b/js/dist/tab.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/tab.js"],"names":[],"mappings":"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","file":"js/src/tab.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n FADE : 'fade',\n IN : 'in'\n }\n\n const Selector = {\n A : 'a',\n LI : 'li',\n LI_DROPDOWN : 'li.dropdown',\n UL : 'ul:not(.dropdown-menu)',\n FADE_CHILD : '> .fade',\n ACTIVE : '.active',\n ACTIVE_CHILD : '> .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"]',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu > .active'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n show() {\n if (this._element.parentNode &&\n (this._element.parentNode.nodeType == Node.ELEMENT_NODE) &&\n ($(this._element).parent().hasClass(ClassName.ACTIVE))) {\n return\n }\n\n let target\n let previous\n let ulElement = $(this._element).closest(Selector.UL)[0]\n let selector = Util.getSelectorFromElement(this._element)\n\n if (ulElement) {\n previous = $.makeArray($(ulElement).find(Selector.ACTIVE))\n previous = previous[previous.length - 1]\n\n if (previous) {\n previous = $(previous).find(Selector.A)[0]\n }\n }\n\n let hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n let showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n (hideEvent.isDefaultPrevented())) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n $(this._element).closest(Selector.LI)[0],\n ulElement\n )\n\n let complete = () => {\n let hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n let shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeClass(this._element, DATA_KEY)\n this._element = null\n }\n\n\n // private\n\n _activate(element, container, callback) {\n let active = $(container).find(Selector.ACTIVE_CHILD)[0]\n let isTransitioning = callback\n && Util.supportsTransitionEnd()\n && ((active && $(active).hasClass(ClassName.FADE))\n || !!$(container).find(Selector.FADE_CHILD)[0])\n\n let complete = $.proxy(\n this._transitionComplete,\n this,\n element,\n active,\n isTransitioning,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n if (active) {\n $(active).removeClass(ClassName.IN)\n }\n }\n\n _transitionComplete(element, active, isTransitioning, callback) {\n if (active) {\n $(active).removeClass(ClassName.ACTIVE)\n\n let dropdownChild = $(active).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n let activeToggle = $(active).find(Selector.DATA_TOGGLE)[0]\n if (activeToggle) {\n activeToggle.setAttribute('aria-expanded', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n\n let elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]\n if (elementToggle) {\n elementToggle.setAttribute('aria-expanded', true)\n }\n\n if (isTransitioning) {\n Util.reflow(element)\n $(element).addClass(ClassName.IN)\n } else {\n $(element).removeClass(ClassName.FADE)\n }\n\n if (element.parentNode &&\n ($(element.parentNode).hasClass(ClassName.DROPDOWN_MENU))) {\n\n let dropdownElement = $(element).closest(Selector.LI_DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).addClass(ClassName.ACTIVE)\n }\n\n elementToggle = $(element).find(Selector.DATA_TOGGLE)[0]\n if (elementToggle) {\n elementToggle.setAttribute('aria-expanded', true)\n }\n }\n\n if (callback) {\n callback()\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n\n})(jQuery)\n\nexport default Tab\n"]} \ No newline at end of file diff --git a/js/dist/tooltip.js b/js/dist/tooltip.js new file mode 100644 index 0000000000..864e0bb762 --- /dev/null +++ b/js/dist/tooltip.js @@ -0,0 +1,594 @@ +'use strict'; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +var Tooltip = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'tooltip'; + var VERSION = '4.0.0'; + var DATA_KEY = 'bs.tooltip'; + var EVENT_KEY = '.' + DATA_KEY; + var JQUERY_NO_CONFLICT = $.fn[NAME]; + var TRANSITION_DURATION = 150; + var CLASS_PREFIX = 'bs-tether'; + + var Default = { + animation: true, + template: '', + trigger: 'hover focus', + title: '', + delay: 0, + html: false, + selector: false, + placement: 'top', + offset: '0 0', + constraints: [] + }; + + var DefaultType = { + animation: 'boolean', + template: 'string', + title: '(string|function)', + trigger: 'string', + delay: '(number|object)', + html: 'boolean', + selector: '(string|boolean)', + placement: '(string|function)', + offset: 'string', + constraints: 'array' + }; + + var AttachmentMap = { + TOP: 'bottom center', + RIGHT: 'middle left', + BOTTOM: 'top center', + LEFT: 'middle right' + }; + + var HoverState = { + IN: 'in', + OUT: 'out' + }; + + var Event = { + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + INSERTED: 'inserted' + EVENT_KEY, + CLICK: 'click' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + FOCUSOUT: 'focusout' + EVENT_KEY, + MOUSEENTER: 'mouseenter' + EVENT_KEY, + MOUSELEAVE: 'mouseleave' + EVENT_KEY + }; + + var ClassName = { + FADE: 'fade', + IN: 'in' + }; + + var Selector = { + TOOLTIP: '.tooltip', + TOOLTIP_INNER: '.tooltip-inner' + }; + + var TetherClass = { + element: false, + enabled: false + }; + + var Trigger = { + HOVER: 'hover', + FOCUS: 'focus', + CLICK: 'click', + MANUAL: 'manual' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tooltip = (function () { + function Tooltip(element, config) { + _classCallCheck(this, Tooltip); + + // private + this._isEnabled = true; + this._timeout = 0; + this._hoverState = ''; + this._activeTrigger = {}; + this._tether = null; + + // protected + this.element = element; + this.config = this._getConfig(config); + this.tip = null; + + this._setListeners(); + } + + _createClass(Tooltip, [{ + key: 'enable', + + // public + + value: function enable() { + this._isEnabled = true; + } + }, { + key: 'disable', + value: function disable() { + this._isEnabled = false; + } + }, { + key: 'toggleEnabled', + value: function toggleEnabled() { + this._isEnabled = !this._isEnabled; + } + }, { + key: 'toggle', + value: function toggle(event) { + var context = this; + var dataKey = this.constructor.DATA_KEY; + + if (event) { + context = $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + context._activeTrigger.click = !context._activeTrigger.click; + + if (context._isWithActiveTrigger()) { + context._enter(null, context); + } else { + context._leave(null, context); + } + } else { + $(context.getTipElement()).hasClass(ClassName.IN) ? context._leave(null, context) : context._enter(null, context); + } + } + }, { + key: 'dispose', + value: function dispose() { + clearTimeout(this._timeout); + + this.cleanupTether(); + + $.removeData(this.element, this.constructor.DATA_KEY); + + $(this.element).off(this.constructor.EVENT_KEY); + + if (this.tip) { + $(this.tip).remove(); + } + + this._isEnabled = null; + this._timeout = null; + this._hoverState = null; + this._activeTrigger = null; + this._tether = null; + + this.element = null; + this.config = null; + this.tip = null; + } + }, { + key: 'show', + value: function show() { + var _this = this; + + var showEvent = $.Event(this.constructor.Event.SHOW); + + if (this.isWithContent() && this._isEnabled) { + $(this.element).trigger(showEvent); + + var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element); + + if (showEvent.isDefaultPrevented() || !isInTheDom) { + return; + } + + var tip = this.getTipElement(); + var tipId = Util.getUID(this.constructor.NAME); + + tip.setAttribute('id', tipId); + this.element.setAttribute('aria-describedby', tipId); + + this.setContent(); + + if (this.config.animation) { + $(tip).addClass(ClassName.FADE); + } + + var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; + + var attachment = this._getAttachment(placement); + + $(tip).data(this.constructor.DATA_KEY, this).appendTo(document.body); + + $(this.element).trigger(this.constructor.Event.INSERTED); + + this._tether = new Tether({ + element: tip, + target: this.element, + attachment: attachment, + classes: TetherClass, + classPrefix: CLASS_PREFIX, + offset: this.config.offset, + constraints: this.config.constraints + }); + + Util.reflow(tip); + this._tether.position(); + + $(tip).addClass(ClassName.IN); + + var complete = function complete() { + var prevHoverState = _this._hoverState; + _this._hoverState = null; + + $(_this.element).trigger(_this.constructor.Event.SHOWN); + + if (prevHoverState === HoverState.OUT) { + _this._leave(null, _this); + } + }; + + Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE) ? $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION) : complete(); + } + } + }, { + key: 'hide', + value: function hide(callback) { + var _this2 = this; + + var tip = this.getTipElement(); + var hideEvent = $.Event(this.constructor.Event.HIDE); + var complete = function complete() { + if (_this2._hoverState !== HoverState.IN && tip.parentNode) { + tip.parentNode.removeChild(tip); + } + + _this2.element.removeAttribute('aria-describedby'); + $(_this2.element).trigger(_this2.constructor.Event.HIDDEN); + _this2.cleanupTether(); + + if (callback) { + callback(); + } + }; + + $(this.element).trigger(hideEvent); + + if (hideEvent.isDefaultPrevented()) { + return; + } + + $(tip).removeClass(ClassName.IN); + + if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + + $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + this._hoverState = ''; + } + }, { + key: 'isWithContent', + + // protected + + value: function isWithContent() { + return !!this.getTitle(); + } + }, { + key: 'getTipElement', + value: function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; + } + }, { + key: 'setContent', + value: function setContent() { + var tip = this.getTipElement(); + var title = this.getTitle(); + var method = this.config.html ? 'innerHTML' : 'innerText'; + + $(tip).find(Selector.TOOLTIP_INNER)[0][method] = title; + + $(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN); + + this.cleanupTether(); + } + }, { + key: 'getTitle', + value: function getTitle() { + var title = this.element.getAttribute('data-original-title'); + + if (!title) { + title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; + } + + return title; + } + }, { + key: 'cleanupTether', + value: function cleanupTether() { + if (this._tether) { + this._tether.destroy(); + + // clean up after tether's junk classes + // remove after they fix issue + // (https://github.com/HubSpot/tether/issues/36) + $(this.element).removeClass(this._removeTetherClasses); + $(this.tip).removeClass(this._removeTetherClasses); + } + } + }, { + key: '_getAttachment', + + // private + + value: function _getAttachment(placement) { + return AttachmentMap[placement.toUpperCase()]; + } + }, { + key: '_setListeners', + value: function _setListeners() { + var _this3 = this; + + var triggers = this.config.trigger.split(' '); + + triggers.forEach(function (trigger) { + if (trigger === 'click') { + $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, $.proxy(_this3.toggle, _this3)); + } else if (trigger !== Trigger.MANUAL) { + var eventIn = trigger == Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN; + var eventOut = trigger == Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT; + + $(_this3.element).on(eventIn, _this3.config.selector, $.proxy(_this3._enter, _this3)).on(eventOut, _this3.config.selector, $.proxy(_this3._leave, _this3)); + } + }); + + if (this.config.selector) { + this.config = $.extend({}, this.config, { + trigger: 'manual', + selector: '' + }); + } else { + this._fixTitle(); + } + } + }, { + key: '_removeTetherClasses', + value: function _removeTetherClasses(i, css) { + return ((css.baseVal || css).match(new RegExp('(^|\\s)' + CLASS_PREFIX + '-\\S+', 'g')) || []).join(' '); + } + }, { + key: '_fixTitle', + value: function _fixTitle() { + var titleType = typeof this.element.getAttribute('data-original-title'); + if (this.element.getAttribute('title') || titleType !== 'string') { + this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); + this.element.setAttribute('title', ''); + } + } + }, { + key: '_enter', + value: function _enter(event, context) { + var dataKey = this.constructor.DATA_KEY; + + context = context || $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type == 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; + } + + if ($(context.getTipElement()).hasClass(ClassName.IN) || context._hoverState === HoverState.IN) { + context._hoverState = HoverState.IN; + return; + } + + clearTimeout(context._timeout); + + context._hoverState = HoverState.IN; + + if (!context.config.delay || !context.config.delay.show) { + context.show(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.IN) { + context.show(); + } + }, context.config.delay.show); + } + }, { + key: '_leave', + value: function _leave(event, context) { + var dataKey = this.constructor.DATA_KEY; + + context = context || $(event.currentTarget).data(dataKey); + + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } + + if (event) { + context._activeTrigger[event.type == 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; + } + + if (context._isWithActiveTrigger()) { + return; + } + + clearTimeout(context._timeout); + + context._hoverState = HoverState.OUT; + + if (!context.config.delay || !context.config.delay.hide) { + context.hide(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.OUT) { + context.hide(); + } + }, context.config.delay.hide); + } + }, { + key: '_isWithActiveTrigger', + value: function _isWithActiveTrigger() { + for (var trigger in this._activeTrigger) { + if (this._activeTrigger[trigger]) { + return true; + } + } + + return false; + } + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, this.constructor.Default, $(this.element).data(), config); + + if (config.delay && typeof config.delay === 'number') { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + + Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + + return config; + } + }, { + key: '_getDelegateConfig', + value: function _getDelegateConfig() { + var config = {}; + + if (this.config) { + for (var key in this.config) { + var value = this.config[key]; + if (this.constructor.Default[key] !== value) { + config[key] = value; + } + } + } + + return config; + } + }], [{ + key: 'VERSION', + + // getters + + get: function () { + return VERSION; + } + }, { + key: 'Default', + get: function () { + return Default; + } + }, { + key: 'NAME', + get: function () { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function () { + return DATA_KEY; + } + }, { + key: 'Event', + get: function () { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function () { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function () { + return DefaultType; + } + }, { + key: '_jQueryInterface', + + // static + + value: function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = typeof config === 'object' ? config : null; + + if (!data && /destroy|hide/.test(config)) { + return; + } + + if (!data) { + data = new Tooltip(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + data[config](); + } + }); + } + }]); + + return Tooltip; + })(); + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Tooltip._jQueryInterface; + $.fn[NAME].Constructor = Tooltip; + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT; + return Tooltip._jQueryInterface; + }; + + return Tooltip; +})(jQuery); +//# sourceMappingURL=tooltip.js.map \ No newline at end of file diff --git a/js/dist/tooltip.js.map b/js/dist/tooltip.js.map new file mode 100644 index 0000000000..e823424cb7 --- /dev/null +++ b/js/dist/tooltip.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/tooltip.js"],"names":[],"mappings":"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","file":"js/src/tooltip.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n const CLASS_PREFIX = 'bs-tether'\n\n const Default = {\n animation : true,\n template : '
'\n + '
'\n + '
',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : '0 0',\n constraints : []\n }\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : 'string',\n constraints : 'array'\n }\n\n const AttachmentMap = {\n TOP : 'bottom center',\n RIGHT : 'middle left',\n BOTTOM : 'top center',\n LEFT : 'middle right'\n }\n\n const HoverState = {\n IN : 'in',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n IN : 'in'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner'\n }\n\n const TetherClass = {\n element : false,\n enabled : false\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n\n constructor(element, config) {\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._tether = null\n\n // protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n\n // public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n let context = this\n let dataKey = this.constructor.DATA_KEY\n\n if (event) {\n context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n\n } else {\n $(context.getTipElement()).hasClass(ClassName.IN) ?\n context._leave(null, context) :\n context._enter(null, context)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n this.cleanupTether()\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n this._tether = null\n\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n let showEvent = $.Event(this.constructor.Event.SHOW)\n\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n let isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n let tip = this.getTipElement()\n let tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n let placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n let attachment = this._getAttachment(placement)\n\n $(tip)\n .data(this.constructor.DATA_KEY, this)\n .appendTo(document.body)\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._tether = new Tether({\n element : tip,\n target : this.element,\n attachment : attachment,\n classes : TetherClass,\n classPrefix : CLASS_PREFIX,\n offset : this.config.offset,\n constraints : this.config.constraints\n })\n\n Util.reflow(tip)\n this._tether.position()\n\n $(tip).addClass(ClassName.IN)\n\n let complete = () => {\n let prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE) ?\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(Tooltip._TRANSITION_DURATION) :\n complete()\n }\n }\n\n hide(callback) {\n let tip = this.getTipElement()\n let hideEvent = $.Event(this.constructor.Event.HIDE)\n let complete = () => {\n if (this._hoverState !== HoverState.IN && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n this.cleanupTether()\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.IN)\n\n if (Util.supportsTransitionEnd() &&\n ($(this.tip).hasClass(ClassName.FADE))) {\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n\n // protected\n\n isWithContent() {\n return !!this.getTitle()\n }\n\n getTipElement() {\n return (this.tip = this.tip || $(this.config.template)[0])\n }\n\n setContent() {\n let tip = this.getTipElement()\n let title = this.getTitle()\n let method = this.config.html ? 'innerHTML' : 'innerText'\n\n $(tip).find(Selector.TOOLTIP_INNER)[0][method] = title\n\n $(tip)\n .removeClass(ClassName.FADE)\n .removeClass(ClassName.IN)\n\n this.cleanupTether()\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n cleanupTether() {\n if (this._tether) {\n this._tether.destroy()\n\n // clean up after tether's junk classes\n // remove after they fix issue\n // (https://github.com/HubSpot/tether/issues/36)\n $(this.element).removeClass(this._removeTetherClasses)\n $(this.tip).removeClass(this._removeTetherClasses)\n }\n }\n\n\n // private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n let triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n $.proxy(this.toggle, this)\n )\n\n } else if (trigger !== Trigger.MANUAL) {\n let eventIn = trigger == Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n let eventOut = trigger == Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n $.proxy(this._enter, this)\n )\n .on(\n eventOut,\n this.config.selector,\n $.proxy(this._leave, this)\n )\n }\n })\n\n if (this.config.selector) {\n this.config = $.extend({}, this.config, {\n trigger : 'manual',\n selector : ''\n })\n } else {\n this._fixTitle()\n }\n }\n\n _removeTetherClasses(i, css) {\n return ((css.baseVal || css).match(\n new RegExp(`(^|\\\\s)${CLASS_PREFIX}-\\\\S+`, 'g')) || []\n ).join(' ')\n }\n\n _fixTitle() {\n let titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n (titleType !== 'string')) {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n let dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type == 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.IN) ||\n (context._hoverState === HoverState.IN)) {\n context._hoverState = HoverState.IN\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.IN\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.IN) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n let dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type == 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (let trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = $.extend(\n {},\n this.constructor.Default,\n $(this.element).data(),\n config\n )\n\n if (config.delay && typeof config.delay === 'number') {\n config.delay = {\n show : config.delay,\n hide : config.delay\n }\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n let config = {}\n\n if (this.config) {\n for (let key in this.config) {\n let value = this.config[key]\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n }\n\n return config\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = typeof config === 'object' ?\n config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n\n})(jQuery)\n\nexport default Tooltip\n"]} \ No newline at end of file diff --git a/js/dist/util.js b/js/dist/util.js new file mode 100644 index 0000000000..a135c3f385 --- /dev/null +++ b/js/dist/util.js @@ -0,0 +1,151 @@ +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): util.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +'use strict'; + +var Util = (function ($) { + + /** + * ------------------------------------------------------------------------ + * Private TransitionEnd Helpers + * ------------------------------------------------------------------------ + */ + + var transition = false; + + var TransitionEndEvent = { + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend' + }; + + // shoutout AngusCroll (https://goo.gl/pxwQGp) + function toType(obj) { + return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); + } + + function isElement(obj) { + return (obj[0] || obj).nodeType; + } + + function getSpecialTransitionEndEvent() { + return { + bindType: transition.end, + delegateType: transition.end, + handle: function handle(event) { + if ($(event.target).is(this)) { + return event.handleObj.handler.apply(this, arguments); + } + } + }; + } + + function transitionEndTest() { + if (window.QUnit) { + return false; + } + + var el = document.createElement('bootstrap'); + + for (var name in TransitionEndEvent) { + if (el.style[name] !== undefined) { + return { end: TransitionEndEvent[name] }; + } + } + + return false; + } + + function transitionEndEmulator(duration) { + var _this = this; + + var called = false; + + $(this).one(Util.TRANSITION_END, function () { + called = true; + }); + + setTimeout(function () { + if (!called) { + Util.triggerTransitionEnd(_this); + } + }, duration); + + return this; + } + + function setTransitionEndSupport() { + transition = transitionEndTest(); + + $.fn.emulateTransitionEnd = transitionEndEmulator; + + if (Util.supportsTransitionEnd()) { + $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); + } + } + + /** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + var Util = { + + TRANSITION_END: 'bsTransitionEnd', + + getUID: function getUID(prefix) { + do prefix += ~ ~(Math.random() * 1000000); while (document.getElementById(prefix)); + return prefix; + }, + + getSelectorFromElement: function getSelectorFromElement(element) { + var selector = element.getAttribute('data-target'); + + if (!selector) { + selector = element.getAttribute('href') || ''; + selector = /^#[a-z]/i.test(selector) ? selector : null; + } + + return selector; + }, + + reflow: function reflow(element) { + new Function('bs', 'return bs')(element.offsetHeight); + }, + + triggerTransitionEnd: function triggerTransitionEnd(element) { + $(element).trigger(transition.end); + }, + + supportsTransitionEnd: function supportsTransitionEnd() { + return !!transition; + }, + + typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { + + for (var property in configTypes) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = undefined; + + if (value && isElement(value)) valueType = 'element';else valueType = toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new Error('' + componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".')); + } + } + } + + }; + + setTransitionEndSupport(); + + return Util; +})(jQuery); +//# sourceMappingURL=util.js.map \ No newline at end of file diff --git a/js/dist/util.js.map b/js/dist/util.js.map new file mode 100644 index 0000000000..7c73c492e6 --- /dev/null +++ b/js/dist/util.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/util.js"],"names":[],"mappings":"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","file":"js/src/util.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const TransitionEndEvent = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n // shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return ({}).toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n }\n\n function isElement(obj) {\n return (obj[0] || obj).nodeType;\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle: function (event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments)\n }\n }\n }\n }\n\n function transitionEndTest() {\n if (window.QUnit) {\n return false\n }\n\n let el = document.createElement('bootstrap')\n\n for (var name in TransitionEndEvent) {\n if (el.style[name] !== undefined) {\n return { end: TransitionEndEvent[name] }\n }\n }\n\n return false\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, function () {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n let Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector) {\n selector = element.getAttribute('href') || ''\n selector = /^#[a-z]/i.test(selector) ? selector : null\n }\n\n return selector\n },\n\n reflow(element) {\n new Function('bs', 'return bs')(element.offsetHeight)\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return !!transition\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n\n for (let property in configTypes) {\n let expectedTypes = configTypes[property]\n let value = config[property]\n let valueType\n\n if (value && isElement(value)) valueType = 'element'\n else valueType = toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n\n }\n\n setTransitionEndSupport()\n\n return Util\n\n})(jQuery)\n\nexport default Util\n"]} \ No newline at end of file diff --git a/js/dropdown.js b/js/dropdown.js deleted file mode 100644 index 8fd86a0254..0000000000 --- a/js/dropdown.js +++ /dev/null @@ -1,165 +0,0 @@ -/* ======================================================================== - * Bootstrap: dropdown.js v3.3.4 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle="dropdown"]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.VERSION = '3.3.4' - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = selector && $(selector) - - return $parent && $parent.length ? $parent : $this.parent() - } - - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) - }) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $(document.createElement('div')) - .addClass('dropdown-backdrop') - .insertAfter($(this)) - .on('click', clearMenus) - } - - var relatedTarget = { relatedTarget: this } - $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this - .trigger('focus') - .attr('aria-expanded', 'true') - - $parent - .toggleClass('open') - .trigger('shown.bs.dropdown', relatedTarget) - } - - return false - } - - Dropdown.prototype.keydown = function (e) { - if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return - - var $this = $(this) - - e.preventDefault() - e.stopPropagation() - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - if (!isActive && e.which != 27 || isActive && e.which == 27) { - if (e.which == 27) $parent.find(toggle).trigger('focus') - return $this.trigger('click') - } - - var desc = ' li:not(.disabled):visible a' - var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc) - - if (!$items.length) return - - var index = $items.index(e.target) - - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 - - $items.eq(index).trigger('focus') - } - - - // DROPDOWN PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.dropdown') - - if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.dropdown - - $.fn.dropdown = Plugin - $.fn.dropdown.Constructor = Dropdown - - - // DROPDOWN NO CONFLICT - // ==================== - - $.fn.dropdown.noConflict = function () { - $.fn.dropdown = old - return this - } - - - // APPLY TO STANDARD DROPDOWN ELEMENTS - // =================================== - - $(document) - .on('click.bs.dropdown.data-api', clearMenus) - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) - -}(jQuery); diff --git a/js/modal.js b/js/modal.js deleted file mode 100644 index 0426561af6..0000000000 --- a/js/modal.js +++ /dev/null @@ -1,337 +0,0 @@ -/* ======================================================================== - * Bootstrap: modal.js v3.3.4 - * http://getbootstrap.com/javascript/#modals - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // MODAL CLASS DEFINITION - // ====================== - - var Modal = function (element, options) { - this.options = options - this.$body = $(document.body) - this.$element = $(element) - this.$dialog = this.$element.find('.modal-dialog') - this.$backdrop = null - this.isShown = null - this.originalBodyPad = null - this.scrollbarWidth = 0 - this.ignoreBackdropClick = false - - if (this.options.remote) { - this.$element - .find('.modal-content') - .load(this.options.remote, $.proxy(function () { - this.$element.trigger('loaded.bs.modal') - }, this)) - } - } - - Modal.VERSION = '3.3.4' - - Modal.TRANSITION_DURATION = 300 - Modal.BACKDROP_TRANSITION_DURATION = 150 - - Modal.DEFAULTS = { - backdrop: true, - keyboard: true, - show: true - } - - Modal.prototype.toggle = function (_relatedTarget) { - return this.isShown ? this.hide() : this.show(_relatedTarget) - } - - Modal.prototype.show = function (_relatedTarget) { - var that = this - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) - - this.$element.trigger(e) - - if (this.isShown || e.isDefaultPrevented()) return - - this.isShown = true - - this.checkScrollbar() - this.setScrollbar() - this.$body.addClass('modal-open') - - this.escape() - this.resize() - - this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) - - this.$dialog.on('mousedown.dismiss.bs.modal', function () { - that.$element.one('mouseup.dismiss.bs.modal', function (e) { - if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true - }) - }) - - this.backdrop(function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(that.$body) // don't move modals dom position - } - - that.$element - .show() - .scrollTop(0) - - that.adjustDialog() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - that.enforceFocus() - - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) - - transition ? - that.$dialog // wait for modal to slide in - .one('bsTransitionEnd', function () { - that.$element.trigger('focus').trigger(e) - }) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.$element.trigger('focus').trigger(e) - }) - } - - Modal.prototype.hide = function (e) { - if (e) e.preventDefault() - - e = $.Event('hide.bs.modal') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - this.escape() - this.resize() - - $(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') - - $.support.transition && this.$element.hasClass('fade') ? - this.$element - .one('bsTransitionEnd', $.proxy(this.hideModal, this)) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - this.hideModal() - } - - Modal.prototype.enforceFocus = function () { - $(document) - .off('focusin.bs.modal') // guard against infinite focus loop - .on('focusin.bs.modal', $.proxy(function (e) { - if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { - this.$element.trigger('focus') - } - }, this)) - } - - Modal.prototype.escape = function () { - if (this.isShown && this.options.keyboard) { - this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { - e.which == 27 && this.hide() - }, this)) - } else if (!this.isShown) { - this.$element.off('keydown.dismiss.bs.modal') - } - } - - Modal.prototype.resize = function () { - if (this.isShown) { - $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) - } else { - $(window).off('resize.bs.modal') - } - } - - Modal.prototype.hideModal = function () { - var that = this - this.$element.hide() - this.backdrop(function () { - that.$body.removeClass('modal-open') - that.resetAdjustments() - that.resetScrollbar() - that.$element.trigger('hidden.bs.modal') - }) - } - - Modal.prototype.removeBackdrop = function () { - this.$backdrop && this.$backdrop.remove() - this.$backdrop = null - } - - Modal.prototype.backdrop = function (callback) { - var that = this - var animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $(document.createElement('div')) - .addClass('modal-backdrop ' + animate) - .appendTo(this.$body) - - this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { - if (this.ignoreBackdropClick) { - this.ignoreBackdropClick = false - return - } - if (e.target !== e.currentTarget) return - this.options.backdrop == 'static' - ? this.$element[0].focus() - : this.hide() - }, this)) - - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow - - this.$backdrop.addClass('in') - - if (!callback) return - - doAnimate ? - this.$backdrop - .one('bsTransitionEnd', callback) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callback() - - } else if (!this.isShown && this.$backdrop) { - this.$backdrop.removeClass('in') - - var callbackRemove = function () { - that.removeBackdrop() - callback && callback() - } - $.support.transition && this.$element.hasClass('fade') ? - this.$backdrop - .one('bsTransitionEnd', callbackRemove) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callbackRemove() - - } else if (callback) { - callback() - } - } - - // these following methods are used to handle overflowing modals - - Modal.prototype.handleUpdate = function () { - this.adjustDialog() - } - - Modal.prototype.adjustDialog = function () { - var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight - - this.$element.css({ - paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', - paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' - }) - } - - Modal.prototype.resetAdjustments = function () { - this.$element.css({ - paddingLeft: '', - paddingRight: '' - }) - } - - Modal.prototype.checkScrollbar = function () { - var fullWindowWidth = window.innerWidth - if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 - var documentElementRect = document.documentElement.getBoundingClientRect() - fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) - } - this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth - this.scrollbarWidth = this.measureScrollbar() - } - - Modal.prototype.setScrollbar = function () { - var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) - this.originalBodyPad = document.body.style.paddingRight || '' - if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) - } - - Modal.prototype.resetScrollbar = function () { - this.$body.css('padding-right', this.originalBodyPad) - } - - Modal.prototype.measureScrollbar = function () { // thx walsh - var scrollDiv = document.createElement('div') - scrollDiv.className = 'modal-scrollbar-measure' - this.$body.append(scrollDiv) - var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth - this.$body[0].removeChild(scrollDiv) - return scrollbarWidth - } - - - // MODAL PLUGIN DEFINITION - // ======================= - - function Plugin(option, _relatedTarget) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.modal') - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data) $this.data('bs.modal', (data = new Modal(this, options))) - if (typeof option == 'string') data[option](_relatedTarget) - else if (options.show) data.show(_relatedTarget) - }) - } - - var old = $.fn.modal - - $.fn.modal = Plugin - $.fn.modal.Constructor = Modal - - - // MODAL NO CONFLICT - // ================= - - $.fn.modal.noConflict = function () { - $.fn.modal = old - return this - } - - - // MODAL DATA-API - // ============== - - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { - var $this = $(this) - var href = $this.attr('href') - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 - var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) - - if ($this.is('a')) e.preventDefault() - - $target.one('show.bs.modal', function (showEvent) { - if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown - $target.one('hidden.bs.modal', function () { - $this.is(':visible') && $this.trigger('focus') - }) - }) - Plugin.call($target, option, this) - }) - -}(jQuery); diff --git a/js/popover.js b/js/popover.js deleted file mode 100644 index 0b0755ee27..0000000000 --- a/js/popover.js +++ /dev/null @@ -1,108 +0,0 @@ -/* ======================================================================== - * Bootstrap: popover.js v3.3.4 - * http://getbootstrap.com/javascript/#popovers - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // POPOVER PUBLIC CLASS DEFINITION - // =============================== - - var Popover = function (element, options) { - this.init('popover', element, options) - } - - if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - - Popover.VERSION = '3.3.4' - - Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { - placement: 'right', - trigger: 'click', - content: '', - template: '' - }) - - - // NOTE: POPOVER EXTENDS tooltip.js - // ================================ - - Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) - - Popover.prototype.constructor = Popover - - Popover.prototype.getDefaults = function () { - return Popover.DEFAULTS - } - - Popover.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - var content = this.getContent() - - $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) - $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events - this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' - ](content) - - $tip.removeClass('fade top bottom left right in') - - // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do - // this manually by checking the contents. - if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() - } - - Popover.prototype.hasContent = function () { - return this.getTitle() || this.getContent() - } - - Popover.prototype.getContent = function () { - var $e = this.$element - var o = this.options - - return $e.attr('data-content') - || (typeof o.content == 'function' ? - o.content.call($e[0]) : - o.content) - } - - Popover.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.arrow')) - } - - - // POPOVER PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.popover') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.popover', (data = new Popover(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.popover - - $.fn.popover = Plugin - $.fn.popover.Constructor = Popover - - - // POPOVER NO CONFLICT - // =================== - - $.fn.popover.noConflict = function () { - $.fn.popover = old - return this - } - -}(jQuery); diff --git a/js/scrollspy.js b/js/scrollspy.js deleted file mode 100644 index f860c1abad..0000000000 --- a/js/scrollspy.js +++ /dev/null @@ -1,172 +0,0 @@ -/* ======================================================================== - * Bootstrap: scrollspy.js v3.3.4 - * http://getbootstrap.com/javascript/#scrollspy - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // SCROLLSPY CLASS DEFINITION - // ========================== - - function ScrollSpy(element, options) { - this.$body = $(document.body) - this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) - this.options = $.extend({}, ScrollSpy.DEFAULTS, options) - this.selector = (this.options.target || '') + ' .nav li > a' - this.offsets = [] - this.targets = [] - this.activeTarget = null - this.scrollHeight = 0 - - this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) - this.refresh() - this.process() - } - - ScrollSpy.VERSION = '3.3.4' - - ScrollSpy.DEFAULTS = { - offset: 10 - } - - ScrollSpy.prototype.getScrollHeight = function () { - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - } - - ScrollSpy.prototype.refresh = function () { - var that = this - var offsetMethod = 'offset' - var offsetBase = 0 - - this.offsets = [] - this.targets = [] - this.scrollHeight = this.getScrollHeight() - - if (!$.isWindow(this.$scrollElement[0])) { - offsetMethod = 'position' - offsetBase = this.$scrollElement.scrollTop() - } - - this.$body - .find(this.selector) - .map(function () { - var $el = $(this) - var href = $el.data('target') || $el.attr('href') - var $href = /^#./.test(href) && $(href) - - return ($href - && $href.length - && $href.is(':visible') - && [[$href[offsetMethod]().top + offsetBase, href]]) || null - }) - .sort(function (a, b) { return a[0] - b[0] }) - .each(function () { - that.offsets.push(this[0]) - that.targets.push(this[1]) - }) - } - - ScrollSpy.prototype.process = function () { - var scrollTop = this.$scrollElement.scrollTop() + this.options.offset - var scrollHeight = this.getScrollHeight() - var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() - var offsets = this.offsets - var targets = this.targets - var activeTarget = this.activeTarget - var i - - if (this.scrollHeight != scrollHeight) { - this.refresh() - } - - if (scrollTop >= maxScroll) { - return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) - } - - if (activeTarget && scrollTop < offsets[0]) { - this.activeTarget = null - return this.clear() - } - - for (i = offsets.length; i--;) { - activeTarget != targets[i] - && scrollTop >= offsets[i] - && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) - && this.activate(targets[i]) - } - } - - ScrollSpy.prototype.activate = function (target) { - this.activeTarget = target - - this.clear() - - var selector = this.selector + - '[data-target="' + target + '"],' + - this.selector + '[href="' + target + '"]' - - var active = $(selector) - .parents('li') - .addClass('active') - - if (active.parent('.dropdown-menu').length) { - active = active - .closest('li.dropdown') - .addClass('active') - } - - active.trigger('activate.bs.scrollspy') - } - - ScrollSpy.prototype.clear = function () { - $(this.selector) - .parentsUntil(this.options.target, '.active') - .removeClass('active') - } - - - // SCROLLSPY PLUGIN DEFINITION - // =========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.scrollspy') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.scrollspy - - $.fn.scrollspy = Plugin - $.fn.scrollspy.Constructor = ScrollSpy - - - // SCROLLSPY NO CONFLICT - // ===================== - - $.fn.scrollspy.noConflict = function () { - $.fn.scrollspy = old - return this - } - - - // SCROLLSPY DATA-API - // ================== - - $(window).on('load.bs.scrollspy.data-api', function () { - $('[data-spy="scroll"]').each(function () { - var $spy = $(this) - Plugin.call($spy, $spy.data()) - }) - }) - -}(jQuery); diff --git a/js/src/alert.js b/js/src/alert.js new file mode 100644 index 0000000000..eda74d7064 --- /dev/null +++ b/js/src/alert.js @@ -0,0 +1,192 @@ +import Util from './util' + + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Alert = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'alert' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.alert' + const EVENT_KEY = `.${DATA_KEY}` + const DATA_API_KEY = '.data-api' + const JQUERY_NO_CONFLICT = $.fn[NAME] + const TRANSITION_DURATION = 150 + + const Selector = { + DISMISS : '[data-dismiss="alert"]' + } + + const Event = { + CLOSE : `close${EVENT_KEY}`, + CLOSED : `closed${EVENT_KEY}`, + CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` + } + + const ClassName = { + ALERT : 'alert', + FADE : 'fade', + IN : 'in' + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Alert { + + constructor(element) { + this._element = element + } + + + // getters + + static get VERSION() { + return VERSION + } + + + // public + + close(element) { + element = element || this._element + + let rootElement = this._getRootElement(element) + let customEvent = this._triggerCloseEvent(rootElement) + + if (customEvent.isDefaultPrevented()) { + return + } + + this._removeElement(rootElement) + } + + dispose() { + $.removeData(this._element, DATA_KEY) + this._element = null + } + + + // private + + _getRootElement(element) { + let parent = false + let selector = Util.getSelectorFromElement(element) + + if (selector) { + parent = $(selector)[0] + } + + if (!parent) { + parent = $(element).closest(`.${ClassName.ALERT}`)[0] + } + + return parent + } + + _triggerCloseEvent(element) { + var closeEvent = $.Event(Event.CLOSE) + $(element).trigger(closeEvent) + return closeEvent + } + + _removeElement(element) { + $(element).removeClass(ClassName.IN) + + if (!Util.supportsTransitionEnd() || + !$(element).hasClass(ClassName.FADE)) { + this._destroyElement(element) + return + } + + $(element) + .one(Util.TRANSITION_END, this._destroyElement.bind(this, element)) + .emulateTransitionEnd(TRANSITION_DURATION) + } + + _destroyElement(element) { + $(element) + .detach() + .trigger(Event.CLOSED) + .remove() + } + + + // static + + static _jQueryInterface(config) { + return this.each(function () { + let $element = $(this) + let data = $element.data(DATA_KEY) + + if (!data) { + data = new Alert(this) + $element.data(DATA_KEY, data) + } + + if (config === 'close') { + data[config](this) + } + }) + } + + static _handleDismiss(alertInstance) { + return function (event) { + if (event) { + event.preventDefault() + } + + alertInstance.close(this) + } + } + + } + + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on( + Event.CLICK_DATA_API, + Selector.DISMISS, + Alert._handleDismiss(new Alert()) + ) + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Alert._jQueryInterface + $.fn[NAME].Constructor = Alert + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Alert._jQueryInterface + } + + return Alert + +})(jQuery) + +export default Alert diff --git a/js/src/button.js b/js/src/button.js new file mode 100644 index 0000000000..8210e8ae07 --- /dev/null +++ b/js/src/button.js @@ -0,0 +1,174 @@ +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Button = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'button' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.button' + const EVENT_KEY = `.${DATA_KEY}` + const DATA_API_KEY = '.data-api' + const JQUERY_NO_CONFLICT = $.fn[NAME] + const TRANSITION_DURATION = 150 + + const ClassName = { + ACTIVE : 'active', + BUTTON : 'btn', + FOCUS : 'focus' + } + + const Selector = { + DATA_TOGGLE_CARROT : '[data-toggle^="button"]', + DATA_TOGGLE : '[data-toggle="buttons"]', + INPUT : 'input', + ACTIVE : '.active', + BUTTON : '.btn' + } + + const Event = { + CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`, + FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` + + `blur${EVENT_KEY}${DATA_API_KEY}` + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Button { + + constructor(element) { + this._element = element + } + + + // getters + + static get VERSION() { + return VERSION + } + + + // public + + toggle() { + let triggerChangeEvent = true + let rootElement = $(this._element).closest( + Selector.DATA_TOGGLE + )[0] + + if (rootElement) { + let input = $(this._element).find(Selector.INPUT)[0] + + if (input) { + if (input.type === 'radio') { + if (input.checked && + $(this._element).hasClass(ClassName.ACTIVE)) { + triggerChangeEvent = false + + } else { + let activeElement = $(rootElement).find(Selector.ACTIVE)[0] + + if (activeElement) { + $(activeElement).removeClass(ClassName.ACTIVE) + } + } + } + + if (triggerChangeEvent) { + input.checked = !$(this._element).hasClass(ClassName.ACTIVE) + $(this._element).trigger('change') + } + } + } else { + this._element.setAttribute('aria-pressed', + !$(this._element).hasClass(ClassName.ACTIVE)) + } + + if (triggerChangeEvent) { + $(this._element).toggleClass(ClassName.ACTIVE) + } + } + + dispose() { + $.removeData(this._element, DATA_KEY) + this._element = null + } + + + // static + + static _jQueryInterface(config) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + + if (!data) { + data = new Button(this) + $(this).data(DATA_KEY, data) + } + + if (config === 'toggle') { + data[config]() + } + }) + } + + } + + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document) + .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + event.preventDefault() + + let button = event.target + + if (!$(button).hasClass(ClassName.BUTTON)) { + button = $(button).closest(Selector.BUTTON) + } + + Button._jQueryInterface.call($(button), 'toggle') + }) + .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { + var button = $(event.target).closest(Selector.BUTTON)[0] + $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)) + }) + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Button._jQueryInterface + $.fn[NAME].Constructor = Button + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Button._jQueryInterface + } + + return Button + +})(jQuery) + +export default Button diff --git a/js/src/carousel.js b/js/src/carousel.js new file mode 100644 index 0000000000..c11f0a599d --- /dev/null +++ b/js/src/carousel.js @@ -0,0 +1,468 @@ +import Util from './util' + + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Carousel = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'carousel' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.carousel' + const EVENT_KEY = `.${DATA_KEY}` + const DATA_API_KEY = '.data-api' + const JQUERY_NO_CONFLICT = $.fn[NAME] + const TRANSITION_DURATION = 600 + + const Default = { + interval : 5000, + keyboard : true, + slide : false, + pause : 'hover', + wrap : true + } + + const DefaultType = { + interval : '(number|boolean)', + keyboard : 'boolean', + slide : '(boolean|string)', + pause : '(string|boolean)', + wrap : 'boolean' + } + + const Direction = { + NEXT : 'next', + PREVIOUS : 'prev' + } + + const Event = { + SLIDE : `slide${EVENT_KEY}`, + SLID : `slid${EVENT_KEY}`, + KEYDOWN : `keydown${EVENT_KEY}`, + MOUSEENTER : `mouseenter${EVENT_KEY}`, + MOUSELEAVE : `mouseleave${EVENT_KEY}`, + LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`, + CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` + } + + const ClassName = { + CAROUSEL : 'carousel', + ACTIVE : 'active', + SLIDE : 'slide', + RIGHT : 'right', + LEFT : 'left', + ITEM : 'carousel-item' + } + + const Selector = { + ACTIVE : '.active', + ACTIVE_ITEM : '.active.carousel-item', + ITEM : '.carousel-item', + NEXT_PREV : '.next, .prev', + INDICATORS : '.carousel-indicators', + DATA_SLIDE : '[data-slide], [data-slide-to]', + DATA_RIDE : '[data-ride="carousel"]' + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Carousel { + + constructor(element, config) { + this._items = null + this._interval = null + this._activeElement = null + + this._isPaused = false + this._isSliding = false + + this._config = this._getConfig(config) + this._element = $(element)[0] + this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0] + + this._addEventListeners() + } + + + // getters + + static get VERSION() { + return VERSION + } + + static get Default() { + return Default + } + + + // public + + next() { + if (!this._isSliding) { + this._slide(Direction.NEXT) + } + } + + prev() { + if (!this._isSliding) { + this._slide(Direction.PREVIOUS) + } + } + + pause(event) { + if (!event) { + this._isPaused = true + } + + if ($(this._element).find(Selector.NEXT_PREV)[0] && + Util.supportsTransitionEnd()) { + Util.triggerTransitionEnd(this._element) + this.cycle(true) + } + + clearInterval(this._interval) + this._interval = null + } + + cycle(event) { + if (!event) { + this._isPaused = false + } + + if (this._interval) { + clearInterval(this._interval) + this._interval = null + } + + if (this._config.interval && !this._isPaused) { + this._interval = setInterval( + $.proxy(this.next, this), this._config.interval + ) + } + } + + to(index) { + this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0] + + let activeIndex = this._getItemIndex(this._activeElement) + + if (index > (this._items.length - 1) || index < 0) { + return + } + + if (this._isSliding) { + $(this._element).one(Event.SLID, () => this.to(index)) + return + } + + if (activeIndex == index) { + this.pause() + this.cycle() + return + } + + var direction = index > activeIndex ? + Direction.NEXT : + Direction.PREVIOUS + + this._slide(direction, this._items[index]) + } + + dispose() { + $(this._element).off(EVENT_KEY) + $.removeData(this._element, DATA_KEY) + + this._items = null + this._config = null + this._element = null + this._interval = null + this._isPaused = null + this._isSliding = null + this._activeElement = null + this._indicatorsElement = null + } + + + // private + + _getConfig(config) { + config = $.extend({}, Default, config) + Util.typeCheckConfig(NAME, config, DefaultType) + return config + } + + _addEventListeners() { + if (this._config.keyboard) { + $(this._element) + .on(Event.KEYDOWN, $.proxy(this._keydown, this)) + } + + if (this._config.pause == 'hover' && + !('ontouchstart' in document.documentElement)) { + $(this._element) + .on(Event.MOUSEENTER, $.proxy(this.pause, this)) + .on(Event.MOUSELEAVE, $.proxy(this.cycle, this)) + } + } + + _keydown(event) { + event.preventDefault() + + if (/input|textarea/i.test(event.target.tagName)) return + + switch (event.which) { + case 37: this.prev(); break + case 39: this.next(); break + default: return + } + } + + _getItemIndex(element) { + this._items = $.makeArray($(element).parent().find(Selector.ITEM)) + return this._items.indexOf(element) + } + + _getItemByDirection(direction, activeElement) { + let isNextDirection = direction === Direction.NEXT + let isPrevDirection = direction === Direction.PREVIOUS + let activeIndex = this._getItemIndex(activeElement) + let lastItemIndex = (this._items.length - 1) + let isGoingToWrap = (isPrevDirection && activeIndex === 0) || + (isNextDirection && activeIndex == lastItemIndex) + + if (isGoingToWrap && !this._config.wrap) { + return activeElement + } + + let delta = direction == Direction.PREVIOUS ? -1 : 1 + let itemIndex = (activeIndex + delta) % this._items.length + + return itemIndex === -1 ? + this._items[this._items.length - 1] : this._items[itemIndex] + } + + + _triggerSlideEvent(relatedTarget, directionalClassname) { + let slideEvent = $.Event(Event.SLIDE, { + relatedTarget: relatedTarget, + direction: directionalClassname + }) + + $(this._element).trigger(slideEvent) + + return slideEvent + } + + _setActiveIndicatorElement(element) { + if (this._indicatorsElement) { + $(this._indicatorsElement) + .find(Selector.ACTIVE) + .removeClass(ClassName.ACTIVE) + + let nextIndicator = this._indicatorsElement.children[ + this._getItemIndex(element) + ] + + if (nextIndicator) { + $(nextIndicator).addClass(ClassName.ACTIVE) + } + } + } + + _slide(direction, element) { + let activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0] + let nextElement = element || activeElement && + this._getItemByDirection(direction, activeElement) + + let isCycling = !!this._interval + + let directionalClassName = direction == Direction.NEXT ? + ClassName.LEFT : + ClassName.RIGHT + + if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) { + this._isSliding = false + return + } + + let slideEvent = this._triggerSlideEvent(nextElement, directionalClassName) + if (slideEvent.isDefaultPrevented()) { + return + } + + if (!activeElement || !nextElement) { + // some weirdness is happening, so we bail + return + } + + this._isSliding = true + + if (isCycling) { + this.pause() + } + + this._setActiveIndicatorElement(nextElement) + + var slidEvent = $.Event(Event.SLID, { + relatedTarget: nextElement, + direction: directionalClassName + }) + + if (Util.supportsTransitionEnd() && + $(this._element).hasClass(ClassName.SLIDE)) { + + $(nextElement).addClass(direction) + + Util.reflow(nextElement) + + $(activeElement).addClass(directionalClassName) + $(nextElement).addClass(directionalClassName) + + $(activeElement) + .one(Util.TRANSITION_END, () => { + $(nextElement) + .removeClass(directionalClassName) + .removeClass(direction) + + $(nextElement).addClass(ClassName.ACTIVE) + + $(activeElement) + .removeClass(ClassName.ACTIVE) + .removeClass(direction) + .removeClass(directionalClassName) + + this._isSliding = false + + setTimeout(() => $(this._element).trigger(slidEvent), 0) + + }) + .emulateTransitionEnd(TRANSITION_DURATION) + + } else { + $(activeElement).removeClass(ClassName.ACTIVE) + $(nextElement).addClass(ClassName.ACTIVE) + + this._isSliding = false + $(this._element).trigger(slidEvent) + } + + if (isCycling) { + this.cycle() + } + } + + + // static + + static _jQueryInterface(config) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + let _config = $.extend({}, Default, $(this).data()) + + if (typeof config === 'object') { + $.extend(_config, config) + } + + let action = typeof config === 'string' ? config : _config.slide + + if (!data) { + data = new Carousel(this, _config) + $(this).data(DATA_KEY, data) + } + + if (typeof config == 'number') { + data.to(config) + + } else if (action) { + data[action]() + + } else if (_config.interval) { + data.pause() + data.cycle() + } + }) + } + + static _dataApiClickHandler(event) { + let selector = Util.getSelectorFromElement(this) + + if (!selector) { + return + } + + let target = $(selector)[0] + + if (!target || !$(target).hasClass(ClassName.CAROUSEL)) { + return + } + + let config = $.extend({}, $(target).data(), $(this).data()) + + let slideIndex = this.getAttribute('data-slide-to') + if (slideIndex) { + config.interval = false + } + + Carousel._jQueryInterface.call($(target), config) + + if (slideIndex) { + $(target).data(DATA_KEY).to(slideIndex) + } + + event.preventDefault() + } + + } + + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document) + .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler) + + $(window).on(Event.LOAD_DATA_API, function () { + $(Selector.DATA_RIDE).each(function () { + let $carousel = $(this) + Carousel._jQueryInterface.call($carousel, $carousel.data()) + }) + }) + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Carousel._jQueryInterface + $.fn[NAME].Constructor = Carousel + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Carousel._jQueryInterface + } + + return Carousel + +})(jQuery) + +export default Carousel diff --git a/js/src/collapse.js b/js/src/collapse.js new file mode 100644 index 0000000000..e911c98d1d --- /dev/null +++ b/js/src/collapse.js @@ -0,0 +1,379 @@ +import Util from './util' + + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Collapse = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'collapse' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.collapse' + const EVENT_KEY = `.${DATA_KEY}` + const DATA_API_KEY = '.data-api' + const JQUERY_NO_CONFLICT = $.fn[NAME] + const TRANSITION_DURATION = 600 + + const Default = { + toggle : true, + parent : '' + } + + const DefaultType = { + toggle : 'boolean', + parent : 'string' + } + + const Event = { + SHOW : `show${EVENT_KEY}`, + SHOWN : `shown${EVENT_KEY}`, + HIDE : `hide${EVENT_KEY}`, + HIDDEN : `hidden${EVENT_KEY}`, + CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` + } + + const ClassName = { + IN : 'in', + COLLAPSE : 'collapse', + COLLAPSING : 'collapsing', + COLLAPSED : 'collapsed' + } + + const Dimension = { + WIDTH : 'width', + HEIGHT : 'height' + } + + const Selector = { + ACTIVES : '.panel > .in, .panel > .collapsing', + DATA_TOGGLE : '[data-toggle="collapse"]' + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Collapse { + + constructor(element, config) { + this._isTransitioning = false + this._element = element + this._config = this._getConfig(config) + this._triggerArray = $.makeArray($( + `[data-toggle="collapse"][href="#${element.id}"],` + + `[data-toggle="collapse"][data-target="#${element.id}"]` + )) + + this._parent = this._config.parent ? this._getParent() : null + + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._element, this._triggerArray) + } + + if (this._config.toggle) { + this.toggle() + } + } + + + // getters + + static get VERSION() { + return VERSION + } + + static get Default() { + return Default + } + + + // public + + toggle() { + if ($(this._element).hasClass(ClassName.IN)) { + this.hide() + } else { + this.show() + } + } + + show() { + if (this._isTransitioning || + $(this._element).hasClass(ClassName.IN)) { + return + } + + let actives + let activesData + + if (this._parent) { + actives = $.makeArray($(Selector.ACTIVES)) + if (!actives.length) { + actives = null + } + } + + if (actives) { + activesData = $(actives).data(DATA_KEY) + if (activesData && activesData._isTransitioning) { + return + } + } + + let startEvent = $.Event(Event.SHOW) + $(this._element).trigger(startEvent) + if (startEvent.isDefaultPrevented()) { + return + } + + if (actives) { + Collapse._jQueryInterface.call($(actives), 'hide') + if (!activesData) { + $(actives).data(DATA_KEY, null) + } + } + + let dimension = this._getDimension() + + $(this._element) + .removeClass(ClassName.COLLAPSE) + .addClass(ClassName.COLLAPSING) + + this._element.style[dimension] = 0 + this._element.setAttribute('aria-expanded', true) + + if (this._triggerArray.length) { + $(this._triggerArray) + .removeClass(ClassName.COLLAPSED) + .attr('aria-expanded', true) + } + + this.setTransitioning(true) + + let complete = () => { + $(this._element) + .removeClass(ClassName.COLLAPSING) + .addClass(ClassName.COLLAPSE) + .addClass(ClassName.IN) + + this._element.style[dimension] = '' + + this.setTransitioning(false) + + $(this._element).trigger(Event.SHOWN) + } + + if (!Util.supportsTransitionEnd()) { + complete() + return + } + + let scrollSize = 'scroll' + + (dimension[0].toUpperCase() + + dimension.slice(1)) + + $(this._element) + .one(Util.TRANSITION_END, complete) + .emulateTransitionEnd(TRANSITION_DURATION) + + this._element.style[dimension] = this._element[scrollSize] + 'px' + } + + hide() { + if (this._isTransitioning || + !$(this._element).hasClass(ClassName.IN)) { + return + } + + let startEvent = $.Event(Event.HIDE) + $(this._element).trigger(startEvent) + if (startEvent.isDefaultPrevented()) { + return + } + + let dimension = this._getDimension() + let offsetDimension = dimension === Dimension.WIDTH ? + 'offsetWidth' : 'offsetHeight' + + this._element.style[dimension] = this._element[offsetDimension] + 'px' + + Util.reflow(this._element) + + $(this._element) + .addClass(ClassName.COLLAPSING) + .removeClass(ClassName.COLLAPSE) + .removeClass(ClassName.IN) + + this._element.setAttribute('aria-expanded', false) + + if (this._triggerArray.length) { + $(this._triggerArray) + .addClass(ClassName.COLLAPSED) + .attr('aria-expanded', false) + } + + this.setTransitioning(true) + + let complete = () => { + this.setTransitioning(false) + $(this._element) + .removeClass(ClassName.COLLAPSING) + .addClass(ClassName.COLLAPSE) + .trigger(Event.HIDDEN) + } + + this._element.style[dimension] = 0 + + if (!Util.supportsTransitionEnd()) { + return complete() + } + + $(this._element) + .one(Util.TRANSITION_END, complete) + .emulateTransitionEnd(TRANSITION_DURATION) + } + + setTransitioning(isTransitioning) { + this._isTransitioning = isTransitioning + } + + dispose() { + $.removeData(this._element, DATA_KEY) + + this._config = null + this._parent = null + this._element = null + this._triggerArray = null + this._isTransitioning = null + } + + + // private + + _getConfig(config) { + config = $.extend({}, Default, config) + config.toggle = !!config.toggle // coerce string values + Util.typeCheckConfig(NAME, config, DefaultType) + return config + } + + _getDimension() { + let hasWidth = $(this._element).hasClass(Dimension.WIDTH) + return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT + } + + _getParent() { + let parent = $(this._config.parent)[0] + let selector = + `[data-toggle="collapse"][data-parent="${this._config.parent}"]` + + $(parent).find(selector).each((i, element) => { + this._addAriaAndCollapsedClass( + Collapse._getTargetFromElement(element), + [element] + ) + }) + + return parent + } + + _addAriaAndCollapsedClass(element, triggerArray) { + if (element) { + let isOpen = $(element).hasClass(ClassName.IN) + element.setAttribute('aria-expanded', isOpen) + + if (triggerArray.length) { + $(triggerArray) + .toggleClass(ClassName.COLLAPSED, !isOpen) + .attr('aria-expanded', isOpen) + } + } + } + + + // static + + static _getTargetFromElement(element) { + let selector = Util.getSelectorFromElement(element) + return selector ? $(selector)[0] : null + } + + static _jQueryInterface(config) { + return this.each(function () { + let $this = $(this) + let data = $this.data(DATA_KEY) + let _config = $.extend( + {}, + Default, + $this.data(), + typeof config === 'object' && config + ) + + if (!data && _config.toggle && /show|hide/.test(config)) { + _config.toggle = false + } + + if (!data) { + data = new Collapse(this, _config) + $this.data(DATA_KEY, data) + } + + if (typeof config === 'string') { + data[config]() + } + }) + } + + } + + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault() + + let target = Collapse._getTargetFromElement(this) + + let data = $(target).data(DATA_KEY) + let config = data ? 'toggle' : $(this).data() + + Collapse._jQueryInterface.call($(target), config) + }) + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Collapse._jQueryInterface + $.fn[NAME].Constructor = Collapse + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Collapse._jQueryInterface + } + + return Collapse + +})(jQuery) + +export default Collapse diff --git a/js/src/dropdown.js b/js/src/dropdown.js new file mode 100644 index 0000000000..bae0f7adb2 --- /dev/null +++ b/js/src/dropdown.js @@ -0,0 +1,286 @@ +import Util from './util' + + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Dropdown = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'dropdown' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.dropdown' + const EVENT_KEY = `.${DATA_KEY}` + const DATA_API_KEY = '.data-api' + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Event = { + HIDE   : `hide${EVENT_KEY}`, + HIDDEN   : `hidden${EVENT_KEY}`, + SHOW   : `show${EVENT_KEY}`, + SHOWN   : `shown${EVENT_KEY}`, + CLICK   : `click${EVENT_KEY}`, + CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`, + KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}` + } + + const ClassName = { + BACKDROP : 'dropdown-backdrop', + DISABLED : 'disabled', + OPEN : 'open' + } + + const Selector = { + BACKDROP : '.dropdown-backdrop', + DATA_TOGGLE : '[data-toggle="dropdown"]', + FORM_CHILD : '.dropdown form', + ROLE_MENU : '[role="menu"]', + ROLE_LISTBOX : '[role="listbox"]', + NAVBAR_NAV : '.navbar-nav', + VISIBLE_ITEMS : '[role="menu"] li:not(.disabled) a, ' + + '[role="listbox"] li:not(.disabled) a' + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Dropdown { + + constructor(element) { + this._element = element + + this._addEventListeners() + } + + + // getters + + static get VERSION() { + return VERSION + } + + + // public + + toggle() { + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return + } + + let parent = Dropdown._getParentFromElement(this) + let isActive = $(parent).hasClass(ClassName.OPEN) + + Dropdown._clearMenus() + + if (isActive) { + return false + } + + if ('ontouchstart' in document.documentElement && + (!$(parent).closest(Selector.NAVBAR_NAV).length)) { + + // if mobile we use a backdrop because click events don't delegate + let dropdown = document.createElement('div') + dropdown.className = ClassName.BACKDROP + $(dropdown).insertBefore(this) + $(dropdown).on('click', Dropdown._clearMenus) + } + + let relatedTarget = { relatedTarget : this } + let showEvent = $.Event(Event.SHOW, relatedTarget) + + $(parent).trigger(showEvent) + + if (showEvent.isDefaultPrevented()) { + return + } + + this.focus() + this.setAttribute('aria-expanded', 'true') + + $(parent).toggleClass(ClassName.OPEN) + $(parent).trigger(Event.SHOWN, relatedTarget) + + return false + } + + dispose() { + $.removeData(this._element, DATA_KEY) + $(this._element).off(EVENT_KEY) + this._element = null + } + + + // private + + _addEventListeners() { + $(this._element).on(Event.CLICK, this.toggle) + } + + + // static + + static _jQueryInterface(config) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + + if (!data) { + $(this).data(DATA_KEY, (data = new Dropdown(this))) + } + + if (typeof config === 'string') { + data[config].call(this) + } + }) + } + + static _clearMenus(event) { + if (event && event.which === 3) { + return + } + + let backdrop = $(Selector.BACKDROP)[0] + if (backdrop) { + backdrop.parentNode.removeChild(backdrop) + } + + let toggles = $.makeArray($(Selector.DATA_TOGGLE)) + + for (let i = 0; i < toggles.length; i++) { + let parent = Dropdown._getParentFromElement(toggles[i]) + let relatedTarget = { relatedTarget : toggles[i] } + + if (!$(parent).hasClass(ClassName.OPEN)) { + continue + } + + if (event && event.type === 'click' && + (/input|textarea/i.test(event.target.tagName)) && + ($.contains(parent, event.target))) { + continue + } + + let hideEvent = $.Event(Event.HIDE, relatedTarget) + $(parent).trigger(hideEvent) + if (hideEvent.isDefaultPrevented()) { + continue + } + + toggles[i].setAttribute('aria-expanded', 'false') + + $(parent) + .removeClass(ClassName.OPEN) + .trigger(Event.HIDDEN, relatedTarget) + } + } + + static _getParentFromElement(element) { + let parent + let selector = Util.getSelectorFromElement(element) + + if (selector) { + parent = $(selector)[0] + } + + return parent || element.parentNode + } + + static _dataApiKeydownHandler(event) { + if (!/(38|40|27|32)/.test(event.which) || + /input|textarea/i.test(event.target.tagName)) { + return + } + + event.preventDefault() + event.stopPropagation() + + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return + } + + let parent = Dropdown._getParentFromElement(this) + let isActive = $(parent).hasClass(ClassName.OPEN) + + if ((!isActive && event.which !== 27) || + (isActive && event.which === 27)) { + + if (event.which === 27) { + let toggle = $(parent).find(Selector.DATA_TOGGLE)[0] + $(toggle).trigger('focus') + } + + $(this).trigger('click') + return + } + + let items = $.makeArray($(Selector.VISIBLE_ITEMS)) + + items = items.filter((item) => { + return item.offsetWidth || item.offsetHeight + }) + + if (!items.length) { + return + } + + let index = items.indexOf(event.target) + + if (event.which === 38 && index > 0) index-- // up + if (event.which === 40 && index < items.length - 1) index++ // down + if (!~index) index = 0 + + items[index].focus() + } + + } + + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document) + .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler) + .on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler) + .on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler) + .on(Event.CLICK_DATA_API, Dropdown._clearMenus) + .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle) + .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { + e.stopPropagation() + }) + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Dropdown._jQueryInterface + $.fn[NAME].Constructor = Dropdown + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Dropdown._jQueryInterface + } + + return Dropdown + +})(jQuery) + +export default Dropdown diff --git a/js/src/modal.js b/js/src/modal.js new file mode 100644 index 0000000000..2ca603b23b --- /dev/null +++ b/js/src/modal.js @@ -0,0 +1,527 @@ +import Util from './util' + + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Modal = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'modal' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.modal' + const EVENT_KEY = `.${DATA_KEY}` + const DATA_API_KEY = '.data-api' + const JQUERY_NO_CONFLICT = $.fn[NAME] + const TRANSITION_DURATION = 300 + const BACKDROP_TRANSITION_DURATION = 150 + + const Default = { + backdrop : true, + keyboard : true, + focus : true, + show : true + } + + const DefaultType = { + backdrop : '(boolean|string)', + keyboard : 'boolean', + focus : 'boolean', + show : 'boolean' + } + + const Event = { + HIDE   : `hide${EVENT_KEY}`, + HIDDEN   : `hidden${EVENT_KEY}`, + SHOW   : `show${EVENT_KEY}`, + SHOWN   : `shown${EVENT_KEY}`, + FOCUSIN : `focusin${EVENT_KEY}`, + RESIZE : `resize${EVENT_KEY}`, + CLICK_DISMISS : `click.dismiss${EVENT_KEY}`, + KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`, + MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`, + MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`, + CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` + } + + const ClassName = { + BACKDROP : 'modal-backdrop', + OPEN : 'modal-open', + FADE : 'fade', + IN : 'in' + } + + const Selector = { + DIALOG : '.modal-dialog', + DATA_TOGGLE : '[data-toggle="modal"]', + DATA_DISMISS : '[data-dismiss="modal"]', + SCROLLBAR_MEASURER : 'modal-scrollbar-measure' + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Modal { + + constructor(element, config) { + this._config = this._getConfig(config) + this._element = element + this._dialog = $(element).find(Selector.DIALOG)[0] + this._backdrop = null + this._isShown = false + this._isBodyOverflowing = false + this._ignoreBackdropClick = false + this._originalBodyPadding = 0 + this._scrollbarWidth = 0 + } + + + // getters + + static get VERSION() { + return VERSION + } + + static get Default() { + return Default + } + + + // public + + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget) + } + + show(relatedTarget) { + let showEvent = $.Event(Event.SHOW, { + relatedTarget: relatedTarget + }) + + $(this._element).trigger(showEvent) + + if (this._isShown || showEvent.isDefaultPrevented()) { + return + } + + this._isShown = true + + this._checkScrollbar() + this._setScrollbar() + + $(document.body).addClass(ClassName.OPEN) + + this._setEscapeEvent() + this._setResizeEvent() + + $(this._element).on( + Event.CLICK_DISMISS, + Selector.DATA_DISMISS, + $.proxy(this.hide, this) + ) + + $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => { + $(this._element).one(Event.MOUSEUP_DISMISS, (event) => { + if ($(event.target).is(this._element)) { + that._ignoreBackdropClick = true + } + }) + }) + + this._showBackdrop( + $.proxy(this._showElement, this, relatedTarget) + ) + } + + hide(event) { + if (event) { + event.preventDefault() + } + + let hideEvent = $.Event(Event.HIDE) + + $(this._element).trigger(hideEvent) + + if (!this._isShown || hideEvent.isDefaultPrevented()) { + return + } + + this._isShown = false + + this._setEscapeEvent() + this._setResizeEvent() + + $(document).off(Event.FOCUSIN) + + $(this._element).removeClass(ClassName.IN) + + $(this._element).off(Event.CLICK_DISMISS) + $(this._dialog).off(Event.MOUSEDOWN_DISMISS) + + if (Util.supportsTransitionEnd() && + ($(this._element).hasClass(ClassName.FADE))) { + + $(this._element) + .one(Util.TRANSITION_END, $.proxy(this._hideModal, this)) + .emulateTransitionEnd(TRANSITION_DURATION) + } else { + this._hideModal() + } + } + + dispose() { + $.removeData(this._element, DATA_KEY) + + $(window).off(EVENT_KEY) + $(document).off(EVENT_KEY) + $(this._element).off(EVENT_KEY) + $(this._backdrop).off(EVENT_KEY) + + this._config = null + this._element = null + this._dialog = null + this._backdrop = null + this._isShown = null + this._isBodyOverflowing = null + this._ignoreBackdropClick = null + this._originalBodyPadding = null + this._scrollbarWidth = null + } + + + // private + + _getConfig(config) { + config = $.extend({}, Default, config) + Util.typeCheckConfig(NAME, config, DefaultType) + return config + } + + _showElement(relatedTarget) { + let transition = Util.supportsTransitionEnd() && + $(this._element).hasClass(ClassName.FADE) + + if (!this._element.parentNode || + (this._element.parentNode.nodeType !== Node.ELEMENT_NODE)) { + // don't move modals dom position + document.body.appendChild(this._element) + } + + this._element.style.display = 'block' + this._element.scrollTop = 0 + + if (transition) { + Util.reflow(this._element) + } + + $(this._element).addClass(ClassName.IN) + + if (this._config.focus) this._enforceFocus() + + let shownEvent = $.Event(Event.SHOWN, { + relatedTarget: relatedTarget + }) + + let transitionComplete = () => { + if (this._config.focus) this._element.focus() + $(this._element).trigger(shownEvent) + } + + if (transition) { + $(this._dialog) + .one(Util.TRANSITION_END, transitionComplete) + .emulateTransitionEnd(TRANSITION_DURATION) + } else { + transitionComplete() + } + } + + _enforceFocus() { + $(document) + .off(Event.FOCUSIN) // guard against infinite focus loop + .on(Event.FOCUSIN, (event) => { + if (this._element !== event.target && + (!$(this._element).has(event.target).length)) { + this._element.focus() + } + }) + } + + _setEscapeEvent() { + if (this._isShown && this._config.keyboard) { + $(this._element).on(Event.KEYDOWN_DISMISS, (event) => { + if (event.which === 27) { + this.hide() + } + }) + + } else if (!this._isShown) { + $(this._element).off(Event.KEYDOWN_DISMISS) + } + } + + _setResizeEvent() { + if (this._isShown) { + $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this)) + } else { + $(window).off(Event.RESIZE) + } + } + + _hideModal() { + this._element.style.display = 'none' + this._showBackdrop(() => { + $(document.body).removeClass(ClassName.OPEN) + this._resetAdjustments() + this._resetScrollbar() + $(this._element).trigger(Event.HIDDEN) + }) + } + + _removeBackdrop() { + if (this._backdrop) { + $(this._backdrop).remove() + this._backdrop = null + } + } + + _showBackdrop(callback) { + let animate = $(this._element).hasClass(ClassName.FADE) ? + ClassName.FADE : '' + + if (this._isShown && this._config.backdrop) { + let doAnimate = Util.supportsTransitionEnd() && animate + + this._backdrop = document.createElement('div') + this._backdrop.className = ClassName.BACKDROP + + if (animate) { + $(this._backdrop).addClass(animate) + } + + $(this._backdrop).appendTo(this.$body) + + $(this._element).on(Event.CLICK_DISMISS, (event) => { + if (this._ignoreBackdropClick) { + this._ignoreBackdropClick = false + return + } + if (event.target !== event.currentTarget) { + return + } + if (this._config.backdrop === 'static') { + this._element.focus() + } else { + this.hide() + } + }) + + if (doAnimate) { + Util.reflow(this._backdrop) + } + + $(this._backdrop).addClass(ClassName.IN) + + if (!callback) { + return + } + + if (!doAnimate) { + callback() + return + } + + $(this._backdrop) + .one(Util.TRANSITION_END, callback) + .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION) + + } else if (!this._isShown && this._backdrop) { + $(this._backdrop).removeClass(ClassName.IN) + + let callbackRemove = () => { + this._removeBackdrop() + if (callback) { + callback() + } + } + + if (Util.supportsTransitionEnd() && + ($(this._element).hasClass(ClassName.FADE))) { + $(this._backdrop) + .one(Util.TRANSITION_END, callbackRemove) + .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION) + } else { + callbackRemove() + } + + } else if (callback) { + callback() + } + } + + + // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // todo (fat): these should probably be refactored out of modal.js + // ---------------------------------------------------------------------- + + _handleUpdate() { + this._adjustDialog() + } + + _adjustDialog() { + let isModalOverflowing = + this._element.scrollHeight > document.documentElement.clientHeight + + if (!this._isBodyOverflowing && isModalOverflowing) { + this._element.style.paddingLeft = this._scrollbarWidth + 'px' + } + + if (this._isBodyOverflowing && !isModalOverflowing) { + this._element.style.paddingRight = this._scrollbarWidth + 'px' + } + } + + _resetAdjustments() { + this._element.style.paddingLeft = '' + this._element.style.paddingRight = '' + } + + _checkScrollbar() { + let fullWindowWidth = window.innerWidth + if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 + let documentElementRect = document.documentElement.getBoundingClientRect() + fullWindowWidth = + documentElementRect.right - Math.abs(documentElementRect.left) + } + this._isBodyOverflowing = document.body.clientWidth < fullWindowWidth + this._scrollbarWidth = this._getScrollbarWidth() + } + + _setScrollbar() { + let bodyPadding = parseInt( + $(document.body).css('padding-right') || 0, + 10 + ) + + this._originalBodyPadding = document.body.style.paddingRight || '' + + if (this._isBodyOverflowing) { + document.body.style.paddingRight = + bodyPadding + this._scrollbarWidth + 'px' + } + } + + _resetScrollbar() { + document.body.style.paddingRight = this._originalBodyPadding + } + + _getScrollbarWidth() { // thx d.walsh + let scrollDiv = document.createElement('div') + scrollDiv.className = Selector.SCROLLBAR_MEASURER + document.body.appendChild(scrollDiv) + let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth + document.body.removeChild(scrollDiv) + return scrollbarWidth + } + + + // static + + static _jQueryInterface(config, relatedTarget) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + let _config = $.extend( + {}, + Modal.Default, + $(this).data(), + typeof config === 'object' && config + ) + + if (!data) { + data = new Modal(this, _config) + $(this).data(DATA_KEY, data) + } + + if (typeof config === 'string') { + data[config](relatedTarget) + + } else if (_config.show) { + data.show(relatedTarget) + } + }) + } + + } + + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + let target + let selector = Util.getSelectorFromElement(this) + + if (selector) { + target = $(selector)[0] + } + + let config = $(target).data(DATA_KEY) ? + 'toggle' : $.extend({}, $(target).data(), $(this).data()) + + if (this.tagName === 'A') { + event.preventDefault() + } + + let $target = $(target).one(Event.SHOW, (showEvent) => { + if (showEvent.isDefaultPrevented()) { + // only register focus restorer if modal will actually get shown + return + } + + $target.one(Event.HIDDEN, () => { + if ($(this).is(':visible')) { + this.focus() + } + }) + }) + + Modal._jQueryInterface.call($(target), config, this) + }) + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Modal._jQueryInterface + $.fn[NAME].Constructor = Modal + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Modal._jQueryInterface + } + + return Modal + +})(jQuery) + +export default Modal diff --git a/js/src/popover.js b/js/src/popover.js new file mode 100644 index 0000000000..31c7a3ae1a --- /dev/null +++ b/js/src/popover.js @@ -0,0 +1,191 @@ +import Tooltip from './tooltip' + + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Popover = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'popover' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.popover' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Default = $.extend({}, Tooltip.Default, { + placement : 'right', + trigger : 'click', + content : '', + template : '' + }) + + const DefaultType = $.extend({}, Tooltip.DefaultType, { + content : '(string|function)' + }) + + const ClassName = { + FADE : 'fade', + IN : 'in' + } + + const Selector = { + TITLE : '.popover-title', + CONTENT : '.popover-content', + ARROW : '.popover-arrow' + } + + const Event = { + HIDE : `hide${EVENT_KEY}`, + HIDDEN : `hidden${EVENT_KEY}`, + SHOW : `show${EVENT_KEY}`, + SHOWN : `shown${EVENT_KEY}`, + INSERTED : `inserted${EVENT_KEY}`, + CLICK : `click${EVENT_KEY}`, + FOCUSIN : `focusin${EVENT_KEY}`, + FOCUSOUT : `focusout${EVENT_KEY}`, + MOUSEENTER : `mouseenter${EVENT_KEY}`, + MOUSELEAVE : `mouseleave${EVENT_KEY}` + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Popover extends Tooltip { + + + // getters + + static get VERSION() { + return VERSION + } + + static get Default() { + return Default + } + + static get NAME() { + return NAME + } + + static get DATA_KEY() { + return DATA_KEY + } + + static get Event() { + return Event + } + + static get EVENT_KEY() { + return EVENT_KEY + } + + static get DefaultType() { + return DefaultType + } + + + // overrides + + isWithContent() { + return this.getTitle() || this._getContent() + } + + getTipElement() { + return (this.tip = this.tip || $(this.config.template)[0]) + } + + setContent() { + let tip = this.getTipElement() + let title = this.getTitle() + let content = this._getContent() + let titleElement = $(tip).find(Selector.TITLE)[0] + + if (titleElement) { + titleElement[ + this.config.html ? 'innerHTML' : 'innerText' + ] = title + } + + // we use append for html objects to maintain js events + $(tip).find(Selector.CONTENT).children().detach().end()[ + this.config.html ? + (typeof content === 'string' ? 'html' : 'append') : 'text' + ](content) + + $(tip) + .removeClass(ClassName.FADE) + .removeClass(ClassName.IN) + + this.cleanupTether() + } + + // private + + _getContent() { + return this.element.getAttribute('data-content') + || (typeof this.config.content == 'function' ? + this.config.content.call(this.element) : + this.config.content) + } + + + // static + + static _jQueryInterface(config) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + let _config = typeof config === 'object' ? config : null + + if (!data && /destroy|hide/.test(config)) { + return + } + + if (!data) { + data = new Popover(this, _config) + $(this).data(DATA_KEY, data) + } + + if (typeof config === 'string') { + data[config]() + } + }) + } + } + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Popover._jQueryInterface + $.fn[NAME].Constructor = Popover + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Popover._jQueryInterface + } + + return Popover + +})(jQuery) + +export default Popover diff --git a/js/src/scrollspy.js b/js/src/scrollspy.js new file mode 100644 index 0000000000..a407511f65 --- /dev/null +++ b/js/src/scrollspy.js @@ -0,0 +1,323 @@ +import Util from './util' + + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const ScrollSpy = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'scrollspy' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.scrollspy' + const EVENT_KEY = `.${DATA_KEY}` + const DATA_API_KEY = '.data-api' + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Default = { + offset : 10, + method : 'auto', + target : '' + } + + const DefaultType = { + offset : 'number', + method : 'string', + target : '(string|element)' + } + + const Event = { + ACTIVATE : `activate${EVENT_KEY}`, + SCROLL : `scroll${EVENT_KEY}`, + LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}` + } + + const ClassName = { + DROPDOWN_MENU : 'dropdown-menu', + ACTIVE : 'active' + } + + const Selector = { + DATA_SPY : '[data-spy="scroll"]', + ACTIVE : '.active', + LI : 'li', + LI_DROPDOWN : 'li.dropdown', + NAV_ANCHORS : '.nav li > a' + } + + const OffsetMethod = { + OFFSET : 'offset', + POSITION : 'position' + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class ScrollSpy { + + constructor(element, config) { + this._element = element + this._scrollElement = element.tagName === 'BODY' ? window : element + this._config = this._getConfig(config) + this._selector = `${this._config.target} ${Selector.NAV_ANCHORS}` + this._offsets = [] + this._targets = [] + this._activeTarget = null + this._scrollHeight = 0 + + $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this)) + + this.refresh() + this._process() + } + + + // getters + + static get VERSION() { + return VERSION + } + + static get Default() { + return Default + } + + + // public + + refresh() { + let autoMethod = this._scrollElement !== this._scrollElement.window ? + OffsetMethod.POSITION : OffsetMethod.OFFSET + + let offsetMethod = this._config.method === 'auto' ? + autoMethod : this._config.method + + let offsetBase = offsetMethod === OffsetMethod.POSITION ? + this._getScrollTop() : 0 + + this._offsets = [] + this._targets = [] + + this._scrollHeight = this._getScrollHeight() + + let targets = $.makeArray($(this._selector)) + + targets + .map((element) => { + let target + let targetSelector = Util.getSelectorFromElement(element) + + if (targetSelector) { + target = $(targetSelector)[0] + } + + if (target && (target.offsetWidth || target.offsetHeight)) { + // todo (fat): remove sketch reliance on jQuery position/offset + return [ + $(target)[offsetMethod]().top + offsetBase, + targetSelector + ] + } + }) + .filter((item) => item) + .sort((a, b) => a[0] - b[0]) + .forEach((item) => { + this._offsets.push(item[0]) + this._targets.push(item[1]) + }) + } + + dispose() { + $.removeData(this._element, DATA_KEY) + $(this._scrollElement).off(EVENT_KEY) + + this._element = null + this._scrollElement = null + this._config = null + this._selector = null + this._offsets = null + this._targets = null + this._activeTarget = null + this._scrollHeight = null + } + + + // private + + _getConfig(config) { + config = $.extend({}, Default, config) + + if (typeof config.target !== 'string') { + let id = $(config.target).attr('id') + if (!id) { + id = Util.getUID(NAME) + $(config.target).attr('id', id) + } + config.target = `#${id}` + } + + Util.typeCheckConfig(NAME, config, DefaultType) + + return config + } + + _getScrollTop() { + return this._scrollElement === window ? + this._scrollElement.scrollY : this._scrollElement.scrollTop + } + + _getScrollHeight() { + return this._scrollElement.scrollHeight || Math.max( + document.body.scrollHeight, + document.documentElement.scrollHeight + ) + } + + _process() { + let scrollTop = this._getScrollTop() + this._config.offset + let scrollHeight = this._getScrollHeight() + let maxScroll = this._config.offset + + scrollHeight + - this._scrollElement.offsetHeight + + if (this._scrollHeight !== scrollHeight) { + this.refresh() + } + + if (scrollTop >= maxScroll) { + let target = this._targets[this._targets.length - 1] + + if (this._activeTarget !== target) { + this._activate(target) + } + } + + if (this._activeTarget && scrollTop < this._offsets[0]) { + this._activeTarget = null + this._clear() + return + } + + for (let i = this._offsets.length; i--;) { + let isActiveTarget = this._activeTarget !== this._targets[i] + && scrollTop >= this._offsets[i] + && (this._offsets[i + 1] === undefined || + scrollTop < this._offsets[i + 1]) + + if (isActiveTarget) { + this._activate(this._targets[i]) + } + } + } + + _activate(target) { + this._activeTarget = target + + this._clear() + + let selector = + `${this._selector}[data-target="${target}"],` + + `${this._selector}[href="${target}"]` + + // todo (fat): getting all the raw li's up the tree is not great. + let parentListItems = $(selector).parents(Selector.LI) + + for (let i = parentListItems.length; i--;) { + $(parentListItems[i]).addClass(ClassName.ACTIVE) + + let itemParent = parentListItems[i].parentNode + + if (itemParent && $(itemParent).hasClass(ClassName.DROPDOWN_MENU)) { + let closestDropdown = $(itemParent) + .closest(Selector.LI_DROPDOWN)[0] + $(closestDropdown).addClass(ClassName.ACTIVE) + } + } + + $(this._scrollElement).trigger(Event.ACTIVATE, { + relatedTarget: target + }) + } + + _clear() { + let activeParents = $(this._selector).parentsUntil( + this._config.target, + Selector.ACTIVE + ) + + for (let i = activeParents.length; i--;) { + $(activeParents[i]).removeClass(ClassName.ACTIVE) + } + } + + + // static + + static _jQueryInterface(config) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + let _config = typeof config === 'object' && config || null + + if (!data) { + data = new ScrollSpy(this, _config) + $(this).data(DATA_KEY, data) + } + + if (typeof config === 'string') { + data[config]() + } + }) + } + + + } + + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(window).on(Event.LOAD_DATA_API, function () { + let scrollSpys = $.makeArray($(Selector.DATA_SPY)) + + for (let i = scrollSpys.length; i--;) { + let $spy = $(scrollSpys[i]) + ScrollSpy._jQueryInterface.call($spy, $spy.data()) + } + }) + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = ScrollSpy._jQueryInterface + $.fn[NAME].Constructor = ScrollSpy + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return ScrollSpy._jQueryInterface + } + + return ScrollSpy + +})(jQuery) + +export default ScrollSpy diff --git a/js/src/tab.js b/js/src/tab.js new file mode 100644 index 0000000000..4d8d7dec8d --- /dev/null +++ b/js/src/tab.js @@ -0,0 +1,287 @@ +import Util from './util' + + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tab.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Tab = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'tab' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.tab' + const EVENT_KEY = `.${DATA_KEY}` + const DATA_API_KEY = '.data-api' + const JQUERY_NO_CONFLICT = $.fn[NAME] + const TRANSITION_DURATION = 150 + + const Event = { + HIDE : `hide${EVENT_KEY}`, + HIDDEN : `hidden${EVENT_KEY}`, + SHOW : `show${EVENT_KEY}`, + SHOWN : `shown${EVENT_KEY}`, + CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` + } + + const ClassName = { + DROPDOWN_MENU : 'dropdown-menu', + ACTIVE : 'active', + FADE : 'fade', + IN : 'in' + } + + const Selector = { + A : 'a', + LI : 'li', + LI_DROPDOWN : 'li.dropdown', + UL : 'ul:not(.dropdown-menu)', + FADE_CHILD : '> .fade', + ACTIVE : '.active', + ACTIVE_CHILD : '> .active', + DATA_TOGGLE : '[data-toggle="tab"], [data-toggle="pill"]', + DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu > .active' + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Tab { + + constructor(element) { + this._element = element + } + + + // getters + + static get VERSION() { + return VERSION + } + + + // public + + show() { + if (this._element.parentNode && + (this._element.parentNode.nodeType == Node.ELEMENT_NODE) && + ($(this._element).parent().hasClass(ClassName.ACTIVE))) { + return + } + + let target + let previous + let ulElement = $(this._element).closest(Selector.UL)[0] + let selector = Util.getSelectorFromElement(this._element) + + if (ulElement) { + previous = $.makeArray($(ulElement).find(Selector.ACTIVE)) + previous = previous[previous.length - 1] + + if (previous) { + previous = $(previous).find(Selector.A)[0] + } + } + + let hideEvent = $.Event(Event.HIDE, { + relatedTarget: this._element + }) + + let showEvent = $.Event(Event.SHOW, { + relatedTarget: previous + }) + + if (previous) { + $(previous).trigger(hideEvent) + } + + $(this._element).trigger(showEvent) + + if (showEvent.isDefaultPrevented() || + (hideEvent.isDefaultPrevented())) { + return + } + + if (selector) { + target = $(selector)[0] + } + + this._activate( + $(this._element).closest(Selector.LI)[0], + ulElement + ) + + let complete = () => { + let hiddenEvent = $.Event(Event.HIDDEN, { + relatedTarget: this._element + }) + + let shownEvent = $.Event(Event.SHOWN, { + relatedTarget: previous + }) + + $(previous).trigger(hiddenEvent) + $(this._element).trigger(shownEvent) + } + + if (target) { + this._activate(target, target.parentNode, complete) + } else { + complete() + } + } + + dispose() { + $.removeClass(this._element, DATA_KEY) + this._element = null + } + + + // private + + _activate(element, container, callback) { + let active = $(container).find(Selector.ACTIVE_CHILD)[0] + let isTransitioning = callback + && Util.supportsTransitionEnd() + && ((active && $(active).hasClass(ClassName.FADE)) + || !!$(container).find(Selector.FADE_CHILD)[0]) + + let complete = $.proxy( + this._transitionComplete, + this, + element, + active, + isTransitioning, + callback + ) + + if (active && isTransitioning) { + $(active) + .one(Util.TRANSITION_END, complete) + .emulateTransitionEnd(TRANSITION_DURATION) + + } else { + complete() + } + + if (active) { + $(active).removeClass(ClassName.IN) + } + } + + _transitionComplete(element, active, isTransitioning, callback) { + if (active) { + $(active).removeClass(ClassName.ACTIVE) + + let dropdownChild = $(active).find( + Selector.DROPDOWN_ACTIVE_CHILD + )[0] + if (dropdownChild) { + $(dropdownChild).removeClass(ClassName.ACTIVE) + } + + let activeToggle = $(active).find(Selector.DATA_TOGGLE)[0] + if (activeToggle) { + activeToggle.setAttribute('aria-expanded', false) + } + } + + $(element).addClass(ClassName.ACTIVE) + + let elementToggle = $(element).find(Selector.DATA_TOGGLE)[0] + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true) + } + + if (isTransitioning) { + Util.reflow(element) + $(element).addClass(ClassName.IN) + } else { + $(element).removeClass(ClassName.FADE) + } + + if (element.parentNode && + ($(element.parentNode).hasClass(ClassName.DROPDOWN_MENU))) { + + let dropdownElement = $(element).closest(Selector.LI_DROPDOWN)[0] + if (dropdownElement) { + $(dropdownElement).addClass(ClassName.ACTIVE) + } + + elementToggle = $(element).find(Selector.DATA_TOGGLE)[0] + if (elementToggle) { + elementToggle.setAttribute('aria-expanded', true) + } + } + + if (callback) { + callback() + } + } + + + // static + + static _jQueryInterface(config) { + return this.each(function () { + let $this = $(this) + let data = $this.data(DATA_KEY) + + if (!data) { + data = data = new Tab(this) + $this.data(DATA_KEY, data) + } + + if (typeof config === 'string') { + data[config]() + } + }) + } + + } + + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + $(document) + .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + event.preventDefault() + Tab._jQueryInterface.call($(this), 'show') + }) + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Tab._jQueryInterface + $.fn[NAME].Constructor = Tab + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Tab._jQueryInterface + } + + return Tab + +})(jQuery) + +export default Tab diff --git a/js/src/tooltip.js b/js/src/tooltip.js new file mode 100644 index 0000000000..5d62e154ad --- /dev/null +++ b/js/src/tooltip.js @@ -0,0 +1,632 @@ +import Util from './util' + + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Tooltip = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + const NAME = 'tooltip' + const VERSION = '4.0.0' + const DATA_KEY = 'bs.tooltip' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + const TRANSITION_DURATION = 150 + const CLASS_PREFIX = 'bs-tether' + + const Default = { + animation : true, + template : '', + trigger : 'hover focus', + title : '', + delay : 0, + html : false, + selector : false, + placement : 'top', + offset : '0 0', + constraints : [] + } + + const DefaultType = { + animation : 'boolean', + template : 'string', + title : '(string|function)', + trigger : 'string', + delay : '(number|object)', + html : 'boolean', + selector : '(string|boolean)', + placement : '(string|function)', + offset : 'string', + constraints : 'array' + } + + const AttachmentMap = { + TOP : 'bottom center', + RIGHT : 'middle left', + BOTTOM : 'top center', + LEFT : 'middle right' + } + + const HoverState = { + IN : 'in', + OUT : 'out' + } + + const Event = { + HIDE : `hide${EVENT_KEY}`, + HIDDEN : `hidden${EVENT_KEY}`, + SHOW : `show${EVENT_KEY}`, + SHOWN : `shown${EVENT_KEY}`, + INSERTED : `inserted${EVENT_KEY}`, + CLICK : `click${EVENT_KEY}`, + FOCUSIN : `focusin${EVENT_KEY}`, + FOCUSOUT : `focusout${EVENT_KEY}`, + MOUSEENTER : `mouseenter${EVENT_KEY}`, + MOUSELEAVE : `mouseleave${EVENT_KEY}` + } + + const ClassName = { + FADE : 'fade', + IN : 'in' + } + + const Selector = { + TOOLTIP : '.tooltip', + TOOLTIP_INNER : '.tooltip-inner' + } + + const TetherClass = { + element : false, + enabled : false + } + + const Trigger = { + HOVER : 'hover', + FOCUS : 'focus', + CLICK : 'click', + MANUAL : 'manual' + } + + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + class Tooltip { + + constructor(element, config) { + + // private + this._isEnabled = true + this._timeout = 0 + this._hoverState = '' + this._activeTrigger = {} + this._tether = null + + // protected + this.element = element + this.config = this._getConfig(config) + this.tip = null + + this._setListeners() + + } + + + // getters + + static get VERSION() { + return VERSION + } + + static get Default() { + return Default + } + + static get NAME() { + return NAME + } + + static get DATA_KEY() { + return DATA_KEY + } + + static get Event() { + return Event + } + + static get EVENT_KEY() { + return EVENT_KEY + } + + static get DefaultType() { + return DefaultType + } + + + // public + + enable() { + this._isEnabled = true + } + + disable() { + this._isEnabled = false + } + + toggleEnabled() { + this._isEnabled = !this._isEnabled + } + + toggle(event) { + let context = this + let dataKey = this.constructor.DATA_KEY + + if (event) { + context = $(event.currentTarget).data(dataKey) + + if (!context) { + context = new this.constructor( + event.currentTarget, + this._getDelegateConfig() + ) + $(event.currentTarget).data(dataKey, context) + } + + context._activeTrigger.click = !context._activeTrigger.click + + if (context._isWithActiveTrigger()) { + context._enter(null, context) + } else { + context._leave(null, context) + } + + } else { + $(context.getTipElement()).hasClass(ClassName.IN) ? + context._leave(null, context) : + context._enter(null, context) + } + } + + dispose() { + clearTimeout(this._timeout) + + this.cleanupTether() + + $.removeData(this.element, this.constructor.DATA_KEY) + + $(this.element).off(this.constructor.EVENT_KEY) + + if (this.tip) { + $(this.tip).remove() + } + + this._isEnabled = null + this._timeout = null + this._hoverState = null + this._activeTrigger = null + this._tether = null + + this.element = null + this.config = null + this.tip = null + } + + show() { + let showEvent = $.Event(this.constructor.Event.SHOW) + + if (this.isWithContent() && this._isEnabled) { + $(this.element).trigger(showEvent) + + let isInTheDom = $.contains( + this.element.ownerDocument.documentElement, + this.element + ) + + if (showEvent.isDefaultPrevented() || !isInTheDom) { + return + } + + let tip = this.getTipElement() + let tipId = Util.getUID(this.constructor.NAME) + + tip.setAttribute('id', tipId) + this.element.setAttribute('aria-describedby', tipId) + + this.setContent() + + if (this.config.animation) { + $(tip).addClass(ClassName.FADE) + } + + let placement = typeof this.config.placement === 'function' ? + this.config.placement.call(this, tip, this.element) : + this.config.placement + + let attachment = this._getAttachment(placement) + + $(tip) + .data(this.constructor.DATA_KEY, this) + .appendTo(document.body) + + $(this.element).trigger(this.constructor.Event.INSERTED) + + this._tether = new Tether({ + element : tip, + target : this.element, + attachment : attachment, + classes : TetherClass, + classPrefix : CLASS_PREFIX, + offset : this.config.offset, + constraints : this.config.constraints + }) + + Util.reflow(tip) + this._tether.position() + + $(tip).addClass(ClassName.IN) + + let complete = () => { + let prevHoverState = this._hoverState + this._hoverState = null + + $(this.element).trigger(this.constructor.Event.SHOWN) + + if (prevHoverState === HoverState.OUT) { + this._leave(null, this) + } + } + + Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE) ? + $(this.tip) + .one(Util.TRANSITION_END, complete) + .emulateTransitionEnd(Tooltip._TRANSITION_DURATION) : + complete() + } + } + + hide(callback) { + let tip = this.getTipElement() + let hideEvent = $.Event(this.constructor.Event.HIDE) + let complete = () => { + if (this._hoverState !== HoverState.IN && tip.parentNode) { + tip.parentNode.removeChild(tip) + } + + this.element.removeAttribute('aria-describedby') + $(this.element).trigger(this.constructor.Event.HIDDEN) + this.cleanupTether() + + if (callback) { + callback() + } + } + + $(this.element).trigger(hideEvent) + + if (hideEvent.isDefaultPrevented()) { + return + } + + $(tip).removeClass(ClassName.IN) + + if (Util.supportsTransitionEnd() && + ($(this.tip).hasClass(ClassName.FADE))) { + + $(tip) + .one(Util.TRANSITION_END, complete) + .emulateTransitionEnd(TRANSITION_DURATION) + + } else { + complete() + } + + this._hoverState = '' + } + + + // protected + + isWithContent() { + return !!this.getTitle() + } + + getTipElement() { + return (this.tip = this.tip || $(this.config.template)[0]) + } + + setContent() { + let tip = this.getTipElement() + let title = this.getTitle() + let method = this.config.html ? 'innerHTML' : 'innerText' + + $(tip).find(Selector.TOOLTIP_INNER)[0][method] = title + + $(tip) + .removeClass(ClassName.FADE) + .removeClass(ClassName.IN) + + this.cleanupTether() + } + + getTitle() { + let title = this.element.getAttribute('data-original-title') + + if (!title) { + title = typeof this.config.title === 'function' ? + this.config.title.call(this.element) : + this.config.title + } + + return title + } + + cleanupTether() { + if (this._tether) { + this._tether.destroy() + + // clean up after tether's junk classes + // remove after they fix issue + // (https://github.com/HubSpot/tether/issues/36) + $(this.element).removeClass(this._removeTetherClasses) + $(this.tip).removeClass(this._removeTetherClasses) + } + } + + + // private + + _getAttachment(placement) { + return AttachmentMap[placement.toUpperCase()] + } + + _setListeners() { + let triggers = this.config.trigger.split(' ') + + triggers.forEach((trigger) => { + if (trigger === 'click') { + $(this.element).on( + this.constructor.Event.CLICK, + this.config.selector, + $.proxy(this.toggle, this) + ) + + } else if (trigger !== Trigger.MANUAL) { + let eventIn = trigger == Trigger.HOVER ? + this.constructor.Event.MOUSEENTER : + this.constructor.Event.FOCUSIN + let eventOut = trigger == Trigger.HOVER ? + this.constructor.Event.MOUSELEAVE : + this.constructor.Event.FOCUSOUT + + $(this.element) + .on( + eventIn, + this.config.selector, + $.proxy(this._enter, this) + ) + .on( + eventOut, + this.config.selector, + $.proxy(this._leave, this) + ) + } + }) + + if (this.config.selector) { + this.config = $.extend({}, this.config, { + trigger : 'manual', + selector : '' + }) + } else { + this._fixTitle() + } + } + + _removeTetherClasses(i, css) { + return ((css.baseVal || css).match( + new RegExp(`(^|\\s)${CLASS_PREFIX}-\\S+`, 'g')) || [] + ).join(' ') + } + + _fixTitle() { + let titleType = typeof this.element.getAttribute('data-original-title') + if (this.element.getAttribute('title') || + (titleType !== 'string')) { + this.element.setAttribute( + 'data-original-title', + this.element.getAttribute('title') || '' + ) + this.element.setAttribute('title', '') + } + } + + _enter(event, context) { + let dataKey = this.constructor.DATA_KEY + + context = context || $(event.currentTarget).data(dataKey) + + if (!context) { + context = new this.constructor( + event.currentTarget, + this._getDelegateConfig() + ) + $(event.currentTarget).data(dataKey, context) + } + + if (event) { + context._activeTrigger[ + event.type == 'focusin' ? Trigger.FOCUS : Trigger.HOVER + ] = true + } + + if ($(context.getTipElement()).hasClass(ClassName.IN) || + (context._hoverState === HoverState.IN)) { + context._hoverState = HoverState.IN + return + } + + clearTimeout(context._timeout) + + context._hoverState = HoverState.IN + + if (!context.config.delay || !context.config.delay.show) { + context.show() + return + } + + context._timeout = setTimeout(() => { + if (context._hoverState === HoverState.IN) { + context.show() + } + }, context.config.delay.show) + } + + _leave(event, context) { + let dataKey = this.constructor.DATA_KEY + + context = context || $(event.currentTarget).data(dataKey) + + if (!context) { + context = new this.constructor( + event.currentTarget, + this._getDelegateConfig() + ) + $(event.currentTarget).data(dataKey, context) + } + + if (event) { + context._activeTrigger[ + event.type == 'focusout' ? Trigger.FOCUS : Trigger.HOVER + ] = false + } + + if (context._isWithActiveTrigger()) { + return + } + + clearTimeout(context._timeout) + + context._hoverState = HoverState.OUT + + if (!context.config.delay || !context.config.delay.hide) { + context.hide() + return + } + + context._timeout = setTimeout(() => { + if (context._hoverState === HoverState.OUT) { + context.hide() + } + }, context.config.delay.hide) + } + + _isWithActiveTrigger() { + for (let trigger in this._activeTrigger) { + if (this._activeTrigger[trigger]) { + return true + } + } + + return false + } + + _getConfig(config) { + config = $.extend( + {}, + this.constructor.Default, + $(this.element).data(), + config + ) + + if (config.delay && typeof config.delay === 'number') { + config.delay = { + show : config.delay, + hide : config.delay + } + } + + Util.typeCheckConfig( + NAME, + config, + this.constructor.DefaultType + ) + + return config + } + + _getDelegateConfig() { + let config = {} + + if (this.config) { + for (let key in this.config) { + let value = this.config[key] + if (this.constructor.Default[key] !== value) { + config[key] = value + } + } + } + + return config + } + + + // static + + static _jQueryInterface(config) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + let _config = typeof config === 'object' ? + config : null + + if (!data && /destroy|hide/.test(config)) { + return + } + + if (!data) { + data = new Tooltip(this, _config) + $(this).data(DATA_KEY, data) + } + + if (typeof config === 'string') { + data[config]() + } + }) + } + + } + + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + $.fn[NAME] = Tooltip._jQueryInterface + $.fn[NAME].Constructor = Tooltip + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Tooltip._jQueryInterface + } + + return Tooltip + +})(jQuery) + +export default Tooltip diff --git a/js/src/util.js b/js/src/util.js new file mode 100644 index 0000000000..86bea65788 --- /dev/null +++ b/js/src/util.js @@ -0,0 +1,156 @@ +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): util.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const Util = (($) => { + + + /** + * ------------------------------------------------------------------------ + * Private TransitionEnd Helpers + * ------------------------------------------------------------------------ + */ + + let transition = false + + const TransitionEndEvent = { + WebkitTransition : 'webkitTransitionEnd', + MozTransition : 'transitionend', + OTransition : 'oTransitionEnd otransitionend', + transition : 'transitionend' + } + + // shoutout AngusCroll (https://goo.gl/pxwQGp) + function toType(obj) { + return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase() + } + + function isElement(obj) { + return (obj[0] || obj).nodeType; + } + + function getSpecialTransitionEndEvent() { + return { + bindType: transition.end, + delegateType: transition.end, + handle: function (event) { + if ($(event.target).is(this)) { + return event.handleObj.handler.apply(this, arguments) + } + } + } + } + + function transitionEndTest() { + if (window.QUnit) { + return false + } + + let el = document.createElement('bootstrap') + + for (var name in TransitionEndEvent) { + if (el.style[name] !== undefined) { + return { end: TransitionEndEvent[name] } + } + } + + return false + } + + function transitionEndEmulator(duration) { + let called = false + + $(this).one(Util.TRANSITION_END, function () { + called = true + }) + + setTimeout(() => { + if (!called) { + Util.triggerTransitionEnd(this) + } + }, duration) + + return this + } + + function setTransitionEndSupport() { + transition = transitionEndTest() + + $.fn.emulateTransitionEnd = transitionEndEmulator + + if (Util.supportsTransitionEnd()) { + $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent() + } + } + + + /** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + let Util = { + + TRANSITION_END: 'bsTransitionEnd', + + getUID(prefix) { + do prefix += ~~(Math.random() * 1000000) + while (document.getElementById(prefix)) + return prefix + }, + + getSelectorFromElement(element) { + let selector = element.getAttribute('data-target') + + if (!selector) { + selector = element.getAttribute('href') || '' + selector = /^#[a-z]/i.test(selector) ? selector : null + } + + return selector + }, + + reflow(element) { + new Function('bs', 'return bs')(element.offsetHeight) + }, + + triggerTransitionEnd(element) { + $(element).trigger(transition.end) + }, + + supportsTransitionEnd() { + return !!transition + }, + + typeCheckConfig(componentName, config, configTypes) { + + for (let property in configTypes) { + let expectedTypes = configTypes[property] + let value = config[property] + let valueType + + if (value && isElement(value)) valueType = 'element' + else valueType = toType(value) + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new Error( + `${componentName.toUpperCase()}: ` + + `Option "${property}" provided type "${valueType}" ` + + `but expected type "${expectedTypes}".`) + } + } + } + + } + + setTransitionEndSupport() + + return Util + +})(jQuery) + +export default Util diff --git a/js/tab.js b/js/tab.js deleted file mode 100644 index 416189e3d1..0000000000 --- a/js/tab.js +++ /dev/null @@ -1,155 +0,0 @@ -/* ======================================================================== - * Bootstrap: tab.js v3.3.4 - * http://getbootstrap.com/javascript/#tabs - * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TAB CLASS DEFINITION - // ==================== - - var Tab = function (element) { - // jscs:disable requireDollarBeforejQueryAssignment - this.element = $(element) - // jscs:enable requireDollarBeforejQueryAssignment - } - - Tab.VERSION = '3.3.4' - - Tab.TRANSITION_DURATION = 150 - - Tab.prototype.show = function () { - var $this = this.element - var $ul = $this.closest('ul:not(.dropdown-menu)') - var selector = $this.data('target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - if ($this.parent('li').hasClass('active')) return - - var $previous = $ul.find('.active:last a') - var hideEvent = $.Event('hide.bs.tab', { - relatedTarget: $this[0] - }) - var showEvent = $.Event('show.bs.tab', { - relatedTarget: $previous[0] - }) - - $previous.trigger(hideEvent) - $this.trigger(showEvent) - - if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return - - var $target = $(selector) - - this.activate($this.closest('li'), $ul) - this.activate($target, $target.parent(), function () { - $previous.trigger({ - type: 'hidden.bs.tab', - relatedTarget: $this[0] - }) - $this.trigger({ - type: 'shown.bs.tab', - relatedTarget: $previous[0] - }) - }) - } - - Tab.prototype.activate = function (element, container, callback) { - var $active = container.find('> .active') - var transition = callback - && $.support.transition - && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', false) - - element - .addClass('active') - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - - if (transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') - } else { - element.removeClass('fade') - } - - if (element.parent('.dropdown-menu').length) { - element - .closest('li.dropdown') - .addClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - } - - callback && callback() - } - - $active.length && transition ? - $active - .one('bsTransitionEnd', next) - .emulateTransitionEnd(Tab.TRANSITION_DURATION) : - next() - - $active.removeClass('in') - } - - - // TAB PLUGIN DEFINITION - // ===================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tab') - - if (!data) $this.data('bs.tab', (data = new Tab(this))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tab - - $.fn.tab = Plugin - $.fn.tab.Constructor = Tab - - - // TAB NO CONFLICT - // =============== - - $.fn.tab.noConflict = function () { - $.fn.tab = old - return this - } - - - // TAB DATA-API - // ============ - - var clickHandler = function (e) { - e.preventDefault() - Plugin.call($(this), 'show') - } - - $(document) - .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) - .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) - -}(jQuery); diff --git a/js/tests/index.html b/js/tests/index.html index fab2ebc163..0e2bdd012f 100644 --- a/js/tests/index.html +++ b/js/tests/index.html @@ -7,6 +7,7 @@ + - - - - - - - - - - - - - + + + + + + + + + + + + @@ -154,7 +154,6 @@ - diff --git a/js/tests/unit/affix.js b/js/tests/unit/affix.js deleted file mode 100644 index 3a6918f866..0000000000 --- a/js/tests/unit/affix.js +++ /dev/null @@ -1,107 +0,0 @@ -$(function () { - 'use strict'; - - QUnit.module('affix plugin') - - QUnit.test('should be defined on jquery object', function (assert) { - assert.expect(1) - assert.ok($(document.body).affix, 'affix method is defined') - }) - - QUnit.module('affix', { - beforeEach: function () { - // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode - $.fn.bootstrapAffix = $.fn.affix.noConflict() - }, - afterEach: function () { - $.fn.affix = $.fn.bootstrapAffix - delete $.fn.bootstrapAffix - } - }) - - QUnit.test('should provide no conflict', function (assert) { - assert.expect(1) - assert.strictEqual($.fn.affix, undefined, 'affix was set back to undefined (org value)') - }) - - QUnit.test('should return jquery collection containing the element', function (assert) { - assert.expect(2) - var $el = $('
') - var $affix = $el.bootstrapAffix() - assert.ok($affix instanceof $, 'returns jquery collection') - assert.strictEqual($affix[0], $el[0], 'collection contains element') - }) - - QUnit.test('should exit early if element is not visible', function (assert) { - assert.expect(1) - var $affix = $('
').bootstrapAffix() - $affix.data('bs.affix').checkPosition() - assert.ok(!$affix.hasClass('affix'), 'affix class was not added') - }) - - QUnit.test('should trigger affixed event after affix', function (assert) { - assert.expect(2) - var done = assert.async() - - var templateHTML = '
' - + '
    ' - + '
  • Please affix
  • ' - + '
  • And unaffix
  • ' - + '
' - + '
' - + '
' - $(templateHTML).appendTo(document.body) - - $('#affixTarget').bootstrapAffix({ - offset: $('#affixTarget ul').position() - }) - - $('#affixTarget') - .on('affix.bs.affix', function () { - assert.ok(true, 'affix event fired') - }).on('affixed.bs.affix', function () { - assert.ok(true, 'affixed event fired') - $('#affixTarget, #affixAfter').remove() - done() - }) - - setTimeout(function () { - window.scrollTo(0, document.body.scrollHeight) - - setTimeout(function () { - window.scroll(0, 0) - }, 16) // for testing in a browser - }, 0) - }) - - QUnit.test('should affix-top when scrolling up to offset when parent has padding', function (assert) { - assert.expect(1) - var done = assert.async() - - var templateHTML = '
' - + '
' - + '

Testing affix-top class is added

' - + '
' - + '
' - + '
' - $(templateHTML).appendTo(document.body) - - $('#affixTopTarget') - .bootstrapAffix({ - offset: { top: 120, bottom: 0 } - }) - .on('affixed-top.bs.affix', function () { - assert.ok($('#affixTopTarget').hasClass('affix-top'), 'affix-top class applied') - $('#padding-offset').remove() - done() - }) - - setTimeout(function () { - window.scrollTo(0, document.body.scrollHeight) - - setTimeout(function () { - window.scroll(0, 119) - }, 250) - }, 250) - }) -}) diff --git a/js/tests/unit/alert.js b/js/tests/unit/alert.js index 6be990a518..97818960ac 100644 --- a/js/tests/unit/alert.js +++ b/js/tests/unit/alert.js @@ -38,7 +38,8 @@ $(function () { + '×' + '

Holy guacamole! Best check yo self, you\'re not looking too good.

' + '
' - var $alert = $(alertHTML).bootstrapAlert() + + var $alert = $(alertHTML).bootstrapAlert().appendTo($('#qunit-fixture')) $alert.find('.close').trigger('click') diff --git a/js/tests/unit/button.js b/js/tests/unit/button.js index 691796c428..5648506cf5 100644 --- a/js/tests/unit/button.js +++ b/js/tests/unit/button.js @@ -32,64 +32,6 @@ $(function () { assert.strictEqual($button[0], $el[0], 'collection contains element') }) - QUnit.test('should return set state to loading', function (assert) { - assert.expect(4) - var $btn = $('') - assert.strictEqual($btn.html(), 'mdo', 'btn text equals mdo') - $btn.bootstrapButton('loading') - var done = assert.async() - setTimeout(function () { - assert.strictEqual($btn.html(), 'fat', 'btn text equals fat') - assert.ok($btn[0].hasAttribute('disabled'), 'btn is disabled') - assert.ok($btn.hasClass('disabled'), 'btn has disabled class') - done() - }, 0) - }) - - QUnit.test('should return reset state', function (assert) { - assert.expect(7) - var $btn = $('') - assert.strictEqual($btn.html(), 'mdo', 'btn text equals mdo') - $btn.bootstrapButton('loading') - var doneOne = assert.async() - setTimeout(function () { - assert.strictEqual($btn.html(), 'fat', 'btn text equals fat') - assert.ok($btn[0].hasAttribute('disabled'), 'btn is disabled') - assert.ok($btn.hasClass('disabled'), 'btn has disabled class') - doneOne() - var doneTwo = assert.async() - $btn.bootstrapButton('reset') - setTimeout(function () { - assert.strictEqual($btn.html(), 'mdo', 'btn text equals mdo') - assert.ok(!$btn[0].hasAttribute('disabled'), 'btn is not disabled') - assert.ok(!$btn.hasClass('disabled'), 'btn does not have disabled class') - doneTwo() - }, 0) - }, 0) - }) - - QUnit.test('should work with an empty string as reset state', function (assert) { - assert.expect(7) - var $btn = $('') diff --git a/js/tests/unit/carousel.js b/js/tests/unit/carousel.js index 39d2505980..017bd9beee 100644 --- a/js/tests/unit/carousel.js +++ b/js/tests/unit/carousel.js @@ -32,6 +32,38 @@ $(function () { assert.strictEqual($carousel[0], $el[0], 'collection contains element') }) + QUnit.test('should type check config options', function (assert) { + assert.expect(2) + + var message + var expectedMessage = 'CAROUSEL: Option "interval" provided type "string" but expected type "(number|boolean)".' + var config = { + interval: 'fat sux' + } + + try { + $('
').bootstrapCarousel(config) + } catch (e) { + message = e.message + } + + assert.ok(message === expectedMessage, 'correct error message') + + config = { + keyboard: document.createElement('div') + } + expectedMessage = 'CAROUSEL: Option "keyboard" provided type "element" but expected type "boolean".' + + try { + $('
').bootstrapCarousel(config) + } catch (e) { + message = e.message + } + + assert.ok(message === expectedMessage, 'correct error message') + }) + + QUnit.test('should not fire slid when slide is prevented', function (assert) { assert.expect(1) var done = assert.async() @@ -56,13 +88,13 @@ $(function () { + '
  • ' + '' + '