diff --git a/bower_components/bootstrap/.bower.json b/bower_components/bootstrap/.bower.json new file mode 100644 index 000000000..f74564d1b --- /dev/null +++ b/bower_components/bootstrap/.bower.json @@ -0,0 +1,44 @@ +{ + "name": "bootstrap", + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "keywords": [ + "css", + "js", + "sass", + "mobile-first", + "responsive", + "front-end", + "framework", + "web" + ], + "homepage": "http://getbootstrap.com", + "license": "MIT", + "moduleType": "globals", + "main": [ + "scss/bootstrap.scss", + "dist/js/bootstrap.js" + ], + "ignore": [ + "/.*", + "_config.yml", + "CNAME", + "composer.json", + "CONTRIBUTING.md", + "docs", + "js/tests", + "test-infra" + ], + "dependencies": { + "jquery": "1.9.1 - 2" + }, + "version": "4.0.0-alpha", + "_release": "4.0.0-alpha", + "_resolution": { + "type": "version", + "tag": "v4.0.0-alpha", + "commit": "980d8ea2d828fe1796a423f80d84d526b0252a89" + }, + "_source": "https://github.com/twbs/bootstrap.git", + "_target": "v4.0.0-alpha", + "_originalSource": "https://github.com/twbs/bootstrap.git" +} \ No newline at end of file diff --git a/bower_components/bootstrap/CHANGELOG.md b/bower_components/bootstrap/CHANGELOG.md new file mode 100644 index 000000000..b25f83841 --- /dev/null +++ b/bower_components/bootstrap/CHANGELOG.md @@ -0,0 +1,5 @@ +Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs. + +See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. + +Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. diff --git a/bower_components/bootstrap/Gemfile b/bower_components/bootstrap/Gemfile new file mode 100644 index 000000000..23068bdfe --- /dev/null +++ b/bower_components/bootstrap/Gemfile @@ -0,0 +1,11 @@ +# Ruby Gems for building and testing Bootstrap +# Run `grunt update-gemfile-lock` to update to the latest compatible versions + +source 'https://rubygems.org' + +group :development, :test do + gem 'jekyll', '~> 2.5.2' + gem 'rouge', '~> 1.7.4' + gem 'sass', '~> 3.4.9' + gem 'scss-lint', '~> 0.31' +end diff --git a/bower_components/bootstrap/Gemfile.lock b/bower_components/bootstrap/Gemfile.lock new file mode 100644 index 000000000..725379399 --- /dev/null +++ b/bower_components/bootstrap/Gemfile.lock @@ -0,0 +1,78 @@ +GEM + remote: https://rubygems.org/ + specs: + blankslate (2.1.2.4) + celluloid (0.16.0) + timers (~> 4.0.0) + classifier-reborn (2.0.2) + fast-stemmer (~> 1.0) + coffee-script (2.3.0) + coffee-script-source + execjs + coffee-script-source (1.8.0) + colorator (0.1) + execjs (2.2.2) + fast-stemmer (1.0.2) + ffi (1.9.6) + hitimes (1.2.2) + jekyll (2.5.2) + classifier-reborn (~> 2.0) + colorator (~> 0.1) + jekyll-coffeescript (~> 1.0) + jekyll-gist (~> 1.0) + jekyll-paginate (~> 1.0) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 1.1) + kramdown (~> 1.3) + liquid (~> 2.6.1) + mercenary (~> 0.3.3) + pygments.rb (~> 0.6.0) + redcarpet (~> 3.1) + safe_yaml (~> 1.0) + toml (~> 0.1.0) + jekyll-coffeescript (1.0.1) + coffee-script (~> 2.2) + jekyll-gist (1.1.0) + jekyll-paginate (1.1.0) + jekyll-sass-converter (1.3.0) + sass (~> 3.2) + jekyll-watch (1.2.0) + listen (~> 2.7) + kramdown (1.5.0) + liquid (2.6.1) + listen (2.8.4) + celluloid (>= 0.15.2) + rb-fsevent (>= 0.9.3) + rb-inotify (>= 0.9) + mercenary (0.3.5) + parslet (1.5.0) + blankslate (~> 2.0) + posix-spawn (0.3.9) + pygments.rb (0.6.0) + posix-spawn (~> 0.3.6) + yajl-ruby (~> 1.1.0) + rainbow (2.0.0) + rb-fsevent (0.9.4) + rb-inotify (0.9.5) + ffi (>= 0.5.0) + redcarpet (3.2.2) + rouge (1.7.4) + safe_yaml (1.0.4) + sass (3.4.9) + scss-lint (0.31.0) + rainbow (~> 2.0) + sass (~> 3.4.1) + timers (4.0.1) + hitimes + toml (0.1.2) + parslet (~> 1.5.0) + yajl-ruby (1.1.0) + +PLATFORMS + ruby + +DEPENDENCIES + jekyll (~> 2.5.2) + rouge (~> 1.7.4) + sass (~> 3.4.9) + scss-lint (~> 0.31) diff --git a/bower_components/bootstrap/Gruntfile.js b/bower_components/bootstrap/Gruntfile.js new file mode 100644 index 000000000..b2b66855b --- /dev/null +++ b/bower_components/bootstrap/Gruntfile.js @@ -0,0 +1,541 @@ +/*! + * Bootstrap's Gruntfile + * http://getbootstrap.com + * Copyright 2013-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +module.exports = function (grunt) { + 'use strict'; + + // Force use of Unix newlines + grunt.util.linefeed = '\n'; + + RegExp.quote = function (string) { + return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); + }; + + var fs = require('fs'); + var path = require('path'); + var glob = require('glob'); + var npmShrinkwrap = require('npm-shrinkwrap'); + var mq4HoverShim = require('mq4-hover-shim'); + + var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js'); + var configBridge = grunt.file.readJSON('./grunt/configBridge.json', { encoding: 'utf8' }); + + Object.keys(configBridge.paths).forEach(function (key) { + configBridge.paths[key].forEach(function (val, i, arr) { + arr[i] = path.join('./docs/assets', val); + }); + }); + + // Project configuration. + grunt.initConfig({ + + // Metadata. + pkg: grunt.file.readJSON('package.json'), + banner: '/*!\n' + + ' * Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)\n' + + ' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' + + ' * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n' + + ' */\n', + jqueryCheck: 'if (typeof jQuery === \'undefined\') {\n' + + ' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\')\n' + + '}\n', + jqueryVersionCheck: '+function ($) {\n' + + ' var version = $.fn.jquery.split(\' \')[0].split(\'.\')\n' + + ' if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {\n' + + ' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery version 1.9.1 or higher\')\n' + + ' }\n' + + '}(jQuery);\n\n', + + // Task configuration. + clean: { + dist: 'dist', + docs: 'docs/dist' + }, + + // JS build configuration + lineremover: { + es6Import: { + files: { + '<%= concat.bootstrap.dest %>': '<%= concat.bootstrap.dest %>' + }, + options: { + exclusionPattern: /^(import|export)/g + } + } + }, + + babel: { + dev: { + options: { + sourceMap: true, + modules: 'ignore' + }, + 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' + } + }, + 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' + } + } + }, + + eslint: { + options: { + configFile: 'js/.eslintrc' + }, + target: 'js/src/*.js' + }, + + jscs: { + options: { + config: 'js/.jscsrc' + }, + grunt: { + src: ['Gruntfile.js', 'grunt/*.js'] + }, + core: { + src: 'js/src/*.js' + }, + test: { + src: 'js/tests/unit/*.js' + }, + assets: { + options: { + requireCamelCaseOrUpperCaseIdentifiers: null + }, + 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: { + stripBanners: false + }, + bootstrap: { + src: [ + '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' + } + }, + + uglify: { + options: { + compress: { + warnings: false + }, + mangle: true, + preserveComments: 'some' + }, + core: { + src: '<%= concat.bootstrap.dest %>', + dest: 'dist/js/<%= pkg.name %>.min.js' + }, + customize: { + src: configBridge.paths.customizerJs, + dest: 'docs/assets/js/customize.min.js' + }, + docsJs: { + src: configBridge.paths.docsJs, + dest: 'docs/assets/js/docs.min.js' + } + }, + + qunit: { + options: { + inject: 'js/tests/unit/phantom.js' + }, + files: 'js/tests/index.html' + }, + + // CSS build configuration + scsslint: { + options: { + config: 'scss/.scsslint.yml', + reporterOutput: null + }, + src: ['scss/*.scss', '!scss/_normalize.scss'] + }, + + postcss: { + options: { + map: true, + processors: [mq4HoverShim.postprocessorFor({ hoverSelectorPrefix: '.bs-true-hover ' })] + }, + core: { + src: 'dist/css/*.css' + } + }, + + autoprefixer: { + options: { + browsers: [ + 'Android 2.3', + 'Android >= 4', + 'Chrome >= 35', + 'Firefox >= 31', + 'Explorer >= 9', + 'iOS >= 7', + 'Opera >= 12', + 'Safari >= 7.1' + ] + }, + core: { + options: { + map: true + }, + src: 'dist/css/*.css' + }, + docs: { + src: 'docs/assets/css/docs.min.css' + }, + examples: { + expand: true, + cwd: 'docs/examples/', + src: ['**/*.css'], + dest: 'docs/examples/' + } + }, + + cssmin: { + options: { + // TODO: disable `zeroUnits` optimization once clean-css 3.2 is released + // and then simplify the fix for https://github.com/twbs/bootstrap/issues/14837 accordingly + compatibility: 'ie8', + keepSpecialComments: '*', + sourceMap: true, + noAdvanced: true + }, + core: { + files: [ + { + expand: true, + cwd: 'dist/css', + src: ['*.css', '!*.min.css'], + dest: 'dist/css', + ext: '.min.css' + } + ] + }, + docs: { + src: 'docs/assets/css/docs.min.css', + dest: 'docs/assets/css/docs.min.css' + } + }, + + usebanner: { + options: { + position: 'top', + banner: '<%= banner %>' + }, + files: { + src: 'dist/css/*.css' + } + }, + + csscomb: { + options: { + config: 'scss/.csscomb.json' + }, + dist: { + expand: true, + cwd: 'dist/css/', + src: ['*.css', '!*.min.css'], + dest: 'dist/css/' + }, + examples: { + expand: true, + cwd: 'docs/examples/', + src: '**/*.css', + dest: 'docs/examples/' + }, + docs: { + src: 'docs/assets/css/src/docs.css', + dest: 'docs/assets/css/src/docs.css' + } + }, + + copy: { + docs: { + expand: true, + cwd: 'dist/', + src: [ + '**/*' + ], + dest: 'docs/dist/' + } + }, + + connect: { + server: { + options: { + port: 3000, + base: '.' + } + } + }, + + jekyll: { + options: { + config: '_config.yml' + }, + docs: {}, + github: { + options: { + raw: 'github: true' + } + } + }, + + htmllint: { + options: { + ignore: [ + 'Element “img” is missing required attribute “src”.', + 'Bad value “X-UA-Compatible” for attribute “http-equiv” on element “meta”.', + 'Attribute “autocomplete” not allowed on element “input” at this point.', + 'Attribute “autocomplete” not allowed on element “button” at this point.', + 'Element “div” not allowed as child of element “progress” in this context. (Suppressing further errors from this subtree.)', + 'Consider using the “h1” element as a top-level heading only (all “h1” elements are treated as top-level headings by many screen readers and other tools).', + 'The “datetime” input type is not supported in all browsers. Please be sure to test, and consider using a polyfill.' + ] + }, + src: '_gh_pages/**/*.html' + }, + + watch: { + src: { + files: '<%= jscs.core.src %>', + tasks: ['babel:dev'] + }, + sass: { + files: 'scss/**/*.scss', + tasks: ['dist-css', 'docs'] + }, + docs: { + files: 'docs/assets/scss/**/*.scss', + tasks: ['dist-css', 'docs'] + } + }, + + sed: { + versionNumber: { + pattern: (function () { + var old = grunt.option('oldver'); + return old ? RegExp.quote(old) : old; + })(), + replacement: grunt.option('newver'), + recursive: true + } + }, + + 'saucelabs-qunit': { + all: { + options: { + build: process.env.TRAVIS_JOB_ID, + concurrency: 10, + maxRetries: 3, + maxPollRetries: 4, + urls: ['http://127.0.0.1:3000/js/tests/index.html?hidepassed'], + browsers: grunt.file.readYAML('grunt/sauce_browsers.yml') + } + } + }, + + exec: { + npmUpdate: { + command: 'npm update' + }, + bundleUpdate: { + command: function () { + // Update dev gems and all the test gemsets + return 'bundle update && ' + glob.sync('test-infra/gemfiles/*.gemfile').map(function (gemfile) { + return 'BUNDLE_GEMFILE=' + gemfile + ' bundle update'; + }).join(' && '); + } + } + }, + + buildcontrol: { + options: { + dir: '_gh_pages', + commit: true, + push: true, + message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%' + }, + pages: { + options: { + remote: 'git@github.com:twbs/derpstrap.git', + branch: 'gh-pages' + } + } + } + }); + + + // These plugins provide necessary tasks. + require('load-grunt-tasks')(grunt, { scope: 'devDependencies', + // Exclude Sass compilers. We choose the one to load later on. + pattern: ['grunt-*', '!grunt-sass', '!grunt-contrib-sass'] }); + require('time-grunt')(grunt); + + // Docs HTML validation task + grunt.registerTask('validate-html', ['jekyll:docs']); + + var runSubset = function (subset) { + return !process.env.TWBS_TEST || process.env.TWBS_TEST === subset; + }; + var isUndefOrNonZero = function (val) { + return val === undefined || val !== '0'; + }; + + // Test task. + var testSubtasks = []; + // Skip core tests if running a different subset of the test suite + if (runSubset('core') && + // Skip core tests if this is a Savage build + process.env.TRAVIS_REPO_SLUG !== 'twbs-savage/bootstrap') { + testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'test-scss', 'test-js', 'docs']); + } + // Skip HTML validation if running a different subset of the test suite + if (runSubset('validate-html') && + // Skip HTML5 validator on Travis when [skip validator] is in the commit message + isUndefOrNonZero(process.env.TWBS_DO_VALIDATOR)) { + testSubtasks.push('validate-html'); + } + // Only run Sauce Labs tests if there's a Sauce access key + if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined' && + // Skip Sauce if running a different subset of the test suite + runSubset('sauce-js-unit') && + // Skip Sauce on Travis when [skip sauce] is in the commit message + isUndefOrNonZero(process.env.TWBS_DO_SAUCE)) { + testSubtasks.push('connect'); + testSubtasks.push('saucelabs-qunit'); + } + grunt.registerTask('test', testSubtasks); + grunt.registerTask('test-js', ['eslint', 'jscs:core', 'jscs:test', 'jscs:grunt', 'qunit']); + + // JS distribution task. + grunt.registerTask('dist-js', ['concat', 'lineremover', 'babel:dist', 'stamp', 'uglify:core', 'commonjs']); + + grunt.registerTask('test-scss', ['scsslint']); + + // CSS distribution task. + // Supported Compilers: sass (Ruby) and libsass. + (function (sassCompilerName) { + require('./grunt/bs-sass-compile/' + sassCompilerName + '.js')(grunt); + })(process.env.TWBS_SASS || 'libsass'); + // grunt.registerTask('sass-compile', ['sass:core', 'sass:extras', 'sass:docs']); + grunt.registerTask('sass-compile', ['sass:core', 'sass:docs']); + + grunt.registerTask('dist-css', ['sass-compile', 'postcss:core', 'autoprefixer:core', 'usebanner', 'csscomb:dist', 'cssmin:core', 'cssmin:docs']); + + // Full distribution task. + grunt.registerTask('dist', ['clean:dist', 'dist-css', 'dist-js']); + + // Default task. + grunt.registerTask('default', ['clean:dist', 'test']); + + // Version numbering task. + // grunt change-version-number --oldver=A.B.C --newver=X.Y.Z + // This can be overzealous, so its changes should always be manually reviewed! + grunt.registerTask('change-version-number', 'sed'); + + 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); + }); + + // 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', ['jscs:assets']); + grunt.registerTask('docs', ['docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs']); + + grunt.registerTask('prep-release', ['dist', 'docs', 'jekyll:github', 'htmlmin', 'compress']); + + // Publish to GitHub + grunt.registerTask('publish', ['buildcontrol:pages']); + + // Task for updating the cached npm packages used by the Travis build (which are controlled by test-infra/npm-shrinkwrap.json). + // This task should be run and the updated file should be committed whenever Bootstrap's dependencies change. + grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', '_update-shrinkwrap']); + grunt.registerTask('_update-shrinkwrap', function () { + var done = this.async(); + npmShrinkwrap({ dev: true, dirname: __dirname }, function (err) { + if (err) { + grunt.fail.warn(err); + } + var dest = 'test-infra/npm-shrinkwrap.json'; + fs.renameSync('npm-shrinkwrap.json', dest); + grunt.log.writeln('File ' + dest.cyan + ' updated.'); + done(); + }); + }); + // Task for updating the cached RubyGem packages used by the Travis build (which are controlled by test-infra/Gemfile.lock). + // This task should be run and the updated file should be committed whenever Bootstrap's RubyGem dependencies change. + grunt.registerTask('update-gemfile-lock', ['exec:bundleUpdate']); +}; diff --git a/bower_components/bootstrap/LICENSE b/bower_components/bootstrap/LICENSE new file mode 100644 index 000000000..f4c52d6a4 --- /dev/null +++ b/bower_components/bootstrap/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2011-2015 Twitter, Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/bower_components/bootstrap/README.md b/bower_components/bootstrap/README.md new file mode 100644 index 000000000..c38050608 --- /dev/null +++ b/bower_components/bootstrap/README.md @@ -0,0 +1,130 @@ +# [Bootstrap](http://getbootstrap.com) + +[![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com) +![Bower version](https://img.shields.io/bower/v/bootstrap.svg) +[![npm version](https://img.shields.io/npm/v/bootstrap.svg)](https://www.npmjs.com/package/bootstrap) +[![Gem version](https://img.shields.io/gem/v/bootstrap.svg)](https://rubygems.org/gems/bootstrap) +[![Build Status](https://img.shields.io/travis/twbs/bootstrap/master.svg)](https://travis-ci.org/twbs/bootstrap) +[![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap.svg)](https://david-dm.org/twbs/bootstrap#info=devDependencies) +[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap) + +Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thornton](https://twitter.com/fat), and maintained by the [core team](https://github.com/orgs/twbs/people) with the massive support and involvement of the community. + +To get started, check out ! + +## Table of contents + +- [Quick start](#quick-start) +- [Bugs and feature requests](#bugs-and-feature-requests) +- [Documentation](#documentation) +- [Contributing](#contributing) +- [Community](#community) +- [Versioning](#versioning) +- [Creators](#creators) +- [Copyright and license](#copyright-and-license) + +## Quick start + +Several quick start options are available: + +- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.5.zip). +- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`. +- Install with [Bower](http://bower.io): `bower install bootstrap`. +- Install with [npm](https://www.npmjs.com): `npm install bootstrap`. +- Install with [Meteor](https://www.meteor.com): `meteor add twbs:bootstrap`. +- Install with [Composer](https://getcomposer.org): `composer require twbs/bootstrap`. + +Read the [Getting started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more. + +### What's included + +Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this: + +``` +bootstrap/ +├── css/ +│ ├── bootstrap.css +│ ├── bootstrap.css.map +│ ├── bootstrap.min.css +│ └── bootstrap.min.css.map +└── js/ + ├── bootstrap.js + └── bootstrap.min.js +``` + +We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). CSS [source maps](https://developer.chrome.com/devtools/docs/css-preprocessors) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. + + +## Bugs and feature requests + +Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new). + + +## Documentation + +Bootstrap's documentation, included in this repo in the root directory, is built with [Jekyll](http://jekyllrb.com) and publicly hosted on GitHub Pages at . The docs may also be run locally. + +### Running documentation locally + +1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v2.5.x). + - **Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems. +2. Install the Ruby-based syntax highlighter, [Rouge](https://github.com/jneen/rouge), with `gem install rouge`. +3. From the root `/bootstrap` directory, run `jekyll serve` in the command line. +4. Open in your browser, and voilà. + +Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/). + +### Documentation for previous releases + +Documentation for v2.3.2 has been made available for the time being at while folks transition to Bootstrap 3. + +[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download. + + + +## Contributing + +Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development. + +Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/master/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo). + +Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at . + + + +## Community + +Get updates on Bootstrap's development and chat with the project maintainers and community members. + +- Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap). +- Read and subscribe to [The Official Bootstrap Blog](http://blog.getbootstrap.com). +- Join [the official Slack room](https://bootstrap-slack.herokuapp.com). +- Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel. +- Implementation help may be found at Stack Overflow (tagged [`twitter-bootstrap-3`](https://stackoverflow.com/questions/tagged/twitter-bootstrap-3)). +- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability. + + + +## Versioning + +For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap is maintained under [the Semantic Versioning guidelines](http://semver.org/). Sometimes we screw up, but we'll adhere to those rules whenever possible. + + + +## Creators + +**Mark Otto** + +- +- + +**Jacob Thornton** + +- +- + + + +## Copyright and license + +Code and documentation copyright 2011-2015 Twitter, Inc. Code released under [the MIT license](https://github.com/twbs/bootstrap/blob/master/LICENSE). Docs released under [Creative Commons](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE). diff --git a/bower_components/bootstrap/bower.json b/bower_components/bootstrap/bower.json new file mode 100644 index 000000000..0d24a6392 --- /dev/null +++ b/bower_components/bootstrap/bower.json @@ -0,0 +1,34 @@ +{ + "name": "bootstrap", + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "keywords": [ + "css", + "js", + "sass", + "mobile-first", + "responsive", + "front-end", + "framework", + "web" + ], + "homepage": "http://getbootstrap.com", + "license": "MIT", + "moduleType": "globals", + "main": [ + "scss/bootstrap.scss", + "dist/js/bootstrap.js" + ], + "ignore": [ + "/.*", + "_config.yml", + "CNAME", + "composer.json", + "CONTRIBUTING.md", + "docs", + "js/tests", + "test-infra" + ], + "dependencies": { + "jquery": "1.9.1 - 2" + } +} diff --git a/bower_components/bootstrap/dist/css/bootstrap.css b/bower_components/bootstrap/dist/css/bootstrap.css new file mode 100644 index 000000000..908c89eaf --- /dev/null +++ b/bower_components/bootstrap/dist/css/bootstrap.css @@ -0,0 +1,6301 @@ +/*! + * 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.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden], +template { + display: none; +} + +a { + background-color: transparent; +} + +a:active { + outline: 0; +} + +a:hover { + outline: 0; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +h1 { + margin: .67em 0; + font-size: 2em; +} + +mark { + color: #000; + background: #ff0; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -.5em; +} + +sub { + bottom: -.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 1em 40px; +} + +hr { + height: 0; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +pre { + overflow: auto; +} + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +button, +input, +optgroup, +select, +textarea { + margin: 0; + font: inherit; + color: inherit; +} + +button { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +input { + line-height: normal; +} + +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} + +legend { + padding: 0; + border: 0; +} + +textarea { + overflow: auto; +} + +optgroup { + font-weight: bold; +} + +table { + border-spacing: 0; + border-collapse: collapse; +} + +td, +th { + padding: 0; +} + +@media print { + *, + *:before, + *:after { + text-shadow: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + pre, + blockquote { + border: 1px solid #999; + + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +html { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +*, +*:before, +*:after { + -webkit-box-sizing: inherit; + box-sizing: inherit; +} + +@-moz-viewport { + width: device-width; +} + +@-ms-viewport { + width: device-width; +} + +@-webkit-viewport { + width: device-width; +} + +@viewport { + width: device-width; +} + +html { + font-size: 16px; + + -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; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: .5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #818a91; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: bold; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + 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; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; +} + +[role="button"] { + cursor: pointer; +} + +table { + background-color: transparent; +} + +caption { + padding-top: .75rem; + padding-bottom: .75rem; + color: #818a91; + text-align: left; + caption-side: bottom; +} + +th { + text-align: left; +} + +label { + display: inline-block; + margin-bottom: .5rem; +} + +input, +button, +select, +textarea { + margin: 0; + line-height: inherit; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; +} + +input[type="search"] { + -webkit-appearance: none; +} + +output { + display: inline-block; +} + +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, .h1, +h2, .h2, +h3, .h3 { + margin-bottom: .5rem; +} + +h4, .h4, +h5, .h5, +h6, .h6 { + margin-bottom: .5rem; +} + +h1, .h1 { + font-size: 2.5rem; +} + +h2, .h2 { + font-size: 2rem; +} + +h3, .h3 { + font-size: 1.75rem; +} + +h4, .h4 { + font-size: 1.5rem; +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 3.5rem; + font-weight: 300; +} + +.display-2 { + font-size: 4.5rem; + font-weight: 300; +} + +.display-3 { + font-size: 5.5rem; + font-weight: 300; +} + +.display-4 { + font-size: 6rem; + font-weight: 300; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: .0625rem solid rgba(0, 0, 0, .1); +} + +small, +.small { + font-size: 80%; + font-weight: normal; +} + +mark, +.mark { + padding: .2em; + background-color: #fcf8e3; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +.dl-horizontal { + margin-right: -1.875rem; + margin-left: -1.875rem; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + content: " "; +} + +.dl-horizontal:after { + clear: both; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + padding: .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"; +} + +.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"; +} + +.figure { + display: inline-block; +} + +.figure > img { + margin-bottom: .5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #818a91; +} + +.img-responsive, .figure > img, .carousel-inner > .carousel-item > img, +.carousel-inner > .carousel-item > a > img { + display: block; + max-width: 100%; + height: auto; +} + +.img-rounded { + border-radius: .3rem; +} + +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: .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; +} + +.img-circle { + border-radius: 50%; +} + +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} + +code { + padding: .2rem .4rem; + font-size: 90%; + color: #bd4147; + background-color: #f7f7f9; + border-radius: .25rem; +} + +kbd { + padding: .2rem .4rem; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: .2rem; +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; +} + +pre { + display: block; + margin-top: 0; + 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; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + padding-right: .9375rem; + padding-left: .9375rem; + 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; + } +} + +.container-fluid { + padding-right: .9375rem; + padding-left: .9375rem; + margin-right: auto; + margin-left: auto; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + content: " "; +} + +.container-fluid:after { + clear: both; +} + +.row { + margin-right: -.9375rem; + margin-left: -.9375rem; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.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: .9375rem; + padding-left: .9375rem; +} + +.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 { + float: left; +} + +.col-xs-1 { + width: 8.333333%; +} + +.col-xs-2 { + width: 16.666667%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-4 { + width: 33.333333%; +} + +.col-xs-5 { + width: 41.666667%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-7 { + width: 58.333333%; +} + +.col-xs-8 { + width: 66.666667%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-10 { + width: 83.333333%; +} + +.col-xs-11 { + width: 91.666667%; +} + +.col-xs-12 { + width: 100%; +} + +.col-xs-pull-0 { + right: auto; +} + +.col-xs-pull-1 { + right: 8.333333%; +} + +.col-xs-pull-2 { + right: 16.666667%; +} + +.col-xs-pull-3 { + right: 25%; +} + +.col-xs-pull-4 { + right: 33.333333%; +} + +.col-xs-pull-5 { + right: 41.666667%; +} + +.col-xs-pull-6 { + right: 50%; +} + +.col-xs-pull-7 { + right: 58.333333%; +} + +.col-xs-pull-8 { + right: 66.666667%; +} + +.col-xs-pull-9 { + right: 75%; +} + +.col-xs-pull-10 { + right: 83.333333%; +} + +.col-xs-pull-11 { + right: 91.666667%; +} + +.col-xs-pull-12 { + right: 100%; +} + +.col-xs-push-0 { + left: auto; +} + +.col-xs-push-1 { + left: 8.333333%; +} + +.col-xs-push-2 { + left: 16.666667%; +} + +.col-xs-push-3 { + left: 25%; +} + +.col-xs-push-4 { + left: 33.333333%; +} + +.col-xs-push-5 { + left: 41.666667%; +} + +.col-xs-push-6 { + left: 50%; +} + +.col-xs-push-7 { + left: 58.333333%; +} + +.col-xs-push-8 { + left: 66.666667%; +} + +.col-xs-push-9 { + left: 75%; +} + +.col-xs-push-10 { + left: 83.333333%; +} + +.col-xs-push-11 { + left: 91.666667%; +} + +.col-xs-push-12 { + left: 100%; +} + +.col-xs-offset-0 { + margin-left: 0; +} + +.col-xs-offset-1 { + margin-left: 8.333333%; +} + +.col-xs-offset-2 { + margin-left: 16.666667%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-4 { + margin-left: 33.333333%; +} + +.col-xs-offset-5 { + margin-left: 41.666667%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-7 { + margin-left: 58.333333%; +} + +.col-xs-offset-8 { + margin-left: 66.666667%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-10 { + margin-left: 83.333333%; +} + +.col-xs-offset-11 { + margin-left: 91.666667%; +} + +.col-xs-offset-12 { + margin-left: 100%; +} + +@media (min-width: 34em) { + .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 { + float: left; + } + .col-sm-1 { + width: 8.333333%; + } + .col-sm-2 { + width: 16.666667%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-4 { + width: 33.333333%; + } + .col-sm-5 { + width: 41.666667%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-7 { + width: 58.333333%; + } + .col-sm-8 { + width: 66.666667%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-10 { + width: 83.333333%; + } + .col-sm-11 { + width: 91.666667%; + } + .col-sm-12 { + width: 100%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-pull-1 { + right: 8.333333%; + } + .col-sm-pull-2 { + right: 16.666667%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-4 { + right: 33.333333%; + } + .col-sm-pull-5 { + right: 41.666667%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-7 { + right: 58.333333%; + } + .col-sm-pull-8 { + right: 66.666667%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-10 { + right: 83.333333%; + } + .col-sm-pull-11 { + right: 91.666667%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-push-1 { + left: 8.333333%; + } + .col-sm-push-2 { + left: 16.666667%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-4 { + left: 33.333333%; + } + .col-sm-push-5 { + left: 41.666667%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-7 { + left: 58.333333%; + } + .col-sm-push-8 { + left: 66.666667%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-10 { + left: 83.333333%; + } + .col-sm-push-11 { + left: 91.666667%; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-offset-0 { + margin-left: 0; + } + .col-sm-offset-1 { + margin-left: 8.333333%; + } + .col-sm-offset-2 { + margin-left: 16.666667%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-4 { + margin-left: 33.333333%; + } + .col-sm-offset-5 { + margin-left: 41.666667%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-7 { + margin-left: 58.333333%; + } + .col-sm-offset-8 { + margin-left: 66.666667%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-10 { + margin-left: 83.333333%; + } + .col-sm-offset-11 { + margin-left: 91.666667%; + } + .col-sm-offset-12 { + margin-left: 100%; + } +} + +@media (min-width: 48em) { + .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 { + float: left; + } + .col-md-1 { + width: 8.333333%; + } + .col-md-2 { + width: 16.666667%; + } + .col-md-3 { + width: 25%; + } + .col-md-4 { + width: 33.333333%; + } + .col-md-5 { + width: 41.666667%; + } + .col-md-6 { + width: 50%; + } + .col-md-7 { + width: 58.333333%; + } + .col-md-8 { + width: 66.666667%; + } + .col-md-9 { + width: 75%; + } + .col-md-10 { + width: 83.333333%; + } + .col-md-11 { + width: 91.666667%; + } + .col-md-12 { + width: 100%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-pull-1 { + right: 8.333333%; + } + .col-md-pull-2 { + right: 16.666667%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-4 { + right: 33.333333%; + } + .col-md-pull-5 { + right: 41.666667%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-7 { + right: 58.333333%; + } + .col-md-pull-8 { + right: 66.666667%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-10 { + right: 83.333333%; + } + .col-md-pull-11 { + right: 91.666667%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-push-0 { + left: auto; + } + .col-md-push-1 { + left: 8.333333%; + } + .col-md-push-2 { + left: 16.666667%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-4 { + left: 33.333333%; + } + .col-md-push-5 { + left: 41.666667%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-7 { + left: 58.333333%; + } + .col-md-push-8 { + left: 66.666667%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-10 { + left: 83.333333%; + } + .col-md-push-11 { + left: 91.666667%; + } + .col-md-push-12 { + left: 100%; + } + .col-md-offset-0 { + margin-left: 0; + } + .col-md-offset-1 { + margin-left: 8.333333%; + } + .col-md-offset-2 { + margin-left: 16.666667%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-4 { + margin-left: 33.333333%; + } + .col-md-offset-5 { + margin-left: 41.666667%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-7 { + margin-left: 58.333333%; + } + .col-md-offset-8 { + margin-left: 66.666667%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-10 { + margin-left: 83.333333%; + } + .col-md-offset-11 { + margin-left: 91.666667%; + } + .col-md-offset-12 { + margin-left: 100%; + } +} + +@media (min-width: 62em) { + .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 { + float: left; + } + .col-lg-1 { + width: 8.333333%; + } + .col-lg-2 { + width: 16.666667%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-4 { + width: 33.333333%; + } + .col-lg-5 { + width: 41.666667%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-7 { + width: 58.333333%; + } + .col-lg-8 { + width: 66.666667%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-10 { + width: 83.333333%; + } + .col-lg-11 { + width: 91.666667%; + } + .col-lg-12 { + width: 100%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-pull-1 { + right: 8.333333%; + } + .col-lg-pull-2 { + right: 16.666667%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-4 { + right: 33.333333%; + } + .col-lg-pull-5 { + right: 41.666667%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-7 { + right: 58.333333%; + } + .col-lg-pull-8 { + right: 66.666667%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-10 { + right: 83.333333%; + } + .col-lg-pull-11 { + right: 91.666667%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-push-1 { + left: 8.333333%; + } + .col-lg-push-2 { + left: 16.666667%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-4 { + left: 33.333333%; + } + .col-lg-push-5 { + left: 41.666667%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-7 { + left: 58.333333%; + } + .col-lg-push-8 { + left: 66.666667%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-10 { + left: 83.333333%; + } + .col-lg-push-11 { + left: 91.666667%; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-offset-0 { + margin-left: 0; + } + .col-lg-offset-1 { + margin-left: 8.333333%; + } + .col-lg-offset-2 { + margin-left: 16.666667%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-4 { + margin-left: 33.333333%; + } + .col-lg-offset-5 { + margin-left: 41.666667%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-7 { + margin-left: 58.333333%; + } + .col-lg-offset-8 { + margin-left: 66.666667%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-10 { + margin-left: 83.333333%; + } + .col-lg-offset-11 { + margin-left: 91.666667%; + } + .col-lg-offset-12 { + margin-left: 100%; + } +} + +@media (min-width: 75em) { + .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 { + float: left; + } + .col-xl-1 { + width: 8.333333%; + } + .col-xl-2 { + width: 16.666667%; + } + .col-xl-3 { + width: 25%; + } + .col-xl-4 { + width: 33.333333%; + } + .col-xl-5 { + width: 41.666667%; + } + .col-xl-6 { + width: 50%; + } + .col-xl-7 { + width: 58.333333%; + } + .col-xl-8 { + width: 66.666667%; + } + .col-xl-9 { + width: 75%; + } + .col-xl-10 { + width: 83.333333%; + } + .col-xl-11 { + width: 91.666667%; + } + .col-xl-12 { + width: 100%; + } + .col-xl-pull-0 { + right: auto; + } + .col-xl-pull-1 { + right: 8.333333%; + } + .col-xl-pull-2 { + right: 16.666667%; + } + .col-xl-pull-3 { + right: 25%; + } + .col-xl-pull-4 { + right: 33.333333%; + } + .col-xl-pull-5 { + right: 41.666667%; + } + .col-xl-pull-6 { + right: 50%; + } + .col-xl-pull-7 { + right: 58.333333%; + } + .col-xl-pull-8 { + right: 66.666667%; + } + .col-xl-pull-9 { + right: 75%; + } + .col-xl-pull-10 { + right: 83.333333%; + } + .col-xl-pull-11 { + right: 91.666667%; + } + .col-xl-pull-12 { + right: 100%; + } + .col-xl-push-0 { + left: auto; + } + .col-xl-push-1 { + left: 8.333333%; + } + .col-xl-push-2 { + left: 16.666667%; + } + .col-xl-push-3 { + left: 25%; + } + .col-xl-push-4 { + left: 33.333333%; + } + .col-xl-push-5 { + left: 41.666667%; + } + .col-xl-push-6 { + left: 50%; + } + .col-xl-push-7 { + left: 58.333333%; + } + .col-xl-push-8 { + left: 66.666667%; + } + .col-xl-push-9 { + left: 75%; + } + .col-xl-push-10 { + left: 83.333333%; + } + .col-xl-push-11 { + left: 91.666667%; + } + .col-xl-push-12 { + left: 100%; + } + .col-xl-offset-0 { + margin-left: 0; + } + .col-xl-offset-1 { + margin-left: 8.333333%; + } + .col-xl-offset-2 { + margin-left: 16.666667%; + } + .col-xl-offset-3 { + margin-left: 25%; + } + .col-xl-offset-4 { + margin-left: 33.333333%; + } + .col-xl-offset-5 { + margin-left: 41.666667%; + } + .col-xl-offset-6 { + margin-left: 50%; + } + .col-xl-offset-7 { + margin-left: 58.333333%; + } + .col-xl-offset-8 { + margin-left: 66.666667%; + } + .col-xl-offset-9 { + margin-left: 75%; + } + .col-xl-offset-10 { + margin-left: 83.333333%; + } + .col-xl-offset-11 { + margin-left: 91.666667%; + } + .col-xl-offset-12 { + margin-left: 100%; + } +} + +.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; +} + +.table-sm th, +.table-sm td { + padding: .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; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover { + 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; +} + +.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; +} + +.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; +} + +.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; +} + +.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; +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; +} + +.thead-inverse th { + color: #fff; + background-color: #373a3c; +} + +.thead-default th { + color: #55595c; + 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; +} + +.table-reflow thead { + float: left; +} + +.table-reflow tbody { + display: block; + 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; +} + +.table-reflow tr { + float: left; +} + +.table-reflow tr th, +.table-reflow tr td { + display: block !important; + border: 1px solid #eceeef; +} + +.form-control { + display: block; + width: 100%; + padding: .375rem .75rem; + font-size: 1rem; + line-height: 1.5; + color: #55595c; + background-color: #fff; + background-image: none; + border: .0625rem solid #ccc; + border-radius: .25rem; +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.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: not-allowed; +} + +.form-control-file, +.form-control-range { + display: block; +} + +.form-control-label { + padding: .4375rem .75rem; + margin-bottom: 0; +} + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 2.375rem; + } + input[type="date"].input-sm, + .input-group-sm input[type="date"].form-control, + input[type="time"].input-sm, + .input-group-sm input[type="time"].form-control, + input[type="datetime-local"].input-sm, + .input-group-sm input[type="datetime-local"].form-control, + input[type="month"].input-sm, + .input-group-sm input[type="month"].form-control { + line-height: 1.95rem; + } + input[type="date"].input-lg, + .input-group-lg input[type="date"].form-control, + input[type="time"].input-lg, + .input-group-lg input[type="time"].form-control, + input[type="datetime-local"].input-lg, + .input-group-lg input[type="datetime-local"].form-control, + input[type="month"].input-lg, + .input-group-lg input[type="month"].form-control { + line-height: 3.291667rem; + } +} + +.form-control-static { + min-height: 2.375rem; + padding-top: .4375rem; + padding-bottom: .4375rem; + 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 { + padding: .275rem .75rem; + font-size: .85rem; + line-height: 1.5; + border-radius: .2rem; +} + +.form-control-lg, .input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + padding: .75rem 1.25rem; + font-size: 1.25rem; + line-height: 1.333333; + border-radius: .3rem; +} + +.form-group { + margin-bottom: 15px; +} + +.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; +} + +.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; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -.25rem; +} + +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 1.25rem; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + 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: not-allowed; +} + +.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: not-allowed; +} + +.form-control-success, +.form-control-warning, +.form-control-error { + padding-right: 2.25rem; + background-repeat: no-repeat; + background-position: center right .59375rem; + -webkit-background-size: 1.54375rem 1.54375rem; + background-size: 1.54375rem 1.54375rem; +} + +.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: #5cb85c; +} + +.has-success .form-control { + border-color: #5cb85c; +} + +.has-success .input-group-addon { + color: #5cb85c; + background-color: #eaf6ea; + border-color: #5cb85c; +} + +.has-success .form-control-feedback { + color: #5cb85c; +} + +.has-success .form-control-success { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNoZWNrIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDYxMiA3OTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYxMiA3OTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiM1Q0I4NUMiIGQ9Ik0yMzMuOCw2MTAuMWMtMTMuMywwLTI1LjktNi4yLTM0LTE2LjlMOTAuNSw0NDguOEM3Ni4zLDQzMCw4MCw0MDMuMyw5OC44LDM4OS4xYzE4LjgtMTQuMyw0NS41LTEwLjUsNTkuOCw4LjNsNzEuOSw5NWwyMjAuOS0yNTAuNWMxMi41LTIwLDM4LjgtMjYuMSw1OC44LTEzLjZjMjAsMTIuNCwyNi4xLDM4LjcsMTMuNiw1OC44TDI3MCw1OTBjLTcuNCwxMi0yMC4yLDE5LjQtMzQuMywyMC4xQzIzNS4xLDYxMC4xLDIzNC41LDYxMC4xLDIzMy44LDYxMC4xeiIvPjwvc3ZnPg=="); +} + +.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: #f0ad4e; +} + +.has-warning .form-control { + border-color: #f0ad4e; +} + +.has-warning .input-group-addon { + color: #f0ad4e; + background-color: white; + border-color: #f0ad4e; +} + +.has-warning .form-control-feedback { + color: #f0ad4e; +} + +.has-warning .form-control-warning { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9Ildhcm5pbmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNjEyIDc5MiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjEyIDc5MiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZmlsbD0iI0YwQUQ0RSIgZD0iTTYwMyw2NDAuMmwtMjc4LjUtNTA5Yy0zLjgtNi42LTEwLjgtMTAuNi0xOC41LTEwLjZzLTE0LjcsNC4xLTE4LjUsMTAuNkw5LDY0MC4yYy0zLjcsNi41LTMuNiwxNC40LDAuMiwyMC44YzMuOCw2LjUsMTAuOCwxMC40LDE4LjMsMTAuNGg1NTcuMWM3LjUsMCwxNC41LTMuOSwxOC4zLTEwLjRDNjA2LjYsNjU0LjYsNjA2LjcsNjQ2LjYsNjAzLDY0MC4yeiBNMzM2LjYsNjEwLjJoLTYxLjJWNTQ5aDYxLjJWNjEwLjJ6IE0zMzYuNiw1MDMuMWgtNjEuMlYzMDQuMmg2MS4yVjUwMy4xeiIvPjwvc3ZnPg=="); +} + +.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: #d9534f; +} + +.has-error .form-control { + border-color: #d9534f; +} + +.has-error .input-group-addon { + color: #d9534f; + background-color: #fdf7f7; + border-color: #d9534f; +} + +.has-error .form-control-feedback { + color: #d9534f; +} + +.has-error .form-control-error { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNyb3NzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDYxMiA3OTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYxMiA3OTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNEOTUzNEYiIGQ9Ik00NDcsNTQ0LjRjLTE0LjQsMTQuNC0zNy42LDE0LjQtNTEuOSwwTDMwNiw0NTEuN2wtODkuMSw5Mi43Yy0xNC40LDE0LjQtMzcuNiwxNC40LTUxLjksMGMtMTQuNC0xNC40LTE0LjQtMzcuNiwwLTUxLjlsOTIuNC05Ni40TDE2NSwyOTkuNmMtMTQuNC0xNC40LTE0LjQtMzcuNiwwLTUxLjlzMzcuNi0xNC40LDUxLjksMGw4OS4yLDkyLjdsODkuMS05Mi43YzE0LjQtMTQuNCwzNy42LTE0LjQsNTEuOSwwYzE0LjQsMTQuNCwxNC40LDM3LjYsMCw1MS45TDM1NC43LDM5Nmw5Mi40LDk2LjRDNDYxLjQsNTA2LjgsNDYxLjQsNTMwLDQ0Nyw1NDQuNHoiLz48L3N2Zz4="); +} + +@media (min-width: 34em) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .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%; + } + .form-inline .control-label { + margin-bottom: 0; + 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"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} + +.btn { + display: inline-block; + padding: .375rem 1rem; + 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; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border: .0625rem solid transparent; + border-radius: .25rem; +} + +.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; +} + +.btn-primary { + color: #fff; + background-color: #0275d8; + border-color: #0275d8; +} + +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active, +.open > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #025aa5; + border-color: #01549b; +} + +.btn-primary:hover { + color: #fff; + background-color: #025aa5; + border-color: #01549b; +} + +.btn-primary:active, +.btn-primary.active, +.open > .btn-primary.dropdown-toggle { + background-image: none; +} + +.btn-primary.disabled:focus, +.btn-primary.disabled.focus, +.btn-primary:disabled:focus, +.btn-primary:disabled.focus, +fieldset[disabled] .btn-primary:focus, +fieldset[disabled] .btn-primary.focus { + background-color: #0275d8; + border-color: #0275d8; +} + +.btn-primary.disabled:hover, +.btn-primary:disabled:hover, +fieldset[disabled] .btn-primary:hover { + background-color: #0275d8; + border-color: #0275d8; +} + +.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:focus, +.btn-secondary.disabled.focus, +.btn-secondary:disabled:focus, +.btn-secondary:disabled.focus, +fieldset[disabled] .btn-secondary:focus, +fieldset[disabled] .btn-secondary.focus { + 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-info { + color: #fff; + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-info:focus, +.btn-info.focus, +.btn-info:active, +.btn-info.active, +.open > .btn-info.dropdown-toggle { + color: #fff; + background-color: #31b0d5; + border-color: #2aabd2; +} + +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #2aabd2; +} + +.btn-info:active, +.btn-info.active, +.open > .btn-info.dropdown-toggle { + background-image: none; +} + +.btn-info.disabled:focus, +.btn-info.disabled.focus, +.btn-info:disabled:focus, +.btn-info:disabled.focus, +fieldset[disabled] .btn-info:focus, +fieldset[disabled] .btn-info.focus { + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-info.disabled:hover, +.btn-info:disabled:hover, +fieldset[disabled] .btn-info:hover { + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #5cb85c; +} + +.btn-success:focus, +.btn-success.focus, +.btn-success:active, +.btn-success.active, +.open > .btn-success.dropdown-toggle { + color: #fff; + background-color: #449d44; + border-color: #419641; +} + +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #419641; +} + +.btn-success:active, +.btn-success.active, +.open > .btn-success.dropdown-toggle { + background-image: none; +} + +.btn-success.disabled:focus, +.btn-success.disabled.focus, +.btn-success:disabled:focus, +.btn-success:disabled.focus, +fieldset[disabled] .btn-success:focus, +fieldset[disabled] .btn-success.focus { + background-color: #5cb85c; + border-color: #5cb85c; +} + +.btn-success.disabled:hover, +.btn-success:disabled:hover, +fieldset[disabled] .btn-success:hover { + background-color: #5cb85c; + border-color: #5cb85c; +} + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #f0ad4e; +} + +.btn-warning:focus, +.btn-warning.focus, +.btn-warning:active, +.btn-warning.active, +.open > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #ec971f; + border-color: #eb9316; +} + +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #eb9316; +} + +.btn-warning:active, +.btn-warning.active, +.open > .btn-warning.dropdown-toggle { + background-image: none; +} + +.btn-warning.disabled:focus, +.btn-warning.disabled.focus, +.btn-warning:disabled:focus, +.btn-warning:disabled.focus, +fieldset[disabled] .btn-warning:focus, +fieldset[disabled] .btn-warning.focus { + background-color: #f0ad4e; + border-color: #f0ad4e; +} + +.btn-warning.disabled:hover, +.btn-warning:disabled:hover, +fieldset[disabled] .btn-warning:hover { + background-color: #f0ad4e; + border-color: #f0ad4e; +} + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d9534f; +} + +.btn-danger:focus, +.btn-danger.focus, +.btn-danger:active, +.btn-danger.active, +.open > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #c9302c; + border-color: #c12e2a; +} + +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #c12e2a; +} + +.btn-danger:active, +.btn-danger.active, +.open > .btn-danger.dropdown-toggle { + background-image: none; +} + +.btn-danger.disabled:focus, +.btn-danger.disabled.focus, +.btn-danger:disabled:focus, +.btn-danger:disabled.focus, +fieldset[disabled] .btn-danger:focus, +fieldset[disabled] .btn-danger.focus { + background-color: #d9534f; + border-color: #d9534f; +} + +.btn-danger.disabled:hover, +.btn-danger:disabled:hover, +fieldset[disabled] .btn-danger:hover { + background-color: #d9534f; + border-color: #d9534f; +} + +.btn-primary-outline { + color: #0275d8; + background-color: transparent; + background-image: none; + border-color: #0275d8; +} + +.btn-primary-outline:focus, +.btn-primary-outline.focus, +.btn-primary-outline:active, +.btn-primary-outline.active, +.open > .btn-primary-outline.dropdown-toggle { + color: #fff; + background-color: #0275d8; + border-color: #0275d8; +} + +.btn-primary-outline:hover { + color: #fff; + background-color: #0275d8; + border-color: #0275d8; +} + +.btn-primary-outline.disabled:focus, +.btn-primary-outline.disabled.focus, +.btn-primary-outline:disabled:focus, +.btn-primary-outline:disabled.focus, +fieldset[disabled] .btn-primary-outline:focus, +fieldset[disabled] .btn-primary-outline.focus { + border-color: #43a7fd; +} + +.btn-primary-outline.disabled:hover, +.btn-primary-outline:disabled:hover, +fieldset[disabled] .btn-primary-outline:hover { + border-color: #43a7fd; +} + +.btn-secondary-outline { + color: #ccc; + background-color: transparent; + background-image: none; + border-color: #ccc; +} + +.btn-secondary-outline:focus, +.btn-secondary-outline.focus, +.btn-secondary-outline:active, +.btn-secondary-outline.active, +.open > .btn-secondary-outline.dropdown-toggle { + color: #fff; + background-color: #ccc; + border-color: #ccc; +} + +.btn-secondary-outline:hover { + color: #fff; + background-color: #ccc; + border-color: #ccc; +} + +.btn-secondary-outline.disabled:focus, +.btn-secondary-outline.disabled.focus, +.btn-secondary-outline:disabled:focus, +.btn-secondary-outline:disabled.focus, +fieldset[disabled] .btn-secondary-outline:focus, +fieldset[disabled] .btn-secondary-outline.focus { + border-color: white; +} + +.btn-secondary-outline.disabled:hover, +.btn-secondary-outline:disabled:hover, +fieldset[disabled] .btn-secondary-outline:hover { + border-color: white; +} + +.btn-info-outline { + color: #5bc0de; + background-color: transparent; + background-image: none; + border-color: #5bc0de; +} + +.btn-info-outline:focus, +.btn-info-outline.focus, +.btn-info-outline:active, +.btn-info-outline.active, +.open > .btn-info-outline.dropdown-toggle { + color: #fff; + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-info-outline:hover { + color: #fff; + background-color: #5bc0de; + border-color: #5bc0de; +} + +.btn-info-outline.disabled:focus, +.btn-info-outline.disabled.focus, +.btn-info-outline:disabled:focus, +.btn-info-outline:disabled.focus, +fieldset[disabled] .btn-info-outline:focus, +fieldset[disabled] .btn-info-outline.focus { + border-color: #b0e1ef; +} + +.btn-info-outline.disabled:hover, +.btn-info-outline:disabled:hover, +fieldset[disabled] .btn-info-outline:hover { + border-color: #b0e1ef; +} + +.btn-success-outline { + color: #5cb85c; + background-color: transparent; + background-image: none; + border-color: #5cb85c; +} + +.btn-success-outline:focus, +.btn-success-outline.focus, +.btn-success-outline:active, +.btn-success-outline.active, +.open > .btn-success-outline.dropdown-toggle { + color: #fff; + background-color: #5cb85c; + border-color: #5cb85c; +} + +.btn-success-outline:hover { + color: #fff; + background-color: #5cb85c; + border-color: #5cb85c; +} + +.btn-success-outline.disabled:focus, +.btn-success-outline.disabled.focus, +.btn-success-outline:disabled:focus, +.btn-success-outline:disabled.focus, +fieldset[disabled] .btn-success-outline:focus, +fieldset[disabled] .btn-success-outline.focus { + border-color: #a3d7a3; +} + +.btn-success-outline.disabled:hover, +.btn-success-outline:disabled:hover, +fieldset[disabled] .btn-success-outline:hover { + border-color: #a3d7a3; +} + +.btn-warning-outline { + color: #f0ad4e; + background-color: transparent; + background-image: none; + border-color: #f0ad4e; +} + +.btn-warning-outline:focus, +.btn-warning-outline.focus, +.btn-warning-outline:active, +.btn-warning-outline.active, +.open > .btn-warning-outline.dropdown-toggle { + color: #fff; + background-color: #f0ad4e; + border-color: #f0ad4e; +} + +.btn-warning-outline:hover { + color: #fff; + background-color: #f0ad4e; + border-color: #f0ad4e; +} + +.btn-warning-outline.disabled:focus, +.btn-warning-outline.disabled.focus, +.btn-warning-outline:disabled:focus, +.btn-warning-outline:disabled.focus, +fieldset[disabled] .btn-warning-outline:focus, +fieldset[disabled] .btn-warning-outline.focus { + border-color: #f8d9ac; +} + +.btn-warning-outline.disabled:hover, +.btn-warning-outline:disabled:hover, +fieldset[disabled] .btn-warning-outline:hover { + border-color: #f8d9ac; +} + +.btn-danger-outline { + color: #d9534f; + background-color: transparent; + background-image: none; + border-color: #d9534f; +} + +.btn-danger-outline:focus, +.btn-danger-outline.focus, +.btn-danger-outline:active, +.btn-danger-outline.active, +.open > .btn-danger-outline.dropdown-toggle { + color: #fff; + background-color: #d9534f; + border-color: #d9534f; +} + +.btn-danger-outline:hover { + color: #fff; + background-color: #d9534f; + border-color: #d9534f; +} + +.btn-danger-outline.disabled:focus, +.btn-danger-outline.disabled.focus, +.btn-danger-outline:disabled:focus, +.btn-danger-outline:disabled.focus, +fieldset[disabled] .btn-danger-outline:focus, +fieldset[disabled] .btn-danger-outline.focus { + border-color: #eba5a3; +} + +.btn-danger-outline.disabled:hover, +.btn-danger-outline:disabled:hover, +fieldset[disabled] .btn-danger-outline:hover { + border-color: #eba5a3; +} + +.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; +} + +.btn-lg, .btn-group-lg > .btn { + padding: .75rem 1.25rem; + font-size: 1.25rem; + line-height: 1.333333; + border-radius: .3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: .25rem .75rem; + font-size: .85rem; + line-height: 1.5; + border-radius: .2rem; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +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; +} + +.collapse { + 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; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle:after { + display: inline-block; + width: 0; + height: 0; + margin-left: .25rem; + vertical-align: middle; + content: ""; + border-top: .3em solid; + border-right: .3em solid transparent; + border-left: .3em solid transparent; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 1rem; + 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-divider { + height: 1px; + margin: .5rem 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.5; + color: #373a3c; + text-align: inherit; + white-space: nowrap; + background: none; + border: 0; +} + +.dropdown-item:focus, +.dropdown-item:hover { + color: #2b2d2f; + text-decoration: none; + background-color: #f5f5f5; +} + +.dropdown-item.active, +.dropdown-item.active:focus, +.dropdown-item.active:hover { + color: #fff; + text-decoration: none; + background-color: #0275d8; + outline: 0; +} + +.dropdown-item.disabled, +.dropdown-item.disabled:focus, +.dropdown-item.disabled:hover { + color: #818a91; +} + +.dropdown-item.disabled:focus, +.dropdown-item.disabled:hover { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)"; +} + +.open > .dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: .85rem; + line-height: 1.5; + color: #818a91; + white-space: nowrap; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: .3em solid; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} + +.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; +} + +.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; +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group > .btn-group { + float: left; +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} + +.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn .caret { + margin-left: 0; +} + +.btn-lg .caret, .btn-group-lg > .btn .caret { + border-width: .3em .3em 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret { + border-width: 0 .3em .3em; +} + +.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: " "; +} + +.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 { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: .25rem; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: .25rem; +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +[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; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} + +.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 { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: .375rem .75rem; + font-size: 1rem; + font-weight: normal; + line-height: 1; + color: #55595c; + 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: .275rem .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: 1.25rem 1.25rem; + font-size: 1.25rem; + border-radius: .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; + border-bottom-right-radius: 0; +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn: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; + border-bottom-left-radius: 0; +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} + +.input-group-btn > .btn { + position: relative; +} + +.input-group-btn > .btn + .btn { + margin-left: -1px; +} + +.input-group-btn > .btn: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 { + z-index: 2; + 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; +} + +.c-indicator { + position: absolute; + top: 0; + left: 0; + display: block; + width: 1rem; + height: 1rem; + font-size: 65%; + line-height: 1rem; + color: #eee; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-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%; +} + +.c-checkbox .c-indicator { + border-radius: .25rem; +} + +.c-checkbox input:checked ~ .c-indicator { + 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); +} + +.c-radio .c-indicator { + border-radius: 50%; +} + +.c-radio input:checked ~ .c-indicator { + 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; +} + +.c-select { + display: inline-block; + max-width: 100%; + -webkit-appearance: none; + padding: .375rem 1.75rem .375rem .75rem; + padding-right: .75rem \9; + vertical-align: middle; + background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC) no-repeat right .75rem center; + background-image: none \9; + -webkit-background-size: 8px 10px; + background-size: 8px 10px; + border: 1px solid #ccc; + + -moz-appearance: none; + appearance: none; +} + +.c-select:focus { + border-color: #51a7e8; + outline: none; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba(81, 167, 232, .5); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba(81, 167, 232, .5); +} + +.c-select::-ms-expand { + opacity: 0; +} + +.c-select-sm { + padding-top: 3px; + padding-bottom: 3px; + font-size: 12px; +} + +.c-select-sm:not([multiple]) { + height: 26px; + min-height: 26px; +} + +.file { + position: relative; + display: inline-block; + height: 2.5rem; + cursor: pointer; +} + +.file input { + min-width: 14rem; + margin: 0; + filter: alpha(opacity=0); + opacity: 0; +} + +.file-custom { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 5; + height: 2.5rem; + padding: .5rem 1rem; + line-height: 1.5; + color: #555; + -webkit-user-select: none; + -moz-user-select: none; + -ms-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); +} + +.file-custom:after { + content: "Choose file..."; +} + +.file-custom:before { + position: absolute; + top: -.075rem; + right: -.075rem; + bottom: -.075rem; + z-index: 6; + display: block; + height: 2.5rem; + padding: .5rem 1rem; + line-height: 1.5; + color: #555; + content: "Browse"; + background-color: #eee; + border: .075rem solid #ddd; + border-radius: 0 .25rem .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; +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: inline-block; +} + +.nav-link:focus, +.nav-link:hover { + text-decoration: none; +} + +.nav-link.disabled { + color: #818a91; +} + +.nav-link.disabled, +.nav-link.disabled:focus, +.nav-link.disabled:hover { + color: #818a91; + cursor: not-allowed; + background-color: transparent; +} + +.nav-inline .nav-link + .nav-link { + margin-left: 1rem; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs:before, +.nav-tabs:after { + display: table; + content: " "; +} + +.nav-tabs:after { + clear: both; +} + +.nav-tabs .nav-item { + float: left; + margin-bottom: -1px; +} + +.nav-tabs .nav-item + .nav-item { + margin-left: .2rem; +} + +.nav-tabs .nav-link { + display: block; + padding: .5em 1em; + 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 .nav-link.disabled, +.nav-tabs .nav-link.disabled:focus, +.nav-tabs .nav-link.disabled:hover { + color: #818a91; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-link.active:focus, +.nav-tabs .nav-link.active:hover, +.nav-tabs .nav-item.open .nav-link, +.nav-tabs .nav-item.open .nav-link:focus, +.nav-tabs .nav-item.open .nav-link:hover { + color: #55595c; + background-color: #fff; + border-color: #ddd #ddd transparent; +} + +.nav-pills .nav-item { + float: left; +} + +.nav-pills .nav-item + .nav-item { + margin-left: .2rem; +} + +.nav-pills .nav-link { + display: block; + padding: .5em 1em; + border-radius: .25rem; +} + +.nav-pills .nav-link.active, +.nav-pills .nav-link.active:focus, +.nav-pills .nav-link.active:hover, +.nav-pills .nav-item.open .nav-link, +.nav-pills .nav-item.open .nav-link:focus, +.nav-pills .nav-item.open .nav-link:hover { + color: #fff; + cursor: default; + background-color: #0275d8; +} + +.nav-stacked .nav-item { + display: block; + float: none; +} + +.nav-stacked .nav-item + .nav-item { + margin-top: .2rem; + margin-left: 0; +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.navbar { + position: relative; + padding: .5rem 1rem; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +@media (min-width: 34em) { + .navbar { + border-radius: .25rem; + } +} + +.navbar-static-top { + z-index: 1000; +} + +@media (min-width: 34em) { + .navbar-static-top { + border-radius: 0; + } +} + +.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; + } +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1030; + width: 100%; +} + +@media (min-width: 34em) { + .navbar-sticky-top { + border-radius: 0; + } +} + +.navbar-brand { + float: left; + padding-top: .25rem; + padding-bottom: .25rem; + margin-right: 1rem; + font-size: 1.25rem; +} + +.navbar-brand:focus, +.navbar-brand:hover { + text-decoration: none; +} + +.navbar-brand > img { + display: block; +} + +.navbar-divider { + float: left; + width: 1px; + padding-top: .425rem; + padding-bottom: .425rem; + margin-right: 1rem; + margin-left: 1rem; + overflow: hidden; +} + +.navbar-divider:before { + content: '\00a0'; +} + +.navbar-toggler { + padding: .5rem .75rem; + font-size: 1.25rem; + line-height: 1; + background: none; + border: .0625rem solid transparent; + border-radius: .25rem; +} + +.navbar-toggler:focus, +.navbar-toggler:hover { + text-decoration: none; +} + +@media (min-width: 34em) { + .navbar-toggleable-xs { + display: block !important; + } +} + +@media (min-width: 48em) { + .navbar-toggleable-sm { + display: block !important; + } +} + +.navbar-nav .nav-item { + float: left; +} + +.navbar-nav .nav-link { + display: block; + padding-top: .425rem; + padding-bottom: .425rem; +} + +.navbar-nav .nav-link + .nav-link { + margin-left: 1rem; +} + +.navbar-nav .nav-item + .nav-item { + margin-left: 1rem; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, .8); +} + +.navbar-light .navbar-brand:focus, +.navbar-light .navbar-brand:hover { + color: rgba(0, 0, 0, .8); +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, .3); +} + +.navbar-light .navbar-nav .nav-link:focus, +.navbar-light .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, .6); +} + +.navbar-light .navbar-nav .open > .nav-link, +.navbar-light .navbar-nav .open > .nav-link:focus, +.navbar-light .navbar-nav .open > .nav-link:hover, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .active > .nav-link:focus, +.navbar-light .navbar-nav .active > .nav-link:hover, +.navbar-light .navbar-nav .nav-link.open, +.navbar-light .navbar-nav .nav-link.open:focus, +.navbar-light .navbar-nav .nav-link.open:hover, +.navbar-light .navbar-nav .nav-link.active, +.navbar-light .navbar-nav .nav-link.active:focus, +.navbar-light .navbar-nav .nav-link.active:hover { + color: rgba(0, 0, 0, .8); +} + +.navbar-light .navbar-divider { + background-color: rgba(0, 0, 0, .075); +} + +.navbar-dark .navbar-brand { + color: white; +} + +.navbar-dark .navbar-brand:focus, +.navbar-dark .navbar-brand:hover { + color: white; +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, .5); +} + +.navbar-dark .navbar-nav .nav-link:focus, +.navbar-dark .navbar-nav .nav-link:hover { + color: rgba(255, 255, 255, .75); +} + +.navbar-dark .navbar-nav .open > .nav-link, +.navbar-dark .navbar-nav .open > .nav-link:focus, +.navbar-dark .navbar-nav .open > .nav-link:hover, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link:focus, +.navbar-dark .navbar-nav .active > .nav-link:hover, +.navbar-dark .navbar-nav .nav-link.open, +.navbar-dark .navbar-nav .nav-link.open:focus, +.navbar-dark .navbar-nav .nav-link.open:hover, +.navbar-dark .navbar-nav .nav-link.active, +.navbar-dark .navbar-nav .nav-link.active:focus, +.navbar-dark .navbar-nav .nav-link.active:hover { + color: white; +} + +.navbar-dark .navbar-divider { + background-color: rgba(255, 255, 255, .075); +} + +.card { + position: relative; + margin-bottom: .75rem; + border: .0625rem solid #e5e5e5; + border-radius: .25rem; +} + +.card-block { + padding: 1.25rem; +} + +.card-title { + margin-top: 0; + margin-bottom: .75rem; +} + +.card-subtitle { + margin-top: -.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} + +.card-link + .card-link { + margin-left: 1.25rem; +} + +.card > .list-group:first-child .list-group-item:first-child { + border-radius: .25rem .25rem 0 0; +} + +.card > .list-group:last-child .list-group-item:last-child { + border-radius: 0 0 .25rem .25rem; +} + +.card-header { + padding: .75rem 1.25rem; + background-color: #f5f5f5; + border-bottom: .0625rem solid #e5e5e5; +} + +.card-header:first-child { + border-radius: .1875rem .1875rem 0 0; +} + +.card-footer { + padding: .75rem 1.25rem; + background-color: #f5f5f5; + border-top: .0625rem solid #e5e5e5; +} + +.card-footer:last-child { + border-radius: 0 0 .1875rem .1875rem; +} + +.card-primary { + background-color: #0275d8; + border-color: #0275d8; +} + +.card-success { + background-color: #5cb85c; + border-color: #5cb85c; +} + +.card-info { + background-color: #5bc0de; + border-color: #5bc0de; +} + +.card-warning { + background-color: #f0ad4e; + border-color: #f0ad4e; +} + +.card-danger { + background-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-blockquote { + padding: 0; + margin-bottom: 0; + border-left: 0; +} + +.card-img { + border-radius: .25rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; +} + +.card-img-top { + border-radius: .25rem .25rem 0 0; +} + +.card-img-bottom { + border-radius: 0 0 .25rem .25rem; +} + +.card-deck { + display: table; + table-layout: fixed; + border-spacing: 1.25rem 0; +} + +.card-deck .card { + display: table-cell; + width: 1%; + vertical-align: top; +} + +.card-deck-wrapper { + margin-right: -1.25rem; + margin-left: -1.25rem; +} + +.card-group { + display: table; + width: 100%; + table-layout: fixed; +} + +.card-group .card { + display: table-cell; + vertical-align: top; +} + +.card-group .card + .card { + margin-left: 0; + border-left: 0; +} + +.card-group .card:first-child .card-img-top { + border-top-right-radius: 0; +} + +.card-group .card:first-child .card-img-bottom { + border-bottom-right-radius: 0; +} + +.card-group .card:last-child .card-img-top { + border-top-left-radius: 0; +} + +.card-group .card:last-child .card-img-bottom { + border-bottom-left-radius: 0; +} + +.card-group .card:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.card-group .card:not(:first-child):not(:last-child) .card-img-top, +.card-group .card:not(:first-child):not(:last-child) .card-img-bottom { + border-radius: 0; +} + +.card-columns { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-gap: 1.25rem; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; +} + +.card-columns .card { + display: inline-block; + width: 100%; +} + +.breadcrumb { + padding: .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: "/ "; +} + +.breadcrumb > .active { + color: #818a91; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin-top: 1rem; + margin-bottom: 1rem; + 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: not-allowed; + background-color: #fff; + border-color: #ddd; +} + +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: .75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.333333; +} + +.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-sm > li > a, +.pagination-sm > li > span { + padding: .275rem .75rem; + font-size: .85rem; + line-height: 1.5; +} + +.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; +} + +.pager { + padding-left: 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: 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-prev > a, +.pager-prev > span { + float: left; +} + +.label { + display: inline-block; + padding: .25em .4em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25rem; +} + +.label:empty { + display: none; +} + +.btn .label { + position: relative; + top: -1px; +} + +a.label:focus, +a.label:hover { + color: #fff; + text-decoration: none; + cursor: pointer; +} + +.label-pill { + padding-right: .6em; + padding-left: .6em; + border-radius: 1rem; +} + +.label-default { + 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; +} + +.label-success { + background-color: #5cb85c; +} + +.label-success[href]:focus, +.label-success[href]:hover { + background-color: #449d44; +} + +.label-info { + background-color: #5bc0de; +} + +.label-info[href]:focus, +.label-info[href]:hover { + background-color: #31b0d5; +} + +.label-warning { + background-color: #f0ad4e; +} + +.label-warning[href]:focus, +.label-warning[href]:hover { + background-color: #ec971f; +} + +.label-danger { + background-color: #d9534f; +} + +.label-danger[href]:focus, +.label-danger[href]:hover { + background-color: #c9302c; +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #eceeef; + border-radius: .3rem; +} + +.jumbotron-hr { + border-top-color: #d0d5d8; +} + +@media (min-width: 34em) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 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; +} + +.alert-heading { + margin-top: 0; + color: inherit; +} + +.alert-link { + font-weight: bold; +} + +.alert-dismissible { + 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; +} + +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bcdff1; +} + +.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; +} + +.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: 1rem 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +.progress { + display: block; + width: 100%; + height: 1rem; + margin-bottom: 1rem; +} + +.progress[value] { + -webkit-appearance: none; + color: #0074d9; + border: 0; + + -moz-appearance: none; + appearance: none; +} + +.progress[value]::-webkit-progress-bar { + background-color: #eee; + border-radius: .25rem; +} + +.progress[value]::-webkit-progress-value::before { + content: attr(value); +} + +.progress[value]::-webkit-progress-value { + background-color: #0074d9; + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; +} + +.progress[value="100"]::-webkit-progress-value { + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; +} + +@media screen and (min-width: 0 \0) { + .progress { + background-color: #eee; + border-radius: .25rem; + } + .progress-bar { + display: inline-block; + height: 1rem; + text-indent: -999rem; + background-color: #0074d9; + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; + } + .progress[width^="0"] { + min-width: 2rem; + color: #818a91; + background-color: transparent; + background-image: none; + } + .progress[width="100%"] { + border-top-right-radius: .25rem; + border-bottom-right-radius: .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: 1rem 1rem; + 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: 1rem 1rem; +} + +@media screen and (min-width: 0 \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: 1rem 1rem; + 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; +} + +.progress-animated[value]::-moz-progress-bar { + animation: progress-bar-stripes 2s linear infinite; +} + +@media screen and (min-width: 0 \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; + } +} + +.progress-success[value]::-webkit-progress-value { + background-color: #5cb85c; +} + +.progress-success[value]::-moz-progress-bar { + background-color: #5cb85c; +} + +@media screen and (min-width: 0 \0) { + .progress-success .progress-bar { + background-color: #5cb85c; + } +} + +.progress-info[value]::-webkit-progress-value { + background-color: #5bc0de; +} + +.progress-info[value]::-moz-progress-bar { + background-color: #5bc0de; +} + +@media screen and (min-width: 0 \0) { + .progress-info .progress-bar { + background-color: #5bc0de; + } +} + +.progress-warning[value]::-webkit-progress-value { + background-color: #f0ad4e; +} + +.progress-warning[value]::-moz-progress-bar { + background-color: #f0ad4e; +} + +@media screen and (min-width: 0 \0) { + .progress-warning .progress-bar { + background-color: #f0ad4e; + } +} + +.progress-danger[value]::-webkit-progress-value { + background-color: #d9534f; +} + +.progress-danger[value]::-moz-progress-bar { + background-color: #d9534f; +} + +@media screen and (min-width: 0 \0) { + .progress-danger .progress-bar { + background-color: #d9534f; + } +} + +.media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +.media-body { + width: 10000px; +} + +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} + +.media-middle { + vertical-align: middle; +} + +.media-bottom { + vertical-align: bottom; +} + +.media-object { + display: block; +} + +.media-object.img-thumbnail { + max-width: none; +} + +.media-right { + padding-left: 10px; +} + +.media-left { + padding-right: 10px; +} + +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + padding-left: 0; + margin-bottom: 0; +} + +.list-group-item { + position: relative; + display: block; + padding: .75rem 1.25rem; + margin-bottom: -.0625rem; + background-color: #fff; + border: .0625rem 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; +} + +.list-group-flush .list-group-item { + border-width: .0625rem 0; + border-radius: 0; +} + +a.list-group-item, +button.list-group-item { + width: 100%; + color: #555; + text-align: inherit; +} + +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} + +a.list-group-item:focus, +a.list-group-item:hover, +button.list-group-item:focus, +button.list-group-item:hover { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} + +.list-group-item.disabled, +.list-group-item.disabled:focus, +.list-group-item.disabled:hover { + color: #818a91; + 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; +} + +.list-group-item-state { + color: #3c763d; + background-color: #dff0d8; +} + +a.list-group-item-state, +button.list-group-item-state { + color: #3c763d; +} + +a.list-group-item-state .list-group-item-heading, +button.list-group-item-state .list-group-item-heading { + color: inherit; +} + +a.list-group-item-state:focus, +a.list-group-item-state:hover, +button.list-group-item-state:focus, +button.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, +button.list-group-item-state.active, +button.list-group-item-state.active:focus, +button.list-group-item-state.active:hover { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} + +.list-group-item-state { + color: #31708f; + background-color: #d9edf7; +} + +a.list-group-item-state, +button.list-group-item-state { + color: #31708f; +} + +a.list-group-item-state .list-group-item-heading, +button.list-group-item-state .list-group-item-heading { + color: inherit; +} + +a.list-group-item-state:focus, +a.list-group-item-state:hover, +button.list-group-item-state:focus, +button.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, +button.list-group-item-state.active, +button.list-group-item-state.active:focus, +button.list-group-item-state.active:hover { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} + +.list-group-item-state { + color: #8a6d3b; + background-color: #fcf8e3; +} + +a.list-group-item-state, +button.list-group-item-state { + color: #8a6d3b; +} + +a.list-group-item-state .list-group-item-heading, +button.list-group-item-state .list-group-item-heading { + color: inherit; +} + +a.list-group-item-state:focus, +a.list-group-item-state:hover, +button.list-group-item-state:focus, +button.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, +button.list-group-item-state.active, +button.list-group-item-state.active:focus, +button.list-group-item-state.active:hover { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} + +.list-group-item-state { + color: #a94442; + background-color: #f2dede; +} + +a.list-group-item-state, +button.list-group-item-state { + color: #a94442; +} + +a.list-group-item-state .list-group-item-heading, +button.list-group-item-state .list-group-item-heading { + color: inherit; +} + +a.list-group-item-state:focus, +a.list-group-item-state:hover, +button.list-group-item-state:focus, +button.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, +button.list-group-item-state.active, +button.list-group-item-state.active:focus, +button.list-group-item-state.active:hover { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.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; +} + +.embed-responsive-21by9 { + padding-bottom: 42.857143%; +} + +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} + +.embed-responsive-4by3 { + padding-bottom: 75%; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: bold; + 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; +} + +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; +} + +.modal-open { + overflow: hidden; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} + +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} + +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: .3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.in { + opacity: .5; +} + +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-header:before, +.modal-header:after { + display: table; + content: " "; +} + +.modal-header:after { + clear: both; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + 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; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 34em) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-sm { + width: 300px; + } +} + +@media (min-width: 48em) { + .modal-lg { + width: 900px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: .85rem; + font-style: normal; + font-weight: normal; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + opacity: 0; + + line-break: auto; +} + +.tooltip.in { + opacity: .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; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: .25rem; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: .85rem; + font-style: normal; + font-weight: normal; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: .3rem; + + line-break: auto; +} + +.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, .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, .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, .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, .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; + margin: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: -.7rem -.7rem 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover-arrow, +.popover-arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover-arrow { + border-width: 11px; +} + +.popover-arrow:after { + content: ""; + border-width: 10px; +} + +.carousel { + 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) { + .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: 1000px; + perspective: 1000px; + } + .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%; +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + 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"; +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: transparent; + border: 1px solid #fff; + border-radius: 10px; +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); +} + +.carousel-caption .btn { + text-shadow: none; +} + +@media (min-width: 34em) { + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + .carousel-control .icon-prev { + margin-left: -15px; + } + .carousel-control .icon-next { + margin-right: -15px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after { + display: table; + content: " "; +} + +.clearfix:after { + clear: both; +} + +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} + +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} + +[hidden] { + display: none !important; +} + +.invisible { + visibility: hidden; +} + +.text-hide { + font: "0/0" a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +.text-justify { + text-align: justify; +} + +.text-nowrap { + white-space: nowrap; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-xs-left { + text-align: left; +} + +.text-xs-right { + text-align: right; +} + +.text-xs-center { + text-align: center; +} + +@media (min-width: 34em) { + .text-sm-left { + text-align: left; + } + .text-sm-right { + text-align: right; + } + .text-sm-center { + text-align: center; + } +} + +@media (min-width: 48em) { + .text-md-left { + text-align: left; + } + .text-md-right { + text-align: right; + } + .text-md-center { + text-align: center; + } +} + +@media (min-width: 62em) { + .text-lg-left { + text-align: left; + } + .text-lg-right { + text-align: right; + } + .text-lg-center { + text-align: center; + } +} + +@media (min-width: 75em) { + .text-xl-left { + text-align: left; + } + .text-xl-right { + text-align: right; + } + .text-xl-center { + text-align: center; + } +} + +.text-lowercase { + text-transform: lowercase; +} + +.text-uppercase { + text-transform: uppercase; +} + +.text-capitalize { + text-transform: capitalize; +} + +.text-muted { + color: #818a91; +} + +.text-primary { + color: #0275d8; +} + +a.text-primary:focus, +a.text-primary:hover { + color: #025aa5; +} + +.text-success { + color: #5cb85c; +} + +a.text-success:focus, +a.text-success:hover { + color: #449d44; +} + +.text-info { + color: #5bc0de; +} + +a.text-info:focus, +a.text-info:hover { + color: #31b0d5; +} + +.text-warning { + color: #f0ad4e; +} + +a.text-warning:focus, +a.text-warning:hover { + color: #ec971f; +} + +.text-danger { + color: #d9534f; +} + +a.text-danger:focus, +a.text-danger:hover { + color: #c9302c; +} + +.bg-inverse { + color: #eceeef; + background-color: #373a3c; +} + +.bg-faded { + background-color: #f7f7f9; +} + +.bg-primary { + color: #fff; + background-color: #0275d8; +} + +a.bg-primary:focus, +a.bg-primary:hover { + background-color: #025aa5; +} + +.bg-success { + color: #fff; + background-color: #5cb85c; +} + +a.bg-success:focus, +a.bg-success:hover { + background-color: #449d44; +} + +.bg-info { + color: #fff; + background-color: #5bc0de; +} + +a.bg-info:focus, +a.bg-info:hover { + background-color: #31b0d5; +} + +.bg-warning { + color: #fff; + background-color: #f0ad4e; +} + +a.bg-warning:focus, +a.bg-warning:hover { + background-color: #ec971f; +} + +.bg-danger { + color: #fff; + background-color: #d9534f; +} + +a.bg-danger:focus, +a.bg-danger:hover { + background-color: #c9302c; +} + +.m-a-0 { + margin: 0 !important; +} + +.m-t-0 { + margin-top: 0 !important; +} + +.m-r-0 { + margin-right: 0 !important; +} + +.m-b-0 { + margin-bottom: 0 !important; +} + +.m-l-0 { + margin-left: 0 !important; +} + +.m-x-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.m-y-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.m-a { + margin: 1rem !important; +} + +.m-t { + margin-top: 1rem !important; +} + +.m-r { + margin-right: 1rem !important; +} + +.m-b { + margin-bottom: 1rem !important; +} + +.m-l { + margin-left: 1rem !important; +} + +.m-x { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.m-y { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.m-x-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-a-md { + margin: 1.5rem !important; +} + +.m-t-md { + margin-top: 1.5rem !important; +} + +.m-r-md { + margin-right: 1.5rem !important; +} + +.m-b-md { + margin-bottom: 1.5rem !important; +} + +.m-l-md { + margin-left: 1.5rem !important; +} + +.m-x-md { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.m-y-md { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.m-a-lg { + margin: 3rem !important; +} + +.m-t-lg { + margin-top: 3rem !important; +} + +.m-r-lg { + margin-right: 3rem !important; +} + +.m-b-lg { + margin-bottom: 3rem !important; +} + +.m-l-lg { + margin-left: 3rem !important; +} + +.m-x-lg { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.m-y-lg { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.p-a-0 { + padding: 0 !important; +} + +.p-t-0 { + padding-top: 0 !important; +} + +.p-r-0 { + padding-right: 0 !important; +} + +.p-b-0 { + padding-bottom: 0 !important; +} + +.p-l-0 { + padding-left: 0 !important; +} + +.p-x-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.p-y-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.p-a { + padding: 1rem !important; +} + +.p-t { + padding-top: 1rem !important; +} + +.p-r { + padding-right: 1rem !important; +} + +.p-b { + padding-bottom: 1rem !important; +} + +.p-l { + padding-left: 1rem !important; +} + +.p-x { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.p-y { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.p-a-md { + padding: 1.5rem !important; +} + +.p-t-md { + padding-top: 1.5rem !important; +} + +.p-r-md { + padding-right: 1.5rem !important; +} + +.p-b-md { + padding-bottom: 1.5rem !important; +} + +.p-l-md { + padding-left: 1.5rem !important; +} + +.p-x-md { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.p-y-md { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.p-a-lg { + padding: 3rem !important; +} + +.p-t-lg { + padding-top: 3rem !important; +} + +.p-r-lg { + padding-right: 3rem !important; +} + +.p-b-lg { + padding-bottom: 3rem !important; +} + +.p-l-lg { + padding-left: 3rem !important; +} + +.p-x-lg { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.p-y-lg { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pos-f-t { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.hidden-xs-up { + display: none !important; +} + +@media (max-width: 33.9em) { + .hidden-xs-down { + display: none !important; + } +} + +@media (min-width: 34em) { + .hidden-sm-up { + display: none !important; + } +} + +@media (max-width: 47.9em) { + .hidden-sm-down { + display: none !important; + } +} + +@media (min-width: 48em) { + .hidden-md-up { + display: none !important; + } +} + +@media (max-width: 61.9em) { + .hidden-md-down { + display: none !important; + } +} + +@media (min-width: 62em) { + .hidden-lg-up { + display: none !important; + } +} + +@media (max-width: 74.9em) { + .hidden-lg-down { + display: none !important; + } +} + +@media (min-width: 75em) { + .hidden-xl-up { + display: none !important; + } +} + +.hidden-xl-down { + display: none !important; +} + +.visible-print-block { + display: none !important; +} + +@media print { + .visible-print-block { + display: block !important; + } +} + +.visible-print-inline { + display: none !important; +} + +@media print { + .visible-print-inline { + display: inline !important; + } +} + +.visible-print-inline-block { + display: none !important; +} + +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} + +@media print { + .hidden-print .hidden-print { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap.css.map */ diff --git a/bower_components/bootstrap/dist/css/bootstrap.css.map b/bower_components/bootstrap/dist/css/bootstrap.css.map new file mode 100644 index 000000000..8cbc27355 --- /dev/null +++ b/bower_components/bootstrap/dist/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap.css","../../scss/_normalize.scss","../../scss/_print.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/mixins/_tab-focus.scss","../../scss/_type.scss","../../scss/mixins/_clearfix.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_mixins.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_forms.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_animation.scss","../../scss/_dropdown.scss","../../scss/mixins/_nav-divider.scss","../../scss/mixins/_reset-filter.scss","../../scss/_button-group.scss","../../scss/mixins/_border-radius.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/mixins/_pagination.scss","../../scss/_pager.scss","../../scss/_labels.scss","../../scss/mixins/_label.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/mixins/_gradients.scss","../../scss/mixins/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_responsive-embed.scss","../../scss/_close.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/_utilities.scss","../../scss/mixins/_center-block.scss","../../scss/mixins/_pulls.scss","../../scss/mixins/_screen-reader.scss","../../scss/mixins/_hide-text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_background-variant.scss","../../scss/_utilities-spacing.scss","../../scss/_utilities-responsive.scss","../../scss/mixins/_responsive-visibility.scss"],"names":[],"mappings":"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;CEfrB;;AAD6B;EFgBvC,WAA+B;CEfrB;;AAD6B;EFgBvC,kBAA+B;CEfrB;;AAD6B;EFgBvC,kBAA+B;CEfrB;;AAD6B;EFgBvC,YAA+B;CEfrB;;AAD6B;EFYvC,WAAsD;CEX5C;;AAD6B;EFYvC,gBAA8B;CEXpB;;AAD6B;EFYvC,iBAA8B;CEXpB;;AAD6B;EFYvC,UAA8B;CEXpB;;AAD6B;EFYvC,iBAA8B;CEXpB;;AAD6B;EFYvC,iBAA8B;CEXpB;;AAD6B;EFYvC,UAA8B;CEXpB;;AAD6B;EFYvC,iBAA8B;CEXpB;;AAD6B;EFYvC,iBAA8B;CEXpB;;AAD6B;EFYvC,UAA8B;CEXpB;;AAD6B;EFYvC,iBAA8B;CEXpB;;AAD6B;EFYvC,iBAA8B;CEXpB;;AAD6B;EFYvC,WAA8B;CEXpB;;AAD6B;EFQvC,gBAAuB;CEPb;;AAD6B;EFQvC,uBAAuB;CEPb;;AAD6B;EFQvC,wBAAuB;CEPb;;AAD6B;EFQvC,iBAAuB;CEPb;;AAD6B;EFQvC,wBAAuB;CEPb;;AAD6B;EFQvC,wBAAuB;CEPb;;AAD6B;EFQvC,iBAAuB;CEPb;;AAD6B;EFQvC,wBAAuB;CEPb;;AAD6B;EFQvC,wBAAuB;CEPb;;AAD6B;EFQvC,iBAAuB;CEPb;;AAD6B;EFQvC,wBAAuB;CEPb;;AAD6B;EFQvC,wBAAuB;CEPb;;AAD6B;EFQvC,kBAAuB;CEPb;;ADQR;ECxBkE;IAK5D,YAAY;GAJd;EAO+B;IFUnC,iBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,YAAiB;GETX;EAM+B;IFgBvC,YAAuD;GEf7C;EAD6B;IFgBvC,iBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,YAA+B;GEfrB;EAD6B;IFYvC,WAAsD;GEX5C;EAD6B;IFYvC,gBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,WAA8B;GEXpB;EAD6B;IFQvC,gBAAuB;GEPb;EAD6B;IFQvC,uBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,kBAAuB;GEPb;ChB2mCX;;AenmCG;ECxBkE;IAK5D,YAAY;GAJd;EAO+B;IFUnC,iBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,YAAiB;GETX;EAM+B;IFgBvC,YAAuD;GEf7C;EAD6B;IFgBvC,iBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,YAA+B;GEfrB;EAD6B;IFYvC,WAAsD;GEX5C;EAD6B;IFYvC,gBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,WAA8B;GEXpB;EAD6B;IFQvC,gBAAuB;GEPb;EAD6B;IFQvC,uBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,kBAAuB;GEPb;ChB0wCX;;AelwCG;ECxBkE;IAK5D,YAAY;GAJd;EAO+B;IFUnC,iBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,YAAiB;GETX;EAM+B;IFgBvC,YAAuD;GEf7C;EAD6B;IFgBvC,iBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,YAA+B;GEfrB;EAD6B;IFYvC,WAAsD;GEX5C;EAD6B;IFYvC,gBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,WAA8B;GEXpB;EAD6B;IFQvC,gBAAuB;GEPb;EAD6B;IFQvC,uBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,kBAAuB;GEPb;ChBy6CX;;Aej6CG;ECxBkE;IAK5D,YAAY;GAJd;EAO+B;IFUnC,iBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,WAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,kBAAiB;GETX;EAD6B;IFUnC,YAAiB;GETX;EAM+B;IFgBvC,YAAuD;GEf7C;EAD6B;IFgBvC,iBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,WAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,kBAA+B;GEfrB;EAD6B;IFgBvC,YAA+B;GEfrB;EAD6B;IFYvC,WAAsD;GEX5C;EAD6B;IFYvC,gBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,UAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,iBAA8B;GEXpB;EAD6B;IFYvC,WAA8B;GEXpB;EAD6B;IFQvC,gBAAuB;GEPb;EAD6B;IFQvC,uBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,iBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,wBAAuB;GEPb;EAD6B;IFQvC,kBAAuB;GEPb;ChBwkDX;;AiBzmDD;EACE,YAAY;EACZ,gBAAgB;EAChB,oBbmD+B;CatDzB;;AAMN;;EACE,iBb4LkC;Ea3LlC,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lB4C+B;EkB3C/B,iBlBiE8B;EOpJ5B,uBPkL2B;CiBpLzB;;AAiBD;;;;;;EfjBH,qBAAqB;EAErB,2CAA2C;EAC3C,qBAAqB;CecV;;AhBDR;;EgBOD,sBAAsB;ChBPb;;AgBSV;EACC,sBAAsB;CADf;;AAKR;;EACC,uBAAuB;EACvB,WAAW;CAFH;;AAQS;;;EACjB,oBjByPwC;EiBxPxC,aAAa;CAFO;;AASJ;;EAClB,qBAAqB;CADG;;AAS1B;ECtDE,YlBoNmC;EkBnNnC,0BlB2BiC;EkB1BjC,sBlB0BiC;CiB0BrB;;ACzCH;;;;;EACP,YlBsMiC;EkBrMjC,0BATwB;EAUpB,sBATgB;CAMK;;AjBVxB;EiBgBD,YlBiMiC;EkBhMjC,0BAdwB;EAepB,sBAdgB;CjBJX;;AiBsBF;;;EAEP,uBAAuB;CAFE;;AASxB;;;;;;EACC,0BlBP6B;EkBQzB,sBlBRyB;CkBMtB;;AjB/BR;;;EiBoCC,0BlBX6B;EkBYzB,sBlBZyB;CCzBtB;;AgBsDb;ECzDE,elBsBiC;EkBrBjC,uBlBwNmC;EkBvNnC,mBlBwNmC;CiBjKrB;;AC5CL;;;;;EACP,elBQ+B;EkBP/B,0BATwB;EAUpB,sBATgB;CAMK;;AjBVxB;EiBgBD,elBG+B;EkBF/B,0BAdwB;EAepB,sBAdgB;CjBJX;;AiBsBF;;;EAEP,uBAAuB;CAFE;;AASxB;;;;;;EACC,uBlBsL+B;EkBrL3B,mBlBsL2B;CkBxLxB;;AjB/BR;;;EiBoCC,uBlBkL+B;EkBjL3B,mBlBkL2B;CCvNxB;;AgByDb;EC5DE,YlB4NmC;EkB3NnC,0BlB6BiC;EkB5BjC,sBlB4BiC;CiB8BxB;;AC/CA;;;;;EACP,YlB8MiC;EkB7MjC,0BATwB;EAUpB,sBATgB;CAMK;;AjBVxB;EiBgBD,YlByMiC;EkBxMjC,0BAdwB;EAepB,sBAdgB;CjBJX;;AiBsBF;;;EAEP,uBAAuB;CAFE;;AASxB;;;;;;EACC,0BlBL6B;EkBMzB,sBlBNyB;CkBItB;;AjB/BR;;;EiBoCC,0BlBT6B;EkBUzB,sBlBVyB;CC3BtB;;AgB4Db;EC/DE,YlBgOmC;EkB/NnC,0BlB4BiC;EkB3BjC,sBlB2BiC;CiBkCrB;;AClDH;;;;;EACP,YlBkNiC;EkBjNjC,0BATwB;EAUpB,sBATgB;CAMK;;AjBVxB;EiBgBD,YlB6MiC;EkB5MjC,0BAdwB;EAepB,sBAdgB;CjBJX;;AiBsBF;;;EAEP,uBAAuB;CAFE;;AASxB;;;;;;EACC,0BlBN6B;EkBOzB,sBlBPyB;CkBKtB;;AjB/BR;;;EiBoCC,0BlBV6B;EkBWzB,sBlBXyB;CC1BtB;;AgB+Db;EClEE,YlBoOmC;EkBnOnC,0BlB8BiC;EkB7BjC,sBlB6BiC;CiBmCrB;;ACrDH;;;;;EACP,YlBsNiC;EkBrNjC,0BATwB;EAUpB,sBATgB;CAMK;;AjBVxB;EiBgBD,YlBiNiC;EkBhNjC,0BAdwB;EAepB,sBAdgB;CjBJX;;AiBsBF;;;EAEP,uBAAuB;CAFE;;AASxB;;;;;;EACC,0BlBJ6B;EkBKzB,sBlBLyB;CkBGtB;;AjB/BR;;;EiBoCC,0BlBR6B;EkBSzB,sBlBTyB;CC5BtB;;AgBkEb;ECrEE,YlBwOmC;EkBvOnC,0BlB+BiC;EkB9BjC,sBlB8BiC;CiBqCtB;;ACxDF;;;;;EACP,YlB0NiC;EkBzNjC,0BATwB;EAUpB,sBATgB;CAMK;;AjBVxB;EiBgBD,YlBqNiC;EkBpNjC,0BAdwB;EAepB,sBAdgB;CjBJX;;AiBsBF;;;EAEP,uBAAuB;CAFE;;AASxB;;;;;;EACC,0BlBH6B;EkBIzB,sBlBJyB;CkBEtB;;AjB/BR;;;EiBoCC,0BlBP6B;EkBQzB,sBlBRyB;CC7BtB;;AgBuEb;EC5BE,elBlBiC;EkBmBjC,uBAAuB;EACvB,8BAA8B;EAC9B,sBlBrBiC;CiB8Cb;;ACnBX;;;;;EACP,YAAY;EACZ,0BlB7B+B;EkB8B3B,sBlB9B2B;CkB2BN;;AjBpDxB;EiB0DD,YAAY;EACZ,0BlBlC+B;EkBmC3B,sBlBnC2B;CCzBtB;;AiBmER;;;;;;EACC,sBAAqB;CADd;;AjBnER;;;EiBuEC,sBAAqB;CjBvEd;;AgB0Eb;EC/BE,YlB4KmC;EkB3KnC,uBAAuB;EACvB,8BAA8B;EAC9B,mBlByKmC;CiB7Ib;;ACtBb;;;;;EACP,YAAY;EACZ,uBlBiKiC;EkBhK7B,mBlBgK6B;CkBnKR;;AjBpDxB;EiB0DD,YAAY;EACZ,uBlB4JiC;EkB3J7B,mBlB2J6B;CCvNxB;;AiBmER;;;;;;EACC,oBAAqB;CADd;;AjBnER;;;EiBuEC,oBAAqB;CjBvEd;;AgB6Eb;EClCE,elBhBiC;EkBiBjC,uBAAuB;EACvB,8BAA8B;EAC9B,sBlBnBiC;CiBkDhB;;ACzBR;;;;;EACP,YAAY;EACZ,0BlB3B+B;EkB4B3B,sBlB5B2B;CkByBN;;AjBpDxB;EiB0DD,YAAY;EACZ,0BlBhC+B;EkBiC3B,sBlBjC2B;CC3BtB;;AiBmER;;;;;;EACC,sBAAqB;CADd;;AjBnER;;;EiBuEC,sBAAqB;CjBvEd;;AgBgFb;ECrCE,elBjBiC;EkBkBjC,uBAAuB;EACvB,8BAA8B;EAC9B,sBlBpBiC;CiBsDb;;AC5BX;;;;;EACP,YAAY;EACZ,0BlB5B+B;EkB6B3B,sBlB7B2B;CkB0BN;;AjBpDxB;EiB0DD,YAAY;EACZ,0BlBjC+B;EkBkC3B,sBlBlC2B;CC1BtB;;AiBmER;;;;;;EACC,sBAAqB;CADd;;AjBnER;;;EiBuEC,sBAAqB;CjBvEd;;AgBmFb;ECxCE,elBfiC;EkBgBjC,uBAAuB;EACvB,8BAA8B;EAC9B,sBlBlBiC;CiBuDb;;AC/BX;;;;;EACP,YAAY;EACZ,0BlB1B+B;EkB2B3B,sBlB3B2B;CkBwBN;;AjBpDxB;EiB0DD,YAAY;EACZ,0BlB/B+B;EkBgC3B,sBlBhC2B;CC5BtB;;AiBmER;;;;;;EACC,sBAAqB;CADd;;AjBnER;;;EiBuEC,sBAAqB;CjBvEd;;AgBsFb;EC3CE,elBdiC;EkBejC,uBAAuB;EACvB,8BAA8B;EAC9B,sBlBjBiC;CiByDd;;AClCV;;;;;EACP,YAAY;EACZ,0BlBzB+B;EkB0B3B,sBlB1B2B;CkBuBN;;AjBpDxB;EiB0DD,YAAY;EACZ,0BlB9B+B;EkB+B3B,sBlB/B2B;CC7BtB;;AiBmER;;;;;;EACC,sBAAqB;CADd;;AjBnER;;;EiBuEC,sBAAqB;CjBvEd;;AgBgGb;EACE,oBAAoB;EACpB,ejBzEiC;EiB0EjC,iBA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,uBPkL2B;C8BxLlB;;AAOT;EACA,sBAAsB;CADlB;;AAGA;EAEF,qBAAqB;EACrB,oBAAoB;EACpB,e9BgB6B;E8Bf7B,cAAyC;CAL9B;;AASb;EACA,e9BU+B;C8BXtB;;ACnBb;EACE,sBAAsB;EACtB,gBAAgB;EAChB,iB/BuD+B;E+BtD/B,oB/BsD+B;EOpD7B,uBPkL2B;C+BxLlB;;AAOT;EACA,gBAAgB;CADZ;;AAIF;;EACA,mBAAmB;EACnB,YAAY;EACZ,wB/B8WsC;E+B7WtC,kBAAkB;EAClB,iB/B0I0B;E+BzI1B,e/BiB6B;E+BhB7B,sBAAsB;EACtB,uB/BkXqC;E+BjXrC,uB/BkXqC;C+B3X/B;;AAaJ;;EACA,eAAe;EPPrB,mCxBsK6B;EwBrK1B,gCxBqK0B;C+BhKjB;;AAON;;EPvBN,oCxBgL6B;EwB/K1B,iCxB+K0B;C+BzJjB;;A9BXT;;;;E8BoBC,e/BqC6B;E+BpC7B,0B/BV6B;E+BW7B,mB/BgWqC;CCtX9B;;AAiBR;;;;;;E8BYC,WAAW;EACX,Y/B0VqC;E+BzVrC,gBAAgB;EAChB,0B/BlB6B;E+BmB7B,sB/BnB6B;CCGtB;;AAAR;;;;;;E8BwBG,e/B/B2B;E+BgC3B,oB/BsOoC;E+BrOpC,uB/BkVmC;E+BjVnC,mB/BkVmC;CC7W9B;;A+BhCP;;EACA,wBhC0XsC;EgCzXtC,mBhC8H8B;EgC7H9B,sBhC6KqB;CgChLf;;AAOJ;;ERMN,kCxBuK4B;EwBtKzB,+BxBsKyB;CgC7KhB;;AAMN;;ERVN,mCxBiL4B;EwBhLzB,gCxBgLyB;CgCvKhB;;AAbR;;EACA,0BhCwXsC;EgCvXtC,mBhC+H6B;EgC9H7B,iBhC8KsB;CgCjLhB;;AAOJ;;ERMN,kCxBwK4B;EwBvKzB,+BxBuKyB;CgC9KhB;;AAMN;;ERVN,mCxBkL4B;EwBjLzB,gCxBiLyB;CgCxKhB;;AClBd;EACE,gBAAgB;EAChB,iBjCwD+B;EiCvD/B,oBjCuD+B;EiCtD/B,mBAAmB;EACnB,iBAAiB;CALX;;A7BcL;;EACC,aAAa;EACb,eAAe;CAFR;;AAIR;EACC,YAAY;CADL;;A6BVT;EACE,gBAAgB;CADd;;AAIA;;EACA,sBAAsB;EACtB,kBAAiB;EACjB,uBjCsXqC;EiCrXrC,uBjCsXqC;EiCrXrC,oBjCwYqC;CiC7Y/B;;AhCQP;;EgCEG,sBAAsB;EACtB,0BjCQ2B;CCXtB;;AAiBR;;;EgCNG,ejCD2B;EiCE3B,oBjCoQoC;EiCnQpC,uBjCoWmC;CChW9B;;AgCDP;EACA,ejCP6B;EiCQ7B,oBjC8PsC;EiC7PtC,uBjC8VqC;CiCjW/B;;AAUR;;EACA,aAAa;CADP;;AAON;;EACA,YAAY;CADN;;AChDV;EACE,sBAAsB;EACtB,sBAAmB;EACnB,eAAe;EACf,kBAAkB;EAClB,eAAe;EACf,YlCwdgC;EkCvdhC,mBAAmB;EACnB,oBAAoB;EACpB,yBAAyB;E3BRvB,uBPkL2B;CkCnLvB;;AAaL;EACC,cAAc;CADP;;AAKJ;EACH,mBAAmB;EACnB,UAAU;CAFJ;;AjCHL;;EiCYD,YlCoc8B;EkCnc9B,sBAAsB;EACtB,gBAAgB;CjCdP;;AiCsBb;EACE,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;CAHT;;AAWb;EClDE,0BnC2BiC;CkCuBnB;;AjCjCX;;EkCbC,0BAAwB;ClCajB;;AiCqCb;ECtDE,0BnC+BiC;CkCuBnB;;AjCrCX;;EkCbC,0BAAwB;ClCajB;;AiCyCb;EC1DE,0BnCgCiC;CkC0BnB;;AjCzCX;;EkCbC,0BAAwB;ClCajB;;AiC6Cb;EC9DE,0BnCiCiC;CkC6BtB;;AjC7CR;;EkCbC,0BAAwB;ClCajB;;AiCiDb;EClEE,0BnCkCiC;CkCgCnB;;AjCjDX;;EkCbC,0BAAwB;ClCajB;;AiCqDb;ECtEE,0BnCmCiC;CkCmCpB;;AjCrDV;;EkCbC,0BAAwB;ClCajB;;AmCpBb;EACE,mBAA+C;EAC/C,oBpCmamC;EoClanC,0BpC4BiC;EOzB/B,sBPmL0B;CoCzLlB;;AAOZ;EACE,0BAAwB;CADX;;AzBsCX;EyBjCF;IACE,mBpCwZiC;GoCzZvB;CxCguIb;;AwC3tID;EACE,iBAAiB;EACjB,gBAAgB;E7Bbd,iB6BcsB;CAHR;;ACblB;EACE,crC2fgC;EqC1fhC,oBrCoD+B;EqCnD/B,8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","file":"bootstrap.css"} \ No newline at end of file diff --git a/bower_components/bootstrap/dist/css/bootstrap.min.css b/bower_components/bootstrap/dist/css/bootstrap.min.css new file mode 100644 index 000000000..fbea3ec99 --- /dev/null +++ b/bower_components/bootstrap/dist/css/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v4.0.0-alpha (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */img,legend{border:0}dl,ol,p,pre,ul{margin-top:0}address,dl,ol,p,ul{margin-bottom:1rem}b,dt,optgroup,strong{font-weight:700}caption,th{text-align:left}fieldset,legend,td,th{padding:0}pre,textarea{overflow:auto}.btn-group>.btn-group,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu,.table-reflow thead,.table-reflow tr{float:left}.btn,.c-indicator{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal:after,.dropdown-item,.modal-footer:after,.modal-header:after,.nav-tabs:after,.navbar:after,.pager:after,.row:after{clear:both}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;box-sizing:content-box}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}address,legend{line-height:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{resize:vertical}table{border-spacing:0;border-collapse:collapse}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{text-shadow:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;-webkit-tap-highlight-color:transparent}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}@viewport{width:device-width}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.5;color:#373a3c;background-color:#fff}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #818a91}address{font-style:normal}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dd,label{margin-bottom:.5rem}dd{margin-left:0}blockquote,figure{margin:0 0 1rem}a{color:#0275d8;text-decoration:none}a:focus,a:hover{color:#014c8c;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}[role=button]{cursor:pointer}table{background-color:transparent}caption{padding-top:.75rem;padding-bottom:.75rem;color:#818a91;caption-side:bottom}label{display:inline-block}button,input,select,textarea{margin:0;line-height:inherit}fieldset{min-width:0;margin:0;border:0}legend{display:block;width:100%;margin-bottom:.5rem;font-size:1.5rem}.list-inline>li,output{display:inline-block}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;margin-bottom:.5rem}.display-1,.display-2,.display-3,.display-4,.lead{font-weight:300}.blockquote,hr{margin-bottom:1rem}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem}.display-1{font-size:3.5rem}.display-2{font-size:4.5rem}.display-3{font-size:5.5rem}.display-4{font-size:6rem}hr{margin-top:1rem;border:0;border-top:.0625rem solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{padding-right:5px;padding-left:5px}.dl-horizontal{margin-right:-1.875rem;margin-left:-1.875rem}.container,.container-fluid{margin-right:auto;margin-left:auto}.dl-horizontal:after,.dl-horizontal:before{display:table;content:" "}.initialism{font-size:90%;text-transform:uppercase}.blockquote{padding:.5rem 1rem;font-size:1.25rem;border-left:.25rem solid #eceeef}.blockquote ol:last-child,.blockquote p:last-child,.blockquote ul: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"}.figure{display:inline-block}.figure>img{margin-bottom:.5rem;line-height:1}.table,pre{margin-bottom:1rem}.figure-caption{font-size:90%;color:#818a91}.carousel-inner>.carousel-item>a>img,.carousel-inner>.carousel-item>img,.figure>img,.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:.3rem}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:.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}code,kbd{padding:.2rem .4rem;font-size:90%}.img-circle{border-radius:50%}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#bd4147;background-color:#f7f7f9;border-radius:.25rem}kbd{color:#fff;background-color:#333;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:90%;line-height:1.5;color:#373a3c}.container-fluid:after,.container-fluid:before,.container:after,.container:before,.row:after,.row:before{display:table;content:" "}pre code{padding:0;font-size:inherit;color:inherit;background-color:transparent;border-radius:0}.container,.container-fluid{padding-right:.9375rem;padding-left:.9375rem}.pre-scrollable{max-height:340px;overflow-y:scroll}.row{margin-right:-.9375rem;margin-left:-.9375rem}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:.9375rem;padding-left:.9375rem}.col-xs-1{width:8.333333%}.col-xs-2{width:16.666667%}.col-xs-3{width:25%}.col-xs-4{width:33.333333%}.col-xs-5{width:41.666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333%}.col-xs-8{width:66.666667%}.col-xs-9{width:75%}.col-xs-10{width:83.333333%}.col-xs-11{width:91.666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.333333%}.col-xs-pull-2{right:16.666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.333333%}.col-xs-pull-5{right:41.666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.333333%}.col-xs-pull-8{right:66.666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.333333%}.col-xs-pull-11{right:91.666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.333333%}.col-xs-push-2{left:16.666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.333333%}.col-xs-push-5{left:41.666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.333333%}.col-xs-push-8{left:66.666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.333333%}.col-xs-push-11{left:91.666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.333333%}.col-xs-offset-2{margin-left:16.666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.333333%}.col-xs-offset-5{margin-left:41.666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.333333%}.col-xs-offset-8{margin-left:66.666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.333333%}.col-xs-offset-11{margin-left:91.666667%}.col-xs-offset-12{margin-left:100%}@media (min-width:34em){.container{max-width:34rem}.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.333333%}.col-sm-2{width:16.666667%}.col-sm-3{width:25%}.col-sm-4{width:33.333333%}.col-sm-5{width:41.666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333%}.col-sm-8{width:66.666667%}.col-sm-9{width:75%}.col-sm-10{width:83.333333%}.col-sm-11{width:91.666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.333333%}.col-sm-pull-2{right:16.666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.333333%}.col-sm-pull-5{right:41.666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333%}.col-sm-pull-8{right:66.666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.333333%}.col-sm-pull-11{right:91.666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.333333%}.col-sm-push-2{left:16.666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.333333%}.col-sm-push-5{left:41.666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333%}.col-sm-push-8{left:66.666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.333333%}.col-sm-push-11{left:91.666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.333333%}.col-sm-offset-2{margin-left:16.666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.333333%}.col-sm-offset-5{margin-left:41.666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333%}.col-sm-offset-8{margin-left:66.666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.333333%}.col-sm-offset-11{margin-left:91.666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width:48em){.container{max-width:45rem}.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.333333%}.col-md-2{width:16.666667%}.col-md-3{width:25%}.col-md-4{width:33.333333%}.col-md-5{width:41.666667%}.col-md-6{width:50%}.col-md-7{width:58.333333%}.col-md-8{width:66.666667%}.col-md-9{width:75%}.col-md-10{width:83.333333%}.col-md-11{width:91.666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333%}.col-md-pull-2{right:16.666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.333333%}.col-md-pull-5{right:41.666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333%}.col-md-pull-8{right:66.666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.333333%}.col-md-pull-11{right:91.666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333%}.col-md-push-2{left:16.666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.333333%}.col-md-push-5{left:41.666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333%}.col-md-push-8{left:66.666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.333333%}.col-md-push-11{left:91.666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333%}.col-md-offset-2{margin-left:16.666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.333333%}.col-md-offset-5{margin-left:41.666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333%}.col-md-offset-8{margin-left:66.666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.333333%}.col-md-offset-11{margin-left:91.666667%}.col-md-offset-12{margin-left:100%}}@media (min-width:62em){.container{max-width:60rem}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.333333%}.col-lg-2{width:16.666667%}.col-lg-3{width:25%}.col-lg-4{width:33.333333%}.col-lg-5{width:41.666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333%}.col-lg-8{width:66.666667%}.col-lg-9{width:75%}.col-lg-10{width:83.333333%}.col-lg-11{width:91.666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333%}.col-lg-pull-2{right:16.666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.333333%}.col-lg-pull-5{right:41.666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333%}.col-lg-pull-8{right:66.666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.333333%}.col-lg-pull-11{right:91.666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333%}.col-lg-push-2{left:16.666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.333333%}.col-lg-push-5{left:41.666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333%}.col-lg-push-8{left:66.666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.333333%}.col-lg-push-11{left:91.666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333%}.col-lg-offset-2{margin-left:16.666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.333333%}.col-lg-offset-5{margin-left:41.666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333%}.col-lg-offset-8{margin-left:66.666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.333333%}.col-lg-offset-11{margin-left:91.666667%}.col-lg-offset-12{margin-left:100%}}@media (min-width:75em){.container{max-width:72.25rem}.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{float:left}.col-xl-1{width:8.333333%}.col-xl-2{width:16.666667%}.col-xl-3{width:25%}.col-xl-4{width:33.333333%}.col-xl-5{width:41.666667%}.col-xl-6{width:50%}.col-xl-7{width:58.333333%}.col-xl-8{width:66.666667%}.col-xl-9{width:75%}.col-xl-10{width:83.333333%}.col-xl-11{width:91.666667%}.col-xl-12{width:100%}.col-xl-pull-0{right:auto}.col-xl-pull-1{right:8.333333%}.col-xl-pull-2{right:16.666667%}.col-xl-pull-3{right:25%}.col-xl-pull-4{right:33.333333%}.col-xl-pull-5{right:41.666667%}.col-xl-pull-6{right:50%}.col-xl-pull-7{right:58.333333%}.col-xl-pull-8{right:66.666667%}.col-xl-pull-9{right:75%}.col-xl-pull-10{right:83.333333%}.col-xl-pull-11{right:91.666667%}.col-xl-pull-12{right:100%}.col-xl-push-0{left:auto}.col-xl-push-1{left:8.333333%}.col-xl-push-2{left:16.666667%}.col-xl-push-3{left:25%}.col-xl-push-4{left:33.333333%}.col-xl-push-5{left:41.666667%}.col-xl-push-6{left:50%}.col-xl-push-7{left:58.333333%}.col-xl-push-8{left:66.666667%}.col-xl-push-9{left:75%}.col-xl-push-10{left:83.333333%}.col-xl-push-11{left:91.666667%}.col-xl-push-12{left:100%}.col-xl-offset-0{margin-left:0}.col-xl-offset-1{margin-left:8.333333%}.col-xl-offset-2{margin-left:16.666667%}.col-xl-offset-3{margin-left:25%}.col-xl-offset-4{margin-left:33.333333%}.col-xl-offset-5{margin-left:41.666667%}.col-xl-offset-6{margin-left:50%}.col-xl-offset-7{margin-left:58.333333%}.col-xl-offset-8{margin-left:66.666667%}.col-xl-offset-9{margin-left:75%}.col-xl-offset-10{margin-left:83.333333%}.col-xl-offset-11{margin-left:91.666667%}.col-xl-offset-12{margin-left:100%}}.table{width:100%;max-width:100%}.table td,.table th{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}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #eceeef}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:#f9f9f9}.table-active,.table-active>td,.table-active>th,.table-hover tbody tr:hover{background-color:#f5f5f5}.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#e8e8e8}.table-success,.table-success>td,.table-success>th{background-color:#dff0d8}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#d0e9c6}.table-info,.table-info>td,.table-info>th{background-color:#d9edf7}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c4e3f3}.table-warning,.table-warning>td,.table-warning>th{background-color:#fcf8e3}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#faf2cc}.table-danger,.table-danger>td,.table-danger>th{background-color:#f2dede}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ebcccc}.table-responsive{display:block;width:100%;overflow-x:auto}.collapsing,.dropdown-divider,.embed-responsive,.modal,.modal-open,.navbar-divider{overflow:hidden}.thead-inverse th{color:#fff;background-color:#373a3c}.thead-default th{color:#55595c;background-color:#eceeef}.table-inverse{color:#eceeef;background-color:#373a3c}.table-inverse.table-bordered{border:0}.table-inverse td,.table-inverse th,.table-inverse thead th{border-color:#55595c}.table-reflow tbody{display:block;white-space:nowrap}.table-reflow td,.table-reflow th{border-top:1px solid #eceeef;border-left:1px solid #eceeef}.table-reflow td:last-child,.table-reflow th:last-child{border-right:1px solid #eceeef}.table-reflow tbody:last-child tr:last-child td,.table-reflow tbody:last-child tr:last-child th,.table-reflow tfoot:last-child tr:last-child td,.table-reflow tfoot:last-child tr:last-child th,.table-reflow thead:last-child tr:last-child td,.table-reflow thead:last-child tr:last-child th{border-bottom:1px solid #eceeef}.table-reflow tr td,.table-reflow tr th{display:block!important;border:1px solid #eceeef}.form-control,.form-control-file,.form-control-range{display:block}.form-control{width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#55595c;background-color:#fff;background-image:none;border:.0625rem solid #ccc;border-radius:.25rem}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{border-color:#66afe9;outline:0}.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}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#5cb85c}.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-label{padding:.4375rem .75rem;margin-bottom:0}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:2.375rem}.input-group-sm input[type=date].form-control,.input-group-sm input[type=time].form-control,.input-group-sm input[type=datetime-local].form-control,.input-group-sm input[type=month].form-control,input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:1.95rem}.input-group-lg input[type=date].form-control,.input-group-lg input[type=time].form-control,.input-group-lg input[type=datetime-local].form-control,.input-group-lg input[type=month].form-control,input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:3.291667rem}}.form-control-static{min-height:2.375rem;padding-top:.4375rem;padding-bottom:.4375rem;margin-bottom:0}.form-control-static.form-control-lg,.form-control-static.form-control-sm,.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,.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{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{padding:.275rem .75rem;font-size:.85rem;line-height:1.5;border-radius:.2rem}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{padding:.75rem 1.25rem;font-size:1.25rem;line-height:1.333333;border-radius:.3rem}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-bottom:.75rem}.checkbox label,.checkbox-inline,.radio label,.radio-inline{padding-left:1.25rem;margin-bottom:0;cursor:pointer;font-weight:400}.checkbox label input:only-child,.radio label input:only-child{position:static}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:.25rem;margin-left:-1.25rem}.collapsing,.dropdown,.dropup{position:relative}.checkbox+.checkbox,.radio+.radio{margin-top:-.25rem}.checkbox-inline,.radio-inline{position:relative;display:inline-block;vertical-align:middle}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:.75rem}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox]:disabled,input[type=radio].disabled,input[type=radio]:disabled{cursor:not-allowed}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline{cursor:not-allowed}.form-control-error,.form-control-success,.form-control-warning{padding-right:2.25rem;background-repeat:no-repeat;background-position:center right .59375rem;-webkit-background-size:1.54375rem 1.54375rem;background-size:1.54375rem 1.54375rem}.has-success .form-control{border-color:#5cb85c}.has-success .input-group-addon{color:#5cb85c;background-color:#eaf6ea;border-color:#5cb85c}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#f0ad4e}.has-success .form-control-success{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNoZWNrIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDYxMiA3OTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYxMiA3OTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiM1Q0I4NUMiIGQ9Ik0yMzMuOCw2MTAuMWMtMTMuMywwLTI1LjktNi4yLTM0LTE2LjlMOTAuNSw0NDguOEM3Ni4zLDQzMCw4MCw0MDMuMyw5OC44LDM4OS4xYzE4LjgtMTQuMyw0NS41LTEwLjUsNTkuOCw4LjNsNzEuOSw5NWwyMjAuOS0yNTAuNWMxMi41LTIwLDM4LjgtMjYuMSw1OC44LTEzLjZjMjAsMTIuNCwyNi4xLDM4LjcsMTMuNiw1OC44TDI3MCw1OTBjLTcuNCwxMi0yMC4yLDE5LjQtMzQuMywyMC4xQzIzNS4xLDYxMC4xLDIzNC41LDYxMC4xLDIzMy44LDYxMC4xeiIvPjwvc3ZnPg==)}.has-warning .form-control{border-color:#f0ad4e}.has-warning .input-group-addon{color:#f0ad4e;background-color:#fff;border-color:#f0ad4e}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#d9534f}.has-warning .form-control-warning{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9Ildhcm5pbmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNjEyIDc5MiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjEyIDc5MiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZmlsbD0iI0YwQUQ0RSIgZD0iTTYwMyw2NDAuMmwtMjc4LjUtNTA5Yy0zLjgtNi42LTEwLjgtMTAuNi0xOC41LTEwLjZzLTE0LjcsNC4xLTE4LjUsMTAuNkw5LDY0MC4yYy0zLjcsNi41LTMuNiwxNC40LDAuMiwyMC44YzMuOCw2LjUsMTAuOCwxMC40LDE4LjMsMTAuNGg1NTcuMWM3LjUsMCwxNC41LTMuOSwxOC4zLTEwLjRDNjA2LjYsNjU0LjYsNjA2LjcsNjQ2LjYsNjAzLDY0MC4yeiBNMzM2LjYsNjEwLjJoLTYxLjJWNTQ5aDYxLjJWNjEwLjJ6IE0zMzYuNiw1MDMuMWgtNjEuMlYzMDQuMmg2MS4yVjUwMy4xeiIvPjwvc3ZnPg==)}.has-error .form-control{border-color:#d9534f}.has-error .input-group-addon{color:#d9534f;background-color:#fdf7f7;border-color:#d9534f}.has-error .form-control-error{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNyb3NzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDYxMiA3OTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYxMiA3OTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNEOTUzNEYiIGQ9Ik00NDcsNTQ0LjRjLTE0LjQsMTQuNC0zNy42LDE0LjQtNTEuOSwwTDMwNiw0NTEuN2wtODkuMSw5Mi43Yy0xNC40LDE0LjQtMzcuNiwxNC40LTUxLjksMGMtMTQuNC0xNC40LTE0LjQtMzcuNiwwLTUxLjlsOTIuNC05Ni40TDE2NSwyOTkuNmMtMTQuNC0xNC40LTE0LjQtMzcuNiwwLTUxLjlzMzcuNi0xNC40LDUxLjksMGw4OS4yLDkyLjdsODkuMS05Mi43YzE0LjQtMTQuNCwzNy42LTE0LjQsNTEuOSwwYzE0LjQsMTQuNCwxNC40LDM3LjYsMCw1MS45TDM1NC43LDM5Nmw5Mi40LDk2LjRDNDYxLjQsNTA2LjgsNDYxLjQsNTMwLDQ0Nyw1NDQuNHoiLz48L3N2Zz4=)}.btn-danger-outline,.btn-info-outline,.btn-info.active,.btn-info:active,.btn-primary-outline,.btn-primary.active,.btn-primary:active,.btn-secondary-outline,.btn-secondary.active,.btn-secondary:active,.btn-success-outline,.btn-success.active,.btn-success:active,.btn-warning-outline,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.open>.btn-info.dropdown-toggle,.open>.btn-primary.dropdown-toggle,.open>.btn-secondary.dropdown-toggle,.open>.btn-success.dropdown-toggle,.open>.btn-warning.dropdown-toggle{background-image:none}@media (min-width:34em){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.btn-block,input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn{display:inline-block;padding:.375rem 1rem;font-size:1rem;font-weight:400;line-height:1.5;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;user-select:none;border:.0625rem solid transparent;border-radius:.25rem}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{text-decoration:none}.btn.active,.btn:active{outline:0}.btn.disabled,.btn:disabled,fieldset[disabled] .btn{cursor:not-allowed;opacity:.65}a.btn.disaabled,fieldset[disabled] a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#025aa5;border-color:#01549b}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary:disabled.focus,.btn-primary:disabled:focus,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus{background-color:#0275d8;border-color:#0275d8}.btn-primary.disabled:hover,.btn-primary:disabled:hover,fieldset[disabled] .btn-primary:hover{background-color:#0275d8;border-color:#0275d8}.btn-secondary{color:#373a3c;background-color:#fff;border-color:#ccc}.btn-secondary.active,.btn-secondary.focus,.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover,.open>.btn-secondary.dropdown-toggle{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary.disabled.focus,.btn-secondary.disabled:focus,.btn-secondary:disabled.focus,.btn-secondary:disabled:focus,fieldset[disabled] .btn-secondary.focus,fieldset[disabled] .btn-secondary:focus{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-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info:disabled.focus,.btn-info:disabled:focus,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus{background-color:#5bc0de;border-color:#5bc0de}.btn-info.disabled:hover,.btn-info:disabled:hover,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#5bc0de}.btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#419641}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success:disabled.focus,.btn-success:disabled:focus,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus{background-color:#5cb85c;border-color:#5cb85c}.btn-success.disabled:hover,.btn-success:disabled:hover,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#5cb85c}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#eb9316}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning:disabled.focus,.btn-warning:disabled:focus,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus{background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning.disabled:hover,.btn-warning:disabled:hover,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#f0ad4e}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;border-color:#c12e2a}.btn-danger.active,.btn-danger:active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger:disabled.focus,.btn-danger:disabled:focus,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus{background-color:#d9534f;border-color:#d9534f}.btn-danger.disabled:hover,.btn-danger:disabled:hover,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d9534f}.btn-primary-outline{color:#0275d8;background-color:transparent;border-color:#0275d8}.btn-primary-outline.active,.btn-primary-outline.focus,.btn-primary-outline:active,.btn-primary-outline:focus,.btn-primary-outline:hover,.open>.btn-primary-outline.dropdown-toggle{color:#fff;background-color:#0275d8;border-color:#0275d8}.btn-primary-outline.disabled.focus,.btn-primary-outline.disabled:focus,.btn-primary-outline:disabled.focus,.btn-primary-outline:disabled:focus,fieldset[disabled] .btn-primary-outline.focus,fieldset[disabled] .btn-primary-outline:focus{border-color:#43a7fd}.btn-primary-outline.disabled:hover,.btn-primary-outline:disabled:hover,fieldset[disabled] .btn-primary-outline:hover{border-color:#43a7fd}.btn-secondary-outline{color:#ccc;background-color:transparent;border-color:#ccc}.btn-secondary-outline.active,.btn-secondary-outline.focus,.btn-secondary-outline:active,.btn-secondary-outline:focus,.btn-secondary-outline:hover,.open>.btn-secondary-outline.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.btn-secondary-outline.disabled.focus,.btn-secondary-outline.disabled:focus,.btn-secondary-outline:disabled.focus,.btn-secondary-outline:disabled:focus,fieldset[disabled] .btn-secondary-outline.focus,fieldset[disabled] .btn-secondary-outline:focus{border-color:#fff}.btn-secondary-outline.disabled:hover,.btn-secondary-outline:disabled:hover,fieldset[disabled] .btn-secondary-outline:hover{border-color:#fff}.btn-info-outline{color:#5bc0de;background-color:transparent;border-color:#5bc0de}.btn-info-outline.active,.btn-info-outline.focus,.btn-info-outline:active,.btn-info-outline:focus,.btn-info-outline:hover,.open>.btn-info-outline.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info-outline.disabled.focus,.btn-info-outline.disabled:focus,.btn-info-outline:disabled.focus,.btn-info-outline:disabled:focus,fieldset[disabled] .btn-info-outline.focus,fieldset[disabled] .btn-info-outline:focus{border-color:#b0e1ef}.btn-info-outline.disabled:hover,.btn-info-outline:disabled:hover,fieldset[disabled] .btn-info-outline:hover{border-color:#b0e1ef}.btn-success-outline{color:#5cb85c;background-color:transparent;border-color:#5cb85c}.btn-success-outline.active,.btn-success-outline.focus,.btn-success-outline:active,.btn-success-outline:focus,.btn-success-outline:hover,.open>.btn-success-outline.dropdown-toggle{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.btn-success-outline.disabled.focus,.btn-success-outline.disabled:focus,.btn-success-outline:disabled.focus,.btn-success-outline:disabled:focus,fieldset[disabled] .btn-success-outline.focus,fieldset[disabled] .btn-success-outline:focus{border-color:#a3d7a3}.btn-success-outline.disabled:hover,.btn-success-outline:disabled:hover,fieldset[disabled] .btn-success-outline:hover{border-color:#a3d7a3}.btn-warning-outline{color:#f0ad4e;background-color:transparent;border-color:#f0ad4e}.btn-warning-outline.active,.btn-warning-outline.focus,.btn-warning-outline:active,.btn-warning-outline:focus,.btn-warning-outline:hover,.open>.btn-warning-outline.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning-outline.disabled.focus,.btn-warning-outline.disabled:focus,.btn-warning-outline:disabled.focus,.btn-warning-outline:disabled:focus,fieldset[disabled] .btn-warning-outline.focus,fieldset[disabled] .btn-warning-outline:focus{border-color:#f8d9ac}.btn-warning-outline.disabled:hover,.btn-warning-outline:disabled:hover,fieldset[disabled] .btn-warning-outline:hover{border-color:#f8d9ac}.btn-danger-outline{color:#d9534f;background-color:transparent;border-color:#d9534f}.btn-danger-outline.active,.btn-danger-outline.focus,.btn-danger-outline:active,.btn-danger-outline:focus,.btn-danger-outline:hover,.open>.btn-danger-outline.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger-outline.disabled.focus,.btn-danger-outline.disabled:focus,.btn-danger-outline:disabled.focus,.btn-danger-outline:disabled:focus,fieldset[disabled] .btn-danger-outline.focus,fieldset[disabled] .btn-danger-outline:focus{border-color:#eba5a3}.btn-danger-outline.disabled:hover,.btn-danger-outline:disabled:hover,fieldset[disabled] .btn-danger-outline:hover{border-color:#eba5a3}.btn-link{font-weight:400;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:active,.btn-link:focus,.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-group-lg>.btn,.btn-lg{padding:.75rem 1.25rem;font-size:1.25rem;line-height:1.333333;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .75rem;font-size:.85rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block}.btn-block+.btn-block{margin-top:5px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{height:0;-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}.dropdown-toggle:after{display:inline-block;width:0;height:0;margin-left:.25rem;vertical-align:middle;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-left:.3em solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:1rem;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-header,.dropdown-item{display:block;padding:3px 20px;line-height:1.5;white-space:nowrap}.dropdown-divider{height:1px;margin:.5rem 0;background-color:#e5e5e5}.dropdown-item{width:100%;font-weight:400;color:#373a3c;text-align:inherit;background:0 0;border:0}.c-indicator,.label,.pager{text-align:center}.dropdown-item:focus,.dropdown-item:hover{color:#2b2d2f;text-decoration:none;background-color:#f5f5f5}.dropdown-item.active,.dropdown-item.active:focus,.dropdown-item.active:hover{color:#fff;text-decoration:none;background-color:#0275d8;outline:0}.dropdown-item.disabled,.dropdown-item.disabled:focus,.dropdown-item.disabled:hover{color:#818a91}.dropdown-item.disabled:focus,.dropdown-item.disabled:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:"progid:DXImageTransform.Microsoft.gradient(enabled = false)"}.c-input,.file{cursor:pointer}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{font-size:.85rem;color:#818a91}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover,.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:.3em solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group .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:after,.btn-toolbar:before{display:table;content:" "}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group-lg.btn-group>.btn+.dropdown-toggle,.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group-lg>.btn .caret,.btn-lg .caret{border-width:.3em .3em 0}.dropup .btn-group-lg>.btn .caret,.dropup .btn-lg .caret{border-width:0 .3em .3em}.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:after,.btn-group-vertical>.btn-group:before{display:table;content:" "}.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{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:.25rem;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:.25rem}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.c-input,.input-group,.input-group-btn,.input-group-btn>.btn{position:relative}.input-group{display:table;border-collapse:separate}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1;color:#55595c;text-align:center;background-color:#eceeef;border:1px solid #ccc;border-radius:.25rem}.alert-link,.close,.label{font-weight:700}.input-group-addon.form-control-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:.275rem .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:1.25rem;font-size:1.25rem;border-radius:.3rem}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.c-input{display:inline;padding-left:1.5rem;color:#555}.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;top:0;left:0;display:block;width:1rem;height:1rem;font-size:65%;line-height:1rem;color:#eee;user-select:none;background-color:#eee;background-repeat:no-repeat;background-position:center center;-webkit-background-size:50% 50%;background-size:50% 50%}.c-checkbox .c-indicator{border-radius:.25rem}.c-checkbox input:checked~.c-indicator{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)}.c-radio .c-indicator{border-radius:50%}.c-radio input:checked~.c-indicator{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-select,.file{display:inline-block}.c-inputs-stacked .c-input+.c-input{margin-left:0}.c-select{max-width:100%;-webkit-appearance:none;padding:.375rem 1.75rem .375rem .75rem;padding-right:.75rem\9;vertical-align:middle;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC) right .75rem center no-repeat #fff;background-image:none\9;-webkit-background-size:8px 10px;background-size:8px 10px;border:1px solid #ccc;-moz-appearance:none;appearance:none}.c-select:focus{border-color:#51a7e8;outline:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(81,167,232,.5);box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(81,167,232,.5)}.c-select::-ms-expand{opacity:0}.c-select-sm{padding-top:3px;padding-bottom:3px;font-size:12px}.c-select-sm:not([multiple]){height:26px;min-height:26px}.file{position:relative;height:2.5rem}.file-custom,.file-custom:before{position:absolute;height:2.5rem;padding:.5rem 1rem;line-height:1.5;color:#555}.file input{min-width:14rem;margin:0;filter:alpha(opacity=0);opacity:0}.file-custom{top:0;right:0;left:0;z-index:5;-webkit-user-select:none;-moz-user-select:none;-ms-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)}.file-custom:after{content:"Choose file..."}.file-custom:before{top:-.075rem;right:-.075rem;bottom:-.075rem;z-index:6;display:block;content:"Browse";background-color:#eee;border:.075rem solid #ddd;border-radius:0 .25rem .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}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:inline-block}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#818a91}.nav-link.disabled,.nav-link.disabled:focus,.nav-link.disabled:hover{color:#818a91;cursor:not-allowed;background-color:transparent}.nav-inline .nav-link+.nav-link{margin-left:1rem}.nav-pills .nav-item+.nav-item,.nav-tabs .nav-item+.nav-item{margin-left:.2rem}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs:after,.nav-tabs:before{display:table;content:" "}.nav-tabs .nav-item{float:left;margin-bottom:-1px}.nav-tabs .nav-link{display:block;padding:.5em 1em;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 .nav-link.disabled,.nav-tabs .nav-link.disabled:focus,.nav-tabs .nav-link.disabled:hover{color:#818a91;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link: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-pills .nav-item{float:left}.nav-pills .nav-link{display:block;padding:.5em 1em;border-radius:.25rem}.nav-pills .nav-item.open .nav-link,.nav-pills .nav-item.open .nav-link:focus,.nav-pills .nav-item.open .nav-link: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}.nav-stacked .nav-item{display:block;float:none}.nav-stacked .nav-item+.nav-item{margin-top:.2rem;margin-left:0}.navbar-divider,.navbar-nav .nav-item+.nav-item,.navbar-nav .nav-link+.nav-link{margin-left:1rem}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;padding:.5rem 1rem}.navbar:after,.navbar:before{display:table;content:" "}.navbar-static-top{z-index:1000}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.card,.card-title{margin-bottom:.75rem}.navbar-fixed-top{top:0}.navbar-fixed-bottom{bottom:0}.navbar-sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1030;width:100%}@media (min-width:34em){.navbar{border-radius:.25rem}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top,.navbar-sticky-top{border-radius:0}}.navbar-brand{float:left;padding-top:.25rem;padding-bottom:.25rem;margin-right:1rem;font-size:1.25rem}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}.navbar-divider{float:left;width:1px;padding-top:.425rem;padding-bottom:.425rem;margin-right:1rem}.navbar-divider:before{content:'\00a0'}.navbar-toggler{padding:.5rem .75rem;font-size:1.25rem;line-height:1;background:0 0;border:.0625rem solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}@media (min-width:34em){.navbar-toggleable-xs{display:block!important}}@media (min-width:48em){.navbar-toggleable-sm{display:block!important}}.navbar-nav .nav-item{float:left}.navbar-nav .nav-link{display:block;padding-top:.425rem;padding-bottom:.425rem}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.8)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.6)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .active>.nav-link:focus,.navbar-light .navbar-nav .active>.nav-link:hover,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.active:focus,.navbar-light .navbar-nav .nav-link.active:hover,.navbar-light .navbar-nav .nav-link.open,.navbar-light .navbar-nav .nav-link.open:focus,.navbar-light .navbar-nav .nav-link.open:hover,.navbar-light .navbar-nav .open>.nav-link,.navbar-light .navbar-nav .open>.nav-link:focus,.navbar-light .navbar-nav .open>.nav-link:hover{color:rgba(0,0,0,.8)}.navbar-light .navbar-divider{background-color:rgba(0,0,0,.075)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.card-inverse .card-blockquote,.card-inverse .card-footer,.card-inverse .card-header,.card-inverse .card-title,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .active>.nav-link:focus,.navbar-dark .navbar-nav .active>.nav-link:hover,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.active:focus,.navbar-dark .navbar-nav .nav-link.active:hover,.navbar-dark .navbar-nav .nav-link.open,.navbar-dark .navbar-nav .nav-link.open:focus,.navbar-dark .navbar-nav .nav-link.open:hover,.navbar-dark .navbar-nav .open>.nav-link,.navbar-dark .navbar-nav .open>.nav-link:focus,.navbar-dark .navbar-nav .open>.nav-link:hover{color:#fff}.navbar-dark .navbar-divider{background-color:rgba(255,255,255,.075)}.card{position:relative;border:.0625rem solid #e5e5e5;border-radius:.25rem}.card-block{padding:1.25rem}.card-footer,.card-header{padding:.75rem 1.25rem;background-color:#f5f5f5}.card-title{margin-top:0}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card>.list-group:first-child .list-group-item:first-child{border-radius:.25rem .25rem 0 0}.card>.list-group:last-child .list-group-item:last-child{border-radius:0 0 .25rem .25rem}.card-header{border-bottom:.0625rem solid #e5e5e5}.card-header:first-child{border-radius:.1875rem .1875rem 0 0}.card-footer{border-top:.0625rem solid #e5e5e5}.card-footer:last-child{border-radius:0 0 .1875rem .1875rem}.card-primary{background-color:#0275d8;border-color:#0275d8}.card-success{background-color:#5cb85c;border-color:#5cb85c}.card-info{background-color:#5bc0de;border-color:#5bc0de}.card-warning{background-color:#f0ad4e;border-color:#f0ad4e}.card-danger{background-color:#d9534f;border-color:#d9534f}.card-inverse .card-footer,.card-inverse .card-header{border-bottom:.075rem solid rgba(255,255,255,.2)}.card-inverse .card-blockquote>footer,.card-inverse .card-link,.card-inverse .card-text{color:rgba(255,255,255,.65)}.card-inverse .card-link:focus,.card-inverse .card-link:hover{color:#fff}.card-blockquote{padding:0;margin-bottom:0;border-left:0}.card-img{border-radius:.25rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img-top{border-radius:.25rem .25rem 0 0}.card-img-bottom{border-radius:0 0 .25rem .25rem}.card-deck{display:table;table-layout:fixed;border-spacing:1.25rem 0}.card-deck .card{display:table-cell;width:1%;vertical-align:top}.card-columns .card,.progress{width:100%}.card-deck-wrapper{margin-right:-1.25rem;margin-left:-1.25rem}.card-group{display:table;width:100%;table-layout:fixed}.card-group .card{display:table-cell;vertical-align:top}.breadcrumb>li,.card-columns .card,.pagination{display:inline-block}.card-group .card+.card{margin-left:0;border-left:0}.card-group .card:first-child .card-img-top{border-top-right-radius:0}.card-group .card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group .card:last-child .card-img-top{border-top-left-radius:0}.card-group .card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group .card:not(:first-child):not(:last-child){border-radius:0}.card-group .card:not(:first-child):not(:last-child) .card-img-bottom,.card-group .card:not(:first-child):not(:last-child) .card-img-top{border-radius:0}.breadcrumb,.pagination{border-radius:.25rem;margin-bottom:1rem}.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem}.breadcrumb{padding:.75rem 1rem;list-style:none;background-color:#eceeef}.breadcrumb>li+li:before{padding-right:.5rem;padding-left:.5rem;color:#818a91;content:"/ "}.breadcrumb>.active{color:#818a91}.pagination{padding-left:0;margin-top:1rem}.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>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span: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;line-height:1.333333}.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-sm>li>a,.pagination-sm>li>span{padding:.275rem .75rem;font-size:.85rem;line-height:1.5}.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}.pager{padding-left:0;margin-top:1rem;margin-bottom:1rem;list-style:none}.pager:after,.pager:before{display:table;content:" "}.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,.pager .disabled>span{color:#818a91;cursor:not-allowed;background-color:#fff}.pager-next>a,.pager-next>span{float:right}.pager-prev>a,.pager-prev>span{float:left}.label{display:inline-block;padding:.25em .4em;font-size:75%;line-height:1;color:#fff;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-pill{padding-right:.6em;padding-left:.6em;border-radius:1rem}.label-default{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}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#eceeef;border-radius:.3rem}.jumbotron-hr{border-top-color:#d0d5d8}@media (min-width:34em){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left: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}.alert-heading{margin-top:0;color:inherit}.alert-dismissible{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}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bcdff1}.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}.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:1rem 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:block;height:1rem;margin-bottom:1rem}.progress[value]{-webkit-appearance:none;color:#0074d9;border:0;-moz-appearance:none;appearance:none}.progress[value]::-webkit-progress-bar{background-color:#eee;border-radius:.25rem}.progress[value]::-webkit-progress-value::before{content:attr(value)}.progress[value]::-webkit-progress-value{background-color:#0074d9;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.progress[value="100"]::-webkit-progress-value{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}@media screen and (min-width:0 \0){.progress{background-color:#eee;border-radius:.25rem}.progress-bar{display:inline-block;height:1rem;text-indent:-999rem;background-color:#0074d9;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.progress[width^="0"]{min-width:2rem;color:#818a91;background-color:transparent;background-image:none}.progress[width="100%"]{border-top-right-radius:.25rem;border-bottom-right-radius:.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:1rem 1rem;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:1rem 1rem}.progress-animated[value]::-webkit-progress-value{-webkit-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}.progress-success[value]::-webkit-progress-value{background-color:#5cb85c}.progress-success[value]::-moz-progress-bar{background-color:#5cb85c}@media screen and (min-width:0 \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:1rem 1rem;background-size:1rem 1rem}.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}.progress-success .progress-bar{background-color:#5cb85c}}.progress-info[value]::-webkit-progress-value{background-color:#5bc0de}.progress-info[value]::-moz-progress-bar{background-color:#5bc0de}@media screen and (min-width:0 \0){.progress-info .progress-bar{background-color:#5bc0de}}.progress-warning[value]::-webkit-progress-value{background-color:#f0ad4e}.progress-warning[value]::-moz-progress-bar{background-color:#f0ad4e}@media screen and (min-width:0 \0){.progress-warning .progress-bar{background-color:#f0ad4e}}.progress-danger[value]::-webkit-progress-value{background-color:#d9534f}.progress-danger[value]::-moz-progress-bar{background-color:#d9534f}@media screen and (min-width:0 \0){.progress-danger .progress-bar{background-color:#d9534f}}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right{padding-left:10px}.media-left{padding-right:10px}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:0}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-.0625rem;background-color:#fff;border:.0625rem 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}.list-group-flush .list-group-item{border-width:.0625rem 0;border-radius:0}a.list-group-item,button.list-group-item{width:100%;color:#555;text-align:inherit}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#818a91;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}.list-group-item-state{color:#a94442;background-color:#f2dede}a.list-group-item-state,button.list-group-item-state{color:#a94442}a.list-group-item-state .list-group-item-heading,button.list-group-item-state .list-group-item-heading{color:inherit}a.list-group-item-state:focus,a.list-group-item-state:hover,button.list-group-item-state:focus,button.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,button.list-group-item-state.active,button.list-group-item-state.active:focus,button.list-group-item-state.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9{padding-bottom:42.857143%}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.close{float:right;font-size:1.5rem;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}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-content,.popover{-webkit-background-clip:padding-box}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;-webkit-overflow-scrolling:touch;outline:0}.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before{display:table;content:" "}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.in{opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.5}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.popover,.tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.85rem;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;line-break:auto;text-decoration:none}.popover,.tooltip{position:absolute;display:block}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:34em){.modal-dialog{width:600px;margin:30px auto}.modal-sm{width:300px}}@media (min-width:48em){.modal-lg{width:900px}}.tooltip{z-index:1070;text-align:start;opacity:0}.tooltip.in{opacity:.9}.tooltip.bs-tether-element-attached-bottom,.tooltip.tooltip-top{padding:5px 0;margin-top:-3px}.tooltip.bs-tether-element-attached-bottom .tooltip-arrow,.tooltip.tooltip-top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.bs-tether-element-attached-left,.tooltip.tooltip-right{padding:0 5px;margin-left:3px}.tooltip.bs-tether-element-attached-left .tooltip-arrow,.tooltip.tooltip-right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.bs-tether-element-attached-top,.tooltip.tooltip-bottom{padding:5px 0;margin-top:3px}.tooltip.bs-tether-element-attached-top .tooltip-arrow,.tooltip.tooltip-bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bs-tether-element-attached-right,.tooltip.tooltip-left{padding:0 5px;margin-left:-3px}.tooltip.bs-tether-element-attached-right .tooltip-arrow,.tooltip.tooltip-left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{top:0;left:0;z-index:1060;max-width:276px;padding:1px;text-align:start;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.carousel-caption,.carousel-control{color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.text-nowrap,.text-truncate{white-space:nowrap}.popover.bs-tether-element-attached-bottom,.popover.popover-top{margin-top:-10px}.popover.bs-tether-element-attached-bottom .popover-arrow,.popover.popover-top .popover-arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.bs-tether-element-attached-bottom .popover-arrow:after,.popover.popover-top .popover-arrow:after{bottom:1px;margin-left:-10px;content:"";border-top-color:#fff;border-bottom-width:0}.popover.bs-tether-element-attached-left,.popover.popover-right{margin-left:10px}.popover.bs-tether-element-attached-left .popover-arrow,.popover.popover-right .popover-arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.bs-tether-element-attached-left .popover-arrow:after,.popover.popover-right .popover-arrow:after{bottom:-10px;left:1px;content:"";border-right-color:#fff;border-left-width:0}.popover.bs-tether-element-attached-top,.popover.popover-bottom{margin-top:10px}.popover.bs-tether-element-attached-top .popover-arrow,.popover.popover-bottom .popover-arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-top .popover-arrow:after,.popover.popover-bottom .popover-arrow:after{top:1px;margin-left:-10px;content:"";border-top-width:0;border-bottom-color:#fff}.popover.bs-tether-element-attached-right,.popover.popover-left{margin-left:-10px}.popover.bs-tether-element-attached-right .popover-arrow,.popover.popover-left .popover-arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-right .popover-arrow:after,.popover.popover-left .popover-arrow:after{right:1px;bottom:-10px;content:"";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:-.7rem -.7rem 0 0}.popover-content{padding:9px 14px}.popover-arrow,.popover-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover-arrow{border-width:11px}.popover-arrow:after{content:"";border-width:10px}.carousel-inner{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>a>img,.carousel-inner>.carousel-item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.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:1000px;perspective:1000px}.carousel-inner>.carousel-item.active.right,.carousel-inner>.carousel-item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.carousel-item.active.left,.carousel-inner>.carousel-item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.carousel-item.active,.carousel-inner>.carousel-item.next.left,.carousel-inner>.carousel-item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;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-next,.carousel-control .icon-prev{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;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:transparent;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media (min-width:34em){.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .icon-prev{margin-left:-15px}.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:after,.clearfix:before{display:table;content:" "}.center-block{display:block;margin-right:auto;margin-left:auto}.hidden-xl-down,.hidden-xs-up,.visible-print-block,[hidden]{display:none!important}.pull-right{float:right!important}.pull-left{float:left!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.p-r-0,.p-x-0{padding-right:0!important}.p-l-0,.p-x-0{padding-left:0!important}.p-t-0,.p-y-0{padding-top:0!important}.p-b-0,.p-y-0{padding-bottom:0!important}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.m-r-0,.m-x-0{margin-right:0!important}.m-l-0,.m-x-0{margin-left:0!important}.m-t-0,.m-y-0{margin-top:0!important}.m-b-0,.m-y-0{margin-bottom:0!important}.invisible{visibility:hidden}.text-hide{font:"0/0" a;color:transparent;background-color:transparent;border:0}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-truncate{overflow:hidden;text-overflow:ellipsis}.text-xs-left{text-align:left}.text-xs-right{text-align:right}.text-xs-center{text-align:center}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#818a91}.text-primary{color:#0275d8}a.text-primary:focus,a.text-primary:hover{color:#025aa5}.text-success{color:#5cb85c}a.text-success:focus,a.text-success:hover{color:#449d44}.text-info{color:#5bc0de}a.text-info:focus,a.text-info:hover{color:#31b0d5}.text-warning{color:#f0ad4e}a.text-warning:focus,a.text-warning:hover{color:#ec971f}.text-danger{color:#d9534f}a.text-danger:focus,a.text-danger:hover{color:#c9302c}.bg-inverse{color:#eceeef;background-color:#373a3c}.bg-faded{background-color:#f7f7f9}.bg-primary{color:#fff;background-color:#0275d8}a.bg-primary:focus,a.bg-primary:hover{background-color:#025aa5}.bg-success{color:#fff;background-color:#5cb85c}a.bg-success:focus,a.bg-success:hover{background-color:#449d44}.bg-info{color:#fff;background-color:#5bc0de}a.bg-info:focus,a.bg-info:hover{background-color:#31b0d5}.bg-warning{color:#fff;background-color:#f0ad4e}a.bg-warning:focus,a.bg-warning:hover{background-color:#ec971f}.bg-danger{color:#fff;background-color:#d9534f}a.bg-danger:focus,a.bg-danger:hover{background-color:#c9302c}.m-a-0{margin:0!important}.m-r,.m-x{margin-right:1rem!important}.m-l,.m-x{margin-left:1rem!important}.m-t,.m-y{margin-top:1rem!important}.m-b,.m-y{margin-bottom:1rem!important}.m-a{margin:1rem!important}.m-t-md,.m-y-md{margin-top:1.5rem!important}.m-b-md,.m-y-md{margin-bottom:1.5rem!important}.m-x-auto{margin-right:auto!important;margin-left:auto!important}.m-r-md,.m-x-md{margin-right:1.5rem!important}.m-l-md,.m-x-md{margin-left:1.5rem!important}.m-a-md{margin:1.5rem!important}.m-r-lg,.m-x-lg{margin-right:3rem!important}.m-l-lg,.m-x-lg{margin-left:3rem!important}.m-t-lg,.m-y-lg{margin-top:3rem!important}.m-b-lg,.m-y-lg{margin-bottom:3rem!important}.m-a-lg{margin:3rem!important}.p-a-0{padding:0!important}.p-r,.p-x{padding-right:1rem!important}.p-l,.p-x{padding-left:1rem!important}.p-t,.p-y{padding-top:1rem!important}.p-b,.p-y{padding-bottom:1rem!important}.p-a{padding:1rem!important}.p-r-md,.p-x-md{padding-right:1.5rem!important}.p-l-md,.p-x-md{padding-left:1.5rem!important}.p-t-md,.p-y-md{padding-top:1.5rem!important}.p-b-md,.p-y-md{padding-bottom:1.5rem!important}.p-a-md{padding:1.5rem!important}.p-r-lg,.p-x-lg{padding-right:3rem!important}.p-l-lg,.p-x-lg{padding-left:3rem!important}.p-t-lg,.p-y-lg{padding-top:3rem!important}.p-b-lg,.p-y-lg{padding-bottom:3rem!important}.p-a-lg{padding:3rem!important}.pos-f-t{position:fixed;top:0;right:0;left:0;z-index:1030}@media (max-width:33.9em){.hidden-xs-down{display:none!important}}@media (min-width:34em){.text-sm-left{text-align:left}.text-sm-right{text-align:right}.text-sm-center{text-align:center}.hidden-sm-up{display:none!important}}@media (max-width:47.9em){.hidden-sm-down{display:none!important}}@media (min-width:48em){.text-md-left{text-align:left}.text-md-right{text-align:right}.text-md-center{text-align:center}.hidden-md-up{display:none!important}}@media (max-width:61.9em){.hidden-md-down{display:none!important}}@media (min-width:62em){.text-lg-left{text-align:left}.text-lg-right{text-align:right}.text-lg-center{text-align:center}.hidden-lg-up{display:none!important}}@media (max-width:74.9em){.hidden-lg-down{display:none!important}}@media (min-width:75em){.text-xl-left{text-align:left}.text-xl-right{text-align:right}.text-xl-center{text-align:center}.hidden-xl-up{display:none!important}}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print .hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/bower_components/bootstrap/dist/css/bootstrap.min.css.map b/bower_components/bootstrap/dist/css/bootstrap.min.css.map new file mode 100644 index 000000000..f7ddcf6b6 --- /dev/null +++ b/bower_components/bootstrap/dist/css/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/_normalize.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","../../scss/_print.scss","../../scss/_button-group.scss","../../scss/mixins/_grid-framework.scss","../../scss/_dropdown.scss","../../scss/_tables.scss","../../scss/_buttons.scss","../../scss/_custom-forms.scss","bootstrap.css","../../scss/_modal.scss","../../scss/_variables.scss","../../scss/_nav.scss","../../scss/_utilities.scss","../../scss/mixins/_hover.scss","../../scss/mixins/_tab-focus.scss","../../scss/_type.scss","../../scss/_list-group.scss","../../scss/mixins/_clearfix.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_mixins.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_table-row.scss","../../scss/_animation.scss","../../scss/_forms.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_buttons.scss","../../scss/mixins/_nav-divider.scss","../../scss/_labels.scss","../../scss/_input-group.scss","../../scss/mixins/_border-radius.scss","../../scss/_alert.scss","../../scss/_close.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_progress.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_pager.scss","../../scss/mixins/_label.scss","../../scss/_jumbotron.scss","../../scss/mixins/_alert.scss","../../scss/mixins/_gradients.scss","../../scss/mixins/_progress.scss","../../scss/_media.scss","../../scss/mixins/_list-group.scss","../../scss/_responsive-embed.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_tooltip.scss","../../scss/_carousel.scss","../../scss/mixins/_center-block.scss","../../scss/mixins/_screen-reader.scss","../../scss/_utilities-responsive.scss","../../scss/mixins/_hide-text.scss","../../scss/_utilities-spacing.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_background-variant.scss","../../scss/mixins/_responsive-visibility.scss"],"names":[],"mappings":"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AAY,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAJd,SAAA,SJoxBN,WAAY,II7wByB,cAAA,SoBUnC,aAAiB,SpBVkB,UoBUnC,MAAiB,UpBVkB,UoBUnC,MAAA,WpBVmC,UoBUnC,MAAA,IpBVmC,UoBUnC,MAAiB,WpBVkB,UoBUnC,MAAA,WpBVmC,UoBUnC,MAAA,IpBVmC,UoBUnC,MAAiB,WpBVkB,UoBUnC,MAAA,WpBVmC,UoBUnC,MAAA,IpBVmC,WoBUnC,MAAiB,WpBHoB,WoBgBvC,MAAuD,WpBhBhB,WoBgBvC,MAAA,KpBhBuC,eoBgBvC,MAAA,KpBhBuC,eoBgBvC,MAA+B,UpBhBQ,eoBgBvC,MAAA,WpBhBuC,eoBgBvC,MAAA,IpBhBuC,eoBgBvC,MAA+B,WpBhBQ,eoBgBvC,MAAA,WpBhBuC,eoBgBvC,MAAA,IpBhBuC,eoBgBvC,MAA+B,WpBhBQ,eoBgBvC,MAAA,WpBhBuC,eoBgBvC,MAAA,IpBhBuC,gBoBgBvC,MAA+B,WpBhBQ,gBoBYvC,MAAsD,WpBZf,gBoBYvC,MAAA,KpBZuC,eoBYvC,KAAA,KpBZuC,eoBYvC,KAA8B,UpBZS,eoBYvC,KAAA,WpBZuC,eoBYvC,KAAA,IpBZuC,eoBYvC,KAA8B,WpBZS,eoBYvC,KAAA,WpBZuC,eoBYvC,KAAA,IpBZuC,eoBYvC,KAA8B,WpBZS,eoBYvC,KAAA,WpBZuC,eoBYvC,KAAA,IpBZuC,gBoBYvC,KAA8B,WpBZS,gBoBQvC,KAAA,WpBRuC,gBoBQvC,KAAA,KpBRuC,iBoBQvC,YAAA,EpBRuC,iBoBQvC,YAAuB,UpBRgB,iBoBQvC,YAAA,WpBRuC,iBoBQvC,YAAA,IpBRuC,iBoBQvC,YAAuB,WpBRgB,iBoBQvC,YAAA,WpBRuC,iBoBQvC,YAAA,IpBRuC,iBoBQvC,YAAuB,WpBRgB,iBoBQvC,YAAA,WpBRuC,iBoBQvC,YAAA,IpBRuC,kBoBQvC,YAAuB,WCCrB,kBrBxBkE,YAAA,WAQ/B,kBoBUnC,YAAA,KAAiB,wBDnCT,Wd0uBX,UAAA,MLhtBS,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA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wEhB,anBQ+B,KAAA,sBmBTN,qBhBVxB,sBgBUwB,qB9BgxE7B,qB8BvxE4B,qCAepB,MAAA,QhBlBK,iBAAA,QduxEX,aAAc,Q8BxvEH,8BAAA,8BhB/BR,8BAAA,8BHsNgC,wCGtNhC,wCgBqCK,iBnBkL2B,KGvNxB,aAAA,KHyNwB,8BA9LF,8BAAA,wCJ8BxB,iBAAA,KP2vET,aAAc,KAGhB,UACE,MAAO,KACP,iBAAkB,Q8B9yEhB,anB8MiC,QAAA,iBmB/MR,gBhBVxB,iBgBUwB,gB9B6zE7B,gB8Bp0E4B,gCAepB,MAAA,KhBlBK,iBAAA,Qdo0EX,aAAc,Q8BryEH,yBAAA,yBhB/BR,yBAAA,yBH2B8B,mCG3B9B,mCgBqCK,iBnBVyB,QG3BtB,aAAA,QH6NwB,yBmB/NnC,yBnB4BiC,mCJkCrB,iBAAA,QPqyEZ,aAAc,QAGhB,aACE,MAAO,KACP,iBAAkB,Q8B31EhB,anBkNiC,QAAA,oBmBnNR,mBhBVxB,oBgBUwB,mB9B02E7B,mB8Bj3E4B,mCAepB,MAAA,KhBlBK,iBAAA,Qdi3EX,aAAc,Q8Bl1EH,4BAAA,4BhB/BR,4BAAA,4BH0B8B,sCG1B9B,sCgBqCK,iBnBXyB,QG1BtB,aAAA,QHiOwB,4BmBnOnC,4BnB8BiC,sCJmCrB,iBAAA,QP+0EZ,aAAc,QAGhB,aACE,MAAO,KACP,iBAAkB,Q8Bx4EhB,anBsNiC,QAAA,oBmBvNR,mBhBVxB,oBgBUwB,mB9Bu5E7B,mB8B95E4B,mCAepB,MAAA,KhBlBK,iBAAA,Qd85EX,aAAc,Q8B/3EH,4BAAA,4BhB/BR,4BAAA,4BH4B8B,sCG5B9B,sCgBqCK,iBnBTyB,QG5BtB,aAAA,QHqOwB,4BmBvOnC,4BnB+BiC,sCJqCtB,iBAAA,QPy3EX,aAAc,QAGhB,YACE,MAAO,KACP,iBAAkB,Q8Br7EhB,anB0NiC,QAAA,mBmB3NR,kBhBVxB,mBgBUwB,kB9Bo8E7B,kB8B38E4B,kCAepB,MAAA,KhBlBK,iBAAA,Qd28EX,aAAc,QAUhB,mBADA,mBAEA,kCACE,iBAAkB,K8Bx7EP,2BAAA,2BhB/BR,2BAAA,2BH6B8B,qCG7B9B,qCgBqCK,iBnBRyB,QG7BtB,aAAA,QHyBsB,2BmBmBV,2BACO,qCAC9B,iBnBrBiC,QJ8Cb,aAAA,QPo6EtB,qBACE,MAAO,QACP,iBAAkB,Y8Bx7EhB,aAAY,QAKA,4BANa,2BhBpDxB,4BgBoDwB,2B9Bw8E7B,2BWn+EmC,2CmBmC3B,MAAA,KhB5DK,iBAAA,Qdy/EX,aAAc,Qcz/EX,oCdkgFL,oCclgFK,oCAAA,oCAAQ,8CgBuEc,8C9Bi8EzB,aAAc,Q8B59ES,oCACO,oCnB0KK,8CJ7Ib,aAAA,QPu8ExB,uBACE,MAAO,KACP,iBAAkB,Y8B99EhB,aAAY,KAKA,8BANa,6BhBpDxB,8BgBoDwB,6B9B8+E7B,6BW30EqC,6CmB3J7B,MAAA,KhB5DK,iBAAA,Kd+hFX,aAAc,Kc/hFX,sCdwiFL,sCcxiFK,sCAAA,sCAAQ,gDgBuEc,gD9Bu+EzB,aAAc,K8BlgFS,sCACO,sCnBlBG,gDJkDhB,aAAA,KP0+EnB,kBACE,MAAO,QACP,iBAAkB,Y8BpgFhB,aAAY,QAKA,yBANa,wBhBpDxB,yBgBoDwB,wB9BohF7B,wBW7iFmC,wCmBiC3B,MAAA,KhB5DK,iBAAA,QdqkFX,aAAc,QcrkFX,iCd8kFL,iCc9kFK,iCAAA,iCAAQ,2CgBuEc,2C9B6gFzB,aAAc,Q8BxiFS,iCACvB,iCnBnBiC,2CJsDb,aAAA,QP6gFtB,qBACE,MAAO,QACP,iBAAkB,Y8B1iFhB,aAAY,QAKA,4BANa,2BhBpDxB,4BgBoDwB,2B9B0jF7B,2BWplFmC,2CmBkC3B,MAAA,KhB5DK,iBAAA,Qd2mFX,aAAc,Qc3mFX,oCdonFL,oCcpnFK,oCAAA,oCAAQ,8CgBuEc,8C9BmjFzB,aAAc,Q8B9kFS,oCACO,oCnBjBG,8CJuDb,aAAA,QPgjFtB,qBACE,MAAO,QACP,iBAAkB,Y8BhlFhB,aAAY,QAKA,4BANa,2BhBpDxB,4BgBoDwB,2B9BgmF7B,2BWxnFmC,2CmBgC3B,MAAA,KhB5DK,iBAAA,QdipFX,aAAc,QcjpFX,oCd0pFL,oCc1pFK,oCAAA,oCAAQ,8CgBuEc,8C9BylFzB,aAAc,Q8BpnFS,oCACO,oCnBhBG,8CJyDd,aAAA,QPmlFrB,oBACE,MAA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"} \ No newline at end of file diff --git a/bower_components/bootstrap/dist/js/bootstrap.js b/bower_components/bootstrap/dist/js/bootstrap.js new file mode 100644 index 000000000..7d51c641c --- /dev/null +++ b/bower_components/bootstrap/dist/js/bootstrap.js @@ -0,0 +1,3519 @@ +/*! + * Bootstrap v4.0.0-alpha (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +if (typeof jQuery === 'undefined') { + throw new Error('Bootstrap\'s JavaScript requires jQuery') +} + ++function ($) { + var version = $.fn.jquery.split(' ')[0].split('.') + if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) { + throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher') + } +}(jQuery); + + ++function ($) { + +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): util.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +'use strict'; + +var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + +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 _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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +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 Boolean(transition); + }, + + typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { + for (var property in configTypes) { + if (configTypes.hasOwnProperty(property)) { + 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); + +/** + * -------------------------------------------------------------------------- + * 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; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // private + + }, { + key: '_getRootElement', + value: function _getRootElement(element) { + var selector = Util.getSelectorFromElement(element); + var parent = false; + + 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, $.proxy(this._destroyElement, this, element)).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: '_destroyElement', + value: function _destroyElement(element) { + $(element).detach().trigger(Event.CLOSED).remove(); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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); + }; + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Alert; + })(); + + $(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 ($) { + + /** + * ------------------------------------------------------------------------ + * 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 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; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Button; + })(); + + $(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 + }; + + 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(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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 _this2 = 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 _this2.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; + } + + // private + + }, { + key: '_getConfig', + 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 _this3 = this; + + var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + + var isCycling = Boolean(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); + + _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(); + } + } + + // static + + }], [{ + key: '_jQueryInterface', + 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(); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Carousel; + })(); + + $(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) + * -------------------------------------------------------------------------- + */ + +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(); + } + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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 _this4 = 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() { + $(_this4._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.IN); + + _this4._element.style[dimension] = ''; + + _this4.setTransitioning(false); + + $(_this4._element).trigger(Event.SHOWN); + }; + + if (!Util.supportsTransitionEnd()) { + complete(); + return; + } + + var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + var scrollSize = 'scroll' + capitalizedDimension; + + $(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; + + 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() { + _this5.setTransitioning(false); + $(_this5._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); + }; + + this._element.style[dimension] = 0; + + if (!Util.supportsTransitionEnd()) { + complete(); + return; + } + + $(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; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + config.toggle = Boolean(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); + } + } + } + + // static + + }], [{ + key: '_getTargetFromElement', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Collapse; + })(); + + $(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 ($) { + + /** + * ------------------------------------------------------------------------ + * 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(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Dropdown, [{ + key: 'toggle', + + // public + + value: function toggle() { + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return false; + } + + 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 false; + } + + this.focus(); + this.setAttribute('aria-expanded', 'true'); + + $(parent).toggleClass(ClassName.OPEN); + $(parent).trigger($.Event(Event.SHOWN, relatedTarget)); + + return false; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._element).off(EVENT_KEY); + this._element = null; + } + + // private + + }, { + key: '_addEventListeners', + value: function _addEventListeners() { + $(this._element).on(Event.CLICK, this.toggle); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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(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) { + // up + index--; + } + + if (event.which === 40 && index < items.length - 1) { + // down + index++; + } + + if (! ~index) { + index = 0; + } + + items[index].focus(); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Dropdown; + })(); + + $(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 + }; + + 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 = { + SCROLLBAR_MEASURER: 'modal-scrollbar-measure', + 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"]', + FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed' + }; + + /** + * ------------------------------------------------------------------------ + * 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; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Modal, [{ + key: 'toggle', + + // public + + value: function toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + }, { + key: 'show', + value: function show(relatedTarget) { + var _this7 = 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 () { + $(_this7._element).one(Event.MOUSEUP_DISMISS, function (event) { + if ($(event.target).is(_this7._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; + } + + // private + + }, { + key: '_getConfig', + 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(document.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(); + } + } + + // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // todo (fat): these should probably be refactored out of modal.js + // ---------------------------------------------------------------------- + + }, { + key: '_handleUpdate', + 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($(Selector.FIXED_CONTENT).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 = ClassName.SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + } + + // static + + }], [{ + key: '_jQueryInterface', + 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); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Modal; + })(); + + $(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]; + } + + 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 ($(_this13).is(':visible')) { + _this13.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); + +/** + * -------------------------------------------------------------------------- + * 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_ITEM: 'dropdown-item', + DROPDOWN_MENU: 'dropdown-menu', + NAV_LINK: 'nav-link', + NAV: 'nav', + ACTIVE: 'active' + }; + + var Selector = { + DATA_SPY: '[data-spy="scroll"]', + ACTIVE: '.active', + LIST_ITEM: '.list-item', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + NAV_LINKS: '.nav-link', + DROPDOWN: '.dropdown', + DROPDOWN_ITEMS: '.dropdown-item', + DROPDOWN_TOGGLE: '.dropdown-toggle' + }; + + 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_LINKS + ',' + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS); + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + + $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this)); + + this.refresh(); + this._process(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // private + + }, { + key: '_getConfig', + 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 queries = this._selector.split(','); + queries = queries.map(function (selector) { + return selector + '[data-target="' + target + '"],' + (selector + '[href="' + target + '"]'); + }); + + var $link = $(queries.join(',')); + + if ($link.hasClass(ClassName.DROPDOWN_ITEM)) { + $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); + $link.addClass(ClassName.ACTIVE); + } else { + // todo (fat) this is kinda sus… + // recursively add actives to tested nav-links + $link.parents(Selector.LI).find(Selector.NAV_LINKS).addClass(ClassName.ACTIVE); + } + + $(this._scrollElement).trigger(Event.ACTIVATE, { + relatedTarget: target + }); + } + }, { + key: '_clear', + value: function _clear() { + $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return ScrollSpy; + })(); + + $(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', + DROPDOWN: '.dropdown', + UL: 'ul:not(.dropdown-menu)', + FADE_CHILD: '> .nav-item .fade, > .fade', + ACTIVE: '.active', + ACTIVE_CHILD: '> .nav-item > .active, > .active', + DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]', + DROPDOWN_TOGGLE: '.dropdown-toggle', + DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tab = (function () { + function Tab(element) { + _classCallCheck(this, Tab); + + this._element = element; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Tab, [{ + key: 'show', + + // public + + value: function show() { + var _this15 = this; + + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).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]; + } + + 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, 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; + } + + // private + + }, { + key: '_activate', + value: function _activate(element, container, callback) { + var active = $(container).find(Selector.ACTIVE_CHILD)[0]; + var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(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); + } + + active.setAttribute('aria-expanded', false); + } + + $(element).addClass(ClassName.ACTIVE); + element.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.DROPDOWN)[0]; + if (dropdownElement) { + $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); + } + + element.setAttribute('aria-expanded', true); + } + + if (callback) { + callback(); + } + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Tab; + })(); + + $(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, + 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(); + } + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + // getters + + _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) { + if (event) { + var dataKey = this.constructor.DATA_KEY; + var 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 { + + if ($(this.getTipElement()).hasClass(ClassName.IN)) { + this._leave(null, this); + return; + } + + this._enter(null, this); + } + } + }, { + 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 _this16 = 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({ + attachment: attachment, + element: tip, + target: this.element, + 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 = _this16._hoverState; + _this16._hoverState = null; + + $(_this16.element).trigger(_this16.constructor.Event.SHOWN); + + if (prevHoverState === HoverState.OUT) { + _this16._leave(null, _this16); + } + }; + + if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION); + return; + } + + complete(); + } + } + }, { + 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 = ''; + } + + // protected + + }, { + key: 'isWithContent', + value: function isWithContent() { + return Boolean(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); + } + } + + // private + + }, { + key: '_getAttachment', + value: function _getAttachment(placement) { + return AttachmentMap[placement.toUpperCase()]; + } + }, { + key: '_setListeners', + value: function _setListeners() { + var _this18 = this; + + 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; + + $(_this18.element).on(eventIn, _this18.config.selector, $.proxy(_this18._enter, _this18)).on(eventOut, _this18.config.selector, $.proxy(_this18._leave, _this18)); + } + }); + + 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) { + if (this.constructor.Default[key] !== this.config[key]) { + config[key] = this.config[key]; + } + } + } + + return config; + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }, { + key: 'NAME', + get: function get() { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function get() { + return DATA_KEY; + } + }, { + key: 'Event', + get: function get() { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function get() { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function get() { + return DefaultType; + } + }]); + + return Tooltip; + })(); + + $.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 ($) { + + /** + * ------------------------------------------------------------------------ + * 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) { + _inherits(Popover, _Tooltip); + + function Popover() { + _classCallCheck(this, Popover); + + _get(Object.getPrototypeOf(Popover.prototype), 'constructor', this).apply(this, arguments); + } + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + _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(); + } + + // private + + }, { + key: '_getContent', + value: function _getContent() { + return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + + // getters + + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }, { + key: 'NAME', + get: function get() { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function get() { + return DATA_KEY; + } + }, { + key: 'Event', + get: function get() { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function get() { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function get() { + return DefaultType; + } + }]); + + return Popover; + })(Tooltip); + + $.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/bower_components/bootstrap/dist/js/bootstrap.min.js b/bower_components/bootstrap/dist/js/bootstrap.min.js new file mode 100644 index 000000000..013ed3187 --- /dev/null +++ b/bower_components/bootstrap/dist/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.0.0-alpha (http://getbootstrap.com) + * 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(){"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&&(Object.setPrototypeOf?Object.setPrototypeOf(a,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(a,b,c){for(var d=!0;d;){var e=a,f=b,g=c;h=j=i=void 0,d=!1,null===e&&(e=Function.prototype);var h=Object.getOwnPropertyDescriptor(e,f);if(void 0!==h){if("value"in h)return h.value;var i=h.get;return void 0===i?void 0:i.call(g)}var j=Object.getPrototypeOf(e);if(null===j)return void 0;a=j,b=f,c=g,d=!0}},d=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),e.typeCheckConfig(c,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 d=this,f=a(this._element).find(q.ACTIVE_ITEM)[0],g=c||f&&this._getItemByDirection(b,f),h=Boolean(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});e.supportsTransitionEnd()&&a(this._element).hasClass(p.SLIDE)?(a(g).addClass(b),e.reflow(g),a(f).addClass(i),a(g).addClass(i),a(f).one(e.TRANSITION_END,function(){a(g).removeClass(i).removeClass(b),a(g).addClass(p.ACTIVE),a(f).removeClass(p.ACTIVE).removeClass(b).removeClass(i),d._isSliding=!1,setTimeout(function(){return a(d._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:"_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=e.getSelectorFromElement(this);if(c){var d=a(c)[0];if(d&&a(d).hasClass(p.CAROUSEL)){var f=a.extend({},a(d).data(),a(this).data()),h=this.getAttribute("data-slide-to");h&&(f.interval=!1),i._jQueryInterface.call(a(d),f),h&&a(d).data(g).to(h),b.preventDefault()}}}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}}]),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[c]=r._jQueryInterface,a.fn[c].Constructor=r,a.fn[c].noConflict=function(){return a.fn[c]=j,r._jQueryInterface},r}(jQuery),function(a){var c="collapse",f="4.0.0",g="bs.collapse",h="."+g,i=".data-api",j=a.fn[c],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 d(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,d=void 0;if(this._parent&&(c=a.makeArray(a(q.ACTIVES)),c.length||(c=null)),!(c&&(d=a(c).data(g),d&&d._isTransitioning))){var f=a.Event(n.SHOW);if(a(this._element).trigger(f),!f.isDefaultPrevented()){c&&(h._jQueryInterface.call(a(c),"hide"),d||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(!e.supportsTransitionEnd())return void j();var l=i[0].toUpperCase()+i.slice(1),m="scroll"+l;a(this._element).one(e.TRANSITION_END,j).emulateTransitionEnd(k),this._element.style[i]=this._element[m]+"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 d=this._getDimension(),f=d===p.WIDTH?"offsetWidth":"offsetHeight";this._element.style[d]=this._element[f]+"px",e.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[d]=0,e.supportsTransitionEnd()?void a(this._element).one(e.TRANSITION_END,g).emulateTransitionEnd(k):void 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=Boolean(b.toggle),e.typeCheckConfig(c,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:"_getTargetFromElement",value:function(b){var c=e.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]()})}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}}]),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[c]=r._jQueryInterface,a.fn[c].Constructor=r,a.fn[c].noConflict=function(){return a.fn[c]=j,r._jQueryInterface},r}(jQuery),function(a){var c="dropdown",f="4.0.0",g="bs.dropdown",h="."+g,i=".data-api",j=a.fn[c],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 c(a){b(this,c),this._element=a,this._addEventListeners()}return d(c,[{key:"toggle",value:function(){if(this.disabled||a(this).hasClass(l.DISABLED))return!1;var b=c._getParentFromElement(this),d=a(b).hasClass(l.OPEN);if(c._clearMenus(),d)return!1;if("ontouchstart"in document.documentElement&&!a(b).closest(m.NAVBAR_NAV).length){var e=document.createElement("div");e.className=l.BACKDROP,a(e).insertBefore(this),a(e).on("click",c._clearMenus)}var f={relatedTarget:this},g=a.Event(k.SHOW,f);return a(b).trigger(g),g.isDefaultPrevented()?!1:(this.focus(),this.setAttribute("aria-expanded","true"),a(b).toggleClass(l.OPEN),a(b).trigger(a.Event(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:"_jQueryInterface",value:function(b){return this.each(function(){var d=a(this).data(g);d||a(this).data(g,d=new c(this)),"string"==typeof b&&d[b].call(this)})}},{key:"_clearMenus",value:function(b){if(!b||3!==b.which){var d=a(m.BACKDROP)[0];d&&d.parentNode.removeChild(d);for(var e=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=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 .nav-item .fade, > .fade",ACTIVE:".active",ACTIVE_CHILD:"> .nav-item > .active, > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},o=function(){function c(a){b(this,c),this._element=a}return d(c,[{key:"show",value:function(){var b=this;if(!this._element.parentNode||this._element.parentNode.nodeType!==Node.ELEMENT_NODE||!a(this._element).hasClass(m.ACTIVE)){var c=void 0,d=void 0,f=a(this._element).closest(n.UL)[0],g=e.getSelectorFromElement(this._element);f&&(d=a.makeArray(a(f).find(n.ACTIVE)),d=d[d.length-1]);var h=a.Event(l.HIDE,{ +relatedTarget:this._element}),i=a.Event(l.SHOW,{relatedTarget:d});if(d&&a(d).trigger(h),a(this._element).trigger(i),!i.isDefaultPrevented()&&!h.isDefaultPrevented()){g&&(c=a(g)[0]),this._activate(this._element,f);var j=function(){var c=a.Event(l.HIDDEN,{relatedTarget:b._element}),e=a.Event(l.SHOWN,{relatedTarget:d});a(d).trigger(c),a(b._element).trigger(e)};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,d){var f=a(c).find(n.ACTIVE_CHILD)[0],g=d&&e.supportsTransitionEnd()&&(f&&a(f).hasClass(m.FADE)||Boolean(a(c).find(n.FADE_CHILD)[0])),h=a.proxy(this._transitionComplete,this,b,f,g,d);f&&g?a(f).one(e.TRANSITION_END,h).emulateTransitionEnd(k):h(),f&&a(f).removeClass(m.IN)}},{key:"_transitionComplete",value:function(b,c,d,f){if(c){a(c).removeClass(m.ACTIVE);var g=a(c).find(n.DROPDOWN_ACTIVE_CHILD)[0];g&&a(g).removeClass(m.ACTIVE),c.setAttribute("aria-expanded",!1)}if(a(b).addClass(m.ACTIVE),b.setAttribute("aria-expanded",!0),d?(e.reflow(b),a(b).addClass(m.IN)):a(b).removeClass(m.FADE),b.parentNode&&a(b.parentNode).hasClass(m.DROPDOWN_MENU)){var h=a(b).closest(n.DROPDOWN)[0];h&&a(h).find(n.DROPDOWN_TOGGLE).addClass(m.ACTIVE),b.setAttribute("aria-expanded",!0)}f&&f()}}],[{key:"_jQueryInterface",value:function(b){return this.each(function(){var d=a(this),e=d.data(g);e||(e=e=new c(this),d.data(g,e)),"string"==typeof b&&e[b]()})}},{key:"VERSION",get:function(){return f}}]),c}();return a(document).on(l.CLICK_DATA_API,n.DATA_TOGGLE,function(b){b.preventDefault(),o._jQueryInterface.call(a(this),"show")}),a.fn[c]=o._jQueryInterface,a.fn[c].Constructor=o,a.fn[c].noConflict=function(){return a.fn[c]=j,o._jQueryInterface},o}(jQuery),function(a){var c="tooltip",f="4.0.0",g="bs.tooltip",h="."+g,i=a.fn[c],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 d(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){if(b){var c=this.constructor.DATA_KEY,d=a(b.currentTarget).data(c);d||(d=new this.constructor(b.currentTarget,this._getDelegateConfig()),a(b.currentTarget).data(c,d)),d._activeTrigger.click=!d._activeTrigger.click,d._isWithActiveTrigger()?d._enter(null,d):d._leave(null,d)}else{if(a(this.getTipElement()).hasClass(q.IN))return void this._leave(null,this);this._enter(null,this)}}},{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 d=a.contains(this.element.ownerDocument.documentElement,this.element);if(c.isDefaultPrevented()||!d)return;var f=this.getTipElement(),g=e.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({attachment:j,element:f,target:this.element,classes:s,classPrefix:k,offset:this.config.offset,constraints:this.config.constraints}),e.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)};if(e.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE))return void a(this.tip).one(e.TRANSITION_END,l).emulateTransitionEnd(i._TRANSITION_DURATION);l()}}},{key:"hide",value:function(b){var c=this,d=this.getTipElement(),f=a.Event(this.constructor.Event.HIDE),g=function(){c._hoverState!==o.IN&&d.parentNode&&d.parentNode.removeChild(d),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(d).removeClass(q.IN),e.supportsTransitionEnd()&&a(this.tip).hasClass(q.FADE)?a(d).one(e.TRANSITION_END,g).emulateTransitionEnd(j):g(),this._hoverState="")}},{key:"isWithContent",value:function(){return Boolean(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}),e.typeCheckConfig(c,b,this.constructor.DefaultType),b}},{key:"_getDelegateConfig",value:function(){var a={};if(this.config)for(var b in this.config)this.constructor.Default[b]!==this.config[b]&&(a[b]=this.config[b]);return a}}],[{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]())})}},{key:"VERSION",get:function(){return f}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return c}},{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}}]),i}();return a.fn[c]=u._jQueryInterface,a.fn[c].Constructor=u,a.fn[c].noConflict=function(){return a.fn[c]=i,u._jQueryInterface},u}(jQuery));!function(e){var g="popover",h="4.0.0",i="bs.popover",j="."+i,k=e.fn[g],l=e.extend({},f.Default,{placement:"right",trigger:"click",content:"",template:''}),m=e.extend({},f.DefaultType,{content:"(string|function)"}),n={FADE:"fade",IN:"in"},o={TITLE:".popover-title",CONTENT:".popover-content",ARROW:".popover-arrow"},p={HIDE:"hide"+j,HIDDEN:"hidden"+j,SHOW:"show"+j,SHOWN:"shown"+j,INSERTED:"inserted"+j,CLICK:"click"+j,FOCUSIN:"focusin"+j,FOCUSOUT:"focusout"+j,MOUSEENTER:"mouseenter"+j,MOUSELEAVE:"mouseleave"+j},q=function(f){function k(){b(this,k),c(Object.getPrototypeOf(k.prototype),"constructor",this).apply(this,arguments)}return a(k,f),d(k,[{key:"isWithContent",value:function(){return this.getTitle()||this._getContent()}},{key:"getTipElement",value:function(){return this.tip=this.tip||e(this.config.template)[0]}},{key:"setContent",value:function(){var a=this.getTipElement(),b=this.getTitle(),c=this._getContent(),d=e(a).find(o.TITLE)[0];d&&(d[this.config.html?"innerHTML":"innerText"]=b),e(a).find(o.CONTENT).children().detach().end()[this.config.html?"string"==typeof c?"html":"append":"text"](c),e(a).removeClass(n.FADE).removeClass(n.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:"_jQueryInterface",value:function(a){return this.each(function(){var b=e(this).data(i),c="object"==typeof a?a:null;(b||!/destroy|hide/.test(a))&&(b||(b=new k(this,c),e(this).data(i,b)),"string"==typeof a&&b[a]())})}},{key:"VERSION",get:function(){return h}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return g}},{key:"DATA_KEY",get:function(){return i}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return j}},{key:"DefaultType",get:function(){return m}}]),k}(f);return e.fn[g]=q._jQueryInterface,e.fn[g].Constructor=q,e.fn[g].noConflict=function(){return e.fn[g]=k,q._jQueryInterface},q}(jQuery)}}(jQuery); \ No newline at end of file diff --git a/bower_components/bootstrap/dist/js/npm.js b/bower_components/bootstrap/dist/js/npm.js new file mode 100644 index 000000000..d0564681c --- /dev/null +++ b/bower_components/bootstrap/dist/js/npm.js @@ -0,0 +1,12 @@ +// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. +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/bower_components/bootstrap/dist/js/umd/alert.js b/bower_components/bootstrap/dist/js/umd/alert.js new file mode 100644 index 000000000..62782ca60 --- /dev/null +++ b/bower_components/bootstrap/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 _interopRequireDefault(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 = _interopRequireDefault(_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; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // private + + }, { + key: '_getRootElement', + value: function _getRootElement(element) { + var selector = _Util['default'].getSelectorFromElement(element); + var parent = false; + + 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['default'].supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) { + this._destroyElement(element); + return; + } + + $(element).one(_Util['default'].TRANSITION_END, $.proxy(this._destroyElement, this, element)).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: '_destroyElement', + value: function _destroyElement(element) { + $(element).detach().trigger(Event.CLOSED).remove(); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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); + }; + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Alert; + })(); + + $(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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/button.js b/bower_components/bootstrap/dist/js/umd/button.js new file mode 100644 index 000000000..a3575ba2b --- /dev/null +++ b/bower_components/bootstrap/dist/js/umd/button.js @@ -0,0 +1,187 @@ +(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) { + /** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + + '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'); } } + + 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 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; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Button; + })(); + + $(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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/carousel.js b/bower_components/bootstrap/dist/js/umd/carousel.js new file mode 100644 index 000000000..9a03d3776 --- /dev/null +++ b/bower_components/bootstrap/dist/js/umd/carousel.js @@ -0,0 +1,486 @@ +(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 _interopRequireDefault(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 = _interopRequireDefault(_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(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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['default'].supportsTransitionEnd()) { + _Util['default'].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; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + _Util['default'].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 = Boolean(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['default'].supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { + + $(nextElement).addClass(direction); + + _Util['default'].reflow(nextElement); + + $(activeElement).addClass(directionalClassName); + $(nextElement).addClass(directionalClassName); + + $(activeElement).one(_Util['default'].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(); + } + } + + // static + + }], [{ + key: '_jQueryInterface', + 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['default'].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(); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Carousel; + })(); + + $(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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/collapse.js b/bower_components/bootstrap/dist/js/umd/collapse.js new file mode 100644 index 000000000..055541ca9 --- /dev/null +++ b/bower_components/bootstrap/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 _interopRequireDefault(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 = _interopRequireDefault(_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(); + } + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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['default'].supportsTransitionEnd()) { + complete(); + return; + } + + var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + var scrollSize = 'scroll' + capitalizedDimension; + + $(this._element).one(_Util['default'].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['default'].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['default'].supportsTransitionEnd()) { + complete(); + return; + } + + $(this._element).one(_Util['default'].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; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + config.toggle = Boolean(config.toggle); // coerce string values + _Util['default'].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); + } + } + } + + // static + + }], [{ + key: '_getTargetFromElement', + value: function _getTargetFromElement(element) { + var selector = _Util['default'].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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Collapse; + })(); + + $(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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/dropdown.js b/bower_components/bootstrap/dist/js/umd/dropdown.js new file mode 100644 index 000000000..21abecf9c --- /dev/null +++ b/bower_components/bootstrap/dist/js/umd/dropdown.js @@ -0,0 +1,309 @@ +(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 _interopRequireDefault(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 = _interopRequireDefault(_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(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Dropdown, [{ + key: 'toggle', + + // public + + value: function toggle() { + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return false; + } + + 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 false; + } + + this.focus(); + this.setAttribute('aria-expanded', 'true'); + + $(parent).toggleClass(ClassName.OPEN); + $(parent).trigger($.Event(Event.SHOWN, relatedTarget)); + + return false; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._element).off(EVENT_KEY); + this._element = null; + } + + // private + + }, { + key: '_addEventListeners', + value: function _addEventListeners() { + $(this._element).on(Event.CLICK, this.toggle); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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(Event.HIDDEN, relatedTarget)); + } + } + }, { + key: '_getParentFromElement', + value: function _getParentFromElement(element) { + var parent = undefined; + var selector = _Util['default'].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) { + // up + index--; + } + + if (event.which === 40 && index < items.length - 1) { + // down + index++; + } + + if (! ~index) { + index = 0; + } + + items[index].focus(); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Dropdown; + })(); + + $(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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/modal.js b/bower_components/bootstrap/dist/js/umd/modal.js new file mode 100644 index 000000000..bef186f81 --- /dev/null +++ b/bower_components/bootstrap/dist/js/umd/modal.js @@ -0,0 +1,552 @@ +(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 _interopRequireDefault(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 = _interopRequireDefault(_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 = { + SCROLLBAR_MEASURER: 'modal-scrollbar-measure', + 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"]', + FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed' + }; + + /** + * ------------------------------------------------------------------------ + * 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; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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['default'].supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + + $(this._element).one(_Util['default'].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; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + _Util['default'].typeCheckConfig(NAME, config, DefaultType); + return config; + } + }, { + key: '_showElement', + value: function _showElement(relatedTarget) { + var _this2 = this; + + var transition = _Util['default'].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['default'].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['default'].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['default'].supportsTransitionEnd() && animate; + + this._backdrop = document.createElement('div'); + this._backdrop.className = ClassName.BACKDROP; + + if (animate) { + $(this._backdrop).addClass(animate); + } + + $(this._backdrop).appendTo(document.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['default'].reflow(this._backdrop); + } + + $(this._backdrop).addClass(ClassName.IN); + + if (!callback) { + return; + } + + if (!doAnimate) { + callback(); + return; + } + + $(this._backdrop).one(_Util['default'].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['default'].supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + $(this._backdrop).one(_Util['default'].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 + // ---------------------------------------------------------------------- + + }, { + key: '_handleUpdate', + 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($(Selector.FIXED_CONTENT).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 = ClassName.SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + } + + // static + + }], [{ + key: '_jQueryInterface', + 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); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Modal; + })(); + + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + var _this7 = this; + + var target = undefined; + var selector = _Util['default'].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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/popover.js b/bower_components/bootstrap/dist/js/umd/popover.js new file mode 100644 index 000000000..e1b56fcfc --- /dev/null +++ b/bower_components/bootstrap/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; }; })(); + + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + + function _interopRequireDefault(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var _Tooltip2 = _interopRequireDefault(_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'].Default, { + placement: 'right', + trigger: 'click', + content: '', + template: '' + }); + + var DefaultType = $.extend({}, _Tooltip2['default'].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) { + _inherits(Popover, _Tooltip); + + function Popover() { + _classCallCheck(this, Popover); + + _get(Object.getPrototypeOf(Popover.prototype), 'constructor', this).apply(this, arguments); + } + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + _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(); + } + + // private + + }, { + key: '_getContent', + value: function _getContent() { + return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + + // getters + + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }, { + key: 'NAME', + get: function get() { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function get() { + return DATA_KEY; + } + }, { + key: 'Event', + get: function get() { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function get() { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function get() { + return DefaultType; + } + }]); + + return Popover; + })(_Tooltip2['default']); + + $.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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/scrollspy.js b/bower_components/bootstrap/dist/js/umd/scrollspy.js new file mode 100644 index 000000000..7f38bfca1 --- /dev/null +++ b/bower_components/bootstrap/dist/js/umd/scrollspy.js @@ -0,0 +1,336 @@ +(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 _interopRequireDefault(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 = _interopRequireDefault(_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_ITEM: 'dropdown-item', + DROPDOWN_MENU: 'dropdown-menu', + NAV_LINK: 'nav-link', + NAV: 'nav', + ACTIVE: 'active' + }; + + var Selector = { + DATA_SPY: '[data-spy="scroll"]', + ACTIVE: '.active', + LIST_ITEM: '.list-item', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + NAV_LINKS: '.nav-link', + DROPDOWN: '.dropdown', + DROPDOWN_ITEMS: '.dropdown-item', + DROPDOWN_TOGGLE: '.dropdown-toggle' + }; + + 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_LINKS + ',' + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS); + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + + $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this)); + + this.refresh(); + this._process(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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['default'].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; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + + if (typeof config.target !== 'string') { + var id = $(config.target).attr('id'); + if (!id) { + id = _Util['default'].getUID(NAME); + $(config.target).attr('id', id); + } + config.target = '#' + id; + } + + _Util['default'].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 queries = this._selector.split(','); + queries = queries.map(function (selector) { + return selector + '[data-target="' + target + '"],' + (selector + '[href="' + target + '"]'); + }); + + var $link = $(queries.join(',')); + + if ($link.hasClass(ClassName.DROPDOWN_ITEM)) { + $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); + $link.addClass(ClassName.ACTIVE); + } else { + // todo (fat) this is kinda sus… + // recursively add actives to tested nav-links + $link.parents(Selector.LI).find(Selector.NAV_LINKS).addClass(ClassName.ACTIVE); + } + + $(this._scrollElement).trigger(Event.ACTIVATE, { + relatedTarget: target + }); + } + }, { + key: '_clear', + value: function _clear() { + $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return ScrollSpy; + })(); + + $(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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/tab.js b/bower_components/bootstrap/dist/js/umd/tab.js new file mode 100644 index 000000000..a80a96e65 --- /dev/null +++ b/bower_components/bootstrap/dist/js/umd/tab.js @@ -0,0 +1,279 @@ +(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 _interopRequireDefault(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 = _interopRequireDefault(_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', + DROPDOWN: '.dropdown', + UL: 'ul:not(.dropdown-menu)', + FADE_CHILD: '> .nav-item .fade, > .fade', + ACTIVE: '.active', + ACTIVE_CHILD: '> .nav-item > .active, > .active', + DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]', + DROPDOWN_TOGGLE: '.dropdown-toggle', + DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tab = (function () { + function Tab(element) { + _classCallCheck(this, Tab); + + this._element = element; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Tab, [{ + key: 'show', + + // public + + value: function show() { + var _this = this; + + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE)) { + return; + } + + var target = undefined; + var previous = undefined; + var ulElement = $(this._element).closest(Selector.UL)[0]; + var selector = _Util['default'].getSelectorFromElement(this._element); + + if (ulElement) { + previous = $.makeArray($(ulElement).find(Selector.ACTIVE)); + previous = previous[previous.length - 1]; + } + + 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, 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; + } + + // private + + }, { + key: '_activate', + value: function _activate(element, container, callback) { + var active = $(container).find(Selector.ACTIVE_CHILD)[0]; + var isTransitioning = callback && _Util['default'].supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(container).find(Selector.FADE_CHILD)[0])); + + var complete = $.proxy(this._transitionComplete, this, element, active, isTransitioning, callback); + + if (active && isTransitioning) { + $(active).one(_Util['default'].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); + } + + active.setAttribute('aria-expanded', false); + } + + $(element).addClass(ClassName.ACTIVE); + element.setAttribute('aria-expanded', true); + + if (isTransitioning) { + _Util['default'].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.DROPDOWN)[0]; + if (dropdownElement) { + $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); + } + + element.setAttribute('aria-expanded', true); + } + + if (callback) { + callback(); + } + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Tab; + })(); + + $(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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/tooltip.js b/bower_components/bootstrap/dist/js/umd/tooltip.js new file mode 100644 index 000000000..307474d49 --- /dev/null +++ b/bower_components/bootstrap/dist/js/umd/tooltip.js @@ -0,0 +1,620 @@ +(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 _interopRequireDefault(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 = _interopRequireDefault(_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(); + } + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + // getters + + _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) { + if (event) { + var dataKey = this.constructor.DATA_KEY; + var 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 { + + if ($(this.getTipElement()).hasClass(ClassName.IN)) { + this._leave(null, this); + return; + } + + this._enter(null, this); + } + } + }, { + 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['default'].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({ + attachment: attachment, + element: tip, + target: this.element, + classes: TetherClass, + classPrefix: CLASS_PREFIX, + offset: this.config.offset, + constraints: this.config.constraints + }); + + _Util['default'].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); + } + }; + + if (_Util['default'].supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + $(this.tip).one(_Util['default'].TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION); + return; + } + + 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['default'].supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + + $(tip).one(_Util['default'].TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); + } + + this._hoverState = ''; + } + + // protected + + }, { + key: 'isWithContent', + value: function isWithContent() { + return Boolean(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); + } + } + + // private + + }, { + key: '_getAttachment', + 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['default'].typeCheckConfig(NAME, config, this.constructor.DefaultType); + + return config; + } + }, { + key: '_getDelegateConfig', + value: function _getDelegateConfig() { + var config = {}; + + if (this.config) { + for (var key in this.config) { + if (this.constructor.Default[key] !== this.config[key]) { + config[key] = this.config[key]; + } + } + } + + return config; + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }, { + key: 'NAME', + get: function get() { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function get() { + return DATA_KEY; + } + }, { + key: 'Event', + get: function get() { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function get() { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function get() { + return DefaultType; + } + }]); + + return Tooltip; + })(); + + $.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; +}); diff --git a/bower_components/bootstrap/dist/js/umd/util.js b/bower_components/bootstrap/dist/js/umd/util.js new file mode 100644 index 000000000..003b93974 --- /dev/null +++ b/bower_components/bootstrap/dist/js/umd/util.js @@ -0,0 +1,172 @@ +(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 Boolean(transition); + }, + + typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { + for (var property in configTypes) { + if (configTypes.hasOwnProperty(property)) { + 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; +}); diff --git a/bower_components/bootstrap/grunt/.jshintrc b/bower_components/bootstrap/grunt/.jshintrc new file mode 100644 index 000000000..0ea0495e9 --- /dev/null +++ b/bower_components/bootstrap/grunt/.jshintrc @@ -0,0 +1,7 @@ +{ + "extends" : "../js/.jshintrc", + "asi" : false, + "browser" : false, + "es3" : false, + "node" : true +} diff --git a/bower_components/bootstrap/grunt/bs-commonjs-generator.js b/bower_components/bootstrap/grunt/bs-commonjs-generator.js new file mode 100644 index 000000000..402a7b742 --- /dev/null +++ b/bower_components/bootstrap/grunt/bs-commonjs-generator.js @@ -0,0 +1,29 @@ +/*! + * Bootstrap Grunt task for the CommonJS module generation + * http://getbootstrap.com + * Copyright 2014-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +'use strict'; + +var fs = require('fs'); +var path = require('path'); + +var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n'; + +module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) { + var destDir = path.dirname(destFilepath); + + function srcPathToDestRequire(srcFilepath) { + return 'require(\'' + srcFilepath + '\')'; + } + + var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); + try { + fs.writeFileSync(destFilepath, moduleOutputJs); + } catch (err) { + grunt.fail.warn(err); + } + grunt.log.writeln('File ' + destFilepath.cyan + ' created.'); +}; diff --git a/bower_components/bootstrap/grunt/bs-sass-compile/libsass.js b/bower_components/bootstrap/grunt/bs-sass-compile/libsass.js new file mode 100644 index 000000000..271aac881 --- /dev/null +++ b/bower_components/bootstrap/grunt/bs-sass-compile/libsass.js @@ -0,0 +1,34 @@ +// Compile Bootstrap with [libsass][1] using [grunt-sass][2] +// [1]: https://github.com/sass/libsass +// [2]: https://github.com/sindresorhus/grunt-sass +module.exports = function configureLibsass(grunt) { + grunt.config.merge({ + sass: { + options: { + includePaths: ['scss'], + precision: 6, + sourceComments: false, + sourceMap: true, + outputStyle: 'expanded' + }, + core: { + files: { + 'dist/css/<%= pkg.name %>.css': 'scss/<%= pkg.name %>.scss' + } + }, + extras: { + files: { + 'dist/css/<%= pkg.name %>-flex.css': 'scss/<%= pkg.name %>-flex.scss', + 'dist/css/<%= pkg.name %>-grid.css': 'scss/<%= pkg.name %>-grid.scss', + 'dist/css/<%= pkg.name %>-reboot.css': 'scss/<%= pkg.name %>-reboot.scss' + } + }, + docs: { + files: { + 'docs/assets/css/docs.min.css': 'docs/assets/scss/docs.scss' + } + } + } + }); + grunt.loadNpmTasks('grunt-sass'); +}; diff --git a/bower_components/bootstrap/grunt/bs-sass-compile/sass.js b/bower_components/bootstrap/grunt/bs-sass-compile/sass.js new file mode 100644 index 000000000..3a7d4a710 --- /dev/null +++ b/bower_components/bootstrap/grunt/bs-sass-compile/sass.js @@ -0,0 +1,38 @@ +// Compile Bootstrap with [Ruby Sass][1] using [grunt-contrib-sass][2] +// [1]: https://github.com/sass/sass +// [2]: https://github.com/gruntjs/grunt-contrib-sass +module.exports = function configureRubySass(grunt) { + var options = { + loadPath: ['scss'], + precision: 6, + sourcemap: 'auto', + style: 'expanded', + trace: true, + bundleExec: true + }; + grunt.config.merge({ + sass: { + core: { + options: options, + files: { + 'dist/css/<%= pkg.name %>.css': 'scss/<%= pkg.name %>.scss' + } + }, + extras: { + options: options, + files: { + 'dist/css/<%= pkg.name %>-flex.css': 'scss/<%= pkg.name %>-flex.scss', + 'dist/css/<%= pkg.name %>-grid.css': 'scss/<%= pkg.name %>-grid.scss', + 'dist/css/<%= pkg.name %>-reboot.css': 'scss/<%= pkg.name %>-reboot.scss' + } + }, + docs: { + options: options, + files: { + 'docs/assets/css/docs.min.css': 'docs/assets/scss/docs.scss' + } + } + } + }); + grunt.loadNpmTasks('grunt-contrib-sass'); +}; diff --git a/bower_components/bootstrap/grunt/configBridge.json b/bower_components/bootstrap/grunt/configBridge.json new file mode 100644 index 000000000..4b511136b --- /dev/null +++ b/bower_components/bootstrap/grunt/configBridge.json @@ -0,0 +1,38 @@ +{ + "paths": { + "docsJs": [ + "../assets/js/vendor/holder.min.js", + "assets/js/vendor/jekyll-search.js", + "../assets/js/vendor/ZeroClipboard.min.js", + "../assets/js/vendor/anchor.js", + "../assets/js/vendor/tether.min.js", + "../assets/js/src/application.js" + ] + }, + "config": { + "autoprefixerBrowsers": [ + "Android 2.3", + "Android >= 4", + "Chrome >= 20", + "Firefox >= 24", + "Explorer >= 8", + "iOS >= 6", + "Opera >= 12", + "Safari >= 6" + ], + "jqueryCheck": [ + "if (typeof jQuery === 'undefined') {", + " throw new Error('Bootstrap\\'s JavaScript requires jQuery')", + "}\n" + ], + "jqueryVersionCheck": [ + "+function ($) {", + " 'use strict';", + " var version = $.fn.jquery.split(' ')[0].split('.')", + " if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {", + " throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')", + " }", + "}(jQuery);\n\n" + ] + } +} diff --git a/bower_components/bootstrap/grunt/sauce_browsers.yml b/bower_components/bootstrap/grunt/sauce_browsers.yml new file mode 100644 index 000000000..069e11de5 --- /dev/null +++ b/bower_components/bootstrap/grunt/sauce_browsers.yml @@ -0,0 +1,71 @@ +[ + # Docs: https://saucelabs.com/docs/platforms/webdriver + + { + browserName: "safari", + platform: "OS X 10.10" + }, + { + browserName: "chrome", + platform: "OS X 10.10" + }, + { + browserName: "firefox", + platform: "OS X 10.10" + }, + + # Mac Opera not currently supported by Sauce Labs + + { + browserName: "internet explorer", + version: "11", + platform: "Windows 8.1" + }, + { + browserName: "internet explorer", + version: "10", + platform: "Windows 8" + }, + { + browserName: "internet explorer", + version: "9", + platform: "Windows 7" + }, + + { + browserName: "chrome", + platform: "Windows 8.1" + }, + { + browserName: "firefox", + platform: "Windows 8.1" + }, + + # Win Opera 15+ not currently supported by Sauce Labs + + { + browserName: "iphone", + platform: "OS X 10.10", + version: "8.2" + }, + + # iOS Chrome not currently supported by Sauce Labs + + # Linux (unofficial) + { + browserName: "chrome", + platform: "Linux" + }, + { + browserName: "firefox", + platform: "Linux" + } + + # Android Chrome not currently supported by Sauce Labs + # Android v5.0+ not currently supported by Sauce Labs + # { # Android Browser + # browserName: "android", + # version: "5.0", + # platform: "Linux" + # } +] diff --git a/bower_components/bootstrap/js/.eslintrc b/bower_components/bootstrap/js/.eslintrc new file mode 100644 index 000000000..645dac16d --- /dev/null +++ b/bower_components/bootstrap/js/.eslintrc @@ -0,0 +1,177 @@ +{ + "parser": "babel-eslint", + "env": { + "browser": true + }, + "rules": { + + // Possible Errors + "comma-dangle": [2, "never"], + "no-cond-assign": 2, + "no-console": 2, + "no-constant-condition": 2, + "no-control-regex": 2, + "no-debugger": 2, + "no-dupe-args": 2, + "no-dupe-keys": 2, + "no-duplicate-case": 2, + "no-empty-character-class": 2, + "no-empty": 2, + "no-ex-assign": 2, + "no-extra-boolean-cast": 2, + "no-extra-parens": 0, + "no-extra-semi": 2, + "no-func-assign": 2, + "no-inner-declarations": 2, + "no-invalid-regexp": 2, + "no-irregular-whitespace": 0, + "no-negated-in-lhs": 2, + "no-obj-calls": 2, + "no-regex-spaces": 2, + "no-sparse-arrays": 2, + "no-unreachable": 2, + "use-isnan": 2, + "valid-jsdoc": 0, + "valid-typeof": 2, + "no-unexpected-multiline": 2, + + //Best Practices + "accessor-pairs": 2, + "block-scoped-var": 2, + "consistent-return": 2, + "curly": 2, + "default-case": 2, + "dot-notation": 0, + "dot-location": 0, + "eqeqeq": 2, + "guard-for-in": 2, + "no-alert": 2, + "no-caller": 2, + "no-div-regex": 2, + "no-else-return": 2, + "no-empty-label": 2, + "no-eq-null": 2, + "no-eval": 2, + "no-extend-native": 2, + "no-extra-bind": 2, + "no-fallthrough": 2, + "no-floating-decimal": 2, + "no-implicit-coercion": 2, + "no-implied-eval": 2, + "no-invalid-this": 0, + "no-iterator": 2, + "no-labels": 2, + "no-lone-blocks": 2, + "no-loop-func": 2, + "no-multi-spaces": 0, + "no-multi-str": 0, + "no-native-reassign": 2, + "no-new-func": 0, + "no-new-wrappers": 2, + "no-new": 2, + "no-octal-escape": 2, + "no-octal": 2, + "no-param-reassign": 0, + "no-process-env": 2, + "no-proto": 2, + "no-redeclare": 2, + "no-return-assign": 2, + "no-script-url": 2, + "no-self-compare": 2, + "no-sequences": 2, + "no-throw-literal": 2, + "no-unused-expressions": 2, + "no-useless-call": 2, + "no-void": 2, + "no-warning-comments": 0, + "no-with": 2, + "radix": 2, + "vars-on-top": 0, + "wrap-iife": 2, + "yoda": 2, + + // Variables + "init-declarations": 0, + "no-catch-shadow": 2, + "no-delete-var": 2, + "no-label-var": 2, + "no-shadow-restricted-names": 2, + "no-shadow": 0, + "no-undef-init": 2, + "no-undef": 0, + "no-undefined": 0, + "no-unused-vars": 2, + "no-use-before-define": 0, + + // Stylistic + "array-bracket-spacing": 2, + "block-spacing": 2, + "brace-style": 2, + "camelcase": 2, + "comma-spacing": 2, + "comma-style": 2, + "computed-property-spacing": 2, + "consistent-this": 2, + "eol-last": 2, + "func-names": 0, + "func-style": 0, + "indent": 0, + "key-spacing": 0, + "lines-around-comment": 0, + "linebreak-style": 2, + "new-cap": 0, + "new-parens": 2, + "newline-after-var": 0, + "no-array-constructor": 2, + "no-continue": 0, + "no-inline-comments": 0, + "no-lonely-if": 2, + "no-mixed-spaces-and-tabs": 2, + "no-multiple-empty-lines": 2, + "no-nested-ternary": 0, + "no-new-object": 2, + "no-spaced-func": 2, + "no-ternary": 0, + "no-trailing-spaces": 2, + "no-underscore-dangle": 0, + "no-unneeded-ternary": 2, + "object-curly-spacing": [1, "always"], + "one-var": 0, + "operator-assignment": 2, + "operator-linebreak": 0, + "padded-blocks": 0, + "quote-props": 0, + "quotes": 0, + "semi-spacing": 0, + "semi": [2, "never"], + "sort-vars": 2, + "space-after-keywords": 2, + "space-before-blocks": 2, + "space-before-function-paren": 0, + "space-in-parens": 2, + "space-infix-ops": 2, + "space-return-throw-case": 2, + "space-unary-ops": 2, + "spaced-comment": 2, + "spaced-comment": 2, + + // es6 + "arrow-parens": 2, + "arrow-spacing": 2, + "constructor-super": 2, + "generator-star-spacing": 2, + "no-class-assign": 2, + "no-const-assign": 2, + "no-dupe-class-members": 2, + "no-this-before-super": 2, + "no-var": 2, + "object-shorthand": 2, + "prefer-arrow-callback": 2, + "prefer-const": 0, + "prefer-spread": 2, + "prefer-reflect": 0, + "prefer-template": 2, + "require-yield": 2 + + } +} diff --git a/bower_components/bootstrap/js/.jscsrc b/bower_components/bootstrap/js/.jscsrc new file mode 100644 index 000000000..8d5ef3e56 --- /dev/null +++ b/bower_components/bootstrap/js/.jscsrc @@ -0,0 +1,43 @@ +{ + "esnext": true, + "disallowEmptyBlocks": true, + "disallowKeywords": ["with"], + "disallowMixedSpacesAndTabs": true, + "disallowMultipleLineStrings": true, + "disallowMultipleVarDecl": true, + "disallowQuotedKeysInObjects": "allButReserved", + "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], + "disallowSpaceBeforeBinaryOperators": [","], + "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], + "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, + "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, + "disallowSpacesInsideArrayBrackets": true, + "disallowSpacesInsideParentheses": true, + "disallowTrailingComma": true, + "disallowTrailingWhitespace": true, + "requireCamelCaseOrUpperCaseIdentifiers": true, + "requireCapitalizedConstructors": true, + "requireCommaBeforeLineBreak": true, + "requireDollarBeforejQueryAssignment": true, + "requireDotNotation": true, + "requireLineFeedAtFileEnd": true, + "requirePaddingNewLinesAfterUseStrict": true, + "requirePaddingNewLinesBeforeExport": true, + "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="], + "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"], + "requireSpaceAfterLineComment": true, + "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="], + "requireSpaceBetweenArguments": true, + "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningCurlyBrace": true, "beforeOpeningRoundBrace": true }, + "requireSpacesInConditionalExpression": true, + "requireSpacesInForStatement": true, + "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, + "requireSpacesInFunctionExpression": { "beforeOpeningCurlyBrace": true }, + "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, + "requireSpacesInsideObjectBrackets": "allButNested", + "validateAlignedFunctionParameters": true, + "validateIndentation": 2, + "validateLineBreaks": "LF", + "validateNewlineAfterArrayElements": true, + "validateQuoteMarks": "'" +} diff --git a/bower_components/bootstrap/js/dist/alert.js b/bower_components/bootstrap/js/dist/alert.js new file mode 100644 index 000000000..27f44ed88 --- /dev/null +++ b/bower_components/bootstrap/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; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // private + + }, { + key: '_getRootElement', + value: function _getRootElement(element) { + var selector = Util.getSelectorFromElement(element); + var parent = false; + + 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, $.proxy(this._destroyElement, this, element)).emulateTransitionEnd(TRANSITION_DURATION); + } + }, { + key: '_destroyElement', + value: function _destroyElement(element) { + $(element).detach().trigger(Event.CLOSED).remove(); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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); + }; + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Alert; + })(); + + $(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 diff --git a/bower_components/bootstrap/js/dist/alert.js.map b/bower_components/bootstrap/js/dist/alert.js.map new file mode 100644 index 000000000..eaa956d64 --- /dev/null +++ b/bower_components/bootstrap/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 selector = Util.getSelectorFromElement(element)\n let parent = false\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 let closeEvent = $.Event(Event.CLOSE)\n\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, $.proxy(this._destroyElement, 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/bower_components/bootstrap/js/dist/button.js b/bower_components/bootstrap/js/dist/button.js new file mode 100644 index 000000000..3158f46bd --- /dev/null +++ b/bower_components/bootstrap/js/dist/button.js @@ -0,0 +1,172 @@ +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.0.0): button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +'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'); } } + +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 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; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Button; + })(); + + $(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 diff --git a/bower_components/bootstrap/js/dist/button.js.map b/bower_components/bootstrap/js/dist/button.js.map new file mode 100644 index 000000000..035558c36 --- /dev/null +++ b/bower_components/bootstrap/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\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, (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, (event) => {\n let 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/bower_components/bootstrap/js/dist/carousel.js b/bower_components/bootstrap/js/dist/carousel.js new file mode 100644 index 000000000..7345cbe77 --- /dev/null +++ b/bower_components/bootstrap/js/dist/carousel.js @@ -0,0 +1,467 @@ +'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(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // private + + }, { + key: '_getConfig', + 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 = Boolean(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(); + } + } + + // static + + }], [{ + key: '_jQueryInterface', + 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(); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Carousel; + })(); + + $(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 diff --git a/bower_components/bootstrap/js/dist/carousel.js.map b/bower_components/bootstrap/js/dist/carousel.js.map new file mode 100644 index 000000000..433672eb9 --- /dev/null +++ b/bower_components/bootstrap/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 let 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)) {\n return\n }\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,\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 = Boolean(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 let 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 let slideIndex = this.getAttribute('data-slide-to')\n\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, () => {\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/bower_components/bootstrap/js/dist/collapse.js b/bower_components/bootstrap/js/dist/collapse.js new file mode 100644 index 000000000..6774f7431 --- /dev/null +++ b/bower_components/bootstrap/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(); + } + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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 capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + var scrollSize = 'scroll' + capitalizedDimension; + + $(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()) { + complete(); + return; + } + + $(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; + } + + // private + + }, { + key: '_getConfig', + value: function _getConfig(config) { + config = $.extend({}, Default, config); + config.toggle = Boolean(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); + } + } + } + + // static + + }], [{ + key: '_getTargetFromElement', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Collapse; + })(); + + $(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 diff --git a/bower_components/bootstrap/js/dist/collapse.js.map b/bower_components/bootstrap/js/dist/collapse.js.map new file mode 100644 index 000000000..dbf06db57 --- /dev/null +++ b/bower_components/bootstrap/js/dist/collapse.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["js/src/collapse.js"],"names":[],"mappings":";;;;;;;;;;;;;AAUA,IAAM,QAAQ,GAAG,CAAC,UAAC,CAAC,EAAK;;;;;;;;AASvB,MAAM,IAAI,GAAkB,UAAU,CAAA;AACtC,MAAM,OAAO,GAAe,OAAO,CAAA;AACnC,MAAM,QAAQ,GAAc,aAAa,CAAA;AACzC,MAAM,SAAS,SAAiB,QAAQ,AAAE,CAAA;AAC1C,MAAM,YAAY,GAAU,WAAW,CAAA;AACvC,MAAM,kBAAkB,GAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;AACtC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;AAE/B,MAAM,OAAO,GAAG;AACd,UAAM,EAAG,IAAI;AACb,UAAM,EAAG,EAAE;GACZ,CAAA;;AAED,MAAM,WAAW,GAAG;AAClB,UAAM,EAAG,SAAS;AAClB,UAAM,EAAG,QAAQ;GAClB,CAAA;;AAED,MAAM,KAAK,GAAG;AACZ,QAAI,WAAoB,SAAS,AAAE;AACnC,SAAK,YAAoB,SAAS,AAAE;AACpC,QAAI,WAAoB,SAAS,AAAE;AACnC,UAAM,aAAoB,SAAS,AAAE;AACrC,kBAAc,YAAW,SAAS,GAAG,YAAY,AAAE;GACpD,CAAA;;AAED,MAAM,SAAS,GAAG;AAChB,MAAE,EAAW,IAAI;AACjB,YAAQ,EAAK,UAAU;AACvB,cAAU,EAAG,YAAY;AACzB,aAAS,EAAI,WAAW;GACzB,CAAA;;AAED,MAAM,SAAS,GAAG;AAChB,SAAK,EAAI,OAAO;AAChB,UAAM,EAAG,QAAQ;GAClB,CAAA;;AAED,MAAM,QAAQ,GAAG;AACf,WAAO,EAAO,oCAAoC;AAClD,eAAW,EAAG,0BAA0B;GACzC,CAAA;;;;;;;;MASK,QAAQ;AAED,aAFP,QAAQ,CAEA,OAAO,EAAE,MAAM,EAAE;4BAFzB,QAAQ;;AAGV,UAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;AAC7B,UAAI,CAAC,QAAQ,GAAW,OAAO,CAAA;AAC/B,UAAI,CAAC,OAAO,GAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AAC/C,UAAI,CAAC,aAAa,GAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CACnC,qCAAmC,OAAO,CAAC,EAAE,wDACH,OAAO,CAAC,EAAE,QAAI,CACzD,CAAC,CAAA;;AAEF,UAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAA;;AAE7D,UAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACxB,YAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;OAClE;;AAED,UAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACvB,YAAI,CAAC,MAAM,EAAE,CAAA;OACd;KACF;;;;;;;;;;iBApBG,QAAQ;;;;;aAoCN,kBAAG;AACP,YAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AAC3C,cAAI,CAAC,IAAI,EAAE,CAAA;SACZ,MAAM;AACL,cAAI,CAAC,IAAI,EAAE,CAAA;SACZ;OACF;;;aAEG,gBAAG;;;AACL,YAAI,IAAI,CAAC,gBAAgB,IACvB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AACzC,iBAAM;SACP;;AAED,YAAI,OAAO,YAAA,CAAA;AACX,YAAI,WAAW,YAAA,CAAA;;AAEf,YAAI,IAAI,CAAC,OAAO,EAAE;AAChB,iBAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;AAC1C,cAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACnB,mBAAO,GAAG,IAAI,CAAA;WACf;SACF;;AAED,YAAI,OAAO,EAAE;AACX,qBAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACvC,cAAI,WAAW,IAAI,WAAW,CAAC,gBAAgB,EAAE;AAC/C,mBAAM;WACP;SACF;;AAED,YAAI,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACpC,SAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AACpC,YAAI,UAAU,CAAC,kBAAkB,EAAE,EAAE;AACnC,iBAAM;SACP;;AAED,YAAI,OAAO,EAAE;AACX,kBAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;AAClD,cAAI,CAAC,WAAW,EAAE;AAChB,aAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;WAChC;SACF;;AAED,YAAI,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;;AAEpC,SAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CACb,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC/B,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;;AAEjC,YAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;AAClC,YAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;;AAEjD,YAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7B,WAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAClB,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAChC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;SAC/B;;AAED,YAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;;AAE3B,YAAI,QAAQ,GAAG,SAAX,QAAQ,GAAS;AACnB,WAAC,CAAC,MAAK,QAAQ,CAAC,CACb,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CACjC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;;AAEzB,gBAAK,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;;AAEnC,gBAAK,gBAAgB,CAAC,KAAK,CAAC,CAAA;;AAE5B,WAAC,CAAC,MAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SACtC,CAAA;;AAED,YAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;AACjC,kBAAQ,EAAE,CAAA;AACV,iBAAM;SACP;;AAED,YAAI,oBAAoB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC1E,YAAI,UAAU,cAAsB,oBAAoB,AAAE,CAAA;;AAE1D,SAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CACb,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAClC,oBAAoB,CAAC,mBAAmB,CAAC,CAAA;;AAE5C,YAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAI,CAAA;OAClE;;;aAEG,gBAAG;;;AACL,YAAI,IAAI,CAAC,gBAAgB,IACvB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AAC1C,iBAAM;SACP;;AAED,YAAI,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACpC,SAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AACpC,YAAI,UAAU,CAAC,kBAAkB,EAAE,EAAE;AACnC,iBAAM;SACP;;AAED,YAAI,SAAS,GAAS,IAAI,CAAC,aAAa,EAAE,CAAA;AAC1C,YAAI,eAAe,GAAG,SAAS,KAAK,SAAS,CAAC,KAAK,GACjD,aAAa,GAAG,cAAc,CAAA;;AAEhC,YAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAI,CAAA;;AAEtE,YAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;;AAE1B,SAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CACb,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAC9B,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC/B,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;;AAE5B,YAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;;AAElD,YAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7B,WAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAClB,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAC7B,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;SAChC;;AAED,YAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;;AAE3B,YAAI,QAAQ,GAAG,SAAX,QAAQ,GAAS;AACnB,iBAAK,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAC5B,WAAC,CAAC,OAAK,QAAQ,CAAC,CACb,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CACjC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC5B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;SACzB,CAAA;;AAED,YAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;;AAElC,YAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;AACjC,kBAAQ,EAAE,CAAA;AACV,iBAAM;SACP;;AAED,SAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CACb,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAClC,oBAAoB,CAAC,mBAAmB,CAAC,CAAA;OAC7C;;;aAEe,0BAAC,eAAe,EAAE;AAChC,YAAI,CAAC,gBAAgB,GAAG,eAAe,CAAA;OACxC;;;aAEM,mBAAG;AACR,SAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;;AAErC,YAAI,CAAC,OAAO,GAAY,IAAI,CAAA;AAC5B,YAAI,CAAC,OAAO,GAAY,IAAI,CAAA;AAC5B,YAAI,CAAC,QAAQ,GAAW,IAAI,CAAA;AAC5B,YAAI,CAAC,aAAa,GAAM,IAAI,CAAA;AAC5B,YAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;OAC7B;;;;;;aAKS,oBAAC,MAAM,EAAE;AACjB,cAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AACtC,cAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACtC,YAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;AAC/C,eAAO,MAAM,CAAA;OACd;;;aAEY,yBAAG;AACd,YAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AACzD,eAAO,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAA;OACrD;;;aAES,sBAAG;;;AACX,YAAI,MAAM,GAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACxC,YAAI,QAAQ,8CAC+B,IAAI,CAAC,OAAO,CAAC,MAAM,OAAI,CAAA;;AAElE,SAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,OAAO,EAAK;AAC5C,iBAAK,yBAAyB,CAC5B,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,EACvC,CAAC,OAAO,CAAC,CACV,CAAA;SACF,CAAC,CAAA;;AAEF,eAAO,MAAM,CAAA;OACd;;;aAEwB,mCAAC,OAAO,EAAE,YAAY,EAAE;AAC/C,YAAI,OAAO,EAAE;AACX,cAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AAC9C,iBAAO,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;;AAE7C,cAAI,YAAY,CAAC,MAAM,EAAE;AACvB,aAAC,CAAC,YAAY,CAAC,CACZ,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CACzC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;WACjC;SACF;OACF;;;;;;aAK2B,+BAAC,OAAO,EAAE;AACpC,YAAI,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;AACnD,eAAO,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;OACxC;;;aAEsB,0BAAC,MAAM,EAAE;AAC9B,eAAO,IAAI,CAAC,IAAI,CAAC,YAAY;AAC3B,cAAI,KAAK,GAAK,CAAC,CAAC,IAAI,CAAC,CAAA;AACrB,cAAI,IAAI,GAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAClC,cAAI,OAAO,GAAG,CAAC,CAAC,MAAM,CACpB,EAAE,EACF,OAAO,EACP,KAAK,CAAC,IAAI,EAAE,EACZ,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CACrC,CAAA;;AAED,cAAI,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACvD,mBAAO,CAAC,MAAM,GAAG,KAAK,CAAA;WACvB;;AAED,cAAI,CAAC,IAAI,EAAE;AACT,gBAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAClC,iBAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;WAC3B;;AAED,cAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC9B,gBAAI,CAAC,MAAM,CAAC,EAAE,CAAA;WACf;SACF,CAAC,CAAA;OACH;;;WApPiB,eAAG;AACnB,eAAO,OAAO,CAAA;OACf;;;WAEiB,eAAG;AACnB,eAAO,OAAO,CAAA;OACf;;;WA/BG,QAAQ;;;AAwRd,GAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE;AAC1E,SAAK,CAAC,cAAc,EAAE,CAAA;;AAEtB,QAAI,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;AACjD,QAAI,IAAI,GAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACrC,QAAI,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;;AAE7C,YAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;GAClD,CAAC,CAAA;;;;;;;;AASF,GAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAe,QAAQ,CAAC,gBAAgB,CAAA;AAClD,GAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,QAAQ,CAAA;AACjC,GAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,GAAI,YAAY;AACnC,KAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAA;AAC/B,WAAO,QAAQ,CAAC,gBAAgB,CAAA;GACjC,CAAA;;AAED,SAAO,QAAQ,CAAA;CAEhB,CAAA,CAAE,MAAM,CAAC,CAAA","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 capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n let scrollSize = `scroll${capitalizedDimension}`\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 complete()\n return\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 = Boolean(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 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/bower_components/bootstrap/js/dist/dropdown.js b/bower_components/bootstrap/js/dist/dropdown.js new file mode 100644 index 000000000..f90861ec0 --- /dev/null +++ b/bower_components/bootstrap/js/dist/dropdown.js @@ -0,0 +1,290 @@ +'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(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Dropdown, [{ + key: 'toggle', + + // public + + value: function toggle() { + if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { + return false; + } + + 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 false; + } + + this.focus(); + this.setAttribute('aria-expanded', 'true'); + + $(parent).toggleClass(ClassName.OPEN); + $(parent).trigger($.Event(Event.SHOWN, relatedTarget)); + + return false; + } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + $(this._element).off(EVENT_KEY); + this._element = null; + } + + // private + + }, { + key: '_addEventListeners', + value: function _addEventListeners() { + $(this._element).on(Event.CLICK, this.toggle); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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(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) { + // up + index--; + } + + if (event.which === 40 && index < items.length - 1) { + // down + index++; + } + + if (! ~index) { + index = 0; + } + + items[index].focus(); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Dropdown; + })(); + + $(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 diff --git a/bower_components/bootstrap/js/dist/dropdown.js.map b/bower_components/bootstrap/js/dist/dropdown.js.map new file mode 100644 index 000000000..1c4be71d6 --- /dev/null +++ b/bower_components/bootstrap/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 false\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 false\n }\n\n this.focus()\n this.setAttribute('aria-expanded', 'true')\n\n $(parent).toggleClass(ClassName.OPEN)\n $(parent).trigger($.Event(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(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) { // up\n index--\n }\n\n if (event.which === 40 && index < items.length - 1) { // down\n index++\n }\n\n if (!~index) {\n index = 0\n }\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, (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/bower_components/bootstrap/js/dist/modal.js b/bower_components/bootstrap/js/dist/modal.js new file mode 100644 index 000000000..f28df5c76 --- /dev/null +++ b/bower_components/bootstrap/js/dist/modal.js @@ -0,0 +1,533 @@ +'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 = { + SCROLLBAR_MEASURER: 'modal-scrollbar-measure', + 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"]', + FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed' + }; + + /** + * ------------------------------------------------------------------------ + * 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; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // private + + }, { + key: '_getConfig', + 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(document.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(); + } + } + + // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // todo (fat): these should probably be refactored out of modal.js + // ---------------------------------------------------------------------- + + }, { + key: '_handleUpdate', + 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($(Selector.FIXED_CONTENT).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 = ClassName.SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + } + + // static + + }], [{ + key: '_jQueryInterface', + 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); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return Modal; + })(); + + $(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 diff --git a/bower_components/bootstrap/js/dist/modal.js.map b/bower_components/bootstrap/js/dist/modal.js.map new file mode 100644 index 000000000..ebc852275 --- /dev/null +++ b/bower_components/bootstrap/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 SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\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 FIXED_CONTENT : '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\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\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) {\n this._enforceFocus()\n }\n\n let shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n let transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\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(document.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 $(Selector.FIXED_CONTENT).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 = ClassName.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/bower_components/bootstrap/js/dist/popover.js b/bower_components/bootstrap/js/dist/popover.js new file mode 100644 index 000000000..5e057c0fe --- /dev/null +++ b/bower_components/bootstrap/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; }; })(); + +var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + +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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, 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) { + _inherits(Popover, _Tooltip); + + function Popover() { + _classCallCheck(this, Popover); + + _get(Object.getPrototypeOf(Popover.prototype), 'constructor', this).apply(this, arguments); + } + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + _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(); + } + + // private + + }, { + key: '_getContent', + value: function _getContent() { + return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + + // getters + + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }, { + key: 'NAME', + get: function get() { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function get() { + return DATA_KEY; + } + }, { + key: 'Event', + get: function get() { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function get() { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function get() { + return DefaultType; + } + }]); + + return Popover; + })(Tooltip); + + $.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 diff --git a/bower_components/bootstrap/js/dist/popover.js.map b/bower_components/bootstrap/js/dist/popover.js.map new file mode 100644 index 000000000..c4b9cf3ee --- /dev/null +++ b/bower_components/bootstrap/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/bower_components/bootstrap/js/dist/scrollspy.js b/bower_components/bootstrap/js/dist/scrollspy.js new file mode 100644 index 000000000..d4617075e --- /dev/null +++ b/bower_components/bootstrap/js/dist/scrollspy.js @@ -0,0 +1,317 @@ +'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_ITEM: 'dropdown-item', + DROPDOWN_MENU: 'dropdown-menu', + NAV_LINK: 'nav-link', + NAV: 'nav', + ACTIVE: 'active' + }; + + var Selector = { + DATA_SPY: '[data-spy="scroll"]', + ACTIVE: '.active', + LIST_ITEM: '.list-item', + LI: 'li', + LI_DROPDOWN: 'li.dropdown', + NAV_LINKS: '.nav-link', + DROPDOWN: '.dropdown', + DROPDOWN_ITEMS: '.dropdown-item', + DROPDOWN_TOGGLE: '.dropdown-toggle' + }; + + 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_LINKS + ',' + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS); + this._offsets = []; + this._targets = []; + this._activeTarget = null; + this._scrollHeight = 0; + + $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this)); + + this.refresh(); + this._process(); + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _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; + } + + // private + + }, { + key: '_getConfig', + 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 queries = this._selector.split(','); + queries = queries.map(function (selector) { + return selector + '[data-target="' + target + '"],' + (selector + '[href="' + target + '"]'); + }); + + var $link = $(queries.join(',')); + + if ($link.hasClass(ClassName.DROPDOWN_ITEM)) { + $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); + $link.addClass(ClassName.ACTIVE); + } else { + // todo (fat) this is kinda sus… + // recursively add actives to tested nav-links + $link.parents(Selector.LI).find(Selector.NAV_LINKS).addClass(ClassName.ACTIVE); + } + + $(this._scrollElement).trigger(Event.ACTIVATE, { + relatedTarget: target + }); + } + }, { + key: '_clear', + value: function _clear() { + $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE); + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }]); + + return ScrollSpy; + })(); + + $(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 diff --git a/bower_components/bootstrap/js/dist/scrollspy.js.map b/bower_components/bootstrap/js/dist/scrollspy.js.map new file mode 100644 index 000000000..0360c9897 --- /dev/null +++ b/bower_components/bootstrap/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_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n NAV_LINK : 'nav-link',\n NAV : 'nav',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n LIST_ITEM : '.list-item',\n LI : 'li',\n LI_DROPDOWN : 'li.dropdown',\n NAV_LINKS : '.nav-link',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\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_LINKS},`\n + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\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 queries = this._selector.split(',')\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n let $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // todo (fat) this is kinda sus…\n // recursively add actives to tested nav-links\n $link.parents(Selector.LI).find(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\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, () => {\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/bower_components/bootstrap/js/dist/tab.js b/bower_components/bootstrap/js/dist/tab.js new file mode 100644 index 000000000..8b175ea48 --- /dev/null +++ b/bower_components/bootstrap/js/dist/tab.js @@ -0,0 +1,260 @@ +'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', + DROPDOWN: '.dropdown', + UL: 'ul:not(.dropdown-menu)', + FADE_CHILD: '> .nav-item .fade, > .fade', + ACTIVE: '.active', + ACTIVE_CHILD: '> .nav-item > .active, > .active', + DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]', + DROPDOWN_TOGGLE: '.dropdown-toggle', + DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active' + }; + + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Tab = (function () { + function Tab(element) { + _classCallCheck(this, Tab); + + this._element = element; + } + + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + // getters + + _createClass(Tab, [{ + key: 'show', + + // public + + value: function show() { + var _this = this; + + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).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]; + } + + 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, 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; + } + + // private + + }, { + key: '_activate', + value: function _activate(element, container, callback) { + var active = $(container).find(Selector.ACTIVE_CHILD)[0]; + var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(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); + } + + active.setAttribute('aria-expanded', false); + } + + $(element).addClass(ClassName.ACTIVE); + element.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.DROPDOWN)[0]; + if (dropdownElement) { + $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); + } + + element.setAttribute('aria-expanded', true); + } + + if (callback) { + callback(); + } + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }]); + + return Tab; + })(); + + $(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 diff --git a/bower_components/bootstrap/js/dist/tab.js.map b/bower_components/bootstrap/js/dist/tab.js.map new file mode 100644 index 000000000..e76463c68 --- /dev/null +++ b/bower_components/bootstrap/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 DROPDOWN : '.dropdown',\n UL : 'ul:not(.dropdown-menu)',\n FADE_CHILD : '> .nav-item .fade, > .fade',\n ACTIVE : '.active',\n ACTIVE_CHILD : '> .nav-item > .active, > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\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).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\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,\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 || Boolean($(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\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n active.setAttribute('aria-expanded', false)\n }\n\n $(element).addClass(ClassName.ACTIVE)\n element.setAttribute('aria-expanded', true)\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.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\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/bower_components/bootstrap/js/dist/tooltip.js b/bower_components/bootstrap/js/dist/tooltip.js new file mode 100644 index 000000000..a1bd76873 --- /dev/null +++ b/bower_components/bootstrap/js/dist/tooltip.js @@ -0,0 +1,601 @@ +'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(); + } + + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + // getters + + _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) { + if (event) { + var dataKey = this.constructor.DATA_KEY; + var 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 { + + if ($(this.getTipElement()).hasClass(ClassName.IN)) { + this._leave(null, this); + return; + } + + this._enter(null, this); + } + } + }, { + 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({ + attachment: attachment, + element: tip, + target: this.element, + 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); + } + }; + + if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION); + return; + } + + 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 = ''; + } + + // protected + + }, { + key: 'isWithContent', + value: function isWithContent() { + return Boolean(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); + } + } + + // private + + }, { + key: '_getAttachment', + 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) { + if (this.constructor.Default[key] !== this.config[key]) { + config[key] = this.config[key]; + } + } + } + + return config; + } + + // static + + }], [{ + key: '_jQueryInterface', + 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](); + } + }); + } + }, { + key: 'VERSION', + get: function get() { + return VERSION; + } + }, { + key: 'Default', + get: function get() { + return Default; + } + }, { + key: 'NAME', + get: function get() { + return NAME; + } + }, { + key: 'DATA_KEY', + get: function get() { + return DATA_KEY; + } + }, { + key: 'Event', + get: function get() { + return Event; + } + }, { + key: 'EVENT_KEY', + get: function get() { + return EVENT_KEY; + } + }, { + key: 'DefaultType', + get: function get() { + return DefaultType; + } + }]); + + return Tooltip; + })(); + + $.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 diff --git a/bower_components/bootstrap/js/dist/tooltip.js.map b/bower_components/bootstrap/js/dist/tooltip.js.map new file mode 100644 index 000000000..cf68704b5 --- /dev/null +++ b/bower_components/bootstrap/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 if (event) {\n let dataKey = this.constructor.DATA_KEY\n let 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\n if ($(this.getTipElement()).hasClass(ClassName.IN)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\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 attachment,\n element : tip,\n target : this.element,\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 if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n return\n }\n\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 Boolean(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 if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\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/bower_components/bootstrap/js/dist/util.js b/bower_components/bootstrap/js/dist/util.js new file mode 100644 index 000000000..934bad697 --- /dev/null +++ b/bower_components/bootstrap/js/dist/util.js @@ -0,0 +1,157 @@ +/** + * -------------------------------------------------------------------------- + * 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 Boolean(transition); + }, + + typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { + for (var property in configTypes) { + if (configTypes.hasOwnProperty(property)) { + 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 diff --git a/bower_components/bootstrap/js/dist/util.js.map b/bower_components/bootstrap/js/dist/util.js.map new file mode 100644 index 000000000..560f6c52e --- /dev/null +++ b/bower_components/bootstrap/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(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 (let 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, () => {\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 {\n 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 Boolean(transition)\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (let property in configTypes) {\n if (configTypes.hasOwnProperty(property)) {\n let expectedTypes = configTypes[property]\n let value = config[property]\n let valueType\n\n if (value && isElement(value)) {\n valueType = 'element'\n } else {\n valueType = toType(value)\n }\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/bower_components/bootstrap/js/src/alert.js b/bower_components/bootstrap/js/src/alert.js new file mode 100644 index 000000000..da4e5b6a5 --- /dev/null +++ b/bower_components/bootstrap/js/src/alert.js @@ -0,0 +1,193 @@ +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 selector = Util.getSelectorFromElement(element) + let parent = false + + if (selector) { + parent = $(selector)[0] + } + + if (!parent) { + parent = $(element).closest(`.${ClassName.ALERT}`)[0] + } + + return parent + } + + _triggerCloseEvent(element) { + let 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, $.proxy(this._destroyElement, 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/bower_components/bootstrap/js/src/button.js b/bower_components/bootstrap/js/src/button.js new file mode 100644 index 000000000..58ef66b8b --- /dev/null +++ b/bower_components/bootstrap/js/src/button.js @@ -0,0 +1,173 @@ +/** + * -------------------------------------------------------------------------- + * 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 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, (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, (event) => { + let 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/bower_components/bootstrap/js/src/carousel.js b/bower_components/bootstrap/js/src/carousel.js new file mode 100644 index 000000000..efacd9494 --- /dev/null +++ b/bower_components/bootstrap/js/src/carousel.js @@ -0,0 +1,470 @@ +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 + } + + let 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, + 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 = Boolean(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) + + let 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, () => { + $(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/bower_components/bootstrap/js/src/collapse.js b/bower_components/bootstrap/js/src/collapse.js new file mode 100644 index 000000000..e46d3ec60 --- /dev/null +++ b/bower_components/bootstrap/js/src/collapse.js @@ -0,0 +1,378 @@ +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 capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1) + let scrollSize = `scroll${capitalizedDimension}` + + $(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()) { + complete() + return + } + + $(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 = Boolean(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/bower_components/bootstrap/js/src/dropdown.js b/bower_components/bootstrap/js/src/dropdown.js new file mode 100644 index 000000000..734e64312 --- /dev/null +++ b/bower_components/bootstrap/js/src/dropdown.js @@ -0,0 +1,294 @@ +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 false + } + + 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 false + } + + this.focus() + this.setAttribute('aria-expanded', 'true') + + $(parent).toggleClass(ClassName.OPEN) + $(parent).trigger($.Event(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(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) { // up + index-- + } + + if (event.which === 40 && index < items.length - 1) { // down + index++ + } + + 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, (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/bower_components/bootstrap/js/src/modal.js b/bower_components/bootstrap/js/src/modal.js new file mode 100644 index 000000000..128863273 --- /dev/null +++ b/bower_components/bootstrap/js/src/modal.js @@ -0,0 +1,532 @@ +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 = { + SCROLLBAR_MEASURER : 'modal-scrollbar-measure', + 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"]', + FIXED_CONTENT : '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed' + } + + + /** + * ------------------------------------------------------------------------ + * 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 + }) + + $(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 + }) + + 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(document.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( + $(Selector.FIXED_CONTENT).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 = ClassName.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/bower_components/bootstrap/js/src/popover.js b/bower_components/bootstrap/js/src/popover.js new file mode 100644 index 000000000..30c0e4acb --- /dev/null +++ b/bower_components/bootstrap/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/bower_components/bootstrap/js/src/scrollspy.js b/bower_components/bootstrap/js/src/scrollspy.js new file mode 100644 index 000000000..27a91958e --- /dev/null +++ b/bower_components/bootstrap/js/src/scrollspy.js @@ -0,0 +1,322 @@ +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_ITEM : 'dropdown-item', + DROPDOWN_MENU : 'dropdown-menu', + NAV_LINK : 'nav-link', + NAV : 'nav', + ACTIVE : 'active' + } + + const Selector = { + DATA_SPY : '[data-spy="scroll"]', + ACTIVE : '.active', + LIST_ITEM : '.list-item', + LI : 'li', + LI_DROPDOWN : 'li.dropdown', + NAV_LINKS : '.nav-link', + DROPDOWN : '.dropdown', + DROPDOWN_ITEMS : '.dropdown-item', + DROPDOWN_TOGGLE : '.dropdown-toggle' + } + + 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_LINKS},` + + `${this._config.target} ${Selector.DROPDOWN_ITEMS}` + 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 queries = this._selector.split(',') + queries = queries.map((selector) => { + return `${selector}[data-target="${target}"],` + + `${selector}[href="${target}"]` + }) + + let $link = $(queries.join(',')) + + if ($link.hasClass(ClassName.DROPDOWN_ITEM)) { + $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE) + $link.addClass(ClassName.ACTIVE) + } else { + // todo (fat) this is kinda sus… + // recursively add actives to tested nav-links + $link.parents(Selector.LI).find(Selector.NAV_LINKS).addClass(ClassName.ACTIVE) + } + + $(this._scrollElement).trigger(Event.ACTIVATE, { + relatedTarget: target + }) + } + + _clear() { + $(this._selector).filter(Selector.ACTIVE).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, () => { + 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/bower_components/bootstrap/js/src/tab.js b/bower_components/bootstrap/js/src/tab.js new file mode 100644 index 000000000..4b311c24e --- /dev/null +++ b/bower_components/bootstrap/js/src/tab.js @@ -0,0 +1,275 @@ +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', + DROPDOWN : '.dropdown', + UL : 'ul:not(.dropdown-menu)', + FADE_CHILD : '> .nav-item .fade, > .fade', + ACTIVE : '.active', + ACTIVE_CHILD : '> .nav-item > .active, > .active', + DATA_TOGGLE : '[data-toggle="tab"], [data-toggle="pill"]', + DROPDOWN_TOGGLE : '.dropdown-toggle', + 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).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] + } + + 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, + 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)) + || Boolean($(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) + } + + active.setAttribute('aria-expanded', false) + } + + $(element).addClass(ClassName.ACTIVE) + element.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.DROPDOWN)[0] + if (dropdownElement) { + $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE) + } + + element.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/bower_components/bootstrap/js/src/tooltip.js b/bower_components/bootstrap/js/src/tooltip.js new file mode 100644 index 000000000..a65caf26e --- /dev/null +++ b/bower_components/bootstrap/js/src/tooltip.js @@ -0,0 +1,636 @@ +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) { + if (event) { + let dataKey = this.constructor.DATA_KEY + let 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 { + + if ($(this.getTipElement()).hasClass(ClassName.IN)) { + this._leave(null, this) + return + } + + this._enter(null, this) + } + } + + 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({ + attachment, + element : tip, + target : this.element, + 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) + } + } + + if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + $(this.tip) + .one(Util.TRANSITION_END, complete) + .emulateTransitionEnd(Tooltip._TRANSITION_DURATION) + return + } + + 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 Boolean(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) { + if (this.constructor.Default[key] !== this.config[key]) { + config[key] = this.config[key] + } + } + } + + 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/bower_components/bootstrap/js/src/util.js b/bower_components/bootstrap/js/src/util.js new file mode 100644 index 000000000..f4a584125 --- /dev/null +++ b/bower_components/bootstrap/js/src/util.js @@ -0,0 +1,160 @@ +/** + * -------------------------------------------------------------------------- + * 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(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 (let 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, () => { + 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 Boolean(transition) + }, + + typeCheckConfig(componentName, config, configTypes) { + for (let property in configTypes) { + if (configTypes.hasOwnProperty(property)) { + 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/bower_components/bootstrap/package.js b/bower_components/bootstrap/package.js new file mode 100644 index 000000000..9b98df951 --- /dev/null +++ b/bower_components/bootstrap/package.js @@ -0,0 +1,27 @@ +// package metadata file for Meteor.js + +/* jshint strict:false */ +/* global Package:true */ + +Package.describe({ + name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap + summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.', + version: '3.3.5', + git: 'https://github.com/twbs/bootstrap.git' +}); + +Package.onUse(function (api) { + api.versionsFrom('METEOR@1.0'); + api.use('jquery', 'client'); + api.addFiles([ + 'dist/fonts/glyphicons-halflings-regular.eot', + 'dist/fonts/glyphicons-halflings-regular.svg', + 'dist/fonts/glyphicons-halflings-regular.ttf', + 'dist/fonts/glyphicons-halflings-regular.woff', + 'dist/fonts/glyphicons-halflings-regular.woff2' + ], 'client', { isAsset: true }); + api.addFiles([ + 'dist/css/bootstrap.css', + 'dist/js/bootstrap.js' + ], 'client'); +}); diff --git a/bower_components/bootstrap/package.json b/bower_components/bootstrap/package.json new file mode 100644 index 000000000..eded9e2b4 --- /dev/null +++ b/bower_components/bootstrap/package.json @@ -0,0 +1,97 @@ +{ + "name": "bootstrap", + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "version": "4.0.0-alpha", + "keywords": [ + "css", + "sass", + "mobile-first", + "responsive", + "front-end", + "framework", + "web" + ], + "homepage": "http://getbootstrap.com", + "author": "Twitter, Inc.", + "scripts": { + "test": "grunt test" + }, + "style": "dist/css/bootstrap.css", + "sass": "scss/bootstrap.scss", + "main": "./dist/js/npm", + "repository": { + "type": "git", + "url": "https://github.com/twbs/bootstrap.git" + }, + "bugs": { + "url": "https://github.com/twbs/bootstrap/issues" + }, + "license": "MIT", + "devDependencies": { + "babel-eslint": "^4.0.10", + "btoa": "~1.1.2", + "glob": "~5.0.3", + "grunt": "~0.4.5", + "grunt-autoprefixer": "~2.2.0", + "grunt-babel": "^5.0.0", + "grunt-banner": "~0.3.1", + "grunt-build-control": "~0.2.0", + "grunt-contrib-clean": "~0.6.0", + "grunt-contrib-compress": "~0.13.0", + "grunt-contrib-concat": "~0.5.1", + "grunt-contrib-connect": "~0.9.0", + "grunt-contrib-copy": "~0.8.0", + "grunt-contrib-csslint": "~0.4.0", + "grunt-contrib-cssmin": "~0.12.2", + "grunt-contrib-jade": "~0.14.1", + "grunt-contrib-jshint": "~0.11.0", + "grunt-contrib-qunit": "~0.5.2", + "grunt-contrib-sass": "^0.8.1", + "grunt-contrib-uglify": "~0.8.0", + "grunt-contrib-watch": "~0.6.1", + "grunt-csscomb": "~3.0.0", + "grunt-eslint": "^17.1.0", + "grunt-exec": "~0.4.6", + "grunt-html": "~4.0.1", + "grunt-jekyll": "~0.4.2", + "grunt-jscs": "~1.8.0", + "grunt-line-remover": "0.0.2", + "grunt-postcss": "^0.3.0", + "grunt-sass": "^1.0.0", + "grunt-saucelabs": "~8.6.0", + "grunt-scss-lint": "^0.3.4", + "grunt-sed": "~0.1.1", + "grunt-stamp": "^0.1.0", + "load-grunt-tasks": "~3.1.0", + "markdown-it": "^4.0.1", + "mq4-hover-shim": "^0.2.0", + "npm-shrinkwrap": "^200.1.0", + "time-grunt": "^1.1.0" + }, + "engines": { + "node": ">=0.10.1" + }, + "files": [ + "dist", + "grunt/*.js", + "grunt/*.json", + "js/*.js", + "scss/**/*.scss", + "Gruntfile.js", + "LICENSE" + ], + "jspm": { + "main": "js/bootstrap", + "shim": { + "js/bootstrap": { + "deps": "jquery", + "exports": "$" + } + }, + "files": [ + "css", + "fonts", + "js" + ] + } +} diff --git a/bower_components/bootstrap/sache.json b/bower_components/bootstrap/sache.json new file mode 100644 index 000000000..cd1a8c44f --- /dev/null +++ b/bower_components/bootstrap/sache.json @@ -0,0 +1,5 @@ +{ + "name": "bootstrap", + "description": "The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.", + "tags": ["bootstrap", "grid", "typography", "buttons", "ui", "responsive-web-design"] +} diff --git a/bower_components/bootstrap/scss/.csscomb.json b/bower_components/bootstrap/scss/.csscomb.json new file mode 100644 index 000000000..40695a478 --- /dev/null +++ b/bower_components/bootstrap/scss/.csscomb.json @@ -0,0 +1,304 @@ +{ + "always-semicolon": true, + "block-indent": 2, + "color-case": "lower", + "color-shorthand": true, + "element-case": "lower", + "eof-newline": true, + "leading-zero": false, + "remove-empty-rulesets": true, + "space-after-colon": 1, + "space-after-combinator": 1, + "space-before-selector-delimiter": 0, + "space-between-declarations": "\n", + "space-after-opening-brace": "\n", + "space-before-closing-brace": "\n", + "space-before-colon": 0, + "space-before-combinator": 1, + "space-before-opening-brace": 1, + "strip-spaces": true, + "unitless-zero": true, + "vendor-prefix-align": true, + "sort-order": [ + [ + "position", + "top", + "right", + "bottom", + "left", + "z-index", + "display", + "float", + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "-webkit-box-sizing", + "-moz-box-sizing", + "box-sizing", + "-webkit-appearance", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "overflow", + "overflow-x", + "overflow-y", + "-webkit-overflow-scrolling", + "-ms-overflow-x", + "-ms-overflow-y", + "-ms-overflow-style", + "clip", + "clear", + "font", + "font-family", + "font-size", + "font-style", + "font-weight", + "font-variant", + "font-size-adjust", + "font-stretch", + "font-effect", + "font-emphasize", + "font-emphasize-position", + "font-emphasize-style", + "font-smooth", + "-webkit-hyphens", + "-moz-hyphens", + "hyphens", + "line-height", + "color", + "text-align", + "-webkit-text-align-last", + "-moz-text-align-last", + "-ms-text-align-last", + "text-align-last", + "text-emphasis", + "text-emphasis-color", + "text-emphasis-style", + "text-emphasis-position", + "text-decoration", + "text-indent", + "text-justify", + "text-outline", + "-ms-text-overflow", + "text-overflow", + "text-overflow-ellipsis", + "text-overflow-mode", + "text-shadow", + "text-transform", + "text-wrap", + "-webkit-text-size-adjust", + "-ms-text-size-adjust", + "letter-spacing", + "-ms-word-break", + "word-break", + "word-spacing", + "-ms-word-wrap", + "word-wrap", + "-moz-tab-size", + "-o-tab-size", + "tab-size", + "white-space", + "vertical-align", + "list-style", + "list-style-position", + "list-style-type", + "list-style-image", + "pointer-events", + "-ms-touch-action", + "touch-action", + "cursor", + "visibility", + "zoom", + "flex-direction", + "flex-order", + "flex-pack", + "flex-align", + "table-layout", + "empty-cells", + "caption-side", + "border-spacing", + "border-collapse", + "content", + "quotes", + "counter-reset", + "counter-increment", + "resize", + "-webkit-user-select", + "-moz-user-select", + "-ms-user-select", + "-o-user-select", + "user-select", + "nav-index", + "nav-up", + "nav-right", + "nav-down", + "nav-left", + "background", + "background-color", + "background-image", + "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient", + "filter:progid:DXImageTransform.Microsoft.gradient", + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", + "filter", + "background-repeat", + "background-attachment", + "background-position", + "background-position-x", + "background-position-y", + "-webkit-background-clip", + "-moz-background-clip", + "background-clip", + "background-origin", + "-webkit-background-size", + "-moz-background-size", + "-o-background-size", + "background-size", + "border", + "border-color", + "border-style", + "border-width", + "border-top", + "border-top-color", + "border-top-style", + "border-top-width", + "border-right", + "border-right-color", + "border-right-style", + "border-right-width", + "border-bottom", + "border-bottom-color", + "border-bottom-style", + "border-bottom-width", + "border-left", + "border-left-color", + "border-left-style", + "border-left-width", + "border-radius", + "border-top-left-radius", + "border-top-right-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "-webkit-border-image", + "-moz-border-image", + "-o-border-image", + "border-image", + "-webkit-border-image-source", + "-moz-border-image-source", + "-o-border-image-source", + "border-image-source", + "-webkit-border-image-slice", + "-moz-border-image-slice", + "-o-border-image-slice", + "border-image-slice", + "-webkit-border-image-width", + "-moz-border-image-width", + "-o-border-image-width", + "border-image-width", + "-webkit-border-image-outset", + "-moz-border-image-outset", + "-o-border-image-outset", + "border-image-outset", + "-webkit-border-image-repeat", + "-moz-border-image-repeat", + "-o-border-image-repeat", + "border-image-repeat", + "outline", + "outline-width", + "outline-style", + "outline-color", + "outline-offset", + "-webkit-box-shadow", + "-moz-box-shadow", + "box-shadow", + "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", + "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha", + "opacity", + "-ms-interpolation-mode", + "-webkit-transition", + "-moz-transition", + "-ms-transition", + "-o-transition", + "transition", + "-webkit-transition-delay", + "-moz-transition-delay", + "-ms-transition-delay", + "-o-transition-delay", + "transition-delay", + "-webkit-transition-timing-function", + "-moz-transition-timing-function", + "-ms-transition-timing-function", + "-o-transition-timing-function", + "transition-timing-function", + "-webkit-transition-duration", + "-moz-transition-duration", + "-ms-transition-duration", + "-o-transition-duration", + "transition-duration", + "-webkit-transition-property", + "-moz-transition-property", + "-ms-transition-property", + "-o-transition-property", + "transition-property", + "-webkit-transform", + "-moz-transform", + "-ms-transform", + "-o-transform", + "transform", + "-webkit-transform-origin", + "-moz-transform-origin", + "-ms-transform-origin", + "-o-transform-origin", + "transform-origin", + "-webkit-animation", + "-moz-animation", + "-ms-animation", + "-o-animation", + "animation", + "-webkit-animation-name", + "-moz-animation-name", + "-ms-animation-name", + "-o-animation-name", + "animation-name", + "-webkit-animation-duration", + "-moz-animation-duration", + "-ms-animation-duration", + "-o-animation-duration", + "animation-duration", + "-webkit-animation-play-state", + "-moz-animation-play-state", + "-ms-animation-play-state", + "-o-animation-play-state", + "animation-play-state", + "-webkit-animation-timing-function", + "-moz-animation-timing-function", + "-ms-animation-timing-function", + "-o-animation-timing-function", + "animation-timing-function", + "-webkit-animation-delay", + "-moz-animation-delay", + "-ms-animation-delay", + "-o-animation-delay", + "animation-delay", + "-webkit-animation-iteration-count", + "-moz-animation-iteration-count", + "-ms-animation-iteration-count", + "-o-animation-iteration-count", + "animation-iteration-count", + "-webkit-animation-direction", + "-moz-animation-direction", + "-ms-animation-direction", + "-o-animation-direction", + "animation-direction" + ] + ] +} diff --git a/bower_components/bootstrap/scss/.scsslint.yml b/bower_components/bootstrap/scss/.scsslint.yml new file mode 100644 index 000000000..3b24eeb3a --- /dev/null +++ b/bower_components/bootstrap/scss/.scsslint.yml @@ -0,0 +1,453 @@ +scss_files: "scss/*.scss" + +linters: + BangFormat: + enabled: true + space_before_bang: true + space_after_bang: false + + BorderZero: + enabled: true + + ColorKeyword: + enabled: true + + Comment: + enabled: true + exclude: ['_normalize.scss', 'bootstrap.scss'] + + DebugStatement: + enabled: true + + DeclarationOrder: + enabled: false + + DuplicateProperty: + enabled: true + exclude: ['mixins/_tab-focus.scss'] + + ElsePlacement: + enabled: true + style: same_line # or 'new_line' + + EmptyLineBetweenBlocks: + enabled: false + ignore_single_line_blocks: true + + EmptyRule: + enabled: true + + FinalNewline: + enabled: true + present: true + + HexLength: + enabled: true + style: short # or 'long' + + HexNotation: + enabled: true + style: lowercase # or 'uppercase' + + HexValidation: + enabled: true + + IdSelector: + enabled: true + + ImportPath: + enabled: true + leading_underscore: false + filename_extension: false + + Indentation: + enabled: true + character: space # or 'tab' + width: 2 + + LeadingZero: + enabled: false + style: exclude_zero # or 'include_zero' + + MergeableSelector: + enabled: false + force_nesting: true + + NameFormat: + enabled: true + allow_leading_underscore: true + convention: hyphenated_lowercase # or 'BEM', or a regex pattern + + NestingDepth: + enabled: false + + PlaceholderInExtend: + enabled: false + + PropertySortOrder: + enabled: true + ignore_unspecified: false + severity: warning + exclude: ['_normalize.scss'] + order: [ + "position", + "top", + "right", + "bottom", + "left", + "z-index", + "display", + "float", + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "-webkit-box-sizing", + "-moz-box-sizing", + "box-sizing", + "-webkit-appearance", + "flex", + "flex-direction", + "flex-flow", + "flex-order", + "flex-pack", + "flex-align", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "overflow", + "overflow-x", + "overflow-y", + "-webkit-overflow-scrolling", + "-ms-overflow-x", + "-ms-overflow-y", + "-ms-overflow-style", + "clip", + "clear", + "font", + "font-family", + "font-size", + "font-style", + "font-weight", + "font-variant", + "font-size-adjust", + "font-stretch", + "font-effect", + "font-emphasize", + "font-emphasize-position", + "font-emphasize-style", + "font-smooth", + "-webkit-hyphens", + "-moz-hyphens", + "hyphens", + "line-height", + "color", + "text-align", + "-webkit-text-align-last", + "-moz-text-align-last", + "-ms-text-align-last", + "text-align-last", + "text-emphasis", + "text-emphasis-color", + "text-emphasis-style", + "text-emphasis-position", + "text-decoration", + "text-indent", + "text-justify", + "text-outline", + "-ms-text-overflow", + "text-overflow", + "text-overflow-ellipsis", + "text-overflow-mode", + "text-shadow", + "text-transform", + "text-wrap", + "-webkit-text-size-adjust", + "-ms-text-size-adjust", + "letter-spacing", + "-ms-word-break", + "word-break", + "word-spacing", + "-ms-word-wrap", + "word-wrap", + "-moz-tab-size", + "-o-tab-size", + "tab-size", + "white-space", + "vertical-align", + "list-style", + "list-style-position", + "list-style-type", + "list-style-image", + "pointer-events", + "-ms-touch-action", + "touch-action", + "cursor", + "visibility", + "zoom", + "table-layout", + "empty-cells", + "caption-side", + "border-spacing", + "border-collapse", + "content", + "quotes", + "counter-reset", + "counter-increment", + "resize", + "-webkit-user-select", + "-moz-user-select", + "-ms-user-select", + "-o-user-select", + "user-select", + "nav-index", + "nav-up", + "nav-right", + "nav-down", + "nav-left", + "background", + "background-color", + "background-image", + "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient", + "filter:progid:DXImageTransform.Microsoft.gradient", + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", + "filter", + "background-repeat", + "background-attachment", + "background-position", + "background-position-x", + "background-position-y", + "-webkit-background-clip", + "-moz-background-clip", + "background-clip", + "background-origin", + "-webkit-background-size", + "-moz-background-size", + "-o-background-size", + "background-size", + "border", + "border-color", + "border-style", + "border-width", + "border-top", + "border-top-color", + "border-top-style", + "border-top-width", + "border-right", + "border-right-color", + "border-right-style", + "border-right-width", + "border-bottom", + "border-bottom-color", + "border-bottom-style", + "border-bottom-width", + "border-left", + "border-left-color", + "border-left-style", + "border-left-width", + "border-radius", + "border-top-left-radius", + "border-top-right-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "-webkit-border-image", + "-moz-border-image", + "-o-border-image", + "border-image", + "-webkit-border-image-source", + "-moz-border-image-source", + "-o-border-image-source", + "border-image-source", + "-webkit-border-image-slice", + "-moz-border-image-slice", + "-o-border-image-slice", + "border-image-slice", + "-webkit-border-image-width", + "-moz-border-image-width", + "-o-border-image-width", + "border-image-width", + "-webkit-border-image-outset", + "-moz-border-image-outset", + "-o-border-image-outset", + "border-image-outset", + "-webkit-border-image-repeat", + "-moz-border-image-repeat", + "-o-border-image-repeat", + "border-image-repeat", + "outline", + "outline-width", + "outline-style", + "outline-color", + "outline-offset", + "-webkit-box-shadow", + "-moz-box-shadow", + "box-shadow", + "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", + "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha", + "opacity", + "-ms-interpolation-mode", + "-webkit-transition", + "-moz-transition", + "-ms-transition", + "-o-transition", + "transition", + "-webkit-transition-delay", + "-moz-transition-delay", + "-ms-transition-delay", + "-o-transition-delay", + "transition-delay", + "-webkit-transition-timing-function", + "-moz-transition-timing-function", + "-ms-transition-timing-function", + "-o-transition-timing-function", + "transition-timing-function", + "-webkit-transition-duration", + "-moz-transition-duration", + "-ms-transition-duration", + "-o-transition-duration", + "transition-duration", + "-webkit-transition-property", + "-moz-transition-property", + "-ms-transition-property", + "-o-transition-property", + "transition-property", + "-webkit-transform", + "-moz-transform", + "-ms-transform", + "-o-transform", + "transform", + "-webkit-transform-origin", + "-moz-transform-origin", + "-ms-transform-origin", + "-o-transform-origin", + "transform-origin", + "-webkit-animation", + "-moz-animation", + "-ms-animation", + "-o-animation", + "animation", + "-webkit-animation-name", + "-moz-animation-name", + "-ms-animation-name", + "-o-animation-name", + "animation-name", + "-webkit-animation-duration", + "-moz-animation-duration", + "-ms-animation-duration", + "-o-animation-duration", + "animation-duration", + "-webkit-animation-play-state", + "-moz-animation-play-state", + "-ms-animation-play-state", + "-o-animation-play-state", + "animation-play-state", + "-webkit-animation-timing-function", + "-moz-animation-timing-function", + "-ms-animation-timing-function", + "-o-animation-timing-function", + "animation-timing-function", + "-webkit-animation-delay", + "-moz-animation-delay", + "-ms-animation-delay", + "-o-animation-delay", + "animation-delay", + "-webkit-animation-iteration-count", + "-moz-animation-iteration-count", + "-ms-animation-iteration-count", + "-o-animation-iteration-count", + "animation-iteration-count", + "-webkit-animation-direction", + "-moz-animation-direction", + "-ms-animation-direction", + "-o-animation-direction", + "animation-direction" + ] + + PropertySpelling: + enabled: true + extra_properties: [] + + QualifyingElement: + enabled: false + allow_element_with_attribute: false + allow_element_with_class: false + allow_element_with_id: false + + SelectorDepth: + enabled: false + + SelectorFormat: + enabled: true + convention: hyphenated_lowercase # or 'BEM', or 'snake_case', or 'camel_case', or a regex pattern + + Shorthand: + enabled: true + + SingleLinePerProperty: + enabled: true + allow_single_line_rule_sets: true + + SingleLinePerSelector: + enabled: false + + SpaceAfterComma: + enabled: false + + SpaceAfterPropertyColon: + enabled: true + style: at_least_one_space # or 'no_space', or 'at_least_one_space', or 'aligned' + + SpaceAfterPropertyName: + enabled: true + + SpaceBeforeBrace: + enabled: true + style: space + allow_single_line_padding: true + + SpaceBetweenParens: + enabled: true + spaces: 0 + + StringQuotes: + enabled: true + style: double_quotes + + TrailingSemicolon: + enabled: true + + TrailingZero: + enabled: false + + UnnecessaryMantissa: + enabled: true + + UnnecessaryParentReference: + enabled: true + + UrlFormat: + enabled: true + + UrlQuotes: + enabled: true + + VendorPrefixes: + enabled: true + identifier_list: base + include: [] + exclude: ['_normalize.scss'] + + ZeroUnit: + enabled: true + + Compass::*: + enabled: false diff --git a/bower_components/bootstrap/scss/_alert.scss b/bower_components/bootstrap/scss/_alert.scss new file mode 100644 index 000000000..aaa2a1da5 --- /dev/null +++ b/bower_components/bootstrap/scss/_alert.scss @@ -0,0 +1,66 @@ +// +// Base styles +// + +.alert { + padding: $alert-padding; + margin-bottom: $spacer-y; + border: 1px solid transparent; + @include border-radius($alert-border-radius); + + // Improve alignment and spacing of inner content + > p, + > ul { + margin-bottom: 0; + } + > p + p { + margin-top: 5px; + } +} + +// Headings for larger alerts +.alert-heading { + margin-top: 0; + // Specified to prevent conflicts of changing $headings-color + color: inherit; +} + +// Provide class for links that match alerts +.alert-link { + font-weight: $alert-link-font-weight; +} + + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissible { + padding-right: ($alert-padding + 20); + + // Adjust close link position + .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; + } +} + + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +.alert-success { + @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); +} +.alert-info { + @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); +} +.alert-warning { + @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); +} +.alert-danger { + @include alert-variant($alert-danger-bg, $alert-danger-border,$alert-danger-text); +} diff --git a/bower_components/bootstrap/scss/_animation.scss b/bower_components/bootstrap/scss/_animation.scss new file mode 100644 index 000000000..edd7147e5 --- /dev/null +++ b/bower_components/bootstrap/scss/_animation.scss @@ -0,0 +1,27 @@ +.fade { + opacity: 0; + transition: opacity .15s linear; + + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + + &.in { + display: block; + } + // tr&.in { display: table-row; } + // tbody&.in { display: table-row-group; } +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition-timing-function: ease; + transition-duration: .35s; + transition-property: height; +} diff --git a/bower_components/bootstrap/scss/_breadcrumb.scss b/bower_components/bootstrap/scss/_breadcrumb.scss new file mode 100644 index 000000000..d2302b829 --- /dev/null +++ b/bower_components/bootstrap/scss/_breadcrumb.scss @@ -0,0 +1,23 @@ +.breadcrumb { + padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal; + margin-bottom: $spacer-y; + list-style: none; + background-color: $breadcrumb-bg; + @include border-radius($border-radius); + + > li { + display: inline-block; + + + li:before { + $nbsp: "\00a0"; + padding-right: .5rem; + padding-left: .5rem; + color: $breadcrumb-divider-color; + content: "#{$breadcrumb-divider}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space + } + } + + > .active { + color: $breadcrumb-active-color; + } +} diff --git a/bower_components/bootstrap/scss/_button-group.scss b/bower_components/bootstrap/scss/_button-group.scss new file mode 100644 index 000000000..d85c63767 --- /dev/null +++ b/bower_components/bootstrap/scss/_button-group.scss @@ -0,0 +1,224 @@ +// Make the div behave like a button +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; // match .btn alignment given font-size hack above + + > .btn { + position: relative; + float: left; + + // Bring the "active" button to the front + &:focus, + &:active, + &.active { + z-index: 2; + } + @include hover { + z-index: 2; + } + } +} + +// Prevent double borders when buttons are next to each other +.btn-group { + .btn + .btn, + .btn + .btn-group, + .btn-group + .btn, + .btn-group + .btn-group { + margin-left: -1px; + } +} + +// Optional: Group multiple button groups together for a toolbar +.btn-toolbar { + margin-left: -5px; // Offset the first child's margin + @include clearfix(); + + .btn-group, + .input-group { + float: left; + } + + > .btn, + > .btn-group, + > .input-group { + margin-left: 5px; + } +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match +.btn-group > .btn:first-child { + margin-left: 0; + + &:not(:last-child):not(.dropdown-toggle) { + @include border-right-radius(0); + } +} +// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + @include border-left-radius(0); +} + +// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) { + > .btn:last-child, + > .dropdown-toggle { + @include border-right-radius(0); + } +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + @include border-left-radius(0); +} + +// On active and open, don't show outline +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + + +// Sizing +// +// Remix the default button sizing classes into new ones for easier manipulation. + +.btn-group-sm > .btn { @extend .btn-sm; } +.btn-group-lg > .btn { @extend .btn-lg; } + + +// +// Split button dropdowns +// + +// Give the line between buttons some depth +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +// The clickable button for toggling the menu +// Remove the gradient and set the same inset shadow as the :active state +.btn-group.open .dropdown-toggle { + @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + + // Show no shadow for `.btn-link` since it has no other button styles. + &.btn-link { + @include box-shadow(none); + } +} + + +// Reposition the caret +.btn .caret { + margin-left: 0; +} +// Carets in other button sizes +.btn-lg .caret { + border-width: $caret-width-lg $caret-width-lg 0; + border-bottom-width: 0; +} +// Upside down carets for .dropup +.dropup .btn-lg .caret { + border-width: 0 $caret-width-lg $caret-width-lg; +} + + + +// +// Vertical button groups +// + +.btn-group-vertical { + > .btn, + > .btn-group, + > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + } + + // Clear floats so dropdown menus can be properly placed + > .btn-group { + @include clearfix(); + + > .btn { + float: none; + } + } + + > .btn + .btn, + > .btn + .btn-group, + > .btn-group + .btn, + > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; + } +} + +.btn-group-vertical > .btn { + &:not(:first-child):not(:last-child) { + border-radius: 0; + } + &:first-child:not(:last-child) { + border-top-right-radius: $btn-border-radius; + @include border-bottom-radius(0); + } + &:last-child:not(:first-child) { + border-bottom-left-radius: $btn-border-radius; + @include border-top-radius(0); + } +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) { + > .btn:last-child, + > .dropdown-toggle { + @include border-bottom-radius(0); + } +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + @include border-top-radius(0); +} + + +// Checkbox and radio options +// +// In order to support the browser's form validation feedback, powered by the +// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use +// `display: none;` or `visibility: hidden;` as that also hides the popover. +// Simply visually hiding the inputs via `opacity` would leave them clickable in +// certain cases which is prevented by using `clip` and `pointer-events`. +// This way, we ensure a DOM element is visible to position the popover from. +// +// See https://github.com/twbs/bootstrap/pull/12794 and +// https://github.com/twbs/bootstrap/pull/14559 for more information. + +[data-toggle="buttons"] { + > .btn, + > .btn-group > .btn { + input[type="radio"], + input[type="checkbox"] { + position: absolute; + clip: rect(0,0,0,0); + pointer-events: none; + } + } +} diff --git a/bower_components/bootstrap/scss/_buttons.scss b/bower_components/bootstrap/scss/_buttons.scss new file mode 100644 index 000000000..97d225103 --- /dev/null +++ b/bower_components/bootstrap/scss/_buttons.scss @@ -0,0 +1,177 @@ +// +// Base styles +// + +.btn { + display: inline-block; + font-weight: $btn-font-weight; + text-align: center; + white-space: nowrap; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + user-select: none; + border: $border-width solid transparent; + @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $line-height, $btn-border-radius); + @include transition(all .2s ease-in-out); + + &, + &:active, + &.active { + &:focus, + &.focus { + @include tab-focus(); + } + } + + @include hover-focus { + text-decoration: none; + } + &.focus { + text-decoration: none; + } + + &:active, + &.active { + background-image: none; + outline: 0; + @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } + + &.disabled, + &:disabled, + fieldset[disabled] & { + cursor: $cursor-disabled; + opacity: .65; + @include box-shadow(none); + } +} + +// Future-proof disabling of clicks on `` elements +a.btn.disaabled, +fieldset[disabled] a.btn { + pointer-events: none; +} + + +// +// Alternate buttons +// + +.btn-primary { + @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); +} +.btn-secondary { + @include button-variant($btn-secondary-color, $btn-secondary-bg, $btn-secondary-border); +} +.btn-info { + @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border); +} +.btn-success { + @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); +} +.btn-warning { + @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border); +} +.btn-danger { + @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border); +} + +// Remove all backgrounds +.btn-primary-outline { + @include button-outline-variant($btn-primary-bg); +} +.btn-secondary-outline { + @include button-outline-variant($btn-secondary-border); +} +.btn-info-outline { + @include button-outline-variant($btn-info-bg); +} +.btn-success-outline { + @include button-outline-variant($btn-success-bg); +} +.btn-warning-outline { + @include button-outline-variant($btn-warning-bg); +} +.btn-danger-outline { + @include button-outline-variant($btn-danger-bg); +} + + +// +// Link buttons +// + +// Make a button look and behave like a link +.btn-link { + font-weight: normal; + color: $link-color; + border-radius: 0; + + &, + &:active, + &.active, + &:disabled, + fieldset[disabled] & { + background-color: transparent; + @include box-shadow(none); + } + &, + &:focus, + &:active { + border-color: transparent; + } + @include hover { + border-color: transparent; + } + @include hover-focus { + color: $link-hover-color; + text-decoration: $link-hover-decoration; + background-color: transparent; + } + &:disabled, + fieldset[disabled] & { + @include hover-focus { + color: $btn-link-disabled-color; + text-decoration: none; + } + } +} + + +// +// Button Sizes +// + +.btn-lg { + // line-height: ensure even-numbered height of button next to large input + @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $line-height-lg, $btn-border-radius-lg); +} +.btn-sm { + // line-height: ensure proper height of button next to small input + @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $line-height-sm, $btn-border-radius-sm); +} + + +// +// Block button +// + +.btn-block { + display: block; + width: 100%; +} + +// Vertically space out multiple block buttons +.btn-block + .btn-block { + margin-top: 5px; +} + +// Specificity overrides +input[type="submit"], +input[type="reset"], +input[type="button"] { + &.btn-block { + width: 100%; + } +} diff --git a/bower_components/bootstrap/scss/_card.scss b/bower_components/bootstrap/scss/_card.scss new file mode 100644 index 000000000..b0bac74e1 --- /dev/null +++ b/bower_components/bootstrap/scss/_card.scss @@ -0,0 +1,294 @@ +// +// Base styles +// + +$card-spacer-x: 1.25rem; +$card-spacer-y: .75rem; +$card-border-width: .0625rem; +$card-border-radius: .25rem; +$card-border-color: #e5e5e5; +$card-border-radius-inner: ($card-border-radius - $card-border-width); + +$card-cap-bg: #f5f5f5; + +.card { + position: relative; + margin-bottom: $card-spacer-y; + border: $card-border-width solid $card-border-color; + @include border-radius($card-border-radius); +} + +.card-block { + padding: $card-spacer-x; +} + +.card-title { + margin-top: 0; + margin-bottom: $card-spacer-y; +} + +.card-subtitle { + margin-top: -($card-spacer-y / 2); + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +// .card-actions { +// padding: $card-spacer-y $card-spacer-x; + +// .card-link + .card-link { +// margin-left: $card-spacer-x; +// } +// } + +.card-link { + @include hover { + text-decoration: none; + } + + + .card-link { + margin-left: $card-spacer-x; + } +} + +@if $enable-rounded { + .card { + > .list-group:first-child { + .list-group-item:first-child { + border-radius: $card-border-radius $card-border-radius 0 0; + } + } + + > .list-group:last-child { + .list-group-item:last-child { + border-radius: 0 0 $card-border-radius $card-border-radius; + } + } + } +} + + +// +// Optional textual caps +// + +.card-header { + padding: $card-spacer-y $card-spacer-x; + background-color: $card-cap-bg; + border-bottom: $card-border-width solid $card-border-color; + + &:first-child { + @include border-radius($card-border-radius-inner $card-border-radius-inner 0 0); + } +} + +.card-footer { + padding: $card-spacer-y $card-spacer-x; + background-color: $card-cap-bg; + border-top: $card-border-width solid $card-border-color; + + &:last-child { + @include border-radius(0 0 $card-border-radius-inner $card-border-radius-inner); + } +} + + +// +// Background variations +// + +.card-primary { + background-color: $brand-primary; + border-color: $brand-primary; +} +.card-success { + background-color: $brand-success; + border-color: $brand-success; +} +.card-info { + background-color: $brand-info; + border-color: $brand-info; +} +.card-warning { + background-color: $brand-warning; + border-color: $brand-warning; +} +.card-danger { + background-color: $brand-danger; + border-color: $brand-danger; +} + + +// +// Inverse text within a card for use with dark backgrounds +// + +.card-inverse { + .card-header, + .card-footer { + border-bottom: .075rem solid rgba(255,255,255,.2); + } + .card-header, + .card-footer, + .card-title, + .card-blockquote { + color: #fff; + } + .card-link, + .card-text, + .card-blockquote > footer { + color: rgba(255,255,255,.65); + } + .card-link { + @include hover-focus { + color: #fff; + } + } +} + + +// +// Blockquote +// + +.card-blockquote { + padding: 0; + margin-bottom: 0; + border-left: 0; +} + +// Card image +.card-img { + // margin: -1.325rem; + @include border-radius(.25rem); +} +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; +} + + + +// Card image caps +.card-img-top { + @include border-radius(.25rem .25rem 0 0); +} +.card-img-bottom { + @include border-radius(0 0 .25rem .25rem); +} + + +// +// Card set +// + +@if $enable-flex { + .card-deck { + display: flex; + flex-flow: row wrap; + margin-right: -.625rem; + margin-left: -.625rem; + + .card { + flex: 1 0 0; + margin-right: .625rem; + margin-left: .625rem; + } + } +} @else { + .card-deck { + display: table; + table-layout: fixed; + border-spacing: 1.25rem 0; + + .card { + display: table-cell; + width: 1%; + vertical-align: top; + } + } + .card-deck-wrapper { + margin-right: -1.25rem; + margin-left: -1.25rem; + } +} + +// +// Card groups +// + +.card-group { + @if $enable-flex { + display: flex; + flex-flow: row wrap; + } @else { + display: table; + width: 100%; + table-layout: fixed; + } + + .card { + @if $enable-flex { + flex: 1 0 0; + } @else { + display: table-cell; + vertical-align: top; + } + + + .card { + margin-left: 0; + border-left: 0; + } + + // Handle rounded corners + @if $enable-rounded { + &:first-child { + .card-img-top { + border-top-right-radius: 0; + } + .card-img-bottom { + border-bottom-right-radius: 0; + } + } + &:last-child { + .card-img-top { + border-top-left-radius: 0; + } + .card-img-bottom { + border-bottom-left-radius: 0; + } + } + + &:not(:first-child):not(:last-child) { + border-radius: 0; + + .card-img-top, + .card-img-bottom { + border-radius: 0; + } + } + } + } +} + + +// +// Card +// + +.card-columns { + column-count: 3; + column-gap: 1.25rem; + + .card { + display: inline-block; + width: 100%; // Don't let them exceed the column width + } +} diff --git a/bower_components/bootstrap/scss/_carousel.scss b/bower_components/bootstrap/scss/_carousel.scss new file mode 100644 index 000000000..c5a7fdfcb --- /dev/null +++ b/bower_components/bootstrap/scss/_carousel.scss @@ -0,0 +1,252 @@ +// Wrapper for the slide container and indicators +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; + + > .carousel-item { + position: relative; + display: none; + transition: .6s ease-in-out left; + + // Account for jankitude on images + > img, + > a > img { + @extend .img-responsive; + line-height: 1; + } + + // WebKit CSS3 transforms for supported devices + @media all and (transform-3d), (-webkit-transform-3d) { + transition: transform .6s ease-in-out; + backface-visibility: hidden; + perspective: 1000px; + + &.next, + &.active.right { + left: 0; + transform: translate3d(100%, 0, 0); + } + &.prev, + &.active.left { + left: 0; + transform: translate3d(-100%, 0, 0); + } + &.next.left, + &.prev.right, + &.active { + left: 0; + transform: translate3d(0, 0, 0); + } + } + } + + > .active, + > .next, + > .prev { + display: block; + } + + > .active { + left: 0; + } + + > .next, + > .prev { + position: absolute; + top: 0; + width: 100%; + } + + > .next { + left: 100%; + } + > .prev { + left: -100%; + } + > .next.left, + > .prev.right { + left: 0; + } + + > .active.left { + left: -100%; + } + > .active.right { + left: 100%; + } +} + + +// +// Left/right controls for nav +// + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: $carousel-control-width; + font-size: $carousel-control-font-size; + color: $carousel-control-color; + text-align: center; + text-shadow: $carousel-text-shadow; + opacity: $carousel-control-opacity; + // We can't have this transition here because WebKit cancels the carousel + // animation if you trip this while in the middle of another animation. + + // Set gradients for backgrounds + &.left { + @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001)); + } + &.right { + right: 0; + left: auto; + @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5)); + } + + // Hover/focus state + @include hover-focus { + color: $carousel-control-color; + text-decoration: none; + outline: 0; + opacity: .9; + } + + // Toggles + .icon-prev, + .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; + } + .icon-prev { + left: 50%; + margin-left: -10px; + } + .icon-next { + right: 50%; + margin-right: -10px; + } + + .icon-prev { + &:before { + content: "\2039";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) + } + } + .icon-next { + &:before { + content: "\203a";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) + } + } +} + + +// Optional indicator pips +// +// Add an unordered list with the following class and add a list item for each +// slide your carousel holds. + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; + + li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + // IE9 hack for event handling + // + // Internet Explorer 9 does not support clicks on elements without a set + // `background-color`. We cannot use `filter` since that's not viewed as a + // background color by the browser. Thus, a hack is needed. + background-color: rgba(0,0,0,0); // IE9 + border: 1px solid $carousel-indicator-border-color; + border-radius: 10px; + } + .active { + width: 12px; + height: 12px; + margin: 0; + background-color: $carousel-indicator-active-bg; + } +} + + +// Optional captions +// +// Hidden by default for smaller viewports. + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: $carousel-caption-color; + text-align: center; + text-shadow: $carousel-text-shadow; + + .btn { + text-shadow: none; // No shadow for button elements in carousel-caption + } +} + + +// +// Responsive variations +// + +@include media-breakpoint-up(sm) { + // Scale up the controls a smidge + .carousel-control { + .icon-prev, + .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + .icon-prev { + margin-left: -15px; + } + .icon-next { + margin-right: -15px; + } + } + + // Show and left align the captions + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + + // Move up the indicators + .carousel-indicators { + bottom: 20px; + } +} diff --git a/bower_components/bootstrap/scss/_close.scss b/bower_components/bootstrap/scss/_close.scss new file mode 100644 index 000000000..89e68a381 --- /dev/null +++ b/bower_components/bootstrap/scss/_close.scss @@ -0,0 +1,28 @@ +.close { + float: right; + font-size: ($font-size-base * 1.5); + font-weight: $close-font-weight; + line-height: 1; + color: $close-color; + text-shadow: $close-text-shadow; + opacity: .2; + + @include hover-focus { + color: $close-color; + text-decoration: none; + cursor: pointer; + opacity: .5; + } +} + +// Additional properties for button version +// iOS requires the button element instead of an anchor tag. +// If you want the anchor version, it requires `href="#"`. +// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} diff --git a/bower_components/bootstrap/scss/_code.scss b/bower_components/bootstrap/scss/_code.scss new file mode 100644 index 000000000..0de67d9ec --- /dev/null +++ b/bower_components/bootstrap/scss/_code.scss @@ -0,0 +1,58 @@ +// Inline and block code styles +code, +kbd, +pre, +samp { + font-family: $font-family-monospace; +} + +// Inline code +code { + padding: .2rem .4rem; + font-size: 90%; + color: $code-color; + background-color: $code-bg; + @include border-radius($border-radius); +} + +// User input typically entered via keyboard +kbd { + padding: .2rem .4rem; + font-size: 90%; + color: $kbd-color; + background-color: $kbd-bg; + @include border-radius($border-radius-sm); + @include box-shadow(inset 0 -.1rem 0 rgba(0,0,0,.25)); + + kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + @include box-shadow(none); + } +} + +// Blocks of code +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + font-size: 90%; + line-height: $line-height; + color: $pre-color; + + // Account for some code outputs that place code tags in pre tags + code { + padding: 0; + font-size: inherit; + color: inherit; + background-color: transparent; + border-radius: 0; + } +} + +// Enable scrollable blocks of code +.pre-scrollable { + max-height: $pre-scrollable-max-height; + overflow-y: scroll; +} diff --git a/bower_components/bootstrap/scss/_custom-forms.scss b/bower_components/bootstrap/scss/_custom-forms.scss new file mode 100644 index 000000000..ec211acaa --- /dev/null +++ b/bower_components/bootstrap/scss/_custom-forms.scss @@ -0,0 +1,226 @@ +// Embedded icons from Open Iconic. +// Released under MIT and copyright 2014 Waybury. +// http://useiconic.com/open + + +// Checkboxes and radios +// +// Base class takes care of all the key behavioral aspects. + +.c-input { + position: relative; + display: inline; + padding-left: 1.5rem; + color: #555; + cursor: pointer; + + > input { + position: absolute; + z-index: -1; // Put the input behind the label so it doesn't overlay text + opacity: 0; + + &:focus ~ .c-indicator { + @include box-shadow(0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9); + } + + &:checked ~ .c-indicator { + color: #fff; + background-color: #0074d9; + @include box-shadow(none); + } + + &:active ~ .c-indicator { + color: #fff; + background-color: #84c6ff; + @include box-shadow(none); + } + } + + + .c-input { + margin-left: 1rem; + } +} + +// Custom indicator +// +// Generates a shadow element to create our makeshift checkbox/radio background. + +.c-indicator { + position: absolute; + top: 0; + left: 0; + display: block; + width: 1rem; + height: 1rem; + font-size: 65%; + line-height: 1rem; + color: #eee; + text-align: center; + user-select: none; + background-color: #eee; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; + @include box-shadow(inset 0 .125rem .125rem rgba(0,0,0,.1)); +} + +// Checkboxes +// +// Tweak just a few things for checkboxes. + +.c-checkbox { + .c-indicator { + border-radius: .25rem; + } + + input:checked ~ .c-indicator { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTYuNCwxTDUuNywxLjdMMi45LDQuNUwyLjEsMy43TDEuNCwzTDAsNC40bDAuNywwLjdsMS41LDEuNWwwLjcsMC43bDAuNy0wLjdsMy41LTMuNWwwLjctMC43TDYuNCwxTDYuNCwxeiINCgkvPg0KPC9zdmc+DQo=); + } + + input:indeterminate ~ .c-indicator { + background-color: #0074d9; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOHB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDggOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOCA4IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0wLDN2Mmg4VjNIMHoiLz4NCjwvc3ZnPg0K); + @include box-shadow(none); + } +} + +// Radios +// +// Tweak just a few things for radios. + +.c-radio { + .c-indicator { + border-radius: 50%; + } + + input:checked ~ .c-indicator { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQsMUMyLjMsMSwxLDIuMywxLDRzMS4zLDMsMywzczMtMS4zLDMtM1M1LjcsMSw0LDF6Ii8+DQo8L3N2Zz4NCg==); + } +} + + +// Layout options +// +// By default radios and checkboxes are `inline-block` with no additional spacing +// set. Use these optional classes to tweak the layout. + +.c-inputs-stacked { + .c-input { + display: inline; + + &:after { + display: block; + margin-bottom: .25rem; + content: ""; + } + + + .c-input { + margin-left: 0; + } + } +} + + +// Select +// +// Replaces the browser default select with a custom one, mostly pulled from +// http://primercss.io. + +.c-select { + display: inline-block; + max-width: 100%; + padding: .375rem 1.75rem .375rem .75rem; + vertical-align: middle; + background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC) no-repeat right .75rem center; + background-size: 8px 10px; + border: 1px solid $input-border; + + // Have to include vendor prefixes as the `appearance` property isn't part of the CSS spec. + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + + // IE9 hacks to hide the background-image and reduce padding + padding-right: .75rem \9; + background-image: none \9; + + &:focus { + outline: none; + border-color: #51a7e8; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(81, 167, 232, 0.5); + } + + // Hides the default caret in IE11 + &::-ms-expand { + opacity: 0; + } +} + +.c-select-sm { + padding-top: 3px; + padding-bottom: 3px; + font-size: 12px; + + &:not([multiple]) { + height: 26px; + min-height: 26px; + } +} + + +// File +// +// Custom file input. + +.file { + position: relative; + display: inline-block; + height: 2.5rem; + cursor: pointer; +} +.file input { + min-width: 14rem; + margin: 0; + filter: alpha(opacity=0); + opacity: 0; +} +.file-custom { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 5; + height: 2.5rem; + padding: .5rem 1rem; + line-height: 1.5; + color: #555; + user-select: none; + background-color: #fff; + border: .075rem solid #ddd; + border-radius: .25rem; + box-shadow: inset 0 .2rem .4rem rgba(0,0,0,.05); +} +.file-custom:after { + content: "Choose file..."; +} +.file-custom:before { + position: absolute; + top: -.075rem; + right: -.075rem; + bottom: -.075rem; + z-index: 6; + display: block; + height: 2.5rem; + padding: .5rem 1rem; + line-height: 1.5; + color: #555; + content: "Browse"; + background-color: #eee; + border: .075rem solid #ddd; + border-radius: 0 .25rem .25rem 0; +} + +// Focus state +.file input:focus ~ .file-custom { + box-shadow: 0 0 0 .075rem #fff, 0 0 0 .2rem #0074d9; +} diff --git a/bower_components/bootstrap/scss/_dropdown.scss b/bower_components/bootstrap/scss/_dropdown.scss new file mode 100644 index 000000000..d3588d270 --- /dev/null +++ b/bower_components/bootstrap/scss/_dropdown.scss @@ -0,0 +1,182 @@ +// The dropdown wrapper (div) +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + // Generate the caret automatically + &:after { + display: inline-block; + width: 0; + height: 0; + margin-left: .25rem; + vertical-align: middle; + content: ""; + border-top: $caret-width solid; + border-right: $caret-width solid transparent; + border-left: $caret-width solid transparent; + } + + // Prevent the focus on the dropdown toggle when closing dropdowns + &:focus { + outline: 0; + } +} + +// The dropdown menu (ul) +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: $zindex-dropdown; + display: none; // none by default, but block on "open" of the menu + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; // override default ul + font-size: $font-size-base; + text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) + list-style: none; + background-color: $dropdown-bg; + background-clip: padding-box; + border: 1px solid $dropdown-border; + @include border-radius($border-radius); + @include box-shadow(0 6px 12px rgba(0,0,0,.175)); +} + +// Dividers (basically an hr) within the dropdown +.dropdown-divider { + @include nav-divider($dropdown-divider-bg); +} + +// Links, buttons, and more within the dropdown menu +.dropdown-item { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: $line-height; + color: $dropdown-link-color; + white-space: nowrap; // prevent links from randomly breaking onto new lines + + // For `