diff --git a/gulpfile.js b/gulpfile.js index 772a00f..2157da9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -8,6 +8,7 @@ var concat = require('gulp-concat'); var uglify = require('gulp-uglify'); var sass = require('gulp-sass'); var cleanCSS= require('gulp-clean-css'); +var bower = require('gulp-bower'); // Compile Jade views into HTML gulp.task('views', function() { @@ -65,12 +66,13 @@ gulp.task('test', function(){ // Delete production files gulp.task('clean', function () { - return del([ 'production/*.html', 'production/css/**/*', 'production/js/**/*', 'production/assets/**/*' ]); + return del([ 'production' ]); }); // Build complete project gulp.task('build', ['clean'], function(){ + bower('./production/bower_components'); gulp.start('views', 'coffee', 'sass', 'assets'); gutil.beep(); // Delete this line if you don't like the sound effects! }); diff --git a/production/assets/github.png b/production/assets/github.png deleted file mode 100644 index 7bc97a2..0000000 Binary files a/production/assets/github.png and /dev/null differ diff --git a/production/assets/linkedin.png b/production/assets/linkedin.png deleted file mode 100644 index b504fd9..0000000 Binary files a/production/assets/linkedin.png and /dev/null differ diff --git a/production/assets/profile-pic-1.jpg b/production/assets/profile-pic-1.jpg deleted file mode 100644 index 4476343..0000000 Binary files a/production/assets/profile-pic-1.jpg and /dev/null differ diff --git a/production/assets/profile-pic-2.jpg b/production/assets/profile-pic-2.jpg deleted file mode 100644 index f012423..0000000 Binary files a/production/assets/profile-pic-2.jpg and /dev/null differ diff --git a/production/bower_components/Materialize/.bower.json b/production/bower_components/Materialize/.bower.json deleted file mode 100644 index 294651c..0000000 --- a/production/bower_components/Materialize/.bower.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "materialize", - "description": "A modern responsive front-end framework based on Material Design", - "keywords": [ - "css", - "js", - "sass", - "mobile-first", - "responsive", - "front-end", - "framework", - "ux", - "material", - "design" - ], - "main": [ - "bin/materialize.css", - "bin/materialize.js" - ], - "ignore": [ - "jade/", - ".gitignore", - "CNAME", - "css/", - "bower.json", - "README.md", - "images/", - "js/jquery.timeago.js", - "js/init.js", - "js/prism.js", - "res/", - "sass/style.scss", - "sass/ghpages-materialize.scss", - "**/*.html", - "**/*.zip", - "**/*.txt", - "sitemap.xml", - "package.json", - "Gruntfile.js" - ], - "dependencies": { - "jquery": ">=2.1.1" - }, - "devDependencies": {}, - "homepage": "https://github.com/Dogfalo/materialize", - "version": "0.97.7", - "_release": "0.97.7", - "_resolution": { - "type": "version", - "tag": "v0.97.7", - "commit": "2e1dc18181c44dcef1058368a5fd4fb50216339a" - }, - "_source": "https://github.com/Dogfalo/materialize.git", - "_target": "~0.97.6", - "_originalSource": "materialize" -} \ No newline at end of file diff --git a/production/bower_components/Materialize/.editorconfig b/production/bower_components/Materialize/.editorconfig deleted file mode 100644 index 90cbf8f..0000000 --- a/production/bower_components/Materialize/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*.{js,scss}] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false diff --git a/production/bower_components/Materialize/.gitattributes b/production/bower_components/Materialize/.gitattributes deleted file mode 100644 index a6dfb1d..0000000 --- a/production/bower_components/Materialize/.gitattributes +++ /dev/null @@ -1,6 +0,0 @@ -* text=auto -**/*.html linguist-documentation -js/velocity.min.js linguist-vendored -js/hammer.min.js linguist-vendored -js/jquery.easing.1.3.js linguist-vendored -js/jquery.timeago.min.js linguist-vendored \ No newline at end of file diff --git a/production/bower_components/Materialize/.npmignore b/production/bower_components/Materialize/.npmignore deleted file mode 100644 index 25c6c2f..0000000 --- a/production/bower_components/Materialize/.npmignore +++ /dev/null @@ -1,8 +0,0 @@ -images/ -.sass-cache/ -.grunt/ -.DS_Store -prepros.cfg -Thumbs.db -.projectile -**/*.log diff --git a/production/bower_components/Materialize/.travis.yml b/production/bower_components/Materialize/.travis.yml deleted file mode 100644 index 0f4169e..0000000 --- a/production/bower_components/Materialize/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -node_js: - - "0.12" -before_install: - - npm install -g grunt-cli -git: - depth: 10 diff --git a/production/bower_components/Materialize/CHANGELOG.md b/production/bower_components/Materialize/CHANGELOG.md deleted file mode 100644 index 1178161..0000000 --- a/production/bower_components/Materialize/CHANGELOG.md +++ /dev/null @@ -1,152 +0,0 @@ -## v0.97.3 (Nov 15, 2015) -- Meteor font issues fixed -- Select rendering issue fixed -- Added Push and Pull to grid -- Dynamic accordion appends fixed - -## v0.97.2 (Nov 8, 2015) -- Image support inside select -- Optgroup supported in select -- Multiple select added -- Card styling fixes -- Breadcrumbs added -- Scrollable tabs -- Tooltips and dropdowns position themselves more intelligently inside the window -- FAB menu is click-toggleable -- Horizontal FAB support added - -## v0.97.1 (Sep 13, 2015) -- Added new range slider with uses noUiSlider to provide powerful options -- Added CSS for Chips -- Toasts support adding of html elements -- Fixed select destroy/creation bug -- Bugfixes for dropdown, badges, collections, scrollfire -- Added default preloader color variable -- File input now supports multiple files and dynamically loaded elements - -## v0.97.0 (June 21, 2015) -- **Documentation changed to use Official Google Icon web font** -- **Input errors added** -- Flicker on Firefox on dropdowns fixed -- Pagination made more responsive -- Modal now prevents scrolling -- Modal animation added -- Support for multiple modals added -- Programmatic control of FAB to open/close added -- Programmatic control of slider to play/pause added -- Plus many more bug fixes - -## v0.96.0 (April 1, 2015) -- Toasts, transitions, scrollfire added under Materialize namespace -- Dropdown is now created as a child of its parent -- Collapsibles supports nesting -- Modal Bottom Sheet added -- Indeterminate Checkboxes added -- New Checkbox Style added -- Text Inputs supports placeholder/readonly -- Google Inbox-like Collapsible added -- Text Character Counter added -- Waves no longer breaks on SVGs - -## v0.95.3 (Feb 25, 2015) -- Parallax image loading / responsiveness fixes -- Date picker supports month/year as dropdown -- Dismissable collection items -- Avatar collection items -- Pagination Added -- ScrollFire fixes - - -## v0.95.2 (Feb 10, 2015) -- Switches added -- Transition animation functions added -- ScrollFire Plugin added (fires functions dependent on scroll position) -- Responsive Video tag added -- Custom File Input Button added -- Modals has a fixed footer option -- SideNav implementation changed (needs 2 UL menus) -- Slider Responsive Fixes - - -## v0.95.1 (Jan 26, 2015) -- Sidenav Fixes -- Dropdown alignment/gutter options added -- Parallax fixes -- JavaScript Initialization no longer needed for many components -- HTML options through data-attributes -- Site colors can be defined through Primary and Secondary color in Sass -- Tables no longer resonsive by default - - -## v0.95.0 (Jan 17, 2015) -- Drag Out Menu fixed with Touch Interactions -- Toasts minor bugfix -- OL element has default styling -- Fullscreen Slider added -- Footer requires page-footer class -- Progress Bars added -- Form autofill support added -- Responsive Tables support added -- Scrollspy Plugin released -- Waves events are now delegated / behavior enhanced - - -## v0.94.0 (Dec 30, 2014) -- Sidenav supports right edge positioning -- Responsive Embeds -- Image Vertical align classes -- border-box added -- Variable file created -- Pushpin added -- Tooltips support all directions -- Layout helper classes added -- Materialbox Fixes -- Form Element Enhancements -- Navbar supports search bar -- Waves fixes -- Materialbox Captions -- Image Slider Fixes - - -## v0.93.1 (Dec 20, 2014) -- Flexbox Sticky Footer removed due to IE incompatibility - - -## v0.93.0 (Dec 19, 2014) -- Card Reveal -- Image Slider -- Dynamically loaded forms work correctly -- Badges added -- Circular Image -- Waves Fixes -- Footer Added -- Toast support Custom HTML -- Modals support programmatic opening/closing -- Responsive Image support - - -## v0.92.1 (Dec 14, 2014) -- Bower semver fix -- Added new radio button style - - -## v0.92.0 (Dec 13, 2014) -- Clicking icon in dropdown in navbar no longer closes dropdown immediately -- Multiple select inputs now work properly -- Mobile navbar no longer extends past screen width -- Parallax improved -- Modal restructured / can be opened programmatically -- Callbacks added to modals -- Added dist folder to repo -- Cards restructured - -## v0.91 (Dec 3, 2014) -- bug fixes to forms -- added waves color classes -- toast thickened to look better on mobile -- many other bug fixes - - -## v0.9 (Nov 30, 2014) -- Touch interactions added -- tons more... \ No newline at end of file diff --git a/production/bower_components/Materialize/CONTRIBUTING.md b/production/bower_components/Materialize/CONTRIBUTING.md deleted file mode 100644 index d9f4c4b..0000000 --- a/production/bower_components/Materialize/CONTRIBUTING.md +++ /dev/null @@ -1,93 +0,0 @@ -## Contributing -- Compiling Files - - `npm install` - - `grunt monitor`, this will compile .scss, .js., .jade files -- Documentation - - If you notice an error in the documentation, please edit the corresponding .html page under jade/page-contents/. -- Issues - - If you have an issue please make sure you document the problems in depth. - - Create screenshots of your issue and include a [Codepen](http://codepen.io/Dogfalo/pen/xbzPQV) of the problem where applicable - - Unclear issues with little explanations will be closed. - - Issues without a Codepen (where applicable) will be closed or ignored. -- Feature Requests - - We like feature requests but make sure that it can be seen within the goals of the project and not just something you need individually. Also you should try and give as much examples and details about the new feature as possible. -- Code Examples - - Use this [Codepen](http://codepen.io/Dogfalo/pen/xbzPQV) to illustrate your problem. - -## Contribution 101 -- Fork this repo to your own git -- Make your changes -- Submit a pull request with full remarks documenting your changes -- Pull request MAY then be accepted by project creators - -## Jasmine Testing Guide -**References:** -- [Jasmine Documentation](http://jasmine.github.io/2.0/introduction.html) -- [Grunt Jasmine Plugin](https://github.com/gruntjs/grunt-contrib-jasmine) -- [Example Jasmine Tests](https://github.com/Dogfalo/materialize/tree/master/tests/spec) -- [Travis CI](https://travis-ci.org/Dogfalo/materialize) - -Before you start, make sure you install grunt and all its dependencies. To verify you have all the correct dependencies you can run `grunt travis` and it will run the tests. If you get an errors and have not made any changes, it means you have not installed the proper dependencies. - -Materialize uses Jasmine as the testing framework. We also include a jQuery library which allows you to write tests using jQuery syntax. - -### Starting Out - -First to familiarize yourself with how the tests are structured, you can take a look inside the `tests/` directory. Each component should have its own folder. Follow the file-naming conventions that are used in the existing tests. - -Before writing tests, make sure you are working off of a clean git branch of your fork. This will greatly simplify the Pull Request process. - -### Writing Tests - -Before writing tests, make sure you understand what the expected-behavior of the component actually is. Reading over the component code and documentation will greatly aid you in this regard. - -Use `describe` blocks to section disparate portions of tests and `it` blocks inside those to further break up tests into features. Inside `it` blocks, you can have multiple except statements. As a general testing principle, be sure to try and test both the case and its “inverse” to lessen the chance for false positives. - -Example: -```javascript -expect(toast.first('span').text()).toBe('I am toast content'); -expect(toast.first('span').text()).not.toBe('I am toast'); -``` - -You can use beforeEach, and afterEach in either block to designate code that will execute before or after each item. This is useful if you need to setup some scenario for each test, or reset some things after each test. - -When writing expect statements (Jasmine’s form of assert), it is very important to write an expected behavior string so in the event of an error, the test that failed is very clear. - -Example: -```javascript -expect(toast.length).toBe(0, 'because toast should be removed by now'); -``` -When this expect statement fails it will list the reason as “because toast should be removed by now”. - -Because our components are very front end heavy, familiarize yourself with jQuery ways of interacting with the dom and our components. You can use methods like [trigger](http://api.jquery.com/trigger/), to simulate certain events like the user clicking a button. - -We also understand that testing CSS properties is pretty tough so you’ll have to be creative when writing good tests that ensure the styling is still working. Try and cover as many cases as you can but don’t worry if there are some edge cases. You can add comments describing some problematic edge cases in TODOs so we know about them. - -### Submitting Your Pull Request - -Try and keep your commit history clean and concise. Once you submit your pull request, [Travis CI](https://travis-ci.org/Dogfalo/materialize) will automatically run your tests and will show a checkmark to show that all the tests have passed. Once this is done, we’ll review your tests and code and make comments if there are issues or things we think could be improved. Then once everything looks good we’ll merge the code in! - - -### Useful Jasmine Tips - -1. To only run a specific spec at a time, to avoid wasting your time running all our other tests, you can set the flag `--filter`. For example: - ``` - `grunt travis --filter=tabs` - ``` - - This would only run specs with tabs in its name. - -2. If you need a timeout in your test (waiting for some animation or action to be executed) you need to use the done callback. In your `it()` behavior function set done as an argument to your anonymous function. Then you can use javascript’s window `setTimeout`s normally. And when you want the test to finish just call the `done()` function. For example: - - ```javascript - it ('should wait for a timeout', function(done) { - // Execute action - timeout(setTimeout(function() { - // Wait a second - // Test for result - done(); - }, 1000); - }); - ``` - - **Note:** If you add done as a callback, and you don’t call the `done()` function, it will stall forever and error after a max limit of around 5 seconds. \ No newline at end of file diff --git a/production/bower_components/Materialize/LICENSE b/production/bower_components/Materialize/LICENSE deleted file mode 100644 index 5038d18..0000000 --- a/production/bower_components/Materialize/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2016 Materialize - -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/production/bower_components/Materialize/bin/materialize.css b/production/bower_components/Materialize/bin/materialize.css deleted file mode 100644 index c320d41..0000000 --- a/production/bower_components/Materialize/bin/materialize.css +++ /dev/null @@ -1,8456 +0,0 @@ -.materialize-red { - background-color: #e51c23 !important; -} - -.materialize-red-text { - color: #e51c23 !important; -} - -.materialize-red.lighten-5 { - background-color: #fdeaeb !important; -} - -.materialize-red-text.text-lighten-5 { - color: #fdeaeb !important; -} - -.materialize-red.lighten-4 { - background-color: #f8c1c3 !important; -} - -.materialize-red-text.text-lighten-4 { - color: #f8c1c3 !important; -} - -.materialize-red.lighten-3 { - background-color: #f3989b !important; -} - -.materialize-red-text.text-lighten-3 { - color: #f3989b !important; -} - -.materialize-red.lighten-2 { - background-color: #ee6e73 !important; -} - -.materialize-red-text.text-lighten-2 { - color: #ee6e73 !important; -} - -.materialize-red.lighten-1 { - background-color: #ea454b !important; -} - -.materialize-red-text.text-lighten-1 { - color: #ea454b !important; -} - -.materialize-red.darken-1 { - background-color: #d0181e !important; -} - -.materialize-red-text.text-darken-1 { - color: #d0181e !important; -} - -.materialize-red.darken-2 { - background-color: #b9151b !important; -} - -.materialize-red-text.text-darken-2 { - color: #b9151b !important; -} - -.materialize-red.darken-3 { - background-color: #a21318 !important; -} - -.materialize-red-text.text-darken-3 { - color: #a21318 !important; -} - -.materialize-red.darken-4 { - background-color: #8b1014 !important; -} - -.materialize-red-text.text-darken-4 { - color: #8b1014 !important; -} - -.red { - background-color: #F44336 !important; -} - -.red-text { - color: #F44336 !important; -} - -.red.lighten-5 { - background-color: #FFEBEE !important; -} - -.red-text.text-lighten-5 { - color: #FFEBEE !important; -} - -.red.lighten-4 { - background-color: #FFCDD2 !important; -} - -.red-text.text-lighten-4 { - color: #FFCDD2 !important; -} - -.red.lighten-3 { - background-color: #EF9A9A !important; -} - -.red-text.text-lighten-3 { - color: #EF9A9A !important; -} - -.red.lighten-2 { - background-color: #E57373 !important; -} - -.red-text.text-lighten-2 { - color: #E57373 !important; -} - -.red.lighten-1 { - background-color: #EF5350 !important; -} - -.red-text.text-lighten-1 { - color: #EF5350 !important; -} - -.red.darken-1 { - background-color: #E53935 !important; -} - -.red-text.text-darken-1 { - color: #E53935 !important; -} - -.red.darken-2 { - background-color: #D32F2F !important; -} - -.red-text.text-darken-2 { - color: #D32F2F !important; -} - -.red.darken-3 { - background-color: #C62828 !important; -} - -.red-text.text-darken-3 { - color: #C62828 !important; -} - -.red.darken-4 { - background-color: #B71C1C !important; -} - -.red-text.text-darken-4 { - color: #B71C1C !important; -} - -.red.accent-1 { - background-color: #FF8A80 !important; -} - -.red-text.text-accent-1 { - color: #FF8A80 !important; -} - -.red.accent-2 { - background-color: #FF5252 !important; -} - -.red-text.text-accent-2 { - color: #FF5252 !important; -} - -.red.accent-3 { - background-color: #FF1744 !important; -} - -.red-text.text-accent-3 { - color: #FF1744 !important; -} - -.red.accent-4 { - background-color: #D50000 !important; -} - -.red-text.text-accent-4 { - color: #D50000 !important; -} - -.pink { - background-color: #e91e63 !important; -} - -.pink-text { - color: #e91e63 !important; -} - -.pink.lighten-5 { - background-color: #fce4ec !important; -} - -.pink-text.text-lighten-5 { - color: #fce4ec !important; -} - -.pink.lighten-4 { - background-color: #f8bbd0 !important; -} - -.pink-text.text-lighten-4 { - color: #f8bbd0 !important; -} - -.pink.lighten-3 { - background-color: #f48fb1 !important; -} - -.pink-text.text-lighten-3 { - color: #f48fb1 !important; -} - -.pink.lighten-2 { - background-color: #f06292 !important; -} - -.pink-text.text-lighten-2 { - color: #f06292 !important; -} - -.pink.lighten-1 { - background-color: #ec407a !important; -} - -.pink-text.text-lighten-1 { - color: #ec407a !important; -} - -.pink.darken-1 { - background-color: #d81b60 !important; -} - -.pink-text.text-darken-1 { - color: #d81b60 !important; -} - -.pink.darken-2 { - background-color: #c2185b !important; -} - -.pink-text.text-darken-2 { - color: #c2185b !important; -} - -.pink.darken-3 { - background-color: #ad1457 !important; -} - -.pink-text.text-darken-3 { - color: #ad1457 !important; -} - -.pink.darken-4 { - background-color: #880e4f !important; -} - -.pink-text.text-darken-4 { - color: #880e4f !important; -} - -.pink.accent-1 { - background-color: #ff80ab !important; -} - -.pink-text.text-accent-1 { - color: #ff80ab !important; -} - -.pink.accent-2 { - background-color: #ff4081 !important; -} - -.pink-text.text-accent-2 { - color: #ff4081 !important; -} - -.pink.accent-3 { - background-color: #f50057 !important; -} - -.pink-text.text-accent-3 { - color: #f50057 !important; -} - -.pink.accent-4 { - background-color: #c51162 !important; -} - -.pink-text.text-accent-4 { - color: #c51162 !important; -} - -.purple { - background-color: #9c27b0 !important; -} - -.purple-text { - color: #9c27b0 !important; -} - -.purple.lighten-5 { - background-color: #f3e5f5 !important; -} - -.purple-text.text-lighten-5 { - color: #f3e5f5 !important; -} - -.purple.lighten-4 { - background-color: #e1bee7 !important; -} - -.purple-text.text-lighten-4 { - color: #e1bee7 !important; -} - -.purple.lighten-3 { - background-color: #ce93d8 !important; -} - -.purple-text.text-lighten-3 { - color: #ce93d8 !important; -} - -.purple.lighten-2 { - background-color: #ba68c8 !important; -} - -.purple-text.text-lighten-2 { - color: #ba68c8 !important; -} - -.purple.lighten-1 { - background-color: #ab47bc !important; -} - -.purple-text.text-lighten-1 { - color: #ab47bc !important; -} - -.purple.darken-1 { - background-color: #8e24aa !important; -} - -.purple-text.text-darken-1 { - color: #8e24aa !important; -} - -.purple.darken-2 { - background-color: #7b1fa2 !important; -} - -.purple-text.text-darken-2 { - color: #7b1fa2 !important; -} - -.purple.darken-3 { - background-color: #6a1b9a !important; -} - -.purple-text.text-darken-3 { - color: #6a1b9a !important; -} - -.purple.darken-4 { - background-color: #4a148c !important; -} - -.purple-text.text-darken-4 { - color: #4a148c !important; -} - -.purple.accent-1 { - background-color: #ea80fc !important; -} - -.purple-text.text-accent-1 { - color: #ea80fc !important; -} - -.purple.accent-2 { - background-color: #e040fb !important; -} - -.purple-text.text-accent-2 { - color: #e040fb !important; -} - -.purple.accent-3 { - background-color: #d500f9 !important; -} - -.purple-text.text-accent-3 { - color: #d500f9 !important; -} - -.purple.accent-4 { - background-color: #aa00ff !important; -} - -.purple-text.text-accent-4 { - color: #aa00ff !important; -} - -.deep-purple { - background-color: #673ab7 !important; -} - -.deep-purple-text { - color: #673ab7 !important; -} - -.deep-purple.lighten-5 { - background-color: #ede7f6 !important; -} - -.deep-purple-text.text-lighten-5 { - color: #ede7f6 !important; -} - -.deep-purple.lighten-4 { - background-color: #d1c4e9 !important; -} - -.deep-purple-text.text-lighten-4 { - color: #d1c4e9 !important; -} - -.deep-purple.lighten-3 { - background-color: #b39ddb !important; -} - -.deep-purple-text.text-lighten-3 { - color: #b39ddb !important; -} - -.deep-purple.lighten-2 { - background-color: #9575cd !important; -} - -.deep-purple-text.text-lighten-2 { - color: #9575cd !important; -} - -.deep-purple.lighten-1 { - background-color: #7e57c2 !important; -} - -.deep-purple-text.text-lighten-1 { - color: #7e57c2 !important; -} - -.deep-purple.darken-1 { - background-color: #5e35b1 !important; -} - -.deep-purple-text.text-darken-1 { - color: #5e35b1 !important; -} - -.deep-purple.darken-2 { - background-color: #512da8 !important; -} - -.deep-purple-text.text-darken-2 { - color: #512da8 !important; -} - -.deep-purple.darken-3 { - background-color: #4527a0 !important; -} - -.deep-purple-text.text-darken-3 { - color: #4527a0 !important; -} - -.deep-purple.darken-4 { - background-color: #311b92 !important; -} - -.deep-purple-text.text-darken-4 { - color: #311b92 !important; -} - -.deep-purple.accent-1 { - background-color: #b388ff !important; -} - -.deep-purple-text.text-accent-1 { - color: #b388ff !important; -} - -.deep-purple.accent-2 { - background-color: #7c4dff !important; -} - -.deep-purple-text.text-accent-2 { - color: #7c4dff !important; -} - -.deep-purple.accent-3 { - background-color: #651fff !important; -} - -.deep-purple-text.text-accent-3 { - color: #651fff !important; -} - -.deep-purple.accent-4 { - background-color: #6200ea !important; -} - -.deep-purple-text.text-accent-4 { - color: #6200ea !important; -} - -.indigo { - background-color: #3f51b5 !important; -} - -.indigo-text { - color: #3f51b5 !important; -} - -.indigo.lighten-5 { - background-color: #e8eaf6 !important; -} - -.indigo-text.text-lighten-5 { - color: #e8eaf6 !important; -} - -.indigo.lighten-4 { - background-color: #c5cae9 !important; -} - -.indigo-text.text-lighten-4 { - color: #c5cae9 !important; -} - -.indigo.lighten-3 { - background-color: #9fa8da !important; -} - -.indigo-text.text-lighten-3 { - color: #9fa8da !important; -} - -.indigo.lighten-2 { - background-color: #7986cb !important; -} - -.indigo-text.text-lighten-2 { - color: #7986cb !important; -} - -.indigo.lighten-1 { - background-color: #5c6bc0 !important; -} - -.indigo-text.text-lighten-1 { - color: #5c6bc0 !important; -} - -.indigo.darken-1 { - background-color: #3949ab !important; -} - -.indigo-text.text-darken-1 { - color: #3949ab !important; -} - -.indigo.darken-2 { - background-color: #303f9f !important; -} - -.indigo-text.text-darken-2 { - color: #303f9f !important; -} - -.indigo.darken-3 { - background-color: #283593 !important; -} - -.indigo-text.text-darken-3 { - color: #283593 !important; -} - -.indigo.darken-4 { - background-color: #1a237e !important; -} - -.indigo-text.text-darken-4 { - color: #1a237e !important; -} - -.indigo.accent-1 { - background-color: #8c9eff !important; -} - -.indigo-text.text-accent-1 { - color: #8c9eff !important; -} - -.indigo.accent-2 { - background-color: #536dfe !important; -} - -.indigo-text.text-accent-2 { - color: #536dfe !important; -} - -.indigo.accent-3 { - background-color: #3d5afe !important; -} - -.indigo-text.text-accent-3 { - color: #3d5afe !important; -} - -.indigo.accent-4 { - background-color: #304ffe !important; -} - -.indigo-text.text-accent-4 { - color: #304ffe !important; -} - -.blue { - background-color: #2196F3 !important; -} - -.blue-text { - color: #2196F3 !important; -} - -.blue.lighten-5 { - background-color: #E3F2FD !important; -} - -.blue-text.text-lighten-5 { - color: #E3F2FD !important; -} - -.blue.lighten-4 { - background-color: #BBDEFB !important; -} - -.blue-text.text-lighten-4 { - color: #BBDEFB !important; -} - -.blue.lighten-3 { - background-color: #90CAF9 !important; -} - -.blue-text.text-lighten-3 { - color: #90CAF9 !important; -} - -.blue.lighten-2 { - background-color: #64B5F6 !important; -} - -.blue-text.text-lighten-2 { - color: #64B5F6 !important; -} - -.blue.lighten-1 { - background-color: #42A5F5 !important; -} - -.blue-text.text-lighten-1 { - color: #42A5F5 !important; -} - -.blue.darken-1 { - background-color: #1E88E5 !important; -} - -.blue-text.text-darken-1 { - color: #1E88E5 !important; -} - -.blue.darken-2 { - background-color: #1976D2 !important; -} - -.blue-text.text-darken-2 { - color: #1976D2 !important; -} - -.blue.darken-3 { - background-color: #1565C0 !important; -} - -.blue-text.text-darken-3 { - color: #1565C0 !important; -} - -.blue.darken-4 { - background-color: #0D47A1 !important; -} - -.blue-text.text-darken-4 { - color: #0D47A1 !important; -} - -.blue.accent-1 { - background-color: #82B1FF !important; -} - -.blue-text.text-accent-1 { - color: #82B1FF !important; -} - -.blue.accent-2 { - background-color: #448AFF !important; -} - -.blue-text.text-accent-2 { - color: #448AFF !important; -} - -.blue.accent-3 { - background-color: #2979FF !important; -} - -.blue-text.text-accent-3 { - color: #2979FF !important; -} - -.blue.accent-4 { - background-color: #2962FF !important; -} - -.blue-text.text-accent-4 { - color: #2962FF !important; -} - -.light-blue { - background-color: #03a9f4 !important; -} - -.light-blue-text { - color: #03a9f4 !important; -} - -.light-blue.lighten-5 { - background-color: #e1f5fe !important; -} - -.light-blue-text.text-lighten-5 { - color: #e1f5fe !important; -} - -.light-blue.lighten-4 { - background-color: #b3e5fc !important; -} - -.light-blue-text.text-lighten-4 { - color: #b3e5fc !important; -} - -.light-blue.lighten-3 { - background-color: #81d4fa !important; -} - -.light-blue-text.text-lighten-3 { - color: #81d4fa !important; -} - -.light-blue.lighten-2 { - background-color: #4fc3f7 !important; -} - -.light-blue-text.text-lighten-2 { - color: #4fc3f7 !important; -} - -.light-blue.lighten-1 { - background-color: #29b6f6 !important; -} - -.light-blue-text.text-lighten-1 { - color: #29b6f6 !important; -} - -.light-blue.darken-1 { - background-color: #039be5 !important; -} - -.light-blue-text.text-darken-1 { - color: #039be5 !important; -} - -.light-blue.darken-2 { - background-color: #0288d1 !important; -} - -.light-blue-text.text-darken-2 { - color: #0288d1 !important; -} - -.light-blue.darken-3 { - background-color: #0277bd !important; -} - -.light-blue-text.text-darken-3 { - color: #0277bd !important; -} - -.light-blue.darken-4 { - background-color: #01579b !important; -} - -.light-blue-text.text-darken-4 { - color: #01579b !important; -} - -.light-blue.accent-1 { - background-color: #80d8ff !important; -} - -.light-blue-text.text-accent-1 { - color: #80d8ff !important; -} - -.light-blue.accent-2 { - background-color: #40c4ff !important; -} - -.light-blue-text.text-accent-2 { - color: #40c4ff !important; -} - -.light-blue.accent-3 { - background-color: #00b0ff !important; -} - -.light-blue-text.text-accent-3 { - color: #00b0ff !important; -} - -.light-blue.accent-4 { - background-color: #0091ea !important; -} - -.light-blue-text.text-accent-4 { - color: #0091ea !important; -} - -.cyan { - background-color: #00bcd4 !important; -} - -.cyan-text { - color: #00bcd4 !important; -} - -.cyan.lighten-5 { - background-color: #e0f7fa !important; -} - -.cyan-text.text-lighten-5 { - color: #e0f7fa !important; -} - -.cyan.lighten-4 { - background-color: #b2ebf2 !important; -} - -.cyan-text.text-lighten-4 { - color: #b2ebf2 !important; -} - -.cyan.lighten-3 { - background-color: #80deea !important; -} - -.cyan-text.text-lighten-3 { - color: #80deea !important; -} - -.cyan.lighten-2 { - background-color: #4dd0e1 !important; -} - -.cyan-text.text-lighten-2 { - color: #4dd0e1 !important; -} - -.cyan.lighten-1 { - background-color: #26c6da !important; -} - -.cyan-text.text-lighten-1 { - color: #26c6da !important; -} - -.cyan.darken-1 { - background-color: #00acc1 !important; -} - -.cyan-text.text-darken-1 { - color: #00acc1 !important; -} - -.cyan.darken-2 { - background-color: #0097a7 !important; -} - -.cyan-text.text-darken-2 { - color: #0097a7 !important; -} - -.cyan.darken-3 { - background-color: #00838f !important; -} - -.cyan-text.text-darken-3 { - color: #00838f !important; -} - -.cyan.darken-4 { - background-color: #006064 !important; -} - -.cyan-text.text-darken-4 { - color: #006064 !important; -} - -.cyan.accent-1 { - background-color: #84ffff !important; -} - -.cyan-text.text-accent-1 { - color: #84ffff !important; -} - -.cyan.accent-2 { - background-color: #18ffff !important; -} - -.cyan-text.text-accent-2 { - color: #18ffff !important; -} - -.cyan.accent-3 { - background-color: #00e5ff !important; -} - -.cyan-text.text-accent-3 { - color: #00e5ff !important; -} - -.cyan.accent-4 { - background-color: #00b8d4 !important; -} - -.cyan-text.text-accent-4 { - color: #00b8d4 !important; -} - -.teal { - background-color: #009688 !important; -} - -.teal-text { - color: #009688 !important; -} - -.teal.lighten-5 { - background-color: #e0f2f1 !important; -} - -.teal-text.text-lighten-5 { - color: #e0f2f1 !important; -} - -.teal.lighten-4 { - background-color: #b2dfdb !important; -} - -.teal-text.text-lighten-4 { - color: #b2dfdb !important; -} - -.teal.lighten-3 { - background-color: #80cbc4 !important; -} - -.teal-text.text-lighten-3 { - color: #80cbc4 !important; -} - -.teal.lighten-2 { - background-color: #4db6ac !important; -} - -.teal-text.text-lighten-2 { - color: #4db6ac !important; -} - -.teal.lighten-1 { - background-color: #26a69a !important; -} - -.teal-text.text-lighten-1 { - color: #26a69a !important; -} - -.teal.darken-1 { - background-color: #00897b !important; -} - -.teal-text.text-darken-1 { - color: #00897b !important; -} - -.teal.darken-2 { - background-color: #00796b !important; -} - -.teal-text.text-darken-2 { - color: #00796b !important; -} - -.teal.darken-3 { - background-color: #00695c !important; -} - -.teal-text.text-darken-3 { - color: #00695c !important; -} - -.teal.darken-4 { - background-color: #004d40 !important; -} - -.teal-text.text-darken-4 { - color: #004d40 !important; -} - -.teal.accent-1 { - background-color: #a7ffeb !important; -} - -.teal-text.text-accent-1 { - color: #a7ffeb !important; -} - -.teal.accent-2 { - background-color: #64ffda !important; -} - -.teal-text.text-accent-2 { - color: #64ffda !important; -} - -.teal.accent-3 { - background-color: #1de9b6 !important; -} - -.teal-text.text-accent-3 { - color: #1de9b6 !important; -} - -.teal.accent-4 { - background-color: #00bfa5 !important; -} - -.teal-text.text-accent-4 { - color: #00bfa5 !important; -} - -.green { - background-color: #4CAF50 !important; -} - -.green-text { - color: #4CAF50 !important; -} - -.green.lighten-5 { - background-color: #E8F5E9 !important; -} - -.green-text.text-lighten-5 { - color: #E8F5E9 !important; -} - -.green.lighten-4 { - background-color: #C8E6C9 !important; -} - -.green-text.text-lighten-4 { - color: #C8E6C9 !important; -} - -.green.lighten-3 { - background-color: #A5D6A7 !important; -} - -.green-text.text-lighten-3 { - color: #A5D6A7 !important; -} - -.green.lighten-2 { - background-color: #81C784 !important; -} - -.green-text.text-lighten-2 { - color: #81C784 !important; -} - -.green.lighten-1 { - background-color: #66BB6A !important; -} - -.green-text.text-lighten-1 { - color: #66BB6A !important; -} - -.green.darken-1 { - background-color: #43A047 !important; -} - -.green-text.text-darken-1 { - color: #43A047 !important; -} - -.green.darken-2 { - background-color: #388E3C !important; -} - -.green-text.text-darken-2 { - color: #388E3C !important; -} - -.green.darken-3 { - background-color: #2E7D32 !important; -} - -.green-text.text-darken-3 { - color: #2E7D32 !important; -} - -.green.darken-4 { - background-color: #1B5E20 !important; -} - -.green-text.text-darken-4 { - color: #1B5E20 !important; -} - -.green.accent-1 { - background-color: #B9F6CA !important; -} - -.green-text.text-accent-1 { - color: #B9F6CA !important; -} - -.green.accent-2 { - background-color: #69F0AE !important; -} - -.green-text.text-accent-2 { - color: #69F0AE !important; -} - -.green.accent-3 { - background-color: #00E676 !important; -} - -.green-text.text-accent-3 { - color: #00E676 !important; -} - -.green.accent-4 { - background-color: #00C853 !important; -} - -.green-text.text-accent-4 { - color: #00C853 !important; -} - -.light-green { - background-color: #8bc34a !important; -} - -.light-green-text { - color: #8bc34a !important; -} - -.light-green.lighten-5 { - background-color: #f1f8e9 !important; -} - -.light-green-text.text-lighten-5 { - color: #f1f8e9 !important; -} - -.light-green.lighten-4 { - background-color: #dcedc8 !important; -} - -.light-green-text.text-lighten-4 { - color: #dcedc8 !important; -} - -.light-green.lighten-3 { - background-color: #c5e1a5 !important; -} - -.light-green-text.text-lighten-3 { - color: #c5e1a5 !important; -} - -.light-green.lighten-2 { - background-color: #aed581 !important; -} - -.light-green-text.text-lighten-2 { - color: #aed581 !important; -} - -.light-green.lighten-1 { - background-color: #9ccc65 !important; -} - -.light-green-text.text-lighten-1 { - color: #9ccc65 !important; -} - -.light-green.darken-1 { - background-color: #7cb342 !important; -} - -.light-green-text.text-darken-1 { - color: #7cb342 !important; -} - -.light-green.darken-2 { - background-color: #689f38 !important; -} - -.light-green-text.text-darken-2 { - color: #689f38 !important; -} - -.light-green.darken-3 { - background-color: #558b2f !important; -} - -.light-green-text.text-darken-3 { - color: #558b2f !important; -} - -.light-green.darken-4 { - background-color: #33691e !important; -} - -.light-green-text.text-darken-4 { - color: #33691e !important; -} - -.light-green.accent-1 { - background-color: #ccff90 !important; -} - -.light-green-text.text-accent-1 { - color: #ccff90 !important; -} - -.light-green.accent-2 { - background-color: #b2ff59 !important; -} - -.light-green-text.text-accent-2 { - color: #b2ff59 !important; -} - -.light-green.accent-3 { - background-color: #76ff03 !important; -} - -.light-green-text.text-accent-3 { - color: #76ff03 !important; -} - -.light-green.accent-4 { - background-color: #64dd17 !important; -} - -.light-green-text.text-accent-4 { - color: #64dd17 !important; -} - -.lime { - background-color: #cddc39 !important; -} - -.lime-text { - color: #cddc39 !important; -} - -.lime.lighten-5 { - background-color: #f9fbe7 !important; -} - -.lime-text.text-lighten-5 { - color: #f9fbe7 !important; -} - -.lime.lighten-4 { - background-color: #f0f4c3 !important; -} - -.lime-text.text-lighten-4 { - color: #f0f4c3 !important; -} - -.lime.lighten-3 { - background-color: #e6ee9c !important; -} - -.lime-text.text-lighten-3 { - color: #e6ee9c !important; -} - -.lime.lighten-2 { - background-color: #dce775 !important; -} - -.lime-text.text-lighten-2 { - color: #dce775 !important; -} - -.lime.lighten-1 { - background-color: #d4e157 !important; -} - -.lime-text.text-lighten-1 { - color: #d4e157 !important; -} - -.lime.darken-1 { - background-color: #c0ca33 !important; -} - -.lime-text.text-darken-1 { - color: #c0ca33 !important; -} - -.lime.darken-2 { - background-color: #afb42b !important; -} - -.lime-text.text-darken-2 { - color: #afb42b !important; -} - -.lime.darken-3 { - background-color: #9e9d24 !important; -} - -.lime-text.text-darken-3 { - color: #9e9d24 !important; -} - -.lime.darken-4 { - background-color: #827717 !important; -} - -.lime-text.text-darken-4 { - color: #827717 !important; -} - -.lime.accent-1 { - background-color: #f4ff81 !important; -} - -.lime-text.text-accent-1 { - color: #f4ff81 !important; -} - -.lime.accent-2 { - background-color: #eeff41 !important; -} - -.lime-text.text-accent-2 { - color: #eeff41 !important; -} - -.lime.accent-3 { - background-color: #c6ff00 !important; -} - -.lime-text.text-accent-3 { - color: #c6ff00 !important; -} - -.lime.accent-4 { - background-color: #aeea00 !important; -} - -.lime-text.text-accent-4 { - color: #aeea00 !important; -} - -.yellow { - background-color: #ffeb3b !important; -} - -.yellow-text { - color: #ffeb3b !important; -} - -.yellow.lighten-5 { - background-color: #fffde7 !important; -} - -.yellow-text.text-lighten-5 { - color: #fffde7 !important; -} - -.yellow.lighten-4 { - background-color: #fff9c4 !important; -} - -.yellow-text.text-lighten-4 { - color: #fff9c4 !important; -} - -.yellow.lighten-3 { - background-color: #fff59d !important; -} - -.yellow-text.text-lighten-3 { - color: #fff59d !important; -} - -.yellow.lighten-2 { - background-color: #fff176 !important; -} - -.yellow-text.text-lighten-2 { - color: #fff176 !important; -} - -.yellow.lighten-1 { - background-color: #ffee58 !important; -} - -.yellow-text.text-lighten-1 { - color: #ffee58 !important; -} - -.yellow.darken-1 { - background-color: #fdd835 !important; -} - -.yellow-text.text-darken-1 { - color: #fdd835 !important; -} - -.yellow.darken-2 { - background-color: #fbc02d !important; -} - -.yellow-text.text-darken-2 { - color: #fbc02d !important; -} - -.yellow.darken-3 { - background-color: #f9a825 !important; -} - -.yellow-text.text-darken-3 { - color: #f9a825 !important; -} - -.yellow.darken-4 { - background-color: #f57f17 !important; -} - -.yellow-text.text-darken-4 { - color: #f57f17 !important; -} - -.yellow.accent-1 { - background-color: #ffff8d !important; -} - -.yellow-text.text-accent-1 { - color: #ffff8d !important; -} - -.yellow.accent-2 { - background-color: #ffff00 !important; -} - -.yellow-text.text-accent-2 { - color: #ffff00 !important; -} - -.yellow.accent-3 { - background-color: #ffea00 !important; -} - -.yellow-text.text-accent-3 { - color: #ffea00 !important; -} - -.yellow.accent-4 { - background-color: #ffd600 !important; -} - -.yellow-text.text-accent-4 { - color: #ffd600 !important; -} - -.amber { - background-color: #ffc107 !important; -} - -.amber-text { - color: #ffc107 !important; -} - -.amber.lighten-5 { - background-color: #fff8e1 !important; -} - -.amber-text.text-lighten-5 { - color: #fff8e1 !important; -} - -.amber.lighten-4 { - background-color: #ffecb3 !important; -} - -.amber-text.text-lighten-4 { - color: #ffecb3 !important; -} - -.amber.lighten-3 { - background-color: #ffe082 !important; -} - -.amber-text.text-lighten-3 { - color: #ffe082 !important; -} - -.amber.lighten-2 { - background-color: #ffd54f !important; -} - -.amber-text.text-lighten-2 { - color: #ffd54f !important; -} - -.amber.lighten-1 { - background-color: #ffca28 !important; -} - -.amber-text.text-lighten-1 { - color: #ffca28 !important; -} - -.amber.darken-1 { - background-color: #ffb300 !important; -} - -.amber-text.text-darken-1 { - color: #ffb300 !important; -} - -.amber.darken-2 { - background-color: #ffa000 !important; -} - -.amber-text.text-darken-2 { - color: #ffa000 !important; -} - -.amber.darken-3 { - background-color: #ff8f00 !important; -} - -.amber-text.text-darken-3 { - color: #ff8f00 !important; -} - -.amber.darken-4 { - background-color: #ff6f00 !important; -} - -.amber-text.text-darken-4 { - color: #ff6f00 !important; -} - -.amber.accent-1 { - background-color: #ffe57f !important; -} - -.amber-text.text-accent-1 { - color: #ffe57f !important; -} - -.amber.accent-2 { - background-color: #ffd740 !important; -} - -.amber-text.text-accent-2 { - color: #ffd740 !important; -} - -.amber.accent-3 { - background-color: #ffc400 !important; -} - -.amber-text.text-accent-3 { - color: #ffc400 !important; -} - -.amber.accent-4 { - background-color: #ffab00 !important; -} - -.amber-text.text-accent-4 { - color: #ffab00 !important; -} - -.orange { - background-color: #ff9800 !important; -} - -.orange-text { - color: #ff9800 !important; -} - -.orange.lighten-5 { - background-color: #fff3e0 !important; -} - -.orange-text.text-lighten-5 { - color: #fff3e0 !important; -} - -.orange.lighten-4 { - background-color: #ffe0b2 !important; -} - -.orange-text.text-lighten-4 { - color: #ffe0b2 !important; -} - -.orange.lighten-3 { - background-color: #ffcc80 !important; -} - -.orange-text.text-lighten-3 { - color: #ffcc80 !important; -} - -.orange.lighten-2 { - background-color: #ffb74d !important; -} - -.orange-text.text-lighten-2 { - color: #ffb74d !important; -} - -.orange.lighten-1 { - background-color: #ffa726 !important; -} - -.orange-text.text-lighten-1 { - color: #ffa726 !important; -} - -.orange.darken-1 { - background-color: #fb8c00 !important; -} - -.orange-text.text-darken-1 { - color: #fb8c00 !important; -} - -.orange.darken-2 { - background-color: #f57c00 !important; -} - -.orange-text.text-darken-2 { - color: #f57c00 !important; -} - -.orange.darken-3 { - background-color: #ef6c00 !important; -} - -.orange-text.text-darken-3 { - color: #ef6c00 !important; -} - -.orange.darken-4 { - background-color: #e65100 !important; -} - -.orange-text.text-darken-4 { - color: #e65100 !important; -} - -.orange.accent-1 { - background-color: #ffd180 !important; -} - -.orange-text.text-accent-1 { - color: #ffd180 !important; -} - -.orange.accent-2 { - background-color: #ffab40 !important; -} - -.orange-text.text-accent-2 { - color: #ffab40 !important; -} - -.orange.accent-3 { - background-color: #ff9100 !important; -} - -.orange-text.text-accent-3 { - color: #ff9100 !important; -} - -.orange.accent-4 { - background-color: #ff6d00 !important; -} - -.orange-text.text-accent-4 { - color: #ff6d00 !important; -} - -.deep-orange { - background-color: #ff5722 !important; -} - -.deep-orange-text { - color: #ff5722 !important; -} - -.deep-orange.lighten-5 { - background-color: #fbe9e7 !important; -} - -.deep-orange-text.text-lighten-5 { - color: #fbe9e7 !important; -} - -.deep-orange.lighten-4 { - background-color: #ffccbc !important; -} - -.deep-orange-text.text-lighten-4 { - color: #ffccbc !important; -} - -.deep-orange.lighten-3 { - background-color: #ffab91 !important; -} - -.deep-orange-text.text-lighten-3 { - color: #ffab91 !important; -} - -.deep-orange.lighten-2 { - background-color: #ff8a65 !important; -} - -.deep-orange-text.text-lighten-2 { - color: #ff8a65 !important; -} - -.deep-orange.lighten-1 { - background-color: #ff7043 !important; -} - -.deep-orange-text.text-lighten-1 { - color: #ff7043 !important; -} - -.deep-orange.darken-1 { - background-color: #f4511e !important; -} - -.deep-orange-text.text-darken-1 { - color: #f4511e !important; -} - -.deep-orange.darken-2 { - background-color: #e64a19 !important; -} - -.deep-orange-text.text-darken-2 { - color: #e64a19 !important; -} - -.deep-orange.darken-3 { - background-color: #d84315 !important; -} - -.deep-orange-text.text-darken-3 { - color: #d84315 !important; -} - -.deep-orange.darken-4 { - background-color: #bf360c !important; -} - -.deep-orange-text.text-darken-4 { - color: #bf360c !important; -} - -.deep-orange.accent-1 { - background-color: #ff9e80 !important; -} - -.deep-orange-text.text-accent-1 { - color: #ff9e80 !important; -} - -.deep-orange.accent-2 { - background-color: #ff6e40 !important; -} - -.deep-orange-text.text-accent-2 { - color: #ff6e40 !important; -} - -.deep-orange.accent-3 { - background-color: #ff3d00 !important; -} - -.deep-orange-text.text-accent-3 { - color: #ff3d00 !important; -} - -.deep-orange.accent-4 { - background-color: #dd2c00 !important; -} - -.deep-orange-text.text-accent-4 { - color: #dd2c00 !important; -} - -.brown { - background-color: #795548 !important; -} - -.brown-text { - color: #795548 !important; -} - -.brown.lighten-5 { - background-color: #efebe9 !important; -} - -.brown-text.text-lighten-5 { - color: #efebe9 !important; -} - -.brown.lighten-4 { - background-color: #d7ccc8 !important; -} - -.brown-text.text-lighten-4 { - color: #d7ccc8 !important; -} - -.brown.lighten-3 { - background-color: #bcaaa4 !important; -} - -.brown-text.text-lighten-3 { - color: #bcaaa4 !important; -} - -.brown.lighten-2 { - background-color: #a1887f !important; -} - -.brown-text.text-lighten-2 { - color: #a1887f !important; -} - -.brown.lighten-1 { - background-color: #8d6e63 !important; -} - -.brown-text.text-lighten-1 { - color: #8d6e63 !important; -} - -.brown.darken-1 { - background-color: #6d4c41 !important; -} - -.brown-text.text-darken-1 { - color: #6d4c41 !important; -} - -.brown.darken-2 { - background-color: #5d4037 !important; -} - -.brown-text.text-darken-2 { - color: #5d4037 !important; -} - -.brown.darken-3 { - background-color: #4e342e !important; -} - -.brown-text.text-darken-3 { - color: #4e342e !important; -} - -.brown.darken-4 { - background-color: #3e2723 !important; -} - -.brown-text.text-darken-4 { - color: #3e2723 !important; -} - -.blue-grey { - background-color: #607d8b !important; -} - -.blue-grey-text { - color: #607d8b !important; -} - -.blue-grey.lighten-5 { - background-color: #eceff1 !important; -} - -.blue-grey-text.text-lighten-5 { - color: #eceff1 !important; -} - -.blue-grey.lighten-4 { - background-color: #cfd8dc !important; -} - -.blue-grey-text.text-lighten-4 { - color: #cfd8dc !important; -} - -.blue-grey.lighten-3 { - background-color: #b0bec5 !important; -} - -.blue-grey-text.text-lighten-3 { - color: #b0bec5 !important; -} - -.blue-grey.lighten-2 { - background-color: #90a4ae !important; -} - -.blue-grey-text.text-lighten-2 { - color: #90a4ae !important; -} - -.blue-grey.lighten-1 { - background-color: #78909c !important; -} - -.blue-grey-text.text-lighten-1 { - color: #78909c !important; -} - -.blue-grey.darken-1 { - background-color: #546e7a !important; -} - -.blue-grey-text.text-darken-1 { - color: #546e7a !important; -} - -.blue-grey.darken-2 { - background-color: #455a64 !important; -} - -.blue-grey-text.text-darken-2 { - color: #455a64 !important; -} - -.blue-grey.darken-3 { - background-color: #37474f !important; -} - -.blue-grey-text.text-darken-3 { - color: #37474f !important; -} - -.blue-grey.darken-4 { - background-color: #263238 !important; -} - -.blue-grey-text.text-darken-4 { - color: #263238 !important; -} - -.grey { - background-color: #9e9e9e !important; -} - -.grey-text { - color: #9e9e9e !important; -} - -.grey.lighten-5 { - background-color: #fafafa !important; -} - -.grey-text.text-lighten-5 { - color: #fafafa !important; -} - -.grey.lighten-4 { - background-color: #f5f5f5 !important; -} - -.grey-text.text-lighten-4 { - color: #f5f5f5 !important; -} - -.grey.lighten-3 { - background-color: #eeeeee !important; -} - -.grey-text.text-lighten-3 { - color: #eeeeee !important; -} - -.grey.lighten-2 { - background-color: #e0e0e0 !important; -} - -.grey-text.text-lighten-2 { - color: #e0e0e0 !important; -} - -.grey.lighten-1 { - background-color: #bdbdbd !important; -} - -.grey-text.text-lighten-1 { - color: #bdbdbd !important; -} - -.grey.darken-1 { - background-color: #757575 !important; -} - -.grey-text.text-darken-1 { - color: #757575 !important; -} - -.grey.darken-2 { - background-color: #616161 !important; -} - -.grey-text.text-darken-2 { - color: #616161 !important; -} - -.grey.darken-3 { - background-color: #424242 !important; -} - -.grey-text.text-darken-3 { - color: #424242 !important; -} - -.grey.darken-4 { - background-color: #212121 !important; -} - -.grey-text.text-darken-4 { - color: #212121 !important; -} - -.black { - background-color: #000000 !important; -} - -.black-text { - color: #000000 !important; -} - -.white { - background-color: #FFFFFF !important; -} - -.white-text { - color: #FFFFFF !important; -} - -.transparent { - background-color: transparent !important; -} - -.transparent-text { - color: transparent !important; -} - -/* ========================================================================== - Materialize variables - ========================================================================== */ -/** - * Table of Contents: - * - * 1. Colors - * 2. Badges - * 3. Buttons - * 4. Cards - * 5. Collapsible - * 6. Chips - * 7. Date Picker - * 8. Dropdown - * 10. Forms - * 11. Global - * 12. Grid - * 13. Navigation Bar - * 14. Side Navigation - * 15. Photo Slider - * 16. Spinners | Loaders - * 17. Tabs - * 18. Tables - * 19. Toasts - * 20. Typography - * 21. Footer - * 22. Flow Text - * 23. Collections - * 24. Progress Bar - */ -/* 1. Colors - ========================================================================== */ -/* 2. Badges - ========================================================================== */ -/* 3. Buttons - ========================================================================== */ -/* 4. Cards - ========================================================================== */ -/* 5. Collapsible - ========================================================================== */ -/* 6. Chips - ========================================================================== */ -/* 7. Date Picker - ========================================================================== */ -/* 8. Dropdown - ========================================================================== */ -/* 9. Fonts - ========================================================================== */ -/* 10. Forms - ========================================================================== */ -/* 11. Global - ========================================================================== */ -/* 12. Grid - ========================================================================== */ -/* 13. Navigation Bar - ========================================================================== */ -/* 14. Side Navigation - ========================================================================== */ -/* 15. Photo Slider - ========================================================================== */ -/* 16. Spinners | Loaders - ========================================================================== */ -/* 17. Tabs - ========================================================================== */ -/* 18. Tables - ========================================================================== */ -/* 19. Toasts - ========================================================================== */ -/* 20. Typography - ========================================================================== */ -/* 21. Footer - ========================================================================== */ -/* 22. Flow Text - ========================================================================== */ -/* 23. Collections - ========================================================================== */ -/* 24. Progress Bar - ========================================================================== */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ -} - -/** - * Remove default margin. - */ -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; -} - -/** - * Improve readability of focused elements when they are also in an - * active/hover state. - */ -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ -hr { - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - box-sizing: content-box; - /* 2 */ -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} - -html { - box-sizing: border-box; -} - -*, *:before, *:after { - box-sizing: inherit; -} - -ul { - padding: 0; - list-style-type: none; -} - -ul.browser-default, -ul.browser-default li { - list-style-type: initial; -} - -ul li { - list-style-type: none; -} - -a { - color: #039be5; - text-decoration: none; - -webkit-tap-highlight-color: transparent; -} - -.valign-wrapper { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} - -.valign-wrapper .valign { - display: block; -} - -.clearfix { - clear: both; -} - -.z-depth-0 { - box-shadow: none !important; -} - -.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav { - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); -} - -.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover { - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); -} - -.z-depth-2 { - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); -} - -.z-depth-3 { - box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); -} - -.z-depth-4, .modal { - box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); -} - -.z-depth-5 { - box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); -} - -.hoverable { - transition: box-shadow .25s; - box-shadow: 0; -} - -.hoverable:hover { - transition: box-shadow .25s; - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); -} - -.divider { - height: 1px; - overflow: hidden; - background-color: #e0e0e0; -} - -blockquote { - margin: 20px 0; - padding-left: 1.5rem; - border-left: 5px solid #ee6e73; -} - -i { - line-height: inherit; -} - -i.left { - float: left; - margin-right: 15px; -} - -i.right { - float: right; - margin-left: 15px; -} - -i.tiny { - font-size: 1rem; -} - -i.small { - font-size: 2rem; -} - -i.medium { - font-size: 4rem; -} - -i.large { - font-size: 6rem; -} - -img.responsive-img, -video.responsive-video { - max-width: 100%; - height: auto; -} - -.pagination li { - display: inline-block; - border-radius: 2px; - text-align: center; - vertical-align: top; - height: 30px; -} - -.pagination li a { - color: #444; - display: inline-block; - font-size: 1.2rem; - padding: 0 10px; - line-height: 30px; -} - -.pagination li.active a { - color: #fff; -} - -.pagination li.active { - background-color: #ee6e73; -} - -.pagination li.disabled a { - cursor: default; - color: #999; -} - -.pagination li i { - font-size: 2rem; -} - -.pagination li.pages ul li { - display: inline-block; - float: none; -} - -@media only screen and (max-width: 992px) { - .pagination { - width: 100%; - } - .pagination li.prev, - .pagination li.next { - width: 10%; - } - .pagination li.pages { - width: 80%; - overflow: hidden; - white-space: nowrap; - } -} - -.breadcrumb { - font-size: 18px; - color: rgba(255, 255, 255, 0.7); -} - -.breadcrumb i, -.breadcrumb [class^="mdi-"], .breadcrumb [class*="mdi-"], -.breadcrumb i.material-icons { - display: inline-block; - float: left; - font-size: 24px; -} - -.breadcrumb:before { - content: '\E5CC'; - color: rgba(255, 255, 255, 0.7); - vertical-align: top; - display: inline-block; - font-family: 'Material Icons'; - font-weight: normal; - font-style: normal; - font-size: 25px; - margin: 0 10px 0 8px; - -webkit-font-smoothing: antialiased; -} - -.breadcrumb:first-child:before { - display: none; -} - -.breadcrumb:last-child { - color: #fff; -} - -.parallax-container { - position: relative; - overflow: hidden; - height: 500px; -} - -.parallax { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; -} - -.parallax img { - display: none; - position: absolute; - left: 50%; - bottom: 0; - min-width: 100%; - min-height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transform: translateX(-50%); - transform: translateX(-50%); -} - -.pin-top, .pin-bottom { - position: relative; -} - -.pinned { - position: fixed !important; -} - -/********************* - Transition Classes -**********************/ -ul.staggered-list li { - opacity: 0; -} - -.fade-in { - opacity: 0; - -webkit-transform-origin: 0 50%; - transform-origin: 0 50%; -} - -/********************* - Media Query Classes -**********************/ -@media only screen and (max-width: 600px) { - .hide-on-small-only, .hide-on-small-and-down { - display: none !important; - } -} - -@media only screen and (max-width: 992px) { - .hide-on-med-and-down { - display: none !important; - } -} - -@media only screen and (min-width: 601px) { - .hide-on-med-and-up { - display: none !important; - } -} - -@media only screen and (min-width: 600px) and (max-width: 992px) { - .hide-on-med-only { - display: none !important; - } -} - -@media only screen and (min-width: 993px) { - .hide-on-large-only { - display: none !important; - } -} - -@media only screen and (min-width: 993px) { - .show-on-large { - display: block !important; - } -} - -@media only screen and (min-width: 600px) and (max-width: 992px) { - .show-on-medium { - display: block !important; - } -} - -@media only screen and (max-width: 600px) { - .show-on-small { - display: block !important; - } -} - -@media only screen and (min-width: 601px) { - .show-on-medium-and-up { - display: block !important; - } -} - -@media only screen and (max-width: 992px) { - .show-on-medium-and-down { - display: block !important; - } -} - -@media only screen and (max-width: 600px) { - .center-on-small-only { - text-align: center; - } -} - -footer.page-footer { - margin-top: 20px; - padding-top: 20px; - background-color: #ee6e73; -} - -footer.page-footer .footer-copyright { - overflow: hidden; - height: 50px; - line-height: 50px; - color: rgba(255, 255, 255, 0.8); - background-color: rgba(51, 51, 51, 0.08); -} - -table, th, td { - border: none; -} - -table { - width: 100%; - display: table; -} - -table.bordered > thead > tr, -table.bordered > tbody > tr { - border-bottom: 1px solid #d0d0d0; -} - -table.striped > tbody > tr:nth-child(odd) { - background-color: #f2f2f2; -} - -table.striped > tbody > tr > td { - border-radius: 0; -} - -table.highlight > tbody > tr { - transition: background-color .25s ease; -} - -table.highlight > tbody > tr:hover { - background-color: #f2f2f2; -} - -table.centered thead tr th, table.centered tbody tr td { - text-align: center; -} - -thead { - border-bottom: 1px solid #d0d0d0; -} - -td, th { - padding: 15px 5px; - display: table-cell; - text-align: left; - vertical-align: middle; - border-radius: 2px; -} - -@media only screen and (max-width: 992px) { - table.responsive-table { - width: 100%; - border-collapse: collapse; - border-spacing: 0; - display: block; - position: relative; - /* sort out borders */ - } - table.responsive-table td:empty:before { - content: '\00a0'; - } - table.responsive-table th, - table.responsive-table td { - margin: 0; - vertical-align: top; - } - table.responsive-table th { - text-align: left; - } - table.responsive-table thead { - display: block; - float: left; - } - table.responsive-table thead tr { - display: block; - padding: 0 10px 0 0; - } - table.responsive-table thead tr th::before { - content: "\00a0"; - } - table.responsive-table tbody { - display: block; - width: auto; - position: relative; - overflow-x: auto; - white-space: nowrap; - } - table.responsive-table tbody tr { - display: inline-block; - vertical-align: top; - } - table.responsive-table th { - display: block; - text-align: right; - } - table.responsive-table td { - display: block; - min-height: 1.25em; - text-align: left; - } - table.responsive-table tr { - padding: 0 10px; - } - table.responsive-table thead { - border: 0; - border-right: 1px solid #d0d0d0; - } - table.responsive-table.bordered th { - border-bottom: 0; - border-left: 0; - } - table.responsive-table.bordered td { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - table.responsive-table.bordered tr { - border: 0; - } - table.responsive-table.bordered tbody tr { - border-right: 1px solid #d0d0d0; - } -} - -.collection { - margin: 0.5rem 0 1rem 0; - border: 1px solid #e0e0e0; - border-radius: 2px; - overflow: hidden; - position: relative; -} - -.collection .collection-item { - background-color: #fff; - line-height: 1.5rem; - padding: 10px 20px; - margin: 0; - border-bottom: 1px solid #e0e0e0; -} - -.collection .collection-item.avatar { - min-height: 84px; - padding-left: 72px; - position: relative; -} - -.collection .collection-item.avatar .circle { - position: absolute; - width: 42px; - height: 42px; - overflow: hidden; - left: 15px; - display: inline-block; - vertical-align: middle; -} - -.collection .collection-item.avatar i.circle { - font-size: 18px; - line-height: 42px; - color: #fff; - background-color: #999; - text-align: center; -} - -.collection .collection-item.avatar .title { - font-size: 16px; -} - -.collection .collection-item.avatar p { - margin: 0; -} - -.collection .collection-item.avatar .secondary-content { - position: absolute; - top: 16px; - right: 16px; -} - -.collection .collection-item:last-child { - border-bottom: none; -} - -.collection .collection-item.active { - background-color: #26a69a; - color: #eafaf9; -} - -.collection .collection-item.active .secondary-content { - color: #fff; -} - -.collection a.collection-item { - display: block; - transition: .25s; - color: #26a69a; -} - -.collection a.collection-item:not(.active):hover { - background-color: #ddd; -} - -.collection.with-header .collection-header { - background-color: #fff; - border-bottom: 1px solid #e0e0e0; - padding: 10px 20px; -} - -.collection.with-header .collection-item { - padding-left: 30px; -} - -.collection.with-header .collection-item.avatar { - padding-left: 72px; -} - -.secondary-content { - float: right; - color: #26a69a; -} - -.collapsible .collection { - margin: 0; - border: none; -} - -span.badge { - min-width: 3rem; - padding: 0 6px; - text-align: center; - font-size: 1rem; - line-height: inherit; - color: #757575; - position: absolute; - right: 15px; - box-sizing: border-box; -} - -span.badge.new { - font-weight: 300; - font-size: 0.8rem; - color: #fff; - background-color: #26a69a; - border-radius: 2px; -} - -span.badge.new:after { - content: " new"; -} - -span.badge[data-badge-caption]::after { - content: " " attr(data-badge-caption); -} - -nav ul a span.badge { - position: static; - margin-left: 4px; - line-height: 0; -} - -.video-container { - position: relative; - padding-bottom: 56.25%; - height: 0; - overflow: hidden; -} - -.video-container iframe, .video-container object, .video-container embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.progress { - position: relative; - height: 4px; - display: block; - width: 100%; - background-color: #acece6; - border-radius: 2px; - margin: 0.5rem 0 1rem 0; - overflow: hidden; -} - -.progress .determinate { - position: absolute; - top: 0; - left: 0; - bottom: 0; - background-color: #26a69a; - transition: width .3s linear; -} - -.progress .indeterminate { - background-color: #26a69a; -} - -.progress .indeterminate:before { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left: 0; - bottom: 0; - will-change: left, right; - -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; -} - -.progress .indeterminate:after { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left: 0; - bottom: 0; - will-change: left, right; - -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - -webkit-animation-delay: 1.15s; - animation-delay: 1.15s; -} - -@-webkit-keyframes indeterminate { - 0% { - left: -35%; - right: 100%; - } - 60% { - left: 100%; - right: -90%; - } - 100% { - left: 100%; - right: -90%; - } -} - -@keyframes indeterminate { - 0% { - left: -35%; - right: 100%; - } - 60% { - left: 100%; - right: -90%; - } - 100% { - left: 100%; - right: -90%; - } -} - -@-webkit-keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; - } - 60% { - left: 107%; - right: -8%; - } - 100% { - left: 107%; - right: -8%; - } -} - -@keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; - } - 60% { - left: 107%; - right: -8%; - } - 100% { - left: 107%; - right: -8%; - } -} - -/******************* - Utility Classes -*******************/ -.hide { - display: none !important; -} - -.left-align { - text-align: left; -} - -.right-align { - text-align: right; -} - -.center, .center-align { - text-align: center; -} - -.left { - float: left !important; -} - -.right { - float: right !important; -} - -.no-select, input[type=range], -input[type=range] + .thumb { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.circle { - border-radius: 50%; -} - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} - -.truncate { - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.no-padding { - padding: 0 !important; -} - -/* This is needed for some mobile phones to display the Google Icon font properly */ -.material-icons { - text-rendering: optimizeLegibility; - -webkit-font-feature-settings: 'liga'; - -moz-font-feature-settings: 'liga'; - font-feature-settings: 'liga'; -} - -.container { - margin: 0 auto; - max-width: 1280px; - width: 90%; -} - -@media only screen and (min-width: 601px) { - .container { - width: 85%; - } -} - -@media only screen and (min-width: 993px) { - .container { - width: 70%; - } -} - -.container .row { - margin-left: -0.75rem; - margin-right: -0.75rem; -} - -.section { - padding-top: 1rem; - padding-bottom: 1rem; -} - -.section.no-pad { - padding: 0; -} - -.section.no-pad-bot { - padding-bottom: 0; -} - -.section.no-pad-top { - padding-top: 0; -} - -.row { - margin-left: auto; - margin-right: auto; - margin-bottom: 20px; -} - -.row:after { - content: ""; - display: table; - clear: both; -} - -.row .col { - float: left; - box-sizing: border-box; - padding: 0 0.75rem; - min-height: 1px; -} - -.row .col[class*="push-"], .row .col[class*="pull-"] { - position: relative; -} - -.row .col.s1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.offset-s1 { - margin-left: 8.3333333333%; -} - -.row .col.pull-s1 { - right: 8.3333333333%; -} - -.row .col.push-s1 { - left: 8.3333333333%; -} - -.row .col.offset-s2 { - margin-left: 16.6666666667%; -} - -.row .col.pull-s2 { - right: 16.6666666667%; -} - -.row .col.push-s2 { - left: 16.6666666667%; -} - -.row .col.offset-s3 { - margin-left: 25%; -} - -.row .col.pull-s3 { - right: 25%; -} - -.row .col.push-s3 { - left: 25%; -} - -.row .col.offset-s4 { - margin-left: 33.3333333333%; -} - -.row .col.pull-s4 { - right: 33.3333333333%; -} - -.row .col.push-s4 { - left: 33.3333333333%; -} - -.row .col.offset-s5 { - margin-left: 41.6666666667%; -} - -.row .col.pull-s5 { - right: 41.6666666667%; -} - -.row .col.push-s5 { - left: 41.6666666667%; -} - -.row .col.offset-s6 { - margin-left: 50%; -} - -.row .col.pull-s6 { - right: 50%; -} - -.row .col.push-s6 { - left: 50%; -} - -.row .col.offset-s7 { - margin-left: 58.3333333333%; -} - -.row .col.pull-s7 { - right: 58.3333333333%; -} - -.row .col.push-s7 { - left: 58.3333333333%; -} - -.row .col.offset-s8 { - margin-left: 66.6666666667%; -} - -.row .col.pull-s8 { - right: 66.6666666667%; -} - -.row .col.push-s8 { - left: 66.6666666667%; -} - -.row .col.offset-s9 { - margin-left: 75%; -} - -.row .col.pull-s9 { - right: 75%; -} - -.row .col.push-s9 { - left: 75%; -} - -.row .col.offset-s10 { - margin-left: 83.3333333333%; -} - -.row .col.pull-s10 { - right: 83.3333333333%; -} - -.row .col.push-s10 { - left: 83.3333333333%; -} - -.row .col.offset-s11 { - margin-left: 91.6666666667%; -} - -.row .col.pull-s11 { - right: 91.6666666667%; -} - -.row .col.push-s11 { - left: 91.6666666667%; -} - -.row .col.offset-s12 { - margin-left: 100%; -} - -.row .col.pull-s12 { - right: 100%; -} - -.row .col.push-s12 { - left: 100%; -} - -@media only screen and (min-width: 601px) { - .row .col.m1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.offset-m1 { - margin-left: 8.3333333333%; - } - .row .col.pull-m1 { - right: 8.3333333333%; - } - .row .col.push-m1 { - left: 8.3333333333%; - } - .row .col.offset-m2 { - margin-left: 16.6666666667%; - } - .row .col.pull-m2 { - right: 16.6666666667%; - } - .row .col.push-m2 { - left: 16.6666666667%; - } - .row .col.offset-m3 { - margin-left: 25%; - } - .row .col.pull-m3 { - right: 25%; - } - .row .col.push-m3 { - left: 25%; - } - .row .col.offset-m4 { - margin-left: 33.3333333333%; - } - .row .col.pull-m4 { - right: 33.3333333333%; - } - .row .col.push-m4 { - left: 33.3333333333%; - } - .row .col.offset-m5 { - margin-left: 41.6666666667%; - } - .row .col.pull-m5 { - right: 41.6666666667%; - } - .row .col.push-m5 { - left: 41.6666666667%; - } - .row .col.offset-m6 { - margin-left: 50%; - } - .row .col.pull-m6 { - right: 50%; - } - .row .col.push-m6 { - left: 50%; - } - .row .col.offset-m7 { - margin-left: 58.3333333333%; - } - .row .col.pull-m7 { - right: 58.3333333333%; - } - .row .col.push-m7 { - left: 58.3333333333%; - } - .row .col.offset-m8 { - margin-left: 66.6666666667%; - } - .row .col.pull-m8 { - right: 66.6666666667%; - } - .row .col.push-m8 { - left: 66.6666666667%; - } - .row .col.offset-m9 { - margin-left: 75%; - } - .row .col.pull-m9 { - right: 75%; - } - .row .col.push-m9 { - left: 75%; - } - .row .col.offset-m10 { - margin-left: 83.3333333333%; - } - .row .col.pull-m10 { - right: 83.3333333333%; - } - .row .col.push-m10 { - left: 83.3333333333%; - } - .row .col.offset-m11 { - margin-left: 91.6666666667%; - } - .row .col.pull-m11 { - right: 91.6666666667%; - } - .row .col.push-m11 { - left: 91.6666666667%; - } - .row .col.offset-m12 { - margin-left: 100%; - } - .row .col.pull-m12 { - right: 100%; - } - .row .col.push-m12 { - left: 100%; - } -} - -@media only screen and (min-width: 993px) { - .row .col.l1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.offset-l1 { - margin-left: 8.3333333333%; - } - .row .col.pull-l1 { - right: 8.3333333333%; - } - .row .col.push-l1 { - left: 8.3333333333%; - } - .row .col.offset-l2 { - margin-left: 16.6666666667%; - } - .row .col.pull-l2 { - right: 16.6666666667%; - } - .row .col.push-l2 { - left: 16.6666666667%; - } - .row .col.offset-l3 { - margin-left: 25%; - } - .row .col.pull-l3 { - right: 25%; - } - .row .col.push-l3 { - left: 25%; - } - .row .col.offset-l4 { - margin-left: 33.3333333333%; - } - .row .col.pull-l4 { - right: 33.3333333333%; - } - .row .col.push-l4 { - left: 33.3333333333%; - } - .row .col.offset-l5 { - margin-left: 41.6666666667%; - } - .row .col.pull-l5 { - right: 41.6666666667%; - } - .row .col.push-l5 { - left: 41.6666666667%; - } - .row .col.offset-l6 { - margin-left: 50%; - } - .row .col.pull-l6 { - right: 50%; - } - .row .col.push-l6 { - left: 50%; - } - .row .col.offset-l7 { - margin-left: 58.3333333333%; - } - .row .col.pull-l7 { - right: 58.3333333333%; - } - .row .col.push-l7 { - left: 58.3333333333%; - } - .row .col.offset-l8 { - margin-left: 66.6666666667%; - } - .row .col.pull-l8 { - right: 66.6666666667%; - } - .row .col.push-l8 { - left: 66.6666666667%; - } - .row .col.offset-l9 { - margin-left: 75%; - } - .row .col.pull-l9 { - right: 75%; - } - .row .col.push-l9 { - left: 75%; - } - .row .col.offset-l10 { - margin-left: 83.3333333333%; - } - .row .col.pull-l10 { - right: 83.3333333333%; - } - .row .col.push-l10 { - left: 83.3333333333%; - } - .row .col.offset-l11 { - margin-left: 91.6666666667%; - } - .row .col.pull-l11 { - right: 91.6666666667%; - } - .row .col.push-l11 { - left: 91.6666666667%; - } - .row .col.offset-l12 { - margin-left: 100%; - } - .row .col.pull-l12 { - right: 100%; - } - .row .col.push-l12 { - left: 100%; - } -} - -nav { - color: #fff; - background-color: #ee6e73; - width: 100%; - height: 56px; - line-height: 56px; -} - -nav a { - color: #fff; -} - -nav i, -nav [class^="mdi-"], nav [class*="mdi-"], -nav i.material-icons { - display: block; - font-size: 2rem; - height: 56px; - line-height: 56px; -} - -nav .nav-wrapper { - position: relative; - height: 100%; -} - -@media only screen and (min-width: 993px) { - nav a.button-collapse { - display: none; - } -} - -nav .button-collapse { - float: left; - position: relative; - z-index: 1; - height: 56px; -} - -nav .button-collapse i { - font-size: 2.7rem; - height: 56px; - line-height: 56px; -} - -nav .brand-logo { - position: absolute; - color: #fff; - display: inline-block; - font-size: 2.1rem; - padding: 0; - white-space: nowrap; -} - -nav .brand-logo.center { - left: 50%; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); -} - -@media only screen and (max-width: 992px) { - nav .brand-logo { - left: 50%; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); - } - nav .brand-logo.left, nav .brand-logo.right { - padding: 0; - -webkit-transform: none; - transform: none; - } - nav .brand-logo.left { - left: 0.5rem; - } - nav .brand-logo.right { - right: 0.5rem; - left: auto; - } -} - -nav .brand-logo.right { - right: 0.5rem; - padding: 0; -} - -nav .brand-logo i, -nav .brand-logo [class^="mdi-"], nav .brand-logo [class*="mdi-"], -nav .brand-logo i.material-icons { - float: left; - margin-right: 15px; -} - -nav ul { - margin: 0; -} - -nav ul li { - transition: background-color .3s; - float: left; - padding: 0; -} - -nav ul li.active { - background-color: rgba(0, 0, 0, 0.1); -} - -nav ul a { - transition: background-color .3s; - font-size: 1rem; - color: #fff; - display: block; - padding: 0 15px; - cursor: pointer; -} - -nav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating { - margin-top: -2px; - margin-left: 15px; - margin-right: 15px; -} - -nav ul a:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -nav ul.left { - float: left; -} - -nav form { - height: 100%; -} - -nav .input-field { - margin: 0; - height: 100%; -} - -nav .input-field input { - height: 100%; - font-size: 1.2rem; - border: none; - padding-left: 2rem; -} - -nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid { - border: none; - box-shadow: none; -} - -nav .input-field label { - top: 0; - left: 0; -} - -nav .input-field label i { - color: rgba(255, 255, 255, 0.7); - transition: color .3s; -} - -nav .input-field label.active i { - color: #fff; -} - -nav .input-field label.active { - -webkit-transform: translateY(0); - transform: translateY(0); -} - -.navbar-fixed { - position: relative; - height: 56px; - z-index: 998; -} - -.navbar-fixed nav { - position: fixed; -} - -@media only screen and (min-width: 601px) { - nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i { - height: 64px; - line-height: 64px; - } - .navbar-fixed { - height: 64px; - } -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Thin), url("../fonts/roboto/Roboto-Thin.eot"); - src: url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../fonts/roboto/Roboto-Thin.woff") format("woff"), url("../fonts/roboto/Roboto-Thin.ttf") format("truetype"); - font-weight: 200; -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Light), url("../fonts/roboto/Roboto-Light.eot"); - src: url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../fonts/roboto/Roboto-Light.woff") format("woff"), url("../fonts/roboto/Roboto-Light.ttf") format("truetype"); - font-weight: 300; -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Regular), url("../fonts/roboto/Roboto-Regular.eot"); - src: url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../fonts/roboto/Roboto-Regular.woff") format("woff"), url("../fonts/roboto/Roboto-Regular.ttf") format("truetype"); - font-weight: 400; -} - -@font-face { - font-family: "Roboto"; - src: url("../fonts/roboto/Roboto-Medium.eot"); - src: url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../fonts/roboto/Roboto-Medium.woff") format("woff"), url("../fonts/roboto/Roboto-Medium.ttf") format("truetype"); - font-weight: 500; -} - -@font-face { - font-family: "Roboto"; - src: url("../fonts/roboto/Roboto-Bold.eot"); - src: url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../fonts/roboto/Roboto-Bold.woff") format("woff"), url("../fonts/roboto/Roboto-Bold.ttf") format("truetype"); - font-weight: 700; -} - -a { - text-decoration: none; -} - -html { - line-height: 1.5; - font-family: "Roboto", sans-serif; - font-weight: normal; - color: rgba(0, 0, 0, 0.87); -} - -@media only screen and (min-width: 0) { - html { - font-size: 14px; - } -} - -@media only screen and (min-width: 992px) { - html { - font-size: 14.5px; - } -} - -@media only screen and (min-width: 1200px) { - html { - font-size: 15px; - } -} - -h1, h2, h3, h4, h5, h6 { - font-weight: 400; - line-height: 1.1; -} - -h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - font-weight: inherit; -} - -h1 { - font-size: 4.2rem; - line-height: 110%; - margin: 2.1rem 0 1.68rem 0; -} - -h2 { - font-size: 3.56rem; - line-height: 110%; - margin: 1.78rem 0 1.424rem 0; -} - -h3 { - font-size: 2.92rem; - line-height: 110%; - margin: 1.46rem 0 1.168rem 0; -} - -h4 { - font-size: 2.28rem; - line-height: 110%; - margin: 1.14rem 0 0.912rem 0; -} - -h5 { - font-size: 1.64rem; - line-height: 110%; - margin: 0.82rem 0 0.656rem 0; -} - -h6 { - font-size: 1rem; - line-height: 110%; - margin: 0.5rem 0 0.4rem 0; -} - -em { - font-style: italic; -} - -strong { - font-weight: 500; -} - -small { - font-size: 75%; -} - -.light, footer.page-footer .footer-copyright { - font-weight: 300; -} - -.thin { - font-weight: 200; -} - -.flow-text { - font-weight: 300; -} - -@media only screen and (min-width: 360px) { - .flow-text { - font-size: 1.2rem; - } -} - -@media only screen and (min-width: 390px) { - .flow-text { - font-size: 1.224rem; - } -} - -@media only screen and (min-width: 420px) { - .flow-text { - font-size: 1.248rem; - } -} - -@media only screen and (min-width: 450px) { - .flow-text { - font-size: 1.272rem; - } -} - -@media only screen and (min-width: 480px) { - .flow-text { - font-size: 1.296rem; - } -} - -@media only screen and (min-width: 510px) { - .flow-text { - font-size: 1.32rem; - } -} - -@media only screen and (min-width: 540px) { - .flow-text { - font-size: 1.344rem; - } -} - -@media only screen and (min-width: 570px) { - .flow-text { - font-size: 1.368rem; - } -} - -@media only screen and (min-width: 600px) { - .flow-text { - font-size: 1.392rem; - } -} - -@media only screen and (min-width: 630px) { - .flow-text { - font-size: 1.416rem; - } -} - -@media only screen and (min-width: 660px) { - .flow-text { - font-size: 1.44rem; - } -} - -@media only screen and (min-width: 690px) { - .flow-text { - font-size: 1.464rem; - } -} - -@media only screen and (min-width: 720px) { - .flow-text { - font-size: 1.488rem; - } -} - -@media only screen and (min-width: 750px) { - .flow-text { - font-size: 1.512rem; - } -} - -@media only screen and (min-width: 780px) { - .flow-text { - font-size: 1.536rem; - } -} - -@media only screen and (min-width: 810px) { - .flow-text { - font-size: 1.56rem; - } -} - -@media only screen and (min-width: 840px) { - .flow-text { - font-size: 1.584rem; - } -} - -@media only screen and (min-width: 870px) { - .flow-text { - font-size: 1.608rem; - } -} - -@media only screen and (min-width: 900px) { - .flow-text { - font-size: 1.632rem; - } -} - -@media only screen and (min-width: 930px) { - .flow-text { - font-size: 1.656rem; - } -} - -@media only screen and (min-width: 960px) { - .flow-text { - font-size: 1.68rem; - } -} - -@media only screen and (max-width: 360px) { - .flow-text { - font-size: 1.2rem; - } -} - -.card-panel { - transition: box-shadow .25s; - padding: 20px; - margin: 0.5rem 0 1rem 0; - border-radius: 2px; - background-color: #fff; -} - -.card { - position: relative; - margin: 0.5rem 0 1rem 0; - background-color: #fff; - transition: box-shadow .25s; - border-radius: 2px; -} - -.card .card-title { - font-size: 24px; - font-weight: 300; -} - -.card .card-title.activator { - cursor: pointer; -} - -.card.small, .card.medium, .card.large { - position: relative; -} - -.card.small .card-image, .card.medium .card-image, .card.large .card-image { - max-height: 60%; - overflow: hidden; -} - -.card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content { - max-height: 40%; -} - -.card.small .card-content, .card.medium .card-content, .card.large .card-content { - max-height: 100%; - overflow: hidden; -} - -.card.small .card-action, .card.medium .card-action, .card.large .card-action { - position: absolute; - bottom: 0; - left: 0; - right: 0; -} - -.card.small { - height: 300px; -} - -.card.medium { - height: 400px; -} - -.card.large { - height: 500px; -} - -.card.horizontal { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} - -.card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image { - height: 100%; - max-height: none; - overflow: visible; -} - -.card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img { - height: 100%; -} - -.card.horizontal .card-image { - max-width: 50%; -} - -.card.horizontal .card-image img { - max-width: 100%; - width: auto; -} - -.card.horizontal .card-stacked { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - position: relative; -} - -.card.horizontal .card-stacked .card-content { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} - -.card.sticky-action .card-action { - z-index: 2; -} - -.card.sticky-action .card-reveal { - z-index: 1; - padding-bottom: 64px; -} - -.card .card-image { - position: relative; -} - -.card .card-image img { - display: block; - border-radius: 2px 2px 0 0; - position: relative; - left: 0; - right: 0; - top: 0; - bottom: 0; - width: 100%; -} - -.card .card-image .card-title { - color: #fff; - position: absolute; - bottom: 0; - left: 0; - padding: 20px; -} - -.card .card-content { - padding: 20px; - border-radius: 0 0 2px 2px; -} - -.card .card-content p { - margin: 0; - color: inherit; -} - -.card .card-content .card-title { - line-height: 48px; -} - -.card .card-action { - position: relative; - background-color: inherit; - border-top: 1px solid rgba(160, 160, 160, 0.2); - padding: 20px; -} - -.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating) { - color: #ffab40; - margin-right: 20px; - transition: color .3s ease; - text-transform: uppercase; -} - -.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating):hover { - color: #ffd8a6; -} - -.card .card-reveal { - padding: 20px; - position: absolute; - background-color: #fff; - width: 100%; - overflow-y: auto; - top: 100%; - height: 100%; - z-index: 3; - display: none; -} - -.card .card-reveal .card-title { - cursor: pointer; - display: block; -} - -#toast-container { - display: block; - position: fixed; - z-index: 10000; -} - -@media only screen and (max-width: 600px) { - #toast-container { - min-width: 100%; - bottom: 0%; - } -} - -@media only screen and (min-width: 601px) and (max-width: 992px) { - #toast-container { - left: 5%; - bottom: 7%; - max-width: 90%; - } -} - -@media only screen and (min-width: 993px) { - #toast-container { - top: 10%; - right: 7%; - max-width: 86%; - } -} - -.toast { - border-radius: 2px; - top: 0; - width: auto; - clear: both; - margin-top: 10px; - position: relative; - max-width: 100%; - height: auto; - min-height: 48px; - line-height: 1.5em; - word-break: break-all; - background-color: #323232; - padding: 10px 25px; - font-size: 1.1rem; - font-weight: 300; - color: #fff; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.toast .btn, .toast .btn-large, .toast .btn-flat { - margin: 0; - margin-left: 3rem; -} - -.toast.rounded { - border-radius: 24px; -} - -@media only screen and (max-width: 600px) { - .toast { - width: 100%; - border-radius: 0; - } -} - -@media only screen and (min-width: 601px) and (max-width: 992px) { - .toast { - float: left; - } -} - -@media only screen and (min-width: 993px) { - .toast { - float: right; - } -} - -.tabs { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - position: relative; - overflow-x: auto; - overflow-y: hidden; - height: 48px; - background-color: #fff; - margin: 0 auto; - width: 100%; - white-space: nowrap; -} - -.tabs .tab { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - display: block; - float: left; - text-align: center; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: uppercase; - text-overflow: ellipsis; - overflow: hidden; - letter-spacing: .8px; - width: 15%; - min-width: 80px; -} - -.tabs .tab a { - color: #ee6e73; - display: block; - width: 100%; - height: 100%; - text-overflow: ellipsis; - overflow: hidden; - transition: color .28s ease; -} - -.tabs .tab a:hover { - color: #f9c9cb; -} - -.tabs .tab.disabled a { - color: #f9c9cb; - cursor: default; -} - -.tabs .indicator { - position: absolute; - bottom: 0; - height: 2px; - background-color: #f6b2b5; - will-change: left, right; -} - -.material-tooltip { - padding: 10px 8px; - font-size: 1rem; - z-index: 2000; - background-color: transparent; - border-radius: 2px; - color: #fff; - min-height: 36px; - line-height: 120%; - opacity: 0; - display: none; - position: absolute; - text-align: center; - max-width: calc(100% - 4px); - overflow: hidden; - left: 0; - top: 0; - pointer-events: none; -} - -.backdrop { - position: absolute; - opacity: 0; - display: none; - height: 7px; - width: 14px; - border-radius: 0 0 50% 50%; - background-color: #323232; - z-index: -1; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} - -.btn, .btn-large, -.btn-flat { - border: none; - border-radius: 2px; - display: inline-block; - height: 36px; - line-height: 36px; - outline: 0; - padding: 0 2rem; - text-transform: uppercase; - vertical-align: middle; - -webkit-tap-highlight-color: transparent; -} - -.btn.disabled, .disabled.btn-large, -.btn-floating.disabled, -.btn-large.disabled, -.btn:disabled, -.btn-large:disabled, -.btn-large:disabled, -.btn-floating:disabled, -.btn[disabled], -[disabled].btn-large, -.btn-large[disabled], -.btn-floating[disabled] { - background-color: #DFDFDF !important; - box-shadow: none; - color: #9F9F9F !important; - cursor: default; -} - -.btn.disabled *, .disabled.btn-large *, -.btn-floating.disabled *, -.btn-large.disabled *, -.btn:disabled *, .btn-large:disabled *, -.btn-large:disabled *, -.btn-floating:disabled *, -.btn[disabled] *, [disabled].btn-large *, -.btn-large[disabled] *, -.btn-floating[disabled] * { - pointer-events: none; -} - -.btn.disabled:hover, .disabled.btn-large:hover, -.btn-floating.disabled:hover, -.btn-large.disabled:hover, -.btn:disabled:hover, -.btn-large:disabled:hover, -.btn-large:disabled:hover, -.btn-floating:disabled:hover, -.btn[disabled]:hover, -[disabled].btn-large:hover, -.btn-large[disabled]:hover, -.btn-floating[disabled]:hover { - background-color: #DFDFDF !important; - color: #9F9F9F !important; -} - -.btn i, .btn-large i, -.btn-floating i, -.btn-large i, -.btn-flat i { - font-size: 1.3rem; - line-height: inherit; -} - -.btn, .btn-large { - text-decoration: none; - color: #fff; - background-color: #26a69a; - text-align: center; - letter-spacing: .5px; - transition: .2s ease-out; - cursor: pointer; -} - -.btn:hover, .btn-large:hover { - background-color: #2bbbad; -} - -.btn-floating { - display: inline-block; - color: #fff; - position: relative; - overflow: hidden; - z-index: 1; - width: 37px; - height: 37px; - line-height: 37px; - padding: 0; - background-color: #26a69a; - border-radius: 50%; - transition: .3s; - cursor: pointer; - vertical-align: middle; -} - -.btn-floating i { - width: inherit; - display: inline-block; - text-align: center; - color: #fff; - font-size: 1.6rem; - line-height: 37px; -} - -.btn-floating:hover { - background-color: #26a69a; -} - -.btn-floating:before { - border-radius: 0; -} - -.btn-floating.btn-large { - width: 55.5px; - height: 55.5px; -} - -.btn-floating.btn-large i { - line-height: 55.5px; -} - -button.btn-floating { - border: none; -} - -.fixed-action-btn { - position: fixed; - right: 23px; - bottom: 23px; - padding-top: 15px; - margin-bottom: 0; - z-index: 998; -} - -.fixed-action-btn.active ul { - visibility: visible; -} - -.fixed-action-btn.horizontal { - padding: 0 0 0 15px; -} - -.fixed-action-btn.horizontal ul { - text-align: right; - right: 64px; - top: 50%; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); - height: 100%; - left: auto; - width: 500px; - /*width 100% only goes to width of button container */ -} - -.fixed-action-btn.horizontal ul li { - display: inline-block; - margin: 15px 15px 0 0; -} - -.fixed-action-btn ul { - left: 0; - right: 0; - text-align: center; - position: absolute; - bottom: 64px; - margin: 0; - visibility: hidden; -} - -.fixed-action-btn ul li { - margin-bottom: 15px; -} - -.fixed-action-btn ul a.btn-floating { - opacity: 0; -} - -.btn-flat { - box-shadow: none; - background-color: transparent; - color: #343434; - cursor: pointer; - transition: background-color .2s; -} - -.btn-flat:focus, .btn-flat:active { - background-color: transparent; -} - -.btn-flat:hover { - background-color: rgba(0, 0, 0, 0.1); - box-shadow: none; -} - -.btn-flat.disabled { - color: #b3b3b3; - cursor: default; -} - -.btn-large { - height: 54px; - line-height: 54px; -} - -.btn-large i { - font-size: 1.6rem; -} - -.btn-block { - display: block; -} - -.dropdown-content { - background-color: #fff; - margin: 0; - display: none; - min-width: 100px; - max-height: 650px; - overflow-y: auto; - opacity: 0; - position: absolute; - z-index: 999; - will-change: width, height; -} - -.dropdown-content li { - clear: both; - color: rgba(0, 0, 0, 0.87); - cursor: pointer; - min-height: 50px; - line-height: 1.5rem; - width: 100%; - text-align: left; - text-transform: none; -} - -.dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected { - background-color: #eee; -} - -.dropdown-content li.active.selected { - background-color: #e1e1e1; -} - -.dropdown-content li.divider { - min-height: 0; - height: 1px; -} - -.dropdown-content li > a, .dropdown-content li > span { - font-size: 16px; - color: #26a69a; - display: block; - line-height: 22px; - padding: 14px 16px; -} - -.dropdown-content li > span > label { - top: 1px; - left: 3px; - height: 18px; -} - -.dropdown-content li > a > i { - height: inherit; - line-height: inherit; -} - -/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ -.waves-effect { - position: relative; - cursor: pointer; - display: inline-block; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: transparent; - vertical-align: middle; - z-index: 1; - will-change: opacity, transform; - transition: all .3s ease-out; -} - -.waves-effect .waves-ripple { - position: absolute; - border-radius: 50%; - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - opacity: 0; - background: rgba(0, 0, 0, 0.2); - transition: all 0.7s ease-out; - transition-property: opacity, -webkit-transform; - transition-property: transform, opacity; - transition-property: transform, opacity, -webkit-transform; - -webkit-transform: scale(0); - transform: scale(0); - pointer-events: none; -} - -.waves-effect.waves-light .waves-ripple { - background-color: rgba(255, 255, 255, 0.45); -} - -.waves-effect.waves-red .waves-ripple { - background-color: rgba(244, 67, 54, 0.7); -} - -.waves-effect.waves-yellow .waves-ripple { - background-color: rgba(255, 235, 59, 0.7); -} - -.waves-effect.waves-orange .waves-ripple { - background-color: rgba(255, 152, 0, 0.7); -} - -.waves-effect.waves-purple .waves-ripple { - background-color: rgba(156, 39, 176, 0.7); -} - -.waves-effect.waves-green .waves-ripple { - background-color: rgba(76, 175, 80, 0.7); -} - -.waves-effect.waves-teal .waves-ripple { - background-color: rgba(0, 150, 136, 0.7); -} - -.waves-effect input[type="button"], .waves-effect input[type="reset"], .waves-effect input[type="submit"] { - border: 0; - font-style: normal; - font-size: inherit; - text-transform: inherit; - background: none; -} - -.waves-effect img { - position: relative; - z-index: -1; -} - -.waves-notransition { - transition: none !important; -} - -.waves-circle { - -webkit-transform: translateZ(0); - transform: translateZ(0); - -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); -} - -.waves-input-wrapper { - border-radius: 0.2em; - vertical-align: bottom; -} - -.waves-input-wrapper .waves-button-input { - position: relative; - top: 0; - left: 0; - z-index: 1; -} - -.waves-circle { - text-align: center; - width: 2.5em; - height: 2.5em; - line-height: 2.5em; - border-radius: 50%; - -webkit-mask-image: none; -} - -.waves-block { - display: block; -} - -/* Firefox Bug: link not triggered */ -.waves-effect .waves-ripple { - z-index: -1; -} - -.modal { - display: none; - position: fixed; - left: 0; - right: 0; - background-color: #fafafa; - padding: 0; - max-height: 70%; - width: 55%; - margin: auto; - overflow-y: auto; - border-radius: 2px; - will-change: top, opacity; -} - -@media only screen and (max-width: 992px) { - .modal { - width: 80%; - } -} - -.modal h1, .modal h2, .modal h3, .modal h4 { - margin-top: 0; -} - -.modal .modal-content { - padding: 24px; -} - -.modal .modal-close { - cursor: pointer; -} - -.modal .modal-footer { - border-radius: 0 0 2px 2px; - background-color: #fafafa; - padding: 4px 6px; - height: 56px; - width: 100%; -} - -.modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat { - float: right; - margin: 6px 0; -} - -.lean-overlay { - position: fixed; - z-index: 999; - top: -100px; - left: 0; - bottom: 0; - right: 0; - height: 125%; - width: 100%; - background: #000; - display: none; - will-change: opacity; -} - -.modal.modal-fixed-footer { - padding: 0; - height: 70%; -} - -.modal.modal-fixed-footer .modal-content { - position: absolute; - height: calc(100% - 56px); - max-height: 100%; - width: 100%; - overflow-y: auto; -} - -.modal.modal-fixed-footer .modal-footer { - border-top: 1px solid rgba(0, 0, 0, 0.1); - position: absolute; - bottom: 0; -} - -.modal.bottom-sheet { - top: auto; - bottom: -100%; - margin: 0; - width: 100%; - max-height: 45%; - border-radius: 0; - will-change: bottom, opacity; -} - -.collapsible { - border-top: 1px solid #ddd; - border-right: 1px solid #ddd; - border-left: 1px solid #ddd; - margin: 0.5rem 0 1rem 0; -} - -.collapsible-header { - display: block; - cursor: pointer; - min-height: 3rem; - line-height: 3rem; - padding: 0 1rem; - background-color: #fff; - border-bottom: 1px solid #ddd; -} - -.collapsible-header i { - width: 2rem; - font-size: 1.6rem; - line-height: 3rem; - display: block; - float: left; - text-align: center; - margin-right: 1rem; -} - -.collapsible-body { - display: none; - border-bottom: 1px solid #ddd; - box-sizing: border-box; -} - -.collapsible-body p { - margin: 0; - padding: 2rem; -} - -.side-nav .collapsible, -.side-nav.fixed .collapsible { - border: none; - box-shadow: none; -} - -.side-nav .collapsible li, -.side-nav.fixed .collapsible li { - padding: 0; -} - -.side-nav .collapsible-header, -.side-nav.fixed .collapsible-header { - background-color: transparent; - border: none; - line-height: inherit; - height: inherit; - padding: 0 16px; -} - -.side-nav .collapsible-header:hover, -.side-nav.fixed .collapsible-header:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.side-nav .collapsible-header i, -.side-nav.fixed .collapsible-header i { - line-height: inherit; -} - -.side-nav .collapsible-body, -.side-nav.fixed .collapsible-body { - border: 0; - background-color: #fff; -} - -.side-nav .collapsible-body li a, -.side-nav.fixed .collapsible-body li a { - padding: 0 23.5px 0 31px; -} - -.collapsible.popout { - border: none; - box-shadow: none; -} - -.collapsible.popout > li { - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); - margin: 0 24px; - transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94); -} - -.collapsible.popout > li.active { - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); - margin: 16px 0; -} - -.chip { - display: inline-block; - height: 32px; - font-size: 13px; - font-weight: 500; - color: rgba(0, 0, 0, 0.6); - line-height: 32px; - padding: 0 12px; - border-radius: 16px; - background-color: #e4e4e4; - margin-bottom: 5px; - margin-right: 5px; -} - -.chip img { - float: left; - margin: 0 8px 0 -12px; - height: 32px; - width: 32px; - border-radius: 50%; -} - -.chip .close { - cursor: pointer; - float: right; - font-size: 16px; - line-height: 32px; - padding-left: 8px; -} - -.chips { - border: none; - border-bottom: 1px solid #9e9e9e; - box-shadow: none; - margin-bottom: 30px; - min-height: 45px; - outline: none; - padding-bottom: 5px; - transition: all .3s; -} - -.chips.focus { - border-bottom: 1px solid #26a69a; - box-shadow: 0 1px 0 0 #26a69a; -} - -.chips:hover { - cursor: text; -} - -.chips .chip.selected { - background-color: #26a69a; - color: #fff; -} - -.chips .input { - background: none; - border: 0; - color: rgba(0, 0, 0, 0.6); - display: inline-block; - font-size: 13px; - font-weight: 500; - height: 32px; - margin-right: 20px; - line-height: 32px; - outline: 0; - padding: 0 !important; - width: 120px !important; -} - -.chips .input:focus { - border: 0 !important; - box-shadow: none !important; -} - -.materialboxed { - display: block; - cursor: -webkit-zoom-in; - cursor: zoom-in; - position: relative; - transition: opacity .4s; -} - -.materialboxed:hover { - will-change: left, top, width, height; -} - -.materialboxed:hover:not(.active) { - opacity: .8; -} - -.materialboxed.active { - cursor: -webkit-zoom-out; - cursor: zoom-out; -} - -#materialbox-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #292929; - z-index: 1000; - will-change: opacity; -} - -.materialbox-caption { - position: fixed; - display: none; - color: #fff; - line-height: 50px; - bottom: 0; - width: 100%; - text-align: center; - padding: 0% 15%; - height: 50px; - z-index: 1000; - -webkit-font-smoothing: antialiased; -} - -select:focus { - outline: 1px solid #c9f3ef; -} - -button:focus { - outline: none; - background-color: #2ab7a9; -} - -label { - font-size: 0.8rem; - color: #9e9e9e; -} - -/* Text Inputs + Textarea - ========================================================================== */ -/* Style Placeholders */ -::-webkit-input-placeholder { - color: #d1d1d1; -} - -:-moz-placeholder { - /* Firefox 18- */ - color: #d1d1d1; -} - -::-moz-placeholder { - /* Firefox 19+ */ - color: #d1d1d1; -} - -:-ms-input-placeholder { - color: #d1d1d1; -} - -/* Text inputs */ -input:not([type]), -input[type=text], -input[type=password], -input[type=email], -input[type=url], -input[type=time], -input[type=date], -input[type=datetime], -input[type=datetime-local], -input[type=tel], -input[type=number], -input[type=search], -textarea.materialize-textarea { - background-color: transparent; - border: none; - border-bottom: 1px solid #9e9e9e; - border-radius: 0; - outline: none; - height: 3rem; - width: 100%; - font-size: 1rem; - margin: 0 0 20px 0; - padding: 0; - box-shadow: none; - box-sizing: content-box; - transition: all 0.3s; -} - -input:not([type]):disabled, input:not([type])[readonly="readonly"], -input[type=text]:disabled, -input[type=text][readonly="readonly"], -input[type=password]:disabled, -input[type=password][readonly="readonly"], -input[type=email]:disabled, -input[type=email][readonly="readonly"], -input[type=url]:disabled, -input[type=url][readonly="readonly"], -input[type=time]:disabled, -input[type=time][readonly="readonly"], -input[type=date]:disabled, -input[type=date][readonly="readonly"], -input[type=datetime]:disabled, -input[type=datetime][readonly="readonly"], -input[type=datetime-local]:disabled, -input[type=datetime-local][readonly="readonly"], -input[type=tel]:disabled, -input[type=tel][readonly="readonly"], -input[type=number]:disabled, -input[type=number][readonly="readonly"], -input[type=search]:disabled, -input[type=search][readonly="readonly"], -textarea.materialize-textarea:disabled, -textarea.materialize-textarea[readonly="readonly"] { - color: rgba(0, 0, 0, 0.26); - border-bottom: 1px dotted rgba(0, 0, 0, 0.26); -} - -input:not([type]):disabled + label, -input:not([type])[readonly="readonly"] + label, -input[type=text]:disabled + label, -input[type=text][readonly="readonly"] + label, -input[type=password]:disabled + label, -input[type=password][readonly="readonly"] + label, -input[type=email]:disabled + label, -input[type=email][readonly="readonly"] + label, -input[type=url]:disabled + label, -input[type=url][readonly="readonly"] + label, -input[type=time]:disabled + label, -input[type=time][readonly="readonly"] + label, -input[type=date]:disabled + label, -input[type=date][readonly="readonly"] + label, -input[type=datetime]:disabled + label, -input[type=datetime][readonly="readonly"] + label, -input[type=datetime-local]:disabled + label, -input[type=datetime-local][readonly="readonly"] + label, -input[type=tel]:disabled + label, -input[type=tel][readonly="readonly"] + label, -input[type=number]:disabled + label, -input[type=number][readonly="readonly"] + label, -input[type=search]:disabled + label, -input[type=search][readonly="readonly"] + label, -textarea.materialize-textarea:disabled + label, -textarea.materialize-textarea[readonly="readonly"] + label { - color: rgba(0, 0, 0, 0.26); -} - -input:not([type]):focus:not([readonly]), -input[type=text]:focus:not([readonly]), -input[type=password]:focus:not([readonly]), -input[type=email]:focus:not([readonly]), -input[type=url]:focus:not([readonly]), -input[type=time]:focus:not([readonly]), -input[type=date]:focus:not([readonly]), -input[type=datetime]:focus:not([readonly]), -input[type=datetime-local]:focus:not([readonly]), -input[type=tel]:focus:not([readonly]), -input[type=number]:focus:not([readonly]), -input[type=search]:focus:not([readonly]), -textarea.materialize-textarea:focus:not([readonly]) { - border-bottom: 1px solid #26a69a; - box-shadow: 0 1px 0 0 #26a69a; -} - -input:not([type]):focus:not([readonly]) + label, -input[type=text]:focus:not([readonly]) + label, -input[type=password]:focus:not([readonly]) + label, -input[type=email]:focus:not([readonly]) + label, -input[type=url]:focus:not([readonly]) + label, -input[type=time]:focus:not([readonly]) + label, -input[type=date]:focus:not([readonly]) + label, -input[type=datetime]:focus:not([readonly]) + label, -input[type=datetime-local]:focus:not([readonly]) + label, -input[type=tel]:focus:not([readonly]) + label, -input[type=number]:focus:not([readonly]) + label, -input[type=search]:focus:not([readonly]) + label, -textarea.materialize-textarea:focus:not([readonly]) + label { - color: #26a69a; -} - -input:not([type]).valid, input:not([type]):focus.valid, -input[type=text].valid, -input[type=text]:focus.valid, -input[type=password].valid, -input[type=password]:focus.valid, -input[type=email].valid, -input[type=email]:focus.valid, -input[type=url].valid, -input[type=url]:focus.valid, -input[type=time].valid, -input[type=time]:focus.valid, -input[type=date].valid, -input[type=date]:focus.valid, -input[type=datetime].valid, -input[type=datetime]:focus.valid, -input[type=datetime-local].valid, -input[type=datetime-local]:focus.valid, -input[type=tel].valid, -input[type=tel]:focus.valid, -input[type=number].valid, -input[type=number]:focus.valid, -input[type=search].valid, -input[type=search]:focus.valid, -textarea.materialize-textarea.valid, -textarea.materialize-textarea:focus.valid { - border-bottom: 1px solid #4CAF50; - box-shadow: 0 1px 0 0 #4CAF50; -} - -input:not([type]).valid + label:after, -input:not([type]):focus.valid + label:after, -input[type=text].valid + label:after, -input[type=text]:focus.valid + label:after, -input[type=password].valid + label:after, -input[type=password]:focus.valid + label:after, -input[type=email].valid + label:after, -input[type=email]:focus.valid + label:after, -input[type=url].valid + label:after, -input[type=url]:focus.valid + label:after, -input[type=time].valid + label:after, -input[type=time]:focus.valid + label:after, -input[type=date].valid + label:after, -input[type=date]:focus.valid + label:after, -input[type=datetime].valid + label:after, -input[type=datetime]:focus.valid + label:after, -input[type=datetime-local].valid + label:after, -input[type=datetime-local]:focus.valid + label:after, -input[type=tel].valid + label:after, -input[type=tel]:focus.valid + label:after, -input[type=number].valid + label:after, -input[type=number]:focus.valid + label:after, -input[type=search].valid + label:after, -input[type=search]:focus.valid + label:after, -textarea.materialize-textarea.valid + label:after, -textarea.materialize-textarea:focus.valid + label:after { - content: attr(data-success); - color: #4CAF50; - opacity: 1; -} - -input:not([type]).invalid, input:not([type]):focus.invalid, -input[type=text].invalid, -input[type=text]:focus.invalid, -input[type=password].invalid, -input[type=password]:focus.invalid, -input[type=email].invalid, -input[type=email]:focus.invalid, -input[type=url].invalid, -input[type=url]:focus.invalid, -input[type=time].invalid, -input[type=time]:focus.invalid, -input[type=date].invalid, -input[type=date]:focus.invalid, -input[type=datetime].invalid, -input[type=datetime]:focus.invalid, -input[type=datetime-local].invalid, -input[type=datetime-local]:focus.invalid, -input[type=tel].invalid, -input[type=tel]:focus.invalid, -input[type=number].invalid, -input[type=number]:focus.invalid, -input[type=search].invalid, -input[type=search]:focus.invalid, -textarea.materialize-textarea.invalid, -textarea.materialize-textarea:focus.invalid { - border-bottom: 1px solid #F44336; - box-shadow: 0 1px 0 0 #F44336; -} - -input:not([type]).invalid + label:after, -input:not([type]):focus.invalid + label:after, -input[type=text].invalid + label:after, -input[type=text]:focus.invalid + label:after, -input[type=password].invalid + label:after, -input[type=password]:focus.invalid + label:after, -input[type=email].invalid + label:after, -input[type=email]:focus.invalid + label:after, -input[type=url].invalid + label:after, -input[type=url]:focus.invalid + label:after, -input[type=time].invalid + label:after, -input[type=time]:focus.invalid + label:after, -input[type=date].invalid + label:after, -input[type=date]:focus.invalid + label:after, -input[type=datetime].invalid + label:after, -input[type=datetime]:focus.invalid + label:after, -input[type=datetime-local].invalid + label:after, -input[type=datetime-local]:focus.invalid + label:after, -input[type=tel].invalid + label:after, -input[type=tel]:focus.invalid + label:after, -input[type=number].invalid + label:after, -input[type=number]:focus.invalid + label:after, -input[type=search].invalid + label:after, -input[type=search]:focus.invalid + label:after, -textarea.materialize-textarea.invalid + label:after, -textarea.materialize-textarea:focus.invalid + label:after { - content: attr(data-error); - color: #F44336; - opacity: 1; -} - -input:not([type]).validate + label, -input[type=text].validate + label, -input[type=password].validate + label, -input[type=email].validate + label, -input[type=url].validate + label, -input[type=time].validate + label, -input[type=date].validate + label, -input[type=datetime].validate + label, -input[type=datetime-local].validate + label, -input[type=tel].validate + label, -input[type=number].validate + label, -input[type=search].validate + label, -textarea.materialize-textarea.validate + label { - width: 100%; - pointer-events: none; -} - -input:not([type]) + label:after, -input[type=text] + label:after, -input[type=password] + label:after, -input[type=email] + label:after, -input[type=url] + label:after, -input[type=time] + label:after, -input[type=date] + label:after, -input[type=datetime] + label:after, -input[type=datetime-local] + label:after, -input[type=tel] + label:after, -input[type=number] + label:after, -input[type=search] + label:after, -textarea.materialize-textarea + label:after { - display: block; - content: ""; - position: absolute; - top: 60px; - opacity: 0; - transition: .2s opacity ease-out, .2s color ease-out; -} - -.input-field { - position: relative; - margin-top: 1rem; -} - -.input-field.col label { - left: 0.75rem; -} - -.input-field.col .prefix ~ label, -.input-field.col .prefix ~ .validate ~ label { - width: calc(100% - 3rem - 1.5rem); -} - -.input-field label { - color: #9e9e9e; - position: absolute; - top: 0.8rem; - font-size: 1rem; - cursor: text; - transition: .2s ease-out; -} - -.input-field label.active { - font-size: 0.8rem; - -webkit-transform: translateY(-140%); - transform: translateY(-140%); -} - -.input-field .prefix { - position: absolute; - width: 3rem; - font-size: 2rem; - transition: color .2s; -} - -.input-field .prefix.active { - color: #26a69a; -} - -.input-field .prefix ~ input, -.input-field .prefix ~ textarea, -.input-field .prefix ~ label, -.input-field .prefix ~ .validate ~ label, -.input-field .prefix ~ .autocomplete-content { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.input-field .prefix ~ label { - margin-left: 3rem; -} - -@media only screen and (max-width: 992px) { - .input-field .prefix ~ input { - width: 86%; - width: calc(100% - 3rem); - } -} - -@media only screen and (max-width: 600px) { - .input-field .prefix ~ input { - width: 80%; - width: calc(100% - 3rem); - } -} - -/* Search Field */ -.input-field input[type=search] { - display: block; - line-height: inherit; - padding-left: 4rem; - width: calc(100% - 4rem); -} - -.input-field input[type=search]:focus { - background-color: #fff; - border: 0; - box-shadow: none; - color: #444; -} - -.input-field input[type=search]:focus + label i, -.input-field input[type=search]:focus ~ .mdi-navigation-close, -.input-field input[type=search]:focus ~ .material-icons { - color: #444; -} - -.input-field input[type=search] + label { - left: 1rem; -} - -.input-field input[type=search] ~ .mdi-navigation-close, -.input-field input[type=search] ~ .material-icons { - position: absolute; - top: 0; - right: 1rem; - color: transparent; - cursor: pointer; - font-size: 2rem; - transition: .3s color; -} - -/* Textarea */ -textarea { - width: 100%; - height: 3rem; - background-color: transparent; -} - -textarea.materialize-textarea { - overflow-y: hidden; - /* prevents scroll bar flash */ - padding: .8rem 0 1.6rem 0; - /* prevents text jump on Enter keypress */ - resize: none; - min-height: 3rem; -} - -.hiddendiv { - display: none; - white-space: pre-wrap; - word-wrap: break-word; - overflow-wrap: break-word; - /* future version of deprecated 'word-wrap' */ - padding-top: 1.2rem; - /* prevents text jump on Enter keypress */ -} - -/* Autocomplete */ -.autocomplete-content { - margin-top: -15px; - display: block; - opacity: 1; - position: static; -} - -.autocomplete-content li .highlight { - color: #444; -} - -.autocomplete-content li img { - height: 40px; - width: 40px; - margin: 5px 15px; -} - -/* Radio Buttons - ========================================================================== */ -[type="radio"]:not(:checked), -[type="radio"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -[type="radio"]:not(:checked) + label, -[type="radio"]:checked + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - transition: .28s ease; - /* webkit (konqueror) browsers */ - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -[type="radio"] + label:before, -[type="radio"] + label:after { - content: ''; - position: absolute; - left: 0; - top: 0; - margin: 4px; - width: 16px; - height: 16px; - z-index: 0; - transition: .28s ease; -} - -/* Unchecked styles */ -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after, -[type="radio"]:checked + label:before, -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border-radius: 50%; -} - -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after { - border: 2px solid #5a5a5a; -} - -[type="radio"]:not(:checked) + label:after { - z-index: -1; - -webkit-transform: scale(0); - transform: scale(0); -} - -/* Checked styles */ -[type="radio"]:checked + label:before { - border: 2px solid transparent; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border: 2px solid #26a69a; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:after { - background-color: #26a69a; - z-index: 0; -} - -[type="radio"]:checked + label:after { - -webkit-transform: scale(1.02); - transform: scale(1.02); -} - -/* Radio With gap */ -[type="radio"].with-gap:checked + label:after { - -webkit-transform: scale(0.5); - transform: scale(0.5); -} - -/* Focused styles */ -[type="radio"].tabbed:focus + label:before { - box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1); -} - -/* Disabled Radio With gap */ -[type="radio"].with-gap:disabled:checked + label:before { - border: 2px solid rgba(0, 0, 0, 0.26); -} - -[type="radio"].with-gap:disabled:checked + label:after { - border: none; - background-color: rgba(0, 0, 0, 0.26); -} - -/* Disabled style */ -[type="radio"]:disabled:not(:checked) + label:before, -[type="radio"]:disabled:checked + label:before { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.26); -} - -[type="radio"]:disabled + label { - color: rgba(0, 0, 0, 0.26); -} - -[type="radio"]:disabled:not(:checked) + label:before { - border-color: rgba(0, 0, 0, 0.26); -} - -[type="radio"]:disabled:checked + label:after { - background-color: rgba(0, 0, 0, 0.26); - border-color: #BDBDBD; -} - -/* Checkboxes - ========================================================================== */ -/* CUSTOM CSS CHECKBOXES */ -form p { - margin-bottom: 10px; - text-align: left; -} - -form p:last-child { - margin-bottom: 0; -} - -/* Remove default checkbox */ -[type="checkbox"]:not(:checked), -[type="checkbox"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -[type="checkbox"] { - /* checkbox aspect */ -} - -[type="checkbox"] + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - -webkit-user-select: none; - /* webkit (safari, chrome) browsers */ - -moz-user-select: none; - /* mozilla browsers */ - -khtml-user-select: none; - /* webkit (konqueror) browsers */ - -ms-user-select: none; - /* IE10+ */ -} - -[type="checkbox"] + label:before, -[type="checkbox"]:not(.filled-in) + label:after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 18px; - height: 18px; - z-index: 0; - border: 2px solid #5a5a5a; - border-radius: 1px; - margin-top: 2px; - transition: .2s; -} - -[type="checkbox"]:not(.filled-in) + label:after { - border: 0; - -webkit-transform: scale(0); - transform: scale(0); -} - -[type="checkbox"]:not(:checked):disabled + label:before { - border: none; - background-color: rgba(0, 0, 0, 0.26); -} - -[type="checkbox"].tabbed:focus + label:after { - -webkit-transform: scale(1); - transform: scale(1); - border: 0; - border-radius: 50%; - box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1); - background-color: rgba(0, 0, 0, 0.1); -} - -[type="checkbox"]:checked + label:before { - top: -4px; - left: -5px; - width: 12px; - height: 22px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid #26a69a; - border-bottom: 2px solid #26a69a; - -webkit-transform: rotate(40deg); - transform: rotate(40deg); - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -[type="checkbox"]:checked:disabled + label:before { - border-right: 2px solid rgba(0, 0, 0, 0.26); - border-bottom: 2px solid rgba(0, 0, 0, 0.26); -} - -/* Indeterminate checkbox */ -[type="checkbox"]:indeterminate + label:before { - top: -11px; - left: -12px; - width: 10px; - height: 22px; - border-top: none; - border-left: none; - border-right: 2px solid #26a69a; - border-bottom: none; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -[type="checkbox"]:indeterminate:disabled + label:before { - border-right: 2px solid rgba(0, 0, 0, 0.26); - background-color: transparent; -} - -[type="checkbox"].filled-in + label:after { - border-radius: 2px; -} - -[type="checkbox"].filled-in + label:before, -[type="checkbox"].filled-in + label:after { - content: ''; - left: 0; - position: absolute; - /* .1s delay is for check animation */ - transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s; - z-index: 1; -} - -[type="checkbox"].filled-in:not(:checked) + label:before { - width: 0; - height: 0; - border: 3px solid transparent; - left: 6px; - top: 10px; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 20% 40%; - transform-origin: 100% 100%; -} - -[type="checkbox"].filled-in:not(:checked) + label:after { - height: 20px; - width: 20px; - background-color: transparent; - border: 2px solid #5a5a5a; - top: 0px; - z-index: 0; -} - -[type="checkbox"].filled-in:checked + label:before { - top: 0; - left: 1px; - width: 8px; - height: 13px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid #fff; - border-bottom: 2px solid #fff; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -[type="checkbox"].filled-in:checked + label:after { - top: 0; - width: 20px; - height: 20px; - border: 2px solid #26a69a; - background-color: #26a69a; - z-index: 0; -} - -[type="checkbox"].filled-in.tabbed:focus + label:after { - border-radius: 2px; - border-color: #5a5a5a; - background-color: rgba(0, 0, 0, 0.1); -} - -[type="checkbox"].filled-in.tabbed:checked:focus + label:after { - border-radius: 2px; - background-color: #26a69a; - border-color: #26a69a; -} - -[type="checkbox"].filled-in:disabled:not(:checked) + label:before { - background-color: transparent; - border: 2px solid transparent; -} - -[type="checkbox"].filled-in:disabled:not(:checked) + label:after { - border-color: transparent; - background-color: #BDBDBD; -} - -[type="checkbox"].filled-in:disabled:checked + label:before { - background-color: transparent; -} - -[type="checkbox"].filled-in:disabled:checked + label:after { - background-color: #BDBDBD; - border-color: #BDBDBD; -} - -/* Switch - ========================================================================== */ -.switch, -.switch * { - -webkit-user-select: none; - -moz-user-select: none; - -khtml-user-select: none; - -ms-user-select: none; -} - -.switch label { - cursor: pointer; -} - -.switch label input[type=checkbox] { - opacity: 0; - width: 0; - height: 0; -} - -.switch label input[type=checkbox]:checked + .lever { - background-color: #84c7c1; -} - -.switch label input[type=checkbox]:checked + .lever:after { - background-color: #26a69a; - left: 24px; -} - -.switch label .lever { - content: ""; - display: inline-block; - position: relative; - width: 40px; - height: 15px; - background-color: #818181; - border-radius: 15px; - margin-right: 10px; - transition: background 0.3s ease; - vertical-align: middle; - margin: 0 16px; -} - -.switch label .lever:after { - content: ""; - position: absolute; - display: inline-block; - width: 21px; - height: 21px; - background-color: #F1F1F1; - border-radius: 21px; - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4); - left: -5px; - top: -3px; - transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease; -} - -input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after, -input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1); -} - -input[type=checkbox]:not(:disabled) ~ .lever:active:after, -input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08); -} - -.switch input[type=checkbox][disabled] + .lever { - cursor: default; -} - -.switch label input[type=checkbox][disabled] + .lever:after, -.switch label input[type=checkbox][disabled]:checked + .lever:after { - background-color: #BDBDBD; -} - -/* Select Field - ========================================================================== */ -select { - display: none; -} - -select.browser-default { - display: block; -} - -select { - background-color: rgba(255, 255, 255, 0.9); - width: 100%; - padding: 5px; - border: 1px solid #f2f2f2; - border-radius: 2px; - height: 3rem; -} - -.select-label { - position: absolute; -} - -.select-wrapper { - position: relative; -} - -.select-wrapper input.select-dropdown { - position: relative; - cursor: pointer; - background-color: transparent; - border: none; - border-bottom: 1px solid #9e9e9e; - outline: none; - height: 3rem; - line-height: 3rem; - width: 100%; - font-size: 1rem; - margin: 0 0 20px 0; - padding: 0; - display: block; -} - -.select-wrapper span.caret { - color: initial; - position: absolute; - right: 0; - top: 16px; - font-size: 10px; -} - -.select-wrapper span.caret.disabled { - color: rgba(0, 0, 0, 0.26); -} - -.select-wrapper + label { - position: absolute; - top: -14px; - font-size: 0.8rem; -} - -select:disabled { - color: rgba(0, 0, 0, 0.3); -} - -.select-wrapper input.select-dropdown:disabled { - color: rgba(0, 0, 0, 0.3); - cursor: default; - -webkit-user-select: none; - /* webkit (safari, chrome) browsers */ - -moz-user-select: none; - /* mozilla browsers */ - -ms-user-select: none; - /* IE10+ */ - border-bottom: 1px solid rgba(0, 0, 0, 0.3); -} - -.select-wrapper i { - color: rgba(0, 0, 0, 0.3); -} - -.select-dropdown li.disabled, -.select-dropdown li.disabled > span, -.select-dropdown li.optgroup { - color: rgba(0, 0, 0, 0.3); - background-color: transparent; -} - -.prefix ~ .select-wrapper { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.prefix ~ label { - margin-left: 3rem; -} - -.select-dropdown li img { - height: 40px; - width: 40px; - margin: 5px 15px; - float: right; -} - -.select-dropdown li.optgroup { - border-top: 1px solid #eee; -} - -.select-dropdown li.optgroup.selected > span { - color: rgba(0, 0, 0, 0.7); -} - -.select-dropdown li.optgroup > span { - color: rgba(0, 0, 0, 0.4); -} - -.select-dropdown li.optgroup ~ li.optgroup-option { - padding-left: 1rem; -} - -/* File Input - ========================================================================== */ -.file-field { - position: relative; -} - -.file-field .file-path-wrapper { - overflow: hidden; - padding-left: 10px; -} - -.file-field input.file-path { - width: 100%; -} - -.file-field .btn, .file-field .btn-large { - float: left; - height: 3rem; - line-height: 3rem; -} - -.file-field span { - cursor: pointer; -} - -.file-field input[type=file] { - position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; - width: 100%; - margin: 0; - padding: 0; - font-size: 20px; - cursor: pointer; - opacity: 0; - filter: alpha(opacity=0); -} - -/* Range - ========================================================================== */ -.range-field { - position: relative; -} - -input[type=range], -input[type=range] + .thumb { - cursor: pointer; -} - -input[type=range] { - position: relative; - background-color: transparent; - border: none; - outline: none; - width: 100%; - margin: 15px 0; - padding: 0; -} - -input[type=range]:focus { - outline: none; -} - -input[type=range] + .thumb { - position: absolute; - border: none; - height: 0; - width: 0; - border-radius: 50%; - background-color: #26a69a; - top: 10px; - margin-left: -6px; - -webkit-transform-origin: 50% 50%; - transform-origin: 50% 50%; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); -} - -input[type=range] + .thumb .value { - display: block; - width: 30px; - text-align: center; - color: #26a69a; - font-size: 0; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); -} - -input[type=range] + .thumb.active { - border-radius: 50% 50% 50% 0; -} - -input[type=range] + .thumb.active .value { - color: #fff; - margin-left: -1px; - margin-top: 8px; - font-size: 10px; -} - -input[type=range] { - -webkit-appearance: none; -} - -input[type=range]::-webkit-slider-runnable-track { - height: 3px; - background: #c2c0c2; - border: none; -} - -input[type=range]::-webkit-slider-thumb { - -webkit-appearance: none; - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background-color: #26a69a; - -webkit-transform-origin: 50% 50%; - transform-origin: 50% 50%; - margin: -5px 0 0 0; - transition: .3s; -} - -input[type=range]:focus::-webkit-slider-runnable-track { - background: #ccc; -} - -input[type=range] { - /* fix for FF unable to apply focus style bug */ - border: 1px solid white; - /*required for proper track sizing in FF*/ -} - -input[type=range]::-moz-range-track { - height: 3px; - background: #ddd; - border: none; -} - -input[type=range]::-moz-range-thumb { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; - margin-top: -5px; -} - -input[type=range]:-moz-focusring { - outline: 1px solid #fff; - outline-offset: -1px; -} - -input[type=range]:focus::-moz-range-track { - background: #ccc; -} - -input[type=range]::-ms-track { - height: 3px; - background: transparent; - border-color: transparent; - border-width: 6px 0; - /*remove default tick marks*/ - color: transparent; -} - -input[type=range]::-ms-fill-lower { - background: #777; -} - -input[type=range]::-ms-fill-upper { - background: #ddd; -} - -input[type=range]::-ms-thumb { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; -} - -input[type=range]:focus::-ms-fill-lower { - background: #888; -} - -input[type=range]:focus::-ms-fill-upper { - background: #ccc; -} - -/*************** - Nav List -***************/ -.table-of-contents.fixed { - position: fixed; -} - -.table-of-contents li { - padding: 2px 0; -} - -.table-of-contents a { - display: inline-block; - font-weight: 300; - color: #757575; - padding-left: 20px; - height: 1.5rem; - line-height: 1.5rem; - letter-spacing: .4; - display: inline-block; -} - -.table-of-contents a:hover { - color: #a8a8a8; - padding-left: 19px; - border-left: 1px solid #ea4a4f; -} - -.table-of-contents a.active { - font-weight: 500; - padding-left: 18px; - border-left: 2px solid #ea4a4f; -} - -.side-nav { - position: fixed; - width: 300px; - left: 0; - top: 0; - margin: 0; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); - height: 100%; - height: calc(100% + 60px); - height: -moz-calc(100%); - padding-bottom: 60px; - background-color: #fff; - z-index: 999; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - overflow-y: auto; - will-change: transform; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform: translateX(-105%); - transform: translateX(-105%); -} - -.side-nav.right-aligned { - right: 0; - -webkit-transform: translateX(105%); - transform: translateX(105%); - left: auto; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} - -.side-nav .collapsible { - margin: 0; -} - -.side-nav li { - float: none; - line-height: 48px; -} - -.side-nav li.active { - background-color: rgba(0, 0, 0, 0.05); -} - -.side-nav a { - color: rgba(0, 0, 0, 0.87); - display: block; - font-size: 14px; - font-weight: 500; - height: 48px; - line-height: 48px; - padding: 0 32px; -} - -.side-nav a:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-flat, .side-nav a.btn-floating { - margin: 10px 15px; -} - -.side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-floating { - color: #fff; -} - -.side-nav a.btn-flat { - color: #343434; -} - -.side-nav a.btn:hover, .side-nav a.btn-large:hover, .side-nav a.btn-large:hover { - background-color: #2bbbad; -} - -.side-nav a.btn-floating:hover { - background-color: #26a69a; -} - -.side-nav li > a > i, -.side-nav li > a > [class^="mdi-"], .side-nav li > a > [class*="mdi-"], -.side-nav li > a > i.material-icons { - float: left; - line-height: 48px; - margin: 0 32px 0 0; - width: 24px; - color: rgba(0, 0, 0, 0.54); -} - -.side-nav .divider { - margin: 8px 0 0 0; -} - -.side-nav .subheader { - cursor: initial; - pointer-events: none; - color: rgba(0, 0, 0, 0.54); - font-size: 14px; - font-weight: 500; - line-height: 48px; -} - -.side-nav .subheader:hover { - background-color: transparent; -} - -.side-nav .userView { - overflow: hidden; - position: relative; - padding: 32px 32px 0; - margin-bottom: 8px; -} - -.side-nav .userView a { - height: auto; - padding: 0; -} - -.side-nav .userView a:hover { - background-color: transparent; -} - -.side-nav .userView .background { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1; -} - -.side-nav .userView .circle, .side-nav .userView .name, .side-nav .userView .email { - display: block; -} - -.side-nav .userView .circle { - height: 64px; - width: 64px; -} - -.side-nav .userView .name, -.side-nav .userView .email { - font-weight: 14px; - line-height: 24px; -} - -.side-nav .userView .name { - margin-top: 16px; - font-weight: 500; -} - -.side-nav .userView .email { - padding-bottom: 16px; - font-weight: 400; -} - -.drag-target { - height: 100%; - width: 10px; - position: fixed; - top: 0; - z-index: 998; -} - -.side-nav.fixed a { - display: block; - padding: 0 16px; - color: rgba(0, 0, 0, 0.87); -} - -.side-nav.fixed { - left: 0; - -webkit-transform: translateX(0); - transform: translateX(0); - position: fixed; -} - -.side-nav.fixed.right-aligned { - right: 0; - left: auto; -} - -@media only screen and (max-width: 992px) { - .side-nav.fixed { - -webkit-transform: translateX(-105%); - transform: translateX(-105%); - } - .side-nav.fixed.right-aligned { - -webkit-transform: translateX(105%); - transform: translateX(105%); - } - .side-nav a { - padding: 0 16px; - } - .side-nav .userView { - padding: 16px 16px 0; - } -} - -.side-nav .collapsible-body li.active, -.side-nav.fixed .collapsible-body li.active { - background-color: #ee6e73; -} - -.side-nav .collapsible-body li.active a, -.side-nav.fixed .collapsible-body li.active a { - color: #fff; -} - -#sidenav-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - height: 120vh; - background-color: rgba(0, 0, 0, 0.5); - z-index: 997; - will-change: opacity; -} - -/* - @license - Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -/**************************/ -/* STYLES FOR THE SPINNER */ -/**************************/ -/* - * Constants: - * STROKEWIDTH = 3px - * ARCSIZE = 270 degrees (amount of circle the arc takes up) - * ARCTIME = 1333ms (time it takes to expand and contract arc) - * ARCSTARTROT = 216 degrees (how much the start location of the arc - * should rotate each time, 216 gives us a - * 5 pointed star shape (it's 360/5 * 3). - * For a 7 pointed star, we might do - * 360/7 * 3 = 154.286) - * CONTAINERWIDTH = 28px - * SHRINK_TIME = 400ms - */ -.preloader-wrapper { - display: inline-block; - position: relative; - width: 48px; - height: 48px; -} - -.preloader-wrapper.small { - width: 36px; - height: 36px; -} - -.preloader-wrapper.big { - width: 64px; - height: 64px; -} - -.preloader-wrapper.active { - /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */ - -webkit-animation: container-rotate 1568ms linear infinite; - animation: container-rotate 1568ms linear infinite; -} - -@-webkit-keyframes container-rotate { - to { - -webkit-transform: rotate(360deg); - } -} - -@keyframes container-rotate { - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -.spinner-layer { - position: absolute; - width: 100%; - height: 100%; - opacity: 0; - border-color: #26a69a; -} - -.spinner-blue, -.spinner-blue-only { - border-color: #4285f4; -} - -.spinner-red, -.spinner-red-only { - border-color: #db4437; -} - -.spinner-yellow, -.spinner-yellow-only { - border-color: #f4b400; -} - -.spinner-green, -.spinner-green-only { - border-color: #0f9d58; -} - -/** - * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee): - * - * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't - * guarantee that the animation will start _exactly_ after that value. So we avoid using - * animation-delay and instead set custom keyframes for each color (as redundant as it - * seems). - * - * We write out each animation in full (instead of separating animation-name, - * animation-duration, etc.) because under the polyfill, Safari does not recognize those - * specific properties properly, treats them as -webkit-animation, and overrides the - * other animation rules. See https://github.com/Polymer/platform/issues/53. - */ -.active .spinner-layer.spinner-blue { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-red { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-yellow { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-green { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer, -.active .spinner-layer.spinner-blue-only, -.active .spinner-layer.spinner-red-only, -.active .spinner-layer.spinner-yellow-only, -.active .spinner-layer.spinner-green-only { - /* durations: 4 * ARCTIME */ - opacity: 1; - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -@-webkit-keyframes fill-unfill-rotate { - 12.5% { - -webkit-transform: rotate(135deg); - } - /* 0.5 * ARCSIZE */ - 25% { - -webkit-transform: rotate(270deg); - } - /* 1 * ARCSIZE */ - 37.5% { - -webkit-transform: rotate(405deg); - } - /* 1.5 * ARCSIZE */ - 50% { - -webkit-transform: rotate(540deg); - } - /* 2 * ARCSIZE */ - 62.5% { - -webkit-transform: rotate(675deg); - } - /* 2.5 * ARCSIZE */ - 75% { - -webkit-transform: rotate(810deg); - } - /* 3 * ARCSIZE */ - 87.5% { - -webkit-transform: rotate(945deg); - } - /* 3.5 * ARCSIZE */ - to { - -webkit-transform: rotate(1080deg); - } - /* 4 * ARCSIZE */ -} - -@keyframes fill-unfill-rotate { - 12.5% { - -webkit-transform: rotate(135deg); - transform: rotate(135deg); - } - /* 0.5 * ARCSIZE */ - 25% { - -webkit-transform: rotate(270deg); - transform: rotate(270deg); - } - /* 1 * ARCSIZE */ - 37.5% { - -webkit-transform: rotate(405deg); - transform: rotate(405deg); - } - /* 1.5 * ARCSIZE */ - 50% { - -webkit-transform: rotate(540deg); - transform: rotate(540deg); - } - /* 2 * ARCSIZE */ - 62.5% { - -webkit-transform: rotate(675deg); - transform: rotate(675deg); - } - /* 2.5 * ARCSIZE */ - 75% { - -webkit-transform: rotate(810deg); - transform: rotate(810deg); - } - /* 3 * ARCSIZE */ - 87.5% { - -webkit-transform: rotate(945deg); - transform: rotate(945deg); - } - /* 3.5 * ARCSIZE */ - to { - -webkit-transform: rotate(1080deg); - transform: rotate(1080deg); - } - /* 4 * ARCSIZE */ -} - -@-webkit-keyframes blue-fade-in-out { - from { - opacity: 1; - } - 25% { - opacity: 1; - } - 26% { - opacity: 0; - } - 89% { - opacity: 0; - } - 90% { - opacity: 1; - } - 100% { - opacity: 1; - } -} - -@keyframes blue-fade-in-out { - from { - opacity: 1; - } - 25% { - opacity: 1; - } - 26% { - opacity: 0; - } - 89% { - opacity: 0; - } - 90% { - opacity: 1; - } - 100% { - opacity: 1; - } -} - -@-webkit-keyframes red-fade-in-out { - from { - opacity: 0; - } - 15% { - opacity: 0; - } - 25% { - opacity: 1; - } - 50% { - opacity: 1; - } - 51% { - opacity: 0; - } -} - -@keyframes red-fade-in-out { - from { - opacity: 0; - } - 15% { - opacity: 0; - } - 25% { - opacity: 1; - } - 50% { - opacity: 1; - } - 51% { - opacity: 0; - } -} - -@-webkit-keyframes yellow-fade-in-out { - from { - opacity: 0; - } - 40% { - opacity: 0; - } - 50% { - opacity: 1; - } - 75% { - opacity: 1; - } - 76% { - opacity: 0; - } -} - -@keyframes yellow-fade-in-out { - from { - opacity: 0; - } - 40% { - opacity: 0; - } - 50% { - opacity: 1; - } - 75% { - opacity: 1; - } - 76% { - opacity: 0; - } -} - -@-webkit-keyframes green-fade-in-out { - from { - opacity: 0; - } - 65% { - opacity: 0; - } - 75% { - opacity: 1; - } - 90% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -@keyframes green-fade-in-out { - from { - opacity: 0; - } - 65% { - opacity: 0; - } - 75% { - opacity: 1; - } - 90% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -/** - * Patch the gap that appear between the two adjacent div.circle-clipper while the - * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11). - */ -.gap-patch { - position: absolute; - top: 0; - left: 45%; - width: 10%; - height: 100%; - overflow: hidden; - border-color: inherit; -} - -.gap-patch .circle { - width: 1000%; - left: -450%; -} - -.circle-clipper { - display: inline-block; - position: relative; - width: 50%; - height: 100%; - overflow: hidden; - border-color: inherit; -} - -.circle-clipper .circle { - width: 200%; - height: 100%; - border-width: 3px; - /* STROKEWIDTH */ - border-style: solid; - border-color: inherit; - border-bottom-color: transparent !important; - border-radius: 50%; - -webkit-animation: none; - animation: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; -} - -.circle-clipper.left .circle { - left: 0; - border-right-color: transparent !important; - -webkit-transform: rotate(129deg); - transform: rotate(129deg); -} - -.circle-clipper.right .circle { - left: -100%; - border-left-color: transparent !important; - -webkit-transform: rotate(-129deg); - transform: rotate(-129deg); -} - -.active .circle-clipper.left .circle { - /* duration: ARCTIME */ - -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .circle-clipper.right .circle { - /* duration: ARCTIME */ - -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -@-webkit-keyframes left-spin { - from { - -webkit-transform: rotate(130deg); - } - 50% { - -webkit-transform: rotate(-5deg); - } - to { - -webkit-transform: rotate(130deg); - } -} - -@keyframes left-spin { - from { - -webkit-transform: rotate(130deg); - transform: rotate(130deg); - } - 50% { - -webkit-transform: rotate(-5deg); - transform: rotate(-5deg); - } - to { - -webkit-transform: rotate(130deg); - transform: rotate(130deg); - } -} - -@-webkit-keyframes right-spin { - from { - -webkit-transform: rotate(-130deg); - } - 50% { - -webkit-transform: rotate(5deg); - } - to { - -webkit-transform: rotate(-130deg); - } -} - -@keyframes right-spin { - from { - -webkit-transform: rotate(-130deg); - transform: rotate(-130deg); - } - 50% { - -webkit-transform: rotate(5deg); - transform: rotate(5deg); - } - to { - -webkit-transform: rotate(-130deg); - transform: rotate(-130deg); - } -} - -#spinnerContainer.cooldown { - /* duration: SHRINK_TIME */ - -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); - animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); -} - -@-webkit-keyframes fade-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -@keyframes fade-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -.slider { - position: relative; - height: 400px; - width: 100%; -} - -.slider.fullscreen { - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.slider.fullscreen ul.slides { - height: 100%; -} - -.slider.fullscreen ul.indicators { - z-index: 2; - bottom: 30px; -} - -.slider .slides { - background-color: #9e9e9e; - margin: 0; - height: 400px; -} - -.slider .slides li { - opacity: 0; - position: absolute; - top: 0; - left: 0; - z-index: 1; - width: 100%; - height: inherit; - overflow: hidden; -} - -.slider .slides li img { - height: 100%; - width: 100%; - background-size: cover; - background-position: center; -} - -.slider .slides li .caption { - color: #fff; - position: absolute; - top: 15%; - left: 15%; - width: 70%; - opacity: 0; -} - -.slider .slides li .caption p { - color: #e0e0e0; -} - -.slider .slides li.active { - z-index: 2; -} - -.slider .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; -} - -.slider .indicators .indicator-item { - display: inline-block; - position: relative; - cursor: pointer; - height: 16px; - width: 16px; - margin: 0 12px; - background-color: #e0e0e0; - transition: background-color .3s; - border-radius: 50%; -} - -.slider .indicators .indicator-item.active { - background-color: #4CAF50; -} - -.carousel { - overflow: hidden; - position: relative; - width: 100%; - height: 400px; - -webkit-perspective: 500px; - perspective: 500px; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; - -webkit-transform-origin: 0% 50%; - transform-origin: 0% 50%; -} - -.carousel.carousel-slider { - top: 0; - left: 0; - height: 0; -} - -.carousel.carousel-slider .carousel-fixed-item { - position: absolute; - left: 0; - right: 0; - bottom: 20px; - z-index: 1; -} - -.carousel.carousel-slider .carousel-fixed-item.with-indicators { - bottom: 68px; -} - -.carousel.carousel-slider .carousel-item { - width: 100%; - height: 100%; - min-height: 400px; - position: absolute; - top: 0; - left: 0; -} - -.carousel.carousel-slider .carousel-item h2 { - font-size: 24px; - font-weight: 500; - line-height: 32px; -} - -.carousel.carousel-slider .carousel-item p { - font-size: 15px; -} - -.carousel .carousel-item { - display: none; - width: 200px; - height: 400px; - position: absolute; - top: 0; - left: 0; -} - -.carousel .carousel-item img { - width: 100%; -} - -.carousel .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; -} - -.carousel .indicators .indicator-item { - display: inline-block; - position: relative; - cursor: pointer; - height: 8px; - width: 8px; - margin: 24px 4px; - background-color: rgba(255, 255, 255, 0.5); - transition: background-color .3s; - border-radius: 50%; -} - -.carousel .indicators .indicator-item.active { - background-color: #fff; -} - -/* ========================================================================== - $BASE-PICKER - ========================================================================== */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -.picker { - font-size: 16px; - text-align: left; - line-height: 1.2; - color: #000000; - position: absolute; - z-index: 10000; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -/** - * The picker input element. - */ -.picker__input { - cursor: default; -} - -/** - * When the picker is opened, the input element is "activated". - */ -.picker__input.picker__input--active { - border-color: #0089ec; -} - -/** - * The holder is the only "scrollable" top-level container element. - */ -.picker__holder { - width: 100%; - overflow-y: auto; - -webkit-overflow-scrolling: touch; -} - -/*! - * Default mobile-first, responsive styling for pickadate.js - * Demo: http://amsul.github.io/pickadate.js - */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -/** - * Make the holder and frame fullscreen. - */ -.picker__holder, -.picker__frame { - bottom: 0; - left: 0; - right: 0; - top: 100%; -} - -/** - * The holder should overlay the entire screen. - */ -.picker__holder { - position: fixed; - transition: background 0.15s ease-out, top 0s 0.15s; - -webkit-backface-visibility: hidden; -} - -/** - * The frame that bounds the box contents of the picker. - */ -.picker__frame { - position: absolute; - margin: 0 auto; - min-width: 256px; - width: 300px; - max-height: 350px; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -moz-opacity: 0; - opacity: 0; - transition: all 0.15s ease-out; -} - -@media (min-height: 28.875em) { - .picker__frame { - overflow: visible; - top: auto; - bottom: -100%; - max-height: 80%; - } -} - -@media (min-height: 40.125em) { - .picker__frame { - margin-bottom: 7.5%; - } -} - -/** - * The wrapper sets the stage to vertically align the box contents. - */ -.picker__wrap { - display: table; - width: 100%; - height: 100%; -} - -@media (min-height: 28.875em) { - .picker__wrap { - display: block; - } -} - -/** - * The box contains all the picker contents. - */ -.picker__box { - background: #ffffff; - display: table-cell; - vertical-align: middle; -} - -@media (min-height: 28.875em) { - .picker__box { - display: block; - border: 1px solid #777777; - border-top-color: #898989; - border-bottom-width: 0; - border-radius: 5px 5px 0 0; - box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - } -} - -/** - * When the picker opens... - */ -.picker--opened .picker__holder { - top: 0; - background: transparent; - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)"; - zoom: 1; - background: rgba(0, 0, 0, 0.32); - transition: background 0.15s ease-out; -} - -.picker--opened .picker__frame { - top: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; - filter: alpha(opacity=100); - -moz-opacity: 1; - opacity: 1; -} - -@media (min-height: 35.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} - -/** - * For `large` screens, transform into an inline picker. - */ -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__input.picker__input--active { - border-color: #E3F2FD; -} - -.picker__frame { - margin: 0 auto; - max-width: 325px; -} - -@media (min-height: 38.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} - -/* ========================================================================== - $BASE-DATE-PICKER - ========================================================================== */ -/** - * The picker box. - */ -.picker__box { - padding: 0 1em; -} - -/** - * The header containing the month and year stuff. - */ -.picker__header { - text-align: center; - position: relative; - margin-top: .75em; -} - -/** - * The month and year labels. - */ -.picker__month, -.picker__year { - display: inline-block; - margin-left: .25em; - margin-right: .25em; -} - -/** - * The month and year selectors. - */ -.picker__select--month, -.picker__select--year { - height: 2em; - padding: 0; - margin-left: .25em; - margin-right: .25em; -} - -.picker__select--month.browser-default { - display: inline; - background-color: #FFFFFF; - width: 40%; -} - -.picker__select--year.browser-default { - display: inline; - background-color: #FFFFFF; - width: 26%; -} - -.picker__select--month:focus, -.picker__select--year:focus { - border-color: rgba(0, 0, 0, 0.05); -} - -/** - * The month navigation buttons. - */ -.picker__nav--prev, -.picker__nav--next { - position: absolute; - padding: .5em 1.25em; - width: 1em; - height: 1em; - box-sizing: content-box; - top: -0.25em; -} - -.picker__nav--prev { - left: -1em; - padding-right: 1.25em; -} - -.picker__nav--next { - right: -1em; - padding-left: 1.25em; -} - -.picker__nav--disabled, -.picker__nav--disabled:hover, -.picker__nav--disabled:before, -.picker__nav--disabled:before:hover { - cursor: default; - background: none; - border-right-color: #f5f5f5; - border-left-color: #f5f5f5; -} - -/** - * The calendar table of dates - */ -.picker__table { - text-align: center; - border-collapse: collapse; - border-spacing: 0; - table-layout: fixed; - font-size: 1rem; - width: 100%; - margin-top: .75em; - margin-bottom: .5em; -} - -.picker__table th, .picker__table td { - text-align: center; -} - -.picker__table td { - margin: 0; - padding: 0; -} - -/** - * The weekday labels - */ -.picker__weekday { - width: 14.285714286%; - font-size: .75em; - padding-bottom: .25em; - color: #999999; - font-weight: 500; - /* Increase the spacing a tad */ -} - -@media (min-height: 33.875em) { - .picker__weekday { - padding-bottom: .5em; - } -} - -/** - * The days on the calendar - */ -.picker__day--today { - position: relative; - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; -} - -.picker__day--disabled:before { - border-top-color: #aaaaaa; -} - -.picker__day--infocus:hover { - cursor: pointer; - color: #000; - font-weight: 500; -} - -.picker__day--outfocus { - display: none; - padding: .75rem 0; - color: #fff; -} - -.picker__day--outfocus:hover { - cursor: pointer; - color: #dddddd; - font-weight: 500; -} - -.picker__day--highlighted:hover, -.picker--focused .picker__day--highlighted { - cursor: pointer; -} - -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - border-radius: 50%; - -webkit-transform: scale(0.75); - transform: scale(0.75); - background: #0089ec; - color: #ffffff; -} - -.picker__day--disabled, -.picker__day--disabled:hover, -.picker--focused .picker__day--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} - -.picker__day--highlighted.picker__day--disabled, -.picker__day--highlighted.picker__day--disabled:hover { - background: #bbbbbb; -} - -/** - * The footer containing the "today", "clear", and "close" buttons. - */ -.picker__footer { - text-align: center; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.picker__button--today, -.picker__button--clear, -.picker__button--close { - border: 1px solid #ffffff; - background: #ffffff; - font-size: .8em; - padding: .66em 0; - font-weight: bold; - width: 33%; - display: inline-block; - vertical-align: bottom; -} - -.picker__button--today:hover, -.picker__button--clear:hover, -.picker__button--close:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-bottom-color: #b1dcfb; -} - -.picker__button--today:focus, -.picker__button--clear:focus, -.picker__button--close:focus { - background: #b1dcfb; - border-color: rgba(0, 0, 0, 0.05); - outline: none; -} - -.picker__button--today:before, -.picker__button--clear:before, -.picker__button--close:before { - position: relative; - display: inline-block; - height: 0; -} - -.picker__button--today:before, -.picker__button--clear:before { - content: " "; - margin-right: .45em; -} - -.picker__button--today:before { - top: -0.05em; - width: 0; - border-top: 0.66em solid #0059bc; - border-left: .66em solid transparent; -} - -.picker__button--clear:before { - top: -0.25em; - width: .66em; - border-top: 3px solid #ee2200; -} - -.picker__button--close:before { - content: "\D7"; - top: -0.1em; - vertical-align: top; - font-size: 1.1em; - margin-right: .35em; - color: #777777; -} - -.picker__button--today[disabled], -.picker__button--today[disabled]:hover { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} - -.picker__button--today[disabled]:before { - border-top-color: #aaaaaa; -} - -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__box { - border-radius: 2px; - overflow: hidden; -} - -.picker__date-display { - text-align: center; - background-color: #26a69a; - color: #fff; - padding-bottom: 15px; - font-weight: 300; -} - -.picker__nav--prev:hover, -.picker__nav--next:hover { - cursor: pointer; - color: #000000; - background: #a1ded8; -} - -.picker__weekday-display { - background-color: #1f897f; - padding: 10px; - font-weight: 200; - letter-spacing: .5; - font-size: 1rem; - margin-bottom: 15px; -} - -.picker__month-display { - text-transform: uppercase; - font-size: 2rem; -} - -.picker__day-display { - font-size: 4.5rem; - font-weight: 400; -} - -.picker__year-display { - font-size: 1.8rem; - color: rgba(255, 255, 255, 0.4); -} - -.picker__box { - padding: 0; -} - -.picker__calendar-container { - padding: 0 1rem; -} - -.picker__calendar-container thead { - border: none; -} - -.picker__table { - margin-top: 0; - margin-bottom: .5em; -} - -.picker__day--infocus { - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; -} - -.picker__day.picker__day--today { - color: #26a69a; -} - -.picker__day.picker__day--today.picker__day--selected { - color: #fff; -} - -.picker__weekday { - font-size: .9rem; -} - -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - border-radius: 50%; - -webkit-transform: scale(0.9); - transform: scale(0.9); - background-color: #26a69a; - color: #ffffff; -} - -.picker__day--selected.picker__day--outfocus, -.picker__day--selected:hover.picker__day--outfocus, -.picker--focused .picker__day--selected.picker__day--outfocus { - background-color: #a1ded8; -} - -.picker__footer { - text-align: right; - padding: 5px 10px; -} - -.picker__close, .picker__today { - font-size: 1.1rem; - padding: 0 1rem; - color: #26a69a; -} - -.picker__nav--prev:before, -.picker__nav--next:before { - content: " "; - border-top: .5em solid transparent; - border-bottom: .5em solid transparent; - border-right: 0.75em solid #676767; - width: 0; - height: 0; - display: block; - margin: 0 auto; -} - -.picker__nav--next:before { - border-right: 0; - border-left: 0.75em solid #676767; -} - -button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus { - background-color: #a1ded8; -} - -/* ========================================================================== - $BASE-TIME-PICKER - ========================================================================== */ -/** - * The list of times. - */ -.picker__list { - list-style: none; - padding: 0.75em 0 4.2em; - margin: 0; -} - -/** - * The times on the clock. - */ -.picker__list-item { - border-bottom: 1px solid #dddddd; - border-top: 1px solid #dddddd; - margin-bottom: -1px; - position: relative; - background: #ffffff; - padding: .75em 1.25em; -} - -@media (min-height: 46.75em) { - .picker__list-item { - padding: .5em 1em; - } -} - -/* Hovered time */ -.picker__list-item:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-color: #0089ec; - z-index: 10; -} - -/* Highlighted and hovered/focused time */ -.picker__list-item--highlighted { - border-color: #0089ec; - z-index: 10; -} - -.picker__list-item--highlighted:hover, -.picker--focused .picker__list-item--highlighted { - cursor: pointer; - color: #000000; - background: #b1dcfb; -} - -/* Selected and hovered/focused time */ -.picker__list-item--selected, -.picker__list-item--selected:hover, -.picker--focused .picker__list-item--selected { - background: #0089ec; - color: #ffffff; - z-index: 10; -} - -/* Disabled time */ -.picker__list-item--disabled, -.picker__list-item--disabled:hover, -.picker--focused .picker__list-item--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; - border-color: #dddddd; - z-index: auto; -} - -/** - * The clear button - */ -.picker--time .picker__button--clear { - display: block; - width: 80%; - margin: 1em auto 0; - padding: 1em 1.25em; - background: none; - border: 0; - font-weight: 500; - font-size: .67em; - text-align: center; - text-transform: uppercase; - color: #666; -} - -.picker--time .picker__button--clear:hover, -.picker--time .picker__button--clear:focus { - color: #000000; - background: #b1dcfb; - background: #ee2200; - border-color: #ee2200; - cursor: pointer; - color: #ffffff; - outline: none; -} - -.picker--time .picker__button--clear:before { - top: -0.25em; - color: #666; - font-size: 1.25em; - font-weight: bold; -} - -.picker--time .picker__button--clear:hover:before, -.picker--time .picker__button--clear:focus:before { - color: #ffffff; -} - -/* ========================================================================== - $DEFAULT-TIME-PICKER - ========================================================================== */ -/** - * The frame the bounds the time picker. - */ -.picker--time .picker__frame { - min-width: 256px; - max-width: 320px; -} - -/** - * The picker box. - */ -.picker--time .picker__box { - font-size: 1em; - background: #f2f2f2; - padding: 0; -} - -@media (min-height: 40.125em) { - .picker--time .picker__box { - margin-bottom: 5em; - } -} diff --git a/production/bower_components/Materialize/bin/materialize.js b/production/bower_components/Materialize/bin/materialize.js deleted file mode 100644 index aa494ee..0000000 --- a/production/bower_components/Materialize/bin/materialize.js +++ /dev/null @@ -1,5 +0,0 @@ -if("undefined"==typeof jQuery){var jQuery;jQuery="function"==typeof require?$=require("jquery"):$}jQuery.easing.jswing=jQuery.easing.swing,jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(a,b,c,d,e){return jQuery.easing[jQuery.easing.def](a,b,c,d,e)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return 0==b?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return 0==b?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(1==(b/=e))return c+d;if(g||(g=.3*e),hb?-.5*(h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*(2*Math.PI)/g))+c:h*Math.pow(2,-10*(b-=1))*Math.sin((b*e-f)*(2*Math.PI)/g)*.5+d+c},easeInBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*(b/=e)*b*((f+1)*b-f)+c},easeOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*((b=b/e-1)*b*((f+1)*b+f)+1)+c},easeInOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),(b/=e/2)<1?d/2*(b*b*(((f*=1.525)+1)*b-f))+c:d/2*((b-=2)*b*(((f*=1.525)+1)*b+f)+2)+c},easeInBounce:function(a,b,c,d,e){return d-jQuery.easing.easeOutBounce(a,e-b,0,d,e)+c},easeOutBounce:function(a,b,c,d,e){return(b/=e)<1/2.75?d*(7.5625*b*b)+c:2/2.75>b?d*(7.5625*(b-=1.5/2.75)*b+.75)+c:2.5/2.75>b?d*(7.5625*(b-=2.25/2.75)*b+.9375)+c:d*(7.5625*(b-=2.625/2.75)*b+.984375)+c},easeInOutBounce:function(a,b,c,d,e){return e/2>b?.5*jQuery.easing.easeInBounce(a,2*b,0,d,e)+c:.5*jQuery.easing.easeOutBounce(a,2*b-e,0,d,e)+.5*d+c}}),jQuery.extend(jQuery.easing,{easeInOutMaterial:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:d/4*((b-=2)*b*b+2)+c}}),jQuery.Velocity?console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity."):(!function(a){function b(a){var b=a.length,d=c.type(a);return"function"===d||c.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===d||0===b||"number"==typeof b&&b>0&&b-1 in a}if(!a.jQuery){var c=function(a,b){return new c.fn.init(a,b)};c.isWindow=function(a){return null!=a&&a==a.window},c.type=function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?e[g.call(a)]||"object":typeof a},c.isArray=Array.isArray||function(a){return"array"===c.type(a)},c.isPlainObject=function(a){var b;if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!f.call(a,"constructor")&&!f.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(d){return!1}for(b in a);return void 0===b||f.call(a,b)},c.each=function(a,c,d){var e,f=0,g=a.length,h=b(a);if(d){if(h)for(;g>f&&(e=c.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=c.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=c.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=c.call(a[f],f,a[f]),e===!1)break;return a},c.data=function(a,b,e){if(void 0===e){var f=a[c.expando],g=f&&d[f];if(void 0===b)return g;if(g&&b in g)return g[b]}else if(void 0!==b){var f=a[c.expando]||(a[c.expando]=++c.uuid);return d[f]=d[f]||{},d[f][b]=e,e}},c.removeData=function(a,b){var e=a[c.expando],f=e&&d[e];f&&c.each(b,function(a,b){delete f[b]})},c.extend=function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[i]||{},i++),"object"!=typeof h&&"function"!==c.type(h)&&(h={}),i===j&&(h=this,i--);j>i;i++)if(null!=(f=arguments[i]))for(e in f)a=h[e],d=f[e],h!==d&&(k&&d&&(c.isPlainObject(d)||(b=c.isArray(d)))?(b?(b=!1,g=a&&c.isArray(a)?a:[]):g=a&&c.isPlainObject(a)?a:{},h[e]=c.extend(k,g,d)):void 0!==d&&(h[e]=d));return h},c.queue=function(a,d,e){function f(a,c){var d=c||[];return null!=a&&(b(Object(a))?!function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;)a[e++]=b[d++];if(c!==c)for(;void 0!==b[d];)a[e++]=b[d++];return a.length=e,a}(d,"string"==typeof a?[a]:a):[].push.call(d,a)),d}if(a){d=(d||"fx")+"queue";var g=c.data(a,d);return e?(!g||c.isArray(e)?g=c.data(a,d,f(e)):g.push(e),g):g||[]}},c.dequeue=function(a,b){c.each(a.nodeType?[a]:a,function(a,d){b=b||"fx";var e=c.queue(d,b),f=e.shift();"inprogress"===f&&(f=e.shift()),f&&("fx"===b&&e.unshift("inprogress"),f.call(d,function(){c.dequeue(d,b)}))})},c.fn=c.prototype={init:function(a){if(a.nodeType)return this[0]=a,this;throw new Error("Not a DOM node.")},offset:function(){var b=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:b.top+(a.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:b.left+(a.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function a(){for(var a=this.offsetParent||document;a&&"html"===!a.nodeType.toLowerCase&&"static"===a.style.position;)a=a.offsetParent;return a||document}var b=this[0],a=a.apply(b),d=this.offset(),e=/^(?:body|html)$/i.test(a.nodeName)?{top:0,left:0}:c(a).offset();return d.top-=parseFloat(b.style.marginTop)||0,d.left-=parseFloat(b.style.marginLeft)||0,a.style&&(e.top+=parseFloat(a.style.borderTopWidth)||0,e.left+=parseFloat(a.style.borderLeftWidth)||0),{top:d.top-e.top,left:d.left-e.left}}};var d={};c.expando="velocity"+(new Date).getTime(),c.uuid=0;for(var e={},f=e.hasOwnProperty,g=e.toString,h="Boolean Number String Function Array Date RegExp Object Error".split(" "),i=0;ie;++e){var f=j(c,a,d);if(0===f)return c;var g=i(c,a,d)-b;c-=g/f}return c}function l(){for(var b=0;t>b;++b)x[b]=i(b*u,a,d)}function m(b,c,e){var f,g,h=0;do g=c+(e-c)/2,f=i(g,a,d)-b,f>0?e=g:c=g;while(Math.abs(f)>r&&++h=q?k(b,h):0==i?h:m(b,c,c+u)}function o(){y=!0,(a!=c||d!=e)&&l()}var p=4,q=.001,r=1e-7,s=10,t=11,u=1/(t-1),v="Float32Array"in b;if(4!==arguments.length)return!1;for(var w=0;4>w;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;a=Math.min(a,1),d=Math.min(d,1),a=Math.max(a,0),d=Math.max(d,0);var x=v?new Float32Array(t):new Array(t),y=!1,z=function(b){return y||o(),a===c&&d===e?b:0===b?0:1===b?1:i(n(b),c,e)};z.getControlPoints=function(){return[{x:a,y:c},{x:d,y:e}]};var A="generateBezier("+[a,c,d,e]+")";return z.toString=function(){return A},z}function j(a,b){var c=a;return p.isString(a)?t.Easings[a]||(c=!1):c=p.isArray(a)&&1===a.length?h.apply(null,a):p.isArray(a)&&2===a.length?u.apply(null,a.concat([b])):p.isArray(a)&&4===a.length?i.apply(null,a):!1,c===!1&&(c=t.Easings[t.defaults.easing]?t.defaults.easing:s),c}function k(a){if(a){var b=(new Date).getTime(),c=t.State.calls.length;c>1e4&&(t.State.calls=e(t.State.calls));for(var f=0;c>f;f++)if(t.State.calls[f]){var h=t.State.calls[f],i=h[0],j=h[2],n=h[3],o=!!n,q=null;n||(n=t.State.calls[f][3]=b-16);for(var r=Math.min((b-n)/j.duration,1),s=0,u=i.length;u>s;s++){var w=i[s],y=w.element;if(g(y)){var z=!1;if(j.display!==d&&null!==j.display&&"none"!==j.display){if("flex"===j.display){var A=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];m.each(A,function(a,b){v.setPropertyValue(y,"display",b)})}v.setPropertyValue(y,"display",j.display)}j.visibility!==d&&"hidden"!==j.visibility&&v.setPropertyValue(y,"visibility",j.visibility);for(var B in w)if("element"!==B){var C,D=w[B],E=p.isString(D.easing)?t.Easings[D.easing]:D.easing;if(1===r)C=D.endValue;else{var F=D.endValue-D.startValue;if(C=D.startValue+F*E(r,j,F),!o&&C===D.currentValue)continue}if(D.currentValue=C,"tween"===B)q=C;else{if(v.Hooks.registered[B]){var G=v.Hooks.getRoot(B),H=g(y).rootPropertyValueCache[G];H&&(D.rootPropertyValue=H)}var I=v.setPropertyValue(y,B,D.currentValue+(0===parseFloat(C)?"":D.unitType),D.rootPropertyValue,D.scrollData);v.Hooks.registered[B]&&(g(y).rootPropertyValueCache[G]=v.Normalizations.registered[G]?v.Normalizations.registered[G]("extract",null,I[1]):I[1]),"transform"===I[0]&&(z=!0)}}j.mobileHA&&g(y).transformCache.translate3d===d&&(g(y).transformCache.translate3d="(0px, 0px, 0px)",z=!0),z&&v.flushTransformCache(y)}}j.display!==d&&"none"!==j.display&&(t.State.calls[f][2].display=!1),j.visibility!==d&&"hidden"!==j.visibility&&(t.State.calls[f][2].visibility=!1),j.progress&&j.progress.call(h[1],h[1],r,Math.max(0,n+j.duration-b),n,q),1===r&&l(f)}}t.State.isTicking&&x(k)}function l(a,b){if(!t.State.calls[a])return!1;for(var c=t.State.calls[a][0],e=t.State.calls[a][1],f=t.State.calls[a][2],h=t.State.calls[a][4],i=!1,j=0,k=c.length;k>j;j++){var l=c[j].element;if(b||f.loop||("none"===f.display&&v.setPropertyValue(l,"display",f.display),"hidden"===f.visibility&&v.setPropertyValue(l,"visibility",f.visibility)),f.loop!==!0&&(m.queue(l)[1]===d||!/\.velocityQueueEntryFlag/i.test(m.queue(l)[1]))&&g(l)){g(l).isAnimating=!1,g(l).rootPropertyValueCache={};var n=!1;m.each(v.Lists.transforms3D,function(a,b){var c=/^scale/.test(b)?1:0,e=g(l).transformCache[b];g(l).transformCache[b]!==d&&new RegExp("^\\("+c+"[^.]").test(e)&&(n=!0,delete g(l).transformCache[b])}),f.mobileHA&&(n=!0,delete g(l).transformCache.translate3d),n&&v.flushTransformCache(l),v.Values.removeClass(l,"velocity-animating")}if(!b&&f.complete&&!f.loop&&j===k-1)try{f.complete.call(e,e)}catch(o){setTimeout(function(){throw o},1)}h&&f.loop!==!0&&h(e),g(l)&&f.loop===!0&&!b&&(m.each(g(l).tweensContainer,function(a,b){/^rotate/.test(a)&&360===parseFloat(b.endValue)&&(b.endValue=0,b.startValue=360),/^backgroundPosition/.test(a)&&100===parseFloat(b.endValue)&&"%"===b.unitType&&(b.endValue=0,b.startValue=100)}),t(l,"reverse",{loop:!0,delay:f.delay})),f.queue!==!1&&m.dequeue(l,f.queue)}t.State.calls[a]=!1;for(var p=0,q=t.State.calls.length;q>p;p++)if(t.State.calls[p]!==!1){i=!0;break}i===!1&&(t.State.isTicking=!1,delete t.State.calls,t.State.calls=[])}var m,n=function(){if(c.documentMode)return c.documentMode;for(var a=7;a>4;a--){var b=c.createElement("div");if(b.innerHTML="",b.getElementsByTagName("span").length)return b=null,a}return d}(),o=function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),p={isString:function(a){return"string"==typeof a},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(a){return"[object Function]"===Object.prototype.toString.call(a)},isNode:function(a){return a&&a.nodeType},isNodeList:function(a){return"object"==typeof a&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(a))&&a.length!==d&&(0===a.length||"object"==typeof a[0]&&a[0].nodeType>0)},isWrapped:function(a){return a&&(a.jquery||b.Zepto&&b.Zepto.zepto.isZ(a))},isSVG:function(a){return b.SVGElement&&a instanceof b.SVGElement},isEmptyObject:function(a){for(var b in a)return!1;return!0}},q=!1;if(a.fn&&a.fn.jquery?(m=a,q=!0):m=b.Velocity.Utilities,8>=n&&!q)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=n)return void(jQuery.fn.velocity=jQuery.fn.animate);var r=400,s="swing",t={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:b.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:c.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:m,Redirects:{},Easings:{},Promise:b.Promise,defaults:{queue:"",duration:r,easing:s,begin:d,complete:d,progress:d,display:d,visibility:d,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(a){m.data(a,"velocity",{isSVG:p.isSVG(a),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};b.pageYOffset!==d?(t.State.scrollAnchor=b,t.State.scrollPropertyLeft="pageXOffset",t.State.scrollPropertyTop="pageYOffset"):(t.State.scrollAnchor=c.documentElement||c.body.parentNode||c.body,t.State.scrollPropertyLeft="scrollLeft",t.State.scrollPropertyTop="scrollTop");var u=function(){function a(a){return-a.tension*a.x-a.friction*a.v}function b(b,c,d){var e={x:b.x+d.dx*c,v:b.v+d.dv*c,tension:b.tension,friction:b.friction};return{dx:e.v,dv:a(e)}}function c(c,d){var e={dx:c.v,dv:a(c)},f=b(c,.5*d,e),g=b(c,.5*d,f),h=b(c,d,g),i=1/6*(e.dx+2*(f.dx+g.dx)+h.dx),j=1/6*(e.dv+2*(f.dv+g.dv)+h.dv);return c.x=c.x+i*d,c.v=c.v+j*d,c}return function d(a,b,e){var f,g,h,i={x:-1,v:0,tension:null,friction:null},j=[0],k=0,l=1e-4,m=.016;for(a=parseFloat(a)||500,b=parseFloat(b)||20,e=e||null,i.tension=a,i.friction=b,f=null!==e,f?(k=d(a,b),g=k/e*m):g=m;h=c(h||i,g),j.push(1+h.x),k+=16,Math.abs(h.x)>l&&Math.abs(h.v)>l;);return f?function(a){return j[a*(j.length-1)|0]}:k}}();t.Easings={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},spring:function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}},m.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(a,b){t.Easings[b[0]]=i.apply(null,b[1])});var v=t.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var a=0;a=n)switch(a){case"name":return"filter";case"extract":var d=c.toString().match(/alpha\(opacity=(.*)\)/i);return c=d?d[1]/100:1;case"inject":return b.style.zoom=1,parseFloat(c)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":return c;case"inject":return c}}},register:function(){9>=n||t.State.isGingerbread||(v.Lists.transformsBase=v.Lists.transformsBase.concat(v.Lists.transforms3D));for(var a=0;ae&&(e=1),f=!/(\d)$/i.test(e);break;case"skew":f=!/(deg|\d)$/i.test(e);break;case"rotate":f=!/(deg|\d)$/i.test(e)}return f||(g(c).transformCache[b]="("+e+")"),g(c).transformCache[b]}}}();for(var a=0;a=n||3!==f.split(" ").length||(f+=" 1"),f;case"inject":return 8>=n?4===e.split(" ").length&&(e=e.split(/\s+/).slice(0,3).join(" ")):3===e.split(" ").length&&(e+=" 1"),(8>=n?"rgb":"rgba")+"("+e.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(a){return a.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},SVGAttribute:function(a){var b="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(n||t.State.isAndroid&&!t.State.isChrome)&&(b+="|transform"),new RegExp("^("+b+")$","i").test(a)},prefixCheck:function(a){if(t.State.prefixMatches[a])return[t.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;d>c;c++){var e;if(e=0===c?a:b[c]+a.replace(/^\w/,function(a){return a.toUpperCase()}),p.isString(t.State.prefixElement.style[e]))return t.State.prefixMatches[a]=e,[e,!0]}return[a,!1]}},Values:{hexToRgb:function(a){var b,c=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,d=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return a=a.replace(c,function(a,b,c,d){return b+b+c+c+d+d}),b=d.exec(a),b?[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]:[0,0,0]},isCSSNullValue:function(a){return 0==a||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)},getUnitType:function(a){return/^(rotate|skew)/i.test(a)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a)?"":"px"},getDisplayType:function(a){var b=a&&a.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b)?"inline":/^(li)$/i.test(b)?"list-item":/^(tr)$/i.test(b)?"table-row":/^(table)$/i.test(b)?"table":/^(tbody)$/i.test(b)?"table-row-group":"block"},addClass:function(a,b){a.classList?a.classList.add(b):a.className+=(a.className.length?" ":"")+b},removeClass:function(a,b){a.classList?a.classList.remove(b):a.className=a.className.toString().replace(new RegExp("(^|\\s)"+b.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(a,c,e,f){function h(a,c){function e(){j&&v.setPropertyValue(a,"display","none")}var i=0;if(8>=n)i=m.css(a,c);else{var j=!1;if(/^(width|height)$/.test(c)&&0===v.getPropertyValue(a,"display")&&(j=!0,v.setPropertyValue(a,"display",v.Values.getDisplayType(a))),!f){if("height"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var k=a.offsetHeight-(parseFloat(v.getPropertyValue(a,"borderTopWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderBottomWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingTop"))||0)-(parseFloat(v.getPropertyValue(a,"paddingBottom"))||0);return e(),k}if("width"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var l=a.offsetWidth-(parseFloat(v.getPropertyValue(a,"borderLeftWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderRightWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingLeft"))||0)-(parseFloat(v.getPropertyValue(a,"paddingRight"))||0);return e(),l}}var o;o=g(a)===d?b.getComputedStyle(a,null):g(a).computedStyle?g(a).computedStyle:g(a).computedStyle=b.getComputedStyle(a,null),"borderColor"===c&&(c="borderTopColor"),i=9===n&&"filter"===c?o.getPropertyValue(c):o[c],(""===i||null===i)&&(i=a.style[c]),e()}if("auto"===i&&/^(top|right|bottom|left)$/i.test(c)){var p=h(a,"position");("fixed"===p||"absolute"===p&&/top|left/i.test(c))&&(i=m(a).position()[c]+"px")}return i}var i;if(v.Hooks.registered[c]){var j=c,k=v.Hooks.getRoot(j);e===d&&(e=v.getPropertyValue(a,v.Names.prefixCheck(k)[0])),v.Normalizations.registered[k]&&(e=v.Normalizations.registered[k]("extract",a,e)),i=v.Hooks.extractValue(j,e)}else if(v.Normalizations.registered[c]){var l,o;l=v.Normalizations.registered[c]("name",a),"transform"!==l&&(o=h(a,v.Names.prefixCheck(l)[0]),v.Values.isCSSNullValue(o)&&v.Hooks.templates[c]&&(o=v.Hooks.templates[c][1])),i=v.Normalizations.registered[c]("extract",a,o)}if(!/^[\d-]/.test(i))if(g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c))if(/^(height|width)$/i.test(c))try{i=a.getBBox()[c]}catch(p){i=0}else i=a.getAttribute(c);else i=h(a,v.Names.prefixCheck(c)[0]);return v.Values.isCSSNullValue(i)&&(i=0),t.debug>=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,f){var h=c;if("scroll"===c)f.container?f.container["scroll"+f.direction]=d:"Left"===f.direction?b.scrollTo(d,f.alternateValue):b.scrollTo(f.alternateValue,d);else if(v.Normalizations.registered[c]&&"transform"===v.Normalizations.registered[c]("name",a))v.Normalizations.registered[c]("inject",a,d),h="transform",d=g(a).transformCache[c];else{if(v.Hooks.registered[c]){var i=c,j=v.Hooks.getRoot(c);e=e||v.getPropertyValue(a,j),d=v.Hooks.injectValue(i,d,e),c=j}if(v.Normalizations.registered[c]&&(d=v.Normalizations.registered[c]("inject",a,d),c=v.Normalizations.registered[c]("name",a)),h=v.Names.prefixCheck(c)[0],8>=n)try{a.style[h]=d}catch(k){t.debug&&console.log("Browser does not support ["+d+"] for ["+h+"]")}else g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c)?a.setAttribute(c,d):a.style[h]=d;t.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){function b(b){return parseFloat(v.getPropertyValue(a,b))}var c="";if((n||t.State.isAndroid&&!t.State.isChrome)&&g(a).isSVG){var d={translate:[b("translateX"),b("translateY")],skewX:[b("skewX")],skewY:[b("skewY")],scale:1!==b("scale")?[b("scale"),b("scale")]:[b("scaleX"),b("scaleY")],rotate:[b("rotateZ"),0,0]};m.each(g(a).transformCache,function(a){/^translate/i.test(a)?a="translate":/^scale/i.test(a)?a="scale":/^rotate/i.test(a)&&(a="rotate"),d[a]&&(c+=a+"("+d[a].join(" ")+") ",delete d[a])})}else{var e,f;m.each(g(a).transformCache,function(b){return e=g(a).transformCache[b],"transformPerspective"===b?(f=e,!0):(9===n&&"rotateZ"===b&&(b="rotate"),void(c+=b+e+" "))}),f&&(c="perspective"+f+" "+c)}v.setPropertyValue(a,"transform",c)}};v.Hooks.register(),v.Normalizations.register(),t.hook=function(a,b,c){var e=d;return a=f(a),m.each(a,function(a,f){if(g(f)===d&&t.init(f),c===d)e===d&&(e=t.CSS.getPropertyValue(f,b));else{var h=t.CSS.setPropertyValue(f,b,c);"transform"===h[0]&&t.CSS.flushTransformCache(f),e=h}}),e};var w=function(){function a(){return h?B.promise||null:i}function e(){function a(a){function l(a,b){var c=d,e=d,g=d;return p.isArray(a)?(c=a[0],!p.isArray(a[1])&&/^[\d-]/.test(a[1])||p.isFunction(a[1])||v.RegEx.isHex.test(a[1])?g=a[1]:(p.isString(a[1])&&!v.RegEx.isHex.test(a[1])||p.isArray(a[1]))&&(e=b?a[1]:j(a[1],h.duration),a[2]!==d&&(g=a[2]))):c=a,b||(e=e||h.easing),p.isFunction(c)&&(c=c.call(f,y,x)),p.isFunction(g)&&(g=g.call(f,y,x)),[c||0,e,g]}function n(a,b){var c,d;return d=(b||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=v.Values.getUnitType(a)),[d,c]}function r(){var a={myParent:f.parentNode||c.body,position:v.getPropertyValue(f,"position"),fontSize:v.getPropertyValue(f,"fontSize")},d=a.position===I.lastPosition&&a.myParent===I.lastParent,e=a.fontSize===I.lastFontSize;I.lastParent=a.myParent,I.lastPosition=a.position,I.lastFontSize=a.fontSize;var h=100,i={};if(e&&d)i.emToPx=I.lastEmToPx,i.percentToPxWidth=I.lastPercentToPxWidth,i.percentToPxHeight=I.lastPercentToPxHeight;else{var j=g(f).isSVG?c.createElementNS("http://www.w3.org/2000/svg","rect"):c.createElement("div");t.init(j),a.myParent.appendChild(j),m.each(["overflow","overflowX","overflowY"],function(a,b){t.CSS.setPropertyValue(j,b,"hidden")}),t.CSS.setPropertyValue(j,"position",a.position),t.CSS.setPropertyValue(j,"fontSize",a.fontSize),t.CSS.setPropertyValue(j,"boxSizing","content-box"),m.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(a,b){t.CSS.setPropertyValue(j,b,h+"%")}),t.CSS.setPropertyValue(j,"paddingLeft",h+"em"),i.percentToPxWidth=I.lastPercentToPxWidth=(parseFloat(v.getPropertyValue(j,"width",null,!0))||1)/h,i.percentToPxHeight=I.lastPercentToPxHeight=(parseFloat(v.getPropertyValue(j,"height",null,!0))||1)/h,i.emToPx=I.lastEmToPx=(parseFloat(v.getPropertyValue(j,"paddingLeft"))||1)/h,a.myParent.removeChild(j)}return null===I.remToPx&&(I.remToPx=parseFloat(v.getPropertyValue(c.body,"fontSize"))||16),null===I.vwToPx&&(I.vwToPx=parseFloat(b.innerWidth)/100,I.vhToPx=parseFloat(b.innerHeight)/100),i.remToPx=I.remToPx,i.vwToPx=I.vwToPx,i.vhToPx=I.vhToPx,t.debug>=1&&console.log("Unit ratios: "+JSON.stringify(i),f),i}if(h.begin&&0===y)try{h.begin.call(o,o)}catch(u){setTimeout(function(){throw u},1)}if("scroll"===C){var w,z,A,D=/^x$/i.test(h.axis)?"Left":"Top",E=parseFloat(h.offset)||0;h.container?p.isWrapped(h.container)||p.isNode(h.container)?(h.container=h.container[0]||h.container,w=h.container["scroll"+D],A=w+m(f).position()[D.toLowerCase()]+E):h.container=null:(w=t.State.scrollAnchor[t.State["scrollProperty"+D]],z=t.State.scrollAnchor[t.State["scrollProperty"+("Left"===D?"Top":"Left")]],A=m(f).offset()[D.toLowerCase()]+E),i={scroll:{rootPropertyValue:!1,startValue:w,currentValue:w,endValue:A,unitType:"",easing:h.easing,scrollData:{container:h.container,direction:D,alternateValue:z}},element:f},t.debug&&console.log("tweensContainer (scroll): ",i.scroll,f)}else if("reverse"===C){if(!g(f).tweensContainer)return void m.dequeue(f,h.queue);"none"===g(f).opts.display&&(g(f).opts.display="auto"),"hidden"===g(f).opts.visibility&&(g(f).opts.visibility="visible"),g(f).opts.loop=!1,g(f).opts.begin=null,g(f).opts.complete=null,s.easing||delete h.easing,s.duration||delete h.duration,h=m.extend({},g(f).opts,h);var F=m.extend(!0,{},g(f).tweensContainer);for(var G in F)if("element"!==G){var H=F[G].startValue;F[G].startValue=F[G].currentValue=F[G].endValue,F[G].endValue=H,p.isEmptyObject(s)||(F[G].easing=h.easing),t.debug&&console.log("reverse tweensContainer ("+G+"): "+JSON.stringify(F[G]),f)}i=F}else if("start"===C){var F;g(f).tweensContainer&&g(f).isAnimating===!0&&(F=g(f).tweensContainer),m.each(q,function(a,b){if(RegExp("^"+v.Lists.colors.join("$|^")+"$").test(a)){var c=l(b,!0),e=c[0],f=c[1],g=c[2];if(v.RegEx.isHex.test(e)){for(var h=["Red","Green","Blue"],i=v.Values.hexToRgb(e),j=g?v.Values.hexToRgb(g):d,k=0;kL;L++){var M={delay:E.delay,progress:E.progress};L===K-1&&(M.display=E.display,M.visibility=E.visibility,M.complete=E.complete),w(o,"reverse",M)}return a()}};t=m.extend(w,t),t.animate=w;var x=b.requestAnimationFrame||o;return t.State.isMobile||c.hidden===d||c.addEventListener("visibilitychange",function(){c.hidden?(x=function(a){return setTimeout(function(){a(!0)},16)},k()):x=b.requestAnimationFrame||o}),a.Velocity=t,a!==b&&(a.fn.velocity=w,a.fn.velocity.defaults=t.defaults),m.each(["Down","Up"],function(a,b){t.Redirects["slide"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j=i.begin,k=i.complete,l={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},n={};i.display===d&&(i.display="Down"===b?"inline"===t.CSS.Values.getDisplayType(a)?"inline-block":"block":"none"),i.begin=function(){j&&j.call(g,g);for(var c in l){n[c]=a.style[c];var d=t.CSS.getPropertyValue(a,c);l[c]="Down"===b?[d,0]:[0,d]}n.overflow=a.style.overflow,a.style.overflow="hidden"},i.complete=function(){for(var b in n)a.style[b]=n[b];k&&k.call(g,g),h&&h.resolver(g)},t(a,l,i)}}),m.each(["In","Out"],function(a,b){t.Redirects["fade"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j={opacity:"In"===b?1:0},k=i.complete;i.complete=e!==f-1?i.begin=null:function(){k&&k.call(g,g),h&&h.resolver(g)},i.display===d&&(i.display="In"===b?"auto":"none"),t(this,j,i)}}),t}(window.jQuery||window.Zepto||window,window,document)})),!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=na(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===ya||f.eventType===Aa)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ba&&(i>xa||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=ma(l.x)>ma(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:la(c/b),y:la(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Ca:ma(a)>=ma(b)?a>0?Da:Ea:b>0?Fa:Ga}function I(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],La)-J(a[1],a[0],La)}function L(a,b){return I(b[0],b[1],La)/I(a[0],a[1],La)}function M(){this.evEl=Na,this.evWin=Oa,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Ra,this.evWin=Sa,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ua,this.evWin=Va,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Aa|Ba)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xa,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(ya|za)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===ya)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Aa|Ba)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Ta={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Ua="touchstart",Va="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Ta[a.type];if(b===ya&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Aa|Ba)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}});var Wa={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Xa="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wa[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==ta,e=c.pointerType==va;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Aa|Ba)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Ya=v(ja.style,"touchAction"),Za=Ya!==d,$a="compute",_a="auto",ab="manipulation",bb="none",cb="pan-x",db="pan-y";T.prototype={set:function(a){a==$a&&(a=this.compute()),Za&&(this.manager.element.style[Ya]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Za){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bb),f=q(d,db),g=q(d,cb);return e||f&&c&Ha||g&&c&Ia?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var eb=1,fb=2,gb=4,hb=8,ib=hb,jb=16,kb=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hb>d&&b(!0),b(),d>=hb&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kb)},canEmit:function(){for(var a=0;af?Da:Ea,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ca:0>g?Fa:Ga,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fb||!(this.state&fb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(aa,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_a]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Aa|Ba)&&!f)this.reset();else if(a.eventType&ya)this.reset(),this._timer=e(function(){this.state=ib,this.tryEmit()},b.time,this);else if(a.eventType&Aa)return ib;return kb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ib&&(a&&a.eventType&Aa?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=na(),this.manager.emit(this.options.event,this._input)))}}),j(ba,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fb)}}),j(ca,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Ha|Ia,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Ha|Ia)?b=a.velocity:c&Ha?b=a.velocityX:c&Ia&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&ma(b)>this.options.velocity&&a.eventType&Aa},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(da,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ab]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance li > .collapsible-header"),b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}),h.not(b).removeClass("active").parent().removeClass("active"),h.not(b).parent().children(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}})}function d(b){b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}})}function e(a){var b=f(a);return b.length>0}function f(a){return a.closest("li > .collapsible-header")}var g=a(this),h=a(this).find("> li > .collapsible-header"),i=g.data("collapsible");g.off("click.collapse","> li > .collapsible-header"),h.off("click.collapse"),g.on("click.collapse","> li > .collapsible-header",function(g){var h=a(this),j=a(g.target);e(j)&&(j=f(j)),j.toggleClass("active"),b.accordion||"accordion"===i||void 0===i?c(j):(d(j),h.hasClass("active")&&d(h))});var h=g.find("> li > .collapsible-header");b.accordion||"accordion"===i||void 0===i?c(h.filter(".active").first()):h.filter(".active").each(function(){d(a(this))})})},a(document).ready(function(){a(".collapsible").collapsible()})}(jQuery),function(a){a.fn.scrollTo=function(b){return a(this).scrollTop(a(this).scrollTop()-a(this).offset().top+a(b).offset().top),this},a.fn.dropdown=function(b){var c={inDuration:300,outDuration:225,constrain_width:!0,hover:!1,gutter:0,belowOrigin:!1,alignment:"left",stopPropagation:!1};return"open"===b?(this.each(function(){a(this).trigger("open")}),!1):"close"===b?(this.each(function(){a(this).trigger("close")}),!1):void this.each(function(){function b(){void 0!==f.data("induration")&&(g.inDuration=f.data("induration")),void 0!==f.data("outduration")&&(g.outDuration=f.data("outduration")),void 0!==f.data("constrainwidth")&&(g.constrain_width=f.data("constrainwidth")),void 0!==f.data("hover")&&(g.hover=f.data("hover")),void 0!==f.data("gutter")&&(g.gutter=f.data("gutter")),void 0!==f.data("beloworigin")&&(g.belowOrigin=f.data("beloworigin")),void 0!==f.data("alignment")&&(g.alignment=f.data("alignment")),void 0!==f.data("stoppropagation")&&(g.stopPropagation=f.data("stoppropagation"))}function d(c){"focus"===c&&(h=!0),b(),i.addClass("active"),f.addClass("active"),g.constrain_width===!0?i.css("width",f.outerWidth()):i.css("white-space","nowrap");var d=window.innerHeight,e=f.innerHeight(),j=f.offset().left,k=f.offset().top-a(window).scrollTop(),l=g.alignment,m=0,n=0,o=0;g.belowOrigin===!0&&(o=e);var p=0,q=0,r=f.parent();if(r.is("body")||(r[0].scrollHeight>r[0].clientHeight&&(p=r[0].scrollTop),r[0].scrollWidth>r[0].clientWidth&&(q=r[0].scrollLeft)),j+i.innerWidth()>a(window).width()?l="right":j-i.innerWidth()+f.innerWidth()<0&&(l="left"),k+i.innerHeight()>d)if(k+e-i.innerHeight()<0){var s=d-k-o;i.css("max-height",s)}else o||(o+=e),o-=i.innerHeight();if("left"===l)m=g.gutter,n=f.position().left+m;else if("right"===l){var t=f.position().left+f.outerWidth()-i.outerWidth();m=-g.gutter,n=t+m}i.css({position:"absolute",top:f.position().top+o+p,left:n+q}),i.stop(!0,!0).css("opacity",0).slideDown({queue:!1,duration:g.inDuration,easing:"easeOutCubic",complete:function(){a(this).css("height","")}}).animate({opacity:1},{queue:!1,duration:g.inDuration,easing:"easeOutSine"})}function e(){h=!1,i.fadeOut(g.outDuration),i.removeClass("active"),f.removeClass("active"),setTimeout(function(){i.css("max-height","")},g.outDuration)}var f=a(this),g=a.extend({},c,g),h=!1,i=a("#"+f.attr("data-activates"));if(b(),f.after(i),g.hover){var j=!1;f.unbind("click."+f.attr("id")),f.on("mouseenter",function(a){j===!1&&(d(),j=!0)}),f.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-content").is(i)||(i.stop(!0,!0),e(),j=!1)}),i.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-button").is(f)||(i.stop(!0,!0),e(),j=!1)})}else f.unbind("click."+f.attr("id")),f.bind("click."+f.attr("id"),function(b){h||(f[0]!=b.currentTarget||f.hasClass("active")||0!==a(b.target).closest(".dropdown-content").length?f.hasClass("active")&&(e(),a(document).unbind("click."+i.attr("id")+" touchstart."+i.attr("id"))):(b.preventDefault(),g.stopPropagation&&b.stopPropagation(),d("click")),i.hasClass("active")&&a(document).bind("click."+i.attr("id")+" touchstart."+i.attr("id"),function(b){i.is(b.target)||f.is(b.target)||f.find(b.target).length||(e(),a(document).unbind("click."+i.attr("id")+" touchstart."+i.attr("id")))}))});f.on("open",function(a,b){d(b)}),f.on("close",e)})},a(document).ready(function(){a(".dropdown-button").dropdown()})}(jQuery),function(a){var b=0,c=0,d=function(){return c++,"materialize-lean-overlay-"+c};a.fn.extend({openModal:function(c){var e=a("body"),f=e.innerWidth();e.css("overflow","hidden"),e.width(f);var g={opacity:.5,in_duration:350,out_duration:250,ready:void 0,complete:void 0,dismissible:!0,starting_top:"4%",ending_top:"10%"},h=a(this);if(!h.hasClass("open")){var i=d(),j=a('
');lStack=++b,j.attr("id",i).css("z-index",1e3+2*lStack),h.data("overlay-id",i).css("z-index",1e3+2*lStack+1),h.addClass("open"),a("body").append(j),c=a.extend(g,c),c.dismissible&&(j.click(function(){h.closeModal(c)}),a(document).on("keyup.leanModal"+i,function(a){27===a.keyCode&&h.closeModal(c)})),h.find(".modal-close").on("click.close",function(a){h.closeModal(c)}),j.css({display:"block",opacity:0}),h.css({display:"block",opacity:0}),j.velocity({opacity:c.opacity},{duration:c.in_duration,queue:!1,ease:"easeOutCubic"}),h.data("associated-overlay",j[0]),h.hasClass("bottom-sheet")?h.velocity({bottom:"0",opacity:1},{duration:c.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof c.ready&&c.ready()}}):(a.Velocity.hook(h,"scaleX",.7),h.css({top:c.starting_top}),h.velocity({top:c.ending_top,opacity:1,scaleX:"1"},{duration:c.in_duration,queue:!1,ease:"easeOutCubic", -complete:function(){"function"==typeof c.ready&&c.ready()}}))}}}),a.fn.extend({closeModal:function(c){var d={out_duration:250,complete:void 0},e=a(this),f=e.data("overlay-id"),g=a("#"+f);e.removeClass("open"),c=a.extend(d,c),a("body").css({overflow:"",width:""}),e.find(".modal-close").off("click.close"),a(document).off("keyup.leanModal"+f),g.velocity({opacity:0},{duration:c.out_duration,queue:!1,ease:"easeOutQuart"}),e.hasClass("bottom-sheet")?e.velocity({bottom:"-100%",opacity:0},{duration:c.out_duration,queue:!1,ease:"easeOutCubic",complete:function(){g.css({display:"none"}),"function"==typeof c.complete&&c.complete(),g.remove(),b--}}):e.velocity({top:c.starting_top,opacity:0,scaleX:.7},{duration:c.out_duration,complete:function(){a(this).css("display","none"),"function"==typeof c.complete&&c.complete(),g.remove(),b--}})}}),a.fn.extend({leanModal:function(b){return this.each(function(){var c={starting_top:"4%"},d=a.extend(c,b);a(this).click(function(b){d.starting_top=(a(this).offset().top-a(window).scrollTop())/1.15;var c=a(this).attr("href")||"#"+a(this).data("target");a(c).openModal(d),b.preventDefault()})})}})}(jQuery),function(a){a.fn.materialbox=function(){return this.each(function(){function b(){f=!1;var b=i.parent(".material-placeholder"),d=(window.innerWidth,window.innerHeight,i.data("width")),g=i.data("height");i.velocity("stop",!0),a("#materialbox-overlay").velocity("stop",!0),a(".materialbox-caption").velocity("stop",!0),a("#materialbox-overlay").velocity({opacity:0},{duration:h,queue:!1,easing:"easeOutQuad",complete:function(){e=!1,a(this).remove()}}),i.velocity({width:d,height:g,left:0,top:0},{duration:h,queue:!1,easing:"easeOutQuad"}),a(".materialbox-caption").velocity({opacity:0},{duration:h,queue:!1,easing:"easeOutQuad",complete:function(){b.css({height:"",width:"",position:"",top:"",left:""}),i.css({height:"",top:"",left:"",width:"","max-width":"",position:"","z-index":""}),i.removeClass("active"),f=!0,a(this).remove(),c&&c.css("overflow","")}})}if(!a(this).hasClass("initialized")){a(this).addClass("initialized");var c,d,e=!1,f=!0,g=275,h=200,i=a(this),j=a("
").addClass("material-placeholder");i.wrap(j),i.on("click",function(){var h=i.parent(".material-placeholder"),j=window.innerWidth,k=window.innerHeight,l=i.width(),m=i.height();if(f===!1)return b(),!1;if(e&&f===!0)return b(),!1;f=!1,i.addClass("active"),e=!0,h.css({width:h[0].getBoundingClientRect().width,height:h[0].getBoundingClientRect().height,position:"relative",top:0,left:0}),c=void 0,d=h[0].parentNode;for(;null!==d&&!a(d).is(document);){var n=a(d);"visible"!==n.css("overflow")&&(n.css("overflow","visible"),c=void 0===c?n:c.add(n)),d=d.parentNode}i.css({position:"absolute","z-index":1e3}).data("width",l).data("height",m);var o=a('
').css({opacity:0}).click(function(){f===!0&&b()});if(i.before(o),o.velocity({opacity:1},{duration:g,queue:!1,easing:"easeOutQuad"}),""!==i.data("caption")){var p=a('
');p.text(i.data("caption")),a("body").append(p),p.css({display:"inline"}),p.velocity({opacity:1},{duration:g,queue:!1,easing:"easeOutQuad"})}var q=0,r=l/j,s=m/k,t=0,u=0;r>s?(q=m/l,t=.9*j,u=.9*j*q):(q=l/m,t=.9*k*q,u=.9*k),i.hasClass("responsive-img")?i.velocity({"max-width":t,width:l},{duration:0,queue:!1,complete:function(){i.css({left:0,top:0}).velocity({height:u,width:t,left:a(document).scrollLeft()+j/2-i.parent(".material-placeholder").offset().left-t/2,top:a(document).scrollTop()+k/2-i.parent(".material-placeholder").offset().top-u/2},{duration:g,queue:!1,easing:"easeOutQuad",complete:function(){f=!0}})}}):i.css("left",0).css("top",0).velocity({height:u,width:t,left:a(document).scrollLeft()+j/2-i.parent(".material-placeholder").offset().left-t/2,top:a(document).scrollTop()+k/2-i.parent(".material-placeholder").offset().top-u/2},{duration:g,queue:!1,easing:"easeOutQuad",complete:function(){f=!0}})}),a(window).scroll(function(){e&&b()}),a(document).keyup(function(a){27===a.keyCode&&f===!0&&e&&b()})}})},a(document).ready(function(){a(".materialboxed").materialbox()})}(jQuery),function(a){a.fn.parallax=function(){var b=a(window).width();return this.each(function(c){function d(c){var d;d=601>b?e.height()>0?e.height():e.children("img").height():e.height()>0?e.height():500;var f=e.children("img").first(),g=f.height(),h=g-d,i=e.offset().top+d,j=e.offset().top,k=a(window).scrollTop(),l=window.innerHeight,m=k+l,n=(m-j)/(d+l),o=Math.round(h*n);c&&f.css("display","block"),i>k&&k+l>j&&f.css("transform","translate3D(-50%,"+o+"px, 0)")}var e=a(this);e.addClass("parallax"),e.children("img").one("load",function(){d(!0)}).each(function(){this.complete&&a(this).load()}),a(window).scroll(function(){b=a(window).width(),d(!1)}),a(window).resize(function(){b=a(window).width(),d(!1)})})}}(jQuery),function(a){var b={init:function(b){var c={onShow:null};return b=a.extend(c,b),this.each(function(){var c=a(this);a(window).width();c.width("100%");var d,e,f=c.find("li.tab a"),g=c.width(),h=Math.max(g,c[0].scrollWidth)/f.length,i=0;d=a(f.filter('[href="'+location.hash+'"]')),0===d.length&&(d=a(this).find("li.tab a.active").first()),0===d.length&&(d=a(this).find("li.tab a").first()),d.addClass("active"),i=f.index(d),0>i&&(i=0),void 0!==d[0]&&(e=a(d[0].hash)),c.append('
');var j=c.find(".indicator");c.is(":visible")&&(j.css({right:g-(i+1)*h}),j.css({left:i*h})),a(window).resize(function(){g=c.width(),h=Math.max(g,c[0].scrollWidth)/f.length,0>i&&(i=0),0!==h&&0!==g&&(j.css({right:g-(i+1)*h}),j.css({left:i*h}))}),f.not(d).each(function(){a(this.hash).hide()}),c.on("click","a",function(k){if(a(this).parent().hasClass("disabled"))return void k.preventDefault();if(!a(this).attr("target")){g=c.width(),h=Math.max(g,c[0].scrollWidth)/f.length,d.removeClass("active"),void 0!==e&&e.hide(),d=a(this),e=a(this.hash),f=c.find("li.tab a"),d.addClass("active");var l=i;i=f.index(a(this)),0>i&&(i=0),void 0!==e&&(e.show(),"function"==typeof b.onShow&&b.onShow.call(this,e)),i-l>=0?(j.velocity({right:g-(i+1)*h},{duration:300,queue:!1,easing:"easeOutQuad"}),j.velocity({left:i*h},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})):(j.velocity({left:i*h},{duration:300,queue:!1,easing:"easeOutQuad"}),j.velocity({right:g-(i+1)*h},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})),k.preventDefault()}})})},select_tab:function(a){this.find('a[href="#'+a+'"]').trigger("click")}};a.fn.tabs=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tooltip"):b.init.apply(this,arguments)},a(document).ready(function(){a("ul.tabs").tabs()})}(jQuery),function(a){a.fn.tooltip=function(c){var d=5,e={delay:350,tooltip:"",position:"bottom",html:!1};return"remove"===c?(this.each(function(){a("#"+a(this).attr("data-tooltip-id")).remove(),a(this).off("mouseenter.tooltip mouseleave.tooltip")}),!1):(c=a.extend(e,c),this.each(function(){var e=Materialize.guid(),f=a(this);f.attr("data-tooltip-id",e);var g,h,i,j,k,l,m=function(){g=f.attr("data-html")?"true"===f.attr("data-html"):c.html,h=f.attr("data-delay"),h=void 0===h||""===h?c.delay:h,i=f.attr("data-position"),i=void 0===i||""===i?c.position:i,j=f.attr("data-tooltip"),j=void 0===j||""===j?c.tooltip:j};m();var n=function(){var b=a('
');return j=g?a("").html(j):a("").text(j),b.append(j).appendTo(a("body")).attr("id",e),l=a('
'),l.appendTo(b),b};k=n(),f.off("mouseenter.tooltip mouseleave.tooltip");var o,p=!1;f.on({"mouseenter.tooltip":function(a){var c=function(){m(),p=!0,k.velocity("stop"),l.velocity("stop"),k.css({display:"block",left:"0px",top:"0px"});var a,c,e,g=f.outerWidth(),h=f.outerHeight(),j=k.outerHeight(),n=k.outerWidth(),o="0px",q="0px",r=8,s=8;"top"===i?(a=f.offset().top-j-d,c=f.offset().left+g/2-n/2,e=b(c,a,n,j),o="-10px",l.css({bottom:0,left:0,borderRadius:"14px 14px 0 0",transformOrigin:"50% 100%",marginTop:j,marginLeft:n/2-l.width()/2})):"left"===i?(a=f.offset().top+h/2-j/2,c=f.offset().left-n-d,e=b(c,a,n,j),q="-10px",l.css({top:"-7px",right:0,width:"14px",height:"14px",borderRadius:"14px 0 0 14px",transformOrigin:"95% 50%",marginTop:j/2,marginLeft:n})):"right"===i?(a=f.offset().top+h/2-j/2,c=f.offset().left+g+d,e=b(c,a,n,j),q="+10px",l.css({top:"-7px",left:0,width:"14px",height:"14px",borderRadius:"0 14px 14px 0",transformOrigin:"5% 50%",marginTop:j/2,marginLeft:"0px"})):(a=f.offset().top+f.outerHeight()+d,c=f.offset().left+g/2-n/2,e=b(c,a,n,j),o="+10px",l.css({top:0,left:0,marginLeft:n/2-l.width()/2})),k.css({top:e.y,left:e.x}),r=Math.SQRT2*n/parseInt(l.css("width")),s=Math.SQRT2*j/parseInt(l.css("height")),k.velocity({marginTop:o,marginLeft:q},{duration:350,queue:!1}).velocity({opacity:1},{duration:300,delay:50,queue:!1}),l.css({display:"block"}).velocity({opacity:1},{duration:55,delay:0,queue:!1}).velocity({scaleX:r,scaleY:s},{duration:300,delay:0,queue:!1,easing:"easeInOutQuad"})};o=setTimeout(c,h)},"mouseleave.tooltip":function(){p=!1,clearTimeout(o),setTimeout(function(){p!==!0&&(k.velocity({opacity:0,marginTop:0,marginLeft:0},{duration:225,queue:!1}),l.velocity({opacity:0,scaleX:1,scaleY:1},{duration:225,queue:!1,complete:function(){l.css("display","none"),k.css("display","none"),p=!1}}))},225)}})}))};var b=function(b,c,d,e){var f=b,g=c;return 0>f?f=4:f+d>window.innerWidth&&(f-=f+d-window.innerWidth),0>g?g=4:g+e>window.innerHeight+a(window).scrollTop&&(g-=g+e-window.innerHeight),{x:f,y:g}};a(document).ready(function(){a(".tooltipped").tooltip()})}(jQuery),function(a){"use strict";function b(a){return null!==a&&a===a.window}function c(a){return b(a)?a:9===a.nodeType&&a.defaultView}function d(a){var b,d,e={top:0,left:0},f=a&&a.ownerDocument;return b=f.documentElement,"undefined"!=typeof a.getBoundingClientRect&&(e=a.getBoundingClientRect()),d=c(f),{top:e.top+d.pageYOffset-b.clientTop,left:e.left+d.pageXOffset-b.clientLeft}}function e(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(b+=c+":"+a[c]+";");return b}function f(a){if(k.allowEvent(a)===!1)return null;for(var b=null,c=a.target||a.srcElement;null!==c.parentElement;){if(!(c instanceof SVGElement||-1===c.className.indexOf("waves-effect"))){b=c;break}if(c.classList.contains("waves-effect")){b=c;break}c=c.parentElement}return b}function g(b){var c=f(b);null!==c&&(j.show(b,c),"ontouchstart"in a&&(c.addEventListener("touchend",j.hide,!1),c.addEventListener("touchcancel",j.hide,!1)),c.addEventListener("mouseup",j.hide,!1),c.addEventListener("mouseleave",j.hide,!1))}var h=h||{},i=document.querySelectorAll.bind(document),j={duration:750,show:function(a,b){if(2===a.button)return!1;var c=b||this,f=document.createElement("div");f.className="waves-ripple",c.appendChild(f);var g=d(c),h=a.pageY-g.top,i=a.pageX-g.left,k="scale("+c.clientWidth/100*10+")";"touches"in a&&(h=a.touches[0].pageY-g.top,i=a.touches[0].pageX-g.left),f.setAttribute("data-hold",Date.now()),f.setAttribute("data-scale",k),f.setAttribute("data-x",i),f.setAttribute("data-y",h);var l={top:h+"px",left:i+"px"};f.className=f.className+" waves-notransition",f.setAttribute("style",e(l)),f.className=f.className.replace("waves-notransition",""),l["-webkit-transform"]=k,l["-moz-transform"]=k,l["-ms-transform"]=k,l["-o-transform"]=k,l.transform=k,l.opacity="1",l["-webkit-transition-duration"]=j.duration+"ms",l["-moz-transition-duration"]=j.duration+"ms",l["-o-transition-duration"]=j.duration+"ms",l["transition-duration"]=j.duration+"ms",l["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f.setAttribute("style",e(l))},hide:function(a){k.touchup(a);var b=this,c=(1.4*b.clientWidth,null),d=b.getElementsByClassName("waves-ripple");if(!(d.length>0))return!1;c=d[d.length-1];var f=c.getAttribute("data-x"),g=c.getAttribute("data-y"),h=c.getAttribute("data-scale"),i=Date.now()-Number(c.getAttribute("data-hold")),l=350-i;0>l&&(l=0),setTimeout(function(){var a={top:g+"px",left:f+"px",opacity:"0","-webkit-transition-duration":j.duration+"ms","-moz-transition-duration":j.duration+"ms","-o-transition-duration":j.duration+"ms","transition-duration":j.duration+"ms","-webkit-transform":h,"-moz-transform":h,"-ms-transform":h,"-o-transform":h,transform:h};c.setAttribute("style",e(a)),setTimeout(function(){try{b.removeChild(c)}catch(a){return!1}},j.duration)},l)},wrapInput:function(a){for(var b=0;b0&&(k.touches-=1)},500):"mousedown"===a.type&&k.touches>0&&(b=!1),b},touchup:function(a){k.allowEvent(a)}};h.displayEffect=function(b){b=b||{},"duration"in b&&(j.duration=b.duration),j.wrapInput(i(".waves-effect")),"ontouchstart"in a&&document.body.addEventListener("touchstart",g,!1),document.body.addEventListener("mousedown",g,!1)},h.attach=function(b){"input"===b.tagName.toLowerCase()&&(j.wrapInput([b]),b=b.parentElement),"ontouchstart"in a&&b.addEventListener("touchstart",g,!1),b.addEventListener("mousedown",g,!1)},a.Waves=h,document.addEventListener("DOMContentLoaded",function(){h.displayEffect()},!1)}(window),Materialize.toast=function(a,b,c,d){function e(a){var b=document.createElement("div");if(b.classList.add("toast"),c)for(var e=c.split(" "),f=0,g=e.length;g>f;f++)b.classList.add(e[f]);("object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&null!==a&&1===a.nodeType&&"string"==typeof a.nodeName)?b.appendChild(a):a instanceof jQuery?b.appendChild(a[0]):b.innerHTML=a;var h=new Hammer(b,{prevent_default:!1});return h.on("pan",function(a){var c=a.deltaX,d=80;b.classList.contains("panning")||b.classList.add("panning");var e=1-Math.abs(c/d);0>e&&(e=0),Vel(b,{left:c,opacity:e},{duration:50,queue:!1,easing:"easeOutQuad"})}),h.on("panend",function(a){var c=a.deltaX,e=80;Math.abs(c)>e?Vel(b,{marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),b.parentNode.removeChild(b)}}):(b.classList.remove("panning"),Vel(b,{left:0,opacity:1},{duration:300,easing:"easeOutExpo",queue:!1}))}),b}c=c||"";var f=document.getElementById("toast-container");null===f&&(f=document.createElement("div"),f.id="toast-container",document.body.appendChild(f));var g=e(a);a&&f.appendChild(g),g.style.top="35px",g.style.opacity=0,Vel(g,{top:"0px",opacity:1},{duration:300,easing:"easeOutCubic",queue:!1});var h=b,i=setInterval(function(){null===g.parentNode&&window.clearInterval(i),g.classList.contains("panning")||(h-=20),0>=h&&(Vel(g,{opacity:0,marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),this[0].parentNode.removeChild(this[0])}}),window.clearInterval(i))},20)},function(a){var b={init:function(b){var c={menuWidth:300,edge:"left",closeOnClick:!1};b=a.extend(c,b),a(this).each(function(){function c(c){g=!1,h=!1,a("body").css({overflow:"",width:""}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),"left"===b.edge?(f.css({width:"",right:"",left:"0"}),e.velocity({translateX:"-100%"},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}})):(f.css({width:"",right:"0",left:""}),e.velocity({translateX:"100%"},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}}))}var d=a(this),e=a("#"+d.attr("data-activates"));300!=b.menuWidth&&e.css("width",b.menuWidth);var f=a('
');a("body").append(f),"left"==b.edge?(e.css("transform","translateX(-100%)"),f.css({left:0})):(e.addClass("right-aligned").css("transform","translateX(100%)"),f.css({right:0})),e.hasClass("fixed")&&window.innerWidth>992&&e.css("transform","translateX(0)"),e.hasClass("fixed")&&a(window).resize(function(){window.innerWidth>992?0!==a("#sidenav-overlay").length&&h?c(!0):e.css("transform","translateX(0%)"):h===!1&&("left"===b.edge?e.css("transform","translateX(-100%)"):e.css("transform","translateX(100%)"))}),b.closeOnClick===!0&&e.on("click.itemclick","a:not(.collapsible-header)",function(){c()});var g=!1,h=!1;f.on("click",function(){h&&c()}),f.hammer({prevent_default:!1}).bind("pan",function(d){if("touch"==d.gesture.pointerType){var f=(d.gesture.direction,d.gesture.center.x),g=(d.gesture.center.y,d.gesture.velocityX,a("body")),i=g.innerWidth();if(g.css("overflow","hidden"),g.width(i),0===a("#sidenav-overlay").length){var j=a('
');j.css("opacity",0).click(function(){c()}),a("body").append(j)}if("left"===b.edge&&(f>b.menuWidth?f=b.menuWidth:0>f&&(f=0)),"left"===b.edge)f=b.menuWidth/2&&(h=!0),e.css("transform","translateX("+(f-b.menuWidth)+"px)");else{f=window.innerWidth-b.menuWidth/2&&(h=!1);var k=f-b.menuWidth/2;0>k&&(k=0),e.css("transform","translateX("+k+"px)")}var l;"left"===b.edge?(l=f/b.menuWidth,a("#sidenav-overlay").velocity({opacity:l},{duration:10,queue:!1,easing:"easeOutQuad"})):(l=Math.abs((f-window.innerWidth)/b.menuWidth),a("#sidenav-overlay").velocity({opacity:l},{duration:10,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(c){if("touch"==c.gesture.pointerType){var d=c.gesture.velocityX,i=c.gesture.center.x,j=i-b.menuWidth,k=i-b.menuWidth/2;j>0&&(j=0),0>k&&(k=0),g=!1,"left"===b.edge?h&&.3>=d||-.5>d?(0!==j&&e.velocity({translateX:[0,j]},{duration:300,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:0,left:""}),h=!0):(!h||d>.3)&&(a("body").css({overflow:"",width:""}),e.velocity({translateX:[-1*b.menuWidth-10,j]},{duration:200,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:"",left:0})):h&&d>=-.3||d>.5?(0!==k&&e.velocity({translateX:[0,k]},{duration:300,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:"",left:0}),h=!0):(!h||-.3>d)&&(a("body").css({overflow:"",width:""}),e.velocity({translateX:[b.menuWidth+10,k]},{duration:200,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:0,left:""}))}}),d.click(function(){if(h===!0)h=!1,g=!1,c();else{var d=a("body"),i=d.innerWidth();d.css("overflow","hidden"),d.width(i),a("body").append(f),"left"===b.edge?(f.css({width:"50%",right:0,left:""}),e.velocity({translateX:[0,-1*b.menuWidth]},{duration:300,queue:!1,easing:"easeOutQuad"})):(f.css({width:"50%",right:"",left:0}),e.velocity({translateX:[0,b.menuWidth]},{duration:300,queue:!1,easing:"easeOutQuad"}));var j=a('
');j.css("opacity",0).click(function(){h=!1,g=!1,c(),j.velocity({opacity:0},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}})}),a("body").append(j),j.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){h=!0,g=!1}})}return!1})})},show:function(){this.trigger("click")},hide:function(){a("#sidenav-overlay").trigger("click")}};a.fn.sideNav=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.sideNav"):b.init.apply(this,arguments)}}(jQuery),function(a){function b(b,c,d,e){var f=a();return a.each(g,function(a,g){if(g.height()>0){var h=g.offset().top,i=g.offset().left,j=i+g.width(),k=h+g.height(),l=!(i>c||e>j||h>d||b>k);l&&f.push(g)}}),f}function c(){++j;var c=f.scrollTop(),d=f.scrollLeft(),e=d+f.width(),g=c+f.height(),i=b(c+k.top+200,e+k.right,g+k.bottom,d+k.left);a.each(i,function(a,b){var c=b.data("scrollSpy:ticks");"number"!=typeof c&&b.triggerHandler("scrollSpy:enter"),b.data("scrollSpy:ticks",j)}),a.each(h,function(a,b){var c=b.data("scrollSpy:ticks");"number"==typeof c&&c!==j&&(b.triggerHandler("scrollSpy:exit"),b.data("scrollSpy:ticks",null))}),h=i}function d(){f.trigger("scrollSpy:winSize")}function e(a,b,c){var d,e,f,g=null,h=0;c||(c={});var i=function(){h=c.leading===!1?0:l(),g=null,f=a.apply(d,e),d=e=null};return function(){var j=l();h||c.leading!==!1||(h=j);var k=b-(j-h);return d=this,e=arguments,0>=k?(clearTimeout(g),g=null,h=j,f=a.apply(d,e),d=e=null):g||c.trailing===!1||(g=setTimeout(i,k)),f}}var f=a(window),g=[],h=[],i=!1,j=0,k={top:0,right:0,bottom:0,left:0},l=Date.now||function(){return(new Date).getTime()};a.scrollSpy=function(b,d){var h={throttle:100,scrollOffset:200};d=a.extend(h,d);var j=[];b=a(b),b.each(function(b,c){g.push(a(c)),a(c).data("scrollSpy:id",b),a('a[href="#'+a(c).attr("id")+'"]').click(function(b){b.preventDefault();var c=a(this.hash).offset().top+1;a("html, body").animate({scrollTop:c-d.scrollOffset},{duration:400,queue:!1,easing:"easeOutCubic"})})}),k.top=d.offsetTop||0,k.right=d.offsetRight||0,k.bottom=d.offsetBottom||0,k.left=d.offsetLeft||0;var l=e(c,d.throttle||100),m=function(){a(document).ready(l)};return i||(f.on("scroll",m),f.on("resize",m),i=!0),setTimeout(m,0),b.on("scrollSpy:enter",function(){j=a.grep(j,function(a){return 0!=a.height()});var b=a(this);j[0]?(a('a[href="#'+j[0].attr("id")+'"]').removeClass("active"),b.data("scrollSpy:id")");e.html(g),b.is(":visible")?e.css("width",b.width()):e.css("width",a(window).width()/2),b.css("height",e.height())}Materialize.updateTextFields=function(){var b="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a(b).each(function(b,c){a(c).val().length>0||c.autofocus||void 0!==a(this).attr("placeholder")||a(c)[0].validity.badInput===!0?a(this).siblings("label").addClass("active"):a(this).siblings("label").removeClass("active")})};var c="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a(document).on("change",c,function(){(0!==a(this).val().length||void 0!==a(this).attr("placeholder"))&&a(this).siblings("label").addClass("active"),validate_field(a(this))}),a(document).ready(function(){Materialize.updateTextFields()}),a(document).on("reset",function(b){var d=a(b.target);d.is("form")&&(d.find(c).removeClass("valid").removeClass("invalid"),d.find(c).each(function(){""===a(this).attr("value")&&a(this).siblings("label").removeClass("active")}),d.find("select.initialized").each(function(){var a=d.find("option[selected]").text();d.siblings("input.select-dropdown").val(a)}))}),a(document).on("focus",c,function(){a(this).siblings("label, .prefix").addClass("active")}),a(document).on("blur",c,function(){var b=a(this),c=".prefix";0===b.val().length&&b[0].validity.badInput!==!0&&void 0===b.attr("placeholder")&&(c+=", label"),b.siblings(c).removeClass("active"),validate_field(b)}),window.validate_field=function(a){var b=void 0!==a.attr("length"),c=parseInt(a.attr("length")),d=a.val().length;0===a.val().length&&a[0].validity.badInput===!1?a.hasClass("validate")&&(a.removeClass("valid"),a.removeClass("invalid")):a.hasClass("validate")&&(a.is(":valid")&&b&&c>=d||a.is(":valid")&&!b?(a.removeClass("invalid"),a.addClass("valid")):(a.removeClass("valid"),a.addClass("invalid")))};var d="input[type=radio], input[type=checkbox]";a(document).on("keyup.radio",d,function(b){if(9===b.which){a(this).addClass("tabbed");var c=a(this);return void c.one("blur",function(b){a(this).removeClass("tabbed")})}});var e=a(".hiddendiv").first();e.length||(e=a('
'),a("body").append(e));var f=".materialize-textarea";a(f).each(function(){var c=a(this);c.val().length&&b(c)}),a("body").on("keyup keydown autoresize",f,function(){b(a(this))}),a(document).on("change",'.file-field input[type="file"]',function(){for(var b=a(this).closest(".file-field"),c=b.find("input.file-path"),d=a(this)[0].files,e=[],f=0;f');a(this).after(b)});var j=".range-field";a(document).on("change",h,function(b){var c=a(this).siblings(".thumb");c.find(".value").html(a(this).val())}),a(document).on("input mousedown touchstart",h,function(b){var c=a(this).siblings(".thumb"),d=a(this).outerWidth();c.length<=0&&(c=a(''),a(this).after(c)),c.find(".value").html(a(this).val()),i=!0,a(this).addClass("active"),c.hasClass("active")||c.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),"input"!==b.type&&(g=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left,0>g?g=0:g>d&&(g=d),c.addClass("active").css("left",g)),c.find(".value").html(a(this).val())}),a(document).on("mouseup touchend",j,function(){i=!1,a(this).removeClass("active")}),a(document).on("mousemove touchmove",j,function(b){var c,d=a(this).children(".thumb");if(i){d.hasClass("active")||d.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),c=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left;var e=a(this).outerWidth();0>c?c=0:c>e&&(c=e),d.addClass("active").css("left",c),d.find(".value").html(d.siblings(h).val())}}),a(document).on("mouseout touchleave",j,function(){if(!i){var b=a(this).children(".thumb");b.hasClass("active")&&b.velocity({height:"0",width:"0",top:"10px",marginLeft:"-6px"},{duration:100}),b.removeClass("active")}}),a.fn.autocomplete=function(b){var c={data:{}};return b=a.extend(c,b),this.each(function(){var c=a(this),d=b.data,e=c.closest(".input-field");if(!a.isEmptyObject(d)){var f=a('');e.length?e.append(f):c.after(f);var g=function(a,b){var c=b.find("img"),d=b.text().toLowerCase().indexOf(""+a.toLowerCase()),e=d+a.length-1,f=b.text().slice(0,d),g=b.text().slice(d,e+1),h=b.text().slice(e+1);b.html(""+f+""+g+""+h+""),c.length&&b.prepend(c)};c.on("keyup",function(b){if(13===b.which)return void f.find("li").first().click();var e=c.val().toLowerCase();if(f.empty(),""!==e)for(var h in d)if(d.hasOwnProperty(h)&&-1!==h.toLowerCase().indexOf(e)&&h.toLowerCase()!==e){var i=a("
  • ");d[h]?i.append(''+h+""):i.append(""+h+""),f.append(i),g(e,i)}}),f.on("click","li",function(){c.val(a(this).text().trim()),f.empty()})}})}}),a.fn.material_select=function(b){function c(a,b,c){var e=a.indexOf(b),f=-1===e;return f?a.push(b):a.splice(e,1),c.siblings("ul.dropdown-content").find("li").eq(b).toggleClass("active"),c.find("option").eq(b).prop("selected",f),d(a,c),f}function d(a,b){for(var c="",d=0,e=a.length;e>d;d++){var f=b.find("option").eq(a[d]).text();c+=0===d?f:", "+f}""===c&&(c=b.find("option:disabled").eq(0).text()),b.siblings("input.select-dropdown").val(c)}a(this).each(function(){var d=a(this);if(!d.hasClass("browser-default")){var e=d.attr("multiple")?!0:!1,f=d.data("select-id");if(f&&(d.parent().find("span.caret").remove(),d.parent().find("input").remove(),d.unwrap(),a("ul#select-options-"+f).remove()),"destroy"===b)return void d.data("select-id",null).removeClass("initialized");var g=Materialize.guid();d.data("select-id",g);var h=a('
    ');h.addClass(d.attr("class"));var i=a(''),j=d.children("option, optgroup"),k=[],l=!1,m=d.find("option:selected").html()||d.find("option:first").html()||"",n=function(b,c,d){var e=c.is(":disabled")?"disabled ":"",f="optgroup-option"===d?"optgroup-option ":"",g=c.data("icon"),h=c.attr("class");if(g){var j="";return h&&(j=' class="'+h+'"'),"multiple"===d?i.append(a('
  • "+c.html()+"
  • ")):i.append(a('
  • "+c.html()+"
  • ")),!0}"multiple"===d?i.append(a('
  • "+c.html()+"
  • ")):i.append(a('
  • '+c.html()+"
  • "))};j.length&&j.each(function(){if(a(this).is("option"))e?n(d,a(this),"multiple"):n(d,a(this));else if(a(this).is("optgroup")){var b=a(this).children("option");i.append(a('
  • '+a(this).attr("label")+"
  • ")),b.each(function(){n(d,a(this),"optgroup-option")})}}),i.find("li:not(.optgroup)").each(function(f){a(this).click(function(g){if(!a(this).hasClass("disabled")&&!a(this).hasClass("optgroup")){var h=!0;e?(a('input[type="checkbox"]',this).prop("checked",function(a,b){return!b}),h=c(k,a(this).index(),d),q.trigger("focus")):(i.find("li").removeClass("active"),a(this).toggleClass("active"),q.val(a(this).text())),r(i,a(this)),d.find("option").eq(f).prop("selected",h),d.trigger("change"),"undefined"!=typeof b&&b()}g.stopPropagation()})}),d.wrap(h);var o=a('');d.is(":disabled")&&o.addClass("disabled");var p=m.replace(/"/g,"""),q=a('');d.before(q),q.before(o),q.after(i),d.is(":disabled")||q.dropdown({hover:!1,closeOnClick:!1}),d.attr("tabindex")&&a(q[0]).attr("tabindex",d.attr("tabindex")),d.addClass("initialized"),q.on({focus:function(){if(a("ul.select-dropdown").not(i[0]).is(":visible")&&a("input.select-dropdown").trigger("close"),!i.is(":visible")){a(this).trigger("open",["focus"]);var b=a(this).val(),c=i.find("li").filter(function(){return a(this).text().toLowerCase()===b.toLowerCase()})[0];r(i,c)}},click:function(a){a.stopPropagation()}}),q.on("blur",function(){e||a(this).trigger("close"),i.find("li.selected").removeClass("selected")}),i.hover(function(){l=!0},function(){l=!1}),a(window).on({click:function(){e&&(l||q.trigger("close"))}}),e&&d.find("option:selected:not(:disabled)").each(function(){ -var b=a(this).index();c(k,b,d),i.find("li").eq(b).find(":checkbox").prop("checked",!0)});var r=function(b,c){if(c){b.find("li.selected").removeClass("selected");var d=a(c);d.addClass("selected"),i.scrollTo(d)}},s=[],t=function(b){if(9==b.which)return void q.trigger("close");if(40==b.which&&!i.is(":visible"))return void q.trigger("open");if(13!=b.which||i.is(":visible")){b.preventDefault();var c=String.fromCharCode(b.which).toLowerCase(),d=[9,13,27,38,40];if(c&&-1===d.indexOf(b.which)){s.push(c);var f=s.join(""),g=i.find("li").filter(function(){return 0===a(this).text().toLowerCase().indexOf(f)})[0];g&&r(i,g)}if(13==b.which){var h=i.find("li.selected:not(.disabled)")[0];h&&(a(h).trigger("click"),e||q.trigger("close"))}40==b.which&&(g=i.find("li.selected").length?i.find("li.selected").next("li:not(.disabled)")[0]:i.find("li:not(.disabled)")[0],r(i,g)),27==b.which&&q.trigger("close"),38==b.which&&(g=i.find("li.selected").prev("li:not(.disabled)")[0],g&&r(i,g)),setTimeout(function(){s=[]},1e3)}};q.on("keydown",t)}})}}(jQuery),function(a){var b={init:function(b){var c={indicators:!0,height:400,transition:500,interval:6e3};return b=a.extend(c,b),this.each(function(){function c(a,b){a.hasClass("center-align")?a.velocity({opacity:0,translateY:-100},{duration:b,queue:!1}):a.hasClass("right-align")?a.velocity({opacity:0,translateX:100},{duration:b,queue:!1}):a.hasClass("left-align")&&a.velocity({opacity:0,translateX:-100},{duration:b,queue:!1})}function d(a){a>=j.length?a=0:0>a&&(a=j.length-1),k=i.find(".active").index(),k!=a&&(e=j.eq(k),$caption=e.find(".caption"),e.removeClass("active"),e.velocity({opacity:0},{duration:b.transition,queue:!1,easing:"easeOutQuad",complete:function(){j.not(".active").velocity({opacity:0,translateX:0,translateY:0},{duration:0,queue:!1})}}),c($caption,b.transition),b.indicators&&f.eq(k).removeClass("active"),j.eq(a).velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),j.eq(a).find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,delay:b.transition,queue:!1,easing:"easeOutQuad"}),j.eq(a).addClass("active"),b.indicators&&f.eq(a).addClass("active"))}var e,f,g,h=a(this),i=h.find("ul.slides").first(),j=i.find("> li"),k=i.find(".active").index();-1!=k&&(e=j.eq(k)),h.hasClass("fullscreen")||(b.indicators?h.height(b.height+40):h.height(b.height),i.height(b.height)),j.find(".caption").each(function(){c(a(this),0)}),j.find("img").each(function(){var b="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";a(this).attr("src")!==b&&(a(this).css("background-image","url("+a(this).attr("src")+")"),a(this).attr("src",b))}),b.indicators&&(f=a('
      '),j.each(function(c){var e=a('
    • ');e.click(function(){var c=i.parent(),e=c.find(a(this)).index();d(e),clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval)}),f.append(e)}),h.append(f),f=h.find("ul.indicators").find("li.indicator-item")),e?e.show():(j.first().addClass("active").velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),k=0,e=j.eq(k),b.indicators&&f.eq(k).addClass("active")),e.find("img").each(function(){e.find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,queue:!1,easing:"easeOutQuad"})}),g=setInterval(function(){k=i.find(".active").index(),d(k+1)},b.transition+b.interval);var l=!1,m=!1,n=!1;h.hammer({prevent_default:!1}).bind("pan",function(a){if("touch"===a.gesture.pointerType){clearInterval(g);var b=a.gesture.direction,c=a.gesture.deltaX,d=a.gesture.velocityX;$curr_slide=i.find(".active"),$curr_slide.velocity({translateX:c},{duration:50,queue:!1,easing:"easeOutQuad"}),4===b&&(c>h.innerWidth()/2||-.65>d)?n=!0:2===b&&(c<-1*h.innerWidth()/2||d>.65)&&(m=!0);var e;m&&(e=$curr_slide.next(),0===e.length&&(e=j.first()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"})),n&&(e=$curr_slide.prev(),0===e.length&&(e=j.last()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(a){"touch"===a.gesture.pointerType&&($curr_slide=i.find(".active"),l=!1,curr_index=i.find(".active").index(),!n&&!m||j.length<=1?$curr_slide.velocity({translateX:0},{duration:300,queue:!1,easing:"easeOutQuad"}):m?(d(curr_index+1),$curr_slide.velocity({translateX:-1*h.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):n&&(d(curr_index-1),$curr_slide.velocity({translateX:h.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})),m=!1,n=!1,clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval))}),h.on("sliderPause",function(){clearInterval(g)}),h.on("sliderStart",function(){clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval)}),h.on("sliderNext",function(){k=i.find(".active").index(),d(k+1)}),h.on("sliderPrev",function(){k=i.find(".active").index(),d(k-1)})})},pause:function(){a(this).trigger("sliderPause")},start:function(){a(this).trigger("sliderStart")},next:function(){a(this).trigger("sliderNext")},prev:function(){a(this).trigger("sliderPrev")}};a.fn.slider=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tooltip"):b.init.apply(this,arguments)}}(jQuery),function(a){a(document).ready(function(){a(document).on("click.card",".card",function(b){a(this).find("> .card-reveal").length&&(a(b.target).is(a(".card-reveal .card-title"))||a(b.target).is(a(".card-reveal .card-title i"))?a(this).find(".card-reveal").velocity({translateY:0},{duration:225,queue:!1,easing:"easeInOutQuad",complete:function(){a(this).css({display:"none"})}}):(a(b.target).is(a(".card .activator"))||a(b.target).is(a(".card .activator i")))&&(a(b.target).closest(".card").css("overflow","hidden"),a(this).find(".card-reveal").css({display:"block"}).velocity("stop",!1).velocity({translateY:"-100%"},{duration:300,queue:!1,easing:"easeInOutQuad"})))})})}(jQuery),function(a){var b=!1,c={data:[],placeholder:"",secondaryPlaceholder:""};a(document).ready(function(){a(document).on("click",".chip .close",function(b){var c=a(this).closest(".chips");c.data("initialized")||a(this).closest(".chip").remove()})}),a.fn.material_chip=function(d){var e=this;return this.$el=a(this),this.$document=a(document),this.SELS={CHIPS:".chips",CHIP:".chip",INPUT:"input",DELETE:".material-icons",SELECTED_CHIP:".selected"},"data"===d?this.$el.data("chips"):"options"===d?this.$el.data("options"):(this.$el.data("options",a.extend({},c,d)),this.init=function(){var b=0;e.$el.each(function(){var c=a(this);if(!c.data("initialized")){var d=c.data("options");(!d.data||!d.data instanceof Array)&&(d.data=[]),c.data("chips",d.data),c.data("index",b),c.data("initialized",!0),c.hasClass(e.SELS.CHIPS)||c.addClass("chips"),e.chips(c),b++}})},this.handleEvents=function(){var b=e.SELS;e.$document.on("click",b.CHIPS,function(c){a(c.target).find(b.INPUT).focus()}),e.$document.on("click",b.CHIP,function(c){a(b.CHIP).removeClass("selected"),a(this).toggleClass("selected")}),e.$document.on("keydown",function(c){if(!a(c.target).is("input, textarea")){var d,f=e.$document.find(b.CHIP+b.SELECTED_CHIP),g=f.closest(b.CHIPS),h=f.siblings(b.CHIP).length;if(f.length)if(8===c.which||46===c.which){c.preventDefault();var i=g.data("index");d=f.index(),e.deleteChip(i,d,g);var j=null;h>d+1?j=d:(d===h||d+1===h)&&(j=h-1),0>j&&(j=null),null!==j&&e.selectChip(i,j,g),h||g.find("input").focus()}else if(37===c.which){if(d=f.index()-1,0>d)return;a(b.CHIP).removeClass("selected"),e.selectChip(g.data("index"),d,g)}else if(39===c.which){if(d=f.index()+1,a(b.CHIP).removeClass("selected"),d>h)return void g.find("input").focus();e.selectChip(g.data("index"),d,g)}}}),e.$document.on("focusin",b.CHIPS+" "+b.INPUT,function(c){a(c.target).closest(b.CHIPS).addClass("focus"),a(b.CHIP).removeClass("selected")}),e.$document.on("focusout",b.CHIPS+" "+b.INPUT,function(c){a(c.target).closest(b.CHIPS).removeClass("focus")}),e.$document.on("keydown",b.CHIPS+" "+b.INPUT,function(c){var d=a(c.target),f=d.closest(b.CHIPS),g=f.data("index"),h=f.children(b.CHIP).length;return 13===c.which?(c.preventDefault(),e.addChip(g,{tag:d.val()},f),void d.val("")):8!==c.keyCode&&37!==c.keyCode||""!==d.val()||!h?void 0:(e.selectChip(g,h-1,f),void d.blur())}),e.$document.on("click",b.CHIPS+" "+b.DELETE,function(c){var d=a(c.target),f=d.closest(b.CHIPS),g=d.closest(b.CHIP);c.stopPropagation(),e.deleteChip(f.data("index"),g.index(),f),f.find("input").focus()})},this.chips=function(a){var b="";a.data("options");a.data("chips").forEach(function(a){b+=e.renderChip(a)}),b+='',a.html(b),e.setPlaceholder(a)},this.renderChip=function(a){if(a.tag){var b='
      '+a.tag;return a.image&&(b+=' '),b+='close',b+="
      "}},this.setPlaceholder=function(a){var b=a.data("options");a.data("chips").length&&b.placeholder?a.find("input").prop("placeholder",b.placeholder):!a.data("chips").length&&b.secondaryPlaceholder&&a.find("input").prop("placeholder",b.secondaryPlaceholder)},this.isValid=function(a,b){for(var c=a.data("chips"),d=!1,e=0;e=e&&!a(this).hasClass("pinned")&&(c(a(this)),a(this).css("top",b.offset),a(this).addClass("pinned")),eb.bottom&&!a(this).hasClass("pin-bottom")&&(c(a(this)),a(this).addClass("pin-bottom"),a(this).css("top",b.bottom-g))})}var e=Materialize.guid(),f=a(this),g=a(this).offset().top;a(this).data("pushpin-id",e),d(f,a(window).scrollTop()),a(window).on("scroll."+e,function(){var c=a(window).scrollTop()+b.offset;d(f,c)})}))}}(jQuery),function(a){a(document).ready(function(){a.fn.reverse=[].reverse,a(document).on("mouseenter.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle)",function(c){var d=a(this);b(d)}),a(document).on("mouseleave.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle)",function(b){var d=a(this);c(d)}),a(document).on("click.fixedActionBtn",".fixed-action-btn.click-to-toggle > a",function(d){var e=a(this),f=e.parent();f.hasClass("active")?c(f):b(f)})}),a.fn.extend({openFAB:function(){b(a(this))},closeFAB:function(){c(a(this))}});var b=function(b){if($this=b,$this.hasClass("active")===!1){var c,d,e=$this.hasClass("horizontal");e===!0?d=40:c=40,$this.addClass("active"),$this.find("ul .btn-floating").velocity({scaleY:".4",scaleX:".4",translateY:c+"px",translateX:d+"px"},{duration:0});var f=0;$this.find("ul .btn-floating").reverse().each(function(){a(this).velocity({opacity:"1",scaleX:"1",scaleY:"1",translateY:"0",translateX:"0"},{duration:80,delay:f}),f+=40})}},c=function(a){$this=a;var b,c,d=$this.hasClass("horizontal");d===!0?c=40:b=40,$this.removeClass("active");$this.find("ul .btn-floating").velocity("stop",!0),$this.find("ul .btn-floating").velocity({opacity:"0",scaleX:".4",scaleY:".4",translateY:b+"px",translateX:c+"px"},{duration:80})}}(jQuery),function(a){Materialize.fadeInImage=function(b){var c;if("string"==typeof b)c=a(b);else{if("object"!=typeof b)return;c=b}c.css({opacity:0}),a(c).velocity({opacity:1},{duration:650,queue:!1,easing:"easeOutSine"}),a(c).velocity({opacity:1},{duration:1300,queue:!1,easing:"swing",step:function(b,c){c.start=100;var d=b/100,e=150-(100-b)/1.75;100>e&&(e=100),b>=0&&a(this).css({"-webkit-filter":"grayscale("+d+")brightness("+e+"%)",filter:"grayscale("+d+")brightness("+e+"%)"})}})},Materialize.showStaggeredList=function(b){var c;if("string"==typeof b)c=a(b);else{if("object"!=typeof b)return;c=b}var d=0;c.find("li").velocity({translateX:"-100px"},{duration:0}),c.find("li").each(function(){a(this).velocity({opacity:"1",translateX:"0"},{duration:800,delay:d,easing:[60,10]}),d+=120})},a(document).ready(function(){var b=!1,c=!1;a(".dismissable").each(function(){a(this).hammer({prevent_default:!1}).bind("pan",function(d){if("touch"===d.gesture.pointerType){var e=a(this),f=d.gesture.direction,g=d.gesture.deltaX,h=d.gesture.velocityX;e.velocity({translateX:g},{duration:50,queue:!1,easing:"easeOutQuad"}),4===f&&(g>e.innerWidth()/2||-.75>h)&&(b=!0),2===f&&(g<-1*e.innerWidth()/2||h>.75)&&(c=!0)}}).bind("panend",function(d){if(Math.abs(d.gesture.deltaX)j+g&&e.done!==!0){if("function"==typeof h)h.call(this,i);else if("string"==typeof h){var k=new Function(h);k(i)}e.done=!0}}}}},100)}}(jQuery),function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):this.Picker=a(jQuery)}(function(a){function b(f,g,i,l){function m(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",y.component.nodes(t.open),v.box),v.wrap),v.frame),v.holder)}function n(){w.data(g,y).addClass(v.input).attr("tabindex",-1).val(w.data("value")?y.get("select",u.format):f.value),u.editable||w.on("focus."+t.id+" click."+t.id,function(a){a.preventDefault(),y.$root.eq(0).focus()}).on("keydown."+t.id,q),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"})}function o(){y.$root.on({keydown:q,focusin:function(a){y.$root.removeClass(v.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=y.$root.children()[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is("input, select, textarea, button, option")||(b.preventDefault(),y.$root.eq(0).focus()))}}).on({focus:function(){w.addClass(v.target)},blur:function(){w.removeClass(v.target)}}).on("focus.toOpen",r).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var b=a(this),c=b.data(),d=b.hasClass(v.navDisabled)||b.hasClass(v.disabled),e=h();e=e&&(e.type||e.href),(d||e&&!a.contains(y.$root[0],e))&&y.$root.eq(0).focus(),!d&&c.nav?y.set("highlight",y.component.item.highlight,{nav:c.nav}):!d&&"pick"in c?y.set("select",c.pick):c.clear?y.clear().close(!0):c.close&&y.close(!0)}),e(y.$root[0],"hidden",!0)}function p(){var b;u.hiddenName===!0?(b=f.name,f.name=""):(b=["string"==typeof u.hiddenPrefix?u.hiddenPrefix:"","string"==typeof u.hiddenSuffix?u.hiddenSuffix:"_submit"],b=b[0]+f.name+b[1]),y._hidden=a('")[0],w.on("change."+t.id,function(){y._hidden.value=f.value?y.get("select",u.formatSubmit):""}),u.container?a(u.container).append(y._hidden):w.after(y._hidden)}function q(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(y.close(),!1):void((32==b||c||!t.open&&y.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?y.clear().close():y.open()))}function r(a){a.stopPropagation(),"focus"==a.type&&y.$root.addClass(v.focused),y.open()}if(!f)return b;var s=!1,t={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},u=i?a.extend(!0,{},i.defaults,l):l||{},v=a.extend({},b.klasses(),u.klass),w=a(f),x=function(){return this.start()},y=x.prototype={constructor:x,$node:w,start:function(){return t&&t.start?y:(t.methods={},t.start=!0,t.open=!1,t.type=f.type,f.autofocus=f==h(),f.readOnly=!u.editable,f.id=f.id||t.id,"text"!=f.type&&(f.type="text"),y.component=new i(y,u),y.$root=a(b._.node("div",m(),v.picker,'id="'+f.id+'_root" tabindex="0"')),o(),u.formatSubmit&&p(),n(),u.container?a(u.container).append(y.$root):w.after(y.$root),y.on({start:y.component.onStart,render:y.component.onRender,stop:y.component.onStop,open:y.component.onOpen,close:y.component.onClose,set:y.component.onSet}).on({start:u.onStart,render:u.onRender,stop:u.onStop,open:u.onOpen,close:u.onClose,set:u.onSet}),s=c(y.$root.children()[0]),f.autofocus&&y.open(),y.trigger("start").trigger("render"))},render:function(a){return a?y.$root.html(m()):y.$root.find("."+v.box).html(y.component.nodes(t.open)),y.trigger("render")},stop:function(){return t.start?(y.close(),y._hidden&&y._hidden.parentNode.removeChild(y._hidden),y.$root.remove(),w.removeClass(v.input).removeData(g),setTimeout(function(){w.off("."+t.id)},0),f.type=t.type,f.readOnly=!1,y.trigger("stop"),t.methods={},t.start=!1,y):y},open:function(c){return t.open?y:(w.addClass(v.active),e(f,"expanded",!0),setTimeout(function(){y.$root.addClass(v.opened),e(y.$root[0],"hidden",!1)},0),c!==!1&&(t.open=!0,s&&k.css("overflow","hidden").css("padding-right","+="+d()),y.$root.eq(0).focus(),j.on("click."+t.id+" focusin."+t.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&y.close(b===y.$root.children()[0])}).on("keydown."+t.id,function(c){var d=c.keyCode,e=y.component.key[d],f=c.target;27==d?y.close(!0):f!=y.$root[0]||!e&&13!=d?a.contains(y.$root[0],f)&&13==d&&(c.preventDefault(),f.click()):(c.preventDefault(),e?b._.trigger(y.component.key.go,y,[b._.trigger(e)]):y.$root.find("."+v.highlighted).hasClass(v.disabled)||y.set("select",y.component.item.highlight).close())})),y.trigger("open"))},close:function(a){return a&&(y.$root.off("focus.toOpen").eq(0).focus(),setTimeout(function(){y.$root.on("focus.toOpen",r)},0)),w.removeClass(v.active),e(f,"expanded",!1),setTimeout(function(){y.$root.removeClass(v.opened+" "+v.focused),e(y.$root[0],"hidden",!0)},0),t.open?(t.open=!1,s&&k.css("overflow","").css("padding-right","-="+d()),j.off("."+t.id),y.trigger("close")):y},clear:function(a){return y.set("clear",null,a)},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in y.component.item&&(void 0===f&&(f=null),y.component.set(e,f,d)),("select"==e||"clear"==e)&&w.val("clear"==e?"":y.get(e,u.format)).trigger("change");y.render()}return d.muted?y:y.trigger("set",h)},get:function(a,c){if(a=a||"value",null!=t[a])return t[a];if("valueSubmit"==a){if(y._hidden)return y._hidden.value;a="value"}if("value"==a)return f.value;if(a in y.component.item){if("string"==typeof c){var d=y.component.get(a);return d?b._.trigger(y.component.formats.toString,y.component,[c,d]):""}return y.component.get(a)}},on:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(b){g||(h[b]=c);for(e in h)f=h[e],d&&(e="_"+e),t.methods[e]=t.methods[e]||[],t.methods[e].push(f)}return y},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;a').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('
      ').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}function h(){try{return document.activeElement}catch(a){}}var i=a(window),j=a(document),k=a(document.documentElement);return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",target:a+"__input--target",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+""):""},lead:function(a){return(10>a?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b}),function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0],e=d.value,f=a.$node.data("value"),g=f||e,h=f?b.formatSubmit:b.format,i=function(){return d.currentStyle?"rtl"==d.currentStyle.direction:"rtl"==getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),g?c.set("select",g,{format:h}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return i()?-1:1},37:function(){return i()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(b.year,b.month,b.date+a);c.set("highlight",d,{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})},1).on("open",function(){var d="";c.disabled(c.get("now"))&&(d=":not(."+b.klass.buttonToday+")"),a.$root.find("button"+d+", select").attr("disabled",!1)},1).on("close",function(){a.$root.find("button, select").attr("disabled",!0)},1)}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c,c==-(1/0)||c==1/0?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(c[0],c[1],c[2]),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)||f.isDate(c)?g.normalize(new Date(c),d):g.now(a,c,d),{year:e||c.getFullYear(),month:e||c.getMonth(),date:e||c.getDate(),day:e||c.getDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setDate(b.getDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(f,g+(d&&d.nav?d.nav:0),1),f=e.getFullYear(),g=e.getMonth();new Date(f,g,h).getMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?"string"==typeof b?b=c.parse(a,b):f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-(1/0):1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=-1===j.item.enable,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;dc.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&0>l)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.monthk.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pickc.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to):!1},c.prototype.isDateOverlap=function(a,c){var d=this,e=d.settings.firstDay?1:0;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?(a=a%7+e,a===d.create(c).day+1):f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?(c=c%7+e,c===d.create(a).day+1):b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;gi;i+=1){if(h=e[i],d.isDateExact(h,a)){c=e[i]=null,j=!0;break}if(d.isDateOverlap(h,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[3]||c.push("inverted")):f.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;g>i;i+=1)if(d.isDateExact(e[i],a)){e[i]=null;break}if(j)for(i=0;g>i;i+=1)if(d.isDateOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.nodes=function(a){var b=this,c=b.settings,g=b.item,h=g.now,i=g.select,j=g.highlight,k=g.view,l=g.disable,m=g.min,n=g.max,o=function(a,b){return c.firstDay&&(a.push(a.shift()),b.push(b.shift())),f.node("thead",f.node("tr",f.group({min:0,max:d-1,i:1,node:"th",item:function(d){return[a[d],c.klass.weekdays,'scope=col title="'+b[d]+'"']}})))}((c.showWeekdaysFull?c.weekdaysFull:c.weekdaysLetter).slice(0),c.weekdaysFull.slice(0)),p=function(a){return f.node("div"," ",c.klass["nav"+(a?"Next":"Prev")]+(a&&k.year>=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",controls:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(d){var e=c.showMonthsShort?c.monthsShort:c.monthsFull;return"short_months"==d&&(e=c.monthsShort),c.selectMonths&&void 0==d?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[e[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&an.month?" disabled":"")]}}),c.klass.selectMonth+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table" -})+' title="'+c.labelMonthSelect+'"'):"short_months"==d?null!=i?f.node("div",e[i.month]):f.node("div",e[k.month]):f.node("div",e[k.month],c.klass.month)},r=function(d){var e=k.year,g=c.selectYears===!0?5:~~(c.selectYears/2);if(g){var h=m.year,i=n.year,j=e-g,l=e+g;if(h>j&&(l+=h-j,j=h),l>i){var o=j-h,p=l-i;j-=o>p?p:o,l=i}if(c.selectYears&&void 0==d)return f.node("select",f.group({min:j,max:l,i:1,node:"option",item:function(a){return[a,0,"value="+a+(e==a?" selected":"")]}}),c.klass.selectYear+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return"raw"==d?f.node("div",e):f.node("div",e,c.klass.year)};return createDayLabel=function(){return null!=i?f.node("div",i.date):f.node("div",h.date)},createWeekdayLabel=function(){var a;a=null!=i?i.day:h.day;var b=c.weekdaysFull[a];return b},f.node("div",f.node("div",createWeekdayLabel(),"picker__weekday-display")+f.node("div",q("short_months"),c.klass.month_display)+f.node("div",createDayLabel(),c.klass.day_display)+f.node("div",r("raw"),c.klass.year_display),c.klass.date_display)+f.node("div",f.node("div",(c.selectYears?q()+r():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pickn.pick,o=f.trigger(b.formats.toString,b,[c.format,a]);return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",label:o,selected:d&&b.$node.val()===o?!0:null,activedescendant:e?!0:null,disabled:g?!0:null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",controls:b.$node[0].id,readonly:!0})),c.klass.calendar_container)+f.node("div",f.node("button",c.today,"btn-flat picker__today","type=button data-pick="+h.pick+(a&&!b.disabled(h)?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.clear,"btn-flat picker__clear","type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.close,"btn-flat picker__close","type=button data-close=true "+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysLetter:["S","M","T","W","T","F","S"],today:"Today",clear:"Clear",close:"Close",format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",date_display:a+"date-display",day_display:a+"day-display",month_display:a+"month-display",year_display:a+"year-display",calendar_container:a+"calendar-container",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today",buttonClose:a+"button--close"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)}),function(a){function b(){var b=+a(this).attr("length"),c=+a(this).val().length,d=b>=c;a(this).parent().find('span[class="character-counter"]').html(c+"/"+b),e(d,a(this))}function c(b){var c=b.parent().find('span[class="character-counter"]');c.length||(c=a("").addClass("character-counter").css("float","right").css("font-size","12px").css("height",1),b.parent().append(c))}function d(){a(this).parent().find('span[class="character-counter"]').html("")}function e(a,b){var c=b.hasClass("invalid");a&&c?b.removeClass("invalid"):a||c||(b.removeClass("valid"),b.addClass("invalid"))}a.fn.characterCounter=function(){return this.each(function(){var e=a(this),f=e.parent().find('span[class="character-counter"]');if(!f.length){var g=void 0!==e.attr("length");g&&(e.on("input",b),e.on("focus",b),e.on("blur",d),c(e))}})},a(document).ready(function(){a("input, textarea").characterCounter()})}(jQuery),function(a){var b={init:function(b){var c={time_constant:200,dist:-100,shift:0,padding:0,full_width:!1,indicators:!1,no_wrap:!1};return b=a.extend(c,b),this.each(function(){function c(){"undefined"!=typeof window.ontouchstart&&(H[0].addEventListener("touchstart",l),H[0].addEventListener("touchmove",m),H[0].addEventListener("touchend",n)),H[0].addEventListener("mousedown",l),H[0].addEventListener("mousemove",m),H[0].addEventListener("mouseup",n),H[0].addEventListener("mouseleave",n),H[0].addEventListener("click",j)}function d(a){return a.targetTouches&&a.targetTouches.length>=1?a.targetTouches[0].clientX:a.clientX}function e(a){return a.targetTouches&&a.targetTouches.length>=1?a.targetTouches[0].clientY:a.clientY}function f(a){return a>=t?a%t:0>a?f(t+a%t):a}function g(a){var c,d,e,g,h,i,j;if(p="number"==typeof a?a:p,q=Math.floor((p+s/2)/s),e=p-q*s,g=0>e?1:-1,h=-g*e*2/s,d=t>>1,b.full_width?j="translateX(0)":(j="translateX("+(H[0].clientWidth-item_width)/2+"px) ",j+="translateY("+(H[0].clientHeight-item_width)/2+"px)"),I){var k=q%t,l=G.find(".indicator-item.active");l.index()!==k&&(l.removeClass("active"),G.find(".indicator-item").eq(k).addClass("active"))}for((!b.no_wrap||q>=0&&t>q)&&(i=o[f(q)],i.style[A]=j+" translateX("+-e/2+"px) translateX("+g*b.shift*h*c+"px) translateZ("+b.dist*h+"px)",i.style.zIndex=0,b.full_width?tweenedOpacity=1:tweenedOpacity=1-.2*h,i.style.opacity=tweenedOpacity,i.style.display="block"),c=1;d>=c;++c)b.full_width?(zTranslation=b.dist,tweenedOpacity=c===d&&0>e?1-h:1):(zTranslation=b.dist*(2*c+h*g),tweenedOpacity=1-.2*(2*c+h*g)),(!b.no_wrap||t>q+c)&&(i=o[f(q+c)],i.style[A]=j+" translateX("+(b.shift+(s*c-e)/2)+"px) translateZ("+zTranslation+"px)",i.style.zIndex=-c,i.style.opacity=tweenedOpacity,i.style.display="block"),b.full_width?(zTranslation=b.dist,tweenedOpacity=c===d&&e>0?1-h:1):(zTranslation=b.dist*(2*c-h*g),tweenedOpacity=1-.2*(2*c-h*g)),(!b.no_wrap||q-c>=0)&&(i=o[f(q-c)],i.style[A]=j+" translateX("+(-b.shift+(-s*c-e)/2)+"px) translateZ("+zTranslation+"px)",i.style.zIndex=-c,i.style.opacity=tweenedOpacity,i.style.display="block");(!b.no_wrap||q>=0&&t>q)&&(i=o[f(q)],i.style[A]=j+" translateX("+-e/2+"px) translateX("+g*b.shift*h+"px) translateZ("+b.dist*h+"px)",i.style.zIndex=0,b.full_width?tweenedOpacity=1:tweenedOpacity=1-.2*h,i.style.opacity=tweenedOpacity,i.style.display="block")}function h(){var a,b,c,d;a=Date.now(),b=a-C,C=a,c=p-B,B=p,d=1e3*c/(1+b),z=.8*d+.2*z}function i(){var a,c;w&&(a=Date.now()-C,c=w*Math.exp(-a/b.time_constant),c>2||-2>c?(g(x-c),requestAnimationFrame(i)):g(x))}function j(c){if(E)return c.preventDefault(),c.stopPropagation(),!1;if(!b.full_width){var d=a(c.target).closest(".carousel-item").index(),e=q%t-d;0!==e&&(c.preventDefault(),c.stopPropagation()),k(d)}}function k(a){var c=q%t-a;b.no_wrap||(0>c?Math.abs(c+t)0&&Math.abs(c-t)c?H.trigger("carouselNext",[Math.abs(c)]):c>0&&H.trigger("carouselPrev",[c])}function l(a){r=!0,E=!1,F=!1,u=d(a),v=e(a),z=w=0,B=p,C=Date.now(),clearInterval(D),D=setInterval(h,100)}function m(a){var b,c,f;if(r)if(b=d(a),y=e(a),c=u-b,f=Math.abs(v-y),30>f&&!F)(c>2||-2>c)&&(E=!0,u=b,g(p+c));else{if(E)return a.preventDefault(),a.stopPropagation(),!1;F=!0}return E?(a.preventDefault(),a.stopPropagation(),!1):void 0}function n(a){return r?(r=!1,clearInterval(D),x=p,(z>10||-10>z)&&(w=.9*z,x=p+w),x=Math.round(x/s)*s,b.no_wrap&&(x>=s*(t-1)?x=s*(t-1):0>x&&(x=0)),w=x-p,C=Date.now(),requestAnimationFrame(i),E&&(a.preventDefault(),a.stopPropagation()),!1):void 0}var o,p,q,r,s,t,u,v,w,x,z,A,B,C,D,E,F,G=a('
        '),H=a(this),I=H.attr("data-indicators")||b.indicators;if(H.hasClass("initialized"))return a(this).trigger("carouselNext",[1e-6]),!0;if(b.full_width){b.dist=0;var J=H.find(".carousel-item img").first();J.length?imageHeight=J.load(function(){H.css("height",a(this).height())}):(imageHeight=H.find(".carousel-item").first().height(),H.css("height",imageHeight)),I&&H.find(".carousel-fixed-item").addClass("with-indicators")}H.addClass("initialized"),r=!1,p=x=0,o=[],item_width=H.find(".carousel-item").first().innerWidth(),s=2*item_width+b.padding,H.find(".carousel-item").each(function(b){if(o.push(a(this)[0]),I){var c=a('
      • ');0===b&&c.addClass("active"),c.click(function(){var b=a(this).index();k(b)}),G.append(c)}}),I&&H.append(G),t=o.length,A="transform",["webkit","Moz","O","ms"].every(function(a){var b=a+"Transform";return"undefined"!=typeof document.body.style[b]?(A=b,!1):!0}),window.onresize=g,c(),g(p),a(this).on("carouselNext",function(a,b){void 0===b&&(b=1),x=p+s*b,p!==x&&(w=x-p,C=Date.now(),requestAnimationFrame(i))}),a(this).on("carouselPrev",function(a,b){void 0===b&&(b=1),x=p-s*b,p!==x&&(w=x-p,C=Date.now(),requestAnimationFrame(i))}),a(this).on("carouselSet",function(a,b){void 0===b&&(b=0),k(b)})})},next:function(b){a(this).trigger("carouselNext",[b])},prev:function(b){a(this).trigger("carouselPrev",[b])},set:function(b){a(this).trigger("carouselSet",[b])}};a.fn.carousel=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.carousel"):b.init.apply(this,arguments)}}(jQuery); \ No newline at end of file diff --git a/production/bower_components/Materialize/bower.json b/production/bower_components/Materialize/bower.json deleted file mode 100644 index 6a6f649..0000000 --- a/production/bower_components/Materialize/bower.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "materialize", - "description": "A modern responsive front-end framework based on Material Design", - "keywords": [ - "css", - "js", - "sass", - "mobile-first", - "responsive", - "front-end", - "framework", - "ux", - "material", - "design" - ], - "main": [ - "bin/materialize.css", - "bin/materialize.js" - ], - "ignore": [ - "jade/", - ".gitignore", - "CNAME", - "css/", - "bower.json", - "README.md", - "images/", - "js/jquery.timeago.js", - "js/init.js", - "js/prism.js", - "res/", - "sass/style.scss", - "sass/ghpages-materialize.scss", - "**/*.html", - "**/*.zip", - "**/*.txt", - "sitemap.xml", - "package.json", - "Gruntfile.js" - ], - "dependencies": { - "jquery": ">=2.1.1" - }, - "devDependencies": { - } -} diff --git a/production/bower_components/Materialize/dist/css/materialize.css b/production/bower_components/Materialize/dist/css/materialize.css deleted file mode 100644 index 81041d2..0000000 --- a/production/bower_components/Materialize/dist/css/materialize.css +++ /dev/null @@ -1,8461 +0,0 @@ -/*! - * Materialize v0.97.7 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -.materialize-red { - background-color: #e51c23 !important; -} - -.materialize-red-text { - color: #e51c23 !important; -} - -.materialize-red.lighten-5 { - background-color: #fdeaeb !important; -} - -.materialize-red-text.text-lighten-5 { - color: #fdeaeb !important; -} - -.materialize-red.lighten-4 { - background-color: #f8c1c3 !important; -} - -.materialize-red-text.text-lighten-4 { - color: #f8c1c3 !important; -} - -.materialize-red.lighten-3 { - background-color: #f3989b !important; -} - -.materialize-red-text.text-lighten-3 { - color: #f3989b !important; -} - -.materialize-red.lighten-2 { - background-color: #ee6e73 !important; -} - -.materialize-red-text.text-lighten-2 { - color: #ee6e73 !important; -} - -.materialize-red.lighten-1 { - background-color: #ea454b !important; -} - -.materialize-red-text.text-lighten-1 { - color: #ea454b !important; -} - -.materialize-red.darken-1 { - background-color: #d0181e !important; -} - -.materialize-red-text.text-darken-1 { - color: #d0181e !important; -} - -.materialize-red.darken-2 { - background-color: #b9151b !important; -} - -.materialize-red-text.text-darken-2 { - color: #b9151b !important; -} - -.materialize-red.darken-3 { - background-color: #a21318 !important; -} - -.materialize-red-text.text-darken-3 { - color: #a21318 !important; -} - -.materialize-red.darken-4 { - background-color: #8b1014 !important; -} - -.materialize-red-text.text-darken-4 { - color: #8b1014 !important; -} - -.red { - background-color: #F44336 !important; -} - -.red-text { - color: #F44336 !important; -} - -.red.lighten-5 { - background-color: #FFEBEE !important; -} - -.red-text.text-lighten-5 { - color: #FFEBEE !important; -} - -.red.lighten-4 { - background-color: #FFCDD2 !important; -} - -.red-text.text-lighten-4 { - color: #FFCDD2 !important; -} - -.red.lighten-3 { - background-color: #EF9A9A !important; -} - -.red-text.text-lighten-3 { - color: #EF9A9A !important; -} - -.red.lighten-2 { - background-color: #E57373 !important; -} - -.red-text.text-lighten-2 { - color: #E57373 !important; -} - -.red.lighten-1 { - background-color: #EF5350 !important; -} - -.red-text.text-lighten-1 { - color: #EF5350 !important; -} - -.red.darken-1 { - background-color: #E53935 !important; -} - -.red-text.text-darken-1 { - color: #E53935 !important; -} - -.red.darken-2 { - background-color: #D32F2F !important; -} - -.red-text.text-darken-2 { - color: #D32F2F !important; -} - -.red.darken-3 { - background-color: #C62828 !important; -} - -.red-text.text-darken-3 { - color: #C62828 !important; -} - -.red.darken-4 { - background-color: #B71C1C !important; -} - -.red-text.text-darken-4 { - color: #B71C1C !important; -} - -.red.accent-1 { - background-color: #FF8A80 !important; -} - -.red-text.text-accent-1 { - color: #FF8A80 !important; -} - -.red.accent-2 { - background-color: #FF5252 !important; -} - -.red-text.text-accent-2 { - color: #FF5252 !important; -} - -.red.accent-3 { - background-color: #FF1744 !important; -} - -.red-text.text-accent-3 { - color: #FF1744 !important; -} - -.red.accent-4 { - background-color: #D50000 !important; -} - -.red-text.text-accent-4 { - color: #D50000 !important; -} - -.pink { - background-color: #e91e63 !important; -} - -.pink-text { - color: #e91e63 !important; -} - -.pink.lighten-5 { - background-color: #fce4ec !important; -} - -.pink-text.text-lighten-5 { - color: #fce4ec !important; -} - -.pink.lighten-4 { - background-color: #f8bbd0 !important; -} - -.pink-text.text-lighten-4 { - color: #f8bbd0 !important; -} - -.pink.lighten-3 { - background-color: #f48fb1 !important; -} - -.pink-text.text-lighten-3 { - color: #f48fb1 !important; -} - -.pink.lighten-2 { - background-color: #f06292 !important; -} - -.pink-text.text-lighten-2 { - color: #f06292 !important; -} - -.pink.lighten-1 { - background-color: #ec407a !important; -} - -.pink-text.text-lighten-1 { - color: #ec407a !important; -} - -.pink.darken-1 { - background-color: #d81b60 !important; -} - -.pink-text.text-darken-1 { - color: #d81b60 !important; -} - -.pink.darken-2 { - background-color: #c2185b !important; -} - -.pink-text.text-darken-2 { - color: #c2185b !important; -} - -.pink.darken-3 { - background-color: #ad1457 !important; -} - -.pink-text.text-darken-3 { - color: #ad1457 !important; -} - -.pink.darken-4 { - background-color: #880e4f !important; -} - -.pink-text.text-darken-4 { - color: #880e4f !important; -} - -.pink.accent-1 { - background-color: #ff80ab !important; -} - -.pink-text.text-accent-1 { - color: #ff80ab !important; -} - -.pink.accent-2 { - background-color: #ff4081 !important; -} - -.pink-text.text-accent-2 { - color: #ff4081 !important; -} - -.pink.accent-3 { - background-color: #f50057 !important; -} - -.pink-text.text-accent-3 { - color: #f50057 !important; -} - -.pink.accent-4 { - background-color: #c51162 !important; -} - -.pink-text.text-accent-4 { - color: #c51162 !important; -} - -.purple { - background-color: #9c27b0 !important; -} - -.purple-text { - color: #9c27b0 !important; -} - -.purple.lighten-5 { - background-color: #f3e5f5 !important; -} - -.purple-text.text-lighten-5 { - color: #f3e5f5 !important; -} - -.purple.lighten-4 { - background-color: #e1bee7 !important; -} - -.purple-text.text-lighten-4 { - color: #e1bee7 !important; -} - -.purple.lighten-3 { - background-color: #ce93d8 !important; -} - -.purple-text.text-lighten-3 { - color: #ce93d8 !important; -} - -.purple.lighten-2 { - background-color: #ba68c8 !important; -} - -.purple-text.text-lighten-2 { - color: #ba68c8 !important; -} - -.purple.lighten-1 { - background-color: #ab47bc !important; -} - -.purple-text.text-lighten-1 { - color: #ab47bc !important; -} - -.purple.darken-1 { - background-color: #8e24aa !important; -} - -.purple-text.text-darken-1 { - color: #8e24aa !important; -} - -.purple.darken-2 { - background-color: #7b1fa2 !important; -} - -.purple-text.text-darken-2 { - color: #7b1fa2 !important; -} - -.purple.darken-3 { - background-color: #6a1b9a !important; -} - -.purple-text.text-darken-3 { - color: #6a1b9a !important; -} - -.purple.darken-4 { - background-color: #4a148c !important; -} - -.purple-text.text-darken-4 { - color: #4a148c !important; -} - -.purple.accent-1 { - background-color: #ea80fc !important; -} - -.purple-text.text-accent-1 { - color: #ea80fc !important; -} - -.purple.accent-2 { - background-color: #e040fb !important; -} - -.purple-text.text-accent-2 { - color: #e040fb !important; -} - -.purple.accent-3 { - background-color: #d500f9 !important; -} - -.purple-text.text-accent-3 { - color: #d500f9 !important; -} - -.purple.accent-4 { - background-color: #aa00ff !important; -} - -.purple-text.text-accent-4 { - color: #aa00ff !important; -} - -.deep-purple { - background-color: #673ab7 !important; -} - -.deep-purple-text { - color: #673ab7 !important; -} - -.deep-purple.lighten-5 { - background-color: #ede7f6 !important; -} - -.deep-purple-text.text-lighten-5 { - color: #ede7f6 !important; -} - -.deep-purple.lighten-4 { - background-color: #d1c4e9 !important; -} - -.deep-purple-text.text-lighten-4 { - color: #d1c4e9 !important; -} - -.deep-purple.lighten-3 { - background-color: #b39ddb !important; -} - -.deep-purple-text.text-lighten-3 { - color: #b39ddb !important; -} - -.deep-purple.lighten-2 { - background-color: #9575cd !important; -} - -.deep-purple-text.text-lighten-2 { - color: #9575cd !important; -} - -.deep-purple.lighten-1 { - background-color: #7e57c2 !important; -} - -.deep-purple-text.text-lighten-1 { - color: #7e57c2 !important; -} - -.deep-purple.darken-1 { - background-color: #5e35b1 !important; -} - -.deep-purple-text.text-darken-1 { - color: #5e35b1 !important; -} - -.deep-purple.darken-2 { - background-color: #512da8 !important; -} - -.deep-purple-text.text-darken-2 { - color: #512da8 !important; -} - -.deep-purple.darken-3 { - background-color: #4527a0 !important; -} - -.deep-purple-text.text-darken-3 { - color: #4527a0 !important; -} - -.deep-purple.darken-4 { - background-color: #311b92 !important; -} - -.deep-purple-text.text-darken-4 { - color: #311b92 !important; -} - -.deep-purple.accent-1 { - background-color: #b388ff !important; -} - -.deep-purple-text.text-accent-1 { - color: #b388ff !important; -} - -.deep-purple.accent-2 { - background-color: #7c4dff !important; -} - -.deep-purple-text.text-accent-2 { - color: #7c4dff !important; -} - -.deep-purple.accent-3 { - background-color: #651fff !important; -} - -.deep-purple-text.text-accent-3 { - color: #651fff !important; -} - -.deep-purple.accent-4 { - background-color: #6200ea !important; -} - -.deep-purple-text.text-accent-4 { - color: #6200ea !important; -} - -.indigo { - background-color: #3f51b5 !important; -} - -.indigo-text { - color: #3f51b5 !important; -} - -.indigo.lighten-5 { - background-color: #e8eaf6 !important; -} - -.indigo-text.text-lighten-5 { - color: #e8eaf6 !important; -} - -.indigo.lighten-4 { - background-color: #c5cae9 !important; -} - -.indigo-text.text-lighten-4 { - color: #c5cae9 !important; -} - -.indigo.lighten-3 { - background-color: #9fa8da !important; -} - -.indigo-text.text-lighten-3 { - color: #9fa8da !important; -} - -.indigo.lighten-2 { - background-color: #7986cb !important; -} - -.indigo-text.text-lighten-2 { - color: #7986cb !important; -} - -.indigo.lighten-1 { - background-color: #5c6bc0 !important; -} - -.indigo-text.text-lighten-1 { - color: #5c6bc0 !important; -} - -.indigo.darken-1 { - background-color: #3949ab !important; -} - -.indigo-text.text-darken-1 { - color: #3949ab !important; -} - -.indigo.darken-2 { - background-color: #303f9f !important; -} - -.indigo-text.text-darken-2 { - color: #303f9f !important; -} - -.indigo.darken-3 { - background-color: #283593 !important; -} - -.indigo-text.text-darken-3 { - color: #283593 !important; -} - -.indigo.darken-4 { - background-color: #1a237e !important; -} - -.indigo-text.text-darken-4 { - color: #1a237e !important; -} - -.indigo.accent-1 { - background-color: #8c9eff !important; -} - -.indigo-text.text-accent-1 { - color: #8c9eff !important; -} - -.indigo.accent-2 { - background-color: #536dfe !important; -} - -.indigo-text.text-accent-2 { - color: #536dfe !important; -} - -.indigo.accent-3 { - background-color: #3d5afe !important; -} - -.indigo-text.text-accent-3 { - color: #3d5afe !important; -} - -.indigo.accent-4 { - background-color: #304ffe !important; -} - -.indigo-text.text-accent-4 { - color: #304ffe !important; -} - -.blue { - background-color: #2196F3 !important; -} - -.blue-text { - color: #2196F3 !important; -} - -.blue.lighten-5 { - background-color: #E3F2FD !important; -} - -.blue-text.text-lighten-5 { - color: #E3F2FD !important; -} - -.blue.lighten-4 { - background-color: #BBDEFB !important; -} - -.blue-text.text-lighten-4 { - color: #BBDEFB !important; -} - -.blue.lighten-3 { - background-color: #90CAF9 !important; -} - -.blue-text.text-lighten-3 { - color: #90CAF9 !important; -} - -.blue.lighten-2 { - background-color: #64B5F6 !important; -} - -.blue-text.text-lighten-2 { - color: #64B5F6 !important; -} - -.blue.lighten-1 { - background-color: #42A5F5 !important; -} - -.blue-text.text-lighten-1 { - color: #42A5F5 !important; -} - -.blue.darken-1 { - background-color: #1E88E5 !important; -} - -.blue-text.text-darken-1 { - color: #1E88E5 !important; -} - -.blue.darken-2 { - background-color: #1976D2 !important; -} - -.blue-text.text-darken-2 { - color: #1976D2 !important; -} - -.blue.darken-3 { - background-color: #1565C0 !important; -} - -.blue-text.text-darken-3 { - color: #1565C0 !important; -} - -.blue.darken-4 { - background-color: #0D47A1 !important; -} - -.blue-text.text-darken-4 { - color: #0D47A1 !important; -} - -.blue.accent-1 { - background-color: #82B1FF !important; -} - -.blue-text.text-accent-1 { - color: #82B1FF !important; -} - -.blue.accent-2 { - background-color: #448AFF !important; -} - -.blue-text.text-accent-2 { - color: #448AFF !important; -} - -.blue.accent-3 { - background-color: #2979FF !important; -} - -.blue-text.text-accent-3 { - color: #2979FF !important; -} - -.blue.accent-4 { - background-color: #2962FF !important; -} - -.blue-text.text-accent-4 { - color: #2962FF !important; -} - -.light-blue { - background-color: #03a9f4 !important; -} - -.light-blue-text { - color: #03a9f4 !important; -} - -.light-blue.lighten-5 { - background-color: #e1f5fe !important; -} - -.light-blue-text.text-lighten-5 { - color: #e1f5fe !important; -} - -.light-blue.lighten-4 { - background-color: #b3e5fc !important; -} - -.light-blue-text.text-lighten-4 { - color: #b3e5fc !important; -} - -.light-blue.lighten-3 { - background-color: #81d4fa !important; -} - -.light-blue-text.text-lighten-3 { - color: #81d4fa !important; -} - -.light-blue.lighten-2 { - background-color: #4fc3f7 !important; -} - -.light-blue-text.text-lighten-2 { - color: #4fc3f7 !important; -} - -.light-blue.lighten-1 { - background-color: #29b6f6 !important; -} - -.light-blue-text.text-lighten-1 { - color: #29b6f6 !important; -} - -.light-blue.darken-1 { - background-color: #039be5 !important; -} - -.light-blue-text.text-darken-1 { - color: #039be5 !important; -} - -.light-blue.darken-2 { - background-color: #0288d1 !important; -} - -.light-blue-text.text-darken-2 { - color: #0288d1 !important; -} - -.light-blue.darken-3 { - background-color: #0277bd !important; -} - -.light-blue-text.text-darken-3 { - color: #0277bd !important; -} - -.light-blue.darken-4 { - background-color: #01579b !important; -} - -.light-blue-text.text-darken-4 { - color: #01579b !important; -} - -.light-blue.accent-1 { - background-color: #80d8ff !important; -} - -.light-blue-text.text-accent-1 { - color: #80d8ff !important; -} - -.light-blue.accent-2 { - background-color: #40c4ff !important; -} - -.light-blue-text.text-accent-2 { - color: #40c4ff !important; -} - -.light-blue.accent-3 { - background-color: #00b0ff !important; -} - -.light-blue-text.text-accent-3 { - color: #00b0ff !important; -} - -.light-blue.accent-4 { - background-color: #0091ea !important; -} - -.light-blue-text.text-accent-4 { - color: #0091ea !important; -} - -.cyan { - background-color: #00bcd4 !important; -} - -.cyan-text { - color: #00bcd4 !important; -} - -.cyan.lighten-5 { - background-color: #e0f7fa !important; -} - -.cyan-text.text-lighten-5 { - color: #e0f7fa !important; -} - -.cyan.lighten-4 { - background-color: #b2ebf2 !important; -} - -.cyan-text.text-lighten-4 { - color: #b2ebf2 !important; -} - -.cyan.lighten-3 { - background-color: #80deea !important; -} - -.cyan-text.text-lighten-3 { - color: #80deea !important; -} - -.cyan.lighten-2 { - background-color: #4dd0e1 !important; -} - -.cyan-text.text-lighten-2 { - color: #4dd0e1 !important; -} - -.cyan.lighten-1 { - background-color: #26c6da !important; -} - -.cyan-text.text-lighten-1 { - color: #26c6da !important; -} - -.cyan.darken-1 { - background-color: #00acc1 !important; -} - -.cyan-text.text-darken-1 { - color: #00acc1 !important; -} - -.cyan.darken-2 { - background-color: #0097a7 !important; -} - -.cyan-text.text-darken-2 { - color: #0097a7 !important; -} - -.cyan.darken-3 { - background-color: #00838f !important; -} - -.cyan-text.text-darken-3 { - color: #00838f !important; -} - -.cyan.darken-4 { - background-color: #006064 !important; -} - -.cyan-text.text-darken-4 { - color: #006064 !important; -} - -.cyan.accent-1 { - background-color: #84ffff !important; -} - -.cyan-text.text-accent-1 { - color: #84ffff !important; -} - -.cyan.accent-2 { - background-color: #18ffff !important; -} - -.cyan-text.text-accent-2 { - color: #18ffff !important; -} - -.cyan.accent-3 { - background-color: #00e5ff !important; -} - -.cyan-text.text-accent-3 { - color: #00e5ff !important; -} - -.cyan.accent-4 { - background-color: #00b8d4 !important; -} - -.cyan-text.text-accent-4 { - color: #00b8d4 !important; -} - -.teal { - background-color: #009688 !important; -} - -.teal-text { - color: #009688 !important; -} - -.teal.lighten-5 { - background-color: #e0f2f1 !important; -} - -.teal-text.text-lighten-5 { - color: #e0f2f1 !important; -} - -.teal.lighten-4 { - background-color: #b2dfdb !important; -} - -.teal-text.text-lighten-4 { - color: #b2dfdb !important; -} - -.teal.lighten-3 { - background-color: #80cbc4 !important; -} - -.teal-text.text-lighten-3 { - color: #80cbc4 !important; -} - -.teal.lighten-2 { - background-color: #4db6ac !important; -} - -.teal-text.text-lighten-2 { - color: #4db6ac !important; -} - -.teal.lighten-1 { - background-color: #26a69a !important; -} - -.teal-text.text-lighten-1 { - color: #26a69a !important; -} - -.teal.darken-1 { - background-color: #00897b !important; -} - -.teal-text.text-darken-1 { - color: #00897b !important; -} - -.teal.darken-2 { - background-color: #00796b !important; -} - -.teal-text.text-darken-2 { - color: #00796b !important; -} - -.teal.darken-3 { - background-color: #00695c !important; -} - -.teal-text.text-darken-3 { - color: #00695c !important; -} - -.teal.darken-4 { - background-color: #004d40 !important; -} - -.teal-text.text-darken-4 { - color: #004d40 !important; -} - -.teal.accent-1 { - background-color: #a7ffeb !important; -} - -.teal-text.text-accent-1 { - color: #a7ffeb !important; -} - -.teal.accent-2 { - background-color: #64ffda !important; -} - -.teal-text.text-accent-2 { - color: #64ffda !important; -} - -.teal.accent-3 { - background-color: #1de9b6 !important; -} - -.teal-text.text-accent-3 { - color: #1de9b6 !important; -} - -.teal.accent-4 { - background-color: #00bfa5 !important; -} - -.teal-text.text-accent-4 { - color: #00bfa5 !important; -} - -.green { - background-color: #4CAF50 !important; -} - -.green-text { - color: #4CAF50 !important; -} - -.green.lighten-5 { - background-color: #E8F5E9 !important; -} - -.green-text.text-lighten-5 { - color: #E8F5E9 !important; -} - -.green.lighten-4 { - background-color: #C8E6C9 !important; -} - -.green-text.text-lighten-4 { - color: #C8E6C9 !important; -} - -.green.lighten-3 { - background-color: #A5D6A7 !important; -} - -.green-text.text-lighten-3 { - color: #A5D6A7 !important; -} - -.green.lighten-2 { - background-color: #81C784 !important; -} - -.green-text.text-lighten-2 { - color: #81C784 !important; -} - -.green.lighten-1 { - background-color: #66BB6A !important; -} - -.green-text.text-lighten-1 { - color: #66BB6A !important; -} - -.green.darken-1 { - background-color: #43A047 !important; -} - -.green-text.text-darken-1 { - color: #43A047 !important; -} - -.green.darken-2 { - background-color: #388E3C !important; -} - -.green-text.text-darken-2 { - color: #388E3C !important; -} - -.green.darken-3 { - background-color: #2E7D32 !important; -} - -.green-text.text-darken-3 { - color: #2E7D32 !important; -} - -.green.darken-4 { - background-color: #1B5E20 !important; -} - -.green-text.text-darken-4 { - color: #1B5E20 !important; -} - -.green.accent-1 { - background-color: #B9F6CA !important; -} - -.green-text.text-accent-1 { - color: #B9F6CA !important; -} - -.green.accent-2 { - background-color: #69F0AE !important; -} - -.green-text.text-accent-2 { - color: #69F0AE !important; -} - -.green.accent-3 { - background-color: #00E676 !important; -} - -.green-text.text-accent-3 { - color: #00E676 !important; -} - -.green.accent-4 { - background-color: #00C853 !important; -} - -.green-text.text-accent-4 { - color: #00C853 !important; -} - -.light-green { - background-color: #8bc34a !important; -} - -.light-green-text { - color: #8bc34a !important; -} - -.light-green.lighten-5 { - background-color: #f1f8e9 !important; -} - -.light-green-text.text-lighten-5 { - color: #f1f8e9 !important; -} - -.light-green.lighten-4 { - background-color: #dcedc8 !important; -} - -.light-green-text.text-lighten-4 { - color: #dcedc8 !important; -} - -.light-green.lighten-3 { - background-color: #c5e1a5 !important; -} - -.light-green-text.text-lighten-3 { - color: #c5e1a5 !important; -} - -.light-green.lighten-2 { - background-color: #aed581 !important; -} - -.light-green-text.text-lighten-2 { - color: #aed581 !important; -} - -.light-green.lighten-1 { - background-color: #9ccc65 !important; -} - -.light-green-text.text-lighten-1 { - color: #9ccc65 !important; -} - -.light-green.darken-1 { - background-color: #7cb342 !important; -} - -.light-green-text.text-darken-1 { - color: #7cb342 !important; -} - -.light-green.darken-2 { - background-color: #689f38 !important; -} - -.light-green-text.text-darken-2 { - color: #689f38 !important; -} - -.light-green.darken-3 { - background-color: #558b2f !important; -} - -.light-green-text.text-darken-3 { - color: #558b2f !important; -} - -.light-green.darken-4 { - background-color: #33691e !important; -} - -.light-green-text.text-darken-4 { - color: #33691e !important; -} - -.light-green.accent-1 { - background-color: #ccff90 !important; -} - -.light-green-text.text-accent-1 { - color: #ccff90 !important; -} - -.light-green.accent-2 { - background-color: #b2ff59 !important; -} - -.light-green-text.text-accent-2 { - color: #b2ff59 !important; -} - -.light-green.accent-3 { - background-color: #76ff03 !important; -} - -.light-green-text.text-accent-3 { - color: #76ff03 !important; -} - -.light-green.accent-4 { - background-color: #64dd17 !important; -} - -.light-green-text.text-accent-4 { - color: #64dd17 !important; -} - -.lime { - background-color: #cddc39 !important; -} - -.lime-text { - color: #cddc39 !important; -} - -.lime.lighten-5 { - background-color: #f9fbe7 !important; -} - -.lime-text.text-lighten-5 { - color: #f9fbe7 !important; -} - -.lime.lighten-4 { - background-color: #f0f4c3 !important; -} - -.lime-text.text-lighten-4 { - color: #f0f4c3 !important; -} - -.lime.lighten-3 { - background-color: #e6ee9c !important; -} - -.lime-text.text-lighten-3 { - color: #e6ee9c !important; -} - -.lime.lighten-2 { - background-color: #dce775 !important; -} - -.lime-text.text-lighten-2 { - color: #dce775 !important; -} - -.lime.lighten-1 { - background-color: #d4e157 !important; -} - -.lime-text.text-lighten-1 { - color: #d4e157 !important; -} - -.lime.darken-1 { - background-color: #c0ca33 !important; -} - -.lime-text.text-darken-1 { - color: #c0ca33 !important; -} - -.lime.darken-2 { - background-color: #afb42b !important; -} - -.lime-text.text-darken-2 { - color: #afb42b !important; -} - -.lime.darken-3 { - background-color: #9e9d24 !important; -} - -.lime-text.text-darken-3 { - color: #9e9d24 !important; -} - -.lime.darken-4 { - background-color: #827717 !important; -} - -.lime-text.text-darken-4 { - color: #827717 !important; -} - -.lime.accent-1 { - background-color: #f4ff81 !important; -} - -.lime-text.text-accent-1 { - color: #f4ff81 !important; -} - -.lime.accent-2 { - background-color: #eeff41 !important; -} - -.lime-text.text-accent-2 { - color: #eeff41 !important; -} - -.lime.accent-3 { - background-color: #c6ff00 !important; -} - -.lime-text.text-accent-3 { - color: #c6ff00 !important; -} - -.lime.accent-4 { - background-color: #aeea00 !important; -} - -.lime-text.text-accent-4 { - color: #aeea00 !important; -} - -.yellow { - background-color: #ffeb3b !important; -} - -.yellow-text { - color: #ffeb3b !important; -} - -.yellow.lighten-5 { - background-color: #fffde7 !important; -} - -.yellow-text.text-lighten-5 { - color: #fffde7 !important; -} - -.yellow.lighten-4 { - background-color: #fff9c4 !important; -} - -.yellow-text.text-lighten-4 { - color: #fff9c4 !important; -} - -.yellow.lighten-3 { - background-color: #fff59d !important; -} - -.yellow-text.text-lighten-3 { - color: #fff59d !important; -} - -.yellow.lighten-2 { - background-color: #fff176 !important; -} - -.yellow-text.text-lighten-2 { - color: #fff176 !important; -} - -.yellow.lighten-1 { - background-color: #ffee58 !important; -} - -.yellow-text.text-lighten-1 { - color: #ffee58 !important; -} - -.yellow.darken-1 { - background-color: #fdd835 !important; -} - -.yellow-text.text-darken-1 { - color: #fdd835 !important; -} - -.yellow.darken-2 { - background-color: #fbc02d !important; -} - -.yellow-text.text-darken-2 { - color: #fbc02d !important; -} - -.yellow.darken-3 { - background-color: #f9a825 !important; -} - -.yellow-text.text-darken-3 { - color: #f9a825 !important; -} - -.yellow.darken-4 { - background-color: #f57f17 !important; -} - -.yellow-text.text-darken-4 { - color: #f57f17 !important; -} - -.yellow.accent-1 { - background-color: #ffff8d !important; -} - -.yellow-text.text-accent-1 { - color: #ffff8d !important; -} - -.yellow.accent-2 { - background-color: #ffff00 !important; -} - -.yellow-text.text-accent-2 { - color: #ffff00 !important; -} - -.yellow.accent-3 { - background-color: #ffea00 !important; -} - -.yellow-text.text-accent-3 { - color: #ffea00 !important; -} - -.yellow.accent-4 { - background-color: #ffd600 !important; -} - -.yellow-text.text-accent-4 { - color: #ffd600 !important; -} - -.amber { - background-color: #ffc107 !important; -} - -.amber-text { - color: #ffc107 !important; -} - -.amber.lighten-5 { - background-color: #fff8e1 !important; -} - -.amber-text.text-lighten-5 { - color: #fff8e1 !important; -} - -.amber.lighten-4 { - background-color: #ffecb3 !important; -} - -.amber-text.text-lighten-4 { - color: #ffecb3 !important; -} - -.amber.lighten-3 { - background-color: #ffe082 !important; -} - -.amber-text.text-lighten-3 { - color: #ffe082 !important; -} - -.amber.lighten-2 { - background-color: #ffd54f !important; -} - -.amber-text.text-lighten-2 { - color: #ffd54f !important; -} - -.amber.lighten-1 { - background-color: #ffca28 !important; -} - -.amber-text.text-lighten-1 { - color: #ffca28 !important; -} - -.amber.darken-1 { - background-color: #ffb300 !important; -} - -.amber-text.text-darken-1 { - color: #ffb300 !important; -} - -.amber.darken-2 { - background-color: #ffa000 !important; -} - -.amber-text.text-darken-2 { - color: #ffa000 !important; -} - -.amber.darken-3 { - background-color: #ff8f00 !important; -} - -.amber-text.text-darken-3 { - color: #ff8f00 !important; -} - -.amber.darken-4 { - background-color: #ff6f00 !important; -} - -.amber-text.text-darken-4 { - color: #ff6f00 !important; -} - -.amber.accent-1 { - background-color: #ffe57f !important; -} - -.amber-text.text-accent-1 { - color: #ffe57f !important; -} - -.amber.accent-2 { - background-color: #ffd740 !important; -} - -.amber-text.text-accent-2 { - color: #ffd740 !important; -} - -.amber.accent-3 { - background-color: #ffc400 !important; -} - -.amber-text.text-accent-3 { - color: #ffc400 !important; -} - -.amber.accent-4 { - background-color: #ffab00 !important; -} - -.amber-text.text-accent-4 { - color: #ffab00 !important; -} - -.orange { - background-color: #ff9800 !important; -} - -.orange-text { - color: #ff9800 !important; -} - -.orange.lighten-5 { - background-color: #fff3e0 !important; -} - -.orange-text.text-lighten-5 { - color: #fff3e0 !important; -} - -.orange.lighten-4 { - background-color: #ffe0b2 !important; -} - -.orange-text.text-lighten-4 { - color: #ffe0b2 !important; -} - -.orange.lighten-3 { - background-color: #ffcc80 !important; -} - -.orange-text.text-lighten-3 { - color: #ffcc80 !important; -} - -.orange.lighten-2 { - background-color: #ffb74d !important; -} - -.orange-text.text-lighten-2 { - color: #ffb74d !important; -} - -.orange.lighten-1 { - background-color: #ffa726 !important; -} - -.orange-text.text-lighten-1 { - color: #ffa726 !important; -} - -.orange.darken-1 { - background-color: #fb8c00 !important; -} - -.orange-text.text-darken-1 { - color: #fb8c00 !important; -} - -.orange.darken-2 { - background-color: #f57c00 !important; -} - -.orange-text.text-darken-2 { - color: #f57c00 !important; -} - -.orange.darken-3 { - background-color: #ef6c00 !important; -} - -.orange-text.text-darken-3 { - color: #ef6c00 !important; -} - -.orange.darken-4 { - background-color: #e65100 !important; -} - -.orange-text.text-darken-4 { - color: #e65100 !important; -} - -.orange.accent-1 { - background-color: #ffd180 !important; -} - -.orange-text.text-accent-1 { - color: #ffd180 !important; -} - -.orange.accent-2 { - background-color: #ffab40 !important; -} - -.orange-text.text-accent-2 { - color: #ffab40 !important; -} - -.orange.accent-3 { - background-color: #ff9100 !important; -} - -.orange-text.text-accent-3 { - color: #ff9100 !important; -} - -.orange.accent-4 { - background-color: #ff6d00 !important; -} - -.orange-text.text-accent-4 { - color: #ff6d00 !important; -} - -.deep-orange { - background-color: #ff5722 !important; -} - -.deep-orange-text { - color: #ff5722 !important; -} - -.deep-orange.lighten-5 { - background-color: #fbe9e7 !important; -} - -.deep-orange-text.text-lighten-5 { - color: #fbe9e7 !important; -} - -.deep-orange.lighten-4 { - background-color: #ffccbc !important; -} - -.deep-orange-text.text-lighten-4 { - color: #ffccbc !important; -} - -.deep-orange.lighten-3 { - background-color: #ffab91 !important; -} - -.deep-orange-text.text-lighten-3 { - color: #ffab91 !important; -} - -.deep-orange.lighten-2 { - background-color: #ff8a65 !important; -} - -.deep-orange-text.text-lighten-2 { - color: #ff8a65 !important; -} - -.deep-orange.lighten-1 { - background-color: #ff7043 !important; -} - -.deep-orange-text.text-lighten-1 { - color: #ff7043 !important; -} - -.deep-orange.darken-1 { - background-color: #f4511e !important; -} - -.deep-orange-text.text-darken-1 { - color: #f4511e !important; -} - -.deep-orange.darken-2 { - background-color: #e64a19 !important; -} - -.deep-orange-text.text-darken-2 { - color: #e64a19 !important; -} - -.deep-orange.darken-3 { - background-color: #d84315 !important; -} - -.deep-orange-text.text-darken-3 { - color: #d84315 !important; -} - -.deep-orange.darken-4 { - background-color: #bf360c !important; -} - -.deep-orange-text.text-darken-4 { - color: #bf360c !important; -} - -.deep-orange.accent-1 { - background-color: #ff9e80 !important; -} - -.deep-orange-text.text-accent-1 { - color: #ff9e80 !important; -} - -.deep-orange.accent-2 { - background-color: #ff6e40 !important; -} - -.deep-orange-text.text-accent-2 { - color: #ff6e40 !important; -} - -.deep-orange.accent-3 { - background-color: #ff3d00 !important; -} - -.deep-orange-text.text-accent-3 { - color: #ff3d00 !important; -} - -.deep-orange.accent-4 { - background-color: #dd2c00 !important; -} - -.deep-orange-text.text-accent-4 { - color: #dd2c00 !important; -} - -.brown { - background-color: #795548 !important; -} - -.brown-text { - color: #795548 !important; -} - -.brown.lighten-5 { - background-color: #efebe9 !important; -} - -.brown-text.text-lighten-5 { - color: #efebe9 !important; -} - -.brown.lighten-4 { - background-color: #d7ccc8 !important; -} - -.brown-text.text-lighten-4 { - color: #d7ccc8 !important; -} - -.brown.lighten-3 { - background-color: #bcaaa4 !important; -} - -.brown-text.text-lighten-3 { - color: #bcaaa4 !important; -} - -.brown.lighten-2 { - background-color: #a1887f !important; -} - -.brown-text.text-lighten-2 { - color: #a1887f !important; -} - -.brown.lighten-1 { - background-color: #8d6e63 !important; -} - -.brown-text.text-lighten-1 { - color: #8d6e63 !important; -} - -.brown.darken-1 { - background-color: #6d4c41 !important; -} - -.brown-text.text-darken-1 { - color: #6d4c41 !important; -} - -.brown.darken-2 { - background-color: #5d4037 !important; -} - -.brown-text.text-darken-2 { - color: #5d4037 !important; -} - -.brown.darken-3 { - background-color: #4e342e !important; -} - -.brown-text.text-darken-3 { - color: #4e342e !important; -} - -.brown.darken-4 { - background-color: #3e2723 !important; -} - -.brown-text.text-darken-4 { - color: #3e2723 !important; -} - -.blue-grey { - background-color: #607d8b !important; -} - -.blue-grey-text { - color: #607d8b !important; -} - -.blue-grey.lighten-5 { - background-color: #eceff1 !important; -} - -.blue-grey-text.text-lighten-5 { - color: #eceff1 !important; -} - -.blue-grey.lighten-4 { - background-color: #cfd8dc !important; -} - -.blue-grey-text.text-lighten-4 { - color: #cfd8dc !important; -} - -.blue-grey.lighten-3 { - background-color: #b0bec5 !important; -} - -.blue-grey-text.text-lighten-3 { - color: #b0bec5 !important; -} - -.blue-grey.lighten-2 { - background-color: #90a4ae !important; -} - -.blue-grey-text.text-lighten-2 { - color: #90a4ae !important; -} - -.blue-grey.lighten-1 { - background-color: #78909c !important; -} - -.blue-grey-text.text-lighten-1 { - color: #78909c !important; -} - -.blue-grey.darken-1 { - background-color: #546e7a !important; -} - -.blue-grey-text.text-darken-1 { - color: #546e7a !important; -} - -.blue-grey.darken-2 { - background-color: #455a64 !important; -} - -.blue-grey-text.text-darken-2 { - color: #455a64 !important; -} - -.blue-grey.darken-3 { - background-color: #37474f !important; -} - -.blue-grey-text.text-darken-3 { - color: #37474f !important; -} - -.blue-grey.darken-4 { - background-color: #263238 !important; -} - -.blue-grey-text.text-darken-4 { - color: #263238 !important; -} - -.grey { - background-color: #9e9e9e !important; -} - -.grey-text { - color: #9e9e9e !important; -} - -.grey.lighten-5 { - background-color: #fafafa !important; -} - -.grey-text.text-lighten-5 { - color: #fafafa !important; -} - -.grey.lighten-4 { - background-color: #f5f5f5 !important; -} - -.grey-text.text-lighten-4 { - color: #f5f5f5 !important; -} - -.grey.lighten-3 { - background-color: #eeeeee !important; -} - -.grey-text.text-lighten-3 { - color: #eeeeee !important; -} - -.grey.lighten-2 { - background-color: #e0e0e0 !important; -} - -.grey-text.text-lighten-2 { - color: #e0e0e0 !important; -} - -.grey.lighten-1 { - background-color: #bdbdbd !important; -} - -.grey-text.text-lighten-1 { - color: #bdbdbd !important; -} - -.grey.darken-1 { - background-color: #757575 !important; -} - -.grey-text.text-darken-1 { - color: #757575 !important; -} - -.grey.darken-2 { - background-color: #616161 !important; -} - -.grey-text.text-darken-2 { - color: #616161 !important; -} - -.grey.darken-3 { - background-color: #424242 !important; -} - -.grey-text.text-darken-3 { - color: #424242 !important; -} - -.grey.darken-4 { - background-color: #212121 !important; -} - -.grey-text.text-darken-4 { - color: #212121 !important; -} - -.black { - background-color: #000000 !important; -} - -.black-text { - color: #000000 !important; -} - -.white { - background-color: #FFFFFF !important; -} - -.white-text { - color: #FFFFFF !important; -} - -.transparent { - background-color: transparent !important; -} - -.transparent-text { - color: transparent !important; -} - -/* ========================================================================== - Materialize variables - ========================================================================== */ -/** - * Table of Contents: - * - * 1. Colors - * 2. Badges - * 3. Buttons - * 4. Cards - * 5. Collapsible - * 6. Chips - * 7. Date Picker - * 8. Dropdown - * 10. Forms - * 11. Global - * 12. Grid - * 13. Navigation Bar - * 14. Side Navigation - * 15. Photo Slider - * 16. Spinners | Loaders - * 17. Tabs - * 18. Tables - * 19. Toasts - * 20. Typography - * 21. Footer - * 22. Flow Text - * 23. Collections - * 24. Progress Bar - */ -/* 1. Colors - ========================================================================== */ -/* 2. Badges - ========================================================================== */ -/* 3. Buttons - ========================================================================== */ -/* 4. Cards - ========================================================================== */ -/* 5. Collapsible - ========================================================================== */ -/* 6. Chips - ========================================================================== */ -/* 7. Date Picker - ========================================================================== */ -/* 8. Dropdown - ========================================================================== */ -/* 9. Fonts - ========================================================================== */ -/* 10. Forms - ========================================================================== */ -/* 11. Global - ========================================================================== */ -/* 12. Grid - ========================================================================== */ -/* 13. Navigation Bar - ========================================================================== */ -/* 14. Side Navigation - ========================================================================== */ -/* 15. Photo Slider - ========================================================================== */ -/* 16. Spinners | Loaders - ========================================================================== */ -/* 17. Tabs - ========================================================================== */ -/* 18. Tables - ========================================================================== */ -/* 19. Toasts - ========================================================================== */ -/* 20. Typography - ========================================================================== */ -/* 21. Footer - ========================================================================== */ -/* 22. Flow Text - ========================================================================== */ -/* 23. Collections - ========================================================================== */ -/* 24. Progress Bar - ========================================================================== */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ -} - -/** - * Remove default margin. - */ -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; -} - -/** - * Improve readability of focused elements when they are also in an - * active/hover state. - */ -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ -hr { - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - box-sizing: content-box; - /* 2 */ -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} - -html { - box-sizing: border-box; -} - -*, *:before, *:after { - box-sizing: inherit; -} - -ul { - padding: 0; - list-style-type: none; -} - -ul.browser-default, -ul.browser-default li { - list-style-type: initial; -} - -ul li { - list-style-type: none; -} - -a { - color: #039be5; - text-decoration: none; - -webkit-tap-highlight-color: transparent; -} - -.valign-wrapper { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} - -.valign-wrapper .valign { - display: block; -} - -.clearfix { - clear: both; -} - -.z-depth-0 { - box-shadow: none !important; -} - -.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav { - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); -} - -.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover { - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); -} - -.z-depth-2 { - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); -} - -.z-depth-3 { - box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); -} - -.z-depth-4, .modal { - box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); -} - -.z-depth-5 { - box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); -} - -.hoverable { - transition: box-shadow .25s; - box-shadow: 0; -} - -.hoverable:hover { - transition: box-shadow .25s; - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); -} - -.divider { - height: 1px; - overflow: hidden; - background-color: #e0e0e0; -} - -blockquote { - margin: 20px 0; - padding-left: 1.5rem; - border-left: 5px solid #ee6e73; -} - -i { - line-height: inherit; -} - -i.left { - float: left; - margin-right: 15px; -} - -i.right { - float: right; - margin-left: 15px; -} - -i.tiny { - font-size: 1rem; -} - -i.small { - font-size: 2rem; -} - -i.medium { - font-size: 4rem; -} - -i.large { - font-size: 6rem; -} - -img.responsive-img, -video.responsive-video { - max-width: 100%; - height: auto; -} - -.pagination li { - display: inline-block; - border-radius: 2px; - text-align: center; - vertical-align: top; - height: 30px; -} - -.pagination li a { - color: #444; - display: inline-block; - font-size: 1.2rem; - padding: 0 10px; - line-height: 30px; -} - -.pagination li.active a { - color: #fff; -} - -.pagination li.active { - background-color: #ee6e73; -} - -.pagination li.disabled a { - cursor: default; - color: #999; -} - -.pagination li i { - font-size: 2rem; -} - -.pagination li.pages ul li { - display: inline-block; - float: none; -} - -@media only screen and (max-width: 992px) { - .pagination { - width: 100%; - } - .pagination li.prev, - .pagination li.next { - width: 10%; - } - .pagination li.pages { - width: 80%; - overflow: hidden; - white-space: nowrap; - } -} - -.breadcrumb { - font-size: 18px; - color: rgba(255, 255, 255, 0.7); -} - -.breadcrumb i, -.breadcrumb [class^="mdi-"], .breadcrumb [class*="mdi-"], -.breadcrumb i.material-icons { - display: inline-block; - float: left; - font-size: 24px; -} - -.breadcrumb:before { - content: '\E5CC'; - color: rgba(255, 255, 255, 0.7); - vertical-align: top; - display: inline-block; - font-family: 'Material Icons'; - font-weight: normal; - font-style: normal; - font-size: 25px; - margin: 0 10px 0 8px; - -webkit-font-smoothing: antialiased; -} - -.breadcrumb:first-child:before { - display: none; -} - -.breadcrumb:last-child { - color: #fff; -} - -.parallax-container { - position: relative; - overflow: hidden; - height: 500px; -} - -.parallax { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; -} - -.parallax img { - display: none; - position: absolute; - left: 50%; - bottom: 0; - min-width: 100%; - min-height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transform: translateX(-50%); - transform: translateX(-50%); -} - -.pin-top, .pin-bottom { - position: relative; -} - -.pinned { - position: fixed !important; -} - -/********************* - Transition Classes -**********************/ -ul.staggered-list li { - opacity: 0; -} - -.fade-in { - opacity: 0; - -webkit-transform-origin: 0 50%; - transform-origin: 0 50%; -} - -/********************* - Media Query Classes -**********************/ -@media only screen and (max-width: 600px) { - .hide-on-small-only, .hide-on-small-and-down { - display: none !important; - } -} - -@media only screen and (max-width: 992px) { - .hide-on-med-and-down { - display: none !important; - } -} - -@media only screen and (min-width: 601px) { - .hide-on-med-and-up { - display: none !important; - } -} - -@media only screen and (min-width: 600px) and (max-width: 992px) { - .hide-on-med-only { - display: none !important; - } -} - -@media only screen and (min-width: 993px) { - .hide-on-large-only { - display: none !important; - } -} - -@media only screen and (min-width: 993px) { - .show-on-large { - display: block !important; - } -} - -@media only screen and (min-width: 600px) and (max-width: 992px) { - .show-on-medium { - display: block !important; - } -} - -@media only screen and (max-width: 600px) { - .show-on-small { - display: block !important; - } -} - -@media only screen and (min-width: 601px) { - .show-on-medium-and-up { - display: block !important; - } -} - -@media only screen and (max-width: 992px) { - .show-on-medium-and-down { - display: block !important; - } -} - -@media only screen and (max-width: 600px) { - .center-on-small-only { - text-align: center; - } -} - -footer.page-footer { - margin-top: 20px; - padding-top: 20px; - background-color: #ee6e73; -} - -footer.page-footer .footer-copyright { - overflow: hidden; - height: 50px; - line-height: 50px; - color: rgba(255, 255, 255, 0.8); - background-color: rgba(51, 51, 51, 0.08); -} - -table, th, td { - border: none; -} - -table { - width: 100%; - display: table; -} - -table.bordered > thead > tr, -table.bordered > tbody > tr { - border-bottom: 1px solid #d0d0d0; -} - -table.striped > tbody > tr:nth-child(odd) { - background-color: #f2f2f2; -} - -table.striped > tbody > tr > td { - border-radius: 0; -} - -table.highlight > tbody > tr { - transition: background-color .25s ease; -} - -table.highlight > tbody > tr:hover { - background-color: #f2f2f2; -} - -table.centered thead tr th, table.centered tbody tr td { - text-align: center; -} - -thead { - border-bottom: 1px solid #d0d0d0; -} - -td, th { - padding: 15px 5px; - display: table-cell; - text-align: left; - vertical-align: middle; - border-radius: 2px; -} - -@media only screen and (max-width: 992px) { - table.responsive-table { - width: 100%; - border-collapse: collapse; - border-spacing: 0; - display: block; - position: relative; - /* sort out borders */ - } - table.responsive-table td:empty:before { - content: '\00a0'; - } - table.responsive-table th, - table.responsive-table td { - margin: 0; - vertical-align: top; - } - table.responsive-table th { - text-align: left; - } - table.responsive-table thead { - display: block; - float: left; - } - table.responsive-table thead tr { - display: block; - padding: 0 10px 0 0; - } - table.responsive-table thead tr th::before { - content: "\00a0"; - } - table.responsive-table tbody { - display: block; - width: auto; - position: relative; - overflow-x: auto; - white-space: nowrap; - } - table.responsive-table tbody tr { - display: inline-block; - vertical-align: top; - } - table.responsive-table th { - display: block; - text-align: right; - } - table.responsive-table td { - display: block; - min-height: 1.25em; - text-align: left; - } - table.responsive-table tr { - padding: 0 10px; - } - table.responsive-table thead { - border: 0; - border-right: 1px solid #d0d0d0; - } - table.responsive-table.bordered th { - border-bottom: 0; - border-left: 0; - } - table.responsive-table.bordered td { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - table.responsive-table.bordered tr { - border: 0; - } - table.responsive-table.bordered tbody tr { - border-right: 1px solid #d0d0d0; - } -} - -.collection { - margin: 0.5rem 0 1rem 0; - border: 1px solid #e0e0e0; - border-radius: 2px; - overflow: hidden; - position: relative; -} - -.collection .collection-item { - background-color: #fff; - line-height: 1.5rem; - padding: 10px 20px; - margin: 0; - border-bottom: 1px solid #e0e0e0; -} - -.collection .collection-item.avatar { - min-height: 84px; - padding-left: 72px; - position: relative; -} - -.collection .collection-item.avatar .circle { - position: absolute; - width: 42px; - height: 42px; - overflow: hidden; - left: 15px; - display: inline-block; - vertical-align: middle; -} - -.collection .collection-item.avatar i.circle { - font-size: 18px; - line-height: 42px; - color: #fff; - background-color: #999; - text-align: center; -} - -.collection .collection-item.avatar .title { - font-size: 16px; -} - -.collection .collection-item.avatar p { - margin: 0; -} - -.collection .collection-item.avatar .secondary-content { - position: absolute; - top: 16px; - right: 16px; -} - -.collection .collection-item:last-child { - border-bottom: none; -} - -.collection .collection-item.active { - background-color: #26a69a; - color: #eafaf9; -} - -.collection .collection-item.active .secondary-content { - color: #fff; -} - -.collection a.collection-item { - display: block; - transition: .25s; - color: #26a69a; -} - -.collection a.collection-item:not(.active):hover { - background-color: #ddd; -} - -.collection.with-header .collection-header { - background-color: #fff; - border-bottom: 1px solid #e0e0e0; - padding: 10px 20px; -} - -.collection.with-header .collection-item { - padding-left: 30px; -} - -.collection.with-header .collection-item.avatar { - padding-left: 72px; -} - -.secondary-content { - float: right; - color: #26a69a; -} - -.collapsible .collection { - margin: 0; - border: none; -} - -span.badge { - min-width: 3rem; - padding: 0 6px; - text-align: center; - font-size: 1rem; - line-height: inherit; - color: #757575; - position: absolute; - right: 15px; - box-sizing: border-box; -} - -span.badge.new { - font-weight: 300; - font-size: 0.8rem; - color: #fff; - background-color: #26a69a; - border-radius: 2px; -} - -span.badge.new:after { - content: " new"; -} - -span.badge[data-badge-caption]::after { - content: " " attr(data-badge-caption); -} - -nav ul a span.badge { - position: static; - margin-left: 4px; - line-height: 0; -} - -.video-container { - position: relative; - padding-bottom: 56.25%; - height: 0; - overflow: hidden; -} - -.video-container iframe, .video-container object, .video-container embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.progress { - position: relative; - height: 4px; - display: block; - width: 100%; - background-color: #acece6; - border-radius: 2px; - margin: 0.5rem 0 1rem 0; - overflow: hidden; -} - -.progress .determinate { - position: absolute; - top: 0; - left: 0; - bottom: 0; - background-color: #26a69a; - transition: width .3s linear; -} - -.progress .indeterminate { - background-color: #26a69a; -} - -.progress .indeterminate:before { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left: 0; - bottom: 0; - will-change: left, right; - -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; -} - -.progress .indeterminate:after { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left: 0; - bottom: 0; - will-change: left, right; - -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - -webkit-animation-delay: 1.15s; - animation-delay: 1.15s; -} - -@-webkit-keyframes indeterminate { - 0% { - left: -35%; - right: 100%; - } - 60% { - left: 100%; - right: -90%; - } - 100% { - left: 100%; - right: -90%; - } -} - -@keyframes indeterminate { - 0% { - left: -35%; - right: 100%; - } - 60% { - left: 100%; - right: -90%; - } - 100% { - left: 100%; - right: -90%; - } -} - -@-webkit-keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; - } - 60% { - left: 107%; - right: -8%; - } - 100% { - left: 107%; - right: -8%; - } -} - -@keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; - } - 60% { - left: 107%; - right: -8%; - } - 100% { - left: 107%; - right: -8%; - } -} - -/******************* - Utility Classes -*******************/ -.hide { - display: none !important; -} - -.left-align { - text-align: left; -} - -.right-align { - text-align: right; -} - -.center, .center-align { - text-align: center; -} - -.left { - float: left !important; -} - -.right { - float: right !important; -} - -.no-select, input[type=range], -input[type=range] + .thumb { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.circle { - border-radius: 50%; -} - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} - -.truncate { - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.no-padding { - padding: 0 !important; -} - -/* This is needed for some mobile phones to display the Google Icon font properly */ -.material-icons { - text-rendering: optimizeLegibility; - -webkit-font-feature-settings: 'liga'; - -moz-font-feature-settings: 'liga'; - font-feature-settings: 'liga'; -} - -.container { - margin: 0 auto; - max-width: 1280px; - width: 90%; -} - -@media only screen and (min-width: 601px) { - .container { - width: 85%; - } -} - -@media only screen and (min-width: 993px) { - .container { - width: 70%; - } -} - -.container .row { - margin-left: -0.75rem; - margin-right: -0.75rem; -} - -.section { - padding-top: 1rem; - padding-bottom: 1rem; -} - -.section.no-pad { - padding: 0; -} - -.section.no-pad-bot { - padding-bottom: 0; -} - -.section.no-pad-top { - padding-top: 0; -} - -.row { - margin-left: auto; - margin-right: auto; - margin-bottom: 20px; -} - -.row:after { - content: ""; - display: table; - clear: both; -} - -.row .col { - float: left; - box-sizing: border-box; - padding: 0 0.75rem; - min-height: 1px; -} - -.row .col[class*="push-"], .row .col[class*="pull-"] { - position: relative; -} - -.row .col.s1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.offset-s1 { - margin-left: 8.3333333333%; -} - -.row .col.pull-s1 { - right: 8.3333333333%; -} - -.row .col.push-s1 { - left: 8.3333333333%; -} - -.row .col.offset-s2 { - margin-left: 16.6666666667%; -} - -.row .col.pull-s2 { - right: 16.6666666667%; -} - -.row .col.push-s2 { - left: 16.6666666667%; -} - -.row .col.offset-s3 { - margin-left: 25%; -} - -.row .col.pull-s3 { - right: 25%; -} - -.row .col.push-s3 { - left: 25%; -} - -.row .col.offset-s4 { - margin-left: 33.3333333333%; -} - -.row .col.pull-s4 { - right: 33.3333333333%; -} - -.row .col.push-s4 { - left: 33.3333333333%; -} - -.row .col.offset-s5 { - margin-left: 41.6666666667%; -} - -.row .col.pull-s5 { - right: 41.6666666667%; -} - -.row .col.push-s5 { - left: 41.6666666667%; -} - -.row .col.offset-s6 { - margin-left: 50%; -} - -.row .col.pull-s6 { - right: 50%; -} - -.row .col.push-s6 { - left: 50%; -} - -.row .col.offset-s7 { - margin-left: 58.3333333333%; -} - -.row .col.pull-s7 { - right: 58.3333333333%; -} - -.row .col.push-s7 { - left: 58.3333333333%; -} - -.row .col.offset-s8 { - margin-left: 66.6666666667%; -} - -.row .col.pull-s8 { - right: 66.6666666667%; -} - -.row .col.push-s8 { - left: 66.6666666667%; -} - -.row .col.offset-s9 { - margin-left: 75%; -} - -.row .col.pull-s9 { - right: 75%; -} - -.row .col.push-s9 { - left: 75%; -} - -.row .col.offset-s10 { - margin-left: 83.3333333333%; -} - -.row .col.pull-s10 { - right: 83.3333333333%; -} - -.row .col.push-s10 { - left: 83.3333333333%; -} - -.row .col.offset-s11 { - margin-left: 91.6666666667%; -} - -.row .col.pull-s11 { - right: 91.6666666667%; -} - -.row .col.push-s11 { - left: 91.6666666667%; -} - -.row .col.offset-s12 { - margin-left: 100%; -} - -.row .col.pull-s12 { - right: 100%; -} - -.row .col.push-s12 { - left: 100%; -} - -@media only screen and (min-width: 601px) { - .row .col.m1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.offset-m1 { - margin-left: 8.3333333333%; - } - .row .col.pull-m1 { - right: 8.3333333333%; - } - .row .col.push-m1 { - left: 8.3333333333%; - } - .row .col.offset-m2 { - margin-left: 16.6666666667%; - } - .row .col.pull-m2 { - right: 16.6666666667%; - } - .row .col.push-m2 { - left: 16.6666666667%; - } - .row .col.offset-m3 { - margin-left: 25%; - } - .row .col.pull-m3 { - right: 25%; - } - .row .col.push-m3 { - left: 25%; - } - .row .col.offset-m4 { - margin-left: 33.3333333333%; - } - .row .col.pull-m4 { - right: 33.3333333333%; - } - .row .col.push-m4 { - left: 33.3333333333%; - } - .row .col.offset-m5 { - margin-left: 41.6666666667%; - } - .row .col.pull-m5 { - right: 41.6666666667%; - } - .row .col.push-m5 { - left: 41.6666666667%; - } - .row .col.offset-m6 { - margin-left: 50%; - } - .row .col.pull-m6 { - right: 50%; - } - .row .col.push-m6 { - left: 50%; - } - .row .col.offset-m7 { - margin-left: 58.3333333333%; - } - .row .col.pull-m7 { - right: 58.3333333333%; - } - .row .col.push-m7 { - left: 58.3333333333%; - } - .row .col.offset-m8 { - margin-left: 66.6666666667%; - } - .row .col.pull-m8 { - right: 66.6666666667%; - } - .row .col.push-m8 { - left: 66.6666666667%; - } - .row .col.offset-m9 { - margin-left: 75%; - } - .row .col.pull-m9 { - right: 75%; - } - .row .col.push-m9 { - left: 75%; - } - .row .col.offset-m10 { - margin-left: 83.3333333333%; - } - .row .col.pull-m10 { - right: 83.3333333333%; - } - .row .col.push-m10 { - left: 83.3333333333%; - } - .row .col.offset-m11 { - margin-left: 91.6666666667%; - } - .row .col.pull-m11 { - right: 91.6666666667%; - } - .row .col.push-m11 { - left: 91.6666666667%; - } - .row .col.offset-m12 { - margin-left: 100%; - } - .row .col.pull-m12 { - right: 100%; - } - .row .col.push-m12 { - left: 100%; - } -} - -@media only screen and (min-width: 993px) { - .row .col.l1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.offset-l1 { - margin-left: 8.3333333333%; - } - .row .col.pull-l1 { - right: 8.3333333333%; - } - .row .col.push-l1 { - left: 8.3333333333%; - } - .row .col.offset-l2 { - margin-left: 16.6666666667%; - } - .row .col.pull-l2 { - right: 16.6666666667%; - } - .row .col.push-l2 { - left: 16.6666666667%; - } - .row .col.offset-l3 { - margin-left: 25%; - } - .row .col.pull-l3 { - right: 25%; - } - .row .col.push-l3 { - left: 25%; - } - .row .col.offset-l4 { - margin-left: 33.3333333333%; - } - .row .col.pull-l4 { - right: 33.3333333333%; - } - .row .col.push-l4 { - left: 33.3333333333%; - } - .row .col.offset-l5 { - margin-left: 41.6666666667%; - } - .row .col.pull-l5 { - right: 41.6666666667%; - } - .row .col.push-l5 { - left: 41.6666666667%; - } - .row .col.offset-l6 { - margin-left: 50%; - } - .row .col.pull-l6 { - right: 50%; - } - .row .col.push-l6 { - left: 50%; - } - .row .col.offset-l7 { - margin-left: 58.3333333333%; - } - .row .col.pull-l7 { - right: 58.3333333333%; - } - .row .col.push-l7 { - left: 58.3333333333%; - } - .row .col.offset-l8 { - margin-left: 66.6666666667%; - } - .row .col.pull-l8 { - right: 66.6666666667%; - } - .row .col.push-l8 { - left: 66.6666666667%; - } - .row .col.offset-l9 { - margin-left: 75%; - } - .row .col.pull-l9 { - right: 75%; - } - .row .col.push-l9 { - left: 75%; - } - .row .col.offset-l10 { - margin-left: 83.3333333333%; - } - .row .col.pull-l10 { - right: 83.3333333333%; - } - .row .col.push-l10 { - left: 83.3333333333%; - } - .row .col.offset-l11 { - margin-left: 91.6666666667%; - } - .row .col.pull-l11 { - right: 91.6666666667%; - } - .row .col.push-l11 { - left: 91.6666666667%; - } - .row .col.offset-l12 { - margin-left: 100%; - } - .row .col.pull-l12 { - right: 100%; - } - .row .col.push-l12 { - left: 100%; - } -} - -nav { - color: #fff; - background-color: #ee6e73; - width: 100%; - height: 56px; - line-height: 56px; -} - -nav a { - color: #fff; -} - -nav i, -nav [class^="mdi-"], nav [class*="mdi-"], -nav i.material-icons { - display: block; - font-size: 2rem; - height: 56px; - line-height: 56px; -} - -nav .nav-wrapper { - position: relative; - height: 100%; -} - -@media only screen and (min-width: 993px) { - nav a.button-collapse { - display: none; - } -} - -nav .button-collapse { - float: left; - position: relative; - z-index: 1; - height: 56px; -} - -nav .button-collapse i { - font-size: 2.7rem; - height: 56px; - line-height: 56px; -} - -nav .brand-logo { - position: absolute; - color: #fff; - display: inline-block; - font-size: 2.1rem; - padding: 0; - white-space: nowrap; -} - -nav .brand-logo.center { - left: 50%; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); -} - -@media only screen and (max-width: 992px) { - nav .brand-logo { - left: 50%; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); - } - nav .brand-logo.left, nav .brand-logo.right { - padding: 0; - -webkit-transform: none; - transform: none; - } - nav .brand-logo.left { - left: 0.5rem; - } - nav .brand-logo.right { - right: 0.5rem; - left: auto; - } -} - -nav .brand-logo.right { - right: 0.5rem; - padding: 0; -} - -nav .brand-logo i, -nav .brand-logo [class^="mdi-"], nav .brand-logo [class*="mdi-"], -nav .brand-logo i.material-icons { - float: left; - margin-right: 15px; -} - -nav ul { - margin: 0; -} - -nav ul li { - transition: background-color .3s; - float: left; - padding: 0; -} - -nav ul li.active { - background-color: rgba(0, 0, 0, 0.1); -} - -nav ul a { - transition: background-color .3s; - font-size: 1rem; - color: #fff; - display: block; - padding: 0 15px; - cursor: pointer; -} - -nav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating { - margin-top: -2px; - margin-left: 15px; - margin-right: 15px; -} - -nav ul a:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -nav ul.left { - float: left; -} - -nav form { - height: 100%; -} - -nav .input-field { - margin: 0; - height: 100%; -} - -nav .input-field input { - height: 100%; - font-size: 1.2rem; - border: none; - padding-left: 2rem; -} - -nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid { - border: none; - box-shadow: none; -} - -nav .input-field label { - top: 0; - left: 0; -} - -nav .input-field label i { - color: rgba(255, 255, 255, 0.7); - transition: color .3s; -} - -nav .input-field label.active i { - color: #fff; -} - -nav .input-field label.active { - -webkit-transform: translateY(0); - transform: translateY(0); -} - -.navbar-fixed { - position: relative; - height: 56px; - z-index: 998; -} - -.navbar-fixed nav { - position: fixed; -} - -@media only screen and (min-width: 601px) { - nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i { - height: 64px; - line-height: 64px; - } - .navbar-fixed { - height: 64px; - } -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Thin), url("../fonts/roboto/Roboto-Thin.eot"); - src: url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../fonts/roboto/Roboto-Thin.woff") format("woff"), url("../fonts/roboto/Roboto-Thin.ttf") format("truetype"); - font-weight: 200; -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Light), url("../fonts/roboto/Roboto-Light.eot"); - src: url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../fonts/roboto/Roboto-Light.woff") format("woff"), url("../fonts/roboto/Roboto-Light.ttf") format("truetype"); - font-weight: 300; -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Regular), url("../fonts/roboto/Roboto-Regular.eot"); - src: url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../fonts/roboto/Roboto-Regular.woff") format("woff"), url("../fonts/roboto/Roboto-Regular.ttf") format("truetype"); - font-weight: 400; -} - -@font-face { - font-family: "Roboto"; - src: url("../fonts/roboto/Roboto-Medium.eot"); - src: url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../fonts/roboto/Roboto-Medium.woff") format("woff"), url("../fonts/roboto/Roboto-Medium.ttf") format("truetype"); - font-weight: 500; -} - -@font-face { - font-family: "Roboto"; - src: url("../fonts/roboto/Roboto-Bold.eot"); - src: url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../fonts/roboto/Roboto-Bold.woff") format("woff"), url("../fonts/roboto/Roboto-Bold.ttf") format("truetype"); - font-weight: 700; -} - -a { - text-decoration: none; -} - -html { - line-height: 1.5; - font-family: "Roboto", sans-serif; - font-weight: normal; - color: rgba(0, 0, 0, 0.87); -} - -@media only screen and (min-width: 0) { - html { - font-size: 14px; - } -} - -@media only screen and (min-width: 992px) { - html { - font-size: 14.5px; - } -} - -@media only screen and (min-width: 1200px) { - html { - font-size: 15px; - } -} - -h1, h2, h3, h4, h5, h6 { - font-weight: 400; - line-height: 1.1; -} - -h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - font-weight: inherit; -} - -h1 { - font-size: 4.2rem; - line-height: 110%; - margin: 2.1rem 0 1.68rem 0; -} - -h2 { - font-size: 3.56rem; - line-height: 110%; - margin: 1.78rem 0 1.424rem 0; -} - -h3 { - font-size: 2.92rem; - line-height: 110%; - margin: 1.46rem 0 1.168rem 0; -} - -h4 { - font-size: 2.28rem; - line-height: 110%; - margin: 1.14rem 0 0.912rem 0; -} - -h5 { - font-size: 1.64rem; - line-height: 110%; - margin: 0.82rem 0 0.656rem 0; -} - -h6 { - font-size: 1rem; - line-height: 110%; - margin: 0.5rem 0 0.4rem 0; -} - -em { - font-style: italic; -} - -strong { - font-weight: 500; -} - -small { - font-size: 75%; -} - -.light, footer.page-footer .footer-copyright { - font-weight: 300; -} - -.thin { - font-weight: 200; -} - -.flow-text { - font-weight: 300; -} - -@media only screen and (min-width: 360px) { - .flow-text { - font-size: 1.2rem; - } -} - -@media only screen and (min-width: 390px) { - .flow-text { - font-size: 1.224rem; - } -} - -@media only screen and (min-width: 420px) { - .flow-text { - font-size: 1.248rem; - } -} - -@media only screen and (min-width: 450px) { - .flow-text { - font-size: 1.272rem; - } -} - -@media only screen and (min-width: 480px) { - .flow-text { - font-size: 1.296rem; - } -} - -@media only screen and (min-width: 510px) { - .flow-text { - font-size: 1.32rem; - } -} - -@media only screen and (min-width: 540px) { - .flow-text { - font-size: 1.344rem; - } -} - -@media only screen and (min-width: 570px) { - .flow-text { - font-size: 1.368rem; - } -} - -@media only screen and (min-width: 600px) { - .flow-text { - font-size: 1.392rem; - } -} - -@media only screen and (min-width: 630px) { - .flow-text { - font-size: 1.416rem; - } -} - -@media only screen and (min-width: 660px) { - .flow-text { - font-size: 1.44rem; - } -} - -@media only screen and (min-width: 690px) { - .flow-text { - font-size: 1.464rem; - } -} - -@media only screen and (min-width: 720px) { - .flow-text { - font-size: 1.488rem; - } -} - -@media only screen and (min-width: 750px) { - .flow-text { - font-size: 1.512rem; - } -} - -@media only screen and (min-width: 780px) { - .flow-text { - font-size: 1.536rem; - } -} - -@media only screen and (min-width: 810px) { - .flow-text { - font-size: 1.56rem; - } -} - -@media only screen and (min-width: 840px) { - .flow-text { - font-size: 1.584rem; - } -} - -@media only screen and (min-width: 870px) { - .flow-text { - font-size: 1.608rem; - } -} - -@media only screen and (min-width: 900px) { - .flow-text { - font-size: 1.632rem; - } -} - -@media only screen and (min-width: 930px) { - .flow-text { - font-size: 1.656rem; - } -} - -@media only screen and (min-width: 960px) { - .flow-text { - font-size: 1.68rem; - } -} - -@media only screen and (max-width: 360px) { - .flow-text { - font-size: 1.2rem; - } -} - -.card-panel { - transition: box-shadow .25s; - padding: 20px; - margin: 0.5rem 0 1rem 0; - border-radius: 2px; - background-color: #fff; -} - -.card { - position: relative; - margin: 0.5rem 0 1rem 0; - background-color: #fff; - transition: box-shadow .25s; - border-radius: 2px; -} - -.card .card-title { - font-size: 24px; - font-weight: 300; -} - -.card .card-title.activator { - cursor: pointer; -} - -.card.small, .card.medium, .card.large { - position: relative; -} - -.card.small .card-image, .card.medium .card-image, .card.large .card-image { - max-height: 60%; - overflow: hidden; -} - -.card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content { - max-height: 40%; -} - -.card.small .card-content, .card.medium .card-content, .card.large .card-content { - max-height: 100%; - overflow: hidden; -} - -.card.small .card-action, .card.medium .card-action, .card.large .card-action { - position: absolute; - bottom: 0; - left: 0; - right: 0; -} - -.card.small { - height: 300px; -} - -.card.medium { - height: 400px; -} - -.card.large { - height: 500px; -} - -.card.horizontal { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} - -.card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image { - height: 100%; - max-height: none; - overflow: visible; -} - -.card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img { - height: 100%; -} - -.card.horizontal .card-image { - max-width: 50%; -} - -.card.horizontal .card-image img { - max-width: 100%; - width: auto; -} - -.card.horizontal .card-stacked { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - position: relative; -} - -.card.horizontal .card-stacked .card-content { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} - -.card.sticky-action .card-action { - z-index: 2; -} - -.card.sticky-action .card-reveal { - z-index: 1; - padding-bottom: 64px; -} - -.card .card-image { - position: relative; -} - -.card .card-image img { - display: block; - border-radius: 2px 2px 0 0; - position: relative; - left: 0; - right: 0; - top: 0; - bottom: 0; - width: 100%; -} - -.card .card-image .card-title { - color: #fff; - position: absolute; - bottom: 0; - left: 0; - padding: 20px; -} - -.card .card-content { - padding: 20px; - border-radius: 0 0 2px 2px; -} - -.card .card-content p { - margin: 0; - color: inherit; -} - -.card .card-content .card-title { - line-height: 48px; -} - -.card .card-action { - position: relative; - background-color: inherit; - border-top: 1px solid rgba(160, 160, 160, 0.2); - padding: 20px; -} - -.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating) { - color: #ffab40; - margin-right: 20px; - transition: color .3s ease; - text-transform: uppercase; -} - -.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating):hover { - color: #ffd8a6; -} - -.card .card-reveal { - padding: 20px; - position: absolute; - background-color: #fff; - width: 100%; - overflow-y: auto; - top: 100%; - height: 100%; - z-index: 3; - display: none; -} - -.card .card-reveal .card-title { - cursor: pointer; - display: block; -} - -#toast-container { - display: block; - position: fixed; - z-index: 10000; -} - -@media only screen and (max-width: 600px) { - #toast-container { - min-width: 100%; - bottom: 0%; - } -} - -@media only screen and (min-width: 601px) and (max-width: 992px) { - #toast-container { - left: 5%; - bottom: 7%; - max-width: 90%; - } -} - -@media only screen and (min-width: 993px) { - #toast-container { - top: 10%; - right: 7%; - max-width: 86%; - } -} - -.toast { - border-radius: 2px; - top: 0; - width: auto; - clear: both; - margin-top: 10px; - position: relative; - max-width: 100%; - height: auto; - min-height: 48px; - line-height: 1.5em; - word-break: break-all; - background-color: #323232; - padding: 10px 25px; - font-size: 1.1rem; - font-weight: 300; - color: #fff; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.toast .btn, .toast .btn-large, .toast .btn-flat { - margin: 0; - margin-left: 3rem; -} - -.toast.rounded { - border-radius: 24px; -} - -@media only screen and (max-width: 600px) { - .toast { - width: 100%; - border-radius: 0; - } -} - -@media only screen and (min-width: 601px) and (max-width: 992px) { - .toast { - float: left; - } -} - -@media only screen and (min-width: 993px) { - .toast { - float: right; - } -} - -.tabs { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - position: relative; - overflow-x: auto; - overflow-y: hidden; - height: 48px; - background-color: #fff; - margin: 0 auto; - width: 100%; - white-space: nowrap; -} - -.tabs .tab { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - display: block; - float: left; - text-align: center; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: uppercase; - text-overflow: ellipsis; - overflow: hidden; - letter-spacing: .8px; - width: 15%; - min-width: 80px; -} - -.tabs .tab a { - color: #ee6e73; - display: block; - width: 100%; - height: 100%; - text-overflow: ellipsis; - overflow: hidden; - transition: color .28s ease; -} - -.tabs .tab a:hover { - color: #f9c9cb; -} - -.tabs .tab.disabled a { - color: #f9c9cb; - cursor: default; -} - -.tabs .indicator { - position: absolute; - bottom: 0; - height: 2px; - background-color: #f6b2b5; - will-change: left, right; -} - -.material-tooltip { - padding: 10px 8px; - font-size: 1rem; - z-index: 2000; - background-color: transparent; - border-radius: 2px; - color: #fff; - min-height: 36px; - line-height: 120%; - opacity: 0; - display: none; - position: absolute; - text-align: center; - max-width: calc(100% - 4px); - overflow: hidden; - left: 0; - top: 0; - pointer-events: none; -} - -.backdrop { - position: absolute; - opacity: 0; - display: none; - height: 7px; - width: 14px; - border-radius: 0 0 50% 50%; - background-color: #323232; - z-index: -1; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} - -.btn, .btn-large, -.btn-flat { - border: none; - border-radius: 2px; - display: inline-block; - height: 36px; - line-height: 36px; - outline: 0; - padding: 0 2rem; - text-transform: uppercase; - vertical-align: middle; - -webkit-tap-highlight-color: transparent; -} - -.btn.disabled, .disabled.btn-large, -.btn-floating.disabled, -.btn-large.disabled, -.btn:disabled, -.btn-large:disabled, -.btn-large:disabled, -.btn-floating:disabled, -.btn[disabled], -[disabled].btn-large, -.btn-large[disabled], -.btn-floating[disabled] { - background-color: #DFDFDF !important; - box-shadow: none; - color: #9F9F9F !important; - cursor: default; -} - -.btn.disabled *, .disabled.btn-large *, -.btn-floating.disabled *, -.btn-large.disabled *, -.btn:disabled *, .btn-large:disabled *, -.btn-large:disabled *, -.btn-floating:disabled *, -.btn[disabled] *, [disabled].btn-large *, -.btn-large[disabled] *, -.btn-floating[disabled] * { - pointer-events: none; -} - -.btn.disabled:hover, .disabled.btn-large:hover, -.btn-floating.disabled:hover, -.btn-large.disabled:hover, -.btn:disabled:hover, -.btn-large:disabled:hover, -.btn-large:disabled:hover, -.btn-floating:disabled:hover, -.btn[disabled]:hover, -[disabled].btn-large:hover, -.btn-large[disabled]:hover, -.btn-floating[disabled]:hover { - background-color: #DFDFDF !important; - color: #9F9F9F !important; -} - -.btn i, .btn-large i, -.btn-floating i, -.btn-large i, -.btn-flat i { - font-size: 1.3rem; - line-height: inherit; -} - -.btn, .btn-large { - text-decoration: none; - color: #fff; - background-color: #26a69a; - text-align: center; - letter-spacing: .5px; - transition: .2s ease-out; - cursor: pointer; -} - -.btn:hover, .btn-large:hover { - background-color: #2bbbad; -} - -.btn-floating { - display: inline-block; - color: #fff; - position: relative; - overflow: hidden; - z-index: 1; - width: 37px; - height: 37px; - line-height: 37px; - padding: 0; - background-color: #26a69a; - border-radius: 50%; - transition: .3s; - cursor: pointer; - vertical-align: middle; -} - -.btn-floating i { - width: inherit; - display: inline-block; - text-align: center; - color: #fff; - font-size: 1.6rem; - line-height: 37px; -} - -.btn-floating:hover { - background-color: #26a69a; -} - -.btn-floating:before { - border-radius: 0; -} - -.btn-floating.btn-large { - width: 55.5px; - height: 55.5px; -} - -.btn-floating.btn-large i { - line-height: 55.5px; -} - -button.btn-floating { - border: none; -} - -.fixed-action-btn { - position: fixed; - right: 23px; - bottom: 23px; - padding-top: 15px; - margin-bottom: 0; - z-index: 998; -} - -.fixed-action-btn.active ul { - visibility: visible; -} - -.fixed-action-btn.horizontal { - padding: 0 0 0 15px; -} - -.fixed-action-btn.horizontal ul { - text-align: right; - right: 64px; - top: 50%; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); - height: 100%; - left: auto; - width: 500px; - /*width 100% only goes to width of button container */ -} - -.fixed-action-btn.horizontal ul li { - display: inline-block; - margin: 15px 15px 0 0; -} - -.fixed-action-btn ul { - left: 0; - right: 0; - text-align: center; - position: absolute; - bottom: 64px; - margin: 0; - visibility: hidden; -} - -.fixed-action-btn ul li { - margin-bottom: 15px; -} - -.fixed-action-btn ul a.btn-floating { - opacity: 0; -} - -.btn-flat { - box-shadow: none; - background-color: transparent; - color: #343434; - cursor: pointer; - transition: background-color .2s; -} - -.btn-flat:focus, .btn-flat:active { - background-color: transparent; -} - -.btn-flat:hover { - background-color: rgba(0, 0, 0, 0.1); - box-shadow: none; -} - -.btn-flat.disabled { - color: #b3b3b3; - cursor: default; -} - -.btn-large { - height: 54px; - line-height: 54px; -} - -.btn-large i { - font-size: 1.6rem; -} - -.btn-block { - display: block; -} - -.dropdown-content { - background-color: #fff; - margin: 0; - display: none; - min-width: 100px; - max-height: 650px; - overflow-y: auto; - opacity: 0; - position: absolute; - z-index: 999; - will-change: width, height; -} - -.dropdown-content li { - clear: both; - color: rgba(0, 0, 0, 0.87); - cursor: pointer; - min-height: 50px; - line-height: 1.5rem; - width: 100%; - text-align: left; - text-transform: none; -} - -.dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected { - background-color: #eee; -} - -.dropdown-content li.active.selected { - background-color: #e1e1e1; -} - -.dropdown-content li.divider { - min-height: 0; - height: 1px; -} - -.dropdown-content li > a, .dropdown-content li > span { - font-size: 16px; - color: #26a69a; - display: block; - line-height: 22px; - padding: 14px 16px; -} - -.dropdown-content li > span > label { - top: 1px; - left: 3px; - height: 18px; -} - -.dropdown-content li > a > i { - height: inherit; - line-height: inherit; -} - -/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ -.waves-effect { - position: relative; - cursor: pointer; - display: inline-block; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: transparent; - vertical-align: middle; - z-index: 1; - will-change: opacity, transform; - transition: all .3s ease-out; -} - -.waves-effect .waves-ripple { - position: absolute; - border-radius: 50%; - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - opacity: 0; - background: rgba(0, 0, 0, 0.2); - transition: all 0.7s ease-out; - transition-property: opacity, -webkit-transform; - transition-property: transform, opacity; - transition-property: transform, opacity, -webkit-transform; - -webkit-transform: scale(0); - transform: scale(0); - pointer-events: none; -} - -.waves-effect.waves-light .waves-ripple { - background-color: rgba(255, 255, 255, 0.45); -} - -.waves-effect.waves-red .waves-ripple { - background-color: rgba(244, 67, 54, 0.7); -} - -.waves-effect.waves-yellow .waves-ripple { - background-color: rgba(255, 235, 59, 0.7); -} - -.waves-effect.waves-orange .waves-ripple { - background-color: rgba(255, 152, 0, 0.7); -} - -.waves-effect.waves-purple .waves-ripple { - background-color: rgba(156, 39, 176, 0.7); -} - -.waves-effect.waves-green .waves-ripple { - background-color: rgba(76, 175, 80, 0.7); -} - -.waves-effect.waves-teal .waves-ripple { - background-color: rgba(0, 150, 136, 0.7); -} - -.waves-effect input[type="button"], .waves-effect input[type="reset"], .waves-effect input[type="submit"] { - border: 0; - font-style: normal; - font-size: inherit; - text-transform: inherit; - background: none; -} - -.waves-effect img { - position: relative; - z-index: -1; -} - -.waves-notransition { - transition: none !important; -} - -.waves-circle { - -webkit-transform: translateZ(0); - transform: translateZ(0); - -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); -} - -.waves-input-wrapper { - border-radius: 0.2em; - vertical-align: bottom; -} - -.waves-input-wrapper .waves-button-input { - position: relative; - top: 0; - left: 0; - z-index: 1; -} - -.waves-circle { - text-align: center; - width: 2.5em; - height: 2.5em; - line-height: 2.5em; - border-radius: 50%; - -webkit-mask-image: none; -} - -.waves-block { - display: block; -} - -/* Firefox Bug: link not triggered */ -.waves-effect .waves-ripple { - z-index: -1; -} - -.modal { - display: none; - position: fixed; - left: 0; - right: 0; - background-color: #fafafa; - padding: 0; - max-height: 70%; - width: 55%; - margin: auto; - overflow-y: auto; - border-radius: 2px; - will-change: top, opacity; -} - -@media only screen and (max-width: 992px) { - .modal { - width: 80%; - } -} - -.modal h1, .modal h2, .modal h3, .modal h4 { - margin-top: 0; -} - -.modal .modal-content { - padding: 24px; -} - -.modal .modal-close { - cursor: pointer; -} - -.modal .modal-footer { - border-radius: 0 0 2px 2px; - background-color: #fafafa; - padding: 4px 6px; - height: 56px; - width: 100%; -} - -.modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat { - float: right; - margin: 6px 0; -} - -.lean-overlay { - position: fixed; - z-index: 999; - top: -100px; - left: 0; - bottom: 0; - right: 0; - height: 125%; - width: 100%; - background: #000; - display: none; - will-change: opacity; -} - -.modal.modal-fixed-footer { - padding: 0; - height: 70%; -} - -.modal.modal-fixed-footer .modal-content { - position: absolute; - height: calc(100% - 56px); - max-height: 100%; - width: 100%; - overflow-y: auto; -} - -.modal.modal-fixed-footer .modal-footer { - border-top: 1px solid rgba(0, 0, 0, 0.1); - position: absolute; - bottom: 0; -} - -.modal.bottom-sheet { - top: auto; - bottom: -100%; - margin: 0; - width: 100%; - max-height: 45%; - border-radius: 0; - will-change: bottom, opacity; -} - -.collapsible { - border-top: 1px solid #ddd; - border-right: 1px solid #ddd; - border-left: 1px solid #ddd; - margin: 0.5rem 0 1rem 0; -} - -.collapsible-header { - display: block; - cursor: pointer; - min-height: 3rem; - line-height: 3rem; - padding: 0 1rem; - background-color: #fff; - border-bottom: 1px solid #ddd; -} - -.collapsible-header i { - width: 2rem; - font-size: 1.6rem; - line-height: 3rem; - display: block; - float: left; - text-align: center; - margin-right: 1rem; -} - -.collapsible-body { - display: none; - border-bottom: 1px solid #ddd; - box-sizing: border-box; -} - -.collapsible-body p { - margin: 0; - padding: 2rem; -} - -.side-nav .collapsible, -.side-nav.fixed .collapsible { - border: none; - box-shadow: none; -} - -.side-nav .collapsible li, -.side-nav.fixed .collapsible li { - padding: 0; -} - -.side-nav .collapsible-header, -.side-nav.fixed .collapsible-header { - background-color: transparent; - border: none; - line-height: inherit; - height: inherit; - padding: 0 16px; -} - -.side-nav .collapsible-header:hover, -.side-nav.fixed .collapsible-header:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.side-nav .collapsible-header i, -.side-nav.fixed .collapsible-header i { - line-height: inherit; -} - -.side-nav .collapsible-body, -.side-nav.fixed .collapsible-body { - border: 0; - background-color: #fff; -} - -.side-nav .collapsible-body li a, -.side-nav.fixed .collapsible-body li a { - padding: 0 23.5px 0 31px; -} - -.collapsible.popout { - border: none; - box-shadow: none; -} - -.collapsible.popout > li { - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); - margin: 0 24px; - transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94); -} - -.collapsible.popout > li.active { - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); - margin: 16px 0; -} - -.chip { - display: inline-block; - height: 32px; - font-size: 13px; - font-weight: 500; - color: rgba(0, 0, 0, 0.6); - line-height: 32px; - padding: 0 12px; - border-radius: 16px; - background-color: #e4e4e4; - margin-bottom: 5px; - margin-right: 5px; -} - -.chip img { - float: left; - margin: 0 8px 0 -12px; - height: 32px; - width: 32px; - border-radius: 50%; -} - -.chip .close { - cursor: pointer; - float: right; - font-size: 16px; - line-height: 32px; - padding-left: 8px; -} - -.chips { - border: none; - border-bottom: 1px solid #9e9e9e; - box-shadow: none; - margin-bottom: 30px; - min-height: 45px; - outline: none; - padding-bottom: 5px; - transition: all .3s; -} - -.chips.focus { - border-bottom: 1px solid #26a69a; - box-shadow: 0 1px 0 0 #26a69a; -} - -.chips:hover { - cursor: text; -} - -.chips .chip.selected { - background-color: #26a69a; - color: #fff; -} - -.chips .input { - background: none; - border: 0; - color: rgba(0, 0, 0, 0.6); - display: inline-block; - font-size: 13px; - font-weight: 500; - height: 32px; - margin-right: 20px; - line-height: 32px; - outline: 0; - padding: 0 !important; - width: 120px !important; -} - -.chips .input:focus { - border: 0 !important; - box-shadow: none !important; -} - -.materialboxed { - display: block; - cursor: -webkit-zoom-in; - cursor: zoom-in; - position: relative; - transition: opacity .4s; -} - -.materialboxed:hover { - will-change: left, top, width, height; -} - -.materialboxed:hover:not(.active) { - opacity: .8; -} - -.materialboxed.active { - cursor: -webkit-zoom-out; - cursor: zoom-out; -} - -#materialbox-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #292929; - z-index: 1000; - will-change: opacity; -} - -.materialbox-caption { - position: fixed; - display: none; - color: #fff; - line-height: 50px; - bottom: 0; - width: 100%; - text-align: center; - padding: 0% 15%; - height: 50px; - z-index: 1000; - -webkit-font-smoothing: antialiased; -} - -select:focus { - outline: 1px solid #c9f3ef; -} - -button:focus { - outline: none; - background-color: #2ab7a9; -} - -label { - font-size: 0.8rem; - color: #9e9e9e; -} - -/* Text Inputs + Textarea - ========================================================================== */ -/* Style Placeholders */ -::-webkit-input-placeholder { - color: #d1d1d1; -} - -:-moz-placeholder { - /* Firefox 18- */ - color: #d1d1d1; -} - -::-moz-placeholder { - /* Firefox 19+ */ - color: #d1d1d1; -} - -:-ms-input-placeholder { - color: #d1d1d1; -} - -/* Text inputs */ -input:not([type]), -input[type=text], -input[type=password], -input[type=email], -input[type=url], -input[type=time], -input[type=date], -input[type=datetime], -input[type=datetime-local], -input[type=tel], -input[type=number], -input[type=search], -textarea.materialize-textarea { - background-color: transparent; - border: none; - border-bottom: 1px solid #9e9e9e; - border-radius: 0; - outline: none; - height: 3rem; - width: 100%; - font-size: 1rem; - margin: 0 0 20px 0; - padding: 0; - box-shadow: none; - box-sizing: content-box; - transition: all 0.3s; -} - -input:not([type]):disabled, input:not([type])[readonly="readonly"], -input[type=text]:disabled, -input[type=text][readonly="readonly"], -input[type=password]:disabled, -input[type=password][readonly="readonly"], -input[type=email]:disabled, -input[type=email][readonly="readonly"], -input[type=url]:disabled, -input[type=url][readonly="readonly"], -input[type=time]:disabled, -input[type=time][readonly="readonly"], -input[type=date]:disabled, -input[type=date][readonly="readonly"], -input[type=datetime]:disabled, -input[type=datetime][readonly="readonly"], -input[type=datetime-local]:disabled, -input[type=datetime-local][readonly="readonly"], -input[type=tel]:disabled, -input[type=tel][readonly="readonly"], -input[type=number]:disabled, -input[type=number][readonly="readonly"], -input[type=search]:disabled, -input[type=search][readonly="readonly"], -textarea.materialize-textarea:disabled, -textarea.materialize-textarea[readonly="readonly"] { - color: rgba(0, 0, 0, 0.26); - border-bottom: 1px dotted rgba(0, 0, 0, 0.26); -} - -input:not([type]):disabled + label, -input:not([type])[readonly="readonly"] + label, -input[type=text]:disabled + label, -input[type=text][readonly="readonly"] + label, -input[type=password]:disabled + label, -input[type=password][readonly="readonly"] + label, -input[type=email]:disabled + label, -input[type=email][readonly="readonly"] + label, -input[type=url]:disabled + label, -input[type=url][readonly="readonly"] + label, -input[type=time]:disabled + label, -input[type=time][readonly="readonly"] + label, -input[type=date]:disabled + label, -input[type=date][readonly="readonly"] + label, -input[type=datetime]:disabled + label, -input[type=datetime][readonly="readonly"] + label, -input[type=datetime-local]:disabled + label, -input[type=datetime-local][readonly="readonly"] + label, -input[type=tel]:disabled + label, -input[type=tel][readonly="readonly"] + label, -input[type=number]:disabled + label, -input[type=number][readonly="readonly"] + label, -input[type=search]:disabled + label, -input[type=search][readonly="readonly"] + label, -textarea.materialize-textarea:disabled + label, -textarea.materialize-textarea[readonly="readonly"] + label { - color: rgba(0, 0, 0, 0.26); -} - -input:not([type]):focus:not([readonly]), -input[type=text]:focus:not([readonly]), -input[type=password]:focus:not([readonly]), -input[type=email]:focus:not([readonly]), -input[type=url]:focus:not([readonly]), -input[type=time]:focus:not([readonly]), -input[type=date]:focus:not([readonly]), -input[type=datetime]:focus:not([readonly]), -input[type=datetime-local]:focus:not([readonly]), -input[type=tel]:focus:not([readonly]), -input[type=number]:focus:not([readonly]), -input[type=search]:focus:not([readonly]), -textarea.materialize-textarea:focus:not([readonly]) { - border-bottom: 1px solid #26a69a; - box-shadow: 0 1px 0 0 #26a69a; -} - -input:not([type]):focus:not([readonly]) + label, -input[type=text]:focus:not([readonly]) + label, -input[type=password]:focus:not([readonly]) + label, -input[type=email]:focus:not([readonly]) + label, -input[type=url]:focus:not([readonly]) + label, -input[type=time]:focus:not([readonly]) + label, -input[type=date]:focus:not([readonly]) + label, -input[type=datetime]:focus:not([readonly]) + label, -input[type=datetime-local]:focus:not([readonly]) + label, -input[type=tel]:focus:not([readonly]) + label, -input[type=number]:focus:not([readonly]) + label, -input[type=search]:focus:not([readonly]) + label, -textarea.materialize-textarea:focus:not([readonly]) + label { - color: #26a69a; -} - -input:not([type]).valid, input:not([type]):focus.valid, -input[type=text].valid, -input[type=text]:focus.valid, -input[type=password].valid, -input[type=password]:focus.valid, -input[type=email].valid, -input[type=email]:focus.valid, -input[type=url].valid, -input[type=url]:focus.valid, -input[type=time].valid, -input[type=time]:focus.valid, -input[type=date].valid, -input[type=date]:focus.valid, -input[type=datetime].valid, -input[type=datetime]:focus.valid, -input[type=datetime-local].valid, -input[type=datetime-local]:focus.valid, -input[type=tel].valid, -input[type=tel]:focus.valid, -input[type=number].valid, -input[type=number]:focus.valid, -input[type=search].valid, -input[type=search]:focus.valid, -textarea.materialize-textarea.valid, -textarea.materialize-textarea:focus.valid { - border-bottom: 1px solid #4CAF50; - box-shadow: 0 1px 0 0 #4CAF50; -} - -input:not([type]).valid + label:after, -input:not([type]):focus.valid + label:after, -input[type=text].valid + label:after, -input[type=text]:focus.valid + label:after, -input[type=password].valid + label:after, -input[type=password]:focus.valid + label:after, -input[type=email].valid + label:after, -input[type=email]:focus.valid + label:after, -input[type=url].valid + label:after, -input[type=url]:focus.valid + label:after, -input[type=time].valid + label:after, -input[type=time]:focus.valid + label:after, -input[type=date].valid + label:after, -input[type=date]:focus.valid + label:after, -input[type=datetime].valid + label:after, -input[type=datetime]:focus.valid + label:after, -input[type=datetime-local].valid + label:after, -input[type=datetime-local]:focus.valid + label:after, -input[type=tel].valid + label:after, -input[type=tel]:focus.valid + label:after, -input[type=number].valid + label:after, -input[type=number]:focus.valid + label:after, -input[type=search].valid + label:after, -input[type=search]:focus.valid + label:after, -textarea.materialize-textarea.valid + label:after, -textarea.materialize-textarea:focus.valid + label:after { - content: attr(data-success); - color: #4CAF50; - opacity: 1; -} - -input:not([type]).invalid, input:not([type]):focus.invalid, -input[type=text].invalid, -input[type=text]:focus.invalid, -input[type=password].invalid, -input[type=password]:focus.invalid, -input[type=email].invalid, -input[type=email]:focus.invalid, -input[type=url].invalid, -input[type=url]:focus.invalid, -input[type=time].invalid, -input[type=time]:focus.invalid, -input[type=date].invalid, -input[type=date]:focus.invalid, -input[type=datetime].invalid, -input[type=datetime]:focus.invalid, -input[type=datetime-local].invalid, -input[type=datetime-local]:focus.invalid, -input[type=tel].invalid, -input[type=tel]:focus.invalid, -input[type=number].invalid, -input[type=number]:focus.invalid, -input[type=search].invalid, -input[type=search]:focus.invalid, -textarea.materialize-textarea.invalid, -textarea.materialize-textarea:focus.invalid { - border-bottom: 1px solid #F44336; - box-shadow: 0 1px 0 0 #F44336; -} - -input:not([type]).invalid + label:after, -input:not([type]):focus.invalid + label:after, -input[type=text].invalid + label:after, -input[type=text]:focus.invalid + label:after, -input[type=password].invalid + label:after, -input[type=password]:focus.invalid + label:after, -input[type=email].invalid + label:after, -input[type=email]:focus.invalid + label:after, -input[type=url].invalid + label:after, -input[type=url]:focus.invalid + label:after, -input[type=time].invalid + label:after, -input[type=time]:focus.invalid + label:after, -input[type=date].invalid + label:after, -input[type=date]:focus.invalid + label:after, -input[type=datetime].invalid + label:after, -input[type=datetime]:focus.invalid + label:after, -input[type=datetime-local].invalid + label:after, -input[type=datetime-local]:focus.invalid + label:after, -input[type=tel].invalid + label:after, -input[type=tel]:focus.invalid + label:after, -input[type=number].invalid + label:after, -input[type=number]:focus.invalid + label:after, -input[type=search].invalid + label:after, -input[type=search]:focus.invalid + label:after, -textarea.materialize-textarea.invalid + label:after, -textarea.materialize-textarea:focus.invalid + label:after { - content: attr(data-error); - color: #F44336; - opacity: 1; -} - -input:not([type]).validate + label, -input[type=text].validate + label, -input[type=password].validate + label, -input[type=email].validate + label, -input[type=url].validate + label, -input[type=time].validate + label, -input[type=date].validate + label, -input[type=datetime].validate + label, -input[type=datetime-local].validate + label, -input[type=tel].validate + label, -input[type=number].validate + label, -input[type=search].validate + label, -textarea.materialize-textarea.validate + label { - width: 100%; - pointer-events: none; -} - -input:not([type]) + label:after, -input[type=text] + label:after, -input[type=password] + label:after, -input[type=email] + label:after, -input[type=url] + label:after, -input[type=time] + label:after, -input[type=date] + label:after, -input[type=datetime] + label:after, -input[type=datetime-local] + label:after, -input[type=tel] + label:after, -input[type=number] + label:after, -input[type=search] + label:after, -textarea.materialize-textarea + label:after { - display: block; - content: ""; - position: absolute; - top: 60px; - opacity: 0; - transition: .2s opacity ease-out, .2s color ease-out; -} - -.input-field { - position: relative; - margin-top: 1rem; -} - -.input-field.col label { - left: 0.75rem; -} - -.input-field.col .prefix ~ label, -.input-field.col .prefix ~ .validate ~ label { - width: calc(100% - 3rem - 1.5rem); -} - -.input-field label { - color: #9e9e9e; - position: absolute; - top: 0.8rem; - font-size: 1rem; - cursor: text; - transition: .2s ease-out; -} - -.input-field label.active { - font-size: 0.8rem; - -webkit-transform: translateY(-140%); - transform: translateY(-140%); -} - -.input-field .prefix { - position: absolute; - width: 3rem; - font-size: 2rem; - transition: color .2s; -} - -.input-field .prefix.active { - color: #26a69a; -} - -.input-field .prefix ~ input, -.input-field .prefix ~ textarea, -.input-field .prefix ~ label, -.input-field .prefix ~ .validate ~ label, -.input-field .prefix ~ .autocomplete-content { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.input-field .prefix ~ label { - margin-left: 3rem; -} - -@media only screen and (max-width: 992px) { - .input-field .prefix ~ input { - width: 86%; - width: calc(100% - 3rem); - } -} - -@media only screen and (max-width: 600px) { - .input-field .prefix ~ input { - width: 80%; - width: calc(100% - 3rem); - } -} - -/* Search Field */ -.input-field input[type=search] { - display: block; - line-height: inherit; - padding-left: 4rem; - width: calc(100% - 4rem); -} - -.input-field input[type=search]:focus { - background-color: #fff; - border: 0; - box-shadow: none; - color: #444; -} - -.input-field input[type=search]:focus + label i, -.input-field input[type=search]:focus ~ .mdi-navigation-close, -.input-field input[type=search]:focus ~ .material-icons { - color: #444; -} - -.input-field input[type=search] + label { - left: 1rem; -} - -.input-field input[type=search] ~ .mdi-navigation-close, -.input-field input[type=search] ~ .material-icons { - position: absolute; - top: 0; - right: 1rem; - color: transparent; - cursor: pointer; - font-size: 2rem; - transition: .3s color; -} - -/* Textarea */ -textarea { - width: 100%; - height: 3rem; - background-color: transparent; -} - -textarea.materialize-textarea { - overflow-y: hidden; - /* prevents scroll bar flash */ - padding: .8rem 0 1.6rem 0; - /* prevents text jump on Enter keypress */ - resize: none; - min-height: 3rem; -} - -.hiddendiv { - display: none; - white-space: pre-wrap; - word-wrap: break-word; - overflow-wrap: break-word; - /* future version of deprecated 'word-wrap' */ - padding-top: 1.2rem; - /* prevents text jump on Enter keypress */ -} - -/* Autocomplete */ -.autocomplete-content { - margin-top: -15px; - display: block; - opacity: 1; - position: static; -} - -.autocomplete-content li .highlight { - color: #444; -} - -.autocomplete-content li img { - height: 40px; - width: 40px; - margin: 5px 15px; -} - -/* Radio Buttons - ========================================================================== */ -[type="radio"]:not(:checked), -[type="radio"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -[type="radio"]:not(:checked) + label, -[type="radio"]:checked + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - transition: .28s ease; - /* webkit (konqueror) browsers */ - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -[type="radio"] + label:before, -[type="radio"] + label:after { - content: ''; - position: absolute; - left: 0; - top: 0; - margin: 4px; - width: 16px; - height: 16px; - z-index: 0; - transition: .28s ease; -} - -/* Unchecked styles */ -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after, -[type="radio"]:checked + label:before, -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border-radius: 50%; -} - -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after { - border: 2px solid #5a5a5a; -} - -[type="radio"]:not(:checked) + label:after { - z-index: -1; - -webkit-transform: scale(0); - transform: scale(0); -} - -/* Checked styles */ -[type="radio"]:checked + label:before { - border: 2px solid transparent; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border: 2px solid #26a69a; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:after { - background-color: #26a69a; - z-index: 0; -} - -[type="radio"]:checked + label:after { - -webkit-transform: scale(1.02); - transform: scale(1.02); -} - -/* Radio With gap */ -[type="radio"].with-gap:checked + label:after { - -webkit-transform: scale(0.5); - transform: scale(0.5); -} - -/* Focused styles */ -[type="radio"].tabbed:focus + label:before { - box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1); -} - -/* Disabled Radio With gap */ -[type="radio"].with-gap:disabled:checked + label:before { - border: 2px solid rgba(0, 0, 0, 0.26); -} - -[type="radio"].with-gap:disabled:checked + label:after { - border: none; - background-color: rgba(0, 0, 0, 0.26); -} - -/* Disabled style */ -[type="radio"]:disabled:not(:checked) + label:before, -[type="radio"]:disabled:checked + label:before { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.26); -} - -[type="radio"]:disabled + label { - color: rgba(0, 0, 0, 0.26); -} - -[type="radio"]:disabled:not(:checked) + label:before { - border-color: rgba(0, 0, 0, 0.26); -} - -[type="radio"]:disabled:checked + label:after { - background-color: rgba(0, 0, 0, 0.26); - border-color: #BDBDBD; -} - -/* Checkboxes - ========================================================================== */ -/* CUSTOM CSS CHECKBOXES */ -form p { - margin-bottom: 10px; - text-align: left; -} - -form p:last-child { - margin-bottom: 0; -} - -/* Remove default checkbox */ -[type="checkbox"]:not(:checked), -[type="checkbox"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -[type="checkbox"] { - /* checkbox aspect */ -} - -[type="checkbox"] + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - -webkit-user-select: none; - /* webkit (safari, chrome) browsers */ - -moz-user-select: none; - /* mozilla browsers */ - -khtml-user-select: none; - /* webkit (konqueror) browsers */ - -ms-user-select: none; - /* IE10+ */ -} - -[type="checkbox"] + label:before, -[type="checkbox"]:not(.filled-in) + label:after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 18px; - height: 18px; - z-index: 0; - border: 2px solid #5a5a5a; - border-radius: 1px; - margin-top: 2px; - transition: .2s; -} - -[type="checkbox"]:not(.filled-in) + label:after { - border: 0; - -webkit-transform: scale(0); - transform: scale(0); -} - -[type="checkbox"]:not(:checked):disabled + label:before { - border: none; - background-color: rgba(0, 0, 0, 0.26); -} - -[type="checkbox"].tabbed:focus + label:after { - -webkit-transform: scale(1); - transform: scale(1); - border: 0; - border-radius: 50%; - box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1); - background-color: rgba(0, 0, 0, 0.1); -} - -[type="checkbox"]:checked + label:before { - top: -4px; - left: -5px; - width: 12px; - height: 22px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid #26a69a; - border-bottom: 2px solid #26a69a; - -webkit-transform: rotate(40deg); - transform: rotate(40deg); - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -[type="checkbox"]:checked:disabled + label:before { - border-right: 2px solid rgba(0, 0, 0, 0.26); - border-bottom: 2px solid rgba(0, 0, 0, 0.26); -} - -/* Indeterminate checkbox */ -[type="checkbox"]:indeterminate + label:before { - top: -11px; - left: -12px; - width: 10px; - height: 22px; - border-top: none; - border-left: none; - border-right: 2px solid #26a69a; - border-bottom: none; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -[type="checkbox"]:indeterminate:disabled + label:before { - border-right: 2px solid rgba(0, 0, 0, 0.26); - background-color: transparent; -} - -[type="checkbox"].filled-in + label:after { - border-radius: 2px; -} - -[type="checkbox"].filled-in + label:before, -[type="checkbox"].filled-in + label:after { - content: ''; - left: 0; - position: absolute; - /* .1s delay is for check animation */ - transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s; - z-index: 1; -} - -[type="checkbox"].filled-in:not(:checked) + label:before { - width: 0; - height: 0; - border: 3px solid transparent; - left: 6px; - top: 10px; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 20% 40%; - transform-origin: 100% 100%; -} - -[type="checkbox"].filled-in:not(:checked) + label:after { - height: 20px; - width: 20px; - background-color: transparent; - border: 2px solid #5a5a5a; - top: 0px; - z-index: 0; -} - -[type="checkbox"].filled-in:checked + label:before { - top: 0; - left: 1px; - width: 8px; - height: 13px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid #fff; - border-bottom: 2px solid #fff; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -[type="checkbox"].filled-in:checked + label:after { - top: 0; - width: 20px; - height: 20px; - border: 2px solid #26a69a; - background-color: #26a69a; - z-index: 0; -} - -[type="checkbox"].filled-in.tabbed:focus + label:after { - border-radius: 2px; - border-color: #5a5a5a; - background-color: rgba(0, 0, 0, 0.1); -} - -[type="checkbox"].filled-in.tabbed:checked:focus + label:after { - border-radius: 2px; - background-color: #26a69a; - border-color: #26a69a; -} - -[type="checkbox"].filled-in:disabled:not(:checked) + label:before { - background-color: transparent; - border: 2px solid transparent; -} - -[type="checkbox"].filled-in:disabled:not(:checked) + label:after { - border-color: transparent; - background-color: #BDBDBD; -} - -[type="checkbox"].filled-in:disabled:checked + label:before { - background-color: transparent; -} - -[type="checkbox"].filled-in:disabled:checked + label:after { - background-color: #BDBDBD; - border-color: #BDBDBD; -} - -/* Switch - ========================================================================== */ -.switch, -.switch * { - -webkit-user-select: none; - -moz-user-select: none; - -khtml-user-select: none; - -ms-user-select: none; -} - -.switch label { - cursor: pointer; -} - -.switch label input[type=checkbox] { - opacity: 0; - width: 0; - height: 0; -} - -.switch label input[type=checkbox]:checked + .lever { - background-color: #84c7c1; -} - -.switch label input[type=checkbox]:checked + .lever:after { - background-color: #26a69a; - left: 24px; -} - -.switch label .lever { - content: ""; - display: inline-block; - position: relative; - width: 40px; - height: 15px; - background-color: #818181; - border-radius: 15px; - margin-right: 10px; - transition: background 0.3s ease; - vertical-align: middle; - margin: 0 16px; -} - -.switch label .lever:after { - content: ""; - position: absolute; - display: inline-block; - width: 21px; - height: 21px; - background-color: #F1F1F1; - border-radius: 21px; - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4); - left: -5px; - top: -3px; - transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease; -} - -input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after, -input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1); -} - -input[type=checkbox]:not(:disabled) ~ .lever:active:after, -input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08); -} - -.switch input[type=checkbox][disabled] + .lever { - cursor: default; -} - -.switch label input[type=checkbox][disabled] + .lever:after, -.switch label input[type=checkbox][disabled]:checked + .lever:after { - background-color: #BDBDBD; -} - -/* Select Field - ========================================================================== */ -select { - display: none; -} - -select.browser-default { - display: block; -} - -select { - background-color: rgba(255, 255, 255, 0.9); - width: 100%; - padding: 5px; - border: 1px solid #f2f2f2; - border-radius: 2px; - height: 3rem; -} - -.select-label { - position: absolute; -} - -.select-wrapper { - position: relative; -} - -.select-wrapper input.select-dropdown { - position: relative; - cursor: pointer; - background-color: transparent; - border: none; - border-bottom: 1px solid #9e9e9e; - outline: none; - height: 3rem; - line-height: 3rem; - width: 100%; - font-size: 1rem; - margin: 0 0 20px 0; - padding: 0; - display: block; -} - -.select-wrapper span.caret { - color: initial; - position: absolute; - right: 0; - top: 16px; - font-size: 10px; -} - -.select-wrapper span.caret.disabled { - color: rgba(0, 0, 0, 0.26); -} - -.select-wrapper + label { - position: absolute; - top: -14px; - font-size: 0.8rem; -} - -select:disabled { - color: rgba(0, 0, 0, 0.3); -} - -.select-wrapper input.select-dropdown:disabled { - color: rgba(0, 0, 0, 0.3); - cursor: default; - -webkit-user-select: none; - /* webkit (safari, chrome) browsers */ - -moz-user-select: none; - /* mozilla browsers */ - -ms-user-select: none; - /* IE10+ */ - border-bottom: 1px solid rgba(0, 0, 0, 0.3); -} - -.select-wrapper i { - color: rgba(0, 0, 0, 0.3); -} - -.select-dropdown li.disabled, -.select-dropdown li.disabled > span, -.select-dropdown li.optgroup { - color: rgba(0, 0, 0, 0.3); - background-color: transparent; -} - -.prefix ~ .select-wrapper { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.prefix ~ label { - margin-left: 3rem; -} - -.select-dropdown li img { - height: 40px; - width: 40px; - margin: 5px 15px; - float: right; -} - -.select-dropdown li.optgroup { - border-top: 1px solid #eee; -} - -.select-dropdown li.optgroup.selected > span { - color: rgba(0, 0, 0, 0.7); -} - -.select-dropdown li.optgroup > span { - color: rgba(0, 0, 0, 0.4); -} - -.select-dropdown li.optgroup ~ li.optgroup-option { - padding-left: 1rem; -} - -/* File Input - ========================================================================== */ -.file-field { - position: relative; -} - -.file-field .file-path-wrapper { - overflow: hidden; - padding-left: 10px; -} - -.file-field input.file-path { - width: 100%; -} - -.file-field .btn, .file-field .btn-large { - float: left; - height: 3rem; - line-height: 3rem; -} - -.file-field span { - cursor: pointer; -} - -.file-field input[type=file] { - position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; - width: 100%; - margin: 0; - padding: 0; - font-size: 20px; - cursor: pointer; - opacity: 0; - filter: alpha(opacity=0); -} - -/* Range - ========================================================================== */ -.range-field { - position: relative; -} - -input[type=range], -input[type=range] + .thumb { - cursor: pointer; -} - -input[type=range] { - position: relative; - background-color: transparent; - border: none; - outline: none; - width: 100%; - margin: 15px 0; - padding: 0; -} - -input[type=range]:focus { - outline: none; -} - -input[type=range] + .thumb { - position: absolute; - border: none; - height: 0; - width: 0; - border-radius: 50%; - background-color: #26a69a; - top: 10px; - margin-left: -6px; - -webkit-transform-origin: 50% 50%; - transform-origin: 50% 50%; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); -} - -input[type=range] + .thumb .value { - display: block; - width: 30px; - text-align: center; - color: #26a69a; - font-size: 0; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); -} - -input[type=range] + .thumb.active { - border-radius: 50% 50% 50% 0; -} - -input[type=range] + .thumb.active .value { - color: #fff; - margin-left: -1px; - margin-top: 8px; - font-size: 10px; -} - -input[type=range] { - -webkit-appearance: none; -} - -input[type=range]::-webkit-slider-runnable-track { - height: 3px; - background: #c2c0c2; - border: none; -} - -input[type=range]::-webkit-slider-thumb { - -webkit-appearance: none; - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background-color: #26a69a; - -webkit-transform-origin: 50% 50%; - transform-origin: 50% 50%; - margin: -5px 0 0 0; - transition: .3s; -} - -input[type=range]:focus::-webkit-slider-runnable-track { - background: #ccc; -} - -input[type=range] { - /* fix for FF unable to apply focus style bug */ - border: 1px solid white; - /*required for proper track sizing in FF*/ -} - -input[type=range]::-moz-range-track { - height: 3px; - background: #ddd; - border: none; -} - -input[type=range]::-moz-range-thumb { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; - margin-top: -5px; -} - -input[type=range]:-moz-focusring { - outline: 1px solid #fff; - outline-offset: -1px; -} - -input[type=range]:focus::-moz-range-track { - background: #ccc; -} - -input[type=range]::-ms-track { - height: 3px; - background: transparent; - border-color: transparent; - border-width: 6px 0; - /*remove default tick marks*/ - color: transparent; -} - -input[type=range]::-ms-fill-lower { - background: #777; -} - -input[type=range]::-ms-fill-upper { - background: #ddd; -} - -input[type=range]::-ms-thumb { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; -} - -input[type=range]:focus::-ms-fill-lower { - background: #888; -} - -input[type=range]:focus::-ms-fill-upper { - background: #ccc; -} - -/*************** - Nav List -***************/ -.table-of-contents.fixed { - position: fixed; -} - -.table-of-contents li { - padding: 2px 0; -} - -.table-of-contents a { - display: inline-block; - font-weight: 300; - color: #757575; - padding-left: 20px; - height: 1.5rem; - line-height: 1.5rem; - letter-spacing: .4; - display: inline-block; -} - -.table-of-contents a:hover { - color: #a8a8a8; - padding-left: 19px; - border-left: 1px solid #ea4a4f; -} - -.table-of-contents a.active { - font-weight: 500; - padding-left: 18px; - border-left: 2px solid #ea4a4f; -} - -.side-nav { - position: fixed; - width: 300px; - left: 0; - top: 0; - margin: 0; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); - height: 100%; - height: calc(100% + 60px); - height: -moz-calc(100%); - padding-bottom: 60px; - background-color: #fff; - z-index: 999; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - overflow-y: auto; - will-change: transform; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform: translateX(-105%); - transform: translateX(-105%); -} - -.side-nav.right-aligned { - right: 0; - -webkit-transform: translateX(105%); - transform: translateX(105%); - left: auto; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} - -.side-nav .collapsible { - margin: 0; -} - -.side-nav li { - float: none; - line-height: 48px; -} - -.side-nav li.active { - background-color: rgba(0, 0, 0, 0.05); -} - -.side-nav a { - color: rgba(0, 0, 0, 0.87); - display: block; - font-size: 14px; - font-weight: 500; - height: 48px; - line-height: 48px; - padding: 0 32px; -} - -.side-nav a:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-flat, .side-nav a.btn-floating { - margin: 10px 15px; -} - -.side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-floating { - color: #fff; -} - -.side-nav a.btn-flat { - color: #343434; -} - -.side-nav a.btn:hover, .side-nav a.btn-large:hover, .side-nav a.btn-large:hover { - background-color: #2bbbad; -} - -.side-nav a.btn-floating:hover { - background-color: #26a69a; -} - -.side-nav li > a > i, -.side-nav li > a > [class^="mdi-"], .side-nav li > a > [class*="mdi-"], -.side-nav li > a > i.material-icons { - float: left; - line-height: 48px; - margin: 0 32px 0 0; - width: 24px; - color: rgba(0, 0, 0, 0.54); -} - -.side-nav .divider { - margin: 8px 0 0 0; -} - -.side-nav .subheader { - cursor: initial; - pointer-events: none; - color: rgba(0, 0, 0, 0.54); - font-size: 14px; - font-weight: 500; - line-height: 48px; -} - -.side-nav .subheader:hover { - background-color: transparent; -} - -.side-nav .userView { - overflow: hidden; - position: relative; - padding: 32px 32px 0; - margin-bottom: 8px; -} - -.side-nav .userView a { - height: auto; - padding: 0; -} - -.side-nav .userView a:hover { - background-color: transparent; -} - -.side-nav .userView .background { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1; -} - -.side-nav .userView .circle, .side-nav .userView .name, .side-nav .userView .email { - display: block; -} - -.side-nav .userView .circle { - height: 64px; - width: 64px; -} - -.side-nav .userView .name, -.side-nav .userView .email { - font-weight: 14px; - line-height: 24px; -} - -.side-nav .userView .name { - margin-top: 16px; - font-weight: 500; -} - -.side-nav .userView .email { - padding-bottom: 16px; - font-weight: 400; -} - -.drag-target { - height: 100%; - width: 10px; - position: fixed; - top: 0; - z-index: 998; -} - -.side-nav.fixed a { - display: block; - padding: 0 16px; - color: rgba(0, 0, 0, 0.87); -} - -.side-nav.fixed { - left: 0; - -webkit-transform: translateX(0); - transform: translateX(0); - position: fixed; -} - -.side-nav.fixed.right-aligned { - right: 0; - left: auto; -} - -@media only screen and (max-width: 992px) { - .side-nav.fixed { - -webkit-transform: translateX(-105%); - transform: translateX(-105%); - } - .side-nav.fixed.right-aligned { - -webkit-transform: translateX(105%); - transform: translateX(105%); - } - .side-nav a { - padding: 0 16px; - } - .side-nav .userView { - padding: 16px 16px 0; - } -} - -.side-nav .collapsible-body li.active, -.side-nav.fixed .collapsible-body li.active { - background-color: #ee6e73; -} - -.side-nav .collapsible-body li.active a, -.side-nav.fixed .collapsible-body li.active a { - color: #fff; -} - -#sidenav-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - height: 120vh; - background-color: rgba(0, 0, 0, 0.5); - z-index: 997; - will-change: opacity; -} - -/* - @license - Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -/**************************/ -/* STYLES FOR THE SPINNER */ -/**************************/ -/* - * Constants: - * STROKEWIDTH = 3px - * ARCSIZE = 270 degrees (amount of circle the arc takes up) - * ARCTIME = 1333ms (time it takes to expand and contract arc) - * ARCSTARTROT = 216 degrees (how much the start location of the arc - * should rotate each time, 216 gives us a - * 5 pointed star shape (it's 360/5 * 3). - * For a 7 pointed star, we might do - * 360/7 * 3 = 154.286) - * CONTAINERWIDTH = 28px - * SHRINK_TIME = 400ms - */ -.preloader-wrapper { - display: inline-block; - position: relative; - width: 48px; - height: 48px; -} - -.preloader-wrapper.small { - width: 36px; - height: 36px; -} - -.preloader-wrapper.big { - width: 64px; - height: 64px; -} - -.preloader-wrapper.active { - /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */ - -webkit-animation: container-rotate 1568ms linear infinite; - animation: container-rotate 1568ms linear infinite; -} - -@-webkit-keyframes container-rotate { - to { - -webkit-transform: rotate(360deg); - } -} - -@keyframes container-rotate { - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -.spinner-layer { - position: absolute; - width: 100%; - height: 100%; - opacity: 0; - border-color: #26a69a; -} - -.spinner-blue, -.spinner-blue-only { - border-color: #4285f4; -} - -.spinner-red, -.spinner-red-only { - border-color: #db4437; -} - -.spinner-yellow, -.spinner-yellow-only { - border-color: #f4b400; -} - -.spinner-green, -.spinner-green-only { - border-color: #0f9d58; -} - -/** - * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee): - * - * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't - * guarantee that the animation will start _exactly_ after that value. So we avoid using - * animation-delay and instead set custom keyframes for each color (as redundant as it - * seems). - * - * We write out each animation in full (instead of separating animation-name, - * animation-duration, etc.) because under the polyfill, Safari does not recognize those - * specific properties properly, treats them as -webkit-animation, and overrides the - * other animation rules. See https://github.com/Polymer/platform/issues/53. - */ -.active .spinner-layer.spinner-blue { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-red { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-yellow { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-green { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer, -.active .spinner-layer.spinner-blue-only, -.active .spinner-layer.spinner-red-only, -.active .spinner-layer.spinner-yellow-only, -.active .spinner-layer.spinner-green-only { - /* durations: 4 * ARCTIME */ - opacity: 1; - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -@-webkit-keyframes fill-unfill-rotate { - 12.5% { - -webkit-transform: rotate(135deg); - } - /* 0.5 * ARCSIZE */ - 25% { - -webkit-transform: rotate(270deg); - } - /* 1 * ARCSIZE */ - 37.5% { - -webkit-transform: rotate(405deg); - } - /* 1.5 * ARCSIZE */ - 50% { - -webkit-transform: rotate(540deg); - } - /* 2 * ARCSIZE */ - 62.5% { - -webkit-transform: rotate(675deg); - } - /* 2.5 * ARCSIZE */ - 75% { - -webkit-transform: rotate(810deg); - } - /* 3 * ARCSIZE */ - 87.5% { - -webkit-transform: rotate(945deg); - } - /* 3.5 * ARCSIZE */ - to { - -webkit-transform: rotate(1080deg); - } - /* 4 * ARCSIZE */ -} - -@keyframes fill-unfill-rotate { - 12.5% { - -webkit-transform: rotate(135deg); - transform: rotate(135deg); - } - /* 0.5 * ARCSIZE */ - 25% { - -webkit-transform: rotate(270deg); - transform: rotate(270deg); - } - /* 1 * ARCSIZE */ - 37.5% { - -webkit-transform: rotate(405deg); - transform: rotate(405deg); - } - /* 1.5 * ARCSIZE */ - 50% { - -webkit-transform: rotate(540deg); - transform: rotate(540deg); - } - /* 2 * ARCSIZE */ - 62.5% { - -webkit-transform: rotate(675deg); - transform: rotate(675deg); - } - /* 2.5 * ARCSIZE */ - 75% { - -webkit-transform: rotate(810deg); - transform: rotate(810deg); - } - /* 3 * ARCSIZE */ - 87.5% { - -webkit-transform: rotate(945deg); - transform: rotate(945deg); - } - /* 3.5 * ARCSIZE */ - to { - -webkit-transform: rotate(1080deg); - transform: rotate(1080deg); - } - /* 4 * ARCSIZE */ -} - -@-webkit-keyframes blue-fade-in-out { - from { - opacity: 1; - } - 25% { - opacity: 1; - } - 26% { - opacity: 0; - } - 89% { - opacity: 0; - } - 90% { - opacity: 1; - } - 100% { - opacity: 1; - } -} - -@keyframes blue-fade-in-out { - from { - opacity: 1; - } - 25% { - opacity: 1; - } - 26% { - opacity: 0; - } - 89% { - opacity: 0; - } - 90% { - opacity: 1; - } - 100% { - opacity: 1; - } -} - -@-webkit-keyframes red-fade-in-out { - from { - opacity: 0; - } - 15% { - opacity: 0; - } - 25% { - opacity: 1; - } - 50% { - opacity: 1; - } - 51% { - opacity: 0; - } -} - -@keyframes red-fade-in-out { - from { - opacity: 0; - } - 15% { - opacity: 0; - } - 25% { - opacity: 1; - } - 50% { - opacity: 1; - } - 51% { - opacity: 0; - } -} - -@-webkit-keyframes yellow-fade-in-out { - from { - opacity: 0; - } - 40% { - opacity: 0; - } - 50% { - opacity: 1; - } - 75% { - opacity: 1; - } - 76% { - opacity: 0; - } -} - -@keyframes yellow-fade-in-out { - from { - opacity: 0; - } - 40% { - opacity: 0; - } - 50% { - opacity: 1; - } - 75% { - opacity: 1; - } - 76% { - opacity: 0; - } -} - -@-webkit-keyframes green-fade-in-out { - from { - opacity: 0; - } - 65% { - opacity: 0; - } - 75% { - opacity: 1; - } - 90% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -@keyframes green-fade-in-out { - from { - opacity: 0; - } - 65% { - opacity: 0; - } - 75% { - opacity: 1; - } - 90% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -/** - * Patch the gap that appear between the two adjacent div.circle-clipper while the - * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11). - */ -.gap-patch { - position: absolute; - top: 0; - left: 45%; - width: 10%; - height: 100%; - overflow: hidden; - border-color: inherit; -} - -.gap-patch .circle { - width: 1000%; - left: -450%; -} - -.circle-clipper { - display: inline-block; - position: relative; - width: 50%; - height: 100%; - overflow: hidden; - border-color: inherit; -} - -.circle-clipper .circle { - width: 200%; - height: 100%; - border-width: 3px; - /* STROKEWIDTH */ - border-style: solid; - border-color: inherit; - border-bottom-color: transparent !important; - border-radius: 50%; - -webkit-animation: none; - animation: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; -} - -.circle-clipper.left .circle { - left: 0; - border-right-color: transparent !important; - -webkit-transform: rotate(129deg); - transform: rotate(129deg); -} - -.circle-clipper.right .circle { - left: -100%; - border-left-color: transparent !important; - -webkit-transform: rotate(-129deg); - transform: rotate(-129deg); -} - -.active .circle-clipper.left .circle { - /* duration: ARCTIME */ - -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .circle-clipper.right .circle { - /* duration: ARCTIME */ - -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -@-webkit-keyframes left-spin { - from { - -webkit-transform: rotate(130deg); - } - 50% { - -webkit-transform: rotate(-5deg); - } - to { - -webkit-transform: rotate(130deg); - } -} - -@keyframes left-spin { - from { - -webkit-transform: rotate(130deg); - transform: rotate(130deg); - } - 50% { - -webkit-transform: rotate(-5deg); - transform: rotate(-5deg); - } - to { - -webkit-transform: rotate(130deg); - transform: rotate(130deg); - } -} - -@-webkit-keyframes right-spin { - from { - -webkit-transform: rotate(-130deg); - } - 50% { - -webkit-transform: rotate(5deg); - } - to { - -webkit-transform: rotate(-130deg); - } -} - -@keyframes right-spin { - from { - -webkit-transform: rotate(-130deg); - transform: rotate(-130deg); - } - 50% { - -webkit-transform: rotate(5deg); - transform: rotate(5deg); - } - to { - -webkit-transform: rotate(-130deg); - transform: rotate(-130deg); - } -} - -#spinnerContainer.cooldown { - /* duration: SHRINK_TIME */ - -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); - animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); -} - -@-webkit-keyframes fade-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -@keyframes fade-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -.slider { - position: relative; - height: 400px; - width: 100%; -} - -.slider.fullscreen { - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.slider.fullscreen ul.slides { - height: 100%; -} - -.slider.fullscreen ul.indicators { - z-index: 2; - bottom: 30px; -} - -.slider .slides { - background-color: #9e9e9e; - margin: 0; - height: 400px; -} - -.slider .slides li { - opacity: 0; - position: absolute; - top: 0; - left: 0; - z-index: 1; - width: 100%; - height: inherit; - overflow: hidden; -} - -.slider .slides li img { - height: 100%; - width: 100%; - background-size: cover; - background-position: center; -} - -.slider .slides li .caption { - color: #fff; - position: absolute; - top: 15%; - left: 15%; - width: 70%; - opacity: 0; -} - -.slider .slides li .caption p { - color: #e0e0e0; -} - -.slider .slides li.active { - z-index: 2; -} - -.slider .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; -} - -.slider .indicators .indicator-item { - display: inline-block; - position: relative; - cursor: pointer; - height: 16px; - width: 16px; - margin: 0 12px; - background-color: #e0e0e0; - transition: background-color .3s; - border-radius: 50%; -} - -.slider .indicators .indicator-item.active { - background-color: #4CAF50; -} - -.carousel { - overflow: hidden; - position: relative; - width: 100%; - height: 400px; - -webkit-perspective: 500px; - perspective: 500px; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; - -webkit-transform-origin: 0% 50%; - transform-origin: 0% 50%; -} - -.carousel.carousel-slider { - top: 0; - left: 0; - height: 0; -} - -.carousel.carousel-slider .carousel-fixed-item { - position: absolute; - left: 0; - right: 0; - bottom: 20px; - z-index: 1; -} - -.carousel.carousel-slider .carousel-fixed-item.with-indicators { - bottom: 68px; -} - -.carousel.carousel-slider .carousel-item { - width: 100%; - height: 100%; - min-height: 400px; - position: absolute; - top: 0; - left: 0; -} - -.carousel.carousel-slider .carousel-item h2 { - font-size: 24px; - font-weight: 500; - line-height: 32px; -} - -.carousel.carousel-slider .carousel-item p { - font-size: 15px; -} - -.carousel .carousel-item { - display: none; - width: 200px; - height: 400px; - position: absolute; - top: 0; - left: 0; -} - -.carousel .carousel-item img { - width: 100%; -} - -.carousel .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; -} - -.carousel .indicators .indicator-item { - display: inline-block; - position: relative; - cursor: pointer; - height: 8px; - width: 8px; - margin: 24px 4px; - background-color: rgba(255, 255, 255, 0.5); - transition: background-color .3s; - border-radius: 50%; -} - -.carousel .indicators .indicator-item.active { - background-color: #fff; -} - -/* ========================================================================== - $BASE-PICKER - ========================================================================== */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -.picker { - font-size: 16px; - text-align: left; - line-height: 1.2; - color: #000000; - position: absolute; - z-index: 10000; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -/** - * The picker input element. - */ -.picker__input { - cursor: default; -} - -/** - * When the picker is opened, the input element is "activated". - */ -.picker__input.picker__input--active { - border-color: #0089ec; -} - -/** - * The holder is the only "scrollable" top-level container element. - */ -.picker__holder { - width: 100%; - overflow-y: auto; - -webkit-overflow-scrolling: touch; -} - -/*! - * Default mobile-first, responsive styling for pickadate.js - * Demo: http://amsul.github.io/pickadate.js - */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -/** - * Make the holder and frame fullscreen. - */ -.picker__holder, -.picker__frame { - bottom: 0; - left: 0; - right: 0; - top: 100%; -} - -/** - * The holder should overlay the entire screen. - */ -.picker__holder { - position: fixed; - transition: background 0.15s ease-out, top 0s 0.15s; - -webkit-backface-visibility: hidden; -} - -/** - * The frame that bounds the box contents of the picker. - */ -.picker__frame { - position: absolute; - margin: 0 auto; - min-width: 256px; - width: 300px; - max-height: 350px; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -moz-opacity: 0; - opacity: 0; - transition: all 0.15s ease-out; -} - -@media (min-height: 28.875em) { - .picker__frame { - overflow: visible; - top: auto; - bottom: -100%; - max-height: 80%; - } -} - -@media (min-height: 40.125em) { - .picker__frame { - margin-bottom: 7.5%; - } -} - -/** - * The wrapper sets the stage to vertically align the box contents. - */ -.picker__wrap { - display: table; - width: 100%; - height: 100%; -} - -@media (min-height: 28.875em) { - .picker__wrap { - display: block; - } -} - -/** - * The box contains all the picker contents. - */ -.picker__box { - background: #ffffff; - display: table-cell; - vertical-align: middle; -} - -@media (min-height: 28.875em) { - .picker__box { - display: block; - border: 1px solid #777777; - border-top-color: #898989; - border-bottom-width: 0; - border-radius: 5px 5px 0 0; - box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - } -} - -/** - * When the picker opens... - */ -.picker--opened .picker__holder { - top: 0; - background: transparent; - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)"; - zoom: 1; - background: rgba(0, 0, 0, 0.32); - transition: background 0.15s ease-out; -} - -.picker--opened .picker__frame { - top: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; - filter: alpha(opacity=100); - -moz-opacity: 1; - opacity: 1; -} - -@media (min-height: 35.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} - -/** - * For `large` screens, transform into an inline picker. - */ -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__input.picker__input--active { - border-color: #E3F2FD; -} - -.picker__frame { - margin: 0 auto; - max-width: 325px; -} - -@media (min-height: 38.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} - -/* ========================================================================== - $BASE-DATE-PICKER - ========================================================================== */ -/** - * The picker box. - */ -.picker__box { - padding: 0 1em; -} - -/** - * The header containing the month and year stuff. - */ -.picker__header { - text-align: center; - position: relative; - margin-top: .75em; -} - -/** - * The month and year labels. - */ -.picker__month, -.picker__year { - display: inline-block; - margin-left: .25em; - margin-right: .25em; -} - -/** - * The month and year selectors. - */ -.picker__select--month, -.picker__select--year { - height: 2em; - padding: 0; - margin-left: .25em; - margin-right: .25em; -} - -.picker__select--month.browser-default { - display: inline; - background-color: #FFFFFF; - width: 40%; -} - -.picker__select--year.browser-default { - display: inline; - background-color: #FFFFFF; - width: 26%; -} - -.picker__select--month:focus, -.picker__select--year:focus { - border-color: rgba(0, 0, 0, 0.05); -} - -/** - * The month navigation buttons. - */ -.picker__nav--prev, -.picker__nav--next { - position: absolute; - padding: .5em 1.25em; - width: 1em; - height: 1em; - box-sizing: content-box; - top: -0.25em; -} - -.picker__nav--prev { - left: -1em; - padding-right: 1.25em; -} - -.picker__nav--next { - right: -1em; - padding-left: 1.25em; -} - -.picker__nav--disabled, -.picker__nav--disabled:hover, -.picker__nav--disabled:before, -.picker__nav--disabled:before:hover { - cursor: default; - background: none; - border-right-color: #f5f5f5; - border-left-color: #f5f5f5; -} - -/** - * The calendar table of dates - */ -.picker__table { - text-align: center; - border-collapse: collapse; - border-spacing: 0; - table-layout: fixed; - font-size: 1rem; - width: 100%; - margin-top: .75em; - margin-bottom: .5em; -} - -.picker__table th, .picker__table td { - text-align: center; -} - -.picker__table td { - margin: 0; - padding: 0; -} - -/** - * The weekday labels - */ -.picker__weekday { - width: 14.285714286%; - font-size: .75em; - padding-bottom: .25em; - color: #999999; - font-weight: 500; - /* Increase the spacing a tad */ -} - -@media (min-height: 33.875em) { - .picker__weekday { - padding-bottom: .5em; - } -} - -/** - * The days on the calendar - */ -.picker__day--today { - position: relative; - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; -} - -.picker__day--disabled:before { - border-top-color: #aaaaaa; -} - -.picker__day--infocus:hover { - cursor: pointer; - color: #000; - font-weight: 500; -} - -.picker__day--outfocus { - display: none; - padding: .75rem 0; - color: #fff; -} - -.picker__day--outfocus:hover { - cursor: pointer; - color: #dddddd; - font-weight: 500; -} - -.picker__day--highlighted:hover, -.picker--focused .picker__day--highlighted { - cursor: pointer; -} - -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - border-radius: 50%; - -webkit-transform: scale(0.75); - transform: scale(0.75); - background: #0089ec; - color: #ffffff; -} - -.picker__day--disabled, -.picker__day--disabled:hover, -.picker--focused .picker__day--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} - -.picker__day--highlighted.picker__day--disabled, -.picker__day--highlighted.picker__day--disabled:hover { - background: #bbbbbb; -} - -/** - * The footer containing the "today", "clear", and "close" buttons. - */ -.picker__footer { - text-align: center; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.picker__button--today, -.picker__button--clear, -.picker__button--close { - border: 1px solid #ffffff; - background: #ffffff; - font-size: .8em; - padding: .66em 0; - font-weight: bold; - width: 33%; - display: inline-block; - vertical-align: bottom; -} - -.picker__button--today:hover, -.picker__button--clear:hover, -.picker__button--close:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-bottom-color: #b1dcfb; -} - -.picker__button--today:focus, -.picker__button--clear:focus, -.picker__button--close:focus { - background: #b1dcfb; - border-color: rgba(0, 0, 0, 0.05); - outline: none; -} - -.picker__button--today:before, -.picker__button--clear:before, -.picker__button--close:before { - position: relative; - display: inline-block; - height: 0; -} - -.picker__button--today:before, -.picker__button--clear:before { - content: " "; - margin-right: .45em; -} - -.picker__button--today:before { - top: -0.05em; - width: 0; - border-top: 0.66em solid #0059bc; - border-left: .66em solid transparent; -} - -.picker__button--clear:before { - top: -0.25em; - width: .66em; - border-top: 3px solid #ee2200; -} - -.picker__button--close:before { - content: "\D7"; - top: -0.1em; - vertical-align: top; - font-size: 1.1em; - margin-right: .35em; - color: #777777; -} - -.picker__button--today[disabled], -.picker__button--today[disabled]:hover { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} - -.picker__button--today[disabled]:before { - border-top-color: #aaaaaa; -} - -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__box { - border-radius: 2px; - overflow: hidden; -} - -.picker__date-display { - text-align: center; - background-color: #26a69a; - color: #fff; - padding-bottom: 15px; - font-weight: 300; -} - -.picker__nav--prev:hover, -.picker__nav--next:hover { - cursor: pointer; - color: #000000; - background: #a1ded8; -} - -.picker__weekday-display { - background-color: #1f897f; - padding: 10px; - font-weight: 200; - letter-spacing: .5; - font-size: 1rem; - margin-bottom: 15px; -} - -.picker__month-display { - text-transform: uppercase; - font-size: 2rem; -} - -.picker__day-display { - font-size: 4.5rem; - font-weight: 400; -} - -.picker__year-display { - font-size: 1.8rem; - color: rgba(255, 255, 255, 0.4); -} - -.picker__box { - padding: 0; -} - -.picker__calendar-container { - padding: 0 1rem; -} - -.picker__calendar-container thead { - border: none; -} - -.picker__table { - margin-top: 0; - margin-bottom: .5em; -} - -.picker__day--infocus { - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; -} - -.picker__day.picker__day--today { - color: #26a69a; -} - -.picker__day.picker__day--today.picker__day--selected { - color: #fff; -} - -.picker__weekday { - font-size: .9rem; -} - -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - border-radius: 50%; - -webkit-transform: scale(0.9); - transform: scale(0.9); - background-color: #26a69a; - color: #ffffff; -} - -.picker__day--selected.picker__day--outfocus, -.picker__day--selected:hover.picker__day--outfocus, -.picker--focused .picker__day--selected.picker__day--outfocus { - background-color: #a1ded8; -} - -.picker__footer { - text-align: right; - padding: 5px 10px; -} - -.picker__close, .picker__today { - font-size: 1.1rem; - padding: 0 1rem; - color: #26a69a; -} - -.picker__nav--prev:before, -.picker__nav--next:before { - content: " "; - border-top: .5em solid transparent; - border-bottom: .5em solid transparent; - border-right: 0.75em solid #676767; - width: 0; - height: 0; - display: block; - margin: 0 auto; -} - -.picker__nav--next:before { - border-right: 0; - border-left: 0.75em solid #676767; -} - -button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus { - background-color: #a1ded8; -} - -/* ========================================================================== - $BASE-TIME-PICKER - ========================================================================== */ -/** - * The list of times. - */ -.picker__list { - list-style: none; - padding: 0.75em 0 4.2em; - margin: 0; -} - -/** - * The times on the clock. - */ -.picker__list-item { - border-bottom: 1px solid #dddddd; - border-top: 1px solid #dddddd; - margin-bottom: -1px; - position: relative; - background: #ffffff; - padding: .75em 1.25em; -} - -@media (min-height: 46.75em) { - .picker__list-item { - padding: .5em 1em; - } -} - -/* Hovered time */ -.picker__list-item:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-color: #0089ec; - z-index: 10; -} - -/* Highlighted and hovered/focused time */ -.picker__list-item--highlighted { - border-color: #0089ec; - z-index: 10; -} - -.picker__list-item--highlighted:hover, -.picker--focused .picker__list-item--highlighted { - cursor: pointer; - color: #000000; - background: #b1dcfb; -} - -/* Selected and hovered/focused time */ -.picker__list-item--selected, -.picker__list-item--selected:hover, -.picker--focused .picker__list-item--selected { - background: #0089ec; - color: #ffffff; - z-index: 10; -} - -/* Disabled time */ -.picker__list-item--disabled, -.picker__list-item--disabled:hover, -.picker--focused .picker__list-item--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; - border-color: #dddddd; - z-index: auto; -} - -/** - * The clear button - */ -.picker--time .picker__button--clear { - display: block; - width: 80%; - margin: 1em auto 0; - padding: 1em 1.25em; - background: none; - border: 0; - font-weight: 500; - font-size: .67em; - text-align: center; - text-transform: uppercase; - color: #666; -} - -.picker--time .picker__button--clear:hover, -.picker--time .picker__button--clear:focus { - color: #000000; - background: #b1dcfb; - background: #ee2200; - border-color: #ee2200; - cursor: pointer; - color: #ffffff; - outline: none; -} - -.picker--time .picker__button--clear:before { - top: -0.25em; - color: #666; - font-size: 1.25em; - font-weight: bold; -} - -.picker--time .picker__button--clear:hover:before, -.picker--time .picker__button--clear:focus:before { - color: #ffffff; -} - -/* ========================================================================== - $DEFAULT-TIME-PICKER - ========================================================================== */ -/** - * The frame the bounds the time picker. - */ -.picker--time .picker__frame { - min-width: 256px; - max-width: 320px; -} - -/** - * The picker box. - */ -.picker--time .picker__box { - font-size: 1em; - background: #f2f2f2; - padding: 0; -} - -@media (min-height: 40.125em) { - .picker--time .picker__box { - margin-bottom: 5em; - } -} diff --git a/production/bower_components/Materialize/dist/css/materialize.min.css b/production/bower_components/Materialize/dist/css/materialize.min.css deleted file mode 100644 index b98c20e..0000000 --- a/production/bower_components/Materialize/dist/css/materialize.min.css +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * Materialize v0.97.7 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -.materialize-red{background-color:#e51c23 !important}.materialize-red-text{color:#e51c23 !important}.materialize-red.lighten-5{background-color:#fdeaeb !important}.materialize-red-text.text-lighten-5{color:#fdeaeb !important}.materialize-red.lighten-4{background-color:#f8c1c3 !important}.materialize-red-text.text-lighten-4{color:#f8c1c3 !important}.materialize-red.lighten-3{background-color:#f3989b !important}.materialize-red-text.text-lighten-3{color:#f3989b !important}.materialize-red.lighten-2{background-color:#ee6e73 !important}.materialize-red-text.text-lighten-2{color:#ee6e73 !important}.materialize-red.lighten-1{background-color:#ea454b !important}.materialize-red-text.text-lighten-1{color:#ea454b !important}.materialize-red.darken-1{background-color:#d0181e !important}.materialize-red-text.text-darken-1{color:#d0181e !important}.materialize-red.darken-2{background-color:#b9151b !important}.materialize-red-text.text-darken-2{color:#b9151b !important}.materialize-red.darken-3{background-color:#a21318 !important}.materialize-red-text.text-darken-3{color:#a21318 !important}.materialize-red.darken-4{background-color:#8b1014 !important}.materialize-red-text.text-darken-4{color:#8b1014 !important}.red{background-color:#F44336 !important}.red-text{color:#F44336 !important}.red.lighten-5{background-color:#FFEBEE !important}.red-text.text-lighten-5{color:#FFEBEE !important}.red.lighten-4{background-color:#FFCDD2 !important}.red-text.text-lighten-4{color:#FFCDD2 !important}.red.lighten-3{background-color:#EF9A9A !important}.red-text.text-lighten-3{color:#EF9A9A !important}.red.lighten-2{background-color:#E57373 !important}.red-text.text-lighten-2{color:#E57373 !important}.red.lighten-1{background-color:#EF5350 !important}.red-text.text-lighten-1{color:#EF5350 !important}.red.darken-1{background-color:#E53935 !important}.red-text.text-darken-1{color:#E53935 !important}.red.darken-2{background-color:#D32F2F !important}.red-text.text-darken-2{color:#D32F2F !important}.red.darken-3{background-color:#C62828 !important}.red-text.text-darken-3{color:#C62828 !important}.red.darken-4{background-color:#B71C1C !important}.red-text.text-darken-4{color:#B71C1C !important}.red.accent-1{background-color:#FF8A80 !important}.red-text.text-accent-1{color:#FF8A80 !important}.red.accent-2{background-color:#FF5252 !important}.red-text.text-accent-2{color:#FF5252 !important}.red.accent-3{background-color:#FF1744 !important}.red-text.text-accent-3{color:#FF1744 !important}.red.accent-4{background-color:#D50000 !important}.red-text.text-accent-4{color:#D50000 !important}.pink{background-color:#e91e63 !important}.pink-text{color:#e91e63 !important}.pink.lighten-5{background-color:#fce4ec !important}.pink-text.text-lighten-5{color:#fce4ec !important}.pink.lighten-4{background-color:#f8bbd0 !important}.pink-text.text-lighten-4{color:#f8bbd0 !important}.pink.lighten-3{background-color:#f48fb1 !important}.pink-text.text-lighten-3{color:#f48fb1 !important}.pink.lighten-2{background-color:#f06292 !important}.pink-text.text-lighten-2{color:#f06292 !important}.pink.lighten-1{background-color:#ec407a !important}.pink-text.text-lighten-1{color:#ec407a !important}.pink.darken-1{background-color:#d81b60 !important}.pink-text.text-darken-1{color:#d81b60 !important}.pink.darken-2{background-color:#c2185b !important}.pink-text.text-darken-2{color:#c2185b !important}.pink.darken-3{background-color:#ad1457 !important}.pink-text.text-darken-3{color:#ad1457 !important}.pink.darken-4{background-color:#880e4f !important}.pink-text.text-darken-4{color:#880e4f !important}.pink.accent-1{background-color:#ff80ab !important}.pink-text.text-accent-1{color:#ff80ab !important}.pink.accent-2{background-color:#ff4081 !important}.pink-text.text-accent-2{color:#ff4081 !important}.pink.accent-3{background-color:#f50057 !important}.pink-text.text-accent-3{color:#f50057 !important}.pink.accent-4{background-color:#c51162 !important}.pink-text.text-accent-4{color:#c51162 !important}.purple{background-color:#9c27b0 !important}.purple-text{color:#9c27b0 !important}.purple.lighten-5{background-color:#f3e5f5 !important}.purple-text.text-lighten-5{color:#f3e5f5 !important}.purple.lighten-4{background-color:#e1bee7 !important}.purple-text.text-lighten-4{color:#e1bee7 !important}.purple.lighten-3{background-color:#ce93d8 !important}.purple-text.text-lighten-3{color:#ce93d8 !important}.purple.lighten-2{background-color:#ba68c8 !important}.purple-text.text-lighten-2{color:#ba68c8 !important}.purple.lighten-1{background-color:#ab47bc !important}.purple-text.text-lighten-1{color:#ab47bc !important}.purple.darken-1{background-color:#8e24aa !important}.purple-text.text-darken-1{color:#8e24aa !important}.purple.darken-2{background-color:#7b1fa2 !important}.purple-text.text-darken-2{color:#7b1fa2 !important}.purple.darken-3{background-color:#6a1b9a !important}.purple-text.text-darken-3{color:#6a1b9a !important}.purple.darken-4{background-color:#4a148c !important}.purple-text.text-darken-4{color:#4a148c !important}.purple.accent-1{background-color:#ea80fc !important}.purple-text.text-accent-1{color:#ea80fc !important}.purple.accent-2{background-color:#e040fb !important}.purple-text.text-accent-2{color:#e040fb !important}.purple.accent-3{background-color:#d500f9 !important}.purple-text.text-accent-3{color:#d500f9 !important}.purple.accent-4{background-color:#a0f !important}.purple-text.text-accent-4{color:#a0f !important}.deep-purple{background-color:#673ab7 !important}.deep-purple-text{color:#673ab7 !important}.deep-purple.lighten-5{background-color:#ede7f6 !important}.deep-purple-text.text-lighten-5{color:#ede7f6 !important}.deep-purple.lighten-4{background-color:#d1c4e9 !important}.deep-purple-text.text-lighten-4{color:#d1c4e9 !important}.deep-purple.lighten-3{background-color:#b39ddb !important}.deep-purple-text.text-lighten-3{color:#b39ddb !important}.deep-purple.lighten-2{background-color:#9575cd !important}.deep-purple-text.text-lighten-2{color:#9575cd !important}.deep-purple.lighten-1{background-color:#7e57c2 !important}.deep-purple-text.text-lighten-1{color:#7e57c2 !important}.deep-purple.darken-1{background-color:#5e35b1 !important}.deep-purple-text.text-darken-1{color:#5e35b1 !important}.deep-purple.darken-2{background-color:#512da8 !important}.deep-purple-text.text-darken-2{color:#512da8 !important}.deep-purple.darken-3{background-color:#4527a0 !important}.deep-purple-text.text-darken-3{color:#4527a0 !important}.deep-purple.darken-4{background-color:#311b92 !important}.deep-purple-text.text-darken-4{color:#311b92 !important}.deep-purple.accent-1{background-color:#b388ff !important}.deep-purple-text.text-accent-1{color:#b388ff !important}.deep-purple.accent-2{background-color:#7c4dff !important}.deep-purple-text.text-accent-2{color:#7c4dff !important}.deep-purple.accent-3{background-color:#651fff !important}.deep-purple-text.text-accent-3{color:#651fff !important}.deep-purple.accent-4{background-color:#6200ea !important}.deep-purple-text.text-accent-4{color:#6200ea !important}.indigo{background-color:#3f51b5 !important}.indigo-text{color:#3f51b5 !important}.indigo.lighten-5{background-color:#e8eaf6 !important}.indigo-text.text-lighten-5{color:#e8eaf6 !important}.indigo.lighten-4{background-color:#c5cae9 !important}.indigo-text.text-lighten-4{color:#c5cae9 !important}.indigo.lighten-3{background-color:#9fa8da !important}.indigo-text.text-lighten-3{color:#9fa8da !important}.indigo.lighten-2{background-color:#7986cb !important}.indigo-text.text-lighten-2{color:#7986cb !important}.indigo.lighten-1{background-color:#5c6bc0 !important}.indigo-text.text-lighten-1{color:#5c6bc0 !important}.indigo.darken-1{background-color:#3949ab !important}.indigo-text.text-darken-1{color:#3949ab !important}.indigo.darken-2{background-color:#303f9f !important}.indigo-text.text-darken-2{color:#303f9f !important}.indigo.darken-3{background-color:#283593 !important}.indigo-text.text-darken-3{color:#283593 !important}.indigo.darken-4{background-color:#1a237e !important}.indigo-text.text-darken-4{color:#1a237e !important}.indigo.accent-1{background-color:#8c9eff !important}.indigo-text.text-accent-1{color:#8c9eff !important}.indigo.accent-2{background-color:#536dfe !important}.indigo-text.text-accent-2{color:#536dfe !important}.indigo.accent-3{background-color:#3d5afe !important}.indigo-text.text-accent-3{color:#3d5afe !important}.indigo.accent-4{background-color:#304ffe !important}.indigo-text.text-accent-4{color:#304ffe !important}.blue{background-color:#2196F3 !important}.blue-text{color:#2196F3 !important}.blue.lighten-5{background-color:#E3F2FD !important}.blue-text.text-lighten-5{color:#E3F2FD !important}.blue.lighten-4{background-color:#BBDEFB !important}.blue-text.text-lighten-4{color:#BBDEFB !important}.blue.lighten-3{background-color:#90CAF9 !important}.blue-text.text-lighten-3{color:#90CAF9 !important}.blue.lighten-2{background-color:#64B5F6 !important}.blue-text.text-lighten-2{color:#64B5F6 !important}.blue.lighten-1{background-color:#42A5F5 !important}.blue-text.text-lighten-1{color:#42A5F5 !important}.blue.darken-1{background-color:#1E88E5 !important}.blue-text.text-darken-1{color:#1E88E5 !important}.blue.darken-2{background-color:#1976D2 !important}.blue-text.text-darken-2{color:#1976D2 !important}.blue.darken-3{background-color:#1565C0 !important}.blue-text.text-darken-3{color:#1565C0 !important}.blue.darken-4{background-color:#0D47A1 !important}.blue-text.text-darken-4{color:#0D47A1 !important}.blue.accent-1{background-color:#82B1FF !important}.blue-text.text-accent-1{color:#82B1FF !important}.blue.accent-2{background-color:#448AFF !important}.blue-text.text-accent-2{color:#448AFF !important}.blue.accent-3{background-color:#2979FF !important}.blue-text.text-accent-3{color:#2979FF !important}.blue.accent-4{background-color:#2962FF !important}.blue-text.text-accent-4{color:#2962FF !important}.light-blue{background-color:#03a9f4 !important}.light-blue-text{color:#03a9f4 !important}.light-blue.lighten-5{background-color:#e1f5fe !important}.light-blue-text.text-lighten-5{color:#e1f5fe !important}.light-blue.lighten-4{background-color:#b3e5fc !important}.light-blue-text.text-lighten-4{color:#b3e5fc !important}.light-blue.lighten-3{background-color:#81d4fa !important}.light-blue-text.text-lighten-3{color:#81d4fa !important}.light-blue.lighten-2{background-color:#4fc3f7 !important}.light-blue-text.text-lighten-2{color:#4fc3f7 !important}.light-blue.lighten-1{background-color:#29b6f6 !important}.light-blue-text.text-lighten-1{color:#29b6f6 !important}.light-blue.darken-1{background-color:#039be5 !important}.light-blue-text.text-darken-1{color:#039be5 !important}.light-blue.darken-2{background-color:#0288d1 !important}.light-blue-text.text-darken-2{color:#0288d1 !important}.light-blue.darken-3{background-color:#0277bd !important}.light-blue-text.text-darken-3{color:#0277bd !important}.light-blue.darken-4{background-color:#01579b !important}.light-blue-text.text-darken-4{color:#01579b !important}.light-blue.accent-1{background-color:#80d8ff !important}.light-blue-text.text-accent-1{color:#80d8ff !important}.light-blue.accent-2{background-color:#40c4ff !important}.light-blue-text.text-accent-2{color:#40c4ff !important}.light-blue.accent-3{background-color:#00b0ff !important}.light-blue-text.text-accent-3{color:#00b0ff !important}.light-blue.accent-4{background-color:#0091ea !important}.light-blue-text.text-accent-4{color:#0091ea !important}.cyan{background-color:#00bcd4 !important}.cyan-text{color:#00bcd4 !important}.cyan.lighten-5{background-color:#e0f7fa !important}.cyan-text.text-lighten-5{color:#e0f7fa !important}.cyan.lighten-4{background-color:#b2ebf2 !important}.cyan-text.text-lighten-4{color:#b2ebf2 !important}.cyan.lighten-3{background-color:#80deea !important}.cyan-text.text-lighten-3{color:#80deea !important}.cyan.lighten-2{background-color:#4dd0e1 !important}.cyan-text.text-lighten-2{color:#4dd0e1 !important}.cyan.lighten-1{background-color:#26c6da !important}.cyan-text.text-lighten-1{color:#26c6da !important}.cyan.darken-1{background-color:#00acc1 !important}.cyan-text.text-darken-1{color:#00acc1 !important}.cyan.darken-2{background-color:#0097a7 !important}.cyan-text.text-darken-2{color:#0097a7 !important}.cyan.darken-3{background-color:#00838f !important}.cyan-text.text-darken-3{color:#00838f !important}.cyan.darken-4{background-color:#006064 !important}.cyan-text.text-darken-4{color:#006064 !important}.cyan.accent-1{background-color:#84ffff !important}.cyan-text.text-accent-1{color:#84ffff !important}.cyan.accent-2{background-color:#18ffff !important}.cyan-text.text-accent-2{color:#18ffff !important}.cyan.accent-3{background-color:#00e5ff !important}.cyan-text.text-accent-3{color:#00e5ff !important}.cyan.accent-4{background-color:#00b8d4 !important}.cyan-text.text-accent-4{color:#00b8d4 !important}.teal{background-color:#009688 !important}.teal-text{color:#009688 !important}.teal.lighten-5{background-color:#e0f2f1 !important}.teal-text.text-lighten-5{color:#e0f2f1 !important}.teal.lighten-4{background-color:#b2dfdb !important}.teal-text.text-lighten-4{color:#b2dfdb !important}.teal.lighten-3{background-color:#80cbc4 !important}.teal-text.text-lighten-3{color:#80cbc4 !important}.teal.lighten-2{background-color:#4db6ac !important}.teal-text.text-lighten-2{color:#4db6ac !important}.teal.lighten-1{background-color:#26a69a !important}.teal-text.text-lighten-1{color:#26a69a !important}.teal.darken-1{background-color:#00897b !important}.teal-text.text-darken-1{color:#00897b !important}.teal.darken-2{background-color:#00796b !important}.teal-text.text-darken-2{color:#00796b !important}.teal.darken-3{background-color:#00695c !important}.teal-text.text-darken-3{color:#00695c !important}.teal.darken-4{background-color:#004d40 !important}.teal-text.text-darken-4{color:#004d40 !important}.teal.accent-1{background-color:#a7ffeb !important}.teal-text.text-accent-1{color:#a7ffeb !important}.teal.accent-2{background-color:#64ffda !important}.teal-text.text-accent-2{color:#64ffda !important}.teal.accent-3{background-color:#1de9b6 !important}.teal-text.text-accent-3{color:#1de9b6 !important}.teal.accent-4{background-color:#00bfa5 !important}.teal-text.text-accent-4{color:#00bfa5 !important}.green{background-color:#4CAF50 !important}.green-text{color:#4CAF50 !important}.green.lighten-5{background-color:#E8F5E9 !important}.green-text.text-lighten-5{color:#E8F5E9 !important}.green.lighten-4{background-color:#C8E6C9 !important}.green-text.text-lighten-4{color:#C8E6C9 !important}.green.lighten-3{background-color:#A5D6A7 !important}.green-text.text-lighten-3{color:#A5D6A7 !important}.green.lighten-2{background-color:#81C784 !important}.green-text.text-lighten-2{color:#81C784 !important}.green.lighten-1{background-color:#66BB6A !important}.green-text.text-lighten-1{color:#66BB6A !important}.green.darken-1{background-color:#43A047 !important}.green-text.text-darken-1{color:#43A047 !important}.green.darken-2{background-color:#388E3C !important}.green-text.text-darken-2{color:#388E3C !important}.green.darken-3{background-color:#2E7D32 !important}.green-text.text-darken-3{color:#2E7D32 !important}.green.darken-4{background-color:#1B5E20 !important}.green-text.text-darken-4{color:#1B5E20 !important}.green.accent-1{background-color:#B9F6CA !important}.green-text.text-accent-1{color:#B9F6CA !important}.green.accent-2{background-color:#69F0AE !important}.green-text.text-accent-2{color:#69F0AE !important}.green.accent-3{background-color:#00E676 !important}.green-text.text-accent-3{color:#00E676 !important}.green.accent-4{background-color:#00C853 !important}.green-text.text-accent-4{color:#00C853 !important}.light-green{background-color:#8bc34a !important}.light-green-text{color:#8bc34a !important}.light-green.lighten-5{background-color:#f1f8e9 !important}.light-green-text.text-lighten-5{color:#f1f8e9 !important}.light-green.lighten-4{background-color:#dcedc8 !important}.light-green-text.text-lighten-4{color:#dcedc8 !important}.light-green.lighten-3{background-color:#c5e1a5 !important}.light-green-text.text-lighten-3{color:#c5e1a5 !important}.light-green.lighten-2{background-color:#aed581 !important}.light-green-text.text-lighten-2{color:#aed581 !important}.light-green.lighten-1{background-color:#9ccc65 !important}.light-green-text.text-lighten-1{color:#9ccc65 !important}.light-green.darken-1{background-color:#7cb342 !important}.light-green-text.text-darken-1{color:#7cb342 !important}.light-green.darken-2{background-color:#689f38 !important}.light-green-text.text-darken-2{color:#689f38 !important}.light-green.darken-3{background-color:#558b2f !important}.light-green-text.text-darken-3{color:#558b2f !important}.light-green.darken-4{background-color:#33691e !important}.light-green-text.text-darken-4{color:#33691e !important}.light-green.accent-1{background-color:#ccff90 !important}.light-green-text.text-accent-1{color:#ccff90 !important}.light-green.accent-2{background-color:#b2ff59 !important}.light-green-text.text-accent-2{color:#b2ff59 !important}.light-green.accent-3{background-color:#76ff03 !important}.light-green-text.text-accent-3{color:#76ff03 !important}.light-green.accent-4{background-color:#64dd17 !important}.light-green-text.text-accent-4{color:#64dd17 !important}.lime{background-color:#cddc39 !important}.lime-text{color:#cddc39 !important}.lime.lighten-5{background-color:#f9fbe7 !important}.lime-text.text-lighten-5{color:#f9fbe7 !important}.lime.lighten-4{background-color:#f0f4c3 !important}.lime-text.text-lighten-4{color:#f0f4c3 !important}.lime.lighten-3{background-color:#e6ee9c !important}.lime-text.text-lighten-3{color:#e6ee9c !important}.lime.lighten-2{background-color:#dce775 !important}.lime-text.text-lighten-2{color:#dce775 !important}.lime.lighten-1{background-color:#d4e157 !important}.lime-text.text-lighten-1{color:#d4e157 !important}.lime.darken-1{background-color:#c0ca33 !important}.lime-text.text-darken-1{color:#c0ca33 !important}.lime.darken-2{background-color:#afb42b !important}.lime-text.text-darken-2{color:#afb42b !important}.lime.darken-3{background-color:#9e9d24 !important}.lime-text.text-darken-3{color:#9e9d24 !important}.lime.darken-4{background-color:#827717 !important}.lime-text.text-darken-4{color:#827717 !important}.lime.accent-1{background-color:#f4ff81 !important}.lime-text.text-accent-1{color:#f4ff81 !important}.lime.accent-2{background-color:#eeff41 !important}.lime-text.text-accent-2{color:#eeff41 !important}.lime.accent-3{background-color:#c6ff00 !important}.lime-text.text-accent-3{color:#c6ff00 !important}.lime.accent-4{background-color:#aeea00 !important}.lime-text.text-accent-4{color:#aeea00 !important}.yellow{background-color:#ffeb3b !important}.yellow-text{color:#ffeb3b !important}.yellow.lighten-5{background-color:#fffde7 !important}.yellow-text.text-lighten-5{color:#fffde7 !important}.yellow.lighten-4{background-color:#fff9c4 !important}.yellow-text.text-lighten-4{color:#fff9c4 !important}.yellow.lighten-3{background-color:#fff59d !important}.yellow-text.text-lighten-3{color:#fff59d !important}.yellow.lighten-2{background-color:#fff176 !important}.yellow-text.text-lighten-2{color:#fff176 !important}.yellow.lighten-1{background-color:#ffee58 !important}.yellow-text.text-lighten-1{color:#ffee58 !important}.yellow.darken-1{background-color:#fdd835 !important}.yellow-text.text-darken-1{color:#fdd835 !important}.yellow.darken-2{background-color:#fbc02d !important}.yellow-text.text-darken-2{color:#fbc02d !important}.yellow.darken-3{background-color:#f9a825 !important}.yellow-text.text-darken-3{color:#f9a825 !important}.yellow.darken-4{background-color:#f57f17 !important}.yellow-text.text-darken-4{color:#f57f17 !important}.yellow.accent-1{background-color:#ffff8d !important}.yellow-text.text-accent-1{color:#ffff8d !important}.yellow.accent-2{background-color:#ff0 !important}.yellow-text.text-accent-2{color:#ff0 !important}.yellow.accent-3{background-color:#ffea00 !important}.yellow-text.text-accent-3{color:#ffea00 !important}.yellow.accent-4{background-color:#ffd600 !important}.yellow-text.text-accent-4{color:#ffd600 !important}.amber{background-color:#ffc107 !important}.amber-text{color:#ffc107 !important}.amber.lighten-5{background-color:#fff8e1 !important}.amber-text.text-lighten-5{color:#fff8e1 !important}.amber.lighten-4{background-color:#ffecb3 !important}.amber-text.text-lighten-4{color:#ffecb3 !important}.amber.lighten-3{background-color:#ffe082 !important}.amber-text.text-lighten-3{color:#ffe082 !important}.amber.lighten-2{background-color:#ffd54f !important}.amber-text.text-lighten-2{color:#ffd54f !important}.amber.lighten-1{background-color:#ffca28 !important}.amber-text.text-lighten-1{color:#ffca28 !important}.amber.darken-1{background-color:#ffb300 !important}.amber-text.text-darken-1{color:#ffb300 !important}.amber.darken-2{background-color:#ffa000 !important}.amber-text.text-darken-2{color:#ffa000 !important}.amber.darken-3{background-color:#ff8f00 !important}.amber-text.text-darken-3{color:#ff8f00 !important}.amber.darken-4{background-color:#ff6f00 !important}.amber-text.text-darken-4{color:#ff6f00 !important}.amber.accent-1{background-color:#ffe57f !important}.amber-text.text-accent-1{color:#ffe57f !important}.amber.accent-2{background-color:#ffd740 !important}.amber-text.text-accent-2{color:#ffd740 !important}.amber.accent-3{background-color:#ffc400 !important}.amber-text.text-accent-3{color:#ffc400 !important}.amber.accent-4{background-color:#ffab00 !important}.amber-text.text-accent-4{color:#ffab00 !important}.orange{background-color:#ff9800 !important}.orange-text{color:#ff9800 !important}.orange.lighten-5{background-color:#fff3e0 !important}.orange-text.text-lighten-5{color:#fff3e0 !important}.orange.lighten-4{background-color:#ffe0b2 !important}.orange-text.text-lighten-4{color:#ffe0b2 !important}.orange.lighten-3{background-color:#ffcc80 !important}.orange-text.text-lighten-3{color:#ffcc80 !important}.orange.lighten-2{background-color:#ffb74d !important}.orange-text.text-lighten-2{color:#ffb74d !important}.orange.lighten-1{background-color:#ffa726 !important}.orange-text.text-lighten-1{color:#ffa726 !important}.orange.darken-1{background-color:#fb8c00 !important}.orange-text.text-darken-1{color:#fb8c00 !important}.orange.darken-2{background-color:#f57c00 !important}.orange-text.text-darken-2{color:#f57c00 !important}.orange.darken-3{background-color:#ef6c00 !important}.orange-text.text-darken-3{color:#ef6c00 !important}.orange.darken-4{background-color:#e65100 !important}.orange-text.text-darken-4{color:#e65100 !important}.orange.accent-1{background-color:#ffd180 !important}.orange-text.text-accent-1{color:#ffd180 !important}.orange.accent-2{background-color:#ffab40 !important}.orange-text.text-accent-2{color:#ffab40 !important}.orange.accent-3{background-color:#ff9100 !important}.orange-text.text-accent-3{color:#ff9100 !important}.orange.accent-4{background-color:#ff6d00 !important}.orange-text.text-accent-4{color:#ff6d00 !important}.deep-orange{background-color:#ff5722 !important}.deep-orange-text{color:#ff5722 !important}.deep-orange.lighten-5{background-color:#fbe9e7 !important}.deep-orange-text.text-lighten-5{color:#fbe9e7 !important}.deep-orange.lighten-4{background-color:#ffccbc !important}.deep-orange-text.text-lighten-4{color:#ffccbc !important}.deep-orange.lighten-3{background-color:#ffab91 !important}.deep-orange-text.text-lighten-3{color:#ffab91 !important}.deep-orange.lighten-2{background-color:#ff8a65 !important}.deep-orange-text.text-lighten-2{color:#ff8a65 !important}.deep-orange.lighten-1{background-color:#ff7043 !important}.deep-orange-text.text-lighten-1{color:#ff7043 !important}.deep-orange.darken-1{background-color:#f4511e !important}.deep-orange-text.text-darken-1{color:#f4511e !important}.deep-orange.darken-2{background-color:#e64a19 !important}.deep-orange-text.text-darken-2{color:#e64a19 !important}.deep-orange.darken-3{background-color:#d84315 !important}.deep-orange-text.text-darken-3{color:#d84315 !important}.deep-orange.darken-4{background-color:#bf360c !important}.deep-orange-text.text-darken-4{color:#bf360c !important}.deep-orange.accent-1{background-color:#ff9e80 !important}.deep-orange-text.text-accent-1{color:#ff9e80 !important}.deep-orange.accent-2{background-color:#ff6e40 !important}.deep-orange-text.text-accent-2{color:#ff6e40 !important}.deep-orange.accent-3{background-color:#ff3d00 !important}.deep-orange-text.text-accent-3{color:#ff3d00 !important}.deep-orange.accent-4{background-color:#dd2c00 !important}.deep-orange-text.text-accent-4{color:#dd2c00 !important}.brown{background-color:#795548 !important}.brown-text{color:#795548 !important}.brown.lighten-5{background-color:#efebe9 !important}.brown-text.text-lighten-5{color:#efebe9 !important}.brown.lighten-4{background-color:#d7ccc8 !important}.brown-text.text-lighten-4{color:#d7ccc8 !important}.brown.lighten-3{background-color:#bcaaa4 !important}.brown-text.text-lighten-3{color:#bcaaa4 !important}.brown.lighten-2{background-color:#a1887f !important}.brown-text.text-lighten-2{color:#a1887f !important}.brown.lighten-1{background-color:#8d6e63 !important}.brown-text.text-lighten-1{color:#8d6e63 !important}.brown.darken-1{background-color:#6d4c41 !important}.brown-text.text-darken-1{color:#6d4c41 !important}.brown.darken-2{background-color:#5d4037 !important}.brown-text.text-darken-2{color:#5d4037 !important}.brown.darken-3{background-color:#4e342e !important}.brown-text.text-darken-3{color:#4e342e !important}.brown.darken-4{background-color:#3e2723 !important}.brown-text.text-darken-4{color:#3e2723 !important}.blue-grey{background-color:#607d8b !important}.blue-grey-text{color:#607d8b !important}.blue-grey.lighten-5{background-color:#eceff1 !important}.blue-grey-text.text-lighten-5{color:#eceff1 !important}.blue-grey.lighten-4{background-color:#cfd8dc !important}.blue-grey-text.text-lighten-4{color:#cfd8dc !important}.blue-grey.lighten-3{background-color:#b0bec5 !important}.blue-grey-text.text-lighten-3{color:#b0bec5 !important}.blue-grey.lighten-2{background-color:#90a4ae !important}.blue-grey-text.text-lighten-2{color:#90a4ae !important}.blue-grey.lighten-1{background-color:#78909c !important}.blue-grey-text.text-lighten-1{color:#78909c !important}.blue-grey.darken-1{background-color:#546e7a !important}.blue-grey-text.text-darken-1{color:#546e7a !important}.blue-grey.darken-2{background-color:#455a64 !important}.blue-grey-text.text-darken-2{color:#455a64 !important}.blue-grey.darken-3{background-color:#37474f !important}.blue-grey-text.text-darken-3{color:#37474f !important}.blue-grey.darken-4{background-color:#263238 !important}.blue-grey-text.text-darken-4{color:#263238 !important}.grey{background-color:#9e9e9e !important}.grey-text{color:#9e9e9e !important}.grey.lighten-5{background-color:#fafafa !important}.grey-text.text-lighten-5{color:#fafafa !important}.grey.lighten-4{background-color:#f5f5f5 !important}.grey-text.text-lighten-4{color:#f5f5f5 !important}.grey.lighten-3{background-color:#eee !important}.grey-text.text-lighten-3{color:#eee !important}.grey.lighten-2{background-color:#e0e0e0 !important}.grey-text.text-lighten-2{color:#e0e0e0 !important}.grey.lighten-1{background-color:#bdbdbd !important}.grey-text.text-lighten-1{color:#bdbdbd !important}.grey.darken-1{background-color:#757575 !important}.grey-text.text-darken-1{color:#757575 !important}.grey.darken-2{background-color:#616161 !important}.grey-text.text-darken-2{color:#616161 !important}.grey.darken-3{background-color:#424242 !important}.grey-text.text-darken-3{color:#424242 !important}.grey.darken-4{background-color:#212121 !important}.grey-text.text-darken-4{color:#212121 !important}.black{background-color:#000 !important}.black-text{color:#000 !important}.white{background-color:#fff !important}.white-text{color:#fff !important}.transparent{background-color:transparent !important}.transparent-text{color:transparent !important}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}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{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}ul{padding:0;list-style-type:none}ul.browser-default,ul.browser-default li{list-style-type:initial}ul li{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.valign-wrapper .valign{display:block}.clearfix{clear:both}.z-depth-0{box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-floating,.dropdown-content,.collapsible,.side-nav{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-floating:hover{box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15)}.z-depth-2{box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.z-depth-3{box-shadow:0 12px 15px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19)}.z-depth-4,.modal{box-shadow:0 16px 28px 0 rgba(0,0,0,0.22),0 25px 55px 0 rgba(0,0,0,0.21)}.z-depth-5{box-shadow:0 27px 24px 0 rgba(0,0,0,0.2),0 40px 77px 0 rgba(0,0,0,0.22)}.hoverable{transition:box-shadow .25s;box-shadow:0}.hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width: 992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax img{display:none;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed !important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%}@media only screen and (max-width: 600px){.hide-on-small-only,.hide-on-small-and-down{display:none !important}}@media only screen and (max-width: 992px){.hide-on-med-and-down{display:none !important}}@media only screen and (min-width: 601px){.hide-on-med-and-up{display:none !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.hide-on-med-only{display:none !important}}@media only screen and (min-width: 993px){.hide-on-large-only{display:none !important}}@media only screen and (min-width: 993px){.show-on-large{display:block !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.show-on-medium{display:block !important}}@media only screen and (max-width: 600px){.show-on-small{display:block !important}}@media only screen and (min-width: 601px){.show-on-medium-and-up{display:block !important}}@media only screen and (max-width: 992px){.show-on-medium-and-down{display:block !important}}@media only screen and (max-width: 600px){.center-on-small-only{text-align:center}}footer.page-footer{margin-top:20px;padding-top:20px;background-color:#ee6e73}footer.page-footer .footer-copyright{overflow:hidden;height:50px;line-height:50px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:none}table{width:100%;display:table}table.bordered>thead>tr,table.bordered>tbody>tr{border-bottom:1px solid #d0d0d0}table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:#f2f2f2}table.centered thead tr th,table.centered tbody tr td{text-align:center}thead{border-bottom:1px solid #d0d0d0}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width: 992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:'\00a0'}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid #d0d0d0}table.responsive-table.bordered th{border-bottom:0;border-left:0}table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}table.responsive-table.bordered tr{border:0}table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.collection{margin:0.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;transition:.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}span.badge{min-width:3rem;padding:0 6px;text-align:center;font-size:1rem;line-height:inherit;color:#757575;position:absolute;right:15px;box-sizing:border-box}span.badge.new{font-weight:300;font-size:0.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}span.badge[data-badge-caption]::after{content:" " attr(data-badge-caption)}nav ul a span.badge{position:static;margin-left:4px;line-height:0}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:0.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#26a69a;transition:width .3s linear}.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.hide{display:none !important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left !important}.right{float:right !important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0 !important}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:'liga';-moz-font-feature-settings:'liga';font-feature-settings:'liga'}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width: 601px){.container{width:85%}}@media only screen and (min-width: 993px){.container{width:70%}}.container .row{margin-left:-0.75rem;margin-right:-0.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;box-sizing:border-box;padding:0 0.75rem;min-height:1px}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width: 601px){.row .col.m1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width: 993px){.row .col.l1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:2rem;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width: 993px){nav a.button-collapse{display:none}}nav .button-collapse{float:left;position:relative;z-index:1;height:56px}nav .button-collapse i{font-size:2.7rem;height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0;white-space:nowrap}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width: 992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;transform:none}nav .brand-logo.left{left:0.5rem}nav .brand-logo.right{right:0.5rem;left:auto}}nav .brand-logo.right{right:0.5rem;padding:0}nav .brand-logo i,nav .brand-logo [class^="mdi-"],nav .brand-logo [class*="mdi-"],nav .brand-logo i.material-icons{float:left;margin-right:15px}nav ul{margin:0}nav ul li{transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav form{height:100%}nav .input-field{margin:0;height:100%}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}nav .input-field input:focus,nav .input-field input[type=text]:valid,nav .input-field input[type=password]:valid,nav .input-field input[type=email]:valid,nav .input-field input[type=url]:valid,nav .input-field input[type=date]:valid{border:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);transition:color .3s}nav .input-field label.active i{color:#fff}nav .input-field label.active{-webkit-transform:translateY(0);transform:translateY(0)}.navbar-fixed{position:relative;height:56px;z-index:998}.navbar-fixed nav{position:fixed}@media only screen and (min-width: 601px){nav,nav .nav-wrapper i,nav a.button-collapse,nav a.button-collapse i{height:64px;line-height:64px}.navbar-fixed{height:64px}}@font-face{font-family:"Roboto";src:local(Roboto Thin),url("../fonts/roboto/Roboto-Thin.eot");src:url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"),url("../fonts/roboto/Roboto-Thin.woff") format("woff"),url("../fonts/roboto/Roboto-Thin.ttf") format("truetype");font-weight:200}@font-face{font-family:"Roboto";src:local(Roboto Light),url("../fonts/roboto/Roboto-Light.eot");src:url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Light.woff2") format("woff2"),url("../fonts/roboto/Roboto-Light.woff") format("woff"),url("../fonts/roboto/Roboto-Light.ttf") format("truetype");font-weight:300}@font-face{font-family:"Roboto";src:local(Roboto Regular),url("../fonts/roboto/Roboto-Regular.eot");src:url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"),url("../fonts/roboto/Roboto-Regular.woff") format("woff"),url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");font-weight:400}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Medium.eot");src:url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"),url("../fonts/roboto/Roboto-Medium.woff") format("woff"),url("../fonts/roboto/Roboto-Medium.ttf") format("truetype");font-weight:500}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Bold.eot");src:url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"),url("../fonts/roboto/Roboto-Bold.woff") format("woff"),url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");font-weight:700}a{text-decoration:none}html{line-height:1.5;font-family:"Roboto", sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width: 0){html{font-size:14px}}@media only screen and (min-width: 992px){html{font-size:14.5px}}@media only screen and (min-width: 1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.1}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.1rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 0.912rem 0}h5{font-size:1.64rem;line-height:110%;margin:0.82rem 0 0.656rem 0}h6{font-size:1rem;line-height:110%;margin:0.5rem 0 0.4rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light,footer.page-footer .footer-copyright{font-weight:300}.thin{font-weight:200}.flow-text{font-weight:300}@media only screen and (min-width: 360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width: 390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width: 420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width: 450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width: 480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width: 510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width: 540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width: 570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width: 600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width: 630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width: 660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width: 690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width: 720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width: 750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width: 780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width: 810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width: 840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width: 870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width: 900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width: 930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width: 960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width: 360px){.flow-text{font-size:1.2rem}}.card-panel{transition:box-shadow .25s;padding:20px;margin:0.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;margin:0.5rem 0 1rem 0;background-color:#fff;transition:box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden}.card.small .card-image+.card-content,.card.medium .card-image+.card-content,.card.large .card-image+.card-content{max-height:40%}.card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:100%;overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card.horizontal{display:-webkit-flex;display:-ms-flexbox;display:flex}.card.horizontal.small .card-image,.card.horizontal.medium .card-image,.card.horizontal.large .card-image{height:100%;max-height:none;overflow:visible}.card.horizontal.small .card-image img,.card.horizontal.medium .card-image img,.card.horizontal.large .card-image img{height:100%}.card.horizontal .card-image{max-width:50%}.card.horizontal .card-image img{max-width:100%;width:auto}.card.horizontal .card-stacked{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}.card.horizontal .card-stacked .card-content{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.card.sticky-action .card-action{z-index:2}.card.sticky-action .card-reveal{z-index:1;padding-bottom:64px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;padding:20px}.card .card-content{padding:20px;border-radius:0 0 2px 2px}.card .card-content p{margin:0;color:inherit}.card .card-content .card-title{line-height:48px}.card .card-action{position:relative;background-color:inherit;border-top:1px solid rgba(160,160,160,0.2);padding:20px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:20px;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:20px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;top:100%;height:100%;z-index:3;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width: 600px){#toast-container{min-width:100%;bottom:0%}}@media only screen and (min-width: 601px) and (max-width: 992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width: 993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:0;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;word-break:break-all;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.toast .btn,.toast .btn-large,.toast .btn-flat{margin:0;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width: 600px){.toast{width:100%;border-radius:0}}@media only screen and (min-width: 601px) and (max-width: 992px){.toast{float:left}}@media only screen and (min-width: 993px){.toast{float:right}}.tabs{display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;overflow-x:auto;overflow-y:hidden;height:48px;background-color:#fff;margin:0 auto;width:100%;white-space:nowrap}.tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;display:block;float:left;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;letter-spacing:.8px;width:15%;min-width:80px}.tabs .tab a{color:#ee6e73;display:block;width:100%;height:100%;text-overflow:ellipsis;overflow:hidden;transition:color .28s ease}.tabs .tab a:hover{color:#f9c9cb}.tabs .tab.disabled a{color:#f9c9cb;cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left, right}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;display:none;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none}.backdrop{position:absolute;opacity:0;display:none;height:7px;width:14px;border-radius:0 0 50% 50%;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 0%;transform-origin:50% 0%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.btn,.btn-large,.btn-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;outline:0;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.btn-floating.disabled,.btn-large.disabled,.btn:disabled,.btn-large:disabled,.btn-large:disabled,.btn-floating:disabled,.btn[disabled],[disabled].btn-large,.btn-large[disabled],.btn-floating[disabled]{background-color:#DFDFDF !important;box-shadow:none;color:#9F9F9F !important;cursor:default}.btn.disabled *,.disabled.btn-large *,.btn-floating.disabled *,.btn-large.disabled *,.btn:disabled *,.btn-large:disabled *,.btn-large:disabled *,.btn-floating:disabled *,.btn[disabled] *,[disabled].btn-large *,.btn-large[disabled] *,.btn-floating[disabled] *{pointer-events:none}.btn.disabled:hover,.disabled.btn-large:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-large:disabled:hover,.btn-floating:disabled:hover,.btn[disabled]:hover,[disabled].btn-large:hover,.btn-large[disabled]:hover,.btn-floating[disabled]:hover{background-color:#DFDFDF !important;color:#9F9F9F !important}.btn i,.btn-large i,.btn-floating i,.btn-large i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn,.btn-large{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;transition:.2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover{background-color:#2bbbad}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:37px;height:37px;line-height:37px;padding:0;background-color:#26a69a;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:37px}.btn-floating:hover{background-color:#26a69a}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:55.5px;height:55.5px}.btn-floating.btn-large i{line-height:55.5px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.horizontal{padding:0 0 0 15px}.fixed-action-btn.horizontal ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px}.fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 0 0}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.btn-flat{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer;transition:background-color .2s}.btn-flat:focus,.btn-flat:active{background-color:transparent}.btn-flat:hover{background-color:rgba(0,0,0,0.1);box-shadow:none}.btn-flat.disabled{color:#b3b3b3;cursor:default}.btn-large{height:54px;line-height:54px}.btn-large i{font-size:1.6rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width, height}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left;text-transform:none}.dropdown-content li:hover,.dropdown-content li.active,.dropdown-content li.selected{background-color:#eee}.dropdown-content li.active.selected{background-color:#e1e1e1}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#26a69a;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:3px;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit}/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;will-change:opacity, transform;transition:all .3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);transition:all 0.7s ease-out;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-effect input[type="button"],.waves-effect input[type="reset"],.waves-effect input[type="submit"]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{transition:none !important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, #fff 100%, #000 100%)}.waves-input-wrapper{border-radius:0.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top, opacity}@media only screen and (max-width: 992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-flat{float:right;margin:6px 0}.lean-overlay{position:fixed;z-index:999;top:-100px;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom, opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:0.5rem 0 1rem 0}.collapsible-header{display:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.collapsible-body{display:none;border-bottom:1px solid #ddd;box-sizing:border-box}.collapsible-body p{margin:0;padding:2rem}.side-nav .collapsible,.side-nav.fixed .collapsible{border:none;box-shadow:none}.side-nav .collapsible li,.side-nav.fixed .collapsible li{padding:0}.side-nav .collapsible-header,.side-nav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.side-nav .collapsible-header:hover,.side-nav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,0.05)}.side-nav .collapsible-header i,.side-nav.fixed .collapsible-header i{line-height:inherit}.side-nav .collapsible-body,.side-nav.fixed .collapsible-body{border:0;background-color:#fff}.side-nav .collapsible-body li a,.side-nav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;box-shadow:none}.collapsible.popout>li{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);margin:0 24px;transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,0.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#e4e4e4;margin-bottom:5px;margin-right:5px}.chip img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip .close{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chips{border:none;border-bottom:1px solid #9e9e9e;box-shadow:none;margin-bottom:30px;min-height:45px;outline:none;padding-bottom:5px;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .chip.selected{background-color:#26a69a;color:#fff}.chips .input{background:none;border:0;color:rgba(0,0,0,0.6);display:inline-block;font-size:13px;font-weight:500;height:32px;margin-right:20px;line-height:32px;outline:0;padding:0 !important;width:120px !important}.chips .input:focus{border:0 !important;box-shadow:none !important}.materialboxed{display:block;cursor:-webkit-zoom-in;cursor:zoom-in;position:relative;transition:opacity .4s}.materialboxed:hover{will-change:left, top, width, height}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:-webkit-zoom-out;cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#292929;z-index:1000;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;width:100%;text-align:center;padding:0% 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:0.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}:-moz-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=url],input[type=time],input[type=date],input[type=datetime],input[type=datetime-local],input[type=tel],input[type=number],input[type=search],textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:1rem;margin:0 0 20px 0;padding:0;box-shadow:none;box-sizing:content-box;transition:all 0.3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:disabled,input[type=text][readonly="readonly"],input[type=password]:disabled,input[type=password][readonly="readonly"],input[type=email]:disabled,input[type=email][readonly="readonly"],input[type=url]:disabled,input[type=url][readonly="readonly"],input[type=time]:disabled,input[type=time][readonly="readonly"],input[type=date]:disabled,input[type=date][readonly="readonly"],input[type=datetime]:disabled,input[type=datetime][readonly="readonly"],input[type=datetime-local]:disabled,input[type=datetime-local][readonly="readonly"],input[type=tel]:disabled,input[type=tel][readonly="readonly"],input[type=number]:disabled,input[type=number][readonly="readonly"],input[type=search]:disabled,input[type=search][readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.26);border-bottom:1px dotted rgba(0,0,0,0.26)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:disabled+label,input[type=text][readonly="readonly"]+label,input[type=password]:disabled+label,input[type=password][readonly="readonly"]+label,input[type=email]:disabled+label,input[type=email][readonly="readonly"]+label,input[type=url]:disabled+label,input[type=url][readonly="readonly"]+label,input[type=time]:disabled+label,input[type=time][readonly="readonly"]+label,input[type=date]:disabled+label,input[type=date][readonly="readonly"]+label,input[type=datetime]:disabled+label,input[type=datetime][readonly="readonly"]+label,input[type=datetime-local]:disabled+label,input[type=datetime-local][readonly="readonly"]+label,input[type=tel]:disabled+label,input[type=tel][readonly="readonly"]+label,input[type=number]:disabled+label,input[type=number][readonly="readonly"]+label,input[type=search]:disabled+label,input[type=search][readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.26)}input:not([type]):focus:not([readonly]),input[type=text]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=url]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=search]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=text]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]).valid,input:not([type]):focus.valid,input[type=text].valid,input[type=text]:focus.valid,input[type=password].valid,input[type=password]:focus.valid,input[type=email].valid,input[type=email]:focus.valid,input[type=url].valid,input[type=url]:focus.valid,input[type=time].valid,input[type=time]:focus.valid,input[type=date].valid,input[type=date]:focus.valid,input[type=datetime].valid,input[type=datetime]:focus.valid,input[type=datetime-local].valid,input[type=datetime-local]:focus.valid,input[type=tel].valid,input[type=tel]:focus.valid,input[type=number].valid,input[type=number]:focus.valid,input[type=search].valid,input[type=search]:focus.valid,textarea.materialize-textarea.valid,textarea.materialize-textarea:focus.valid{border-bottom:1px solid #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input:not([type]).valid+label:after,input:not([type]):focus.valid+label:after,input[type=text].valid+label:after,input[type=text]:focus.valid+label:after,input[type=password].valid+label:after,input[type=password]:focus.valid+label:after,input[type=email].valid+label:after,input[type=email]:focus.valid+label:after,input[type=url].valid+label:after,input[type=url]:focus.valid+label:after,input[type=time].valid+label:after,input[type=time]:focus.valid+label:after,input[type=date].valid+label:after,input[type=date]:focus.valid+label:after,input[type=datetime].valid+label:after,input[type=datetime]:focus.valid+label:after,input[type=datetime-local].valid+label:after,input[type=datetime-local]:focus.valid+label:after,input[type=tel].valid+label:after,input[type=tel]:focus.valid+label:after,input[type=number].valid+label:after,input[type=number]:focus.valid+label:after,input[type=search].valid+label:after,input[type=search]:focus.valid+label:after,textarea.materialize-textarea.valid+label:after,textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4CAF50;opacity:1}input:not([type]).invalid,input:not([type]):focus.invalid,input[type=text].invalid,input[type=text]:focus.invalid,input[type=password].invalid,input[type=password]:focus.invalid,input[type=email].invalid,input[type=email]:focus.invalid,input[type=url].invalid,input[type=url]:focus.invalid,input[type=time].invalid,input[type=time]:focus.invalid,input[type=date].invalid,input[type=date]:focus.invalid,input[type=datetime].invalid,input[type=datetime]:focus.invalid,input[type=datetime-local].invalid,input[type=datetime-local]:focus.invalid,input[type=tel].invalid,input[type=tel]:focus.invalid,input[type=number].invalid,input[type=number]:focus.invalid,input[type=search].invalid,input[type=search]:focus.invalid,textarea.materialize-textarea.invalid,textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #F44336;box-shadow:0 1px 0 0 #F44336}input:not([type]).invalid+label:after,input:not([type]):focus.invalid+label:after,input[type=text].invalid+label:after,input[type=text]:focus.invalid+label:after,input[type=password].invalid+label:after,input[type=password]:focus.invalid+label:after,input[type=email].invalid+label:after,input[type=email]:focus.invalid+label:after,input[type=url].invalid+label:after,input[type=url]:focus.invalid+label:after,input[type=time].invalid+label:after,input[type=time]:focus.invalid+label:after,input[type=date].invalid+label:after,input[type=date]:focus.invalid+label:after,input[type=datetime].invalid+label:after,input[type=datetime]:focus.invalid+label:after,input[type=datetime-local].invalid+label:after,input[type=datetime-local]:focus.invalid+label:after,input[type=tel].invalid+label:after,input[type=tel]:focus.invalid+label:after,input[type=number].invalid+label:after,input[type=number]:focus.invalid+label:after,input[type=search].invalid+label:after,input[type=search]:focus.invalid+label:after,textarea.materialize-textarea.invalid+label:after,textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#F44336;opacity:1}input:not([type]).validate+label,input[type=text].validate+label,input[type=password].validate+label,input[type=email].validate+label,input[type=url].validate+label,input[type=time].validate+label,input[type=date].validate+label,input[type=datetime].validate+label,input[type=datetime-local].validate+label,input[type=tel].validate+label,input[type=number].validate+label,input[type=search].validate+label,textarea.materialize-textarea.validate+label{width:100%;pointer-events:none}input:not([type])+label:after,input[type=text]+label:after,input[type=password]+label:after,input[type=email]+label:after,input[type=url]+label:after,input[type=time]+label:after,input[type=date]+label:after,input[type=datetime]+label:after,input[type=datetime-local]+label:after,input[type=tel]+label:after,input[type=number]+label:after,input[type=search]+label:after,textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:60px;opacity:0;transition:.2s opacity ease-out, .2s color ease-out}.input-field{position:relative;margin-top:1rem}.input-field.col label{left:0.75rem}.input-field.col .prefix ~ label,.input-field.col .prefix ~ .validate ~ label{width:calc(100% - 3rem - 1.5rem)}.input-field label{color:#9e9e9e;position:absolute;top:0.8rem;font-size:1rem;cursor:text;transition:.2s ease-out}.input-field label.active{font-size:0.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;transition:color .2s}.input-field .prefix.active{color:#26a69a}.input-field .prefix ~ input,.input-field .prefix ~ textarea,.input-field .prefix ~ label,.input-field .prefix ~ .validate ~ label,.input-field .prefix ~ .autocomplete-content{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width: 992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width: 600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;padding-left:4rem;width:calc(100% - 4rem)}.input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field input[type=search]:focus+label i,.input-field input[type=search]:focus ~ .mdi-navigation-close,.input-field input[type=search]:focus ~ .material-icons{color:#444}.input-field input[type=search]+label{left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{overflow-y:hidden;padding:.8rem 0 1.6rem 0;resize:none;min-height:3rem}.hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem}.autocomplete-content{margin-top:-15px;display:block;opacity:1;position:static}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;left:-9999px;opacity:0}[type="radio"]:not(:checked)+label,[type="radio"]:checked+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="radio"]+label:before,[type="radio"]+label:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;transition:.28s ease}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after,[type="radio"]:checked+label:before,[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border-radius:50%}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after{border:2px solid #5a5a5a}[type="radio"]:not(:checked)+label:after{z-index:-1;-webkit-transform:scale(0);transform:scale(0)}[type="radio"]:checked+label:before{border:2px solid transparent}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border:2px solid #26a69a}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:after{background-color:#26a69a;z-index:0}[type="radio"]:checked+label:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+label:after{-webkit-transform:scale(0.5);transform:scale(0.5)}[type="radio"].tabbed:focus+label:before{box-shadow:0 0 0 10px rgba(0,0,0,0.1)}[type="radio"].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,0.26)}[type="radio"].with-gap:disabled:checked+label:after{border:none;background-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before,[type="radio"]:disabled:checked+label:before{background-color:transparent;border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled+label{color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:checked+label:after{background-color:rgba(0,0,0,0.26);border-color:#BDBDBD}form p{margin-bottom:10px;text-align:left}form p:last-child{margin-bottom:0}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;left:-9999px;opacity:0}[type="checkbox"]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type="checkbox"]+label:before,[type="checkbox"]:not(.filled-in)+label:after{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;transition:.2s}[type="checkbox"]:not(.filled-in)+label:after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type="checkbox"]:not(:checked):disabled+label:before{border:none;background-color:rgba(0,0,0,0.26)}[type="checkbox"].tabbed:focus+label:after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;box-shadow:0 0 0 10px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}[type="checkbox"]:checked+label:before{top:-4px;left:-5px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);border-bottom:2px solid rgba(0,0,0,0.26)}[type="checkbox"]:indeterminate+label:before{top:-11px;left:-12px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);background-color:transparent}[type="checkbox"].filled-in+label:after{border-radius:2px}[type="checkbox"].filled-in+label:before,[type="checkbox"].filled-in+label:after{content:'';left:0;position:absolute;transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+label:before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+label:after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in.tabbed:focus+label:after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,0.1)}[type="checkbox"].filled-in.tabbed:checked:focus+label:after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type="checkbox"].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#BDBDBD}[type="checkbox"].filled-in:disabled:checked+label:before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+label:after{background-color:#BDBDBD;border-color:#BDBDBD}.switch,.switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a;left:24px}.switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;margin-right:10px;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#F1F1F1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,0.4);left:-5px;top:-3px;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease}input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(38,166,154,0.1)}input[type=checkbox]:not(:disabled) ~ .lever:active:after,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(0,0,0,0.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#BDBDBD}select{display:none}select.browser-default{display:block}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:1rem;margin:0 0 20px 0;padding:0;display:block}.select-wrapper span.caret{color:initial;position:absolute;right:0;top:16px;font-size:10px}.select-wrapper span.caret.disabled{color:rgba(0,0,0,0.26)}.select-wrapper+label{position:absolute;top:-14px;font-size:0.8rem}select:disabled{color:rgba(0,0,0,0.3)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,0.3)}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,0.3);background-color:transparent}.prefix ~ .select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix ~ label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,0.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,0.4)}.select-dropdown li.optgroup ~ li.optgroup-option{padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0;padding:0}input[type=range]:focus{outline:none}input[type=range]+.thumb{position:absolute;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;top:10px;margin-left:-6px;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:14px;width:14px;border-radius:50%;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0 0;transition:.3s}input[type=range]:focus::-webkit-slider-runnable-track{background:#ccc}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#ddd;border:none}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input[type=range]:focus::-moz-range-track{background:#ccc}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a}input[type=range]:focus::-ms-fill-lower{background:#888}input[type=range]:focus::-ms-fill-upper{background:#ccc}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:20px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:19px;border-left:1px solid #ea4a4f}.table-of-contents a.active{font-weight:500;padding-left:18px;border-left:2px solid #ea4a4f}.side-nav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.side-nav .collapsible{margin:0}.side-nav li{float:none;line-height:48px}.side-nav li.active{background-color:rgba(0,0,0,0.05)}.side-nav a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.side-nav a:hover{background-color:rgba(0,0,0,0.05)}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-flat,.side-nav a.btn-floating{margin:10px 15px}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-floating{color:#fff}.side-nav a.btn-flat{color:#343434}.side-nav a.btn:hover,.side-nav a.btn-large:hover,.side-nav a.btn-large:hover{background-color:#2bbbad}.side-nav a.btn-floating:hover{background-color:#26a69a}.side-nav li>a>i,.side-nav li>a>[class^="mdi-"],.side-nav li>a>[class*="mdi-"],.side-nav li>a>i.material-icons{float:left;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,0.54)}.side-nav .divider{margin:8px 0 0 0}.side-nav .subheader{cursor:initial;pointer-events:none;color:rgba(0,0,0,0.54);font-size:14px;font-weight:500;line-height:48px}.side-nav .subheader:hover{background-color:transparent}.side-nav .userView{overflow:hidden;position:relative;padding:32px 32px 0;margin-bottom:8px}.side-nav .userView a{height:auto;padding:0}.side-nav .userView a:hover{background-color:transparent}.side-nav .userView .background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.side-nav .userView .circle,.side-nav .userView .name,.side-nav .userView .email{display:block}.side-nav .userView .circle{height:64px;width:64px}.side-nav .userView .name,.side-nav .userView .email{font-weight:14px;line-height:24px}.side-nav .userView .name{margin-top:16px;font-weight:500}.side-nav .userView .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.side-nav.fixed a{display:block;padding:0 16px;color:rgba(0,0,0,0.87)}.side-nav.fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.side-nav.fixed.right-aligned{right:0;left:auto}@media only screen and (max-width: 992px){.side-nav.fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.side-nav a{padding:0 16px}.side-nav .userView{padding:16px 16px 0}}.side-nav .collapsible-body li.active,.side-nav.fixed .collapsible-body li.active{background-color:#ee6e73}.side-nav .collapsible-body li.active a,.side-nav.fixed .collapsible-body li.active a{color:#fff}#sidenav-overlay{position:fixed;top:0;left:0;right:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;will-change:opacity}.preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4CAF50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;-webkit-perspective:500px;perspective:500px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0% 50%;transform-origin:0% 50%}.carousel.carousel-slider{top:0;left:0;height:0}.carousel.carousel-slider .carousel-fixed-item{position:absolute;left:0;right:0;bottom:20px;z-index:1}.carousel.carousel-slider .carousel-fixed-item.with-indicators{bottom:68px}.carousel.carousel-slider .carousel-item{width:100%;height:100%;min-height:400px;position:absolute;top:0;left:0}.carousel.carousel-slider .carousel-item h2{font-size:24px;font-weight:500;line-height:32px}.carousel.carousel-slider .carousel-item p{font-size:15px}.carousel .carousel-item{display:none;width:200px;height:400px;position:absolute;top:0;left:0}.carousel .carousel-item img{width:100%}.carousel .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.carousel .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:8px;width:8px;margin:24px 4px;background-color:rgba(255,255,255,0.5);transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*! - * Default mobile-first, responsive styling for pickadate.js - * Demo: http://amsul.github.io/pickadate.js - */.picker__holder,.picker__frame{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;transition:background 0.15s ease-out, top 0s 0.15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all 0.15s ease-out}@media (min-height: 28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height: 40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height: 28.875em){.picker__wrap{display:block}}.picker__box{background:#ffffff;display:table-cell;vertical-align:middle}@media (min-height: 28.875em){.picker__box{display:block;border:1px solid #777777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,0.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,0.32);transition:background 0.15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height: 35.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__input.picker__input--active{border-color:#E3F2FD}.picker__frame{margin:0 auto;max-width:325px}@media (min-height: 38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#FFFFFF;width:40%}.picker__select--year.browser-default{display:inline;background-color:#FFFFFF;width:26%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,0.05)}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-0.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table th,.picker__table td{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999999;font-weight:500}@media (min-height: 33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaaaaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#dddddd;font-weight:500}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{cursor:pointer}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.75);transform:scale(0.75);background:#0089ec;color:#ffffff}.picker__day--disabled,.picker__day--disabled:hover,.picker--focused .picker__day--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbbbbb}.picker__footer{text-align:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.picker__button--today,.picker__button--clear,.picker__button--close{border:1px solid #ffffff;background:#ffffff;font-size:.8em;padding:.66em 0;font-weight:bold;width:33%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover,.picker__button--close:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus,.picker__button--close:focus{background:#b1dcfb;border-color:rgba(0,0,0,0.05);outline:none}.picker__button--today:before,.picker__button--clear:before,.picker__button--close:before{position:relative;display:inline-block;height:0}.picker__button--today:before,.picker__button--clear:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-0.05em;width:0;border-top:0.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-0.25em;width:.66em;border-top:3px solid #ee2200}.picker__button--close:before{content:"\D7";top:-0.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaaaaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#26a69a;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000000;background:#a1ded8}.picker__weekday-display{background-color:#1f897f;padding:10px;font-weight:200;letter-spacing:.5;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:2rem}.picker__day-display{font-size:4.5rem;font-weight:400}.picker__year-display{font-size:1.8rem;color:rgba(255,255,255,0.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 1rem}.picker__calendar-container thead{border:none}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#26a69a}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:.9rem}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.9);transform:scale(0.9);background-color:#26a69a;color:#ffffff}.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus,.picker--focused .picker__day--selected.picker__day--outfocus{background-color:#a1ded8}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:1.1rem;padding:0 1rem;color:#26a69a}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:0.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:0.75em solid #676767}button.picker__today:focus,button.picker__clear:focus,button.picker__close:focus{background-color:#a1ded8}.picker__list{list-style:none;padding:0.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;margin-bottom:-1px;position:relative;background:#ffffff;padding:.75em 1.25em}@media (min-height: 46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{cursor:pointer;color:#000000;background:#b1dcfb}.picker__list-item--selected,.picker__list-item--selected:hover,.picker--focused .picker__list-item--selected{background:#0089ec;color:#ffffff;z-index:10}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default;border-color:#dddddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000000;background:#b1dcfb;background:#ee2200;border-color:#ee2200;cursor:pointer;color:#ffffff;outline:none}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#ffffff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height: 40.125em){.picker--time .picker__box{margin-bottom:5em}} diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.eot b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.eot deleted file mode 100644 index b73776e..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.eot and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.ttf b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.ttf deleted file mode 100644 index 68822ca..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.woff b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.woff deleted file mode 100644 index 1f75afd..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.woff and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.woff2 b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.woff2 deleted file mode 100644 index 350d1c3..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Bold.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.eot b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.eot deleted file mode 100644 index 072cdc4..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.eot and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.ttf b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.ttf deleted file mode 100644 index aa45340..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.woff b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.woff deleted file mode 100644 index 3480c6c..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.woff and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.woff2 b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.woff2 deleted file mode 100644 index 9a4d98c..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Light.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.eot b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.eot deleted file mode 100644 index f9ad995..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.eot and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.ttf b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.ttf deleted file mode 100644 index a3c1a1f..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.woff b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.woff deleted file mode 100644 index 1186773..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.woff and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.woff2 b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.woff2 deleted file mode 100644 index d10a592..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Medium.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.eot b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.eot deleted file mode 100644 index 9b5e8e4..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.eot and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.ttf b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.ttf deleted file mode 100644 index 0e58508..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.woff b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.woff deleted file mode 100644 index f823258..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.woff and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.woff2 b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.woff2 deleted file mode 100644 index b7082ef..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Regular.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.eot b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.eot deleted file mode 100644 index 2284a3b..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.eot and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.ttf b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.ttf deleted file mode 100644 index 8779333..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.woff b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.woff deleted file mode 100644 index 2a98c1e..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.woff and /dev/null differ diff --git a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.woff2 b/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.woff2 deleted file mode 100644 index a38025a..0000000 Binary files a/production/bower_components/Materialize/dist/fonts/roboto/Roboto-Thin.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/dist/js/materialize.js b/production/bower_components/Materialize/dist/js/materialize.js deleted file mode 100644 index d7d07da..0000000 --- a/production/bower_components/Materialize/dist/js/materialize.js +++ /dev/null @@ -1,7468 +0,0 @@ -/*! - * Materialize v0.97.7 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -// Check for jQuery. -if (typeof(jQuery) === 'undefined') { - var jQuery; - // Check if require is a defined function. - if (typeof(require) === 'function') { - jQuery = $ = require('jquery'); - // Else use the dollar sign alias. - } else { - jQuery = $; - } -} -;/* - * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ - * - * Uses the built in easing capabilities added In jQuery 1.1 - * to offer multiple easing options - * - * TERMS OF USE - jQuery Easing - * - * Open source under the BSD License. - * - * Copyright © 2008 George McGinley Smith - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * Neither the name of the author nor the names of contributors may be used to endorse - * or promote products derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * -*/ - -// t: current time, b: begInnIng value, c: change In value, d: duration -jQuery.easing['jswing'] = jQuery.easing['swing']; - -jQuery.extend( jQuery.easing, -{ - def: 'easeOutQuad', - swing: function (x, t, b, c, d) { - //alert(jQuery.easing.default); - return jQuery.easing[jQuery.easing.def](x, t, b, c, d); - }, - easeInQuad: function (x, t, b, c, d) { - return c*(t/=d)*t + b; - }, - easeOutQuad: function (x, t, b, c, d) { - return -c *(t/=d)*(t-2) + b; - }, - easeInOutQuad: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return -c/2 * ((--t)*(t-2) - 1) + b; - }, - easeInCubic: function (x, t, b, c, d) { - return c*(t/=d)*t*t + b; - }, - easeOutCubic: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t + 1) + b; - }, - easeInOutCubic: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t + b; - return c/2*((t-=2)*t*t + 2) + b; - }, - easeInQuart: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t + b; - }, - easeOutQuart: function (x, t, b, c, d) { - return -c * ((t=t/d-1)*t*t*t - 1) + b; - }, - easeInOutQuart: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t + b; - return -c/2 * ((t-=2)*t*t*t - 2) + b; - }, - easeInQuint: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t*t + b; - }, - easeOutQuint: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t*t*t + 1) + b; - }, - easeInOutQuint: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; - return c/2*((t-=2)*t*t*t*t + 2) + b; - }, - easeInSine: function (x, t, b, c, d) { - return -c * Math.cos(t/d * (Math.PI/2)) + c + b; - }, - easeOutSine: function (x, t, b, c, d) { - return c * Math.sin(t/d * (Math.PI/2)) + b; - }, - easeInOutSine: function (x, t, b, c, d) { - return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; - }, - easeInExpo: function (x, t, b, c, d) { - return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; - }, - easeOutExpo: function (x, t, b, c, d) { - return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; - }, - easeInOutExpo: function (x, t, b, c, d) { - if (t==0) return b; - if (t==d) return b+c; - if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; - return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; - }, - easeInCirc: function (x, t, b, c, d) { - return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; - }, - easeOutCirc: function (x, t, b, c, d) { - return c * Math.sqrt(1 - (t=t/d-1)*t) + b; - }, - easeInOutCirc: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; - return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; - }, - easeInElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - }, - easeOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; - }, - easeInOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - }, - easeInBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*(t/=d)*t*((s+1)*t - s) + b; - }, - easeOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - }, - easeInOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; - }, - easeInBounce: function (x, t, b, c, d) { - return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; - }, - easeOutBounce: function (x, t, b, c, d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } else { - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - } - }, - easeInOutBounce: function (x, t, b, c, d) { - if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; - return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; - } -}); - -/* - * - * TERMS OF USE - EASING EQUATIONS - * - * Open source under the BSD License. - * - * Copyright © 2001 Robert Penner - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * Neither the name of the author nor the names of contributors may be used to endorse - * or promote products derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - */; // Custom Easing - jQuery.extend( jQuery.easing, - { - easeInOutMaterial: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return c/4*((t-=2)*t*t + 2) + b; - } - }); - -;/*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */ -/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */ -/*! Note that this has been modified by Materialize to confirm that Velocity is not already being imported. */ -jQuery.Velocity?console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity."):(!function(e){function t(e){var t=e.length,a=r.type(e);return"function"===a||r.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===a||0===t||"number"==typeof t&&t>0&&t-1 in e}if(!e.jQuery){var r=function(e,t){return new r.fn.init(e,t)};r.isWindow=function(e){return null!=e&&e==e.window},r.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e},r.isArray=Array.isArray||function(e){return"array"===r.type(e)},r.isPlainObject=function(e){var t;if(!e||"object"!==r.type(e)||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&&!o.call(e,"constructor")&&!o.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}for(t in e);return void 0===t||o.call(e,t)},r.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},r.data=function(e,t,n){if(void 0===n){var o=e[r.expando],i=o&&a[o];if(void 0===t)return i;if(i&&t in i)return i[t]}else if(void 0!==t){var o=e[r.expando]||(e[r.expando]=++r.uuid);return a[o]=a[o]||{},a[o][t]=n,n}},r.removeData=function(e,t){var n=e[r.expando],o=n&&a[n];o&&r.each(t,function(e,t){delete o[t]})},r.extend=function(){var e,t,a,n,o,i,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[l]||{},l++),"object"!=typeof s&&"function"!==r.type(s)&&(s={}),l===u&&(s=this,l--);u>l;l++)if(null!=(o=arguments[l]))for(n in o)e=s[n],a=o[n],s!==a&&(c&&a&&(r.isPlainObject(a)||(t=r.isArray(a)))?(t?(t=!1,i=e&&r.isArray(e)?e:[]):i=e&&r.isPlainObject(e)?e:{},s[n]=r.extend(c,i,a)):void 0!==a&&(s[n]=a));return s},r.queue=function(e,a,n){function o(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){a=(a||"fx")+"queue";var i=r.data(e,a);return n?(!i||r.isArray(n)?i=r.data(e,a,o(n)):i.push(n),i):i||[]}},r.dequeue=function(e,t){r.each(e.nodeType?[e]:e,function(e,a){t=t||"fx";var n=r.queue(a,t),o=n.shift();"inprogress"===o&&(o=n.shift()),o&&("fx"===t&&n.unshift("inprogress"),o.call(a,function(){r.dequeue(a,t)}))})},r.fn=r.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),a=this.offset(),n=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:r(e).offset();return a.top-=parseFloat(t.style.marginTop)||0,a.left-=parseFloat(t.style.marginLeft)||0,e.style&&(n.top+=parseFloat(e.style.borderTopWidth)||0,n.left+=parseFloat(e.style.borderLeftWidth)||0),{top:a.top-n.top,left:a.left-n.left}}};var a={};r.expando="velocity"+(new Date).getTime(),r.uuid=0;for(var n={},o=n.hasOwnProperty,i=n.toString,s="Boolean Number String Function Array Date RegExp Object Error".split(" "),l=0;ln;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return m.isString(e)?b.Easings[e]||(r=!1):r=m.isArray(e)&&1===e.length?s.apply(null,e):m.isArray(e)&&2===e.length?x.apply(null,e.concat([t])):m.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=b.Easings[b.defaults.easing]?b.defaults.easing:v),r}function c(e){if(e){var t=(new Date).getTime(),r=b.State.calls.length;r>1e4&&(b.State.calls=n(b.State.calls));for(var o=0;r>o;o++)if(b.State.calls[o]){var s=b.State.calls[o],l=s[0],u=s[2],d=s[3],g=!!d,y=null;d||(d=b.State.calls[o][3]=t-16);for(var h=Math.min((t-d)/u.duration,1),v=0,x=l.length;x>v;v++){var P=l[v],V=P.element;if(i(V)){var C=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var T=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];f.each(T,function(e,t){S.setPropertyValue(V,"display",t)})}S.setPropertyValue(V,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&S.setPropertyValue(V,"visibility",u.visibility);for(var k in P)if("element"!==k){var A,F=P[k],j=m.isString(F.easing)?b.Easings[F.easing]:F.easing;if(1===h)A=F.endValue;else{var E=F.endValue-F.startValue;if(A=F.startValue+E*j(h,u,E),!g&&A===F.currentValue)continue}if(F.currentValue=A,"tween"===k)y=A;else{if(S.Hooks.registered[k]){var H=S.Hooks.getRoot(k),N=i(V).rootPropertyValueCache[H];N&&(F.rootPropertyValue=N)}var L=S.setPropertyValue(V,k,F.currentValue+(0===parseFloat(A)?"":F.unitType),F.rootPropertyValue,F.scrollData);S.Hooks.registered[k]&&(i(V).rootPropertyValueCache[H]=S.Normalizations.registered[H]?S.Normalizations.registered[H]("extract",null,L[1]):L[1]),"transform"===L[0]&&(C=!0)}}u.mobileHA&&i(V).transformCache.translate3d===a&&(i(V).transformCache.translate3d="(0px, 0px, 0px)",C=!0),C&&S.flushTransformCache(V)}}u.display!==a&&"none"!==u.display&&(b.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(b.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],h,Math.max(0,d+u.duration-t),d,y),1===h&&p(o)}}b.State.isTicking&&w(c)}function p(e,t){if(!b.State.calls[e])return!1;for(var r=b.State.calls[e][0],n=b.State.calls[e][1],o=b.State.calls[e][2],s=b.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&S.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&S.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&(f.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test(f.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var d=!1;f.each(S.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(d=!0,delete i(p).transformCache[t])}),o.mobileHA&&(d=!0,delete i(p).transformCache.translate3d),d&&S.flushTransformCache(p),S.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(g){setTimeout(function(){throw g},1)}s&&o.loop!==!0&&s(n),i(p)&&o.loop===!0&&!t&&(f.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),b(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&f.dequeue(p,o.queue)}b.State.calls[e]=!1;for(var m=0,y=b.State.calls.length;y>m;m++)if(b.State.calls[m]!==!1){l=!0;break}l===!1&&(b.State.isTicking=!1,delete b.State.calls,b.State.calls=[])}var f,d=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),g=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r,a=(new Date).getTime();return r=Math.max(0,16-(a-e)),e=a+r,setTimeout(function(){t(a+r)},r)}}(),m={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},y=!1;if(e.fn&&e.fn.jquery?(f=e,y=!0):f=t.Velocity.Utilities,8>=d&&!y)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=d)return void(jQuery.fn.velocity=jQuery.fn.animate);var h=400,v="swing",b={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:f,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:h,easing:v,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){f.data(e,"velocity",{isSVG:m.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};t.pageYOffset!==a?(b.State.scrollAnchor=t,b.State.scrollPropertyLeft="pageXOffset",b.State.scrollPropertyTop="pageYOffset"):(b.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,b.State.scrollPropertyLeft="scrollLeft",b.State.scrollPropertyTop="scrollTop");var x=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o,i,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,p=1e-4,f=.016;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,l.tension=e,l.friction=t,o=null!==n,o?(c=a(e,t),i=c/n*f):i=f;s=r(s||l,i),u.push(1+s.x),c+=16,Math.abs(s.x)>p&&Math.abs(s.v)>p;);return o?function(e){return u[e*(u.length-1)|0]}:c}}();b.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},f.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){b.Easings[t[0]]=l.apply(null,t[1])});var S=b.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=d)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=d||b.State.isGingerbread||(S.Lists.transformsBase=S.Lists.transformsBase.concat(S.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=d||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=d?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=d?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(d||b.State.isAndroid&&!b.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(b.State.prefixMatches[e])return[b.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),m.isString(b.State.prefixElement.style[n]))return b.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t,r=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return e=e.replace(r,function(e,t,r,a){return t+t+r+r+a+a}),t=a.exec(e),t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&S.setPropertyValue(e,"display","none")}var l=0;if(8>=d)l=f.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===S.getPropertyValue(e,"display")&&(u=!0,S.setPropertyValue(e,"display",S.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(S.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(S.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(S.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(S.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var g;g=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===d&&"filter"===r?g.getPropertyValue(r):g[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var m=s(e,"position");("fixed"===m||"absolute"===m&&/top|left/i.test(r))&&(l=f(e).position()[r]+"px")}return l}var l;if(S.Hooks.registered[r]){var u=r,c=S.Hooks.getRoot(u);n===a&&(n=S.getPropertyValue(e,S.Names.prefixCheck(c)[0])),S.Normalizations.registered[c]&&(n=S.Normalizations.registered[c]("extract",e,n)),l=S.Hooks.extractValue(u,n)}else if(S.Normalizations.registered[r]){var p,g;p=S.Normalizations.registered[r]("name",e),"transform"!==p&&(g=s(e,S.Names.prefixCheck(p)[0]),S.Values.isCSSNullValue(g)&&S.Hooks.templates[r]&&(g=S.Hooks.templates[r][1])),l=S.Normalizations.registered[r]("extract",e,g)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(m){l=0}else l=e.getAttribute(r);else l=s(e,S.Names.prefixCheck(r)[0]);return S.Values.isCSSNullValue(l)&&(l=0),b.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(S.Normalizations.registered[r]&&"transform"===S.Normalizations.registered[r]("name",e))S.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(S.Hooks.registered[r]){var l=r,u=S.Hooks.getRoot(r);n=n||S.getPropertyValue(e,u),a=S.Hooks.injectValue(l,a,n),r=u}if(S.Normalizations.registered[r]&&(a=S.Normalizations.registered[r]("inject",e,a),r=S.Normalizations.registered[r]("name",e)),s=S.Names.prefixCheck(r)[0],8>=d)try{e.style[s]=a}catch(c){b.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;b.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(S.getPropertyValue(e,t))}var r="";if((d||b.State.isAndroid&&!b.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};f.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;f.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===d&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}S.setPropertyValue(e,"transform",r)}};S.Hooks.register(),S.Normalizations.register(),b.hook=function(e,t,r){var n=a;return e=o(e),f.each(e,function(e,o){if(i(o)===a&&b.init(o),r===a)n===a&&(n=b.CSS.getPropertyValue(o,t));else{var s=b.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&b.CSS.flushTransformCache(o),n=s}}),n};var P=function(){function e(){return s?k.promise||null:l}function n(){function e(e){function p(e,t){var r=a,n=a,i=a;return m.isArray(e)?(r=e[0],!m.isArray(e[1])&&/^[\d-]/.test(e[1])||m.isFunction(e[1])||S.RegEx.isHex.test(e[1])?i=e[1]:(m.isString(e[1])&&!S.RegEx.isHex.test(e[1])||m.isArray(e[1]))&&(n=t?e[1]:u(e[1],s.duration),e[2]!==a&&(i=e[2]))):r=e,t||(n=n||s.easing),m.isFunction(r)&&(r=r.call(o,V,w)),m.isFunction(i)&&(i=i.call(o,V,w)),[r||0,n,i]}function d(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=S.Values.getUnitType(e)),[a,r]}function h(){var e={myParent:o.parentNode||r.body,position:S.getPropertyValue(o,"position"),fontSize:S.getPropertyValue(o,"fontSize")},a=e.position===L.lastPosition&&e.myParent===L.lastParent,n=e.fontSize===L.lastFontSize;L.lastParent=e.myParent,L.lastPosition=e.position,L.lastFontSize=e.fontSize;var s=100,l={};if(n&&a)l.emToPx=L.lastEmToPx,l.percentToPxWidth=L.lastPercentToPxWidth,l.percentToPxHeight=L.lastPercentToPxHeight;else{var u=i(o).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");b.init(u),e.myParent.appendChild(u),f.each(["overflow","overflowX","overflowY"],function(e,t){b.CSS.setPropertyValue(u,t,"hidden")}),b.CSS.setPropertyValue(u,"position",e.position),b.CSS.setPropertyValue(u,"fontSize",e.fontSize),b.CSS.setPropertyValue(u,"boxSizing","content-box"),f.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){b.CSS.setPropertyValue(u,t,s+"%")}),b.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=L.lastPercentToPxWidth=(parseFloat(S.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=L.lastPercentToPxHeight=(parseFloat(S.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=L.lastEmToPx=(parseFloat(S.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===L.remToPx&&(L.remToPx=parseFloat(S.getPropertyValue(r.body,"fontSize"))||16),null===L.vwToPx&&(L.vwToPx=parseFloat(t.innerWidth)/100,L.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=L.remToPx,l.vwToPx=L.vwToPx,l.vhToPx=L.vhToPx,b.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),o),l}if(s.begin&&0===V)try{s.begin.call(g,g)}catch(x){setTimeout(function(){throw x},1)}if("scroll"===A){var P,C,T,F=/^x$/i.test(s.axis)?"Left":"Top",j=parseFloat(s.offset)||0;s.container?m.isWrapped(s.container)||m.isNode(s.container)?(s.container=s.container[0]||s.container,P=s.container["scroll"+F],T=P+f(o).position()[F.toLowerCase()]+j):s.container=null:(P=b.State.scrollAnchor[b.State["scrollProperty"+F]],C=b.State.scrollAnchor[b.State["scrollProperty"+("Left"===F?"Top":"Left")]],T=f(o).offset()[F.toLowerCase()]+j),l={scroll:{rootPropertyValue:!1,startValue:P,currentValue:P,endValue:T,unitType:"",easing:s.easing,scrollData:{container:s.container,direction:F,alternateValue:C}},element:o},b.debug&&console.log("tweensContainer (scroll): ",l.scroll,o)}else if("reverse"===A){if(!i(o).tweensContainer)return void f.dequeue(o,s.queue);"none"===i(o).opts.display&&(i(o).opts.display="auto"),"hidden"===i(o).opts.visibility&&(i(o).opts.visibility="visible"),i(o).opts.loop=!1,i(o).opts.begin=null,i(o).opts.complete=null,v.easing||delete s.easing,v.duration||delete s.duration,s=f.extend({},i(o).opts,s);var E=f.extend(!0,{},i(o).tweensContainer);for(var H in E)if("element"!==H){var N=E[H].startValue;E[H].startValue=E[H].currentValue=E[H].endValue,E[H].endValue=N,m.isEmptyObject(v)||(E[H].easing=s.easing),b.debug&&console.log("reverse tweensContainer ("+H+"): "+JSON.stringify(E[H]),o)}l=E}else if("start"===A){var E;i(o).tweensContainer&&i(o).isAnimating===!0&&(E=i(o).tweensContainer),f.each(y,function(e,t){if(RegExp("^"+S.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(S.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=S.Values.hexToRgb(n),u=i?S.Values.hexToRgb(i):a,c=0;cO;O++){var q={delay:j.delay,progress:j.progress};O===z-1&&(q.display=j.display,q.visibility=j.visibility,q.complete=j.complete),P(g,"reverse",q)}return e()}};b=f.extend(P,b),b.animate=P;var w=t.requestAnimationFrame||g;return b.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(w=function(e){return setTimeout(function(){e(!0)},16)},c()):w=t.requestAnimationFrame||g}),e.Velocity=b,e!==t&&(e.fn.velocity=P,e.fn.velocity.defaults=b.defaults),f.each(["Down","Up"],function(e,t){b.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},d={};l.display===a&&(l.display="Down"===t?"inline"===b.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){d[r]=e.style[r];var a=b.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}d.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in d)e.style[t]=d[t];c&&c.call(i,i),s&&s.resolver(i)},b(e,p,l)}}),f.each(["In","Out"],function(e,t){b.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),b(this,u,l)}}),b}(window.jQuery||window.Zepto||window,window,document)})); -;!function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h1&&!c.firstMultiple?c.firstMultiple=gb(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=hb(d);b.timeStamp=j(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=lb(h,i),b.distance=kb(h,i),eb(c,b),b.offsetDirection=jb(b.deltaX,b.deltaY),b.scale=g?nb(g.pointers,d):1,b.rotation=g?mb(g.pointers,d):0,fb(c,b);var k=a.element;v(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===O||f.eventType===Q)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,m=ib(e,k,l);g=m.x,h=m.y,f=i(m.x)>i(m.y)?m.x:m.y,j=jb(k,l),a.lastInterval=b}else f=c.velocity,g=c.velocityX,h=c.velocityY,j=c.direction;b.velocity=f,b.velocityX=g,b.velocityY=h,b.direction=j}function gb(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Q|R)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){var c=Bb.call(this,a,b);b&(Q|R)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,e=c.pointerType==L;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Q|R)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(l(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_b(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(l(a,"requireFailure",this))return this;var b=this.requireFail;return a=_b(a,this),-1===y(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(l(a,"dropRequireFailure",this))return this;a=_b(a,this);var b=y(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;af?T:U,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?S:0>g?V:W,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Q|R)&&!e)this.reset();else if(a.eventType&O)this.reset(),this._timer=k(function(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===Vb&&(a&&a.eventType&Q?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=j(),this.manager.emit(this.options.event,this._input)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,b=this.options.direction;return b&(X|Y)?c=a.velocity:b&X?c=a.velocityX:b&Y&&(c=a.velocityY),this._super.attrTest.call(this,a)&&b&a.direction&&a.distance>this.options.threshold&&i(c)>this.options.velocity&&a.eventType&Q},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance li > .collapsible-header'); - - var collapsible_type = $this.data("collapsible"); - - // Turn off any existing event handlers - $this.off('click.collapse', '> li > .collapsible-header'); - $panel_headers.off('click.collapse'); - - - /**************** - Helper Functions - ****************/ - - // Accordion Open - function accordionOpen(object) { - $panel_headers = $this.find('> li > .collapsible-header'); - if (object.hasClass('active')) { - object.parent().addClass('active'); - } - else { - object.parent().removeClass('active'); - } - if (object.parent().hasClass('active')){ - object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - else{ - object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - - $panel_headers.not(object).removeClass('active').parent().removeClass('active'); - $panel_headers.not(object).parent().children('.collapsible-body').stop(true,false).slideUp( - { - duration: 350, - easing: "easeOutQuart", - queue: false, - complete: - function() { - $(this).css('height', ''); - } - }); - } - - // Expandable Open - function expandableOpen(object) { - if (object.hasClass('active')) { - object.parent().addClass('active'); - } - else { - object.parent().removeClass('active'); - } - if (object.parent().hasClass('active')){ - object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - else{ - object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - } - - /** - * Check if object is children of panel header - * @param {Object} object Jquery object - * @return {Boolean} true if it is children - */ - function isChildrenOfPanelHeader(object) { - - var panelHeader = getPanelHeader(object); - - return panelHeader.length > 0; - } - - /** - * Get panel header from a children element - * @param {Object} object Jquery object - * @return {Object} panel header object - */ - function getPanelHeader(object) { - - return object.closest('li > .collapsible-header'); - } - - /***** End Helper Functions *****/ - - - - // Add click handler to only direct collapsible header children - $this.on('click.collapse', '> li > .collapsible-header', function(e) { - var $header = $(this), - element = $(e.target); - - if (isChildrenOfPanelHeader(element)) { - element = getPanelHeader(element); - } - - element.toggleClass('active'); - - if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion - accordionOpen(element); - } else { // Handle Expandables - expandableOpen(element); - - if ($header.hasClass('active')) { - expandableOpen($header); - } - } - }); - - // Open first active - var $panel_headers = $this.find('> li > .collapsible-header'); - if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion - accordionOpen($panel_headers.filter('.active').first()); - } - else { // Handle Expandables - $panel_headers.filter('.active').each(function() { - expandableOpen($(this)); - }); - } - - }); - }; - - $(document).ready(function(){ - $('.collapsible').collapsible(); - }); -}( jQuery ));;(function ($) { - - // Add posibility to scroll to selected option - // usefull for select for example - $.fn.scrollTo = function(elem) { - $(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top); - return this; - }; - - $.fn.dropdown = function (options) { - var defaults = { - inDuration: 300, - outDuration: 225, - constrain_width: true, // Constrains width of dropdown to the activator - hover: false, - gutter: 0, // Spacing from edge - belowOrigin: false, - alignment: 'left', - stopPropagation: false - }; - - // Open dropdown. - if (options === "open") { - this.each(function() { - $(this).trigger('open'); - }); - return false; - } - - // Close dropdown. - if (options === "close") { - this.each(function() { - $(this).trigger('close'); - }); - return false; - } - - this.each(function(){ - var origin = $(this); - var options = $.extend({}, defaults, options); - var isFocused = false; - - // Dropdown menu - var activates = $("#"+ origin.attr('data-activates')); - - function updateOptions() { - if (origin.data('induration') !== undefined) - options.inDuration = origin.data('induration'); - if (origin.data('outduration') !== undefined) - options.outDuration = origin.data('outduration'); - if (origin.data('constrainwidth') !== undefined) - options.constrain_width = origin.data('constrainwidth'); - if (origin.data('hover') !== undefined) - options.hover = origin.data('hover'); - if (origin.data('gutter') !== undefined) - options.gutter = origin.data('gutter'); - if (origin.data('beloworigin') !== undefined) - options.belowOrigin = origin.data('beloworigin'); - if (origin.data('alignment') !== undefined) - options.alignment = origin.data('alignment'); - if (origin.data('stoppropagation') !== undefined) - options.stopPropagation = origin.data('stoppropagation'); - } - - updateOptions(); - - // Attach dropdown to its activator - origin.after(activates); - - /* - Helper function to position and resize dropdown. - Used in hover and click handler. - */ - function placeDropdown(eventType) { - // Check for simultaneous focus and click events. - if (eventType === 'focus') { - isFocused = true; - } - - // Check html data attributes - updateOptions(); - - // Set Dropdown state - activates.addClass('active'); - origin.addClass('active'); - - // Constrain width - if (options.constrain_width === true) { - activates.css('width', origin.outerWidth()); - - } else { - activates.css('white-space', 'nowrap'); - } - - // Offscreen detection - var windowHeight = window.innerHeight; - var originHeight = origin.innerHeight(); - var offsetLeft = origin.offset().left; - var offsetTop = origin.offset().top - $(window).scrollTop(); - var currAlignment = options.alignment; - var gutterSpacing = 0; - var leftPosition = 0; - - // Below Origin - var verticalOffset = 0; - if (options.belowOrigin === true) { - verticalOffset = originHeight; - } - - // Check for scrolling positioned container. - var scrollYOffset = 0; - var scrollXOffset = 0; - var wrapper = origin.parent(); - if (!wrapper.is('body')) { - if (wrapper[0].scrollHeight > wrapper[0].clientHeight) { - scrollYOffset = wrapper[0].scrollTop; - } - if (wrapper[0].scrollWidth > wrapper[0].clientWidth) { - scrollXOffset = wrapper[0].scrollLeft; - } - } - - - if (offsetLeft + activates.innerWidth() > $(window).width()) { - // Dropdown goes past screen on right, force right alignment - currAlignment = 'right'; - - } else if (offsetLeft - activates.innerWidth() + origin.innerWidth() < 0) { - // Dropdown goes past screen on left, force left alignment - currAlignment = 'left'; - } - // Vertical bottom offscreen detection - if (offsetTop + activates.innerHeight() > windowHeight) { - // If going upwards still goes offscreen, just crop height of dropdown. - if (offsetTop + originHeight - activates.innerHeight() < 0) { - var adjustedHeight = windowHeight - offsetTop - verticalOffset; - activates.css('max-height', adjustedHeight); - } else { - // Flow upwards. - if (!verticalOffset) { - verticalOffset += originHeight; - } - verticalOffset -= activates.innerHeight(); - } - } - - // Handle edge alignment - if (currAlignment === 'left') { - gutterSpacing = options.gutter; - leftPosition = origin.position().left + gutterSpacing; - } - else if (currAlignment === 'right') { - var offsetRight = origin.position().left + origin.outerWidth() - activates.outerWidth(); - gutterSpacing = -options.gutter; - leftPosition = offsetRight + gutterSpacing; - } - - // Position dropdown - activates.css({ - position: 'absolute', - top: origin.position().top + verticalOffset + scrollYOffset, - left: leftPosition + scrollXOffset - }); - - - // Show dropdown - activates.stop(true, true).css('opacity', 0) - .slideDown({ - queue: false, - duration: options.inDuration, - easing: 'easeOutCubic', - complete: function() { - $(this).css('height', ''); - } - }) - .animate( {opacity: 1}, {queue: false, duration: options.inDuration, easing: 'easeOutSine'}); - } - - function hideDropdown() { - // Check for simultaneous focus and click events. - isFocused = false; - activates.fadeOut(options.outDuration); - activates.removeClass('active'); - origin.removeClass('active'); - setTimeout(function() { activates.css('max-height', ''); }, options.outDuration); - } - - // Hover - if (options.hover) { - var open = false; - origin.unbind('click.' + origin.attr('id')); - // Hover handler to show dropdown - origin.on('mouseenter', function(e){ // Mouse over - if (open === false) { - placeDropdown(); - open = true; - } - }); - origin.on('mouseleave', function(e){ - // If hover on origin then to something other than dropdown content, then close - var toEl = e.toElement || e.relatedTarget; // added browser compatibility for target element - if(!$(toEl).closest('.dropdown-content').is(activates)) { - activates.stop(true, true); - hideDropdown(); - open = false; - } - }); - - activates.on('mouseleave', function(e){ // Mouse out - var toEl = e.toElement || e.relatedTarget; - if(!$(toEl).closest('.dropdown-button').is(origin)) { - activates.stop(true, true); - hideDropdown(); - open = false; - } - }); - - // Click - } else { - // Click handler to show dropdown - origin.unbind('click.' + origin.attr('id')); - origin.bind('click.'+origin.attr('id'), function(e){ - if (!isFocused) { - if ( origin[0] == e.currentTarget && - !origin.hasClass('active') && - ($(e.target).closest('.dropdown-content').length === 0)) { - e.preventDefault(); // Prevents button click from moving window - if (options.stopPropagation) { - e.stopPropagation(); - } - placeDropdown('click'); - } - // If origin is clicked and menu is open, close menu - else if (origin.hasClass('active')) { - hideDropdown(); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - } - // If menu open, add click close handler to document - if (activates.hasClass('active')) { - $(document).bind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'), function (e) { - if (!activates.is(e.target) && !origin.is(e.target) && (!origin.find(e.target).length) ) { - hideDropdown(); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - } - }); - } - } - }); - - } // End else - - // Listen to open and close event - useful for select component - origin.on('open', function(e, eventType) { - placeDropdown(eventType); - }); - origin.on('close', hideDropdown); - - - }); - }; // End dropdown plugin - - $(document).ready(function(){ - $('.dropdown-button').dropdown(); - }); -}( jQuery )); -;(function($) { - var _stack = 0, - _lastID = 0, - _generateID = function() { - _lastID++; - return 'materialize-lean-overlay-' + _lastID; - }; - - $.fn.extend({ - openModal: function(options) { - - var $body = $('body'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - var defaults = { - opacity: 0.5, - in_duration: 350, - out_duration: 250, - ready: undefined, - complete: undefined, - dismissible: true, - starting_top: '4%', - ending_top: '10%' - }; - var $modal = $(this); - - if ($modal.hasClass('open')) { - return; - } - - var overlayID = _generateID(); - var $overlay = $('
        '); - lStack = (++_stack); - - // Store a reference of the overlay - $overlay.attr('id', overlayID).css('z-index', 1000 + lStack * 2); - $modal.data('overlay-id', overlayID).css('z-index', 1000 + lStack * 2 + 1); - $modal.addClass('open'); - - $("body").append($overlay); - - // Override defaults - options = $.extend(defaults, options); - - if (options.dismissible) { - $overlay.click(function() { - $modal.closeModal(options); - }); - // Return on ESC - $(document).on('keyup.leanModal' + overlayID, function(e) { - if (e.keyCode === 27) { // ESC key - $modal.closeModal(options); - } - }); - } - - $modal.find(".modal-close").on('click.close', function(e) { - $modal.closeModal(options); - }); - - $overlay.css({ display : "block", opacity : 0 }); - - $modal.css({ - display : "block", - opacity: 0 - }); - - $overlay.velocity({opacity: options.opacity}, {duration: options.in_duration, queue: false, ease: "easeOutCubic"}); - $modal.data('associated-overlay', $overlay[0]); - - // Define Bottom Sheet animation - if ($modal.hasClass('bottom-sheet')) { - $modal.velocity({bottom: "0", opacity: 1}, { - duration: options.in_duration, - queue: false, - ease: "easeOutCubic", - // Handle modal ready callback - complete: function() { - if (typeof(options.ready) === "function") { - options.ready(); - } - } - }); - } - else { - $.Velocity.hook($modal, "scaleX", 0.7); - $modal.css({ top: options.starting_top }); - $modal.velocity({top: options.ending_top, opacity: 1, scaleX: '1'}, { - duration: options.in_duration, - queue: false, - ease: "easeOutCubic", - // Handle modal ready callback - complete: function() { - if (typeof(options.ready) === "function") { - options.ready(); - } - } - }); - } - - - } - }); - - $.fn.extend({ - closeModal: function(options) { - var defaults = { - out_duration: 250, - complete: undefined - }; - var $modal = $(this); - var overlayID = $modal.data('overlay-id'); - var $overlay = $('#' + overlayID); - $modal.removeClass('open'); - - options = $.extend(defaults, options); - - // Enable scrolling - $('body').css({ - overflow: '', - width: '' - }); - - $modal.find('.modal-close').off('click.close'); - $(document).off('keyup.leanModal' + overlayID); - - $overlay.velocity( { opacity: 0}, {duration: options.out_duration, queue: false, ease: "easeOutQuart"}); - - - // Define Bottom Sheet animation - if ($modal.hasClass('bottom-sheet')) { - $modal.velocity({bottom: "-100%", opacity: 0}, { - duration: options.out_duration, - queue: false, - ease: "easeOutCubic", - // Handle modal ready callback - complete: function() { - $overlay.css({display:"none"}); - - // Call complete callback - if (typeof(options.complete) === "function") { - options.complete(); - } - $overlay.remove(); - _stack--; - } - }); - } - else { - $modal.velocity( - { top: options.starting_top, opacity: 0, scaleX: 0.7}, { - duration: options.out_duration, - complete: - function() { - - $(this).css('display', 'none'); - // Call complete callback - if (typeof(options.complete) === "function") { - options.complete(); - } - $overlay.remove(); - _stack--; - } - } - ); - } - } - }); - - $.fn.extend({ - leanModal: function(option) { - return this.each(function() { - - var defaults = { - starting_top: '4%' - }, - // Override defaults - options = $.extend(defaults, option); - - // Close Handlers - $(this).click(function(e) { - options.starting_top = ($(this).offset().top - $(window).scrollTop()) /1.15; - var modal_id = $(this).attr("href") || '#' + $(this).data('target'); - $(modal_id).openModal(options); - e.preventDefault(); - }); // done set on click - }); // done return - } - }); -})(jQuery); -;(function ($) { - - $.fn.materialbox = function () { - - return this.each(function() { - - if ($(this).hasClass('initialized')) { - return; - } - - $(this).addClass('initialized'); - - var overlayActive = false; - var doneAnimating = true; - var inDuration = 275; - var outDuration = 200; - var origin = $(this); - var placeholder = $('
        ').addClass('material-placeholder'); - var originalWidth = 0; - var originalHeight = 0; - var ancestorsChanged; - var ancestor; - origin.wrap(placeholder); - - - origin.on('click', function(){ - var placeholder = origin.parent('.material-placeholder'); - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var originalWidth = origin.width(); - var originalHeight = origin.height(); - - - // If already modal, return to original - if (doneAnimating === false) { - returnToOriginal(); - return false; - } - else if (overlayActive && doneAnimating===true) { - returnToOriginal(); - return false; - } - - - // Set states - doneAnimating = false; - origin.addClass('active'); - overlayActive = true; - - // Set positioning for placeholder - placeholder.css({ - width: placeholder[0].getBoundingClientRect().width, - height: placeholder[0].getBoundingClientRect().height, - position: 'relative', - top: 0, - left: 0 - }); - - // Find ancestor with overflow: hidden; and remove it - ancestorsChanged = undefined; - ancestor = placeholder[0].parentNode; - var count = 0; - while (ancestor !== null && !$(ancestor).is(document)) { - var curr = $(ancestor); - if (curr.css('overflow') !== 'visible') { - curr.css('overflow', 'visible'); - if (ancestorsChanged === undefined) { - ancestorsChanged = curr; - } - else { - ancestorsChanged = ancestorsChanged.add(curr); - } - } - ancestor = ancestor.parentNode; - } - - // Set css on origin - origin.css({position: 'absolute', 'z-index': 1000}) - .data('width', originalWidth) - .data('height', originalHeight); - - // Add overlay - var overlay = $('
        ') - .css({ - opacity: 0 - }) - .click(function(){ - if (doneAnimating === true) - returnToOriginal(); - }); - // Animate Overlay - // Put before in origin image to preserve z-index layering. - origin.before(overlay); - overlay.velocity({opacity: 1}, - {duration: inDuration, queue: false, easing: 'easeOutQuad'} ); - - // Add and animate caption if it exists - if (origin.data('caption') !== "") { - var $photo_caption = $('
        '); - $photo_caption.text(origin.data('caption')); - $('body').append($photo_caption); - $photo_caption.css({ "display": "inline" }); - $photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'}); - } - - // Resize Image - var ratio = 0; - var widthPercent = originalWidth / windowWidth; - var heightPercent = originalHeight / windowHeight; - var newWidth = 0; - var newHeight = 0; - - if (widthPercent > heightPercent) { - ratio = originalHeight / originalWidth; - newWidth = windowWidth * 0.9; - newHeight = windowWidth * 0.9 * ratio; - } - else { - ratio = originalWidth / originalHeight; - newWidth = (windowHeight * 0.9) * ratio; - newHeight = windowHeight * 0.9; - } - - // Animate image + set z-index - if(origin.hasClass('responsive-img')) { - origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false, - complete: function(){ - origin.css({left: 0, top: 0}) - .velocity( - { - height: newHeight, - width: newWidth, - left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, - top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 - }, - { - duration: inDuration, - queue: false, - easing: 'easeOutQuad', - complete: function(){doneAnimating = true;} - } - ); - } // End Complete - }); // End Velocity - } - else { - origin.css('left', 0) - .css('top', 0) - .velocity( - { - height: newHeight, - width: newWidth, - left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, - top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 - }, - { - duration: inDuration, - queue: false, - easing: 'easeOutQuad', - complete: function(){doneAnimating = true;} - } - ); // End Velocity - } - - }); // End origin on click - - - // Return on scroll - $(window).scroll(function() { - if (overlayActive) { - returnToOriginal(); - } - }); - - // Return on ESC - $(document).keyup(function(e) { - - if (e.keyCode === 27 && doneAnimating === true) { // ESC key - if (overlayActive) { - returnToOriginal(); - } - } - }); - - - // This function returns the modaled image to the original spot - function returnToOriginal() { - - doneAnimating = false; - - var placeholder = origin.parent('.material-placeholder'); - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var originalWidth = origin.data('width'); - var originalHeight = origin.data('height'); - - origin.velocity("stop", true); - $('#materialbox-overlay').velocity("stop", true); - $('.materialbox-caption').velocity("stop", true); - - - $('#materialbox-overlay').velocity({opacity: 0}, { - duration: outDuration, // Delay prevents animation overlapping - queue: false, easing: 'easeOutQuad', - complete: function(){ - // Remove Overlay - overlayActive = false; - $(this).remove(); - } - }); - - // Resize Image - origin.velocity( - { - width: originalWidth, - height: originalHeight, - left: 0, - top: 0 - }, - { - duration: outDuration, - queue: false, easing: 'easeOutQuad' - } - ); - - // Remove Caption + reset css settings on image - $('.materialbox-caption').velocity({opacity: 0}, { - duration: outDuration, // Delay prevents animation overlapping - queue: false, easing: 'easeOutQuad', - complete: function(){ - placeholder.css({ - height: '', - width: '', - position: '', - top: '', - left: '' - }); - - origin.css({ - height: '', - top: '', - left: '', - width: '', - 'max-width': '', - position: '', - 'z-index': '' - }); - - // Remove class - origin.removeClass('active'); - doneAnimating = true; - $(this).remove(); - - // Remove overflow overrides on ancestors - if (ancestorsChanged) { - ancestorsChanged.css('overflow', ''); - } - } - }); - - } - }); -}; - -$(document).ready(function(){ - $('.materialboxed').materialbox(); -}); - -}( jQuery )); -;(function ($) { - - $.fn.parallax = function () { - var window_width = $(window).width(); - // Parallax Scripts - return this.each(function(i) { - var $this = $(this); - $this.addClass('parallax'); - - function updateParallax(initial) { - var container_height; - if (window_width < 601) { - container_height = ($this.height() > 0) ? $this.height() : $this.children("img").height(); - } - else { - container_height = ($this.height() > 0) ? $this.height() : 500; - } - var $img = $this.children("img").first(); - var img_height = $img.height(); - var parallax_dist = img_height - container_height; - var bottom = $this.offset().top + container_height; - var top = $this.offset().top; - var scrollTop = $(window).scrollTop(); - var windowHeight = window.innerHeight; - var windowBottom = scrollTop + windowHeight; - var percentScrolled = (windowBottom - top) / (container_height + windowHeight); - var parallax = Math.round((parallax_dist * percentScrolled)); - - if (initial) { - $img.css('display', 'block'); - } - if ((bottom > scrollTop) && (top < (scrollTop + windowHeight))) { - $img.css('transform', "translate3D(-50%," + parallax + "px, 0)"); - } - - } - - // Wait for image load - $this.children("img").one("load", function() { - updateParallax(true); - }).each(function() { - if(this.complete) $(this).load(); - }); - - $(window).scroll(function() { - window_width = $(window).width(); - updateParallax(false); - }); - - $(window).resize(function() { - window_width = $(window).width(); - updateParallax(false); - }); - - }); - - }; -}( jQuery ));;(function ($) { - - var methods = { - init : function(options) { - var defaults = { - onShow: null - }; - options = $.extend(defaults, options); - - return this.each(function() { - - // For each set of tabs, we want to keep track of - // which tab is active and its associated content - var $this = $(this), - window_width = $(window).width(); - - $this.width('100%'); - var $active, $content, $links = $this.find('li.tab a'), - $tabs_width = $this.width(), - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length, - $index = 0; - - // If the location.hash matches one of the links, use that as the active tab. - $active = $($links.filter('[href="'+location.hash+'"]')); - - // If no match is found, use the first link or any with class 'active' as the initial active tab. - if ($active.length === 0) { - $active = $(this).find('li.tab a.active').first(); - } - if ($active.length === 0) { - $active = $(this).find('li.tab a').first(); - } - - $active.addClass('active'); - $index = $links.index($active); - if ($index < 0) { - $index = 0; - } - - if ($active[0] !== undefined) { - $content = $($active[0].hash); - } - - // append indicator then set indicator width to tab width - $this.append('
        '); - var $indicator = $this.find('.indicator'); - if ($this.is(":visible")) { - $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)}); - $indicator.css({"left": $index * $tab_width}); - } - $(window).resize(function () { - $tabs_width = $this.width(); - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length; - if ($index < 0) { - $index = 0; - } - if ($tab_width !== 0 && $tabs_width !== 0) { - $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)}); - $indicator.css({"left": $index * $tab_width}); - } - }); - - // Hide the remaining content - $links.not($active).each(function () { - $(this.hash).hide(); - }); - - - // Bind the click event handler - $this.on('click', 'a', function(e) { - if ($(this).parent().hasClass('disabled')) { - e.preventDefault(); - return; - } - - // Act as regular link if target attribute is specified. - if (!!$(this).attr("target")) { - return; - } - - $tabs_width = $this.width(); - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length; - - // Make the old tab inactive. - $active.removeClass('active'); - if ($content !== undefined) { - $content.hide(); - } - - // Update the variables with the new link and content - $active = $(this); - $content = $(this.hash); - $links = $this.find('li.tab a'); - - // Make the tab active. - $active.addClass('active'); - var $prev_index = $index; - $index = $links.index($(this)); - if ($index < 0) { - $index = 0; - } - // Change url to current tab - // window.location.hash = $active.attr('href'); - - if ($content !== undefined) { - $content.show(); - if (typeof(options.onShow) === "function") { - options.onShow.call(this, $content); - } - } - - // Update indicator - if (($index - $prev_index) >= 0) { - $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, { duration: 300, queue: false, easing: 'easeOutQuad'}); - $indicator.velocity({"left": $index * $tab_width}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90}); - - } - else { - $indicator.velocity({"left": $index * $tab_width}, { duration: 300, queue: false, easing: 'easeOutQuad'}); - $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90}); - } - - // Prevent the anchor's default click action - e.preventDefault(); - }); - }); - - }, - select_tab : function( id ) { - this.find('a[href="#' + id + '"]').trigger('click'); - } - }; - - $.fn.tabs = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' ); - } - }; - - $(document).ready(function(){ - $('ul.tabs').tabs(); - }); -}( jQuery )); -;(function ($) { - $.fn.tooltip = function (options) { - var timeout = null, - margin = 5; - - // Defaults - var defaults = { - delay: 350, - tooltip: '', - position: 'bottom', - html: false - }; - - // Remove tooltip from the activator - if (options === "remove") { - this.each(function() { - $('#' + $(this).attr('data-tooltip-id')).remove(); - $(this).off('mouseenter.tooltip mouseleave.tooltip'); - }); - return false; - } - - options = $.extend(defaults, options); - - return this.each(function() { - var tooltipId = Materialize.guid(); - var origin = $(this); - origin.attr('data-tooltip-id', tooltipId); - - // Get attributes. - var allowHtml, - tooltipDelay, - tooltipPosition, - tooltipText, - tooltipEl, - backdrop; - var setAttributes = function() { - allowHtml = origin.attr('data-html') ? origin.attr('data-html') === 'true' : options.html; - tooltipDelay = origin.attr('data-delay'); - tooltipDelay = (tooltipDelay === undefined || tooltipDelay === '') ? - options.delay : tooltipDelay; - tooltipPosition = origin.attr('data-position'); - tooltipPosition = (tooltipPosition === undefined || tooltipPosition === '') ? - options.position : tooltipPosition; - tooltipText = origin.attr('data-tooltip'); - tooltipText = (tooltipText === undefined || tooltipText === '') ? - options.tooltip : tooltipText; - }; - setAttributes(); - - var renderTooltipEl = function() { - var tooltip = $('
        '); - - // Create Text span - if (allowHtml) { - tooltipText = $('').html(tooltipText); - } else{ - tooltipText = $('').text(tooltipText); - } - - // Create tooltip - tooltip.append(tooltipText) - .appendTo($('body')) - .attr('id', tooltipId); - - // Create backdrop - backdrop = $('
        '); - backdrop.appendTo(tooltip); - return tooltip; - }; - tooltipEl = renderTooltipEl(); - - // Destroy previously binded events - origin.off('mouseenter.tooltip mouseleave.tooltip'); - // Mouse In - var started = false, timeoutRef; - origin.on({'mouseenter.tooltip': function(e) { - var showTooltip = function() { - setAttributes(); - started = true; - tooltipEl.velocity('stop'); - backdrop.velocity('stop'); - tooltipEl.css({ display: 'block', left: '0px', top: '0px' }); - - // Tooltip positioning - var originWidth = origin.outerWidth(); - var originHeight = origin.outerHeight(); - - var tooltipHeight = tooltipEl.outerHeight(); - var tooltipWidth = tooltipEl.outerWidth(); - var tooltipVerticalMovement = '0px'; - var tooltipHorizontalMovement = '0px'; - var scaleXFactor = 8; - var scaleYFactor = 8; - var targetTop, targetLeft, newCoordinates; - - if (tooltipPosition === "top") { - // Top Position - targetTop = origin.offset().top - tooltipHeight - margin; - targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipVerticalMovement = '-10px'; - backdrop.css({ - bottom: 0, - left: 0, - borderRadius: '14px 14px 0 0', - transformOrigin: '50% 100%', - marginTop: tooltipHeight, - marginLeft: (tooltipWidth/2) - (backdrop.width()/2) - }); - } - // Left Position - else if (tooltipPosition === "left") { - targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2; - targetLeft = origin.offset().left - tooltipWidth - margin; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipHorizontalMovement = '-10px'; - backdrop.css({ - top: '-7px', - right: 0, - width: '14px', - height: '14px', - borderRadius: '14px 0 0 14px', - transformOrigin: '95% 50%', - marginTop: tooltipHeight/2, - marginLeft: tooltipWidth - }); - } - // Right Position - else if (tooltipPosition === "right") { - targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2; - targetLeft = origin.offset().left + originWidth + margin; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipHorizontalMovement = '+10px'; - backdrop.css({ - top: '-7px', - left: 0, - width: '14px', - height: '14px', - borderRadius: '0 14px 14px 0', - transformOrigin: '5% 50%', - marginTop: tooltipHeight/2, - marginLeft: '0px' - }); - } - else { - // Bottom Position - targetTop = origin.offset().top + origin.outerHeight() + margin; - targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - tooltipVerticalMovement = '+10px'; - backdrop.css({ - top: 0, - left: 0, - marginLeft: (tooltipWidth/2) - (backdrop.width()/2) - }); - } - - // Set tooptip css placement - tooltipEl.css({ - top: newCoordinates.y, - left: newCoordinates.x - }); - - // Calculate Scale to fill - scaleXFactor = Math.SQRT2 * tooltipWidth / parseInt(backdrop.css('width')); - scaleYFactor = Math.SQRT2 * tooltipHeight / parseInt(backdrop.css('height')); - - tooltipEl.velocity({ marginTop: tooltipVerticalMovement, marginLeft: tooltipHorizontalMovement}, { duration: 350, queue: false }) - .velocity({opacity: 1}, {duration: 300, delay: 50, queue: false}); - backdrop.css({ display: 'block' }) - .velocity({opacity:1},{duration: 55, delay: 0, queue: false}) - .velocity({scaleX: scaleXFactor, scaleY: scaleYFactor}, {duration: 300, delay: 0, queue: false, easing: 'easeInOutQuad'}); - }; - - timeoutRef = setTimeout(showTooltip, tooltipDelay); // End Interval - - // Mouse Out - }, - 'mouseleave.tooltip': function(){ - // Reset State - started = false; - clearTimeout(timeoutRef); - - // Animate back - setTimeout(function() { - if (started !== true) { - tooltipEl.velocity({ - opacity: 0, marginTop: 0, marginLeft: 0}, { duration: 225, queue: false}); - backdrop.velocity({opacity: 0, scaleX: 1, scaleY: 1}, { - duration:225, - queue: false, - complete: function(){ - backdrop.css('display', 'none'); - tooltipEl.css('display', 'none'); - started = false;} - }); - } - },225); - } - }); - }); - }; - - var repositionWithinScreen = function(x, y, width, height) { - var newX = x; - var newY = y; - - if (newX < 0) { - newX = 4; - } else if (newX + width > window.innerWidth) { - newX -= newX + width - window.innerWidth; - } - - if (newY < 0) { - newY = 4; - } else if (newY + height > window.innerHeight + $(window).scrollTop) { - newY -= newY + height - window.innerHeight; - } - - return {x: newX, y: newY}; - }; - - $(document).ready(function(){ - $('.tooltipped').tooltip(); - }); -}( jQuery )); -;/*! - * Waves v0.6.4 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ - -;(function(window) { - 'use strict'; - - var Waves = Waves || {}; - var $$ = document.querySelectorAll.bind(document); - - // Find exact position of element - function isWindow(obj) { - return obj !== null && obj === obj.window; - } - - function getWindow(elem) { - return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView; - } - - function offset(elem) { - var docElem, win, - box = {top: 0, left: 0}, - doc = elem && elem.ownerDocument; - - docElem = doc.documentElement; - - if (typeof elem.getBoundingClientRect !== typeof undefined) { - box = elem.getBoundingClientRect(); - } - win = getWindow(doc); - return { - top: box.top + win.pageYOffset - docElem.clientTop, - left: box.left + win.pageXOffset - docElem.clientLeft - }; - } - - function convertStyle(obj) { - var style = ''; - - for (var a in obj) { - if (obj.hasOwnProperty(a)) { - style += (a + ':' + obj[a] + ';'); - } - } - - return style; - } - - var Effect = { - - // Effect delay - duration: 750, - - show: function(e, element) { - - // Disable right click - if (e.button === 2) { - return false; - } - - var el = element || this; - - // Create ripple - var ripple = document.createElement('div'); - ripple.className = 'waves-ripple'; - el.appendChild(ripple); - - // Get click coordinate and element witdh - var pos = offset(el); - var relativeY = (e.pageY - pos.top); - var relativeX = (e.pageX - pos.left); - var scale = 'scale('+((el.clientWidth / 100) * 10)+')'; - - // Support for touch devices - if ('touches' in e) { - relativeY = (e.touches[0].pageY - pos.top); - relativeX = (e.touches[0].pageX - pos.left); - } - - // Attach data to element - ripple.setAttribute('data-hold', Date.now()); - ripple.setAttribute('data-scale', scale); - ripple.setAttribute('data-x', relativeX); - ripple.setAttribute('data-y', relativeY); - - // Set ripple position - var rippleStyle = { - 'top': relativeY+'px', - 'left': relativeX+'px' - }; - - ripple.className = ripple.className + ' waves-notransition'; - ripple.setAttribute('style', convertStyle(rippleStyle)); - ripple.className = ripple.className.replace('waves-notransition', ''); - - // Scale the ripple - rippleStyle['-webkit-transform'] = scale; - rippleStyle['-moz-transform'] = scale; - rippleStyle['-ms-transform'] = scale; - rippleStyle['-o-transform'] = scale; - rippleStyle.transform = scale; - rippleStyle.opacity = '1'; - - rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['-moz-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['-o-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['transition-duration'] = Effect.duration + 'ms'; - - rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - - ripple.setAttribute('style', convertStyle(rippleStyle)); - }, - - hide: function(e) { - TouchHandler.touchup(e); - - var el = this; - var width = el.clientWidth * 1.4; - - // Get first ripple - var ripple = null; - var ripples = el.getElementsByClassName('waves-ripple'); - if (ripples.length > 0) { - ripple = ripples[ripples.length - 1]; - } else { - return false; - } - - var relativeX = ripple.getAttribute('data-x'); - var relativeY = ripple.getAttribute('data-y'); - var scale = ripple.getAttribute('data-scale'); - - // Get delay beetween mousedown and mouse leave - var diff = Date.now() - Number(ripple.getAttribute('data-hold')); - var delay = 350 - diff; - - if (delay < 0) { - delay = 0; - } - - // Fade out ripple after delay - setTimeout(function() { - var style = { - 'top': relativeY+'px', - 'left': relativeX+'px', - 'opacity': '0', - - // Duration - '-webkit-transition-duration': Effect.duration + 'ms', - '-moz-transition-duration': Effect.duration + 'ms', - '-o-transition-duration': Effect.duration + 'ms', - 'transition-duration': Effect.duration + 'ms', - '-webkit-transform': scale, - '-moz-transform': scale, - '-ms-transform': scale, - '-o-transform': scale, - 'transform': scale, - }; - - ripple.setAttribute('style', convertStyle(style)); - - setTimeout(function() { - try { - el.removeChild(ripple); - } catch(e) { - return false; - } - }, Effect.duration); - }, delay); - }, - - // Little hack to make can perform waves effect - wrapInput: function(elements) { - for (var a = 0; a < elements.length; a++) { - var el = elements[a]; - - if (el.tagName.toLowerCase() === 'input') { - var parent = el.parentNode; - - // If input already have parent just pass through - if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) { - continue; - } - - // Put element class and style to the specified parent - var wrapper = document.createElement('i'); - wrapper.className = el.className + ' waves-input-wrapper'; - - var elementStyle = el.getAttribute('style'); - - if (!elementStyle) { - elementStyle = ''; - } - - wrapper.setAttribute('style', elementStyle); - - el.className = 'waves-button-input'; - el.removeAttribute('style'); - - // Put element as child - parent.replaceChild(wrapper, el); - wrapper.appendChild(el); - } - } - } - }; - - - /** - * Disable mousedown event for 500ms during and after touch - */ - var TouchHandler = { - /* uses an integer rather than bool so there's no issues with - * needing to clear timeouts if another touch event occurred - * within the 500ms. Cannot mouseup between touchstart and - * touchend, nor in the 500ms after touchend. */ - touches: 0, - allowEvent: function(e) { - var allow = true; - - if (e.type === 'touchstart') { - TouchHandler.touches += 1; //push - } else if (e.type === 'touchend' || e.type === 'touchcancel') { - setTimeout(function() { - if (TouchHandler.touches > 0) { - TouchHandler.touches -= 1; //pop after 500ms - } - }, 500); - } else if (e.type === 'mousedown' && TouchHandler.touches > 0) { - allow = false; - } - - return allow; - }, - touchup: function(e) { - TouchHandler.allowEvent(e); - } - }; - - - /** - * Delegated click handler for .waves-effect element. - * returns null when .waves-effect element not in "click tree" - */ - function getWavesEffectElement(e) { - if (TouchHandler.allowEvent(e) === false) { - return null; - } - - var element = null; - var target = e.target || e.srcElement; - - while (target.parentElement !== null) { - if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) { - element = target; - break; - } else if (target.classList.contains('waves-effect')) { - element = target; - break; - } - target = target.parentElement; - } - - return element; - } - - /** - * Bubble the click and show effect if .waves-effect elem was found - */ - function showEffect(e) { - var element = getWavesEffectElement(e); - - if (element !== null) { - Effect.show(e, element); - - if ('ontouchstart' in window) { - element.addEventListener('touchend', Effect.hide, false); - element.addEventListener('touchcancel', Effect.hide, false); - } - - element.addEventListener('mouseup', Effect.hide, false); - element.addEventListener('mouseleave', Effect.hide, false); - } - } - - Waves.displayEffect = function(options) { - options = options || {}; - - if ('duration' in options) { - Effect.duration = options.duration; - } - - //Wrap input inside tag - Effect.wrapInput($$('.waves-effect')); - - if ('ontouchstart' in window) { - document.body.addEventListener('touchstart', showEffect, false); - } - - document.body.addEventListener('mousedown', showEffect, false); - }; - - /** - * Attach Waves to an input element (or any element which doesn't - * bubble mouseup/mousedown events). - * Intended to be used with dynamically loaded forms/inputs, or - * where the user doesn't want a delegated click handler. - */ - Waves.attach = function(element) { - //FUTURE: automatically add waves classes and allow users - // to specify them with an options param? Eg. light/classic/button - if (element.tagName.toLowerCase() === 'input') { - Effect.wrapInput([element]); - element = element.parentElement; - } - - if ('ontouchstart' in window) { - element.addEventListener('touchstart', showEffect, false); - } - - element.addEventListener('mousedown', showEffect, false); - }; - - window.Waves = Waves; - - document.addEventListener('DOMContentLoaded', function() { - Waves.displayEffect(); - }, false); - -})(window); -;Materialize.toast = function (message, displayLength, className, completeCallback) { - className = className || ""; - - var container = document.getElementById('toast-container'); - - // Create toast container if it does not exist - if (container === null) { - // create notification container - container = document.createElement('div'); - container.id = 'toast-container'; - document.body.appendChild(container); - } - - // Select and append toast - var newToast = createToast(message); - - // only append toast if message is not undefined - if(message){ - container.appendChild(newToast); - } - - newToast.style.top = '35px'; - newToast.style.opacity = 0; - - // Animate toast in - Vel(newToast, { "top" : "0px", opacity: 1 }, {duration: 300, - easing: 'easeOutCubic', - queue: false}); - - // Allows timer to be pause while being panned - var timeLeft = displayLength; - var counterInterval = setInterval (function(){ - - - if (newToast.parentNode === null) - window.clearInterval(counterInterval); - - // If toast is not being dragged, decrease its time remaining - if (!newToast.classList.contains('panning')) { - timeLeft -= 20; - } - - if (timeLeft <= 0) { - // Animate toast out - Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375, - easing: 'easeOutExpo', - queue: false, - complete: function(){ - // Call the optional callback - if(typeof(completeCallback) === "function") - completeCallback(); - // Remove toast after it times out - this[0].parentNode.removeChild(this[0]); - } - }); - window.clearInterval(counterInterval); - } - }, 20); - - - - function createToast(html) { - - // Create toast - var toast = document.createElement('div'); - toast.classList.add('toast'); - if (className) { - var classes = className.split(' '); - - for (var i = 0, count = classes.length; i < count; i++) { - toast.classList.add(classes[i]); - } - } - // If type of parameter is HTML Element - if ( typeof HTMLElement === "object" ? html instanceof HTMLElement : html && typeof html === "object" && html !== null && html.nodeType === 1 && typeof html.nodeName==="string" -) { - toast.appendChild(html); - } - else if (html instanceof jQuery) { - // Check if it is jQuery object - toast.appendChild(html[0]); - } - else { - // Insert as text; - toast.innerHTML = html; - } - // Bind hammer - var hammerHandler = new Hammer(toast, {prevent_default: false}); - hammerHandler.on('pan', function(e) { - var deltaX = e.deltaX; - var activationDistance = 80; - - // Change toast state - if (!toast.classList.contains('panning')){ - toast.classList.add('panning'); - } - - var opacityPercent = 1-Math.abs(deltaX / activationDistance); - if (opacityPercent < 0) - opacityPercent = 0; - - Vel(toast, {left: deltaX, opacity: opacityPercent }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - }); - - hammerHandler.on('panend', function(e) { - var deltaX = e.deltaX; - var activationDistance = 80; - - // If toast dragged past activation point - if (Math.abs(deltaX) > activationDistance) { - Vel(toast, {marginTop: '-40px'}, { duration: 375, - easing: 'easeOutExpo', - queue: false, - complete: function(){ - if(typeof(completeCallback) === "function") { - completeCallback(); - } - toast.parentNode.removeChild(toast); - } - }); - - } else { - toast.classList.remove('panning'); - // Put toast back into original position - Vel(toast, { left: 0, opacity: 1 }, { duration: 300, - easing: 'easeOutExpo', - queue: false - }); - - } - }); - - return toast; - } -}; -;(function ($) { - - var methods = { - init : function(options) { - var defaults = { - menuWidth: 300, - edge: 'left', - closeOnClick: false - }; - options = $.extend(defaults, options); - - $(this).each(function(){ - var $this = $(this); - var menu_id = $("#"+ $this.attr('data-activates')); - - // Set to width - if (options.menuWidth != 300) { - menu_id.css('width', options.menuWidth); - } - - // Add Touch Area - var dragTarget = $('
        '); - $('body').append(dragTarget); - - if (options.edge == 'left') { - menu_id.css('transform', 'translateX(-100%)'); - dragTarget.css({'left': 0}); // Add Touch Area - } - else { - menu_id.addClass('right-aligned') // Change text-alignment to right - .css('transform', 'translateX(100%)'); - dragTarget.css({'right': 0}); // Add Touch Area - } - - // If fixed sidenav, bring menu out - if (menu_id.hasClass('fixed')) { - if (window.innerWidth > 992) { - menu_id.css('transform', 'translateX(0)'); - } - } - - // Window resize to reset on large screens fixed - if (menu_id.hasClass('fixed')) { - $(window).resize( function() { - if (window.innerWidth > 992) { - // Close menu if window is resized bigger than 992 and user has fixed sidenav - if ($('#sidenav-overlay').length !== 0 && menuOut) { - removeMenu(true); - } - else { - // menu_id.removeAttr('style'); - menu_id.css('transform', 'translateX(0%)'); - // menu_id.css('width', options.menuWidth); - } - } - else if (menuOut === false){ - if (options.edge === 'left') { - menu_id.css('transform', 'translateX(-100%)'); - } else { - menu_id.css('transform', 'translateX(100%)'); - } - - } - - }); - } - - // if closeOnClick, then add close event for all a tags in side sideNav - if (options.closeOnClick === true) { - menu_id.on("click.itemclick", "a:not(.collapsible-header)", function(){ - removeMenu(); - }); - } - - function removeMenu(restoreNav) { - panning = false; - menuOut = false; - // Reenable scrolling - $('body').css({ - overflow: '', - width: '' - }); - - $('#sidenav-overlay').velocity({opacity: 0}, {duration: 200, - queue: false, easing: 'easeOutQuad', - complete: function() { - $(this).remove(); - } }); - if (options.edge === 'left') { - // Reset phantom div - dragTarget.css({width: '', right: '', left: '0'}); - menu_id.velocity( - {'translateX': '-100%'}, - { duration: 200, - queue: false, - easing: 'easeOutCubic', - complete: function() { - if (restoreNav === true) { - // Restore Fixed sidenav - menu_id.removeAttr('style'); - menu_id.css('width', options.menuWidth); - } - } - - }); - } - else { - // Reset phantom div - dragTarget.css({width: '', right: '0', left: ''}); - menu_id.velocity( - {'translateX': '100%'}, - { duration: 200, - queue: false, - easing: 'easeOutCubic', - complete: function() { - if (restoreNav === true) { - // Restore Fixed sidenav - menu_id.removeAttr('style'); - menu_id.css('width', options.menuWidth); - } - } - }); - } - } - - - - // Touch Event - var panning = false; - var menuOut = false; - - dragTarget.on('click', function(){ - if (menuOut) { - removeMenu(); - } - }); - - dragTarget.hammer({ - prevent_default: false - }).bind('pan', function(e) { - - if (e.gesture.pointerType == "touch") { - - var direction = e.gesture.direction; - var x = e.gesture.center.x; - var y = e.gesture.center.y; - var velocityX = e.gesture.velocityX; - - // Disable Scrolling - var $body = $('body'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - // If overlay does not exist, create one and if it is clicked, close menu - if ($('#sidenav-overlay').length === 0) { - var overlay = $('
        '); - overlay.css('opacity', 0).click( function(){ - removeMenu(); - }); - $('body').append(overlay); - } - - // Keep within boundaries - if (options.edge === 'left') { - if (x > options.menuWidth) { x = options.menuWidth; } - else if (x < 0) { x = 0; } - } - - if (options.edge === 'left') { - // Left Direction - if (x < (options.menuWidth / 2)) { menuOut = false; } - // Right Direction - else if (x >= (options.menuWidth / 2)) { menuOut = true; } - menu_id.css('transform', 'translateX(' + (x - options.menuWidth) + 'px)'); - } - else { - // Left Direction - if (x < (window.innerWidth - options.menuWidth / 2)) { - menuOut = true; - } - // Right Direction - else if (x >= (window.innerWidth - options.menuWidth / 2)) { - menuOut = false; - } - var rightPos = (x - options.menuWidth / 2); - if (rightPos < 0) { - rightPos = 0; - } - - menu_id.css('transform', 'translateX(' + rightPos + 'px)'); - } - - - // Percentage overlay - var overlayPerc; - if (options.edge === 'left') { - overlayPerc = x / options.menuWidth; - $('#sidenav-overlay').velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'}); - } - else { - overlayPerc = Math.abs((x - window.innerWidth) / options.menuWidth); - $('#sidenav-overlay').velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'}); - } - } - - }).bind('panend', function(e) { - - if (e.gesture.pointerType == "touch") { - var velocityX = e.gesture.velocityX; - var x = e.gesture.center.x; - var leftPos = x - options.menuWidth; - var rightPos = x - options.menuWidth / 2; - if (leftPos > 0 ) { - leftPos = 0; - } - if (rightPos < 0) { - rightPos = 0; - } - panning = false; - - if (options.edge === 'left') { - // If velocityX <= 0.3 then the user is flinging the menu closed so ignore menuOut - if ((menuOut && velocityX <= 0.3) || velocityX < -0.5) { - // Return menu to open - if (leftPos !== 0) { - menu_id.velocity({'translateX': [0, leftPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $('#sidenav-overlay').velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - dragTarget.css({width: '50%', right: 0, left: ''}); - menuOut = true; - } - else if (!menuOut || velocityX > 0.3) { - // Enable Scrolling - $('body').css({ - overflow: '', - width: '' - }); - // Slide menu closed - menu_id.velocity({'translateX': [-1 * options.menuWidth - 10, leftPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'}); - $('#sidenav-overlay').velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', - complete: function () { - $(this).remove(); - }}); - dragTarget.css({width: '10px', right: '', left: 0}); - } - } - else { - if ((menuOut && velocityX >= -0.3) || velocityX > 0.5) { - // Return menu to open - if (rightPos !== 0) { - menu_id.velocity({'translateX': [0, rightPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $('#sidenav-overlay').velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - dragTarget.css({width: '50%', right: '', left: 0}); - menuOut = true; - } - else if (!menuOut || velocityX < -0.3) { - // Enable Scrolling - $('body').css({ - overflow: '', - width: '' - }); - - // Slide menu closed - menu_id.velocity({'translateX': [options.menuWidth + 10, rightPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'}); - $('#sidenav-overlay').velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', - complete: function () { - $(this).remove(); - }}); - dragTarget.css({width: '10px', right: 0, left: ''}); - } - } - - } - }); - - $this.click(function() { - if (menuOut === true) { - menuOut = false; - panning = false; - removeMenu(); - } - else { - - // Disable Scrolling - var $body = $('body'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - // Push current drag target on top of DOM tree - $('body').append(dragTarget); - - if (options.edge === 'left') { - dragTarget.css({width: '50%', right: 0, left: ''}); - menu_id.velocity({'translateX': [0, -1 * options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - else { - dragTarget.css({width: '50%', right: '', left: 0}); - menu_id.velocity({'translateX': [0, options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - var overlay = $('
        '); - overlay.css('opacity', 0) - .click(function(){ - menuOut = false; - panning = false; - removeMenu(); - overlay.velocity({opacity: 0}, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $(this).remove(); - } }); - - }); - $('body').append(overlay); - overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function () { - menuOut = true; - panning = false; - } - }); - } - - return false; - }); - }); - - - }, - show : function() { - this.trigger('click'); - }, - hide : function() { - $('#sidenav-overlay').trigger('click'); - } - }; - - - $.fn.sideNav = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.sideNav' ); - } - }; // Plugin end -}( jQuery )); -;/** - * Extend jquery with a scrollspy plugin. - * This watches the window scroll and fires events when elements are scrolled into viewport. - * - * throttle() and getTime() taken from Underscore.js - * https://github.com/jashkenas/underscore - * - * @author Copyright 2013 John Smart - * @license https://raw.github.com/thesmart/jquery-scrollspy/master/LICENSE - * @see https://github.com/thesmart - * @version 0.1.2 - */ -(function($) { - - var jWindow = $(window); - var elements = []; - var elementsInView = []; - var isSpying = false; - var ticks = 0; - var unique_id = 1; - var offset = { - top : 0, - right : 0, - bottom : 0, - left : 0, - } - - /** - * Find elements that are within the boundary - * @param {number} top - * @param {number} right - * @param {number} bottom - * @param {number} left - * @return {jQuery} A collection of elements - */ - function findElements(top, right, bottom, left) { - var hits = $(); - $.each(elements, function(i, element) { - if (element.height() > 0) { - var elTop = element.offset().top, - elLeft = element.offset().left, - elRight = elLeft + element.width(), - elBottom = elTop + element.height(); - - var isIntersect = !(elLeft > right || - elRight < left || - elTop > bottom || - elBottom < top); - - if (isIntersect) { - hits.push(element); - } - } - }); - - return hits; - } - - - /** - * Called when the user scrolls the window - */ - function onScroll() { - // unique tick id - ++ticks; - - // viewport rectangle - var top = jWindow.scrollTop(), - left = jWindow.scrollLeft(), - right = left + jWindow.width(), - bottom = top + jWindow.height(); - - // determine which elements are in view -// + 60 accounts for fixed nav - var intersections = findElements(top+offset.top + 200, right+offset.right, bottom+offset.bottom, left+offset.left); - $.each(intersections, function(i, element) { - - var lastTick = element.data('scrollSpy:ticks'); - if (typeof lastTick != 'number') { - // entered into view - element.triggerHandler('scrollSpy:enter'); - } - - // update tick id - element.data('scrollSpy:ticks', ticks); - }); - - // determine which elements are no longer in view - $.each(elementsInView, function(i, element) { - var lastTick = element.data('scrollSpy:ticks'); - if (typeof lastTick == 'number' && lastTick !== ticks) { - // exited from view - element.triggerHandler('scrollSpy:exit'); - element.data('scrollSpy:ticks', null); - } - }); - - // remember elements in view for next tick - elementsInView = intersections; - } - - /** - * Called when window is resized - */ - function onWinSize() { - jWindow.trigger('scrollSpy:winSize'); - } - - /** - * Get time in ms - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @type {function} - * @return {number} - */ - var getTime = (Date.now || function () { - return new Date().getTime(); - }); - - /** - * Returns a function, that, when invoked, will only be triggered at most once - * during a given window of time. Normally, the throttled function will run - * as much as it can, without ever going more than once per `wait` duration; - * but if you'd like to disable the execution on the leading edge, pass - * `{leading: false}`. To disable execution on the trailing edge, ditto. - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @param {function} func - * @param {number} wait - * @param {Object=} options - * @returns {Function} - */ - function throttle(func, wait, options) { - var context, args, result; - var timeout = null; - var previous = 0; - options || (options = {}); - var later = function () { - previous = options.leading === false ? 0 : getTime(); - timeout = null; - result = func.apply(context, args); - context = args = null; - }; - return function () { - var now = getTime(); - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0) { - clearTimeout(timeout); - timeout = null; - previous = now; - result = func.apply(context, args); - context = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - return result; - }; - }; - - /** - * Enables ScrollSpy using a selector - * @param {jQuery|string} selector The elements collection, or a selector - * @param {Object=} options Optional. - throttle : number -> scrollspy throttling. Default: 100 ms - offsetTop : number -> offset from top. Default: 0 - offsetRight : number -> offset from right. Default: 0 - offsetBottom : number -> offset from bottom. Default: 0 - offsetLeft : number -> offset from left. Default: 0 - * @returns {jQuery} - */ - $.scrollSpy = function(selector, options) { - var defaults = { - throttle: 100, - scrollOffset: 200 // offset - 200 allows elements near bottom of page to scroll - }; - options = $.extend(defaults, options); - - var visible = []; - selector = $(selector); - selector.each(function(i, element) { - elements.push($(element)); - $(element).data("scrollSpy:id", i); - // Smooth scroll to section - $('a[href="#' + $(element).attr('id') + '"]').click(function(e) { - e.preventDefault(); - var offset = $(this.hash).offset().top + 1; - $('html, body').animate({ scrollTop: offset - options.scrollOffset }, {duration: 400, queue: false, easing: 'easeOutCubic'}); - }); - }); - - offset.top = options.offsetTop || 0; - offset.right = options.offsetRight || 0; - offset.bottom = options.offsetBottom || 0; - offset.left = options.offsetLeft || 0; - - var throttledScroll = throttle(onScroll, options.throttle || 100); - var readyScroll = function(){ - $(document).ready(throttledScroll); - }; - - if (!isSpying) { - jWindow.on('scroll', readyScroll); - jWindow.on('resize', readyScroll); - isSpying = true; - } - - // perform a scan once, after current execution context, and after dom is ready - setTimeout(readyScroll, 0); - - - selector.on('scrollSpy:enter', function() { - visible = $.grep(visible, function(value) { - return value.height() != 0; - }); - - var $this = $(this); - - if (visible[0]) { - $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active'); - if ($this.data('scrollSpy:id') < visible[0].data('scrollSpy:id')) { - visible.unshift($(this)); - } - else { - visible.push($(this)); - } - } - else { - visible.push($(this)); - } - - - $('a[href="#' + visible[0].attr('id') + '"]').addClass('active'); - }); - selector.on('scrollSpy:exit', function() { - visible = $.grep(visible, function(value) { - return value.height() != 0; - }); - - if (visible[0]) { - $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active'); - var $this = $(this); - visible = $.grep(visible, function(value) { - return value.attr('id') != $this.attr('id'); - }); - if (visible[0]) { // Check if empty - $('a[href="#' + visible[0].attr('id') + '"]').addClass('active'); - } - } - }); - - return selector; - }; - - /** - * Listen for window resize events - * @param {Object=} options Optional. Set { throttle: number } to change throttling. Default: 100 ms - * @returns {jQuery} $(window) - */ - $.winSizeSpy = function(options) { - $.winSizeSpy = function() { return jWindow; }; // lock from multiple calls - options = options || { - throttle: 100 - }; - return jWindow.on('resize', throttle(onWinSize, options.throttle || 100)); - }; - - /** - * Enables ScrollSpy on a collection of elements - * e.g. $('.scrollSpy').scrollSpy() - * @param {Object=} options Optional. - throttle : number -> scrollspy throttling. Default: 100 ms - offsetTop : number -> offset from top. Default: 0 - offsetRight : number -> offset from right. Default: 0 - offsetBottom : number -> offset from bottom. Default: 0 - offsetLeft : number -> offset from left. Default: 0 - * @returns {jQuery} - */ - $.fn.scrollSpy = function(options) { - return $.scrollSpy($(this), options); - }; - -})(jQuery); -;(function ($) { - $(document).ready(function() { - - // Function to update labels of text fields - Materialize.updateTextFields = function() { - var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; - $(input_selector).each(function(index, element) { - if ($(element).val().length > 0 || element.autofocus ||$(this).attr('placeholder') !== undefined || $(element)[0].validity.badInput === true) { - $(this).siblings('label').addClass('active'); - } - else { - $(this).siblings('label').removeClass('active'); - } - }); - }; - - // Text based inputs - var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; - - // Add active if form auto complete - $(document).on('change', input_selector, function () { - if($(this).val().length !== 0 || $(this).attr('placeholder') !== undefined) { - $(this).siblings('label').addClass('active'); - } - validate_field($(this)); - }); - - // Add active if input element has been pre-populated on document ready - $(document).ready(function() { - Materialize.updateTextFields(); - }); - - // HTML DOM FORM RESET handling - $(document).on('reset', function(e) { - var formReset = $(e.target); - if (formReset.is('form')) { - formReset.find(input_selector).removeClass('valid').removeClass('invalid'); - formReset.find(input_selector).each(function () { - if ($(this).attr('value') === '') { - $(this).siblings('label').removeClass('active'); - } - }); - - // Reset select - formReset.find('select.initialized').each(function () { - var reset_text = formReset.find('option[selected]').text(); - formReset.siblings('input.select-dropdown').val(reset_text); - }); - } - }); - - // Add active when element has focus - $(document).on('focus', input_selector, function () { - $(this).siblings('label, .prefix').addClass('active'); - }); - - $(document).on('blur', input_selector, function () { - var $inputElement = $(this); - var selector = ".prefix"; - - if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === undefined) { - selector += ", label"; - } - - $inputElement.siblings(selector).removeClass('active'); - - validate_field($inputElement); - }); - - window.validate_field = function(object) { - var hasLength = object.attr('length') !== undefined; - var lenAttr = parseInt(object.attr('length')); - var len = object.val().length; - - if (object.val().length === 0 && object[0].validity.badInput === false) { - if (object.hasClass('validate')) { - object.removeClass('valid'); - object.removeClass('invalid'); - } - } - else { - if (object.hasClass('validate')) { - // Check for character counter attributes - if ((object.is(':valid') && hasLength && (len <= lenAttr)) || (object.is(':valid') && !hasLength)) { - object.removeClass('invalid'); - object.addClass('valid'); - } - else { - object.removeClass('valid'); - object.addClass('invalid'); - } - } - } - }; - - // Radio and Checkbox focus class - var radio_checkbox = 'input[type=radio], input[type=checkbox]'; - $(document).on('keyup.radio', radio_checkbox, function(e) { - // TAB, check if tabbing to radio or checkbox. - if (e.which === 9) { - $(this).addClass('tabbed'); - var $this = $(this); - $this.one('blur', function(e) { - - $(this).removeClass('tabbed'); - }); - return; - } - }); - - // Textarea Auto Resize - var hiddenDiv = $('.hiddendiv').first(); - if (!hiddenDiv.length) { - hiddenDiv = $('
        '); - $('body').append(hiddenDiv); - } - var text_area_selector = '.materialize-textarea'; - - function textareaAutoResize($textarea) { - // Set font properties of hiddenDiv - - var fontFamily = $textarea.css('font-family'); - var fontSize = $textarea.css('font-size'); - var lineHeight = $textarea.css('line-height'); - - if (fontSize) { hiddenDiv.css('font-size', fontSize); } - if (fontFamily) { hiddenDiv.css('font-family', fontFamily); } - if (lineHeight) { hiddenDiv.css('line-height', lineHeight); } - - if ($textarea.attr('wrap') === "off") { - hiddenDiv.css('overflow-wrap', "normal") - .css('white-space', "pre"); - } - - hiddenDiv.text($textarea.val() + '\n'); - var content = hiddenDiv.html().replace(/\n/g, '
        '); - hiddenDiv.html(content); - - - // When textarea is hidden, width goes crazy. - // Approximate with half of window size - - if ($textarea.is(':visible')) { - hiddenDiv.css('width', $textarea.width()); - } - else { - hiddenDiv.css('width', $(window).width()/2); - } - - $textarea.css('height', hiddenDiv.height()); - } - - $(text_area_selector).each(function () { - var $textarea = $(this); - if ($textarea.val().length) { - textareaAutoResize($textarea); - } - }); - - $('body').on('keyup keydown autoresize', text_area_selector, function () { - textareaAutoResize($(this)); - }); - - // File Input Path - $(document).on('change', '.file-field input[type="file"]', function () { - var file_field = $(this).closest('.file-field'); - var path_input = file_field.find('input.file-path'); - var files = $(this)[0].files; - var file_names = []; - for (var i = 0; i < files.length; i++) { - file_names.push(files[i].name); - } - path_input.val(file_names.join(", ")); - path_input.trigger('change'); - }); - - /**************** - * Range Input * - ****************/ - - var range_type = 'input[type=range]'; - var range_mousedown = false; - var left; - - $(range_type).each(function () { - var thumb = $(''); - $(this).after(thumb); - }); - - var range_wrapper = '.range-field'; - $(document).on('change', range_type, function(e) { - var thumb = $(this).siblings('.thumb'); - thumb.find('.value').html($(this).val()); - }); - - $(document).on('input mousedown touchstart', range_type, function(e) { - var thumb = $(this).siblings('.thumb'); - var width = $(this).outerWidth(); - - // If thumb indicator does not exist yet, create it - if (thumb.length <= 0) { - thumb = $(''); - $(this).after(thumb); - } - - // Set indicator value - thumb.find('.value').html($(this).val()); - - range_mousedown = true; - $(this).addClass('active'); - - if (!thumb.hasClass('active')) { - thumb.velocity({ height: "30px", width: "30px", top: "-20px", marginLeft: "-15px"}, { duration: 300, easing: 'easeOutExpo' }); - } - - if (e.type !== 'input') { - if(e.pageX === undefined || e.pageX === null){//mobile - left = e.originalEvent.touches[0].pageX - $(this).offset().left; - } - else{ // desktop - left = e.pageX - $(this).offset().left; - } - if (left < 0) { - left = 0; - } - else if (left > width) { - left = width; - } - thumb.addClass('active').css('left', left); - } - - thumb.find('.value').html($(this).val()); - }); - - $(document).on('mouseup touchend', range_wrapper, function() { - range_mousedown = false; - $(this).removeClass('active'); - }); - - $(document).on('mousemove touchmove', range_wrapper, function(e) { - var thumb = $(this).children('.thumb'); - var left; - if (range_mousedown) { - if (!thumb.hasClass('active')) { - thumb.velocity({ height: '30px', width: '30px', top: '-20px', marginLeft: '-15px'}, { duration: 300, easing: 'easeOutExpo' }); - } - if (e.pageX === undefined || e.pageX === null) { //mobile - left = e.originalEvent.touches[0].pageX - $(this).offset().left; - } - else{ // desktop - left = e.pageX - $(this).offset().left; - } - var width = $(this).outerWidth(); - - if (left < 0) { - left = 0; - } - else if (left > width) { - left = width; - } - thumb.addClass('active').css('left', left); - thumb.find('.value').html(thumb.siblings(range_type).val()); - } - }); - - $(document).on('mouseout touchleave', range_wrapper, function() { - if (!range_mousedown) { - - var thumb = $(this).children('.thumb'); - - if (thumb.hasClass('active')) { - thumb.velocity({ height: '0', width: '0', top: '10px', marginLeft: '-6px'}, { duration: 100 }); - } - thumb.removeClass('active'); - } - }); - - /************************** - * Auto complete plugin * - *************************/ - $.fn.autocomplete = function (options) { - // Defaults - var defaults = { - data: {} - }; - - options = $.extend(defaults, options); - - return this.each(function() { - var $input = $(this); - var data = options.data, - $inputDiv = $input.closest('.input-field'); // Div to append on - - // Check if data isn't empty - if (!$.isEmptyObject(data)) { - // Create autocomplete element - var $autocomplete = $(''); - - // Append autocomplete element - if ($inputDiv.length) { - $inputDiv.append($autocomplete); // Set ul in body - } else { - $input.after($autocomplete); - } - - var highlight = function(string, $el) { - var img = $el.find('img'); - var matchStart = $el.text().toLowerCase().indexOf("" + string.toLowerCase() + ""), - matchEnd = matchStart + string.length - 1, - beforeMatch = $el.text().slice(0, matchStart), - matchText = $el.text().slice(matchStart, matchEnd + 1), - afterMatch = $el.text().slice(matchEnd + 1); - $el.html("" + beforeMatch + "" + matchText + "" + afterMatch + ""); - if (img.length) { - $el.prepend(img); - } - }; - - // Perform search - $input.on('keyup', function (e) { - // Capture Enter - if (e.which === 13) { - $autocomplete.find('li').first().click(); - return; - } - - var val = $input.val().toLowerCase(); - $autocomplete.empty(); - - // Check if the input isn't empty - if (val !== '') { - for(var key in data) { - if (data.hasOwnProperty(key) && - key.toLowerCase().indexOf(val) !== -1 && - key.toLowerCase() !== val) { - var autocompleteOption = $('
      • '); - if(!!data[key]) { - autocompleteOption.append(''+ key +''); - } else { - autocompleteOption.append(''+ key +''); - } - $autocomplete.append(autocompleteOption); - - highlight(val, autocompleteOption); - } - } - } - }); - - // Set input value - $autocomplete.on('click', 'li', function () { - $input.val($(this).text().trim()); - $autocomplete.empty(); - }); - } - }); - }; - - }); // End of $(document).ready - - /******************* - * Select Plugin * - ******************/ - $.fn.material_select = function (callback) { - $(this).each(function(){ - var $select = $(this); - - if ($select.hasClass('browser-default')) { - return; // Continue to next (return false breaks out of entire loop) - } - - var multiple = $select.attr('multiple') ? true : false, - lastID = $select.data('select-id'); // Tear down structure if Select needs to be rebuilt - - if (lastID) { - $select.parent().find('span.caret').remove(); - $select.parent().find('input').remove(); - - $select.unwrap(); - $('ul#select-options-'+lastID).remove(); - } - - // If destroying the select, remove the selelct-id and reset it to it's uninitialized state. - if(callback === 'destroy') { - $select.data('select-id', null).removeClass('initialized'); - return; - } - - var uniqueID = Materialize.guid(); - $select.data('select-id', uniqueID); - var wrapper = $('
        '); - wrapper.addClass($select.attr('class')); - var options = $(''), - selectChildren = $select.children('option, optgroup'), - valuesSelected = [], - optionsHover = false; - - var label = $select.find('option:selected').html() || $select.find('option:first').html() || ""; - - // Function that renders and appends the option taking into - // account type and possible image icon. - var appendOptionWithIcon = function(select, option, type) { - // Add disabled attr if disabled - var disabledClass = (option.is(':disabled')) ? 'disabled ' : ''; - var optgroupClass = (type === 'optgroup-option') ? 'optgroup-option ' : ''; - - // add icons - var icon_url = option.data('icon'); - var classes = option.attr('class'); - if (!!icon_url) { - var classString = ''; - if (!!classes) classString = ' class="' + classes + '"'; - - // Check for multiple type. - if (type === 'multiple') { - options.append($('
      • ' + option.html() + '
      • ')); - } else { - options.append($('
      • ' + option.html() + '
      • ')); - } - return true; - } - - // Check for multiple type. - if (type === 'multiple') { - options.append($('
      • ' + option.html() + '
      • ')); - } else { - options.append($('
      • ' + option.html() + '
      • ')); - } - }; - - /* Create dropdown structure. */ - if (selectChildren.length) { - selectChildren.each(function() { - if ($(this).is('option')) { - // Direct descendant option. - if (multiple) { - appendOptionWithIcon($select, $(this), 'multiple'); - - } else { - appendOptionWithIcon($select, $(this)); - } - } else if ($(this).is('optgroup')) { - // Optgroup. - var selectOptions = $(this).children('option'); - options.append($('
      • ' + $(this).attr('label') + '
      • ')); - - selectOptions.each(function() { - appendOptionWithIcon($select, $(this), 'optgroup-option'); - }); - } - }); - } - - options.find('li:not(.optgroup)').each(function (i) { - $(this).click(function (e) { - // Check if option element is disabled - if (!$(this).hasClass('disabled') && !$(this).hasClass('optgroup')) { - var selected = true; - - if (multiple) { - $('input[type="checkbox"]', this).prop('checked', function(i, v) { return !v; }); - selected = toggleEntryFromArray(valuesSelected, $(this).index(), $select); - $newSelect.trigger('focus'); - } else { - options.find('li').removeClass('active'); - $(this).toggleClass('active'); - $newSelect.val($(this).text()); - } - - activateOption(options, $(this)); - $select.find('option').eq(i).prop('selected', selected); - // Trigger onchange() event - $select.trigger('change'); - if (typeof callback !== 'undefined') callback(); - } - - e.stopPropagation(); - }); - }); - - // Wrap Elements - $select.wrap(wrapper); - // Add Select Display Element - var dropdownIcon = $(''); - if ($select.is(':disabled')) - dropdownIcon.addClass('disabled'); - - // escape double quotes - var sanitizedLabelHtml = label.replace(/"/g, '"'); - - var $newSelect = $(''); - $select.before($newSelect); - $newSelect.before(dropdownIcon); - - $newSelect.after(options); - // Check if section element is disabled - if (!$select.is(':disabled')) { - $newSelect.dropdown({'hover': false, 'closeOnClick': false}); - } - - // Copy tabindex - if ($select.attr('tabindex')) { - $($newSelect[0]).attr('tabindex', $select.attr('tabindex')); - } - - $select.addClass('initialized'); - - $newSelect.on({ - 'focus': function (){ - if ($('ul.select-dropdown').not(options[0]).is(':visible')) { - $('input.select-dropdown').trigger('close'); - } - if (!options.is(':visible')) { - $(this).trigger('open', ['focus']); - var label = $(this).val(); - var selectedOption = options.find('li').filter(function() { - return $(this).text().toLowerCase() === label.toLowerCase(); - })[0]; - activateOption(options, selectedOption); - } - }, - 'click': function (e){ - e.stopPropagation(); - } - }); - - $newSelect.on('blur', function() { - if (!multiple) { - $(this).trigger('close'); - } - options.find('li.selected').removeClass('selected'); - }); - - options.hover(function() { - optionsHover = true; - }, function () { - optionsHover = false; - }); - - $(window).on({ - 'click': function () { - multiple && (optionsHover || $newSelect.trigger('close')); - } - }); - - // Add initial multiple selections. - if (multiple) { - $select.find("option:selected:not(:disabled)").each(function () { - var index = $(this).index(); - - toggleEntryFromArray(valuesSelected, index, $select); - options.find("li").eq(index).find(":checkbox").prop("checked", true); - }); - } - - // Make option as selected and scroll to selected position - var activateOption = function(collection, newOption) { - if (newOption) { - collection.find('li.selected').removeClass('selected'); - var option = $(newOption); - option.addClass('selected'); - options.scrollTo(option); - } - }; - - // Allow user to search by typing - // this array is cleared after 1 second - var filterQuery = [], - onKeyDown = function(e){ - // TAB - switch to another input - if(e.which == 9){ - $newSelect.trigger('close'); - return; - } - - // ARROW DOWN WHEN SELECT IS CLOSED - open select options - if(e.which == 40 && !options.is(':visible')){ - $newSelect.trigger('open'); - return; - } - - // ENTER WHEN SELECT IS CLOSED - submit form - if(e.which == 13 && !options.is(':visible')){ - return; - } - - e.preventDefault(); - - // CASE WHEN USER TYPE LETTERS - var letter = String.fromCharCode(e.which).toLowerCase(), - nonLetters = [9,13,27,38,40]; - if (letter && (nonLetters.indexOf(e.which) === -1)) { - filterQuery.push(letter); - - var string = filterQuery.join(''), - newOption = options.find('li').filter(function() { - return $(this).text().toLowerCase().indexOf(string) === 0; - })[0]; - - if (newOption) { - activateOption(options, newOption); - } - } - - // ENTER - select option and close when select options are opened - if (e.which == 13) { - var activeOption = options.find('li.selected:not(.disabled)')[0]; - if(activeOption){ - $(activeOption).trigger('click'); - if (!multiple) { - $newSelect.trigger('close'); - } - } - } - - // ARROW DOWN - move to next not disabled option - if (e.which == 40) { - if (options.find('li.selected').length) { - newOption = options.find('li.selected').next('li:not(.disabled)')[0]; - } else { - newOption = options.find('li:not(.disabled)')[0]; - } - activateOption(options, newOption); - } - - // ESC - close options - if (e.which == 27) { - $newSelect.trigger('close'); - } - - // ARROW UP - move to previous not disabled option - if (e.which == 38) { - newOption = options.find('li.selected').prev('li:not(.disabled)')[0]; - if(newOption) - activateOption(options, newOption); - } - - // Automaticaly clean filter query so user can search again by starting letters - setTimeout(function(){ filterQuery = []; }, 1000); - }; - - $newSelect.on('keydown', onKeyDown); - }); - - function toggleEntryFromArray(entriesArray, entryIndex, select) { - var index = entriesArray.indexOf(entryIndex), - notAdded = index === -1; - - if (notAdded) { - entriesArray.push(entryIndex); - } else { - entriesArray.splice(index, 1); - } - - select.siblings('ul.dropdown-content').find('li').eq(entryIndex).toggleClass('active'); - - // use notAdded instead of true (to detect if the option is selected or not) - select.find('option').eq(entryIndex).prop('selected', notAdded); - setValueToInput(entriesArray, select); - - return notAdded; - } - - function setValueToInput(entriesArray, select) { - var value = ''; - - for (var i = 0, count = entriesArray.length; i < count; i++) { - var text = select.find('option').eq(entriesArray[i]).text(); - - i === 0 ? value += text : value += ', ' + text; - } - - if (value === '') { - value = select.find('option:disabled').eq(0).text(); - } - - select.siblings('input.select-dropdown').val(value); - } - }; - -}( jQuery )); -;(function ($) { - - var methods = { - - init : function(options) { - var defaults = { - indicators: true, - height: 400, - transition: 500, - interval: 6000 - }; - options = $.extend(defaults, options); - - return this.each(function() { - - // For each slider, we want to keep track of - // which slide is active and its associated content - var $this = $(this); - var $slider = $this.find('ul.slides').first(); - var $slides = $slider.find('> li'); - var $active_index = $slider.find('.active').index(); - var $active, $indicators, $interval; - if ($active_index != -1) { $active = $slides.eq($active_index); } - - // Transitions the caption depending on alignment - function captionTransition(caption, duration) { - if (caption.hasClass("center-align")) { - caption.velocity({opacity: 0, translateY: -100}, {duration: duration, queue: false}); - } - else if (caption.hasClass("right-align")) { - caption.velocity({opacity: 0, translateX: 100}, {duration: duration, queue: false}); - } - else if (caption.hasClass("left-align")) { - caption.velocity({opacity: 0, translateX: -100}, {duration: duration, queue: false}); - } - } - - // This function will transition the slide to any index of the next slide - function moveToSlide(index) { - // Wrap around indices. - if (index >= $slides.length) index = 0; - else if (index < 0) index = $slides.length -1; - - $active_index = $slider.find('.active').index(); - - // Only do if index changes - if ($active_index != index) { - $active = $slides.eq($active_index); - $caption = $active.find('.caption'); - - $active.removeClass('active'); - $active.velocity({opacity: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad', - complete: function() { - $slides.not('.active').velocity({opacity: 0, translateX: 0, translateY: 0}, {duration: 0, queue: false}); - } }); - captionTransition($caption, options.transition); - - - // Update indicators - if (options.indicators) { - $indicators.eq($active_index).removeClass('active'); - } - - $slides.eq(index).velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - $slides.eq(index).find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, delay: options.transition, queue: false, easing: 'easeOutQuad'}); - $slides.eq(index).addClass('active'); - - - // Update indicators - if (options.indicators) { - $indicators.eq(index).addClass('active'); - } - } - } - - // Set height of slider - // If fullscreen, do nothing - if (!$this.hasClass('fullscreen')) { - if (options.indicators) { - // Add height if indicators are present - $this.height(options.height + 40); - } - else { - $this.height(options.height); - } - $slider.height(options.height); - } - - - // Set initial positions of captions - $slides.find('.caption').each(function () { - captionTransition($(this), 0); - }); - - // Move img src into background-image - $slides.find('img').each(function () { - var placeholderBase64 = 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; - if ($(this).attr('src') !== placeholderBase64) { - $(this).css('background-image', 'url(' + $(this).attr('src') + ')' ); - $(this).attr('src', placeholderBase64); - } - }); - - // dynamically add indicators - if (options.indicators) { - $indicators = $('
          '); - $slides.each(function( index ) { - var $indicator = $('
        • '); - - // Handle clicks on indicators - $indicator.click(function () { - var $parent = $slider.parent(); - var curr_index = $parent.find($(this)).index(); - moveToSlide(curr_index); - - // reset interval - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - }); - $indicators.append($indicator); - }); - $this.append($indicators); - $indicators = $this.find('ul.indicators').find('li.indicator-item'); - } - - if ($active) { - $active.show(); - } - else { - $slides.first().addClass('active').velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - - $active_index = 0; - $active = $slides.eq($active_index); - - // Update indicators - if (options.indicators) { - $indicators.eq($active_index).addClass('active'); - } - } - - // Adjust height to current slide - $active.find('img').each(function() { - $active.find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - }); - - // auto scroll - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - moveToSlide($active_index + 1); - - }, options.transition + options.interval - ); - - - // HammerJS, Swipe navigation - - // Touch Event - var panning = false; - var swipeLeft = false; - var swipeRight = false; - - $this.hammer({ - prevent_default: false - }).bind('pan', function(e) { - if (e.gesture.pointerType === "touch") { - - // reset interval - clearInterval($interval); - - var direction = e.gesture.direction; - var x = e.gesture.deltaX; - var velocityX = e.gesture.velocityX; - - $curr_slide = $slider.find('.active'); - $curr_slide.velocity({ translateX: x - }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - // Swipe Left - if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.65)) { - swipeRight = true; - } - // Swipe Right - else if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.65)) { - swipeLeft = true; - } - - // Make Slide Behind active slide visible - var next_slide; - if (swipeLeft) { - next_slide = $curr_slide.next(); - if (next_slide.length === 0) { - next_slide = $slides.first(); - } - next_slide.velocity({ opacity: 1 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - if (swipeRight) { - next_slide = $curr_slide.prev(); - if (next_slide.length === 0) { - next_slide = $slides.last(); - } - next_slide.velocity({ opacity: 1 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - - } - - }).bind('panend', function(e) { - if (e.gesture.pointerType === "touch") { - - $curr_slide = $slider.find('.active'); - panning = false; - curr_index = $slider.find('.active').index(); - - if (!swipeRight && !swipeLeft || $slides.length <=1) { - // Return to original spot - $curr_slide.velocity({ translateX: 0 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - else if (swipeLeft) { - moveToSlide(curr_index + 1); - $curr_slide.velocity({translateX: -1 * $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); - } }); - } - else if (swipeRight) { - moveToSlide(curr_index - 1); - $curr_slide.velocity({translateX: $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); - } }); - } - swipeLeft = false; - swipeRight = false; - - // Restart interval - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - } - }); - - $this.on('sliderPause', function() { - clearInterval($interval); - }); - - $this.on('sliderStart', function() { - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - }); - - $this.on('sliderNext', function() { - $active_index = $slider.find('.active').index(); - moveToSlide($active_index + 1); - }); - - $this.on('sliderPrev', function() { - $active_index = $slider.find('.active').index(); - moveToSlide($active_index - 1); - }); - - }); - - - - }, - pause : function() { - $(this).trigger('sliderPause'); - }, - start : function() { - $(this).trigger('sliderStart'); - }, - next : function() { - $(this).trigger('sliderNext'); - }, - prev : function() { - $(this).trigger('sliderPrev'); - } - }; - - - $.fn.slider = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' ); - } - }; // Plugin end -}( jQuery )); -;(function ($) { - $(document).ready(function() { - - $(document).on('click.card', '.card', function (e) { - if ($(this).find('> .card-reveal').length) { - if ($(e.target).is($('.card-reveal .card-title')) || $(e.target).is($('.card-reveal .card-title i'))) { - // Make Reveal animate down and display none - $(this).find('.card-reveal').velocity( - {translateY: 0}, { - duration: 225, - queue: false, - easing: 'easeInOutQuad', - complete: function() { $(this).css({ display: 'none'}); } - } - ); - } - else if ($(e.target).is($('.card .activator')) || - $(e.target).is($('.card .activator i')) ) { - $(e.target).closest('.card').css('overflow', 'hidden'); - $(this).find('.card-reveal').css({ display: 'block'}).velocity("stop", false).velocity({translateY: '-100%'}, {duration: 300, queue: false, easing: 'easeInOutQuad'}); - } - } - }); - - }); -}( jQuery ));;(function ($) { - var chipsHandleEvents = false; - var materialChipsDefaults = { - data: [], - placeholder: '', - secondaryPlaceholder: '', - }; - - $(document).ready(function(){ - // Handle removal of static chips. - $(document).on('click', '.chip .close', function(e){ - var $chips = $(this).closest('.chips'); - if ($chips.data('initialized')) { - return; - } - $(this).closest('.chip').remove(); - }); - }); - - $.fn.material_chip = function (options) { - var self = this; - this.$el = $(this); - this.$document = $(document); - this.SELS = { - CHIPS: '.chips', - CHIP: '.chip', - INPUT: 'input', - DELETE: '.material-icons', - SELECTED_CHIP: '.selected', - }; - - if ('data' === options) { - return this.$el.data('chips'); - } - - if ('options' === options) { - return this.$el.data('options'); - } - - this.$el.data('options', $.extend({}, materialChipsDefaults, options)); - - // Initialize - this.init = function() { - var i = 0; - var chips; - self.$el.each(function(){ - var $chips = $(this); - if ($chips.data('initialized')) { - // Prevent double initialization. - return; - } - var options = $chips.data('options'); - if (!options.data || !options.data instanceof Array) { - options.data = []; - } - $chips.data('chips', options.data); - $chips.data('index', i); - $chips.data('initialized', true); - - if (!$chips.hasClass(self.SELS.CHIPS)) { - $chips.addClass('chips'); - } - - self.chips($chips); - i++; - }); - }; - - this.handleEvents = function(){ - var SELS = self.SELS; - - self.$document.on('click', SELS.CHIPS, function(e){ - $(e.target).find(SELS.INPUT).focus(); - }); - - self.$document.on('click', SELS.CHIP, function(e){ - $(SELS.CHIP).removeClass('selected'); - $(this).toggleClass('selected'); - }); - - self.$document.on('keydown', function(e){ - if ($(e.target).is('input, textarea')) { - return; - } - - // delete - var $chip = self.$document.find(SELS.CHIP + SELS.SELECTED_CHIP); - var $chips = $chip.closest(SELS.CHIPS); - var length = $chip.siblings(SELS.CHIP).length; - var index; - - if (!$chip.length) { - return; - } - - if (e.which === 8 || e.which === 46) { - e.preventDefault(); - var chipsIndex = $chips.data('index'); - - index = $chip.index(); - self.deleteChip(chipsIndex, index, $chips); - - var selectIndex = null; - if ((index + 1) < length) { - selectIndex = index; - } else if (index === length || (index + 1) === length) { - selectIndex = length - 1; - } - - if (selectIndex < 0) selectIndex = null; - - if (null !== selectIndex) { - self.selectChip(chipsIndex, selectIndex, $chips); - } - if (!length) $chips.find('input').focus(); - - // left - } else if (e.which === 37) { - index = $chip.index() - 1; - if (index < 0) { - return; - } - $(SELS.CHIP).removeClass('selected'); - self.selectChip($chips.data('index'), index, $chips); - - // right - } else if (e.which === 39) { - index = $chip.index() + 1; - $(SELS.CHIP).removeClass('selected'); - if (index > length) { - $chips.find('input').focus(); - return; - } - self.selectChip($chips.data('index'), index, $chips); - } - }); - - self.$document.on('focusin', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - $(e.target).closest(SELS.CHIPS).addClass('focus'); - $(SELS.CHIP).removeClass('selected'); - }); - - self.$document.on('focusout', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - $(e.target).closest(SELS.CHIPS).removeClass('focus'); - }); - - self.$document.on('keydown', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - var $target = $(e.target); - var $chips = $target.closest(SELS.CHIPS); - var chipsIndex = $chips.data('index'); - var chipsLength = $chips.children(SELS.CHIP).length; - - // enter - if (13 === e.which) { - e.preventDefault(); - self.addChip(chipsIndex, {tag: $target.val()}, $chips); - $target.val(''); - return; - } - - // delete or left - if ((8 === e.keyCode || 37 === e.keyCode) && '' === $target.val() && chipsLength) { - self.selectChip(chipsIndex, chipsLength - 1, $chips); - $target.blur(); - return; - } - }); - - self.$document.on('click', SELS.CHIPS + ' ' + SELS.DELETE, function(e) { - var $target = $(e.target); - var $chips = $target.closest(SELS.CHIPS); - var $chip = $target.closest(SELS.CHIP); - e.stopPropagation(); - self.deleteChip( - $chips.data('index'), - $chip.index(), - $chips - ); - $chips.find('input').focus(); - }); - }; - - this.chips = function($chips) { - var html = ''; - var options = $chips.data('options'); - $chips.data('chips').forEach(function(elem){ - html += self.renderChip(elem); - }); - html += ''; - $chips.html(html); - self.setPlaceholder($chips); - }; - - this.renderChip = function(elem) { - if (!elem.tag) return; - - var html = '
          ' + elem.tag; - if (elem.image) { - html += ' '; - } - html += 'close'; - html += '
          '; - return html; - }; - - this.setPlaceholder = function($chips) { - var options = $chips.data('options'); - if ($chips.data('chips').length && options.placeholder) { - $chips.find('input').prop('placeholder', options.placeholder); - } else if (!$chips.data('chips').length && options.secondaryPlaceholder) { - $chips.find('input').prop('placeholder', options.secondaryPlaceholder); - } - }; - - this.isValid = function($chips, elem) { - var chips = $chips.data('chips'); - var exists = false; - for (var i=0; i < chips.length; i++) { - if (chips[i].tag === elem.tag) { - exists = true; - return; - } - } - return '' !== elem.tag && !exists; - }; - - this.addChip = function(chipsIndex, elem, $chips) { - if (!self.isValid($chips, elem)) { - return; - } - var options = $chips.data('options'); - var chipHtml = self.renderChip(elem); - $chips.data('chips').push(elem); - $(chipHtml).insertBefore($chips.find('input')); - $chips.trigger('chip.add', elem); - self.setPlaceholder($chips); - }; - - this.deleteChip = function(chipsIndex, chipIndex, $chips) { - var chip = $chips.data('chips')[chipIndex]; - $chips.find('.chip').eq(chipIndex).remove(); - $chips.data('chips').splice(chipIndex, 1); - $chips.trigger('chip.delete', chip); - self.setPlaceholder($chips); - }; - - this.selectChip = function(chipsIndex, chipIndex, $chips) { - var $chip = $chips.find('.chip').eq(chipIndex); - if ($chip && false === $chip.hasClass('selected')) { - $chip.addClass('selected'); - $chips.trigger('chip.select', $chips.data('chips')[chipIndex]); - } - }; - - this.getChipsElement = function(index, $chips) { - return $chips.eq(index); - }; - - // init - this.init(); - - if (!chipsHandleEvents) { - this.handleEvents(); - chipsHandleEvents = true; - } - }; -}( jQuery ));;(function ($) { - $.fn.pushpin = function (options) { - // Defaults - var defaults = { - top: 0, - bottom: Infinity, - offset: 0 - }; - - // Remove pushpin event and classes - if (options === "remove") { - this.each(function () { - if (id = $(this).data('pushpin-id')) { - $(window).off('scroll.' + id); - $(this).removeData('pushpin-id').removeClass('pin-top pinned pin-bottom').removeAttr('style'); - } - }); - return false; - } - - options = $.extend(defaults, options); - - - $index = 0; - return this.each(function() { - var $uniqueId = Materialize.guid(), - $this = $(this), - $original_offset = $(this).offset().top; - - function removePinClasses(object) { - object.removeClass('pin-top'); - object.removeClass('pinned'); - object.removeClass('pin-bottom'); - } - - function updateElements(objects, scrolled) { - objects.each(function () { - // Add position fixed (because its between top and bottom) - if (options.top <= scrolled && options.bottom >= scrolled && !$(this).hasClass('pinned')) { - removePinClasses($(this)); - $(this).css('top', options.offset); - $(this).addClass('pinned'); - } - - // Add pin-top (when scrolled position is above top) - if (scrolled < options.top && !$(this).hasClass('pin-top')) { - removePinClasses($(this)); - $(this).css('top', 0); - $(this).addClass('pin-top'); - } - - // Add pin-bottom (when scrolled position is below bottom) - if (scrolled > options.bottom && !$(this).hasClass('pin-bottom')) { - removePinClasses($(this)); - $(this).addClass('pin-bottom'); - $(this).css('top', options.bottom - $original_offset); - } - }); - } - - $(this).data('pushpin-id', $uniqueId); - updateElements($this, $(window).scrollTop()); - $(window).on('scroll.' + $uniqueId, function () { - var $scrolled = $(window).scrollTop() + options.offset; - updateElements($this, $scrolled); - }); - - }); - - }; -}( jQuery ));;(function ($) { - $(document).ready(function() { - - // jQuery reverse - $.fn.reverse = [].reverse; - - // Hover behaviour: make sure this doesn't work on .click-to-toggle FABs! - $(document).on('mouseenter.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle)', function(e) { - var $this = $(this); - openFABMenu($this); - }); - $(document).on('mouseleave.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle)', function(e) { - var $this = $(this); - closeFABMenu($this); - }); - - // Toggle-on-click behaviour. - $(document).on('click.fixedActionBtn', '.fixed-action-btn.click-to-toggle > a', function(e) { - var $this = $(this); - var $menu = $this.parent(); - if ($menu.hasClass('active')) { - closeFABMenu($menu); - } else { - openFABMenu($menu); - } - }); - - }); - - $.fn.extend({ - openFAB: function() { - openFABMenu($(this)); - }, - closeFAB: function() { - closeFABMenu($(this)); - } - }); - - - var openFABMenu = function (btn) { - $this = btn; - if ($this.hasClass('active') === false) { - - // Get direction option - var horizontal = $this.hasClass('horizontal'); - var offsetY, offsetX; - - if (horizontal === true) { - offsetX = 40; - } else { - offsetY = 40; - } - - $this.addClass('active'); - $this.find('ul .btn-floating').velocity( - { scaleY: ".4", scaleX: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'}, - { duration: 0 }); - - var time = 0; - $this.find('ul .btn-floating').reverse().each( function () { - $(this).velocity( - { opacity: "1", scaleX: "1", scaleY: "1", translateY: "0", translateX: '0'}, - { duration: 80, delay: time }); - time += 40; - }); - } - }; - - var closeFABMenu = function (btn) { - $this = btn; - // Get direction option - var horizontal = $this.hasClass('horizontal'); - var offsetY, offsetX; - - if (horizontal === true) { - offsetX = 40; - } else { - offsetY = 40; - } - - $this.removeClass('active'); - var time = 0; - $this.find('ul .btn-floating').velocity("stop", true); - $this.find('ul .btn-floating').velocity( - { opacity: "0", scaleX: ".4", scaleY: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'}, - { duration: 80 } - ); - }; - - -}( jQuery )); -;(function ($) { - // Image transition function - Materialize.fadeInImage = function(selectorOrEl) { - var element; - if (typeof(selectorOrEl) === 'string') { - element = $(selectorOrEl); - } else if (typeof(selectorOrEl) === 'object') { - element = selectorOrEl; - } else { - return; - } - element.css({opacity: 0}); - $(element).velocity({opacity: 1}, { - duration: 650, - queue: false, - easing: 'easeOutSine' - }); - $(element).velocity({opacity: 1}, { - duration: 1300, - queue: false, - easing: 'swing', - step: function(now, fx) { - fx.start = 100; - var grayscale_setting = now/100; - var brightness_setting = 150 - (100 - now)/1.75; - - if (brightness_setting < 100) { - brightness_setting = 100; - } - if (now >= 0) { - $(this).css({ - "-webkit-filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)", - "filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)" - }); - } - } - }); - }; - - // Horizontal staggered list - Materialize.showStaggeredList = function(selectorOrEl) { - var element; - if (typeof(selectorOrEl) === 'string') { - element = $(selectorOrEl); - } else if (typeof(selectorOrEl) === 'object') { - element = selectorOrEl; - } else { - return; - } - var time = 0; - element.find('li').velocity( - { translateX: "-100px"}, - { duration: 0 }); - - element.find('li').each(function() { - $(this).velocity( - { opacity: "1", translateX: "0"}, - { duration: 800, delay: time, easing: [60, 10] }); - time += 120; - }); - }; - - - $(document).ready(function() { - // Hardcoded .staggered-list scrollFire - // var staggeredListOptions = []; - // $('ul.staggered-list').each(function (i) { - - // var label = 'scrollFire-' + i; - // $(this).addClass(label); - // staggeredListOptions.push( - // {selector: 'ul.staggered-list.' + label, - // offset: 200, - // callback: 'showStaggeredList("ul.staggered-list.' + label + '")'}); - // }); - // scrollFire(staggeredListOptions); - - // HammerJS, Swipe navigation - - // Touch Event - var swipeLeft = false; - var swipeRight = false; - - - // Dismissible Collections - $('.dismissable').each(function() { - $(this).hammer({ - prevent_default: false - }).bind('pan', function(e) { - if (e.gesture.pointerType === "touch") { - var $this = $(this); - var direction = e.gesture.direction; - var x = e.gesture.deltaX; - var velocityX = e.gesture.velocityX; - - $this.velocity({ translateX: x - }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - // Swipe Left - if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.75)) { - swipeLeft = true; - } - - // Swipe Right - if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.75)) { - swipeRight = true; - } - } - }).bind('panend', function(e) { - // Reset if collection is moved back into original position - if (Math.abs(e.gesture.deltaX) < ($(this).innerWidth() / 2)) { - swipeRight = false; - swipeLeft = false; - } - - if (e.gesture.pointerType === "touch") { - var $this = $(this); - if (swipeLeft || swipeRight) { - var fullWidth; - if (swipeLeft) { fullWidth = $this.innerWidth(); } - else { fullWidth = -1 * $this.innerWidth(); } - - $this.velocity({ translateX: fullWidth, - }, {duration: 100, queue: false, easing: 'easeOutQuad', complete: - function() { - $this.css('border', 'none'); - $this.velocity({ height: 0, padding: 0, - }, {duration: 200, queue: false, easing: 'easeOutQuad', complete: - function() { $this.remove(); } - }); - } - }); - } - else { - $this.velocity({ translateX: 0, - }, {duration: 100, queue: false, easing: 'easeOutQuad'}); - } - swipeLeft = false; - swipeRight = false; - } - }); - - }); - - - // time = 0 - // // Vertical Staggered list - // $('ul.staggered-list.vertical li').velocity( - // { translateY: "100px"}, - // { duration: 0 }); - - // $('ul.staggered-list.vertical li').each(function() { - // $(this).velocity( - // { opacity: "1", translateY: "0"}, - // { duration: 800, delay: time, easing: [60, 25] }); - // time += 120; - // }); - - // // Fade in and Scale - // $('.fade-in.scale').velocity( - // { scaleX: .4, scaleY: .4, translateX: -600}, - // { duration: 0}); - // $('.fade-in').each(function() { - // $(this).velocity( - // { opacity: "1", scaleX: 1, scaleY: 1, translateX: 0}, - // { duration: 800, easing: [60, 10] }); - // }); - }); -}( jQuery )); -;(function($) { - - // Input: Array of JSON objects {selector, offset, callback} - - Materialize.scrollFire = function(options) { - - var didScroll = false; - - window.addEventListener("scroll", function() { - didScroll = true; - }); - - // Rate limit to 100ms - setInterval(function() { - if(didScroll) { - didScroll = false; - - var windowScroll = window.pageYOffset + window.innerHeight; - - for (var i = 0 ; i < options.length; i++) { - // Get options from each line - var value = options[i]; - var selector = value.selector, - offset = value.offset, - callback = value.callback; - - var currentElement = document.querySelector(selector); - if ( currentElement !== null) { - var elementOffset = currentElement.getBoundingClientRect().top + window.pageYOffset; - - if (windowScroll > (elementOffset + offset)) { - if (value.done !== true) { - if (typeof(callback) === 'function') { - callback.call(this, currentElement); - } else if (typeof(callback) === 'string') { - var callbackFunc = new Function(callback); - callbackFunc(currentElement); - } - value.done = true; - } - } - } - } - } - }, 100); - }; - -})(jQuery); -;/*! - * pickadate.js v3.5.0, 2014/04/13 - * By Amsul, http://amsul.ca - * Hosted on http://amsul.github.io/pickadate.js - * Licensed under MIT - */ - -(function ( factory ) { - - // AMD. - if ( typeof define == 'function' && define.amd ) - define( 'picker', ['jquery'], factory ) - - // Node.js/browserify. - else if ( typeof exports == 'object' ) - module.exports = factory( require('jquery') ) - - // Browser globals. - else this.Picker = factory( jQuery ) - -}(function( $ ) { - -var $window = $( window ) -var $document = $( document ) -var $html = $( document.documentElement ) - - -/** - * The picker constructor that creates a blank picker. - */ -function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) { - - // If there’s no element, return the picker constructor. - if ( !ELEMENT ) return PickerConstructor - - - var - IS_DEFAULT_THEME = false, - - - // The state of the picker. - STATE = { - id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) ) - }, - - - // Merge the defaults and options passed. - SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {}, - - - // Merge the default classes with the settings classes. - CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ), - - - // The element node wrapper into a jQuery object. - $ELEMENT = $( ELEMENT ), - - - // Pseudo picker constructor. - PickerInstance = function() { - return this.start() - }, - - - // The picker prototype. - P = PickerInstance.prototype = { - - constructor: PickerInstance, - - $node: $ELEMENT, - - - /** - * Initialize everything - */ - start: function() { - - // If it’s already started, do nothing. - if ( STATE && STATE.start ) return P - - - // Update the picker states. - STATE.methods = {} - STATE.start = true - STATE.open = false - STATE.type = ELEMENT.type - - - // Confirm focus state, convert into text input to remove UA stylings, - // and set as readonly to prevent keyboard popup. - ELEMENT.autofocus = ELEMENT == getActiveElement() - ELEMENT.readOnly = !SETTINGS.editable - ELEMENT.id = ELEMENT.id || STATE.id - if ( ELEMENT.type != 'text' ) { - ELEMENT.type = 'text' - } - - - // Create a new picker component with the settings. - P.component = new COMPONENT(P, SETTINGS) - - - // Create the picker root with a holder and then prepare it. - P.$root = $( PickerConstructor._.node('div', createWrappedComponent(), CLASSES.picker, 'id="' + ELEMENT.id + '_root" tabindex="0"') ) - prepareElementRoot() - - - // If there’s a format for the hidden input element, create the element. - if ( SETTINGS.formatSubmit ) { - prepareElementHidden() - } - - - // Prepare the input element. - prepareElement() - - - // Insert the root as specified in the settings. - if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root ) - else $ELEMENT.after( P.$root ) - - - // Bind the default component and settings events. - P.on({ - start: P.component.onStart, - render: P.component.onRender, - stop: P.component.onStop, - open: P.component.onOpen, - close: P.component.onClose, - set: P.component.onSet - }).on({ - start: SETTINGS.onStart, - render: SETTINGS.onRender, - stop: SETTINGS.onStop, - open: SETTINGS.onOpen, - close: SETTINGS.onClose, - set: SETTINGS.onSet - }) - - - // Once we’re all set, check the theme in use. - IS_DEFAULT_THEME = isUsingDefaultTheme( P.$root.children()[ 0 ] ) - - - // If the element has autofocus, open the picker. - if ( ELEMENT.autofocus ) { - P.open() - } - - - // Trigger queued the “start” and “render” events. - return P.trigger( 'start' ).trigger( 'render' ) - }, //start - - - /** - * Render a new picker - */ - render: function( entireComponent ) { - - // Insert a new component holder in the root or box. - if ( entireComponent ) P.$root.html( createWrappedComponent() ) - else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) ) - - // Trigger the queued “render” events. - return P.trigger( 'render' ) - }, //render - - - /** - * Destroy everything - */ - stop: function() { - - // If it’s already stopped, do nothing. - if ( !STATE.start ) return P - - // Then close the picker. - P.close() - - // Remove the hidden field. - if ( P._hidden ) { - P._hidden.parentNode.removeChild( P._hidden ) - } - - // Remove the root. - P.$root.remove() - - // Remove the input class, remove the stored data, and unbind - // the events (after a tick for IE - see `P.close`). - $ELEMENT.removeClass( CLASSES.input ).removeData( NAME ) - setTimeout( function() { - $ELEMENT.off( '.' + STATE.id ) - }, 0) - - // Restore the element state - ELEMENT.type = STATE.type - ELEMENT.readOnly = false - - // Trigger the queued “stop” events. - P.trigger( 'stop' ) - - // Reset the picker states. - STATE.methods = {} - STATE.start = false - - return P - }, //stop - - - /** - * Open up the picker - */ - open: function( dontGiveFocus ) { - - // If it’s already open, do nothing. - if ( STATE.open ) return P - - // Add the “active” class. - $ELEMENT.addClass( CLASSES.active ) - aria( ELEMENT, 'expanded', true ) - - // * A Firefox bug, when `html` has `overflow:hidden`, results in - // killing transitions :(. So add the “opened” state on the next tick. - // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 - setTimeout( function() { - - // Add the “opened” class to the picker root. - P.$root.addClass( CLASSES.opened ) - aria( P.$root[0], 'hidden', false ) - - }, 0 ) - - // If we have to give focus, bind the element and doc events. - if ( dontGiveFocus !== false ) { - - // Set it as open. - STATE.open = true - - // Prevent the page from scrolling. - if ( IS_DEFAULT_THEME ) { - $html. - css( 'overflow', 'hidden' ). - css( 'padding-right', '+=' + getScrollbarWidth() ) - } - - // Pass focus to the root element’s jQuery object. - // * Workaround for iOS8 to bring the picker’s root into view. - P.$root.eq(0).focus() - - // Bind the document events. - $document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) { - - var target = event.target - - // If the target of the event is not the element, close the picker picker. - // * Don’t worry about clicks or focusins on the root because those don’t bubble up. - // Also, for Firefox, a click on an `option` element bubbles up directly - // to the doc. So make sure the target wasn't the doc. - // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling, - // which causes the picker to unexpectedly close when right-clicking it. So make - // sure the event wasn’t a right-click. - if ( target != ELEMENT && target != document && event.which != 3 ) { - - // If the target was the holder that covers the screen, - // keep the element focused to maintain tabindex. - P.close( target === P.$root.children()[0] ) - } - - }).on( 'keydown.' + STATE.id, function( event ) { - - var - // Get the keycode. - keycode = event.keyCode, - - // Translate that to a selection change. - keycodeToMove = P.component.key[ keycode ], - - // Grab the target. - target = event.target - - - // On escape, close the picker and give focus. - if ( keycode == 27 ) { - P.close( true ) - } - - - // Check if there is a key movement or “enter” keypress on the element. - else if ( target == P.$root[0] && ( keycodeToMove || keycode == 13 ) ) { - - // Prevent the default action to stop page movement. - event.preventDefault() - - // Trigger the key movement action. - if ( keycodeToMove ) { - PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] ) - } - - // On “enter”, if the highlighted item isn’t disabled, set the value and close. - else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) { - P.set( 'select', P.component.item.highlight ).close() - } - } - - - // If the target is within the root and “enter” is pressed, - // prevent the default action and trigger a click on the target instead. - else if ( $.contains( P.$root[0], target ) && keycode == 13 ) { - event.preventDefault() - target.click() - } - }) - } - - // Trigger the queued “open” events. - return P.trigger( 'open' ) - }, //open - - - /** - * Close the picker - */ - close: function( giveFocus ) { - - // If we need to give focus, do it before changing states. - if ( giveFocus ) { - // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :| - // The focus is triggered *after* the close has completed - causing it - // to open again. So unbind and rebind the event at the next tick. - P.$root.off( 'focus.toOpen' ).eq(0).focus() - setTimeout( function() { - P.$root.on( 'focus.toOpen', handleFocusToOpenEvent ) - }, 0 ) - } - - // Remove the “active” class. - $ELEMENT.removeClass( CLASSES.active ) - aria( ELEMENT, 'expanded', false ) - - // * A Firefox bug, when `html` has `overflow:hidden`, results in - // killing transitions :(. So remove the “opened” state on the next tick. - // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 - setTimeout( function() { - - // Remove the “opened” and “focused” class from the picker root. - P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused ) - aria( P.$root[0], 'hidden', true ) - - }, 0 ) - - // If it’s already closed, do nothing more. - if ( !STATE.open ) return P - - // Set it as closed. - STATE.open = false - - // Allow the page to scroll. - if ( IS_DEFAULT_THEME ) { - $html. - css( 'overflow', '' ). - css( 'padding-right', '-=' + getScrollbarWidth() ) - } - - // Unbind the document events. - $document.off( '.' + STATE.id ) - - // Trigger the queued “close” events. - return P.trigger( 'close' ) - }, //close - - - /** - * Clear the values - */ - clear: function( options ) { - return P.set( 'clear', null, options ) - }, //clear - - - /** - * Set something - */ - set: function( thing, value, options ) { - - var thingItem, thingValue, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} - - // Make sure we have usable options. - options = thingIsObject && $.isPlainObject( value ) ? value : options || {} - - if ( thing ) { - - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = value - } - - // Go through the things of items to set. - for ( thingItem in thingObject ) { - - // Grab the value of the thing. - thingValue = thingObject[ thingItem ] - - // First, if the item exists and there’s a value, set it. - if ( thingItem in P.component.item ) { - if ( thingValue === undefined ) thingValue = null - P.component.set( thingItem, thingValue, options ) - } - - // Then, check to update the element value and broadcast a change. - if ( thingItem == 'select' || thingItem == 'clear' ) { - $ELEMENT. - val( thingItem == 'clear' ? '' : P.get( thingItem, SETTINGS.format ) ). - trigger( 'change' ) - } - } - - // Render a new picker. - P.render() - } - - // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`. - return options.muted ? P : P.trigger( 'set', thingObject ) - }, //set - - - /** - * Get something - */ - get: function( thing, format ) { - - // Make sure there’s something to get. - thing = thing || 'value' - - // If a picker state exists, return that. - if ( STATE[ thing ] != null ) { - return STATE[ thing ] - } - - // Return the submission value, if that. - if ( thing == 'valueSubmit' ) { - if ( P._hidden ) { - return P._hidden.value - } - thing = 'value' - } - - // Return the value, if that. - if ( thing == 'value' ) { - return ELEMENT.value - } - - // Check if a component item exists, return that. - if ( thing in P.component.item ) { - if ( typeof format == 'string' ) { - var thingValue = P.component.get( thing ) - return thingValue ? - PickerConstructor._.trigger( - P.component.formats.toString, - P.component, - [ format, thingValue ] - ) : '' - } - return P.component.get( thing ) - } - }, //get - - - - /** - * Bind events on the things. - */ - on: function( thing, method, internal ) { - - var thingName, thingMethod, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} - - if ( thing ) { - - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = method - } - - // Go through the things to bind to. - for ( thingName in thingObject ) { - - // Grab the method of the thing. - thingMethod = thingObject[ thingName ] - - // If it was an internal binding, prefix it. - if ( internal ) { - thingName = '_' + thingName - } - - // Make sure the thing methods collection exists. - STATE.methods[ thingName ] = STATE.methods[ thingName ] || [] - - // Add the method to the relative method collection. - STATE.methods[ thingName ].push( thingMethod ) - } - } - - return P - }, //on - - - - /** - * Unbind events on the things. - */ - off: function() { - var i, thingName, - names = arguments; - for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) { - thingName = names[i] - if ( thingName in STATE.methods ) { - delete STATE.methods[thingName] - } - } - return P - }, - - - /** - * Fire off method events. - */ - trigger: function( name, data ) { - var _trigger = function( name ) { - var methodList = STATE.methods[ name ] - if ( methodList ) { - methodList.map( function( method ) { - PickerConstructor._.trigger( method, P, [ data ] ) - }) - } - } - _trigger( '_' + name ) - _trigger( name ) - return P - } //trigger - } //PickerInstance.prototype - - - /** - * Wrap the picker holder components together. - */ - function createWrappedComponent() { - - // Create a picker wrapper holder - return PickerConstructor._.node( 'div', - - // Create a picker wrapper node - PickerConstructor._.node( 'div', - - // Create a picker frame - PickerConstructor._.node( 'div', - - // Create a picker box node - PickerConstructor._.node( 'div', - - // Create the components nodes. - P.component.nodes( STATE.open ), - - // The picker box class - CLASSES.box - ), - - // Picker wrap class - CLASSES.wrap - ), - - // Picker frame class - CLASSES.frame - ), - - // Picker holder class - CLASSES.holder - ) //endreturn - } //createWrappedComponent - - - - /** - * Prepare the input element with all bindings. - */ - function prepareElement() { - - $ELEMENT. - - // Store the picker data by component name. - data(NAME, P). - - // Add the “input” class name. - addClass(CLASSES.input). - - // Remove the tabindex. - attr('tabindex', -1). - - // If there’s a `data-value`, update the value of the element. - val( $ELEMENT.data('value') ? - P.get('select', SETTINGS.format) : - ELEMENT.value - ) - - - // Only bind keydown events if the element isn’t editable. - if ( !SETTINGS.editable ) { - - $ELEMENT. - - // On focus/click, focus onto the root to open it up. - on( 'focus.' + STATE.id + ' click.' + STATE.id, function( event ) { - event.preventDefault() - P.$root.eq(0).focus() - }). - - // Handle keyboard event based on the picker being opened or not. - on( 'keydown.' + STATE.id, handleKeydownEvent ) - } - - - // Update the aria attributes. - aria(ELEMENT, { - haspopup: true, - expanded: false, - readonly: false, - owns: ELEMENT.id + '_root' - }) - } - - - /** - * Prepare the root picker element with all bindings. - */ - function prepareElementRoot() { - - P.$root. - - on({ - - // For iOS8. - keydown: handleKeydownEvent, - - // When something within the root is focused, stop from bubbling - // to the doc and remove the “focused” state from the root. - focusin: function( event ) { - P.$root.removeClass( CLASSES.focused ) - event.stopPropagation() - }, - - // When something within the root holder is clicked, stop it - // from bubbling to the doc. - 'mousedown click': function( event ) { - - var target = event.target - - // Make sure the target isn’t the root holder so it can bubble up. - if ( target != P.$root.children()[ 0 ] ) { - - event.stopPropagation() - - // * For mousedown events, cancel the default action in order to - // prevent cases where focus is shifted onto external elements - // when using things like jQuery mobile or MagnificPopup (ref: #249 & #120). - // Also, for Firefox, don’t prevent action on the `option` element. - if ( event.type == 'mousedown' && !$( target ).is( 'input, select, textarea, button, option' )) { - - event.preventDefault() - - // Re-focus onto the root so that users can click away - // from elements focused within the picker. - P.$root.eq(0).focus() - } - } - } - }). - - // Add/remove the “target” class on focus and blur. - on({ - focus: function() { - $ELEMENT.addClass( CLASSES.target ) - }, - blur: function() { - $ELEMENT.removeClass( CLASSES.target ) - } - }). - - // Open the picker and adjust the root “focused” state - on( 'focus.toOpen', handleFocusToOpenEvent ). - - // If there’s a click on an actionable element, carry out the actions. - on( 'click', '[data-pick], [data-nav], [data-clear], [data-close]', function() { - - var $target = $( this ), - targetData = $target.data(), - targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ), - - // * For IE, non-focusable elements can be active elements as well - // (http://stackoverflow.com/a/2684561). - activeElement = getActiveElement() - activeElement = activeElement && ( activeElement.type || activeElement.href ) - - // If it’s disabled or nothing inside is actively focused, re-focus the element. - if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) { - P.$root.eq(0).focus() - } - - // If something is superficially changed, update the `highlight` based on the `nav`. - if ( !targetDisabled && targetData.nav ) { - P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } ) - } - - // If something is picked, set `select` then close with focus. - else if ( !targetDisabled && 'pick' in targetData ) { - P.set( 'select', targetData.pick ) - } - - // If a “clear” button is pressed, empty the values and close with focus. - else if ( targetData.clear ) { - P.clear().close( true ) - } - - else if ( targetData.close ) { - P.close( true ) - } - - }) //P.$root - - aria( P.$root[0], 'hidden', true ) - } - - - /** - * Prepare the hidden input element along with all bindings. - */ - function prepareElementHidden() { - - var name - - if ( SETTINGS.hiddenName === true ) { - name = ELEMENT.name - ELEMENT.name = '' - } - else { - name = [ - typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '', - typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit' - ] - name = name[0] + ELEMENT.name + name[1] - } - - P._hidden = $( - '' - )[0] - - $ELEMENT. - - // If the value changes, update the hidden input with the correct format. - on('change.' + STATE.id, function() { - P._hidden.value = ELEMENT.value ? - P.get('select', SETTINGS.formatSubmit) : - '' - }) - - - // Insert the hidden input as specified in the settings. - if ( SETTINGS.container ) $( SETTINGS.container ).append( P._hidden ) - else $ELEMENT.after( P._hidden ) - } - - - // For iOS8. - function handleKeydownEvent( event ) { - - var keycode = event.keyCode, - - // Check if one of the delete keys was pressed. - isKeycodeDelete = /^(8|46)$/.test(keycode) - - // For some reason IE clears the input value on “escape”. - if ( keycode == 27 ) { - P.close() - return false - } - - // Check if `space` or `delete` was pressed or the picker is closed with a key movement. - if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) { - - // Prevent it from moving the page and bubbling to doc. - event.preventDefault() - event.stopPropagation() - - // If `delete` was pressed, clear the values and close the picker. - // Otherwise open the picker. - if ( isKeycodeDelete ) { P.clear().close() } - else { P.open() } - } - } - - - // Separated for IE - function handleFocusToOpenEvent( event ) { - - // Stop the event from propagating to the doc. - event.stopPropagation() - - // If it’s a focus event, add the “focused” class to the root. - if ( event.type == 'focus' ) { - P.$root.addClass( CLASSES.focused ) - } - - // And then finally open the picker. - P.open() - } - - - // Return a new picker instance. - return new PickerInstance() -} //PickerConstructor - - - -/** - * The default classes and prefix to use for the HTML classes. - */ -PickerConstructor.klasses = function( prefix ) { - prefix = prefix || 'picker' - return { - - picker: prefix, - opened: prefix + '--opened', - focused: prefix + '--focused', - - input: prefix + '__input', - active: prefix + '__input--active', - target: prefix + '__input--target', - - holder: prefix + '__holder', - - frame: prefix + '__frame', - wrap: prefix + '__wrap', - - box: prefix + '__box' - } -} //PickerConstructor.klasses - - - -/** - * Check if the default theme is being used. - */ -function isUsingDefaultTheme( element ) { - - var theme, - prop = 'position' - - // For IE. - if ( element.currentStyle ) { - theme = element.currentStyle[prop] - } - - // For normal browsers. - else if ( window.getComputedStyle ) { - theme = getComputedStyle( element )[prop] - } - - return theme == 'fixed' -} - - - -/** - * Get the width of the browser’s scrollbar. - * Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js - */ -function getScrollbarWidth() { - - if ( $html.height() <= $window.height() ) { - return 0 - } - - var $outer = $( '
          ' ). - appendTo( 'body' ) - - // Get the width without scrollbars. - var widthWithoutScroll = $outer[0].offsetWidth - - // Force adding scrollbars. - $outer.css( 'overflow', 'scroll' ) - - // Add the inner div. - var $inner = $( '
          ' ).appendTo( $outer ) - - // Get the width with scrollbars. - var widthWithScroll = $inner[0].offsetWidth - - // Remove the divs. - $outer.remove() - - // Return the difference between the widths. - return widthWithoutScroll - widthWithScroll -} - - - -/** - * PickerConstructor helper methods. - */ -PickerConstructor._ = { - - /** - * Create a group of nodes. Expects: - * ` - { - min: {Integer}, - max: {Integer}, - i: {Integer}, - node: {String}, - item: {Function} - } - * ` - */ - group: function( groupObject ) { - - var - // Scope for the looped object - loopObjectScope, - - // Create the nodes list - nodesList = '', - - // The counter starts from the `min` - counter = PickerConstructor._.trigger( groupObject.min, groupObject ) - - - // Loop from the `min` to `max`, incrementing by `i` - for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) { - - // Trigger the `item` function within scope of the object - loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] ) - - // Splice the subgroup and create nodes out of the sub nodes - nodesList += PickerConstructor._.node( - groupObject.node, - loopObjectScope[ 0 ], // the node - loopObjectScope[ 1 ], // the classes - loopObjectScope[ 2 ] // the attributes - ) - } - - // Return the list of nodes - return nodesList - }, //group - - - /** - * Create a dom node string - */ - node: function( wrapper, item, klass, attribute ) { - - // If the item is false-y, just return an empty string - if ( !item ) return '' - - // If the item is an array, do a join - item = $.isArray( item ) ? item.join( '' ) : item - - // Check for the class - klass = klass ? ' class="' + klass + '"' : '' - - // Check for any attributes - attribute = attribute ? ' ' + attribute : '' - - // Return the wrapped item - return '<' + wrapper + klass + attribute + '>' + item + '' - }, //node - - - /** - * Lead numbers below 10 with a zero. - */ - lead: function( number ) { - return ( number < 10 ? '0': '' ) + number - }, - - - /** - * Trigger a function otherwise return the value. - */ - trigger: function( callback, scope, args ) { - return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback - }, - - - /** - * If the second character is a digit, length is 2 otherwise 1. - */ - digits: function( string ) { - return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1 - }, - - - /** - * Tell if something is a date object. - */ - isDate: function( value ) { - return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() ) - }, - - - /** - * Tell if something is an integer. - */ - isInteger: function( value ) { - return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0 - }, - - - /** - * Create ARIA attribute strings. - */ - ariaAttr: ariaAttr -} //PickerConstructor._ - - - -/** - * Extend the picker with a component and defaults. - */ -PickerConstructor.extend = function( name, Component ) { - - // Extend jQuery. - $.fn[ name ] = function( options, action ) { - - // Grab the component data. - var componentData = this.data( name ) - - // If the picker is requested, return the data object. - if ( options == 'picker' ) { - return componentData - } - - // If the component data exists and `options` is a string, carry out the action. - if ( componentData && typeof options == 'string' ) { - return PickerConstructor._.trigger( componentData[ options ], componentData, [ action ] ) - } - - // Otherwise go through each matched element and if the component - // doesn’t exist, create a new picker using `this` element - // and merging the defaults and options with a deep copy. - return this.each( function() { - var $this = $( this ) - if ( !$this.data( name ) ) { - new PickerConstructor( this, name, Component, options ) - } - }) - } - - // Set the defaults. - $.fn[ name ].defaults = Component.defaults -} //PickerConstructor.extend - - - -function aria(element, attribute, value) { - if ( $.isPlainObject(attribute) ) { - for ( var key in attribute ) { - ariaSet(element, key, attribute[key]) - } - } - else { - ariaSet(element, attribute, value) - } -} -function ariaSet(element, attribute, value) { - element.setAttribute( - (attribute == 'role' ? '' : 'aria-') + attribute, - value - ) -} -function ariaAttr(attribute, data) { - if ( !$.isPlainObject(attribute) ) { - attribute = { attribute: data } - } - data = '' - for ( var key in attribute ) { - var attr = (key == 'role' ? '' : 'aria-') + key, - attrVal = attribute[key] - data += attrVal == null ? '' : attr + '="' + attribute[key] + '"' - } - return data -} - -// IE8 bug throws an error for activeElements within iframes. -function getActiveElement() { - try { - return document.activeElement - } catch ( err ) { } -} - - - -// Expose the picker constructor. -return PickerConstructor - - -})); - - -;/*! - * Date picker for pickadate.js v3.5.0 - * http://amsul.github.io/pickadate.js/date.htm - */ - -(function ( factory ) { - - // AMD. - if ( typeof define == 'function' && define.amd ) - define( ['picker', 'jquery'], factory ) - - // Node.js/browserify. - else if ( typeof exports == 'object' ) - module.exports = factory( require('./picker.js'), require('jquery') ) - - // Browser globals. - else factory( Picker, jQuery ) - -}(function( Picker, $ ) { - - -/** - * Globals and constants - */ -var DAYS_IN_WEEK = 7, - WEEKS_IN_CALENDAR = 6, - _ = Picker._ - - - -/** - * The date picker constructor - */ -function DatePicker( picker, settings ) { - - var calendar = this, - element = picker.$node[ 0 ], - elementValue = element.value, - elementDataValue = picker.$node.data( 'value' ), - valueString = elementDataValue || elementValue, - formatString = elementDataValue ? settings.formatSubmit : settings.format, - isRTL = function() { - - return element.currentStyle ? - - // For IE. - element.currentStyle.direction == 'rtl' : - - // For normal browsers. - getComputedStyle( picker.$root[0] ).direction == 'rtl' - } - - calendar.settings = settings - calendar.$node = picker.$node - - // The queue of methods that will be used to build item objects. - calendar.queue = { - min: 'measure create', - max: 'measure create', - now: 'now create', - select: 'parse create validate', - highlight: 'parse navigate create validate', - view: 'parse create validate viewset', - disable: 'deactivate', - enable: 'activate' - } - - // The component's item object. - calendar.item = {} - - calendar.item.clear = null - calendar.item.disable = ( settings.disable || [] ).slice( 0 ) - calendar.item.enable = -(function( collectionDisabled ) { - return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1 - })( calendar.item.disable ) - - calendar. - set( 'min', settings.min ). - set( 'max', settings.max ). - set( 'now' ) - - // When there’s a value, set the `select`, which in turn - // also sets the `highlight` and `view`. - if ( valueString ) { - calendar.set( 'select', valueString, { format: formatString }) - } - - // If there’s no value, default to highlighting “today”. - else { - calendar. - set( 'select', null ). - set( 'highlight', calendar.item.now ) - } - - - // The keycode to movement mapping. - calendar.key = { - 40: 7, // Down - 38: -7, // Up - 39: function() { return isRTL() ? -1 : 1 }, // Right - 37: function() { return isRTL() ? 1 : -1 }, // Left - go: function( timeChange ) { - var highlightedObject = calendar.item.highlight, - targetDate = new Date( highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange ) - calendar.set( - 'highlight', - targetDate, - { interval: timeChange } - ) - this.render() - } - } - - - // Bind some picker events. - picker. - on( 'render', function() { - picker.$root.find( '.' + settings.klass.selectMonth ).on( 'change', function() { - var value = this.value - if ( value ) { - picker.set( 'highlight', [ picker.get( 'view' ).year, value, picker.get( 'highlight' ).date ] ) - picker.$root.find( '.' + settings.klass.selectMonth ).trigger( 'focus' ) - } - }) - picker.$root.find( '.' + settings.klass.selectYear ).on( 'change', function() { - var value = this.value - if ( value ) { - picker.set( 'highlight', [ value, picker.get( 'view' ).month, picker.get( 'highlight' ).date ] ) - picker.$root.find( '.' + settings.klass.selectYear ).trigger( 'focus' ) - } - }) - }, 1 ). - on( 'open', function() { - var includeToday = '' - if ( calendar.disabled( calendar.get('now') ) ) { - includeToday = ':not(.' + settings.klass.buttonToday + ')' - } - picker.$root.find( 'button' + includeToday + ', select' ).attr( 'disabled', false ) - }, 1 ). - on( 'close', function() { - picker.$root.find( 'button, select' ).attr( 'disabled', true ) - }, 1 ) - -} //DatePicker - - -/** - * Set a datepicker item object. - */ -DatePicker.prototype.set = function( type, value, options ) { - - var calendar = this, - calendarItem = calendar.item - - // If the value is `null` just set it immediately. - if ( value === null ) { - if ( type == 'clear' ) type = 'select' - calendarItem[ type ] = value - return calendar - } - - // Otherwise go through the queue of methods, and invoke the functions. - // Update this as the time unit, and set the final value as this item. - // * In the case of `enable`, keep the queue but set `disable` instead. - // And in the case of `flip`, keep the queue but set `enable` instead. - calendarItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = calendar.queue[ type ].split( ' ' ).map( function( method ) { - value = calendar[ method ]( type, value, options ) - return value - }).pop() - - // Check if we need to cascade through more updates. - if ( type == 'select' ) { - calendar.set( 'highlight', calendarItem.select, options ) - } - else if ( type == 'highlight' ) { - calendar.set( 'view', calendarItem.highlight, options ) - } - else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) { - if ( calendarItem.select && calendar.disabled( calendarItem.select ) ) { - calendar.set( 'select', calendarItem.select, options ) - } - if ( calendarItem.highlight && calendar.disabled( calendarItem.highlight ) ) { - calendar.set( 'highlight', calendarItem.highlight, options ) - } - } - - return calendar -} //DatePicker.prototype.set - - -/** - * Get a datepicker item object. - */ -DatePicker.prototype.get = function( type ) { - return this.item[ type ] -} //DatePicker.prototype.get - - -/** - * Create a picker date object. - */ -DatePicker.prototype.create = function( type, value, options ) { - - var isInfiniteValue, - calendar = this - - // If there’s no value, use the type as the value. - value = value === undefined ? type : value - - - // If it’s infinity, update the value. - if ( value == -Infinity || value == Infinity ) { - isInfiniteValue = value - } - - // If it’s an object, use the native date object. - else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) { - value = value.obj - } - - // If it’s an array, convert it into a date and make sure - // that it’s a valid date – otherwise default to today. - else if ( $.isArray( value ) ) { - value = new Date( value[ 0 ], value[ 1 ], value[ 2 ] ) - value = _.isDate( value ) ? value : calendar.create().obj - } - - // If it’s a number or date object, make a normalized date. - else if ( _.isInteger( value ) || _.isDate( value ) ) { - value = calendar.normalize( new Date( value ), options ) - } - - // If it’s a literal true or any other case, set it to now. - else /*if ( value === true )*/ { - value = calendar.now( type, value, options ) - } - - // Return the compiled object. - return { - year: isInfiniteValue || value.getFullYear(), - month: isInfiniteValue || value.getMonth(), - date: isInfiniteValue || value.getDate(), - day: isInfiniteValue || value.getDay(), - obj: isInfiniteValue || value, - pick: isInfiniteValue || value.getTime() - } -} //DatePicker.prototype.create - - -/** - * Create a range limit object using an array, date object, - * literal “true”, or integer relative to another time. - */ -DatePicker.prototype.createRange = function( from, to ) { - - var calendar = this, - createDate = function( date ) { - if ( date === true || $.isArray( date ) || _.isDate( date ) ) { - return calendar.create( date ) - } - return date - } - - // Create objects if possible. - if ( !_.isInteger( from ) ) { - from = createDate( from ) - } - if ( !_.isInteger( to ) ) { - to = createDate( to ) - } - - // Create relative dates. - if ( _.isInteger( from ) && $.isPlainObject( to ) ) { - from = [ to.year, to.month, to.date + from ]; - } - else if ( _.isInteger( to ) && $.isPlainObject( from ) ) { - to = [ from.year, from.month, from.date + to ]; - } - - return { - from: createDate( from ), - to: createDate( to ) - } -} //DatePicker.prototype.createRange - - -/** - * Check if a date unit falls within a date range object. - */ -DatePicker.prototype.withinRange = function( range, dateUnit ) { - range = this.createRange(range.from, range.to) - return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick -} - - -/** - * Check if two date range objects overlap. - */ -DatePicker.prototype.overlapRanges = function( one, two ) { - - var calendar = this - - // Convert the ranges into comparable dates. - one = calendar.createRange( one.from, one.to ) - two = calendar.createRange( two.from, two.to ) - - return calendar.withinRange( one, two.from ) || calendar.withinRange( one, two.to ) || - calendar.withinRange( two, one.from ) || calendar.withinRange( two, one.to ) -} - - -/** - * Get the date today. - */ -DatePicker.prototype.now = function( type, value, options ) { - value = new Date() - if ( options && options.rel ) { - value.setDate( value.getDate() + options.rel ) - } - return this.normalize( value, options ) -} - - -/** - * Navigate to next/prev month. - */ -DatePicker.prototype.navigate = function( type, value, options ) { - - var targetDateObject, - targetYear, - targetMonth, - targetDate, - isTargetArray = $.isArray( value ), - isTargetObject = $.isPlainObject( value ), - viewsetObject = this.item.view/*, - safety = 100*/ - - - if ( isTargetArray || isTargetObject ) { - - if ( isTargetObject ) { - targetYear = value.year - targetMonth = value.month - targetDate = value.date - } - else { - targetYear = +value[0] - targetMonth = +value[1] - targetDate = +value[2] - } - - // If we’re navigating months but the view is in a different - // month, navigate to the view’s year and month. - if ( options && options.nav && viewsetObject && viewsetObject.month !== targetMonth ) { - targetYear = viewsetObject.year - targetMonth = viewsetObject.month - } - - // Figure out the expected target year and month. - targetDateObject = new Date( targetYear, targetMonth + ( options && options.nav ? options.nav : 0 ), 1 ) - targetYear = targetDateObject.getFullYear() - targetMonth = targetDateObject.getMonth() - - // If the month we’re going to doesn’t have enough days, - // keep decreasing the date until we reach the month’s last date. - while ( /*safety &&*/ new Date( targetYear, targetMonth, targetDate ).getMonth() !== targetMonth ) { - targetDate -= 1 - /*safety -= 1 - if ( !safety ) { - throw 'Fell into an infinite loop while navigating to ' + new Date( targetYear, targetMonth, targetDate ) + '.' - }*/ - } - - value = [ targetYear, targetMonth, targetDate ] - } - - return value -} //DatePicker.prototype.navigate - - -/** - * Normalize a date by setting the hours to midnight. - */ -DatePicker.prototype.normalize = function( value/*, options*/ ) { - value.setHours( 0, 0, 0, 0 ) - return value -} - - -/** - * Measure the range of dates. - */ -DatePicker.prototype.measure = function( type, value/*, options*/ ) { - - var calendar = this - - // If it’s anything false-y, remove the limits. - if ( !value ) { - value = type == 'min' ? -Infinity : Infinity - } - - // If it’s a string, parse it. - else if ( typeof value == 'string' ) { - value = calendar.parse( type, value ) - } - - // If it's an integer, get a date relative to today. - else if ( _.isInteger( value ) ) { - value = calendar.now( type, value, { rel: value } ) - } - - return value -} ///DatePicker.prototype.measure - - -/** - * Create a viewset object based on navigation. - */ -DatePicker.prototype.viewset = function( type, dateObject/*, options*/ ) { - return this.create([ dateObject.year, dateObject.month, 1 ]) -} - - -/** - * Validate a date as enabled and shift if needed. - */ -DatePicker.prototype.validate = function( type, dateObject, options ) { - - var calendar = this, - - // Keep a reference to the original date. - originalDateObject = dateObject, - - // Make sure we have an interval. - interval = options && options.interval ? options.interval : 1, - - // Check if the calendar enabled dates are inverted. - isFlippedBase = calendar.item.enable === -1, - - // Check if we have any enabled dates after/before now. - hasEnabledBeforeTarget, hasEnabledAfterTarget, - - // The min & max limits. - minLimitObject = calendar.item.min, - maxLimitObject = calendar.item.max, - - // Check if we’ve reached the limit during shifting. - reachedMin, reachedMax, - - // Check if the calendar is inverted and at least one weekday is enabled. - hasEnabledWeekdays = isFlippedBase && calendar.item.disable.filter( function( value ) { - - // If there’s a date, check where it is relative to the target. - if ( $.isArray( value ) ) { - var dateTime = calendar.create( value ).pick - if ( dateTime < dateObject.pick ) hasEnabledBeforeTarget = true - else if ( dateTime > dateObject.pick ) hasEnabledAfterTarget = true - } - - // Return only integers for enabled weekdays. - return _.isInteger( value ) - }).length/*, - - safety = 100*/ - - - - // Cases to validate for: - // [1] Not inverted and date disabled. - // [2] Inverted and some dates enabled. - // [3] Not inverted and out of range. - // - // Cases to **not** validate for: - // • Navigating months. - // • Not inverted and date enabled. - // • Inverted and all dates disabled. - // • ..and anything else. - if ( !options || !options.nav ) if ( - /* 1 */ ( !isFlippedBase && calendar.disabled( dateObject ) ) || - /* 2 */ ( isFlippedBase && calendar.disabled( dateObject ) && ( hasEnabledWeekdays || hasEnabledBeforeTarget || hasEnabledAfterTarget ) ) || - /* 3 */ ( !isFlippedBase && (dateObject.pick <= minLimitObject.pick || dateObject.pick >= maxLimitObject.pick) ) - ) { - - - // When inverted, flip the direction if there aren’t any enabled weekdays - // and there are no enabled dates in the direction of the interval. - if ( isFlippedBase && !hasEnabledWeekdays && ( ( !hasEnabledAfterTarget && interval > 0 ) || ( !hasEnabledBeforeTarget && interval < 0 ) ) ) { - interval *= -1 - } - - - // Keep looping until we reach an enabled date. - while ( /*safety &&*/ calendar.disabled( dateObject ) ) { - - /*safety -= 1 - if ( !safety ) { - throw 'Fell into an infinite loop while validating ' + dateObject.obj + '.' - }*/ - - - // If we’ve looped into the next/prev month with a large interval, return to the original date and flatten the interval. - if ( Math.abs( interval ) > 1 && ( dateObject.month < originalDateObject.month || dateObject.month > originalDateObject.month ) ) { - dateObject = originalDateObject - interval = interval > 0 ? 1 : -1 - } - - - // If we’ve reached the min/max limit, reverse the direction, flatten the interval and set it to the limit. - if ( dateObject.pick <= minLimitObject.pick ) { - reachedMin = true - interval = 1 - dateObject = calendar.create([ - minLimitObject.year, - minLimitObject.month, - minLimitObject.date + (dateObject.pick === minLimitObject.pick ? 0 : -1) - ]) - } - else if ( dateObject.pick >= maxLimitObject.pick ) { - reachedMax = true - interval = -1 - dateObject = calendar.create([ - maxLimitObject.year, - maxLimitObject.month, - maxLimitObject.date + (dateObject.pick === maxLimitObject.pick ? 0 : 1) - ]) - } - - - // If we’ve reached both limits, just break out of the loop. - if ( reachedMin && reachedMax ) { - break - } - - - // Finally, create the shifted date using the interval and keep looping. - dateObject = calendar.create([ dateObject.year, dateObject.month, dateObject.date + interval ]) - } - - } //endif - - - // Return the date object settled on. - return dateObject -} //DatePicker.prototype.validate - - -/** - * Check if a date is disabled. - */ -DatePicker.prototype.disabled = function( dateToVerify ) { - - var - calendar = this, - - // Filter through the disabled dates to check if this is one. - isDisabledMatch = calendar.item.disable.filter( function( dateToDisable ) { - - // If the date is a number, match the weekday with 0index and `firstDay` check. - if ( _.isInteger( dateToDisable ) ) { - return dateToVerify.day === ( calendar.settings.firstDay ? dateToDisable : dateToDisable - 1 ) % 7 - } - - // If it’s an array or a native JS date, create and match the exact date. - if ( $.isArray( dateToDisable ) || _.isDate( dateToDisable ) ) { - return dateToVerify.pick === calendar.create( dateToDisable ).pick - } - - // If it’s an object, match a date within the “from” and “to” range. - if ( $.isPlainObject( dateToDisable ) ) { - return calendar.withinRange( dateToDisable, dateToVerify ) - } - }) - - // If this date matches a disabled date, confirm it’s not inverted. - isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function( dateToDisable ) { - return $.isArray( dateToDisable ) && dateToDisable[3] == 'inverted' || - $.isPlainObject( dateToDisable ) && dateToDisable.inverted - }).length - - // Check the calendar “enabled” flag and respectively flip the - // disabled state. Then also check if it’s beyond the min/max limits. - return calendar.item.enable === -1 ? !isDisabledMatch : isDisabledMatch || - dateToVerify.pick < calendar.item.min.pick || - dateToVerify.pick > calendar.item.max.pick - -} //DatePicker.prototype.disabled - - -/** - * Parse a string into a usable type. - */ -DatePicker.prototype.parse = function( type, value, options ) { - - var calendar = this, - parsingObject = {} - - // If it’s already parsed, we’re good. - if ( !value || typeof value != 'string' ) { - return value - } - - // We need a `.format` to parse the value with. - if ( !( options && options.format ) ) { - options = options || {} - options.format = calendar.settings.format - } - - // Convert the format into an array and then map through it. - calendar.formats.toArray( options.format ).map( function( label ) { - - var - // Grab the formatting label. - formattingLabel = calendar.formats[ label ], - - // The format length is from the formatting label function or the - // label length without the escaping exclamation (!) mark. - formatLength = formattingLabel ? _.trigger( formattingLabel, calendar, [ value, parsingObject ] ) : label.replace( /^!/, '' ).length - - // If there's a format label, split the value up to the format length. - // Then add it to the parsing object with appropriate label. - if ( formattingLabel ) { - parsingObject[ label ] = value.substr( 0, formatLength ) - } - - // Update the value as the substring from format length to end. - value = value.substr( formatLength ) - }) - - // Compensate for month 0index. - return [ - parsingObject.yyyy || parsingObject.yy, - +( parsingObject.mm || parsingObject.m ) - 1, - parsingObject.dd || parsingObject.d - ] -} //DatePicker.prototype.parse - - -/** - * Various formats to display the object in. - */ -DatePicker.prototype.formats = (function() { - - // Return the length of the first word in a collection. - function getWordLengthFromCollection( string, collection, dateObject ) { - - // Grab the first word from the string. - var word = string.match( /\w+/ )[ 0 ] - - // If there's no month index, add it to the date object - if ( !dateObject.mm && !dateObject.m ) { - dateObject.m = collection.indexOf( word ) + 1 - } - - // Return the length of the word. - return word.length - } - - // Get the length of the first word in a string. - function getFirstWordLength( string ) { - return string.match( /\w+/ )[ 0 ].length - } - - return { - - d: function( string, dateObject ) { - - // If there's string, then get the digits length. - // Otherwise return the selected date. - return string ? _.digits( string ) : dateObject.date - }, - dd: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected date with a leading zero. - return string ? 2 : _.lead( dateObject.date ) - }, - ddd: function( string, dateObject ) { - - // If there's a string, then get the length of the first word. - // Otherwise return the short selected weekday. - return string ? getFirstWordLength( string ) : this.settings.weekdaysShort[ dateObject.day ] - }, - dddd: function( string, dateObject ) { - - // If there's a string, then get the length of the first word. - // Otherwise return the full selected weekday. - return string ? getFirstWordLength( string ) : this.settings.weekdaysFull[ dateObject.day ] - }, - m: function( string, dateObject ) { - - // If there's a string, then get the length of the digits - // Otherwise return the selected month with 0index compensation. - return string ? _.digits( string ) : dateObject.month + 1 - }, - mm: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected month with 0index and leading zero. - return string ? 2 : _.lead( dateObject.month + 1 ) - }, - mmm: function( string, dateObject ) { - - var collection = this.settings.monthsShort - - // If there's a string, get length of the relevant month from the short - // months collection. Otherwise return the selected month from that collection. - return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] - }, - mmmm: function( string, dateObject ) { - - var collection = this.settings.monthsFull - - // If there's a string, get length of the relevant month from the full - // months collection. Otherwise return the selected month from that collection. - return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] - }, - yy: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected year by slicing out the first 2 digits. - return string ? 2 : ( '' + dateObject.year ).slice( 2 ) - }, - yyyy: function( string, dateObject ) { - - // If there's a string, then the length is always 4. - // Otherwise return the selected year. - return string ? 4 : dateObject.year - }, - - // Create an array by splitting the formatting string passed. - toArray: function( formatString ) { return formatString.split( /(d{1,4}|m{1,4}|y{4}|yy|!.)/g ) }, - - // Format an object into a string using the formatting options. - toString: function ( formatString, itemObject ) { - var calendar = this - return calendar.formats.toArray( formatString ).map( function( label ) { - return _.trigger( calendar.formats[ label ], calendar, [ 0, itemObject ] ) || label.replace( /^!/, '' ) - }).join( '' ) - } - } -})() //DatePicker.prototype.formats - - - - -/** - * Check if two date units are the exact. - */ -DatePicker.prototype.isDateExact = function( one, two ) { - - var calendar = this - - // When we’re working with weekdays, do a direct comparison. - if ( - ( _.isInteger( one ) && _.isInteger( two ) ) || - ( typeof one == 'boolean' && typeof two == 'boolean' ) - ) { - return one === two - } - - // When we’re working with date representations, compare the “pick” value. - if ( - ( _.isDate( one ) || $.isArray( one ) ) && - ( _.isDate( two ) || $.isArray( two ) ) - ) { - return calendar.create( one ).pick === calendar.create( two ).pick - } - - // When we’re working with range objects, compare the “from” and “to”. - if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { - return calendar.isDateExact( one.from, two.from ) && calendar.isDateExact( one.to, two.to ) - } - - return false -} - - -/** - * Check if two date units overlap. - */ -DatePicker.prototype.isDateOverlap = function( one, two ) { - - var calendar = this, - firstDay = calendar.settings.firstDay ? 1 : 0 - - // When we’re working with a weekday index, compare the days. - if ( _.isInteger( one ) && ( _.isDate( two ) || $.isArray( two ) ) ) { - one = one % 7 + firstDay - return one === calendar.create( two ).day + 1 - } - if ( _.isInteger( two ) && ( _.isDate( one ) || $.isArray( one ) ) ) { - two = two % 7 + firstDay - return two === calendar.create( one ).day + 1 - } - - // When we’re working with range objects, check if the ranges overlap. - if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { - return calendar.overlapRanges( one, two ) - } - - return false -} - - -/** - * Flip the “enabled” state. - */ -DatePicker.prototype.flipEnable = function(val) { - var itemObject = this.item - itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1) -} - - -/** - * Mark a collection of dates as “disabled”. - */ -DatePicker.prototype.deactivate = function( type, datesToDisable ) { - - var calendar = this, - disabledItems = calendar.item.disable.slice(0) - - - // If we’re flipping, that’s all we need to do. - if ( datesToDisable == 'flip' ) { - calendar.flipEnable() - } - - else if ( datesToDisable === false ) { - calendar.flipEnable(1) - disabledItems = [] - } - - else if ( datesToDisable === true ) { - calendar.flipEnable(-1) - disabledItems = [] - } - - // Otherwise go through the dates to disable. - else { - - datesToDisable.map(function( unitToDisable ) { - - var matchFound - - // When we have disabled items, check for matches. - // If something is matched, immediately break out. - for ( var index = 0; index < disabledItems.length; index += 1 ) { - if ( calendar.isDateExact( unitToDisable, disabledItems[index] ) ) { - matchFound = true - break - } - } - - // If nothing was found, add the validated unit to the collection. - if ( !matchFound ) { - if ( - _.isInteger( unitToDisable ) || - _.isDate( unitToDisable ) || - $.isArray( unitToDisable ) || - ( $.isPlainObject( unitToDisable ) && unitToDisable.from && unitToDisable.to ) - ) { - disabledItems.push( unitToDisable ) - } - } - }) - } - - // Return the updated collection. - return disabledItems -} //DatePicker.prototype.deactivate - - -/** - * Mark a collection of dates as “enabled”. - */ -DatePicker.prototype.activate = function( type, datesToEnable ) { - - var calendar = this, - disabledItems = calendar.item.disable, - disabledItemsCount = disabledItems.length - - // If we’re flipping, that’s all we need to do. - if ( datesToEnable == 'flip' ) { - calendar.flipEnable() - } - - else if ( datesToEnable === true ) { - calendar.flipEnable(1) - disabledItems = [] - } - - else if ( datesToEnable === false ) { - calendar.flipEnable(-1) - disabledItems = [] - } - - // Otherwise go through the disabled dates. - else { - - datesToEnable.map(function( unitToEnable ) { - - var matchFound, - disabledUnit, - index, - isExactRange - - // Go through the disabled items and try to find a match. - for ( index = 0; index < disabledItemsCount; index += 1 ) { - - disabledUnit = disabledItems[index] - - // When an exact match is found, remove it from the collection. - if ( calendar.isDateExact( disabledUnit, unitToEnable ) ) { - matchFound = disabledItems[index] = null - isExactRange = true - break - } - - // When an overlapped match is found, add the “inverted” state to it. - else if ( calendar.isDateOverlap( disabledUnit, unitToEnable ) ) { - if ( $.isPlainObject( unitToEnable ) ) { - unitToEnable.inverted = true - matchFound = unitToEnable - } - else if ( $.isArray( unitToEnable ) ) { - matchFound = unitToEnable - if ( !matchFound[3] ) matchFound.push( 'inverted' ) - } - else if ( _.isDate( unitToEnable ) ) { - matchFound = [ unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted' ] - } - break - } - } - - // If a match was found, remove a previous duplicate entry. - if ( matchFound ) for ( index = 0; index < disabledItemsCount; index += 1 ) { - if ( calendar.isDateExact( disabledItems[index], unitToEnable ) ) { - disabledItems[index] = null - break - } - } - - // In the event that we’re dealing with an exact range of dates, - // make sure there are no “inverted” dates because of it. - if ( isExactRange ) for ( index = 0; index < disabledItemsCount; index += 1 ) { - if ( calendar.isDateOverlap( disabledItems[index], unitToEnable ) ) { - disabledItems[index] = null - break - } - } - - // If something is still matched, add it into the collection. - if ( matchFound ) { - disabledItems.push( matchFound ) - } - }) - } - - // Return the updated collection. - return disabledItems.filter(function( val ) { return val != null }) -} //DatePicker.prototype.activate - - -/** - * Create a string for the nodes in the picker. - */ -DatePicker.prototype.nodes = function( isOpen ) { - - var - calendar = this, - settings = calendar.settings, - calendarItem = calendar.item, - nowObject = calendarItem.now, - selectedObject = calendarItem.select, - highlightedObject = calendarItem.highlight, - viewsetObject = calendarItem.view, - disabledCollection = calendarItem.disable, - minLimitObject = calendarItem.min, - maxLimitObject = calendarItem.max, - - - // Create the calendar table head using a copy of weekday labels collection. - // * We do a copy so we don't mutate the original array. - tableHead = (function( collection, fullCollection ) { - - // If the first day should be Monday, move Sunday to the end. - if ( settings.firstDay ) { - collection.push( collection.shift() ) - fullCollection.push( fullCollection.shift() ) - } - - // Create and return the table head group. - return _.node( - 'thead', - _.node( - 'tr', - _.group({ - min: 0, - max: DAYS_IN_WEEK - 1, - i: 1, - node: 'th', - item: function( counter ) { - return [ - collection[ counter ], - settings.klass.weekdays, - 'scope=col title="' + fullCollection[ counter ] + '"' - ] - } - }) - ) - ) //endreturn - - // Materialize modified - })( ( settings.showWeekdaysFull ? settings.weekdaysFull : settings.weekdaysLetter ).slice( 0 ), settings.weekdaysFull.slice( 0 ) ), //tableHead - - - // Create the nav for next/prev month. - createMonthNav = function( next ) { - - // Otherwise, return the created month tag. - return _.node( - 'div', - ' ', - settings.klass[ 'nav' + ( next ? 'Next' : 'Prev' ) ] + ( - - // If the focused month is outside the range, disabled the button. - ( next && viewsetObject.year >= maxLimitObject.year && viewsetObject.month >= maxLimitObject.month ) || - ( !next && viewsetObject.year <= minLimitObject.year && viewsetObject.month <= minLimitObject.month ) ? - ' ' + settings.klass.navDisabled : '' - ), - 'data-nav=' + ( next || -1 ) + ' ' + - _.ariaAttr({ - role: 'button', - controls: calendar.$node[0].id + '_table' - }) + ' ' + - 'title="' + (next ? settings.labelMonthNext : settings.labelMonthPrev ) + '"' - ) //endreturn - }, //createMonthNav - - - // Create the month label. - //Materialize modified - createMonthLabel = function(override) { - - var monthsCollection = settings.showMonthsShort ? settings.monthsShort : settings.monthsFull - - // Materialize modified - if (override == "short_months") { - monthsCollection = settings.monthsShort; - } - - // If there are months to select, add a dropdown menu. - if ( settings.selectMonths && override == undefined) { - - return _.node( 'select', - _.group({ - min: 0, - max: 11, - i: 1, - node: 'option', - item: function( loopedMonth ) { - - return [ - - // The looped month and no classes. - monthsCollection[ loopedMonth ], 0, - - // Set the value and selected index. - 'value=' + loopedMonth + - ( viewsetObject.month == loopedMonth ? ' selected' : '' ) + - ( - ( - ( viewsetObject.year == minLimitObject.year && loopedMonth < minLimitObject.month ) || - ( viewsetObject.year == maxLimitObject.year && loopedMonth > maxLimitObject.month ) - ) ? - ' disabled' : '' - ) - ] - } - }), - settings.klass.selectMonth + ' browser-default', - ( isOpen ? '' : 'disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + - 'title="' + settings.labelMonthSelect + '"' - ) - } - - // Materialize modified - if (override == "short_months") - if (selectedObject != null) - return _.node( 'div', monthsCollection[ selectedObject.month ] ); - else return _.node( 'div', monthsCollection[ viewsetObject.month ] ); - - // If there's a need for a month selector - return _.node( 'div', monthsCollection[ viewsetObject.month ], settings.klass.month ) - }, //createMonthLabel - - - // Create the year label. - // Materialize modified - createYearLabel = function(override) { - - var focusedYear = viewsetObject.year, - - // If years selector is set to a literal "true", set it to 5. Otherwise - // divide in half to get half before and half after focused year. - numberYears = settings.selectYears === true ? 5 : ~~( settings.selectYears / 2 ) - - // If there are years to select, add a dropdown menu. - if ( numberYears ) { - - var - minYear = minLimitObject.year, - maxYear = maxLimitObject.year, - lowestYear = focusedYear - numberYears, - highestYear = focusedYear + numberYears - - // If the min year is greater than the lowest year, increase the highest year - // by the difference and set the lowest year to the min year. - if ( minYear > lowestYear ) { - highestYear += minYear - lowestYear - lowestYear = minYear - } - - // If the max year is less than the highest year, decrease the lowest year - // by the lower of the two: available and needed years. Then set the - // highest year to the max year. - if ( maxYear < highestYear ) { - - var availableYears = lowestYear - minYear, - neededYears = highestYear - maxYear - - lowestYear -= availableYears > neededYears ? neededYears : availableYears - highestYear = maxYear - } - - if ( settings.selectYears && override == undefined ) { - return _.node( 'select', - _.group({ - min: lowestYear, - max: highestYear, - i: 1, - node: 'option', - item: function( loopedYear ) { - return [ - - // The looped year and no classes. - loopedYear, 0, - - // Set the value and selected index. - 'value=' + loopedYear + ( focusedYear == loopedYear ? ' selected' : '' ) - ] - } - }), - settings.klass.selectYear + ' browser-default', - ( isOpen ? '' : 'disabled' ) + ' ' + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + - 'title="' + settings.labelYearSelect + '"' - ) - } - } - - // Materialize modified - if (override == "raw") - return _.node( 'div', focusedYear ) - - // Otherwise just return the year focused - return _.node( 'div', focusedYear, settings.klass.year ) - } //createYearLabel - - - // Materialize modified - createDayLabel = function() { - if (selectedObject != null) - return _.node( 'div', selectedObject.date) - else return _.node( 'div', nowObject.date) - } - createWeekdayLabel = function() { - var display_day; - - if (selectedObject != null) - display_day = selectedObject.day; - else - display_day = nowObject.day; - var weekday = settings.weekdaysFull[ display_day ] - return weekday - } - - - // Create and return the entire calendar. -return _.node( - // Date presentation View - 'div', - _.node( - 'div', - createWeekdayLabel(), - "picker__weekday-display" - )+ - _.node( - // Div for short Month - 'div', - createMonthLabel("short_months"), - settings.klass.month_display - )+ - _.node( - // Div for Day - 'div', - createDayLabel() , - settings.klass.day_display - )+ - _.node( - // Div for Year - 'div', - createYearLabel("raw") , - settings.klass.year_display - ), - settings.klass.date_display - )+ - // Calendar container - _.node('div', - _.node('div', - ( settings.selectYears ? createMonthLabel() + createYearLabel() : createMonthLabel() + createYearLabel() ) + - createMonthNav() + createMonthNav( 1 ), - settings.klass.header - ) + _.node( - 'table', - tableHead + - _.node( - 'tbody', - _.group({ - min: 0, - max: WEEKS_IN_CALENDAR - 1, - i: 1, - node: 'tr', - item: function( rowCounter ) { - - // If Monday is the first day and the month starts on Sunday, shift the date back a week. - var shiftDateBy = settings.firstDay && calendar.create([ viewsetObject.year, viewsetObject.month, 1 ]).day === 0 ? -7 : 0 - - return [ - _.group({ - min: DAYS_IN_WEEK * rowCounter - viewsetObject.day + shiftDateBy + 1, // Add 1 for weekday 0index - max: function() { - return this.min + DAYS_IN_WEEK - 1 - }, - i: 1, - node: 'td', - item: function( targetDate ) { - - // Convert the time date from a relative date to a target date. - targetDate = calendar.create([ viewsetObject.year, viewsetObject.month, targetDate + ( settings.firstDay ? 1 : 0 ) ]) - - var isSelected = selectedObject && selectedObject.pick == targetDate.pick, - isHighlighted = highlightedObject && highlightedObject.pick == targetDate.pick, - isDisabled = disabledCollection && calendar.disabled( targetDate ) || targetDate.pick < minLimitObject.pick || targetDate.pick > maxLimitObject.pick, - formattedDate = _.trigger( calendar.formats.toString, calendar, [ settings.format, targetDate ] ) - - return [ - _.node( - 'div', - targetDate.date, - (function( klasses ) { - - // Add the `infocus` or `outfocus` classes based on month in view. - klasses.push( viewsetObject.month == targetDate.month ? settings.klass.infocus : settings.klass.outfocus ) - - // Add the `today` class if needed. - if ( nowObject.pick == targetDate.pick ) { - klasses.push( settings.klass.now ) - } - - // Add the `selected` class if something's selected and the time matches. - if ( isSelected ) { - klasses.push( settings.klass.selected ) - } - - // Add the `highlighted` class if something's highlighted and the time matches. - if ( isHighlighted ) { - klasses.push( settings.klass.highlighted ) - } - - // Add the `disabled` class if something's disabled and the object matches. - if ( isDisabled ) { - klasses.push( settings.klass.disabled ) - } - - return klasses.join( ' ' ) - })([ settings.klass.day ]), - 'data-pick=' + targetDate.pick + ' ' + _.ariaAttr({ - role: 'gridcell', - label: formattedDate, - selected: isSelected && calendar.$node.val() === formattedDate ? true : null, - activedescendant: isHighlighted ? true : null, - disabled: isDisabled ? true : null - }) - ), - '', - _.ariaAttr({ role: 'presentation' }) - ] //endreturn - } - }) - ] //endreturn - } - }) - ), - settings.klass.table, - 'id="' + calendar.$node[0].id + '_table' + '" ' + _.ariaAttr({ - role: 'grid', - controls: calendar.$node[0].id, - readonly: true - }) - ) - , settings.klass.calendar_container) // end calendar - - + - - // * For Firefox forms to submit, make sure to set the buttons’ `type` attributes as “button”. - _.node( - 'div', - _.node( 'button', settings.today, "btn-flat picker__today", - 'type=button data-pick=' + nowObject.pick + - ( isOpen && !calendar.disabled(nowObject) ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ) + - _.node( 'button', settings.clear, "btn-flat picker__clear", - 'type=button data-clear=1' + - ( isOpen ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ) + - _.node('button', settings.close, "btn-flat picker__close", - 'type=button data-close=true ' + - ( isOpen ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ), - settings.klass.footer - ) //endreturn -} //DatePicker.prototype.nodes - - - - -/** - * The date picker defaults. - */ -DatePicker.defaults = (function( prefix ) { - - return { - - // The title label to use for the month nav buttons - labelMonthNext: 'Next month', - labelMonthPrev: 'Previous month', - - // The title label to use for the dropdown selectors - labelMonthSelect: 'Select a month', - labelYearSelect: 'Select a year', - - // Months and weekdays - monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], - monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], - weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ], - weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ], - - // Materialize modified - weekdaysLetter: [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ], - - // Today and clear - today: 'Today', - clear: 'Clear', - close: 'Close', - - // The format to show on the `input` element - format: 'd mmmm, yyyy', - - // Classes - klass: { - - table: prefix + 'table', - - header: prefix + 'header', - - - // Materialize Added klasses - date_display: prefix + 'date-display', - day_display: prefix + 'day-display', - month_display: prefix + 'month-display', - year_display: prefix + 'year-display', - calendar_container: prefix + 'calendar-container', - // end - - - - navPrev: prefix + 'nav--prev', - navNext: prefix + 'nav--next', - navDisabled: prefix + 'nav--disabled', - - month: prefix + 'month', - year: prefix + 'year', - - selectMonth: prefix + 'select--month', - selectYear: prefix + 'select--year', - - weekdays: prefix + 'weekday', - - day: prefix + 'day', - disabled: prefix + 'day--disabled', - selected: prefix + 'day--selected', - highlighted: prefix + 'day--highlighted', - now: prefix + 'day--today', - infocus: prefix + 'day--infocus', - outfocus: prefix + 'day--outfocus', - - footer: prefix + 'footer', - - buttonClear: prefix + 'button--clear', - buttonToday: prefix + 'button--today', - buttonClose: prefix + 'button--close' - } - } -})( Picker.klasses().picker + '__' ) - - - - - -/** - * Extend the picker to add the date picker. - */ -Picker.extend( 'pickadate', DatePicker ) - - -})); - - -;(function ($) { - - $.fn.characterCounter = function(){ - return this.each(function(){ - var $input = $(this); - var $counterElement = $input.parent().find('span[class="character-counter"]'); - - // character counter has already been added appended to the parent container - if ($counterElement.length) { - return; - } - - var itHasLengthAttribute = $input.attr('length') !== undefined; - - if(itHasLengthAttribute){ - $input.on('input', updateCounter); - $input.on('focus', updateCounter); - $input.on('blur', removeCounterElement); - - addCounterElement($input); - } - - }); - }; - - function updateCounter(){ - var maxLength = +$(this).attr('length'), - actualLength = +$(this).val().length, - isValidLength = actualLength <= maxLength; - - $(this).parent().find('span[class="character-counter"]') - .html( actualLength + '/' + maxLength); - - addInputStyle(isValidLength, $(this)); - } - - function addCounterElement($input) { - var $counterElement = $input.parent().find('span[class="character-counter"]'); - - if ($counterElement.length) { - return; - } - - $counterElement = $('') - .addClass('character-counter') - .css('float','right') - .css('font-size','12px') - .css('height', 1); - - $input.parent().append($counterElement); - } - - function removeCounterElement(){ - $(this).parent().find('span[class="character-counter"]').html(''); - } - - function addInputStyle(isValidLength, $input){ - var inputHasInvalidClass = $input.hasClass('invalid'); - if (isValidLength && inputHasInvalidClass) { - $input.removeClass('invalid'); - } - else if(!isValidLength && !inputHasInvalidClass){ - $input.removeClass('valid'); - $input.addClass('invalid'); - } - } - - $(document).ready(function(){ - $('input, textarea').characterCounter(); - }); - -}( jQuery )); -;(function ($) { - - var methods = { - - init : function(options) { - var defaults = { - time_constant: 200, // ms - dist: -100, // zoom scale TODO: make this more intuitive as an option - shift: 0, // spacing for center image - padding: 0, // Padding between non center items - full_width: false, // Change to full width styles - indicators: false, // Toggle indicators - no_wrap: false // Don't wrap around and cycle through items. - }; - options = $.extend(defaults, options); - - return this.each(function() { - - var images, offset, center, pressed, dim, count, - reference, referenceY, amplitude, target, velocity, - xform, frame, timestamp, ticker, dragged, vertical_dragged; - var $indicators = $('
            '); - - - // Initialize - var view = $(this); - var showIndicators = view.attr('data-indicators') || options.indicators; - - // Don't double initialize. - if (view.hasClass('initialized')) { - // Redraw carousel. - $(this).trigger('carouselNext', [0.000001]); - return true; - } - - - // Options - if (options.full_width) { - options.dist = 0; - var firstImage = view.find('.carousel-item img').first(); - if (firstImage.length) { - imageHeight = firstImage.load(function(){ - view.css('height', $(this).height()); - }); - } else { - imageHeight = view.find('.carousel-item').first().height(); - view.css('height', imageHeight); - } - - // Offset fixed items when indicators. - if (showIndicators) { - view.find('.carousel-fixed-item').addClass('with-indicators'); - } - } - - - view.addClass('initialized'); - pressed = false; - offset = target = 0; - images = []; - item_width = view.find('.carousel-item').first().innerWidth(); - dim = item_width * 2 + options.padding; - - view.find('.carousel-item').each(function (i) { - images.push($(this)[0]); - if (showIndicators) { - var $indicator = $('
          • '); - - // Add active to first by default. - if (i === 0) { - $indicator.addClass('active'); - } - - // Handle clicks on indicators. - $indicator.click(function () { - var index = $(this).index(); - cycleTo(index); - }); - $indicators.append($indicator); - } - }); - - if (showIndicators) { - view.append($indicators); - } - count = images.length; - - - function setupEvents() { - if (typeof window.ontouchstart !== 'undefined') { - view[0].addEventListener('touchstart', tap); - view[0].addEventListener('touchmove', drag); - view[0].addEventListener('touchend', release); - } - view[0].addEventListener('mousedown', tap); - view[0].addEventListener('mousemove', drag); - view[0].addEventListener('mouseup', release); - view[0].addEventListener('mouseleave', release); - view[0].addEventListener('click', click); - } - - function xpos(e) { - // touch event - if (e.targetTouches && (e.targetTouches.length >= 1)) { - return e.targetTouches[0].clientX; - } - - // mouse event - return e.clientX; - } - - function ypos(e) { - // touch event - if (e.targetTouches && (e.targetTouches.length >= 1)) { - return e.targetTouches[0].clientY; - } - - // mouse event - return e.clientY; - } - - function wrap(x) { - return (x >= count) ? (x % count) : (x < 0) ? wrap(count + (x % count)) : x; - } - - function scroll(x) { - var i, half, delta, dir, tween, el, alignment, xTranslation; - - offset = (typeof x === 'number') ? x : offset; - center = Math.floor((offset + dim / 2) / dim); - delta = offset - center * dim; - dir = (delta < 0) ? 1 : -1; - tween = -dir * delta * 2 / dim; - half = count >> 1; - - if (!options.full_width) { - alignment = 'translateX(' + (view[0].clientWidth - item_width) / 2 + 'px) '; - alignment += 'translateY(' + (view[0].clientHeight - item_width) / 2 + 'px)'; - } else { - alignment = 'translateX(0)'; - } - - // Set indicator active - if (showIndicators) { - var diff = (center % count); - var activeIndicator = $indicators.find('.indicator-item.active'); - if (activeIndicator.index() !== diff) { - activeIndicator.removeClass('active'); - $indicators.find('.indicator-item').eq(diff).addClass('active'); - } - } - - // center - // Don't show wrapped items. - if (!options.no_wrap || (center >= 0 && center < count)) { - el = images[wrap(center)]; - el.style[xform] = alignment + - ' translateX(' + (-delta / 2) + 'px)' + - ' translateX(' + (dir * options.shift * tween * i) + 'px)' + - ' translateZ(' + (options.dist * tween) + 'px)'; - el.style.zIndex = 0; - if (options.full_width) { tweenedOpacity = 1; } - else { tweenedOpacity = 1 - 0.2 * tween; } - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - for (i = 1; i <= half; ++i) { - // right side - if (options.full_width) { - zTranslation = options.dist; - tweenedOpacity = (i === half && delta < 0) ? 1 - tween : 1; - } else { - zTranslation = options.dist * (i * 2 + tween * dir); - tweenedOpacity = 1 - 0.2 * (i * 2 + tween * dir); - } - // Don't show wrapped items. - if (!options.no_wrap || center + i < count) { - el = images[wrap(center + i)]; - el.style[xform] = alignment + - ' translateX(' + (options.shift + (dim * i - delta) / 2) + 'px)' + - ' translateZ(' + zTranslation + 'px)'; - el.style.zIndex = -i; - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - - // left side - if (options.full_width) { - zTranslation = options.dist; - tweenedOpacity = (i === half && delta > 0) ? 1 - tween : 1; - } else { - zTranslation = options.dist * (i * 2 - tween * dir); - tweenedOpacity = 1 - 0.2 * (i * 2 - tween * dir); - } - // Don't show wrapped items. - if (!options.no_wrap || center - i >= 0) { - el = images[wrap(center - i)]; - el.style[xform] = alignment + - ' translateX(' + (-options.shift + (-dim * i - delta) / 2) + 'px)' + - ' translateZ(' + zTranslation + 'px)'; - el.style.zIndex = -i; - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - } - - // center - // Don't show wrapped items. - if (!options.no_wrap || (center >= 0 && center < count)) { - el = images[wrap(center)]; - el.style[xform] = alignment + - ' translateX(' + (-delta / 2) + 'px)' + - ' translateX(' + (dir * options.shift * tween) + 'px)' + - ' translateZ(' + (options.dist * tween) + 'px)'; - el.style.zIndex = 0; - if (options.full_width) { tweenedOpacity = 1; } - else { tweenedOpacity = 1 - 0.2 * tween; } - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - } - - function track() { - var now, elapsed, delta, v; - - now = Date.now(); - elapsed = now - timestamp; - timestamp = now; - delta = offset - frame; - frame = offset; - - v = 1000 * delta / (1 + elapsed); - velocity = 0.8 * v + 0.2 * velocity; - } - - function autoScroll() { - var elapsed, delta; - - if (amplitude) { - elapsed = Date.now() - timestamp; - delta = amplitude * Math.exp(-elapsed / options.time_constant); - if (delta > 2 || delta < -2) { - scroll(target - delta); - requestAnimationFrame(autoScroll); - } else { - scroll(target); - } - } - } - - function click(e) { - // Disable clicks if carousel was dragged. - if (dragged) { - e.preventDefault(); - e.stopPropagation(); - return false; - - } else if (!options.full_width) { - var clickedIndex = $(e.target).closest('.carousel-item').index(); - var diff = (center % count) - clickedIndex; - - // Disable clicks if carousel was shifted by click - if (diff !== 0) { - e.preventDefault(); - e.stopPropagation(); - } - cycleTo(clickedIndex); - } - } - - function cycleTo(n) { - var diff = (center % count) - n; - - // Account for wraparound. - if (!options.no_wrap) { - if (diff < 0) { - if (Math.abs(diff + count) < Math.abs(diff)) { diff += count; } - - } else if (diff > 0) { - if (Math.abs(diff - count) < diff) { diff -= count; } - } - } - - // Call prev or next accordingly. - if (diff < 0) { - view.trigger('carouselNext', [Math.abs(diff)]); - - } else if (diff > 0) { - view.trigger('carouselPrev', [diff]); - } - } - - function tap(e) { - pressed = true; - dragged = false; - vertical_dragged = false; - reference = xpos(e); - referenceY = ypos(e); - - velocity = amplitude = 0; - frame = offset; - timestamp = Date.now(); - clearInterval(ticker); - ticker = setInterval(track, 100); - - } - - function drag(e) { - var x, delta, deltaY; - if (pressed) { - x = xpos(e); - y = ypos(e); - delta = reference - x; - deltaY = Math.abs(referenceY - y); - if (deltaY < 30 && !vertical_dragged) { - // If vertical scrolling don't allow dragging. - if (delta > 2 || delta < -2) { - dragged = true; - reference = x; - scroll(offset + delta); - } - - } else if (dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - - } else { - // Vertical scrolling. - vertical_dragged = true; - } - } - - if (dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - } - } - - function release(e) { - if (pressed) { - pressed = false; - } else { - return; - } - - clearInterval(ticker); - target = offset; - if (velocity > 10 || velocity < -10) { - amplitude = 0.9 * velocity; - target = offset + amplitude; - } - target = Math.round(target / dim) * dim; - - // No wrap of items. - if (options.no_wrap) { - if (target >= dim * (count - 1)) { - target = dim * (count - 1); - } else if (target < 0) { - target = 0; - } - } - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - - if (dragged) { - e.preventDefault(); - e.stopPropagation(); - } - return false; - } - - xform = 'transform'; - ['webkit', 'Moz', 'O', 'ms'].every(function (prefix) { - var e = prefix + 'Transform'; - if (typeof document.body.style[e] !== 'undefined') { - xform = e; - return false; - } - return true; - }); - - - - window.onresize = scroll; - - setupEvents(); - scroll(offset); - - $(this).on('carouselNext', function(e, n) { - if (n === undefined) { - n = 1; - } - target = offset + dim * n; - if (offset !== target) { - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - } - }); - - $(this).on('carouselPrev', function(e, n) { - if (n === undefined) { - n = 1; - } - target = offset - dim * n; - if (offset !== target) { - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - } - }); - - $(this).on('carouselSet', function(e, n) { - if (n === undefined) { - n = 0; - } - cycleTo(n); - }); - - }); - - - - }, - next : function(n) { - $(this).trigger('carouselNext', [n]); - }, - prev : function(n) { - $(this).trigger('carouselPrev', [n]); - }, - set : function(n) { - $(this).trigger('carouselSet', [n]); - } - }; - - - $.fn.carousel = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.carousel' ); - } - }; // Plugin end -}( jQuery )); \ No newline at end of file diff --git a/production/bower_components/Materialize/dist/js/materialize.min.js b/production/bower_components/Materialize/dist/js/materialize.min.js deleted file mode 100644 index 1a2cf1a..0000000 --- a/production/bower_components/Materialize/dist/js/materialize.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * Materialize v0.97.7 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -if("undefined"==typeof jQuery){var jQuery;jQuery="function"==typeof require?$=require("jquery"):$}jQuery.easing.jswing=jQuery.easing.swing,jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(a,b,c,d,e){return jQuery.easing[jQuery.easing.def](a,b,c,d,e)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return 0==b?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return 0==b?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(1==(b/=e))return c+d;if(g||(g=.3*e),hb?-.5*(h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*(2*Math.PI)/g))+c:h*Math.pow(2,-10*(b-=1))*Math.sin((b*e-f)*(2*Math.PI)/g)*.5+d+c},easeInBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*(b/=e)*b*((f+1)*b-f)+c},easeOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*((b=b/e-1)*b*((f+1)*b+f)+1)+c},easeInOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),(b/=e/2)<1?d/2*(b*b*(((f*=1.525)+1)*b-f))+c:d/2*((b-=2)*b*(((f*=1.525)+1)*b+f)+2)+c},easeInBounce:function(a,b,c,d,e){return d-jQuery.easing.easeOutBounce(a,e-b,0,d,e)+c},easeOutBounce:function(a,b,c,d,e){return(b/=e)<1/2.75?d*(7.5625*b*b)+c:2/2.75>b?d*(7.5625*(b-=1.5/2.75)*b+.75)+c:2.5/2.75>b?d*(7.5625*(b-=2.25/2.75)*b+.9375)+c:d*(7.5625*(b-=2.625/2.75)*b+.984375)+c},easeInOutBounce:function(a,b,c,d,e){return e/2>b?.5*jQuery.easing.easeInBounce(a,2*b,0,d,e)+c:.5*jQuery.easing.easeOutBounce(a,2*b-e,0,d,e)+.5*d+c}}),jQuery.extend(jQuery.easing,{easeInOutMaterial:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:d/4*((b-=2)*b*b+2)+c}}),jQuery.Velocity?console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity."):(!function(a){function b(a){var b=a.length,d=c.type(a);return"function"===d||c.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===d||0===b||"number"==typeof b&&b>0&&b-1 in a}if(!a.jQuery){var c=function(a,b){return new c.fn.init(a,b)};c.isWindow=function(a){return null!=a&&a==a.window},c.type=function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?e[g.call(a)]||"object":typeof a},c.isArray=Array.isArray||function(a){return"array"===c.type(a)},c.isPlainObject=function(a){var b;if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!f.call(a,"constructor")&&!f.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(d){return!1}for(b in a);return void 0===b||f.call(a,b)},c.each=function(a,c,d){var e,f=0,g=a.length,h=b(a);if(d){if(h)for(;g>f&&(e=c.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=c.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=c.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=c.call(a[f],f,a[f]),e===!1)break;return a},c.data=function(a,b,e){if(void 0===e){var f=a[c.expando],g=f&&d[f];if(void 0===b)return g;if(g&&b in g)return g[b]}else if(void 0!==b){var f=a[c.expando]||(a[c.expando]=++c.uuid);return d[f]=d[f]||{},d[f][b]=e,e}},c.removeData=function(a,b){var e=a[c.expando],f=e&&d[e];f&&c.each(b,function(a,b){delete f[b]})},c.extend=function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[i]||{},i++),"object"!=typeof h&&"function"!==c.type(h)&&(h={}),i===j&&(h=this,i--);j>i;i++)if(null!=(f=arguments[i]))for(e in f)a=h[e],d=f[e],h!==d&&(k&&d&&(c.isPlainObject(d)||(b=c.isArray(d)))?(b?(b=!1,g=a&&c.isArray(a)?a:[]):g=a&&c.isPlainObject(a)?a:{},h[e]=c.extend(k,g,d)):void 0!==d&&(h[e]=d));return h},c.queue=function(a,d,e){function f(a,c){var d=c||[];return null!=a&&(b(Object(a))?!function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;)a[e++]=b[d++];if(c!==c)for(;void 0!==b[d];)a[e++]=b[d++];return a.length=e,a}(d,"string"==typeof a?[a]:a):[].push.call(d,a)),d}if(a){d=(d||"fx")+"queue";var g=c.data(a,d);return e?(!g||c.isArray(e)?g=c.data(a,d,f(e)):g.push(e),g):g||[]}},c.dequeue=function(a,b){c.each(a.nodeType?[a]:a,function(a,d){b=b||"fx";var e=c.queue(d,b),f=e.shift();"inprogress"===f&&(f=e.shift()),f&&("fx"===b&&e.unshift("inprogress"),f.call(d,function(){c.dequeue(d,b)}))})},c.fn=c.prototype={init:function(a){if(a.nodeType)return this[0]=a,this;throw new Error("Not a DOM node.")},offset:function(){var b=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:b.top+(a.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:b.left+(a.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function a(){for(var a=this.offsetParent||document;a&&"html"===!a.nodeType.toLowerCase&&"static"===a.style.position;)a=a.offsetParent;return a||document}var b=this[0],a=a.apply(b),d=this.offset(),e=/^(?:body|html)$/i.test(a.nodeName)?{top:0,left:0}:c(a).offset();return d.top-=parseFloat(b.style.marginTop)||0,d.left-=parseFloat(b.style.marginLeft)||0,a.style&&(e.top+=parseFloat(a.style.borderTopWidth)||0,e.left+=parseFloat(a.style.borderLeftWidth)||0),{top:d.top-e.top,left:d.left-e.left}}};var d={};c.expando="velocity"+(new Date).getTime(),c.uuid=0;for(var e={},f=e.hasOwnProperty,g=e.toString,h="Boolean Number String Function Array Date RegExp Object Error".split(" "),i=0;ie;++e){var f=j(c,a,d);if(0===f)return c;var g=i(c,a,d)-b;c-=g/f}return c}function l(){for(var b=0;t>b;++b)x[b]=i(b*u,a,d)}function m(b,c,e){var f,g,h=0;do g=c+(e-c)/2,f=i(g,a,d)-b,f>0?e=g:c=g;while(Math.abs(f)>r&&++h=q?k(b,h):0==i?h:m(b,c,c+u)}function o(){y=!0,(a!=c||d!=e)&&l()}var p=4,q=.001,r=1e-7,s=10,t=11,u=1/(t-1),v="Float32Array"in b;if(4!==arguments.length)return!1;for(var w=0;4>w;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;a=Math.min(a,1),d=Math.min(d,1),a=Math.max(a,0),d=Math.max(d,0);var x=v?new Float32Array(t):new Array(t),y=!1,z=function(b){return y||o(),a===c&&d===e?b:0===b?0:1===b?1:i(n(b),c,e)};z.getControlPoints=function(){return[{x:a,y:c},{x:d,y:e}]};var A="generateBezier("+[a,c,d,e]+")";return z.toString=function(){return A},z}function j(a,b){var c=a;return p.isString(a)?t.Easings[a]||(c=!1):c=p.isArray(a)&&1===a.length?h.apply(null,a):p.isArray(a)&&2===a.length?u.apply(null,a.concat([b])):p.isArray(a)&&4===a.length?i.apply(null,a):!1,c===!1&&(c=t.Easings[t.defaults.easing]?t.defaults.easing:s),c}function k(a){if(a){var b=(new Date).getTime(),c=t.State.calls.length;c>1e4&&(t.State.calls=e(t.State.calls));for(var f=0;c>f;f++)if(t.State.calls[f]){var h=t.State.calls[f],i=h[0],j=h[2],n=h[3],o=!!n,q=null;n||(n=t.State.calls[f][3]=b-16);for(var r=Math.min((b-n)/j.duration,1),s=0,u=i.length;u>s;s++){var w=i[s],y=w.element;if(g(y)){var z=!1;if(j.display!==d&&null!==j.display&&"none"!==j.display){if("flex"===j.display){var A=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];m.each(A,function(a,b){v.setPropertyValue(y,"display",b)})}v.setPropertyValue(y,"display",j.display)}j.visibility!==d&&"hidden"!==j.visibility&&v.setPropertyValue(y,"visibility",j.visibility);for(var B in w)if("element"!==B){var C,D=w[B],E=p.isString(D.easing)?t.Easings[D.easing]:D.easing;if(1===r)C=D.endValue;else{var F=D.endValue-D.startValue;if(C=D.startValue+F*E(r,j,F),!o&&C===D.currentValue)continue}if(D.currentValue=C,"tween"===B)q=C;else{if(v.Hooks.registered[B]){var G=v.Hooks.getRoot(B),H=g(y).rootPropertyValueCache[G];H&&(D.rootPropertyValue=H)}var I=v.setPropertyValue(y,B,D.currentValue+(0===parseFloat(C)?"":D.unitType),D.rootPropertyValue,D.scrollData);v.Hooks.registered[B]&&(g(y).rootPropertyValueCache[G]=v.Normalizations.registered[G]?v.Normalizations.registered[G]("extract",null,I[1]):I[1]),"transform"===I[0]&&(z=!0)}}j.mobileHA&&g(y).transformCache.translate3d===d&&(g(y).transformCache.translate3d="(0px, 0px, 0px)",z=!0),z&&v.flushTransformCache(y)}}j.display!==d&&"none"!==j.display&&(t.State.calls[f][2].display=!1),j.visibility!==d&&"hidden"!==j.visibility&&(t.State.calls[f][2].visibility=!1),j.progress&&j.progress.call(h[1],h[1],r,Math.max(0,n+j.duration-b),n,q),1===r&&l(f)}}t.State.isTicking&&x(k)}function l(a,b){if(!t.State.calls[a])return!1;for(var c=t.State.calls[a][0],e=t.State.calls[a][1],f=t.State.calls[a][2],h=t.State.calls[a][4],i=!1,j=0,k=c.length;k>j;j++){var l=c[j].element;if(b||f.loop||("none"===f.display&&v.setPropertyValue(l,"display",f.display),"hidden"===f.visibility&&v.setPropertyValue(l,"visibility",f.visibility)),f.loop!==!0&&(m.queue(l)[1]===d||!/\.velocityQueueEntryFlag/i.test(m.queue(l)[1]))&&g(l)){g(l).isAnimating=!1,g(l).rootPropertyValueCache={};var n=!1;m.each(v.Lists.transforms3D,function(a,b){var c=/^scale/.test(b)?1:0,e=g(l).transformCache[b];g(l).transformCache[b]!==d&&new RegExp("^\\("+c+"[^.]").test(e)&&(n=!0,delete g(l).transformCache[b])}),f.mobileHA&&(n=!0,delete g(l).transformCache.translate3d),n&&v.flushTransformCache(l),v.Values.removeClass(l,"velocity-animating")}if(!b&&f.complete&&!f.loop&&j===k-1)try{f.complete.call(e,e)}catch(o){setTimeout(function(){throw o},1)}h&&f.loop!==!0&&h(e),g(l)&&f.loop===!0&&!b&&(m.each(g(l).tweensContainer,function(a,b){/^rotate/.test(a)&&360===parseFloat(b.endValue)&&(b.endValue=0,b.startValue=360),/^backgroundPosition/.test(a)&&100===parseFloat(b.endValue)&&"%"===b.unitType&&(b.endValue=0,b.startValue=100)}),t(l,"reverse",{loop:!0,delay:f.delay})),f.queue!==!1&&m.dequeue(l,f.queue)}t.State.calls[a]=!1;for(var p=0,q=t.State.calls.length;q>p;p++)if(t.State.calls[p]!==!1){i=!0;break}i===!1&&(t.State.isTicking=!1,delete t.State.calls,t.State.calls=[])}var m,n=function(){if(c.documentMode)return c.documentMode;for(var a=7;a>4;a--){var b=c.createElement("div");if(b.innerHTML="",b.getElementsByTagName("span").length)return b=null,a}return d}(),o=function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),p={isString:function(a){return"string"==typeof a},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(a){return"[object Function]"===Object.prototype.toString.call(a)},isNode:function(a){return a&&a.nodeType},isNodeList:function(a){return"object"==typeof a&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(a))&&a.length!==d&&(0===a.length||"object"==typeof a[0]&&a[0].nodeType>0)},isWrapped:function(a){return a&&(a.jquery||b.Zepto&&b.Zepto.zepto.isZ(a))},isSVG:function(a){return b.SVGElement&&a instanceof b.SVGElement},isEmptyObject:function(a){for(var b in a)return!1;return!0}},q=!1;if(a.fn&&a.fn.jquery?(m=a,q=!0):m=b.Velocity.Utilities,8>=n&&!q)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=n)return void(jQuery.fn.velocity=jQuery.fn.animate);var r=400,s="swing",t={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:b.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:c.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:m,Redirects:{},Easings:{},Promise:b.Promise,defaults:{queue:"",duration:r,easing:s,begin:d,complete:d,progress:d,display:d,visibility:d,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(a){m.data(a,"velocity",{isSVG:p.isSVG(a),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};b.pageYOffset!==d?(t.State.scrollAnchor=b,t.State.scrollPropertyLeft="pageXOffset",t.State.scrollPropertyTop="pageYOffset"):(t.State.scrollAnchor=c.documentElement||c.body.parentNode||c.body,t.State.scrollPropertyLeft="scrollLeft",t.State.scrollPropertyTop="scrollTop");var u=function(){function a(a){return-a.tension*a.x-a.friction*a.v}function b(b,c,d){var e={x:b.x+d.dx*c,v:b.v+d.dv*c,tension:b.tension,friction:b.friction};return{dx:e.v,dv:a(e)}}function c(c,d){var e={dx:c.v,dv:a(c)},f=b(c,.5*d,e),g=b(c,.5*d,f),h=b(c,d,g),i=1/6*(e.dx+2*(f.dx+g.dx)+h.dx),j=1/6*(e.dv+2*(f.dv+g.dv)+h.dv);return c.x=c.x+i*d,c.v=c.v+j*d,c}return function d(a,b,e){var f,g,h,i={x:-1,v:0,tension:null,friction:null},j=[0],k=0,l=1e-4,m=.016;for(a=parseFloat(a)||500,b=parseFloat(b)||20,e=e||null,i.tension=a,i.friction=b,f=null!==e,f?(k=d(a,b),g=k/e*m):g=m;h=c(h||i,g),j.push(1+h.x),k+=16,Math.abs(h.x)>l&&Math.abs(h.v)>l;);return f?function(a){return j[a*(j.length-1)|0]}:k}}();t.Easings={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},spring:function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}},m.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(a,b){t.Easings[b[0]]=i.apply(null,b[1])});var v=t.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var a=0;a=n)switch(a){case"name":return"filter";case"extract":var d=c.toString().match(/alpha\(opacity=(.*)\)/i);return c=d?d[1]/100:1;case"inject":return b.style.zoom=1,parseFloat(c)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":return c;case"inject":return c}}},register:function(){9>=n||t.State.isGingerbread||(v.Lists.transformsBase=v.Lists.transformsBase.concat(v.Lists.transforms3D));for(var a=0;ae&&(e=1),f=!/(\d)$/i.test(e);break;case"skew":f=!/(deg|\d)$/i.test(e);break;case"rotate":f=!/(deg|\d)$/i.test(e)}return f||(g(c).transformCache[b]="("+e+")"),g(c).transformCache[b]}}}();for(var a=0;a=n||3!==f.split(" ").length||(f+=" 1"),f;case"inject":return 8>=n?4===e.split(" ").length&&(e=e.split(/\s+/).slice(0,3).join(" ")):3===e.split(" ").length&&(e+=" 1"),(8>=n?"rgb":"rgba")+"("+e.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(a){return a.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},SVGAttribute:function(a){var b="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(n||t.State.isAndroid&&!t.State.isChrome)&&(b+="|transform"),new RegExp("^("+b+")$","i").test(a)},prefixCheck:function(a){if(t.State.prefixMatches[a])return[t.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;d>c;c++){var e;if(e=0===c?a:b[c]+a.replace(/^\w/,function(a){return a.toUpperCase()}),p.isString(t.State.prefixElement.style[e]))return t.State.prefixMatches[a]=e,[e,!0]}return[a,!1]}},Values:{hexToRgb:function(a){var b,c=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,d=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return a=a.replace(c,function(a,b,c,d){return b+b+c+c+d+d}),b=d.exec(a),b?[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]:[0,0,0]},isCSSNullValue:function(a){return 0==a||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)},getUnitType:function(a){return/^(rotate|skew)/i.test(a)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a)?"":"px"},getDisplayType:function(a){var b=a&&a.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b)?"inline":/^(li)$/i.test(b)?"list-item":/^(tr)$/i.test(b)?"table-row":/^(table)$/i.test(b)?"table":/^(tbody)$/i.test(b)?"table-row-group":"block"},addClass:function(a,b){a.classList?a.classList.add(b):a.className+=(a.className.length?" ":"")+b},removeClass:function(a,b){a.classList?a.classList.remove(b):a.className=a.className.toString().replace(new RegExp("(^|\\s)"+b.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(a,c,e,f){function h(a,c){function e(){j&&v.setPropertyValue(a,"display","none")}var i=0;if(8>=n)i=m.css(a,c);else{var j=!1;if(/^(width|height)$/.test(c)&&0===v.getPropertyValue(a,"display")&&(j=!0,v.setPropertyValue(a,"display",v.Values.getDisplayType(a))),!f){if("height"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var k=a.offsetHeight-(parseFloat(v.getPropertyValue(a,"borderTopWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderBottomWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingTop"))||0)-(parseFloat(v.getPropertyValue(a,"paddingBottom"))||0);return e(),k}if("width"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var l=a.offsetWidth-(parseFloat(v.getPropertyValue(a,"borderLeftWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderRightWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingLeft"))||0)-(parseFloat(v.getPropertyValue(a,"paddingRight"))||0);return e(),l}}var o;o=g(a)===d?b.getComputedStyle(a,null):g(a).computedStyle?g(a).computedStyle:g(a).computedStyle=b.getComputedStyle(a,null),"borderColor"===c&&(c="borderTopColor"),i=9===n&&"filter"===c?o.getPropertyValue(c):o[c],(""===i||null===i)&&(i=a.style[c]),e()}if("auto"===i&&/^(top|right|bottom|left)$/i.test(c)){var p=h(a,"position");("fixed"===p||"absolute"===p&&/top|left/i.test(c))&&(i=m(a).position()[c]+"px")}return i}var i;if(v.Hooks.registered[c]){var j=c,k=v.Hooks.getRoot(j);e===d&&(e=v.getPropertyValue(a,v.Names.prefixCheck(k)[0])),v.Normalizations.registered[k]&&(e=v.Normalizations.registered[k]("extract",a,e)),i=v.Hooks.extractValue(j,e)}else if(v.Normalizations.registered[c]){var l,o;l=v.Normalizations.registered[c]("name",a),"transform"!==l&&(o=h(a,v.Names.prefixCheck(l)[0]),v.Values.isCSSNullValue(o)&&v.Hooks.templates[c]&&(o=v.Hooks.templates[c][1])),i=v.Normalizations.registered[c]("extract",a,o)}if(!/^[\d-]/.test(i))if(g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c))if(/^(height|width)$/i.test(c))try{i=a.getBBox()[c]}catch(p){i=0}else i=a.getAttribute(c);else i=h(a,v.Names.prefixCheck(c)[0]);return v.Values.isCSSNullValue(i)&&(i=0),t.debug>=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,f){var h=c;if("scroll"===c)f.container?f.container["scroll"+f.direction]=d:"Left"===f.direction?b.scrollTo(d,f.alternateValue):b.scrollTo(f.alternateValue,d);else if(v.Normalizations.registered[c]&&"transform"===v.Normalizations.registered[c]("name",a))v.Normalizations.registered[c]("inject",a,d),h="transform",d=g(a).transformCache[c];else{if(v.Hooks.registered[c]){var i=c,j=v.Hooks.getRoot(c);e=e||v.getPropertyValue(a,j),d=v.Hooks.injectValue(i,d,e),c=j}if(v.Normalizations.registered[c]&&(d=v.Normalizations.registered[c]("inject",a,d),c=v.Normalizations.registered[c]("name",a)),h=v.Names.prefixCheck(c)[0],8>=n)try{a.style[h]=d}catch(k){t.debug&&console.log("Browser does not support ["+d+"] for ["+h+"]")}else g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c)?a.setAttribute(c,d):a.style[h]=d;t.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){function b(b){return parseFloat(v.getPropertyValue(a,b))}var c="";if((n||t.State.isAndroid&&!t.State.isChrome)&&g(a).isSVG){var d={translate:[b("translateX"),b("translateY")],skewX:[b("skewX")],skewY:[b("skewY")],scale:1!==b("scale")?[b("scale"),b("scale")]:[b("scaleX"),b("scaleY")],rotate:[b("rotateZ"),0,0]};m.each(g(a).transformCache,function(a){/^translate/i.test(a)?a="translate":/^scale/i.test(a)?a="scale":/^rotate/i.test(a)&&(a="rotate"),d[a]&&(c+=a+"("+d[a].join(" ")+") ",delete d[a])})}else{var e,f;m.each(g(a).transformCache,function(b){return e=g(a).transformCache[b],"transformPerspective"===b?(f=e,!0):(9===n&&"rotateZ"===b&&(b="rotate"),void(c+=b+e+" "))}),f&&(c="perspective"+f+" "+c)}v.setPropertyValue(a,"transform",c)}};v.Hooks.register(),v.Normalizations.register(),t.hook=function(a,b,c){var e=d;return a=f(a),m.each(a,function(a,f){if(g(f)===d&&t.init(f),c===d)e===d&&(e=t.CSS.getPropertyValue(f,b));else{var h=t.CSS.setPropertyValue(f,b,c);"transform"===h[0]&&t.CSS.flushTransformCache(f),e=h}}),e};var w=function(){function a(){return h?B.promise||null:i}function e(){function a(a){function l(a,b){var c=d,e=d,g=d;return p.isArray(a)?(c=a[0],!p.isArray(a[1])&&/^[\d-]/.test(a[1])||p.isFunction(a[1])||v.RegEx.isHex.test(a[1])?g=a[1]:(p.isString(a[1])&&!v.RegEx.isHex.test(a[1])||p.isArray(a[1]))&&(e=b?a[1]:j(a[1],h.duration),a[2]!==d&&(g=a[2]))):c=a,b||(e=e||h.easing),p.isFunction(c)&&(c=c.call(f,y,x)),p.isFunction(g)&&(g=g.call(f,y,x)),[c||0,e,g]}function n(a,b){var c,d;return d=(b||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=v.Values.getUnitType(a)),[d,c]}function r(){var a={myParent:f.parentNode||c.body,position:v.getPropertyValue(f,"position"),fontSize:v.getPropertyValue(f,"fontSize")},d=a.position===I.lastPosition&&a.myParent===I.lastParent,e=a.fontSize===I.lastFontSize;I.lastParent=a.myParent,I.lastPosition=a.position,I.lastFontSize=a.fontSize;var h=100,i={};if(e&&d)i.emToPx=I.lastEmToPx,i.percentToPxWidth=I.lastPercentToPxWidth,i.percentToPxHeight=I.lastPercentToPxHeight;else{var j=g(f).isSVG?c.createElementNS("http://www.w3.org/2000/svg","rect"):c.createElement("div");t.init(j),a.myParent.appendChild(j),m.each(["overflow","overflowX","overflowY"],function(a,b){t.CSS.setPropertyValue(j,b,"hidden")}),t.CSS.setPropertyValue(j,"position",a.position),t.CSS.setPropertyValue(j,"fontSize",a.fontSize),t.CSS.setPropertyValue(j,"boxSizing","content-box"),m.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(a,b){t.CSS.setPropertyValue(j,b,h+"%")}),t.CSS.setPropertyValue(j,"paddingLeft",h+"em"),i.percentToPxWidth=I.lastPercentToPxWidth=(parseFloat(v.getPropertyValue(j,"width",null,!0))||1)/h,i.percentToPxHeight=I.lastPercentToPxHeight=(parseFloat(v.getPropertyValue(j,"height",null,!0))||1)/h,i.emToPx=I.lastEmToPx=(parseFloat(v.getPropertyValue(j,"paddingLeft"))||1)/h,a.myParent.removeChild(j)}return null===I.remToPx&&(I.remToPx=parseFloat(v.getPropertyValue(c.body,"fontSize"))||16),null===I.vwToPx&&(I.vwToPx=parseFloat(b.innerWidth)/100,I.vhToPx=parseFloat(b.innerHeight)/100),i.remToPx=I.remToPx,i.vwToPx=I.vwToPx,i.vhToPx=I.vhToPx,t.debug>=1&&console.log("Unit ratios: "+JSON.stringify(i),f),i}if(h.begin&&0===y)try{h.begin.call(o,o)}catch(u){setTimeout(function(){throw u},1)}if("scroll"===C){var w,z,A,D=/^x$/i.test(h.axis)?"Left":"Top",E=parseFloat(h.offset)||0;h.container?p.isWrapped(h.container)||p.isNode(h.container)?(h.container=h.container[0]||h.container,w=h.container["scroll"+D],A=w+m(f).position()[D.toLowerCase()]+E):h.container=null:(w=t.State.scrollAnchor[t.State["scrollProperty"+D]],z=t.State.scrollAnchor[t.State["scrollProperty"+("Left"===D?"Top":"Left")]],A=m(f).offset()[D.toLowerCase()]+E),i={scroll:{rootPropertyValue:!1,startValue:w,currentValue:w,endValue:A,unitType:"",easing:h.easing,scrollData:{container:h.container,direction:D,alternateValue:z}},element:f},t.debug&&console.log("tweensContainer (scroll): ",i.scroll,f)}else if("reverse"===C){if(!g(f).tweensContainer)return void m.dequeue(f,h.queue);"none"===g(f).opts.display&&(g(f).opts.display="auto"),"hidden"===g(f).opts.visibility&&(g(f).opts.visibility="visible"),g(f).opts.loop=!1,g(f).opts.begin=null,g(f).opts.complete=null,s.easing||delete h.easing,s.duration||delete h.duration,h=m.extend({},g(f).opts,h);var F=m.extend(!0,{},g(f).tweensContainer);for(var G in F)if("element"!==G){var H=F[G].startValue;F[G].startValue=F[G].currentValue=F[G].endValue,F[G].endValue=H,p.isEmptyObject(s)||(F[G].easing=h.easing),t.debug&&console.log("reverse tweensContainer ("+G+"): "+JSON.stringify(F[G]),f)}i=F}else if("start"===C){var F;g(f).tweensContainer&&g(f).isAnimating===!0&&(F=g(f).tweensContainer),m.each(q,function(a,b){if(RegExp("^"+v.Lists.colors.join("$|^")+"$").test(a)){var c=l(b,!0),e=c[0],f=c[1],g=c[2];if(v.RegEx.isHex.test(e)){for(var h=["Red","Green","Blue"],i=v.Values.hexToRgb(e),j=g?v.Values.hexToRgb(g):d,k=0;kL;L++){var M={delay:E.delay,progress:E.progress};L===K-1&&(M.display=E.display,M.visibility=E.visibility,M.complete=E.complete),w(o,"reverse",M)}return a()}};t=m.extend(w,t),t.animate=w;var x=b.requestAnimationFrame||o;return t.State.isMobile||c.hidden===d||c.addEventListener("visibilitychange",function(){c.hidden?(x=function(a){return setTimeout(function(){a(!0)},16)},k()):x=b.requestAnimationFrame||o}),a.Velocity=t,a!==b&&(a.fn.velocity=w,a.fn.velocity.defaults=t.defaults),m.each(["Down","Up"],function(a,b){t.Redirects["slide"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j=i.begin,k=i.complete,l={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},n={};i.display===d&&(i.display="Down"===b?"inline"===t.CSS.Values.getDisplayType(a)?"inline-block":"block":"none"),i.begin=function(){j&&j.call(g,g);for(var c in l){n[c]=a.style[c];var d=t.CSS.getPropertyValue(a,c);l[c]="Down"===b?[d,0]:[0,d]}n.overflow=a.style.overflow,a.style.overflow="hidden"},i.complete=function(){for(var b in n)a.style[b]=n[b];k&&k.call(g,g),h&&h.resolver(g)},t(a,l,i)}}),m.each(["In","Out"],function(a,b){t.Redirects["fade"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j={opacity:"In"===b?1:0},k=i.complete;i.complete=e!==f-1?i.begin=null:function(){k&&k.call(g,g),h&&h.resolver(g)},i.display===d&&(i.display="In"===b?"auto":"none"),t(this,j,i)}}),t}(window.jQuery||window.Zepto||window,window,document)})),!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=na(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===ya||f.eventType===Aa)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ba&&(i>xa||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=ma(l.x)>ma(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:la(c/b),y:la(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Ca:ma(a)>=ma(b)?a>0?Da:Ea:b>0?Fa:Ga}function I(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],La)-J(a[1],a[0],La)}function L(a,b){return I(b[0],b[1],La)/I(a[0],a[1],La)}function M(){this.evEl=Na,this.evWin=Oa,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Ra,this.evWin=Sa,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ua,this.evWin=Va,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Aa|Ba)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xa,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(ya|za)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===ya)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Aa|Ba)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Ta={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Ua="touchstart",Va="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Ta[a.type];if(b===ya&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Aa|Ba)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}});var Wa={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Xa="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wa[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==ta,e=c.pointerType==va;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Aa|Ba)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Ya=v(ja.style,"touchAction"),Za=Ya!==d,$a="compute",_a="auto",ab="manipulation",bb="none",cb="pan-x",db="pan-y";T.prototype={set:function(a){a==$a&&(a=this.compute()),Za&&(this.manager.element.style[Ya]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Za){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bb),f=q(d,db),g=q(d,cb);return e||f&&c&Ha||g&&c&Ia?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var eb=1,fb=2,gb=4,hb=8,ib=hb,jb=16,kb=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hb>d&&b(!0),b(),d>=hb&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kb)},canEmit:function(){for(var a=0;af?Da:Ea,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ca:0>g?Fa:Ga,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fb||!(this.state&fb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(aa,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_a]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Aa|Ba)&&!f)this.reset();else if(a.eventType&ya)this.reset(),this._timer=e(function(){this.state=ib,this.tryEmit()},b.time,this);else if(a.eventType&Aa)return ib;return kb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ib&&(a&&a.eventType&Aa?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=na(),this.manager.emit(this.options.event,this._input)))}}),j(ba,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fb)}}),j(ca,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Ha|Ia,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Ha|Ia)?b=a.velocity:c&Ha?b=a.velocityX:c&Ia&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&ma(b)>this.options.velocity&&a.eventType&Aa},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(da,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ab]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance li > .collapsible-header"),b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}),h.not(b).removeClass("active").parent().removeClass("active"),h.not(b).parent().children(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}})}function d(b){b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}})}function e(a){var b=f(a);return b.length>0}function f(a){return a.closest("li > .collapsible-header")}var g=a(this),h=a(this).find("> li > .collapsible-header"),i=g.data("collapsible");g.off("click.collapse","> li > .collapsible-header"),h.off("click.collapse"),g.on("click.collapse","> li > .collapsible-header",function(g){var h=a(this),j=a(g.target);e(j)&&(j=f(j)),j.toggleClass("active"),b.accordion||"accordion"===i||void 0===i?c(j):(d(j),h.hasClass("active")&&d(h))});var h=g.find("> li > .collapsible-header");b.accordion||"accordion"===i||void 0===i?c(h.filter(".active").first()):h.filter(".active").each(function(){d(a(this))})})},a(document).ready(function(){a(".collapsible").collapsible()})}(jQuery),function(a){a.fn.scrollTo=function(b){return a(this).scrollTop(a(this).scrollTop()-a(this).offset().top+a(b).offset().top),this},a.fn.dropdown=function(b){var c={inDuration:300,outDuration:225,constrain_width:!0,hover:!1,gutter:0,belowOrigin:!1,alignment:"left",stopPropagation:!1};return"open"===b?(this.each(function(){a(this).trigger("open")}),!1):"close"===b?(this.each(function(){a(this).trigger("close")}),!1):void this.each(function(){function b(){void 0!==f.data("induration")&&(g.inDuration=f.data("induration")),void 0!==f.data("outduration")&&(g.outDuration=f.data("outduration")),void 0!==f.data("constrainwidth")&&(g.constrain_width=f.data("constrainwidth")),void 0!==f.data("hover")&&(g.hover=f.data("hover")),void 0!==f.data("gutter")&&(g.gutter=f.data("gutter")),void 0!==f.data("beloworigin")&&(g.belowOrigin=f.data("beloworigin")),void 0!==f.data("alignment")&&(g.alignment=f.data("alignment")),void 0!==f.data("stoppropagation")&&(g.stopPropagation=f.data("stoppropagation"))}function d(c){"focus"===c&&(h=!0),b(),i.addClass("active"),f.addClass("active"),g.constrain_width===!0?i.css("width",f.outerWidth()):i.css("white-space","nowrap");var d=window.innerHeight,e=f.innerHeight(),j=f.offset().left,k=f.offset().top-a(window).scrollTop(),l=g.alignment,m=0,n=0,o=0;g.belowOrigin===!0&&(o=e);var p=0,q=0,r=f.parent();if(r.is("body")||(r[0].scrollHeight>r[0].clientHeight&&(p=r[0].scrollTop),r[0].scrollWidth>r[0].clientWidth&&(q=r[0].scrollLeft)),j+i.innerWidth()>a(window).width()?l="right":j-i.innerWidth()+f.innerWidth()<0&&(l="left"),k+i.innerHeight()>d)if(k+e-i.innerHeight()<0){var s=d-k-o;i.css("max-height",s)}else o||(o+=e),o-=i.innerHeight();if("left"===l)m=g.gutter,n=f.position().left+m;else if("right"===l){var t=f.position().left+f.outerWidth()-i.outerWidth();m=-g.gutter,n=t+m}i.css({position:"absolute",top:f.position().top+o+p,left:n+q}),i.stop(!0,!0).css("opacity",0).slideDown({queue:!1,duration:g.inDuration,easing:"easeOutCubic",complete:function(){a(this).css("height","")}}).animate({opacity:1},{queue:!1,duration:g.inDuration,easing:"easeOutSine"})}function e(){h=!1,i.fadeOut(g.outDuration),i.removeClass("active"),f.removeClass("active"),setTimeout(function(){i.css("max-height","")},g.outDuration)}var f=a(this),g=a.extend({},c,g),h=!1,i=a("#"+f.attr("data-activates"));if(b(),f.after(i),g.hover){var j=!1;f.unbind("click."+f.attr("id")),f.on("mouseenter",function(a){j===!1&&(d(),j=!0)}),f.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-content").is(i)||(i.stop(!0,!0),e(),j=!1)}),i.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-button").is(f)||(i.stop(!0,!0),e(),j=!1)})}else f.unbind("click."+f.attr("id")),f.bind("click."+f.attr("id"),function(b){h||(f[0]!=b.currentTarget||f.hasClass("active")||0!==a(b.target).closest(".dropdown-content").length?f.hasClass("active")&&(e(),a(document).unbind("click."+i.attr("id")+" touchstart."+i.attr("id"))):(b.preventDefault(),g.stopPropagation&&b.stopPropagation(),d("click")),i.hasClass("active")&&a(document).bind("click."+i.attr("id")+" touchstart."+i.attr("id"),function(b){i.is(b.target)||f.is(b.target)||f.find(b.target).length||(e(),a(document).unbind("click."+i.attr("id")+" touchstart."+i.attr("id")))}))});f.on("open",function(a,b){d(b)}),f.on("close",e)})},a(document).ready(function(){a(".dropdown-button").dropdown()})}(jQuery),function(a){var b=0,c=0,d=function(){return c++,"materialize-lean-overlay-"+c};a.fn.extend({openModal:function(c){var e=a("body"),f=e.innerWidth();e.css("overflow","hidden"),e.width(f);var g={opacity:.5,in_duration:350,out_duration:250,ready:void 0,complete:void 0,dismissible:!0,starting_top:"4%",ending_top:"10%"},h=a(this);if(!h.hasClass("open")){var i=d(),j=a('
            ');lStack=++b,j.attr("id",i).css("z-index",1e3+2*lStack),h.data("overlay-id",i).css("z-index",1e3+2*lStack+1),h.addClass("open"),a("body").append(j),c=a.extend(g,c),c.dismissible&&(j.click(function(){h.closeModal(c)}),a(document).on("keyup.leanModal"+i,function(a){27===a.keyCode&&h.closeModal(c)})),h.find(".modal-close").on("click.close",function(a){h.closeModal(c)}),j.css({display:"block",opacity:0}),h.css({display:"block",opacity:0}),j.velocity({opacity:c.opacity},{duration:c.in_duration,queue:!1,ease:"easeOutCubic"}),h.data("associated-overlay",j[0]),h.hasClass("bottom-sheet")?h.velocity({bottom:"0",opacity:1},{duration:c.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof c.ready&&c.ready()}}):(a.Velocity.hook(h,"scaleX",.7),h.css({top:c.starting_top}),h.velocity({top:c.ending_top,opacity:1,scaleX:"1"},{duration:c.in_duration,queue:!1,ease:"easeOutCubic", -complete:function(){"function"==typeof c.ready&&c.ready()}}))}}}),a.fn.extend({closeModal:function(c){var d={out_duration:250,complete:void 0},e=a(this),f=e.data("overlay-id"),g=a("#"+f);e.removeClass("open"),c=a.extend(d,c),a("body").css({overflow:"",width:""}),e.find(".modal-close").off("click.close"),a(document).off("keyup.leanModal"+f),g.velocity({opacity:0},{duration:c.out_duration,queue:!1,ease:"easeOutQuart"}),e.hasClass("bottom-sheet")?e.velocity({bottom:"-100%",opacity:0},{duration:c.out_duration,queue:!1,ease:"easeOutCubic",complete:function(){g.css({display:"none"}),"function"==typeof c.complete&&c.complete(),g.remove(),b--}}):e.velocity({top:c.starting_top,opacity:0,scaleX:.7},{duration:c.out_duration,complete:function(){a(this).css("display","none"),"function"==typeof c.complete&&c.complete(),g.remove(),b--}})}}),a.fn.extend({leanModal:function(b){return this.each(function(){var c={starting_top:"4%"},d=a.extend(c,b);a(this).click(function(b){d.starting_top=(a(this).offset().top-a(window).scrollTop())/1.15;var c=a(this).attr("href")||"#"+a(this).data("target");a(c).openModal(d),b.preventDefault()})})}})}(jQuery),function(a){a.fn.materialbox=function(){return this.each(function(){function b(){f=!1;var b=i.parent(".material-placeholder"),d=(window.innerWidth,window.innerHeight,i.data("width")),g=i.data("height");i.velocity("stop",!0),a("#materialbox-overlay").velocity("stop",!0),a(".materialbox-caption").velocity("stop",!0),a("#materialbox-overlay").velocity({opacity:0},{duration:h,queue:!1,easing:"easeOutQuad",complete:function(){e=!1,a(this).remove()}}),i.velocity({width:d,height:g,left:0,top:0},{duration:h,queue:!1,easing:"easeOutQuad"}),a(".materialbox-caption").velocity({opacity:0},{duration:h,queue:!1,easing:"easeOutQuad",complete:function(){b.css({height:"",width:"",position:"",top:"",left:""}),i.css({height:"",top:"",left:"",width:"","max-width":"",position:"","z-index":""}),i.removeClass("active"),f=!0,a(this).remove(),c&&c.css("overflow","")}})}if(!a(this).hasClass("initialized")){a(this).addClass("initialized");var c,d,e=!1,f=!0,g=275,h=200,i=a(this),j=a("
            ").addClass("material-placeholder");i.wrap(j),i.on("click",function(){var h=i.parent(".material-placeholder"),j=window.innerWidth,k=window.innerHeight,l=i.width(),m=i.height();if(f===!1)return b(),!1;if(e&&f===!0)return b(),!1;f=!1,i.addClass("active"),e=!0,h.css({width:h[0].getBoundingClientRect().width,height:h[0].getBoundingClientRect().height,position:"relative",top:0,left:0}),c=void 0,d=h[0].parentNode;for(;null!==d&&!a(d).is(document);){var n=a(d);"visible"!==n.css("overflow")&&(n.css("overflow","visible"),c=void 0===c?n:c.add(n)),d=d.parentNode}i.css({position:"absolute","z-index":1e3}).data("width",l).data("height",m);var o=a('
            ').css({opacity:0}).click(function(){f===!0&&b()});if(i.before(o),o.velocity({opacity:1},{duration:g,queue:!1,easing:"easeOutQuad"}),""!==i.data("caption")){var p=a('
            ');p.text(i.data("caption")),a("body").append(p),p.css({display:"inline"}),p.velocity({opacity:1},{duration:g,queue:!1,easing:"easeOutQuad"})}var q=0,r=l/j,s=m/k,t=0,u=0;r>s?(q=m/l,t=.9*j,u=.9*j*q):(q=l/m,t=.9*k*q,u=.9*k),i.hasClass("responsive-img")?i.velocity({"max-width":t,width:l},{duration:0,queue:!1,complete:function(){i.css({left:0,top:0}).velocity({height:u,width:t,left:a(document).scrollLeft()+j/2-i.parent(".material-placeholder").offset().left-t/2,top:a(document).scrollTop()+k/2-i.parent(".material-placeholder").offset().top-u/2},{duration:g,queue:!1,easing:"easeOutQuad",complete:function(){f=!0}})}}):i.css("left",0).css("top",0).velocity({height:u,width:t,left:a(document).scrollLeft()+j/2-i.parent(".material-placeholder").offset().left-t/2,top:a(document).scrollTop()+k/2-i.parent(".material-placeholder").offset().top-u/2},{duration:g,queue:!1,easing:"easeOutQuad",complete:function(){f=!0}})}),a(window).scroll(function(){e&&b()}),a(document).keyup(function(a){27===a.keyCode&&f===!0&&e&&b()})}})},a(document).ready(function(){a(".materialboxed").materialbox()})}(jQuery),function(a){a.fn.parallax=function(){var b=a(window).width();return this.each(function(c){function d(c){var d;d=601>b?e.height()>0?e.height():e.children("img").height():e.height()>0?e.height():500;var f=e.children("img").first(),g=f.height(),h=g-d,i=e.offset().top+d,j=e.offset().top,k=a(window).scrollTop(),l=window.innerHeight,m=k+l,n=(m-j)/(d+l),o=Math.round(h*n);c&&f.css("display","block"),i>k&&k+l>j&&f.css("transform","translate3D(-50%,"+o+"px, 0)")}var e=a(this);e.addClass("parallax"),e.children("img").one("load",function(){d(!0)}).each(function(){this.complete&&a(this).load()}),a(window).scroll(function(){b=a(window).width(),d(!1)}),a(window).resize(function(){b=a(window).width(),d(!1)})})}}(jQuery),function(a){var b={init:function(b){var c={onShow:null};return b=a.extend(c,b),this.each(function(){var c=a(this);a(window).width();c.width("100%");var d,e,f=c.find("li.tab a"),g=c.width(),h=Math.max(g,c[0].scrollWidth)/f.length,i=0;d=a(f.filter('[href="'+location.hash+'"]')),0===d.length&&(d=a(this).find("li.tab a.active").first()),0===d.length&&(d=a(this).find("li.tab a").first()),d.addClass("active"),i=f.index(d),0>i&&(i=0),void 0!==d[0]&&(e=a(d[0].hash)),c.append('
            ');var j=c.find(".indicator");c.is(":visible")&&(j.css({right:g-(i+1)*h}),j.css({left:i*h})),a(window).resize(function(){g=c.width(),h=Math.max(g,c[0].scrollWidth)/f.length,0>i&&(i=0),0!==h&&0!==g&&(j.css({right:g-(i+1)*h}),j.css({left:i*h}))}),f.not(d).each(function(){a(this.hash).hide()}),c.on("click","a",function(k){if(a(this).parent().hasClass("disabled"))return void k.preventDefault();if(!a(this).attr("target")){g=c.width(),h=Math.max(g,c[0].scrollWidth)/f.length,d.removeClass("active"),void 0!==e&&e.hide(),d=a(this),e=a(this.hash),f=c.find("li.tab a"),d.addClass("active");var l=i;i=f.index(a(this)),0>i&&(i=0),void 0!==e&&(e.show(),"function"==typeof b.onShow&&b.onShow.call(this,e)),i-l>=0?(j.velocity({right:g-(i+1)*h},{duration:300,queue:!1,easing:"easeOutQuad"}),j.velocity({left:i*h},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})):(j.velocity({left:i*h},{duration:300,queue:!1,easing:"easeOutQuad"}),j.velocity({right:g-(i+1)*h},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})),k.preventDefault()}})})},select_tab:function(a){this.find('a[href="#'+a+'"]').trigger("click")}};a.fn.tabs=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tooltip"):b.init.apply(this,arguments)},a(document).ready(function(){a("ul.tabs").tabs()})}(jQuery),function(a){a.fn.tooltip=function(c){var d=5,e={delay:350,tooltip:"",position:"bottom",html:!1};return"remove"===c?(this.each(function(){a("#"+a(this).attr("data-tooltip-id")).remove(),a(this).off("mouseenter.tooltip mouseleave.tooltip")}),!1):(c=a.extend(e,c),this.each(function(){var e=Materialize.guid(),f=a(this);f.attr("data-tooltip-id",e);var g,h,i,j,k,l,m=function(){g=f.attr("data-html")?"true"===f.attr("data-html"):c.html,h=f.attr("data-delay"),h=void 0===h||""===h?c.delay:h,i=f.attr("data-position"),i=void 0===i||""===i?c.position:i,j=f.attr("data-tooltip"),j=void 0===j||""===j?c.tooltip:j};m();var n=function(){var b=a('
            ');return j=g?a("").html(j):a("").text(j),b.append(j).appendTo(a("body")).attr("id",e),l=a('
            '),l.appendTo(b),b};k=n(),f.off("mouseenter.tooltip mouseleave.tooltip");var o,p=!1;f.on({"mouseenter.tooltip":function(a){var c=function(){m(),p=!0,k.velocity("stop"),l.velocity("stop"),k.css({display:"block",left:"0px",top:"0px"});var a,c,e,g=f.outerWidth(),h=f.outerHeight(),j=k.outerHeight(),n=k.outerWidth(),o="0px",q="0px",r=8,s=8;"top"===i?(a=f.offset().top-j-d,c=f.offset().left+g/2-n/2,e=b(c,a,n,j),o="-10px",l.css({bottom:0,left:0,borderRadius:"14px 14px 0 0",transformOrigin:"50% 100%",marginTop:j,marginLeft:n/2-l.width()/2})):"left"===i?(a=f.offset().top+h/2-j/2,c=f.offset().left-n-d,e=b(c,a,n,j),q="-10px",l.css({top:"-7px",right:0,width:"14px",height:"14px",borderRadius:"14px 0 0 14px",transformOrigin:"95% 50%",marginTop:j/2,marginLeft:n})):"right"===i?(a=f.offset().top+h/2-j/2,c=f.offset().left+g+d,e=b(c,a,n,j),q="+10px",l.css({top:"-7px",left:0,width:"14px",height:"14px",borderRadius:"0 14px 14px 0",transformOrigin:"5% 50%",marginTop:j/2,marginLeft:"0px"})):(a=f.offset().top+f.outerHeight()+d,c=f.offset().left+g/2-n/2,e=b(c,a,n,j),o="+10px",l.css({top:0,left:0,marginLeft:n/2-l.width()/2})),k.css({top:e.y,left:e.x}),r=Math.SQRT2*n/parseInt(l.css("width")),s=Math.SQRT2*j/parseInt(l.css("height")),k.velocity({marginTop:o,marginLeft:q},{duration:350,queue:!1}).velocity({opacity:1},{duration:300,delay:50,queue:!1}),l.css({display:"block"}).velocity({opacity:1},{duration:55,delay:0,queue:!1}).velocity({scaleX:r,scaleY:s},{duration:300,delay:0,queue:!1,easing:"easeInOutQuad"})};o=setTimeout(c,h)},"mouseleave.tooltip":function(){p=!1,clearTimeout(o),setTimeout(function(){p!==!0&&(k.velocity({opacity:0,marginTop:0,marginLeft:0},{duration:225,queue:!1}),l.velocity({opacity:0,scaleX:1,scaleY:1},{duration:225,queue:!1,complete:function(){l.css("display","none"),k.css("display","none"),p=!1}}))},225)}})}))};var b=function(b,c,d,e){var f=b,g=c;return 0>f?f=4:f+d>window.innerWidth&&(f-=f+d-window.innerWidth),0>g?g=4:g+e>window.innerHeight+a(window).scrollTop&&(g-=g+e-window.innerHeight),{x:f,y:g}};a(document).ready(function(){a(".tooltipped").tooltip()})}(jQuery),function(a){"use strict";function b(a){return null!==a&&a===a.window}function c(a){return b(a)?a:9===a.nodeType&&a.defaultView}function d(a){var b,d,e={top:0,left:0},f=a&&a.ownerDocument;return b=f.documentElement,"undefined"!=typeof a.getBoundingClientRect&&(e=a.getBoundingClientRect()),d=c(f),{top:e.top+d.pageYOffset-b.clientTop,left:e.left+d.pageXOffset-b.clientLeft}}function e(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(b+=c+":"+a[c]+";");return b}function f(a){if(k.allowEvent(a)===!1)return null;for(var b=null,c=a.target||a.srcElement;null!==c.parentElement;){if(!(c instanceof SVGElement||-1===c.className.indexOf("waves-effect"))){b=c;break}if(c.classList.contains("waves-effect")){b=c;break}c=c.parentElement}return b}function g(b){var c=f(b);null!==c&&(j.show(b,c),"ontouchstart"in a&&(c.addEventListener("touchend",j.hide,!1),c.addEventListener("touchcancel",j.hide,!1)),c.addEventListener("mouseup",j.hide,!1),c.addEventListener("mouseleave",j.hide,!1))}var h=h||{},i=document.querySelectorAll.bind(document),j={duration:750,show:function(a,b){if(2===a.button)return!1;var c=b||this,f=document.createElement("div");f.className="waves-ripple",c.appendChild(f);var g=d(c),h=a.pageY-g.top,i=a.pageX-g.left,k="scale("+c.clientWidth/100*10+")";"touches"in a&&(h=a.touches[0].pageY-g.top,i=a.touches[0].pageX-g.left),f.setAttribute("data-hold",Date.now()),f.setAttribute("data-scale",k),f.setAttribute("data-x",i),f.setAttribute("data-y",h);var l={top:h+"px",left:i+"px"};f.className=f.className+" waves-notransition",f.setAttribute("style",e(l)),f.className=f.className.replace("waves-notransition",""),l["-webkit-transform"]=k,l["-moz-transform"]=k,l["-ms-transform"]=k,l["-o-transform"]=k,l.transform=k,l.opacity="1",l["-webkit-transition-duration"]=j.duration+"ms",l["-moz-transition-duration"]=j.duration+"ms",l["-o-transition-duration"]=j.duration+"ms",l["transition-duration"]=j.duration+"ms",l["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f.setAttribute("style",e(l))},hide:function(a){k.touchup(a);var b=this,c=(1.4*b.clientWidth,null),d=b.getElementsByClassName("waves-ripple");if(!(d.length>0))return!1;c=d[d.length-1];var f=c.getAttribute("data-x"),g=c.getAttribute("data-y"),h=c.getAttribute("data-scale"),i=Date.now()-Number(c.getAttribute("data-hold")),l=350-i;0>l&&(l=0),setTimeout(function(){var a={top:g+"px",left:f+"px",opacity:"0","-webkit-transition-duration":j.duration+"ms","-moz-transition-duration":j.duration+"ms","-o-transition-duration":j.duration+"ms","transition-duration":j.duration+"ms","-webkit-transform":h,"-moz-transform":h,"-ms-transform":h,"-o-transform":h,transform:h};c.setAttribute("style",e(a)),setTimeout(function(){try{b.removeChild(c)}catch(a){return!1}},j.duration)},l)},wrapInput:function(a){for(var b=0;b0&&(k.touches-=1)},500):"mousedown"===a.type&&k.touches>0&&(b=!1),b},touchup:function(a){k.allowEvent(a)}};h.displayEffect=function(b){b=b||{},"duration"in b&&(j.duration=b.duration),j.wrapInput(i(".waves-effect")),"ontouchstart"in a&&document.body.addEventListener("touchstart",g,!1),document.body.addEventListener("mousedown",g,!1)},h.attach=function(b){"input"===b.tagName.toLowerCase()&&(j.wrapInput([b]),b=b.parentElement),"ontouchstart"in a&&b.addEventListener("touchstart",g,!1),b.addEventListener("mousedown",g,!1)},a.Waves=h,document.addEventListener("DOMContentLoaded",function(){h.displayEffect()},!1)}(window),Materialize.toast=function(a,b,c,d){function e(a){var b=document.createElement("div");if(b.classList.add("toast"),c)for(var e=c.split(" "),f=0,g=e.length;g>f;f++)b.classList.add(e[f]);("object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&null!==a&&1===a.nodeType&&"string"==typeof a.nodeName)?b.appendChild(a):a instanceof jQuery?b.appendChild(a[0]):b.innerHTML=a;var h=new Hammer(b,{prevent_default:!1});return h.on("pan",function(a){var c=a.deltaX,d=80;b.classList.contains("panning")||b.classList.add("panning");var e=1-Math.abs(c/d);0>e&&(e=0),Vel(b,{left:c,opacity:e},{duration:50,queue:!1,easing:"easeOutQuad"})}),h.on("panend",function(a){var c=a.deltaX,e=80;Math.abs(c)>e?Vel(b,{marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),b.parentNode.removeChild(b)}}):(b.classList.remove("panning"),Vel(b,{left:0,opacity:1},{duration:300,easing:"easeOutExpo",queue:!1}))}),b}c=c||"";var f=document.getElementById("toast-container");null===f&&(f=document.createElement("div"),f.id="toast-container",document.body.appendChild(f));var g=e(a);a&&f.appendChild(g),g.style.top="35px",g.style.opacity=0,Vel(g,{top:"0px",opacity:1},{duration:300,easing:"easeOutCubic",queue:!1});var h=b,i=setInterval(function(){null===g.parentNode&&window.clearInterval(i),g.classList.contains("panning")||(h-=20),0>=h&&(Vel(g,{opacity:0,marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),this[0].parentNode.removeChild(this[0])}}),window.clearInterval(i))},20)},function(a){var b={init:function(b){var c={menuWidth:300,edge:"left",closeOnClick:!1};b=a.extend(c,b),a(this).each(function(){function c(c){g=!1,h=!1,a("body").css({overflow:"",width:""}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),"left"===b.edge?(f.css({width:"",right:"",left:"0"}),e.velocity({translateX:"-100%"},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}})):(f.css({width:"",right:"0",left:""}),e.velocity({translateX:"100%"},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}}))}var d=a(this),e=a("#"+d.attr("data-activates"));300!=b.menuWidth&&e.css("width",b.menuWidth);var f=a('
            ');a("body").append(f),"left"==b.edge?(e.css("transform","translateX(-100%)"),f.css({left:0})):(e.addClass("right-aligned").css("transform","translateX(100%)"),f.css({right:0})),e.hasClass("fixed")&&window.innerWidth>992&&e.css("transform","translateX(0)"),e.hasClass("fixed")&&a(window).resize(function(){window.innerWidth>992?0!==a("#sidenav-overlay").length&&h?c(!0):e.css("transform","translateX(0%)"):h===!1&&("left"===b.edge?e.css("transform","translateX(-100%)"):e.css("transform","translateX(100%)"))}),b.closeOnClick===!0&&e.on("click.itemclick","a:not(.collapsible-header)",function(){c()});var g=!1,h=!1;f.on("click",function(){h&&c()}),f.hammer({prevent_default:!1}).bind("pan",function(d){if("touch"==d.gesture.pointerType){var f=(d.gesture.direction,d.gesture.center.x),g=(d.gesture.center.y,d.gesture.velocityX,a("body")),i=g.innerWidth();if(g.css("overflow","hidden"),g.width(i),0===a("#sidenav-overlay").length){var j=a('
            ');j.css("opacity",0).click(function(){c()}),a("body").append(j)}if("left"===b.edge&&(f>b.menuWidth?f=b.menuWidth:0>f&&(f=0)),"left"===b.edge)f=b.menuWidth/2&&(h=!0),e.css("transform","translateX("+(f-b.menuWidth)+"px)");else{f=window.innerWidth-b.menuWidth/2&&(h=!1);var k=f-b.menuWidth/2;0>k&&(k=0),e.css("transform","translateX("+k+"px)")}var l;"left"===b.edge?(l=f/b.menuWidth,a("#sidenav-overlay").velocity({opacity:l},{duration:10,queue:!1,easing:"easeOutQuad"})):(l=Math.abs((f-window.innerWidth)/b.menuWidth),a("#sidenav-overlay").velocity({opacity:l},{duration:10,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(c){if("touch"==c.gesture.pointerType){var d=c.gesture.velocityX,i=c.gesture.center.x,j=i-b.menuWidth,k=i-b.menuWidth/2;j>0&&(j=0),0>k&&(k=0),g=!1,"left"===b.edge?h&&.3>=d||-.5>d?(0!==j&&e.velocity({translateX:[0,j]},{duration:300,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:0,left:""}),h=!0):(!h||d>.3)&&(a("body").css({overflow:"",width:""}),e.velocity({translateX:[-1*b.menuWidth-10,j]},{duration:200,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:"",left:0})):h&&d>=-.3||d>.5?(0!==k&&e.velocity({translateX:[0,k]},{duration:300,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:"",left:0}),h=!0):(!h||-.3>d)&&(a("body").css({overflow:"",width:""}),e.velocity({translateX:[b.menuWidth+10,k]},{duration:200,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:0,left:""}))}}),d.click(function(){if(h===!0)h=!1,g=!1,c();else{var d=a("body"),i=d.innerWidth();d.css("overflow","hidden"),d.width(i),a("body").append(f),"left"===b.edge?(f.css({width:"50%",right:0,left:""}),e.velocity({translateX:[0,-1*b.menuWidth]},{duration:300,queue:!1,easing:"easeOutQuad"})):(f.css({width:"50%",right:"",left:0}),e.velocity({translateX:[0,b.menuWidth]},{duration:300,queue:!1,easing:"easeOutQuad"}));var j=a('
            ');j.css("opacity",0).click(function(){h=!1,g=!1,c(),j.velocity({opacity:0},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}})}),a("body").append(j),j.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){h=!0,g=!1}})}return!1})})},show:function(){this.trigger("click")},hide:function(){a("#sidenav-overlay").trigger("click")}};a.fn.sideNav=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.sideNav"):b.init.apply(this,arguments)}}(jQuery),function(a){function b(b,c,d,e){var f=a();return a.each(g,function(a,g){if(g.height()>0){var h=g.offset().top,i=g.offset().left,j=i+g.width(),k=h+g.height(),l=!(i>c||e>j||h>d||b>k);l&&f.push(g)}}),f}function c(){++j;var c=f.scrollTop(),d=f.scrollLeft(),e=d+f.width(),g=c+f.height(),i=b(c+k.top+200,e+k.right,g+k.bottom,d+k.left);a.each(i,function(a,b){var c=b.data("scrollSpy:ticks");"number"!=typeof c&&b.triggerHandler("scrollSpy:enter"),b.data("scrollSpy:ticks",j)}),a.each(h,function(a,b){var c=b.data("scrollSpy:ticks");"number"==typeof c&&c!==j&&(b.triggerHandler("scrollSpy:exit"),b.data("scrollSpy:ticks",null))}),h=i}function d(){f.trigger("scrollSpy:winSize")}function e(a,b,c){var d,e,f,g=null,h=0;c||(c={});var i=function(){h=c.leading===!1?0:l(),g=null,f=a.apply(d,e),d=e=null};return function(){var j=l();h||c.leading!==!1||(h=j);var k=b-(j-h);return d=this,e=arguments,0>=k?(clearTimeout(g),g=null,h=j,f=a.apply(d,e),d=e=null):g||c.trailing===!1||(g=setTimeout(i,k)),f}}var f=a(window),g=[],h=[],i=!1,j=0,k={top:0,right:0,bottom:0,left:0},l=Date.now||function(){return(new Date).getTime()};a.scrollSpy=function(b,d){var h={throttle:100,scrollOffset:200};d=a.extend(h,d);var j=[];b=a(b),b.each(function(b,c){g.push(a(c)),a(c).data("scrollSpy:id",b),a('a[href="#'+a(c).attr("id")+'"]').click(function(b){b.preventDefault();var c=a(this.hash).offset().top+1;a("html, body").animate({scrollTop:c-d.scrollOffset},{duration:400,queue:!1,easing:"easeOutCubic"})})}),k.top=d.offsetTop||0,k.right=d.offsetRight||0,k.bottom=d.offsetBottom||0,k.left=d.offsetLeft||0;var l=e(c,d.throttle||100),m=function(){a(document).ready(l)};return i||(f.on("scroll",m),f.on("resize",m),i=!0),setTimeout(m,0),b.on("scrollSpy:enter",function(){j=a.grep(j,function(a){return 0!=a.height()});var b=a(this);j[0]?(a('a[href="#'+j[0].attr("id")+'"]').removeClass("active"),b.data("scrollSpy:id")");e.html(g),b.is(":visible")?e.css("width",b.width()):e.css("width",a(window).width()/2),b.css("height",e.height())}Materialize.updateTextFields=function(){var b="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a(b).each(function(b,c){a(c).val().length>0||c.autofocus||void 0!==a(this).attr("placeholder")||a(c)[0].validity.badInput===!0?a(this).siblings("label").addClass("active"):a(this).siblings("label").removeClass("active")})};var c="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a(document).on("change",c,function(){(0!==a(this).val().length||void 0!==a(this).attr("placeholder"))&&a(this).siblings("label").addClass("active"),validate_field(a(this))}),a(document).ready(function(){Materialize.updateTextFields()}),a(document).on("reset",function(b){var d=a(b.target);d.is("form")&&(d.find(c).removeClass("valid").removeClass("invalid"),d.find(c).each(function(){""===a(this).attr("value")&&a(this).siblings("label").removeClass("active")}),d.find("select.initialized").each(function(){var a=d.find("option[selected]").text();d.siblings("input.select-dropdown").val(a)}))}),a(document).on("focus",c,function(){a(this).siblings("label, .prefix").addClass("active")}),a(document).on("blur",c,function(){var b=a(this),c=".prefix";0===b.val().length&&b[0].validity.badInput!==!0&&void 0===b.attr("placeholder")&&(c+=", label"),b.siblings(c).removeClass("active"),validate_field(b)}),window.validate_field=function(a){var b=void 0!==a.attr("length"),c=parseInt(a.attr("length")),d=a.val().length;0===a.val().length&&a[0].validity.badInput===!1?a.hasClass("validate")&&(a.removeClass("valid"),a.removeClass("invalid")):a.hasClass("validate")&&(a.is(":valid")&&b&&c>=d||a.is(":valid")&&!b?(a.removeClass("invalid"),a.addClass("valid")):(a.removeClass("valid"),a.addClass("invalid")))};var d="input[type=radio], input[type=checkbox]";a(document).on("keyup.radio",d,function(b){if(9===b.which){a(this).addClass("tabbed");var c=a(this);return void c.one("blur",function(b){a(this).removeClass("tabbed")})}});var e=a(".hiddendiv").first();e.length||(e=a('
            '),a("body").append(e));var f=".materialize-textarea";a(f).each(function(){var c=a(this);c.val().length&&b(c)}),a("body").on("keyup keydown autoresize",f,function(){b(a(this))}),a(document).on("change",'.file-field input[type="file"]',function(){for(var b=a(this).closest(".file-field"),c=b.find("input.file-path"),d=a(this)[0].files,e=[],f=0;f
            ');a(this).after(b)});var j=".range-field";a(document).on("change",h,function(b){var c=a(this).siblings(".thumb");c.find(".value").html(a(this).val())}),a(document).on("input mousedown touchstart",h,function(b){var c=a(this).siblings(".thumb"),d=a(this).outerWidth();c.length<=0&&(c=a(''),a(this).after(c)),c.find(".value").html(a(this).val()),i=!0,a(this).addClass("active"),c.hasClass("active")||c.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),"input"!==b.type&&(g=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left,0>g?g=0:g>d&&(g=d),c.addClass("active").css("left",g)),c.find(".value").html(a(this).val())}),a(document).on("mouseup touchend",j,function(){i=!1,a(this).removeClass("active")}),a(document).on("mousemove touchmove",j,function(b){var c,d=a(this).children(".thumb");if(i){d.hasClass("active")||d.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),c=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left;var e=a(this).outerWidth();0>c?c=0:c>e&&(c=e),d.addClass("active").css("left",c),d.find(".value").html(d.siblings(h).val())}}),a(document).on("mouseout touchleave",j,function(){if(!i){var b=a(this).children(".thumb");b.hasClass("active")&&b.velocity({height:"0",width:"0",top:"10px",marginLeft:"-6px"},{duration:100}),b.removeClass("active")}}),a.fn.autocomplete=function(b){var c={data:{}};return b=a.extend(c,b),this.each(function(){var c=a(this),d=b.data,e=c.closest(".input-field");if(!a.isEmptyObject(d)){var f=a('');e.length?e.append(f):c.after(f);var g=function(a,b){var c=b.find("img"),d=b.text().toLowerCase().indexOf(""+a.toLowerCase()),e=d+a.length-1,f=b.text().slice(0,d),g=b.text().slice(d,e+1),h=b.text().slice(e+1);b.html(""+f+""+g+""+h+""),c.length&&b.prepend(c)};c.on("keyup",function(b){if(13===b.which)return void f.find("li").first().click();var e=c.val().toLowerCase();if(f.empty(),""!==e)for(var h in d)if(d.hasOwnProperty(h)&&-1!==h.toLowerCase().indexOf(e)&&h.toLowerCase()!==e){var i=a("
          • ");d[h]?i.append(''+h+""):i.append(""+h+""),f.append(i),g(e,i)}}),f.on("click","li",function(){c.val(a(this).text().trim()),f.empty()})}})}}),a.fn.material_select=function(b){function c(a,b,c){var e=a.indexOf(b),f=-1===e;return f?a.push(b):a.splice(e,1),c.siblings("ul.dropdown-content").find("li").eq(b).toggleClass("active"),c.find("option").eq(b).prop("selected",f),d(a,c),f}function d(a,b){for(var c="",d=0,e=a.length;e>d;d++){var f=b.find("option").eq(a[d]).text();c+=0===d?f:", "+f}""===c&&(c=b.find("option:disabled").eq(0).text()),b.siblings("input.select-dropdown").val(c)}a(this).each(function(){var d=a(this);if(!d.hasClass("browser-default")){var e=d.attr("multiple")?!0:!1,f=d.data("select-id");if(f&&(d.parent().find("span.caret").remove(),d.parent().find("input").remove(),d.unwrap(),a("ul#select-options-"+f).remove()),"destroy"===b)return void d.data("select-id",null).removeClass("initialized");var g=Materialize.guid();d.data("select-id",g);var h=a('
            ');h.addClass(d.attr("class"));var i=a(''),j=d.children("option, optgroup"),k=[],l=!1,m=d.find("option:selected").html()||d.find("option:first").html()||"",n=function(b,c,d){var e=c.is(":disabled")?"disabled ":"",f="optgroup-option"===d?"optgroup-option ":"",g=c.data("icon"),h=c.attr("class");if(g){var j="";return h&&(j=' class="'+h+'"'),"multiple"===d?i.append(a('
          • "+c.html()+"
          • ")):i.append(a('
          • "+c.html()+"
          • ")),!0}"multiple"===d?i.append(a('
          • "+c.html()+"
          • ")):i.append(a('
          • '+c.html()+"
          • "))};j.length&&j.each(function(){if(a(this).is("option"))e?n(d,a(this),"multiple"):n(d,a(this));else if(a(this).is("optgroup")){var b=a(this).children("option");i.append(a('
          • '+a(this).attr("label")+"
          • ")),b.each(function(){n(d,a(this),"optgroup-option")})}}),i.find("li:not(.optgroup)").each(function(f){a(this).click(function(g){if(!a(this).hasClass("disabled")&&!a(this).hasClass("optgroup")){var h=!0;e?(a('input[type="checkbox"]',this).prop("checked",function(a,b){return!b}),h=c(k,a(this).index(),d),q.trigger("focus")):(i.find("li").removeClass("active"),a(this).toggleClass("active"),q.val(a(this).text())),r(i,a(this)),d.find("option").eq(f).prop("selected",h),d.trigger("change"),"undefined"!=typeof b&&b()}g.stopPropagation()})}),d.wrap(h);var o=a('');d.is(":disabled")&&o.addClass("disabled");var p=m.replace(/"/g,"""),q=a('');d.before(q),q.before(o),q.after(i),d.is(":disabled")||q.dropdown({hover:!1,closeOnClick:!1}),d.attr("tabindex")&&a(q[0]).attr("tabindex",d.attr("tabindex")),d.addClass("initialized"),q.on({focus:function(){if(a("ul.select-dropdown").not(i[0]).is(":visible")&&a("input.select-dropdown").trigger("close"),!i.is(":visible")){a(this).trigger("open",["focus"]);var b=a(this).val(),c=i.find("li").filter(function(){return a(this).text().toLowerCase()===b.toLowerCase()})[0];r(i,c)}},click:function(a){a.stopPropagation()}}),q.on("blur",function(){e||a(this).trigger("close"),i.find("li.selected").removeClass("selected")}),i.hover(function(){l=!0},function(){l=!1}),a(window).on({click:function(){e&&(l||q.trigger("close"))}}),e&&d.find("option:selected:not(:disabled)").each(function(){ -var b=a(this).index();c(k,b,d),i.find("li").eq(b).find(":checkbox").prop("checked",!0)});var r=function(b,c){if(c){b.find("li.selected").removeClass("selected");var d=a(c);d.addClass("selected"),i.scrollTo(d)}},s=[],t=function(b){if(9==b.which)return void q.trigger("close");if(40==b.which&&!i.is(":visible"))return void q.trigger("open");if(13!=b.which||i.is(":visible")){b.preventDefault();var c=String.fromCharCode(b.which).toLowerCase(),d=[9,13,27,38,40];if(c&&-1===d.indexOf(b.which)){s.push(c);var f=s.join(""),g=i.find("li").filter(function(){return 0===a(this).text().toLowerCase().indexOf(f)})[0];g&&r(i,g)}if(13==b.which){var h=i.find("li.selected:not(.disabled)")[0];h&&(a(h).trigger("click"),e||q.trigger("close"))}40==b.which&&(g=i.find("li.selected").length?i.find("li.selected").next("li:not(.disabled)")[0]:i.find("li:not(.disabled)")[0],r(i,g)),27==b.which&&q.trigger("close"),38==b.which&&(g=i.find("li.selected").prev("li:not(.disabled)")[0],g&&r(i,g)),setTimeout(function(){s=[]},1e3)}};q.on("keydown",t)}})}}(jQuery),function(a){var b={init:function(b){var c={indicators:!0,height:400,transition:500,interval:6e3};return b=a.extend(c,b),this.each(function(){function c(a,b){a.hasClass("center-align")?a.velocity({opacity:0,translateY:-100},{duration:b,queue:!1}):a.hasClass("right-align")?a.velocity({opacity:0,translateX:100},{duration:b,queue:!1}):a.hasClass("left-align")&&a.velocity({opacity:0,translateX:-100},{duration:b,queue:!1})}function d(a){a>=j.length?a=0:0>a&&(a=j.length-1),k=i.find(".active").index(),k!=a&&(e=j.eq(k),$caption=e.find(".caption"),e.removeClass("active"),e.velocity({opacity:0},{duration:b.transition,queue:!1,easing:"easeOutQuad",complete:function(){j.not(".active").velocity({opacity:0,translateX:0,translateY:0},{duration:0,queue:!1})}}),c($caption,b.transition),b.indicators&&f.eq(k).removeClass("active"),j.eq(a).velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),j.eq(a).find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,delay:b.transition,queue:!1,easing:"easeOutQuad"}),j.eq(a).addClass("active"),b.indicators&&f.eq(a).addClass("active"))}var e,f,g,h=a(this),i=h.find("ul.slides").first(),j=i.find("> li"),k=i.find(".active").index();-1!=k&&(e=j.eq(k)),h.hasClass("fullscreen")||(b.indicators?h.height(b.height+40):h.height(b.height),i.height(b.height)),j.find(".caption").each(function(){c(a(this),0)}),j.find("img").each(function(){var b="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";a(this).attr("src")!==b&&(a(this).css("background-image","url("+a(this).attr("src")+")"),a(this).attr("src",b))}),b.indicators&&(f=a('
              '),j.each(function(c){var e=a('
            • ');e.click(function(){var c=i.parent(),e=c.find(a(this)).index();d(e),clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval)}),f.append(e)}),h.append(f),f=h.find("ul.indicators").find("li.indicator-item")),e?e.show():(j.first().addClass("active").velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),k=0,e=j.eq(k),b.indicators&&f.eq(k).addClass("active")),e.find("img").each(function(){e.find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,queue:!1,easing:"easeOutQuad"})}),g=setInterval(function(){k=i.find(".active").index(),d(k+1)},b.transition+b.interval);var l=!1,m=!1,n=!1;h.hammer({prevent_default:!1}).bind("pan",function(a){if("touch"===a.gesture.pointerType){clearInterval(g);var b=a.gesture.direction,c=a.gesture.deltaX,d=a.gesture.velocityX;$curr_slide=i.find(".active"),$curr_slide.velocity({translateX:c},{duration:50,queue:!1,easing:"easeOutQuad"}),4===b&&(c>h.innerWidth()/2||-.65>d)?n=!0:2===b&&(c<-1*h.innerWidth()/2||d>.65)&&(m=!0);var e;m&&(e=$curr_slide.next(),0===e.length&&(e=j.first()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"})),n&&(e=$curr_slide.prev(),0===e.length&&(e=j.last()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(a){"touch"===a.gesture.pointerType&&($curr_slide=i.find(".active"),l=!1,curr_index=i.find(".active").index(),!n&&!m||j.length<=1?$curr_slide.velocity({translateX:0},{duration:300,queue:!1,easing:"easeOutQuad"}):m?(d(curr_index+1),$curr_slide.velocity({translateX:-1*h.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):n&&(d(curr_index-1),$curr_slide.velocity({translateX:h.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})),m=!1,n=!1,clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval))}),h.on("sliderPause",function(){clearInterval(g)}),h.on("sliderStart",function(){clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval)}),h.on("sliderNext",function(){k=i.find(".active").index(),d(k+1)}),h.on("sliderPrev",function(){k=i.find(".active").index(),d(k-1)})})},pause:function(){a(this).trigger("sliderPause")},start:function(){a(this).trigger("sliderStart")},next:function(){a(this).trigger("sliderNext")},prev:function(){a(this).trigger("sliderPrev")}};a.fn.slider=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tooltip"):b.init.apply(this,arguments)}}(jQuery),function(a){a(document).ready(function(){a(document).on("click.card",".card",function(b){a(this).find("> .card-reveal").length&&(a(b.target).is(a(".card-reveal .card-title"))||a(b.target).is(a(".card-reveal .card-title i"))?a(this).find(".card-reveal").velocity({translateY:0},{duration:225,queue:!1,easing:"easeInOutQuad",complete:function(){a(this).css({display:"none"})}}):(a(b.target).is(a(".card .activator"))||a(b.target).is(a(".card .activator i")))&&(a(b.target).closest(".card").css("overflow","hidden"),a(this).find(".card-reveal").css({display:"block"}).velocity("stop",!1).velocity({translateY:"-100%"},{duration:300,queue:!1,easing:"easeInOutQuad"})))})})}(jQuery),function(a){var b=!1,c={data:[],placeholder:"",secondaryPlaceholder:""};a(document).ready(function(){a(document).on("click",".chip .close",function(b){var c=a(this).closest(".chips");c.data("initialized")||a(this).closest(".chip").remove()})}),a.fn.material_chip=function(d){var e=this;return this.$el=a(this),this.$document=a(document),this.SELS={CHIPS:".chips",CHIP:".chip",INPUT:"input",DELETE:".material-icons",SELECTED_CHIP:".selected"},"data"===d?this.$el.data("chips"):"options"===d?this.$el.data("options"):(this.$el.data("options",a.extend({},c,d)),this.init=function(){var b=0;e.$el.each(function(){var c=a(this);if(!c.data("initialized")){var d=c.data("options");(!d.data||!d.data instanceof Array)&&(d.data=[]),c.data("chips",d.data),c.data("index",b),c.data("initialized",!0),c.hasClass(e.SELS.CHIPS)||c.addClass("chips"),e.chips(c),b++}})},this.handleEvents=function(){var b=e.SELS;e.$document.on("click",b.CHIPS,function(c){a(c.target).find(b.INPUT).focus()}),e.$document.on("click",b.CHIP,function(c){a(b.CHIP).removeClass("selected"),a(this).toggleClass("selected")}),e.$document.on("keydown",function(c){if(!a(c.target).is("input, textarea")){var d,f=e.$document.find(b.CHIP+b.SELECTED_CHIP),g=f.closest(b.CHIPS),h=f.siblings(b.CHIP).length;if(f.length)if(8===c.which||46===c.which){c.preventDefault();var i=g.data("index");d=f.index(),e.deleteChip(i,d,g);var j=null;h>d+1?j=d:(d===h||d+1===h)&&(j=h-1),0>j&&(j=null),null!==j&&e.selectChip(i,j,g),h||g.find("input").focus()}else if(37===c.which){if(d=f.index()-1,0>d)return;a(b.CHIP).removeClass("selected"),e.selectChip(g.data("index"),d,g)}else if(39===c.which){if(d=f.index()+1,a(b.CHIP).removeClass("selected"),d>h)return void g.find("input").focus();e.selectChip(g.data("index"),d,g)}}}),e.$document.on("focusin",b.CHIPS+" "+b.INPUT,function(c){a(c.target).closest(b.CHIPS).addClass("focus"),a(b.CHIP).removeClass("selected")}),e.$document.on("focusout",b.CHIPS+" "+b.INPUT,function(c){a(c.target).closest(b.CHIPS).removeClass("focus")}),e.$document.on("keydown",b.CHIPS+" "+b.INPUT,function(c){var d=a(c.target),f=d.closest(b.CHIPS),g=f.data("index"),h=f.children(b.CHIP).length;return 13===c.which?(c.preventDefault(),e.addChip(g,{tag:d.val()},f),void d.val("")):8!==c.keyCode&&37!==c.keyCode||""!==d.val()||!h?void 0:(e.selectChip(g,h-1,f),void d.blur())}),e.$document.on("click",b.CHIPS+" "+b.DELETE,function(c){var d=a(c.target),f=d.closest(b.CHIPS),g=d.closest(b.CHIP);c.stopPropagation(),e.deleteChip(f.data("index"),g.index(),f),f.find("input").focus()})},this.chips=function(a){var b="";a.data("options");a.data("chips").forEach(function(a){b+=e.renderChip(a)}),b+='',a.html(b),e.setPlaceholder(a)},this.renderChip=function(a){if(a.tag){var b='
              '+a.tag;return a.image&&(b+=' '),b+='close',b+="
              "}},this.setPlaceholder=function(a){var b=a.data("options");a.data("chips").length&&b.placeholder?a.find("input").prop("placeholder",b.placeholder):!a.data("chips").length&&b.secondaryPlaceholder&&a.find("input").prop("placeholder",b.secondaryPlaceholder)},this.isValid=function(a,b){for(var c=a.data("chips"),d=!1,e=0;e=e&&!a(this).hasClass("pinned")&&(c(a(this)),a(this).css("top",b.offset),a(this).addClass("pinned")),eb.bottom&&!a(this).hasClass("pin-bottom")&&(c(a(this)),a(this).addClass("pin-bottom"),a(this).css("top",b.bottom-g))})}var e=Materialize.guid(),f=a(this),g=a(this).offset().top;a(this).data("pushpin-id",e),d(f,a(window).scrollTop()),a(window).on("scroll."+e,function(){var c=a(window).scrollTop()+b.offset;d(f,c)})}))}}(jQuery),function(a){a(document).ready(function(){a.fn.reverse=[].reverse,a(document).on("mouseenter.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle)",function(c){var d=a(this);b(d)}),a(document).on("mouseleave.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle)",function(b){var d=a(this);c(d)}),a(document).on("click.fixedActionBtn",".fixed-action-btn.click-to-toggle > a",function(d){var e=a(this),f=e.parent();f.hasClass("active")?c(f):b(f)})}),a.fn.extend({openFAB:function(){b(a(this))},closeFAB:function(){c(a(this))}});var b=function(b){if($this=b,$this.hasClass("active")===!1){var c,d,e=$this.hasClass("horizontal");e===!0?d=40:c=40,$this.addClass("active"),$this.find("ul .btn-floating").velocity({scaleY:".4",scaleX:".4",translateY:c+"px",translateX:d+"px"},{duration:0});var f=0;$this.find("ul .btn-floating").reverse().each(function(){a(this).velocity({opacity:"1",scaleX:"1",scaleY:"1",translateY:"0",translateX:"0"},{duration:80,delay:f}),f+=40})}},c=function(a){$this=a;var b,c,d=$this.hasClass("horizontal");d===!0?c=40:b=40,$this.removeClass("active");$this.find("ul .btn-floating").velocity("stop",!0),$this.find("ul .btn-floating").velocity({opacity:"0",scaleX:".4",scaleY:".4",translateY:b+"px",translateX:c+"px"},{duration:80})}}(jQuery),function(a){Materialize.fadeInImage=function(b){var c;if("string"==typeof b)c=a(b);else{if("object"!=typeof b)return;c=b}c.css({opacity:0}),a(c).velocity({opacity:1},{duration:650,queue:!1,easing:"easeOutSine"}),a(c).velocity({opacity:1},{duration:1300,queue:!1,easing:"swing",step:function(b,c){c.start=100;var d=b/100,e=150-(100-b)/1.75;100>e&&(e=100),b>=0&&a(this).css({"-webkit-filter":"grayscale("+d+")brightness("+e+"%)",filter:"grayscale("+d+")brightness("+e+"%)"})}})},Materialize.showStaggeredList=function(b){var c;if("string"==typeof b)c=a(b);else{if("object"!=typeof b)return;c=b}var d=0;c.find("li").velocity({translateX:"-100px"},{duration:0}),c.find("li").each(function(){a(this).velocity({opacity:"1",translateX:"0"},{duration:800,delay:d,easing:[60,10]}),d+=120})},a(document).ready(function(){var b=!1,c=!1;a(".dismissable").each(function(){a(this).hammer({prevent_default:!1}).bind("pan",function(d){if("touch"===d.gesture.pointerType){var e=a(this),f=d.gesture.direction,g=d.gesture.deltaX,h=d.gesture.velocityX;e.velocity({translateX:g},{duration:50,queue:!1,easing:"easeOutQuad"}),4===f&&(g>e.innerWidth()/2||-.75>h)&&(b=!0),2===f&&(g<-1*e.innerWidth()/2||h>.75)&&(c=!0)}}).bind("panend",function(d){if(Math.abs(d.gesture.deltaX)j+g&&e.done!==!0){if("function"==typeof h)h.call(this,i);else if("string"==typeof h){var k=new Function(h);k(i)}e.done=!0}}}}},100)}}(jQuery),function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):this.Picker=a(jQuery)}(function(a){function b(f,g,i,l){function m(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",y.component.nodes(t.open),v.box),v.wrap),v.frame),v.holder)}function n(){w.data(g,y).addClass(v.input).attr("tabindex",-1).val(w.data("value")?y.get("select",u.format):f.value),u.editable||w.on("focus."+t.id+" click."+t.id,function(a){a.preventDefault(),y.$root.eq(0).focus()}).on("keydown."+t.id,q),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"})}function o(){y.$root.on({keydown:q,focusin:function(a){y.$root.removeClass(v.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=y.$root.children()[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is("input, select, textarea, button, option")||(b.preventDefault(),y.$root.eq(0).focus()))}}).on({focus:function(){w.addClass(v.target)},blur:function(){w.removeClass(v.target)}}).on("focus.toOpen",r).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var b=a(this),c=b.data(),d=b.hasClass(v.navDisabled)||b.hasClass(v.disabled),e=h();e=e&&(e.type||e.href),(d||e&&!a.contains(y.$root[0],e))&&y.$root.eq(0).focus(),!d&&c.nav?y.set("highlight",y.component.item.highlight,{nav:c.nav}):!d&&"pick"in c?y.set("select",c.pick):c.clear?y.clear().close(!0):c.close&&y.close(!0)}),e(y.$root[0],"hidden",!0)}function p(){var b;u.hiddenName===!0?(b=f.name,f.name=""):(b=["string"==typeof u.hiddenPrefix?u.hiddenPrefix:"","string"==typeof u.hiddenSuffix?u.hiddenSuffix:"_submit"],b=b[0]+f.name+b[1]),y._hidden=a('")[0],w.on("change."+t.id,function(){y._hidden.value=f.value?y.get("select",u.formatSubmit):""}),u.container?a(u.container).append(y._hidden):w.after(y._hidden)}function q(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(y.close(),!1):void((32==b||c||!t.open&&y.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?y.clear().close():y.open()))}function r(a){a.stopPropagation(),"focus"==a.type&&y.$root.addClass(v.focused),y.open()}if(!f)return b;var s=!1,t={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},u=i?a.extend(!0,{},i.defaults,l):l||{},v=a.extend({},b.klasses(),u.klass),w=a(f),x=function(){return this.start()},y=x.prototype={constructor:x,$node:w,start:function(){return t&&t.start?y:(t.methods={},t.start=!0,t.open=!1,t.type=f.type,f.autofocus=f==h(),f.readOnly=!u.editable,f.id=f.id||t.id,"text"!=f.type&&(f.type="text"),y.component=new i(y,u),y.$root=a(b._.node("div",m(),v.picker,'id="'+f.id+'_root" tabindex="0"')),o(),u.formatSubmit&&p(),n(),u.container?a(u.container).append(y.$root):w.after(y.$root),y.on({start:y.component.onStart,render:y.component.onRender,stop:y.component.onStop,open:y.component.onOpen,close:y.component.onClose,set:y.component.onSet}).on({start:u.onStart,render:u.onRender,stop:u.onStop,open:u.onOpen,close:u.onClose,set:u.onSet}),s=c(y.$root.children()[0]),f.autofocus&&y.open(),y.trigger("start").trigger("render"))},render:function(a){return a?y.$root.html(m()):y.$root.find("."+v.box).html(y.component.nodes(t.open)),y.trigger("render")},stop:function(){return t.start?(y.close(),y._hidden&&y._hidden.parentNode.removeChild(y._hidden),y.$root.remove(),w.removeClass(v.input).removeData(g),setTimeout(function(){w.off("."+t.id)},0),f.type=t.type,f.readOnly=!1,y.trigger("stop"),t.methods={},t.start=!1,y):y},open:function(c){return t.open?y:(w.addClass(v.active),e(f,"expanded",!0),setTimeout(function(){y.$root.addClass(v.opened),e(y.$root[0],"hidden",!1)},0),c!==!1&&(t.open=!0,s&&k.css("overflow","hidden").css("padding-right","+="+d()),y.$root.eq(0).focus(),j.on("click."+t.id+" focusin."+t.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&y.close(b===y.$root.children()[0])}).on("keydown."+t.id,function(c){var d=c.keyCode,e=y.component.key[d],f=c.target;27==d?y.close(!0):f!=y.$root[0]||!e&&13!=d?a.contains(y.$root[0],f)&&13==d&&(c.preventDefault(),f.click()):(c.preventDefault(),e?b._.trigger(y.component.key.go,y,[b._.trigger(e)]):y.$root.find("."+v.highlighted).hasClass(v.disabled)||y.set("select",y.component.item.highlight).close())})),y.trigger("open"))},close:function(a){return a&&(y.$root.off("focus.toOpen").eq(0).focus(),setTimeout(function(){y.$root.on("focus.toOpen",r)},0)),w.removeClass(v.active),e(f,"expanded",!1),setTimeout(function(){y.$root.removeClass(v.opened+" "+v.focused),e(y.$root[0],"hidden",!0)},0),t.open?(t.open=!1,s&&k.css("overflow","").css("padding-right","-="+d()),j.off("."+t.id),y.trigger("close")):y},clear:function(a){return y.set("clear",null,a)},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in y.component.item&&(void 0===f&&(f=null),y.component.set(e,f,d)),("select"==e||"clear"==e)&&w.val("clear"==e?"":y.get(e,u.format)).trigger("change");y.render()}return d.muted?y:y.trigger("set",h)},get:function(a,c){if(a=a||"value",null!=t[a])return t[a];if("valueSubmit"==a){if(y._hidden)return y._hidden.value;a="value"}if("value"==a)return f.value;if(a in y.component.item){if("string"==typeof c){var d=y.component.get(a);return d?b._.trigger(y.component.formats.toString,y.component,[c,d]):""}return y.component.get(a)}},on:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(b){g||(h[b]=c);for(e in h)f=h[e],d&&(e="_"+e),t.methods[e]=t.methods[e]||[],t.methods[e].push(f)}return y},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;a').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('
              ').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}function h(){try{return document.activeElement}catch(a){}}var i=a(window),j=a(document),k=a(document.documentElement);return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",target:a+"__input--target",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+""):""},lead:function(a){return(10>a?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b}),function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0],e=d.value,f=a.$node.data("value"),g=f||e,h=f?b.formatSubmit:b.format,i=function(){return d.currentStyle?"rtl"==d.currentStyle.direction:"rtl"==getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),g?c.set("select",g,{format:h}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return i()?-1:1},37:function(){return i()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(b.year,b.month,b.date+a);c.set("highlight",d,{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})},1).on("open",function(){var d="";c.disabled(c.get("now"))&&(d=":not(."+b.klass.buttonToday+")"),a.$root.find("button"+d+", select").attr("disabled",!1)},1).on("close",function(){a.$root.find("button, select").attr("disabled",!0)},1)}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c,c==-(1/0)||c==1/0?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(c[0],c[1],c[2]),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)||f.isDate(c)?g.normalize(new Date(c),d):g.now(a,c,d),{year:e||c.getFullYear(),month:e||c.getMonth(),date:e||c.getDate(),day:e||c.getDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setDate(b.getDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(f,g+(d&&d.nav?d.nav:0),1),f=e.getFullYear(),g=e.getMonth();new Date(f,g,h).getMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?"string"==typeof b?b=c.parse(a,b):f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-(1/0):1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=-1===j.item.enable,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;dc.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&0>l)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.monthk.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pickc.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to):!1},c.prototype.isDateOverlap=function(a,c){var d=this,e=d.settings.firstDay?1:0;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?(a=a%7+e,a===d.create(c).day+1):f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?(c=c%7+e,c===d.create(a).day+1):b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;gi;i+=1){if(h=e[i],d.isDateExact(h,a)){c=e[i]=null,j=!0;break}if(d.isDateOverlap(h,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[3]||c.push("inverted")):f.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;g>i;i+=1)if(d.isDateExact(e[i],a)){e[i]=null;break}if(j)for(i=0;g>i;i+=1)if(d.isDateOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.nodes=function(a){var b=this,c=b.settings,g=b.item,h=g.now,i=g.select,j=g.highlight,k=g.view,l=g.disable,m=g.min,n=g.max,o=function(a,b){return c.firstDay&&(a.push(a.shift()),b.push(b.shift())),f.node("thead",f.node("tr",f.group({min:0,max:d-1,i:1,node:"th",item:function(d){return[a[d],c.klass.weekdays,'scope=col title="'+b[d]+'"']}})))}((c.showWeekdaysFull?c.weekdaysFull:c.weekdaysLetter).slice(0),c.weekdaysFull.slice(0)),p=function(a){return f.node("div"," ",c.klass["nav"+(a?"Next":"Prev")]+(a&&k.year>=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",controls:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(d){var e=c.showMonthsShort?c.monthsShort:c.monthsFull;return"short_months"==d&&(e=c.monthsShort),c.selectMonths&&void 0==d?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[e[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&an.month?" disabled":"")]}}),c.klass.selectMonth+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table" -})+' title="'+c.labelMonthSelect+'"'):"short_months"==d?null!=i?f.node("div",e[i.month]):f.node("div",e[k.month]):f.node("div",e[k.month],c.klass.month)},r=function(d){var e=k.year,g=c.selectYears===!0?5:~~(c.selectYears/2);if(g){var h=m.year,i=n.year,j=e-g,l=e+g;if(h>j&&(l+=h-j,j=h),l>i){var o=j-h,p=l-i;j-=o>p?p:o,l=i}if(c.selectYears&&void 0==d)return f.node("select",f.group({min:j,max:l,i:1,node:"option",item:function(a){return[a,0,"value="+a+(e==a?" selected":"")]}}),c.klass.selectYear+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return"raw"==d?f.node("div",e):f.node("div",e,c.klass.year)};return createDayLabel=function(){return null!=i?f.node("div",i.date):f.node("div",h.date)},createWeekdayLabel=function(){var a;a=null!=i?i.day:h.day;var b=c.weekdaysFull[a];return b},f.node("div",f.node("div",createWeekdayLabel(),"picker__weekday-display")+f.node("div",q("short_months"),c.klass.month_display)+f.node("div",createDayLabel(),c.klass.day_display)+f.node("div",r("raw"),c.klass.year_display),c.klass.date_display)+f.node("div",f.node("div",(c.selectYears?q()+r():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pickn.pick,o=f.trigger(b.formats.toString,b,[c.format,a]);return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",label:o,selected:d&&b.$node.val()===o?!0:null,activedescendant:e?!0:null,disabled:g?!0:null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",controls:b.$node[0].id,readonly:!0})),c.klass.calendar_container)+f.node("div",f.node("button",c.today,"btn-flat picker__today","type=button data-pick="+h.pick+(a&&!b.disabled(h)?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.clear,"btn-flat picker__clear","type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.close,"btn-flat picker__close","type=button data-close=true "+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysLetter:["S","M","T","W","T","F","S"],today:"Today",clear:"Clear",close:"Close",format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",date_display:a+"date-display",day_display:a+"day-display",month_display:a+"month-display",year_display:a+"year-display",calendar_container:a+"calendar-container",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today",buttonClose:a+"button--close"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)}),function(a){function b(){var b=+a(this).attr("length"),c=+a(this).val().length,d=b>=c;a(this).parent().find('span[class="character-counter"]').html(c+"/"+b),e(d,a(this))}function c(b){var c=b.parent().find('span[class="character-counter"]');c.length||(c=a("").addClass("character-counter").css("float","right").css("font-size","12px").css("height",1),b.parent().append(c))}function d(){a(this).parent().find('span[class="character-counter"]').html("")}function e(a,b){var c=b.hasClass("invalid");a&&c?b.removeClass("invalid"):a||c||(b.removeClass("valid"),b.addClass("invalid"))}a.fn.characterCounter=function(){return this.each(function(){var e=a(this),f=e.parent().find('span[class="character-counter"]');if(!f.length){var g=void 0!==e.attr("length");g&&(e.on("input",b),e.on("focus",b),e.on("blur",d),c(e))}})},a(document).ready(function(){a("input, textarea").characterCounter()})}(jQuery),function(a){var b={init:function(b){var c={time_constant:200,dist:-100,shift:0,padding:0,full_width:!1,indicators:!1,no_wrap:!1};return b=a.extend(c,b),this.each(function(){function c(){"undefined"!=typeof window.ontouchstart&&(H[0].addEventListener("touchstart",l),H[0].addEventListener("touchmove",m),H[0].addEventListener("touchend",n)),H[0].addEventListener("mousedown",l),H[0].addEventListener("mousemove",m),H[0].addEventListener("mouseup",n),H[0].addEventListener("mouseleave",n),H[0].addEventListener("click",j)}function d(a){return a.targetTouches&&a.targetTouches.length>=1?a.targetTouches[0].clientX:a.clientX}function e(a){return a.targetTouches&&a.targetTouches.length>=1?a.targetTouches[0].clientY:a.clientY}function f(a){return a>=t?a%t:0>a?f(t+a%t):a}function g(a){var c,d,e,g,h,i,j;if(p="number"==typeof a?a:p,q=Math.floor((p+s/2)/s),e=p-q*s,g=0>e?1:-1,h=-g*e*2/s,d=t>>1,b.full_width?j="translateX(0)":(j="translateX("+(H[0].clientWidth-item_width)/2+"px) ",j+="translateY("+(H[0].clientHeight-item_width)/2+"px)"),I){var k=q%t,l=G.find(".indicator-item.active");l.index()!==k&&(l.removeClass("active"),G.find(".indicator-item").eq(k).addClass("active"))}for((!b.no_wrap||q>=0&&t>q)&&(i=o[f(q)],i.style[A]=j+" translateX("+-e/2+"px) translateX("+g*b.shift*h*c+"px) translateZ("+b.dist*h+"px)",i.style.zIndex=0,b.full_width?tweenedOpacity=1:tweenedOpacity=1-.2*h,i.style.opacity=tweenedOpacity,i.style.display="block"),c=1;d>=c;++c)b.full_width?(zTranslation=b.dist,tweenedOpacity=c===d&&0>e?1-h:1):(zTranslation=b.dist*(2*c+h*g),tweenedOpacity=1-.2*(2*c+h*g)),(!b.no_wrap||t>q+c)&&(i=o[f(q+c)],i.style[A]=j+" translateX("+(b.shift+(s*c-e)/2)+"px) translateZ("+zTranslation+"px)",i.style.zIndex=-c,i.style.opacity=tweenedOpacity,i.style.display="block"),b.full_width?(zTranslation=b.dist,tweenedOpacity=c===d&&e>0?1-h:1):(zTranslation=b.dist*(2*c-h*g),tweenedOpacity=1-.2*(2*c-h*g)),(!b.no_wrap||q-c>=0)&&(i=o[f(q-c)],i.style[A]=j+" translateX("+(-b.shift+(-s*c-e)/2)+"px) translateZ("+zTranslation+"px)",i.style.zIndex=-c,i.style.opacity=tweenedOpacity,i.style.display="block");(!b.no_wrap||q>=0&&t>q)&&(i=o[f(q)],i.style[A]=j+" translateX("+-e/2+"px) translateX("+g*b.shift*h+"px) translateZ("+b.dist*h+"px)",i.style.zIndex=0,b.full_width?tweenedOpacity=1:tweenedOpacity=1-.2*h,i.style.opacity=tweenedOpacity,i.style.display="block")}function h(){var a,b,c,d;a=Date.now(),b=a-C,C=a,c=p-B,B=p,d=1e3*c/(1+b),z=.8*d+.2*z}function i(){var a,c;w&&(a=Date.now()-C,c=w*Math.exp(-a/b.time_constant),c>2||-2>c?(g(x-c),requestAnimationFrame(i)):g(x))}function j(c){if(E)return c.preventDefault(),c.stopPropagation(),!1;if(!b.full_width){var d=a(c.target).closest(".carousel-item").index(),e=q%t-d;0!==e&&(c.preventDefault(),c.stopPropagation()),k(d)}}function k(a){var c=q%t-a;b.no_wrap||(0>c?Math.abs(c+t)0&&Math.abs(c-t)c?H.trigger("carouselNext",[Math.abs(c)]):c>0&&H.trigger("carouselPrev",[c])}function l(a){r=!0,E=!1,F=!1,u=d(a),v=e(a),z=w=0,B=p,C=Date.now(),clearInterval(D),D=setInterval(h,100)}function m(a){var b,c,f;if(r)if(b=d(a),y=e(a),c=u-b,f=Math.abs(v-y),30>f&&!F)(c>2||-2>c)&&(E=!0,u=b,g(p+c));else{if(E)return a.preventDefault(),a.stopPropagation(),!1;F=!0}return E?(a.preventDefault(),a.stopPropagation(),!1):void 0}function n(a){return r?(r=!1,clearInterval(D),x=p,(z>10||-10>z)&&(w=.9*z,x=p+w),x=Math.round(x/s)*s,b.no_wrap&&(x>=s*(t-1)?x=s*(t-1):0>x&&(x=0)),w=x-p,C=Date.now(),requestAnimationFrame(i),E&&(a.preventDefault(),a.stopPropagation()),!1):void 0}var o,p,q,r,s,t,u,v,w,x,z,A,B,C,D,E,F,G=a('
                '),H=a(this),I=H.attr("data-indicators")||b.indicators;if(H.hasClass("initialized"))return a(this).trigger("carouselNext",[1e-6]),!0;if(b.full_width){b.dist=0;var J=H.find(".carousel-item img").first();J.length?imageHeight=J.load(function(){H.css("height",a(this).height())}):(imageHeight=H.find(".carousel-item").first().height(),H.css("height",imageHeight)),I&&H.find(".carousel-fixed-item").addClass("with-indicators")}H.addClass("initialized"),r=!1,p=x=0,o=[],item_width=H.find(".carousel-item").first().innerWidth(),s=2*item_width+b.padding,H.find(".carousel-item").each(function(b){if(o.push(a(this)[0]),I){var c=a('
              • ');0===b&&c.addClass("active"),c.click(function(){var b=a(this).index();k(b)}),G.append(c)}}),I&&H.append(G),t=o.length,A="transform",["webkit","Moz","O","ms"].every(function(a){var b=a+"Transform";return"undefined"!=typeof document.body.style[b]?(A=b,!1):!0}),window.onresize=g,c(),g(p),a(this).on("carouselNext",function(a,b){void 0===b&&(b=1),x=p+s*b,p!==x&&(w=x-p,C=Date.now(),requestAnimationFrame(i))}),a(this).on("carouselPrev",function(a,b){void 0===b&&(b=1),x=p-s*b,p!==x&&(w=x-p,C=Date.now(),requestAnimationFrame(i))}),a(this).on("carouselSet",function(a,b){void 0===b&&(b=0),k(b)})})},next:function(b){a(this).trigger("carouselNext",[b])},prev:function(b){a(this).trigger("carouselPrev",[b])},set:function(b){a(this).trigger("carouselSet",[b])}};a.fn.carousel=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.carousel"):b.init.apply(this,arguments)}}(jQuery); \ No newline at end of file diff --git a/production/bower_components/Materialize/extras/noUiSlider/nouislider.css b/production/bower_components/Materialize/extras/noUiSlider/nouislider.css deleted file mode 100644 index 5b7dde7..0000000 --- a/production/bower_components/Materialize/extras/noUiSlider/nouislider.css +++ /dev/null @@ -1,259 +0,0 @@ -/*! - * Materialize v0.97.6 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ - -/* Functional styling; - * These styles are required for noUiSlider to function. - * You don't need to change these rules to apply your design. - */ -.noUi-target, -.noUi-target * { --webkit-touch-callout: none; --webkit-user-select: none; --ms-touch-action: none; --ms-user-select: none; --moz-user-select: none; --moz-box-sizing: border-box; - box-sizing: border-box; -} -.noUi-target { - position: relative; - direction: ltr; -} -.noUi-base { - width: 100%; - height: 100%; - position: relative; - z-index: 1; /* Fix 401 */ -} -.noUi-origin { - position: absolute; - right: 0; - top: 6px; - left: 0; - bottom: 0; -} -.noUi-handle { - position: relative; - z-index: 1; -} -.noUi-stacking .noUi-handle { -/* This class is applied to the lower origin when - its values is > 50%. */ - z-index: 10; -} -.noUi-state-tap .noUi-origin { --webkit-transition: left 0.25s, top 0.25s; - transition: left 0.25s, top 0.25s; -} -.noUi-state-drag * { - cursor: inherit !important; -} - -/* Painting and performance; - * Browsers can paint handles in their own layer. - */ -.noUi-base { - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); -} - -/* Slider size and handle placement; - */ -.noUi-horizontal { - height: 18px; -} -.noUi-horizontal .noUi-handle { - width: 34px; - height: 28px; - left: -17px; - top: -6px; -} -.noUi-vertical { - width: 18px; -} -.noUi-vertical .noUi-handle { - width: 28px; - height: 34px; - left: -6px; - top: -17px; -} - -/* Styling; - */ -.noUi-background { - background: #FAFAFA; - box-shadow: inset 0 1px 1px #f0f0f0; -} -.noUi-connect { - background: #3FB8AF; - box-shadow: inset 0 0 3px rgba(51,51,51,0.45); --webkit-transition: background 450ms; - transition: background 450ms; -} -.noUi-origin { - border-radius: 2px; -} -.noUi-target { - border-radius: 4px; - border: 1px solid #D3D3D3; - box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB; -} -.noUi-target.noUi-connect { - box-shadow: inset 0 0 3px rgba(51,51,51,0.45), 0 3px 6px -5px #BBB; -} - -/* Handles and cursors; - */ -.noUi-dragable { - cursor: w-resize; -} -.noUi-vertical .noUi-dragable { - cursor: n-resize; -} -.noUi-handle { - border: 1px solid #D9D9D9; - border-radius: 3px; - background: #FFF; - cursor: default; - box-shadow: inset 0 0 1px #FFF, - inset 0 1px 7px #EBEBEB, - 0 3px 6px -3px #BBB; -} -.noUi-active { - box-shadow: inset 0 0 1px #FFF, - inset 0 1px 7px #DDD, - 0 3px 6px -3px #BBB; -} - -/* Handle stripes; - */ -.noUi-handle:before, -.noUi-handle:after { - content: ""; - display: block; - position: absolute; - height: 14px; - width: 1px; - background: #E8E7E6; - left: 14px; - top: 6px; -} -.noUi-handle:after { - left: 17px; -} -.noUi-vertical .noUi-handle:before, -.noUi-vertical .noUi-handle:after { - width: 14px; - height: 1px; - left: 6px; - top: 14px; -} -.noUi-vertical .noUi-handle:after { - top: 17px; -} - -/* Disabled state; - */ -[disabled].noUi-connect, -[disabled] .noUi-connect { - background: #B8B8B8; -} -[disabled].noUi-origin, -[disabled] .noUi-handle { - cursor: not-allowed; -} - -/*Materialize Theming*/ - -.noUi-target { - - box-shadow: none; - border: none; -} -.noUi-base { - height: 15px; - top: -6px; -} -.noUi-background { - height: 3px; - top: 6px; - background-color: #bfbfbf; - box-shadow: none; -} -.noUi-horizontal { - height: 3px; -} -.noUi-connect { - height: 3px; - top: 6px; - background-color: #26A69A; - box-shadow: none; -} - -/*Handle*/ -.noUi-horizontal .noUi-handle { - width: 15px; - height: 15px; - border-radius: 50%; - box-shadow: none; - background-color: #26A69A; - border: none; - left: -5px; - top: -6px; - transition: width .2s cubic-bezier(0.215, 0.610, 0.355, 1.000), - height .2s cubic-bezier(0.215, 0.610, 0.355, 1.000), - left .2s cubic-bezier(0.215, 0.610, 0.355, 1.000), - top .2s cubic-bezier(0.215, 0.610, 0.355, 1.000); -} -.noUi-handle:before { - content: none; -} -.noUi-handle:after { - content: none; -} -/*Handle on Drag*/ -.noUi-target .noUi-active.noUi-handle { - width: 3px; - height: 3px; - left: 0; - top: 0; -} - -.noUi-target .noUi-active .range-label span { -} -.noUi-target .range-label { - position: absolute; - height: 30px; - width: 30px; - top: -17px; - left: -2px; - background-color: #26A69A; - border-radius: 50%; - transition: border-radius .25s cubic-bezier(0.215, 0.610, 0.355, 1.000), - transform .25s cubic-bezier(0.215, 0.610, 0.355, 1.000); - transform: scale(.5) rotate(-45deg); - transform-origin: 50% 100%; -} -.noUi-target .noUi-active .range-label { - border-radius: 15px 15px 15px 0; - transform: rotate(-45deg) translate(23px, -25px); - -} -.range-label span { - width: 100%; - text-align: center; - color: #fff; - font-size: 12px; - transform: rotate(45deg); - opacity: 0; - position: absolute; - top: 7px; - left: -1px; - transition: opacity .25s cubic-bezier(0.215, 0.610, 0.355, 1.000); -} -.noUi-active .range-label span { - opacity: 1; -} diff --git a/production/bower_components/Materialize/extras/noUiSlider/nouislider.js b/production/bower_components/Materialize/extras/noUiSlider/nouislider.js deleted file mode 100644 index 0cd6305..0000000 --- a/production/bower_components/Materialize/extras/noUiSlider/nouislider.js +++ /dev/null @@ -1,1666 +0,0 @@ -/*! - * Materialize v0.97.6 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -// wNumb -(function(){function r(b){return b.split("").reverse().join("")}function s(b,f,c){if((b[f]||b[c])&&b[f]===b[c])throw Error(f);}function v(b,f,c,d,e,p,q,k,l,h,n,a){q=a;var m,g=n="";p&&(a=p(a));if("number"!==typeof a||!isFinite(a))return!1;b&&0===parseFloat(a.toFixed(b))&&(a=0);0>a&&(m=!0,a=Math.abs(a));b&&(p=Math.pow(10,b),a=(Math.round(a*p)/p).toFixed(b));a=a.toString();-1!==a.indexOf(".")&&(b=a.split("."),a=b[0],c&&(n=c+b[1]));f&&(a=r(a).match(/.{1,3}/g),a=r(a.join(r(f))));m&&k&&(g+=k);d&&(g+=d); -m&&l&&(g+=l);g=g+a+n;e&&(g+=e);h&&(g=h(g,q));return g}function w(b,f,c,d,e,h,q,k,l,r,n,a){var m;b="";n&&(a=n(a));if(!a||"string"!==typeof a)return!1;k&&a.substring(0,k.length)===k&&(a=a.replace(k,""),m=!0);d&&a.substring(0,d.length)===d&&(a=a.replace(d,""));l&&a.substring(0,l.length)===l&&(a=a.replace(l,""),m=!0);e&&a.slice(-1*e.length)===e&&(a=a.slice(0,-1*e.length));f&&(a=a.split(f).join(""));c&&(a=a.replace(c,"."));m&&(b+="-");b=Number((b+a).replace(/[^0-9\.\-.]/g,""));q&&(b=q(b));return"number"=== -typeof b&&isFinite(b)?b:!1}function x(b){var f,c,d,e={};for(f=0;fd&&(e[c]=d):"encoder"===c||"decoder"===c||"edit"===c||"undo"===c?"function"===typeof d&&(e[c]=d):"string"===typeof d&&(e[c]=d);s(e,"mark","thousand");s(e,"prefix","negative");s(e,"prefix","negativeBefore");return e}function u(b,f,c){var d,e=[];for(d=0;d 1 ? pieces[1].length : 0; - } - - // http://youmightnotneedjquery.com/#add_class - function addClass ( el, className ) { - if ( el.classList ) { - el.classList.add(className); - } else { - el.className += ' ' + className; - } - } - - // http://youmightnotneedjquery.com/#remove_class - function removeClass ( el, className ) { - if ( el.classList ) { - el.classList.remove(className); - } else { - el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); - } - } - - // http://youmightnotneedjquery.com/#has_class - function hasClass ( el, className ) { - if ( el.classList ) { - el.classList.contains(className); - } else { - new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className); - } - } - - - var - // Determine the events to bind. IE11 implements pointerEvents without - // a prefix, which breaks compatibility with the IE10 implementation. - /** @const */ - actions = window.navigator.pointerEnabled ? { - start: 'pointerdown', - move: 'pointermove', - end: 'pointerup' - } : window.navigator.msPointerEnabled ? { - start: 'MSPointerDown', - move: 'MSPointerMove', - end: 'MSPointerUp' - } : { - start: 'mousedown touchstart', - move: 'mousemove touchmove', - end: 'mouseup touchend' - }, - // Re-usable list of classes; - /** @const */ - Classes = [ -/* 0 */ 'noUi-target' -/* 1 */ ,'noUi-base' -/* 2 */ ,'noUi-origin' -/* 3 */ ,'noUi-handle' -/* 4 */ ,'noUi-horizontal' -/* 5 */ ,'noUi-vertical' -/* 6 */ ,'noUi-background' -/* 7 */ ,'noUi-connect' -/* 8 */ ,'noUi-ltr' -/* 9 */ ,'noUi-rtl' -/* 10 */ ,'noUi-dragable' -/* 11 */ ,'' -/* 12 */ ,'noUi-state-drag' -/* 13 */ ,'' -/* 14 */ ,'noUi-state-tap' -/* 15 */ ,'noUi-active' -/* 16 */ ,'' -/* 17 */ ,'noUi-stacking' - ]; - - -// Value calculation - - // Determine the size of a sub-range in relation to a full range. - function subRangeRatio ( pa, pb ) { - return (100 / (pb - pa)); - } - - // (percentage) How many percent is this value of this range? - function fromPercentage ( range, value ) { - return (value * 100) / ( range[1] - range[0] ); - } - - // (percentage) Where is this value on this range? - function toPercentage ( range, value ) { - return fromPercentage( range, range[0] < 0 ? - value + Math.abs(range[0]) : - value - range[0] ); - } - - // (value) How much is this percentage on this range? - function isPercentage ( range, value ) { - return ((value * ( range[1] - range[0] )) / 100) + range[0]; - } - - -// Range conversion - - function getJ ( value, arr ) { - - var j = 1; - - while ( value >= arr[j] ){ - j += 1; - } - - return j; - } - - // (percentage) Input a value, find where, on a scale of 0-100, it applies. - function toStepping ( xVal, xPct, value ) { - - if ( value >= xVal.slice(-1)[0] ){ - return 100; - } - - var j = getJ( value, xVal ), va, vb, pa, pb; - - va = xVal[j-1]; - vb = xVal[j]; - pa = xPct[j-1]; - pb = xPct[j]; - - return pa + (toPercentage([va, vb], value) / subRangeRatio (pa, pb)); - } - - // (value) Input a percentage, find where it is on the specified range. - function fromStepping ( xVal, xPct, value ) { - - // There is no range group that fits 100 - if ( value >= 100 ){ - return xVal.slice(-1)[0]; - } - - var j = getJ( value, xPct ), va, vb, pa, pb; - - va = xVal[j-1]; - vb = xVal[j]; - pa = xPct[j-1]; - pb = xPct[j]; - - return isPercentage([va, vb], (value - pa) * subRangeRatio (pa, pb)); - } - - // (percentage) Get the step that applies at a certain value. - function getStep ( xPct, xSteps, snap, value ) { - - if ( value === 100 ) { - return value; - } - - var j = getJ( value, xPct ), a, b; - - // If 'snap' is set, steps are used as fixed points on the slider. - if ( snap ) { - - a = xPct[j-1]; - b = xPct[j]; - - // Find the closest position, a or b. - if ((value - a) > ((b-a)/2)){ - return b; - } - - return a; - } - - if ( !xSteps[j-1] ){ - return value; - } - - return xPct[j-1] + closest( - value - xPct[j-1], - xSteps[j-1] - ); - } - - -// Entry parsing - - function handleEntryPoint ( index, value, that ) { - - var percentage; - - // Wrap numerical input in an array. - if ( typeof value === "number" ) { - value = [value]; - } - - // Reject any invalid input, by testing whether value is an array. - if ( Object.prototype.toString.call( value ) !== '[object Array]' ){ - throw new Error("noUiSlider: 'range' contains invalid value."); - } - - // Covert min/max syntax to 0 and 100. - if ( index === 'min' ) { - percentage = 0; - } else if ( index === 'max' ) { - percentage = 100; - } else { - percentage = parseFloat( index ); - } - - // Check for correct input. - if ( !isNumeric( percentage ) || !isNumeric( value[0] ) ) { - throw new Error("noUiSlider: 'range' value isn't numeric."); - } - - // Store values. - that.xPct.push( percentage ); - that.xVal.push( value[0] ); - - // NaN will evaluate to false too, but to keep - // logging clear, set step explicitly. Make sure - // not to override the 'step' setting with false. - if ( !percentage ) { - if ( !isNaN( value[1] ) ) { - that.xSteps[0] = value[1]; - } - } else { - that.xSteps.push( isNaN(value[1]) ? false : value[1] ); - } - } - - function handleStepPoint ( i, n, that ) { - - // Ignore 'false' stepping. - if ( !n ) { - return true; - } - - // Factor to range ratio - that.xSteps[i] = fromPercentage([ - that.xVal[i] - ,that.xVal[i+1] - ], n) / subRangeRatio ( - that.xPct[i], - that.xPct[i+1] ); - } - - -// Interface - - // The interface to Spectrum handles all direction-based - // conversions, so the above values are unaware. - - function Spectrum ( entry, snap, direction, singleStep ) { - - this.xPct = []; - this.xVal = []; - this.xSteps = [ singleStep || false ]; - this.xNumSteps = [ false ]; - - this.snap = snap; - this.direction = direction; - - var index, ordered = [ /* [0, 'min'], [1, '50%'], [2, 'max'] */ ]; - - // Map the object keys to an array. - for ( index in entry ) { - if ( entry.hasOwnProperty(index) ) { - ordered.push([entry[index], index]); - } - } - - // Sort all entries by value (numeric sort). - ordered.sort(function(a, b) { return a[0] - b[0]; }); - - // Convert all entries to subranges. - for ( index = 0; index < ordered.length; index++ ) { - handleEntryPoint(ordered[index][1], ordered[index][0], this); - } - - // Store the actual step values. - // xSteps is sorted in the same order as xPct and xVal. - this.xNumSteps = this.xSteps.slice(0); - - // Convert all numeric steps to the percentage of the subrange they represent. - for ( index = 0; index < this.xNumSteps.length; index++ ) { - handleStepPoint(index, this.xNumSteps[index], this); - } - } - - Spectrum.prototype.getMargin = function ( value ) { - return this.xPct.length === 2 ? fromPercentage(this.xVal, value) : false; - }; - - Spectrum.prototype.toStepping = function ( value ) { - - value = toStepping( this.xVal, this.xPct, value ); - - // Invert the value if this is a right-to-left slider. - if ( this.direction ) { - value = 100 - value; - } - - return value; - }; - - Spectrum.prototype.fromStepping = function ( value ) { - - // Invert the value if this is a right-to-left slider. - if ( this.direction ) { - value = 100 - value; - } - - return accurateNumber(fromStepping( this.xVal, this.xPct, value )); - }; - - Spectrum.prototype.getStep = function ( value ) { - - // Find the proper step for rtl sliders by search in inverse direction. - // Fixes issue #262. - if ( this.direction ) { - value = 100 - value; - } - - value = getStep(this.xPct, this.xSteps, this.snap, value ); - - if ( this.direction ) { - value = 100 - value; - } - - return value; - }; - - Spectrum.prototype.getApplicableStep = function ( value ) { - - // If the value is 100%, return the negative step twice. - var j = getJ(value, this.xPct), offset = value === 100 ? 2 : 1; - return [this.xNumSteps[j-2], this.xVal[j-offset], this.xNumSteps[j-offset]]; - }; - - // Outside testing - Spectrum.prototype.convert = function ( value ) { - return this.getStep(this.toStepping(value)); - }; - -/* Every input option is tested and parsed. This'll prevent - endless validation in internal methods. These tests are - structured with an item for every option available. An - option can be marked as required by setting the 'r' flag. - The testing function is provided with three arguments: - - The provided value for the option; - - A reference to the options object; - - The name for the option; - - The testing function returns false when an error is detected, - or true when everything is OK. It can also modify the option - object, to make sure all values can be correctly looped elsewhere. */ - - var defaultFormatter = { 'to': function( value ){ - return value.toFixed(2); - }, 'from': Number }; - - function testStep ( parsed, entry ) { - - if ( !isNumeric( entry ) ) { - throw new Error("noUiSlider: 'step' is not numeric."); - } - - // The step option can still be used to set stepping - // for linear sliders. Overwritten if set in 'range'. - parsed.singleStep = entry; - } - - function testRange ( parsed, entry ) { - - // Filter incorrect input. - if ( typeof entry !== 'object' || Array.isArray(entry) ) { - throw new Error("noUiSlider: 'range' is not an object."); - } - - // Catch missing start or end. - if ( entry.min === undefined || entry.max === undefined ) { - throw new Error("noUiSlider: Missing 'min' or 'max' in 'range'."); - } - - parsed.spectrum = new Spectrum(entry, parsed.snap, parsed.dir, parsed.singleStep); - } - - function testStart ( parsed, entry ) { - - entry = asArray(entry); - - // Validate input. Values aren't tested, as the public .val method - // will always provide a valid location. - if ( !Array.isArray( entry ) || !entry.length || entry.length > 2 ) { - throw new Error("noUiSlider: 'start' option is incorrect."); - } - - // Store the number of handles. - parsed.handles = entry.length; - - // When the slider is initialized, the .val method will - // be called with the start options. - parsed.start = entry; - } - - function testSnap ( parsed, entry ) { - - // Enforce 100% stepping within subranges. - parsed.snap = entry; - - if ( typeof entry !== 'boolean' ){ - throw new Error("noUiSlider: 'snap' option must be a boolean."); - } - } - - function testAnimate ( parsed, entry ) { - - // Enforce 100% stepping within subranges. - parsed.animate = entry; - - if ( typeof entry !== 'boolean' ){ - throw new Error("noUiSlider: 'animate' option must be a boolean."); - } - } - - function testConnect ( parsed, entry ) { - - if ( entry === 'lower' && parsed.handles === 1 ) { - parsed.connect = 1; - } else if ( entry === 'upper' && parsed.handles === 1 ) { - parsed.connect = 2; - } else if ( entry === true && parsed.handles === 2 ) { - parsed.connect = 3; - } else if ( entry === false ) { - parsed.connect = 0; - } else { - throw new Error("noUiSlider: 'connect' option doesn't match handle count."); - } - } - - function testOrientation ( parsed, entry ) { - - // Set orientation to an a numerical value for easy - // array selection. - switch ( entry ){ - case 'horizontal': - parsed.ort = 0; - break; - case 'vertical': - parsed.ort = 1; - break; - default: - throw new Error("noUiSlider: 'orientation' option is invalid."); - } - } - - function testMargin ( parsed, entry ) { - - if ( !isNumeric(entry) ){ - throw new Error("noUiSlider: 'margin' option must be numeric."); - } - - parsed.margin = parsed.spectrum.getMargin(entry); - - if ( !parsed.margin ) { - throw new Error("noUiSlider: 'margin' option is only supported on linear sliders."); - } - } - - function testLimit ( parsed, entry ) { - - if ( !isNumeric(entry) ){ - throw new Error("noUiSlider: 'limit' option must be numeric."); - } - - parsed.limit = parsed.spectrum.getMargin(entry); - - if ( !parsed.limit ) { - throw new Error("noUiSlider: 'limit' option is only supported on linear sliders."); - } - } - - function testDirection ( parsed, entry ) { - - // Set direction as a numerical value for easy parsing. - // Invert connection for RTL sliders, so that the proper - // handles get the connect/background classes. - switch ( entry ) { - case 'ltr': - parsed.dir = 0; - break; - case 'rtl': - parsed.dir = 1; - parsed.connect = [0,2,1,3][parsed.connect]; - break; - default: - throw new Error("noUiSlider: 'direction' option was not recognized."); - } - } - - function testBehaviour ( parsed, entry ) { - - // Make sure the input is a string. - if ( typeof entry !== 'string' ) { - throw new Error("noUiSlider: 'behaviour' must be a string containing options."); - } - - // Check if the string contains any keywords. - // None are required. - var tap = entry.indexOf('tap') >= 0, - drag = entry.indexOf('drag') >= 0, - fixed = entry.indexOf('fixed') >= 0, - snap = entry.indexOf('snap') >= 0; - - parsed.events = { - tap: tap || snap, - drag: drag, - fixed: fixed, - snap: snap - }; - } - - function testFormat ( parsed, entry ) { - - parsed.format = entry; - - // Any object with a to and from method is supported. - if ( typeof entry.to === 'function' && typeof entry.from === 'function' ) { - return true; - } - - throw new Error( "noUiSlider: 'format' requires 'to' and 'from' methods."); - } - - // Test all developer settings and parse to assumption-safe values. - function testOptions ( options ) { - - var parsed = { - margin: 0, - limit: 0, - animate: true, - format: defaultFormatter - }, tests; - - // Tests are executed in the order they are presented here. - tests = { - 'step': { r: false, t: testStep }, - 'start': { r: true, t: testStart }, - 'connect': { r: true, t: testConnect }, - 'direction': { r: true, t: testDirection }, - 'snap': { r: false, t: testSnap }, - 'animate': { r: false, t: testAnimate }, - 'range': { r: true, t: testRange }, - 'orientation': { r: false, t: testOrientation }, - 'margin': { r: false, t: testMargin }, - 'limit': { r: false, t: testLimit }, - 'behaviour': { r: true, t: testBehaviour }, - 'format': { r: false, t: testFormat } - }; - - var defaults = { - 'connect': false, - 'direction': 'ltr', - 'behaviour': 'tap', - 'orientation': 'horizontal' - }; - - // Set defaults where applicable. - Object.keys(defaults).forEach(function ( name ) { - if ( options[name] === undefined ) { - options[name] = defaults[name]; - } - }); - - // Run all options through a testing mechanism to ensure correct - // input. It should be noted that options might get modified to - // be handled properly. E.g. wrapping integers in arrays. - Object.keys(tests).forEach(function( name ){ - - var test = tests[name]; - - // If the option isn't set, but it is required, throw an error. - if ( options[name] === undefined ) { - - if ( test.r ) { - throw new Error("noUiSlider: '" + name + "' is required."); - } - - return true; - } - - test.t( parsed, options[name] ); - }); - - // Forward pips options - parsed.pips = options.pips; - - // Pre-define the styles. - parsed.style = parsed.ort ? 'top' : 'left'; - - return parsed; - } - - - // Delimit proposed values for handle positions. - function getPositions ( a, b, delimit ) { - - // Add movement to current position. - var c = a + b[0], d = a + b[1]; - - // Only alter the other position on drag, - // not on standard sliding. - if ( delimit ) { - if ( c < 0 ) { - d += Math.abs(c); - } - if ( d > 100 ) { - c -= ( d - 100 ); - } - - // Limit values to 0 and 100. - return [limit(c), limit(d)]; - } - - return [c,d]; - } - - // Provide a clean event with standardized offset values. - function fixEvent ( e ) { - - // Prevent scrolling and panning on touch events, while - // attempting to slide. The tap event also depends on this. - e.preventDefault(); - - // Filter the event to register the type, which can be - // touch, mouse or pointer. Offset changes need to be - // made on an event specific basis. - var touch = e.type.indexOf('touch') === 0, - mouse = e.type.indexOf('mouse') === 0, - pointer = e.type.indexOf('pointer') === 0, - x,y, event = e; - - // IE10 implemented pointer events with a prefix; - if ( e.type.indexOf('MSPointer') === 0 ) { - pointer = true; - } - - if ( touch ) { - // noUiSlider supports one movement at a time, - // so we can select the first 'changedTouch'. - x = e.changedTouches[0].pageX; - y = e.changedTouches[0].pageY; - } - - if ( mouse || pointer ) { - x = e.clientX + window.pageXOffset; - y = e.clientY + window.pageYOffset; - } - - event.points = [x, y]; - event.cursor = mouse || pointer; // Fix #435 - - return event; - } - - // Append a handle to the base. - function addHandle ( direction, index ) { - - var origin = document.createElement('div'), - handle = document.createElement('div'), - additions = [ '-lower', '-upper' ]; - - if ( direction ) { - additions.reverse(); - } - - addClass(handle, Classes[3]); - addClass(handle, Classes[3] + additions[index]); - - addClass(origin, Classes[2]); - origin.appendChild(handle); - - return origin; - } - - // Add the proper connection classes. - function addConnection ( connect, target, handles ) { - - // Apply the required connection classes to the elements - // that need them. Some classes are made up for several - // segments listed in the class list, to allow easy - // renaming and provide a minor compression benefit. - switch ( connect ) { - case 1: addClass(target, Classes[7]); - addClass(handles[0], Classes[6]); - break; - case 3: addClass(handles[1], Classes[6]); - /* falls through */ - case 2: addClass(handles[0], Classes[7]); - /* falls through */ - case 0: addClass(target, Classes[6]); - break; - } - } - - // Add handles to the slider base. - function addHandles ( nrHandles, direction, base ) { - - var index, handles = []; - - // Append handles. - for ( index = 0; index < nrHandles; index += 1 ) { - - // Keep a list of all added handles. - handles.push( base.appendChild(addHandle( direction, index )) ); - } - - return handles; - } - - // Initialize a single slider. - function addSlider ( direction, orientation, target ) { - - // Apply classes and data to the target. - addClass(target, Classes[0]); - addClass(target, Classes[8 + direction]); - addClass(target, Classes[4 + orientation]); - - var div = document.createElement('div'); - addClass(div, Classes[1]); - target.appendChild(div); - return div; - } - - -function closure ( target, options ){ - - // All variables local to 'closure' are prefixed with 'scope_' - var scope_Target = target, - scope_Locations = [-1, -1], - scope_Base, - scope_Handles, - scope_Spectrum = options.spectrum, - scope_Values = [], - scope_Events = {}; - - - function getGroup ( mode, values, stepped ) { - - // Use the range. - if ( mode === 'range' || mode === 'steps' ) { - return scope_Spectrum.xVal; - } - - if ( mode === 'count' ) { - - // Divide 0 - 100 in 'count' parts. - var spread = ( 100 / (values-1) ), v, i = 0; - values = []; - - // List these parts and have them handled as 'positions'. - while ((v=i++*spread) <= 100 ) { - values.push(v); - } - - mode = 'positions'; - } - - if ( mode === 'positions' ) { - - // Map all percentages to on-range values. - return values.map(function( value ){ - return scope_Spectrum.fromStepping( stepped ? scope_Spectrum.getStep( value ) : value ); - }); - } - - if ( mode === 'values' ) { - - // If the value must be stepped, it needs to be converted to a percentage first. - if ( stepped ) { - - return values.map(function( value ){ - - // Convert to percentage, apply step, return to value. - return scope_Spectrum.fromStepping( scope_Spectrum.getStep( scope_Spectrum.toStepping( value ) ) ); - }); - - } - - // Otherwise, we can simply use the values. - return values; - } - } - - function generateSpread ( density, mode, group ) { - - var originalSpectrumDirection = scope_Spectrum.direction, - indexes = {}, - firstInRange = scope_Spectrum.xVal[0], - lastInRange = scope_Spectrum.xVal[scope_Spectrum.xVal.length-1], - ignoreFirst = false, - ignoreLast = false, - prevPct = 0; - - // This function loops the spectrum in an ltr linear fashion, - // while the toStepping method is direction aware. Trick it into - // believing it is ltr. - scope_Spectrum.direction = 0; - - // Create a copy of the group, sort it and filter away all duplicates. - group = unique(group.slice().sort(function(a, b){ return a - b; })); - - // Make sure the range starts with the first element. - if ( group[0] !== firstInRange ) { - group.unshift(firstInRange); - ignoreFirst = true; - } - - // Likewise for the last one. - if ( group[group.length - 1] !== lastInRange ) { - group.push(lastInRange); - ignoreLast = true; - } - - group.forEach(function ( current, index ) { - - // Get the current step and the lower + upper positions. - var step, i, q, - low = current, - high = group[index+1], - newPct, pctDifference, pctPos, type, - steps, realSteps, stepsize; - - // When using 'steps' mode, use the provided steps. - // Otherwise, we'll step on to the next subrange. - if ( mode === 'steps' ) { - step = scope_Spectrum.xNumSteps[ index ]; - } - - // Default to a 'full' step. - if ( !step ) { - step = high-low; - } - - // Low can be 0, so test for false. If high is undefined, - // we are at the last subrange. Index 0 is already handled. - if ( low === false || high === undefined ) { - return; - } - - // Find all steps in the subrange. - for ( i = low; i <= high; i += step ) { - - // Get the percentage value for the current step, - // calculate the size for the subrange. - newPct = scope_Spectrum.toStepping( i ); - pctDifference = newPct - prevPct; - - steps = pctDifference / density; - realSteps = Math.round(steps); - - // This ratio represents the ammount of percentage-space a point indicates. - // For a density 1 the points/percentage = 1. For density 2, that percentage needs to be re-devided. - // Round the percentage offset to an even number, then divide by two - // to spread the offset on both sides of the range. - stepsize = pctDifference/realSteps; - - // Divide all points evenly, adding the correct number to this subrange. - // Run up to <= so that 100% gets a point, event if ignoreLast is set. - for ( q = 1; q <= realSteps; q += 1 ) { - - // The ratio between the rounded value and the actual size might be ~1% off. - // Correct the percentage offset by the number of points - // per subrange. density = 1 will result in 100 points on the - // full range, 2 for 50, 4 for 25, etc. - pctPos = prevPct + ( q * stepsize ); - indexes[pctPos.toFixed(5)] = ['x', 0]; - } - - // Determine the point type. - type = (group.indexOf(i) > -1) ? 1 : ( mode === 'steps' ? 2 : 0 ); - - // Enforce the 'ignoreFirst' option by overwriting the type for 0. - if ( !index && ignoreFirst ) { - type = 0; - } - - if ( !(i === high && ignoreLast)) { - // Mark the 'type' of this point. 0 = plain, 1 = real value, 2 = step value. - indexes[newPct.toFixed(5)] = [i, type]; - } - - // Update the percentage count. - prevPct = newPct; - } - }); - - // Reset the spectrum. - scope_Spectrum.direction = originalSpectrumDirection; - - return indexes; - } - - function addMarking ( spread, filterFunc, formatter ) { - - var style = ['horizontal', 'vertical'][options.ort], - element = document.createElement('div'); - - addClass(element, 'noUi-pips'); - addClass(element, 'noUi-pips-' + style); - - function getSize( type ){ - return [ '-normal', '-large', '-sub' ][type]; - } - - function getTags( offset, source, values ) { - return 'class="' + source + ' ' + - source + '-' + style + ' ' + - source + getSize(values[1]) + - '" style="' + options.style + ': ' + offset + '%"'; - } - - function addSpread ( offset, values ){ - - if ( scope_Spectrum.direction ) { - offset = 100 - offset; - } - - // Apply the filter function, if it is set. - values[1] = (values[1] && filterFunc) ? filterFunc(values[0], values[1]) : values[1]; - - // Add a marker for every point - element.innerHTML += '
                '; - - // Values are only appended for points marked '1' or '2'. - if ( values[1] ) { - element.innerHTML += '
                ' + formatter.to(values[0]) + '
                '; - } - } - - // Append all points. - Object.keys(spread).forEach(function(a){ - addSpread(a, spread[a]); - }); - - return element; - } - - function pips ( grid ) { - - var mode = grid.mode, - density = grid.density || 1, - filter = grid.filter || false, - values = grid.values || false, - stepped = grid.stepped || false, - group = getGroup( mode, values, stepped ), - spread = generateSpread( density, mode, group ), - format = grid.format || { - to: Math.round - }; - - return scope_Target.appendChild(addMarking( - spread, - filter, - format - )); - } - - - // Shorthand for base dimensions. - function baseSize ( ) { - return scope_Base['offset' + ['Width', 'Height'][options.ort]]; - } - - // External event handling - function fireEvent ( event, handleNumber ) { - - if ( handleNumber !== undefined ) { - handleNumber = Math.abs(handleNumber - options.dir); - } - - Object.keys(scope_Events).forEach(function( targetEvent ) { - - var eventType = targetEvent.split('.')[0]; - - if ( event === eventType ) { - scope_Events[targetEvent].forEach(function( callback ) { - // .reverse is in place - // Return values as array, so arg_1[arg_2] is always valid. - callback( asArray(valueGet()), handleNumber, inSliderOrder(Array.prototype.slice.call(scope_Values)) ); - }); - } - }); - } - - // Returns the input array, respecting the slider direction configuration. - function inSliderOrder ( values ) { - - // If only one handle is used, return a single value. - if ( values.length === 1 ){ - return values[0]; - } - - if ( options.dir ) { - return values.reverse(); - } - - return values; - } - - - // Handler for attaching events trough a proxy. - function attach ( events, element, callback, data ) { - - // This function can be used to 'filter' events to the slider. - // element is a node, not a nodeList - - var method = function ( e ){ - - if ( scope_Target.hasAttribute('disabled') ) { - return false; - } - - // Stop if an active 'tap' transition is taking place. - if ( hasClass(scope_Target, Classes[14]) ) { - return false; - } - - e = fixEvent(e); - - // Ignore right or middle clicks on start #454 - if ( events === actions.start && e.buttons !== undefined && e.buttons > 1 ) { - return false; - } - - e.calcPoint = e.points[ options.ort ]; - - // Call the event handler with the event [ and additional data ]. - callback ( e, data ); - - }, methods = []; - - // Bind a closure on the target for every event type. - events.split(' ').forEach(function( eventName ){ - element.addEventListener(eventName, method, false); - methods.push([eventName, method]); - }); - - return methods; - } - - // Handle movement on document for handle and range drag. - function move ( event, data ) { - - var handles = data.handles || scope_Handles, positions, state = false, - proposal = ((event.calcPoint - data.start) * 100) / baseSize(), - handleNumber = handles[0] === scope_Handles[0] ? 0 : 1, i; - - // Calculate relative positions for the handles. - positions = getPositions( proposal, data.positions, handles.length > 1); - - state = setHandle ( handles[0], positions[handleNumber], handles.length === 1 ); - - if ( handles.length > 1 ) { - - state = setHandle ( handles[1], positions[handleNumber?0:1], false ) || state; - - if ( state ) { - // fire for both handles - for ( i = 0; i < data.handles.length; i++ ) { - fireEvent('slide', i); - } - } - } else if ( state ) { - // Fire for a single handle - fireEvent('slide', handleNumber); - } - } - - // Unbind move events on document, call callbacks. - function end ( event, data ) { - - // The handle is no longer active, so remove the class. - var active = scope_Base.getElementsByClassName(Classes[15]), - handleNumber = data.handles[0] === scope_Handles[0] ? 0 : 1; - - if ( active.length ) { - removeClass(active[0], Classes[15]); - } - - // Remove cursor styles and text-selection events bound to the body. - if ( event.cursor ) { - document.body.style.cursor = ''; - document.body.removeEventListener('selectstart', document.body.noUiListener); - } - - var d = document.documentElement; - - // Unbind the move and end events, which are added on 'start'. - d.noUiListeners.forEach(function( c ) { - d.removeEventListener(c[0], c[1]); - }); - - // Remove dragging class. - removeClass(scope_Target, Classes[12]); - - // Fire the change and set events. - fireEvent('set', handleNumber); - fireEvent('change', handleNumber); - } - - // Bind move events on document. - function start ( event, data ) { - - var d = document.documentElement; - - // Mark the handle as 'active' so it can be styled. - if ( data.handles.length === 1 ) { - addClass(data.handles[0].children[0], Classes[15]); - - // Support 'disabled' handles - if ( data.handles[0].hasAttribute('disabled') ) { - return false; - } - } - - // A drag should never propagate up to the 'tap' event. - event.stopPropagation(); - - // Attach the move and end events. - var moveEvent = attach(actions.move, d, move, { - start: event.calcPoint, - handles: data.handles, - positions: [ - scope_Locations[0], - scope_Locations[scope_Handles.length - 1] - ] - }), endEvent = attach(actions.end, d, end, { - handles: data.handles - }); - - d.noUiListeners = moveEvent.concat(endEvent); - - // Text selection isn't an issue on touch devices, - // so adding cursor styles can be skipped. - if ( event.cursor ) { - - // Prevent the 'I' cursor and extend the range-drag cursor. - document.body.style.cursor = getComputedStyle(event.target).cursor; - - // Mark the target with a dragging state. - if ( scope_Handles.length > 1 ) { - addClass(scope_Target, Classes[12]); - } - - var f = function(){ - return false; - }; - - document.body.noUiListener = f; - - // Prevent text selection when dragging the handles. - document.body.addEventListener('selectstart', f, false); - } - } - - // Move closest handle to tapped location. - function tap ( event ) { - - var location = event.calcPoint, total = 0, handleNumber, to; - - // The tap event shouldn't propagate up and cause 'edge' to run. - event.stopPropagation(); - - // Add up the handle offsets. - scope_Handles.forEach(function(a){ - total += offset(a)[ options.style ]; - }); - - // Find the handle closest to the tapped position. - handleNumber = ( location < total/2 || scope_Handles.length === 1 ) ? 0 : 1; - - location -= offset(scope_Base)[ options.style ]; - - // Calculate the new position. - to = ( location * 100 ) / baseSize(); - - if ( !options.events.snap ) { - // Flag the slider as it is now in a transitional state. - // Transition takes 300 ms, so re-enable the slider afterwards. - addClassFor( scope_Target, Classes[14], 300 ); - } - - // Support 'disabled' handles - if ( scope_Handles[handleNumber].hasAttribute('disabled') ) { - return false; - } - - // Find the closest handle and calculate the tapped point. - // The set handle to the new position. - setHandle( scope_Handles[handleNumber], to ); - - fireEvent('slide', handleNumber); - fireEvent('set', handleNumber); - fireEvent('change', handleNumber); - - if ( options.events.snap ) { - start(event, { handles: [scope_Handles[total]] }); - } - } - - // Attach events to several slider parts. - function events ( behaviour ) { - - var i, drag; - - // Attach the standard drag event to the handles. - if ( !behaviour.fixed ) { - - for ( i = 0; i < scope_Handles.length; i += 1 ) { - - // These events are only bound to the visual handle - // element, not the 'real' origin element. - attach ( actions.start, scope_Handles[i].children[0], start, { - handles: [ scope_Handles[i] ] - }); - } - } - - // Attach the tap event to the slider base. - if ( behaviour.tap ) { - - attach ( actions.start, scope_Base, tap, { - handles: scope_Handles - }); - } - - // Make the range dragable. - if ( behaviour.drag ){ - - drag = [scope_Base.getElementsByClassName( Classes[7] )[0]]; - addClass(drag[0], Classes[10]); - - // When the range is fixed, the entire range can - // be dragged by the handles. The handle in the first - // origin will propagate the start event upward, - // but it needs to be bound manually on the other. - if ( behaviour.fixed ) { - drag.push(scope_Handles[(drag[0] === scope_Handles[0] ? 1 : 0)].children[0]); - } - - drag.forEach(function( element ) { - attach ( actions.start, element, start, { - handles: scope_Handles - }); - }); - } - } - - - // Test suggested values and apply margin, step. - function setHandle ( handle, to, noLimitOption ) { - - var trigger = handle !== scope_Handles[0] ? 1 : 0, - lowerMargin = scope_Locations[0] + options.margin, - upperMargin = scope_Locations[1] - options.margin, - lowerLimit = scope_Locations[0] + options.limit, - upperLimit = scope_Locations[1] - options.limit; - - // For sliders with multiple handles, - // limit movement to the other handle. - // Apply the margin option by adding it to the handle positions. - if ( scope_Handles.length > 1 ) { - to = trigger ? Math.max( to, lowerMargin ) : Math.min( to, upperMargin ); - } - - // The limit option has the opposite effect, limiting handles to a - // maximum distance from another. Limit must be > 0, as otherwise - // handles would be unmoveable. 'noLimitOption' is set to 'false' - // for the .val() method, except for pass 4/4. - if ( noLimitOption !== false && options.limit && scope_Handles.length > 1 ) { - to = trigger ? Math.min ( to, lowerLimit ) : Math.max( to, upperLimit ); - } - - // Handle the step option. - to = scope_Spectrum.getStep( to ); - - // Limit to 0/100 for .val input, trim anything beyond 7 digits, as - // JavaScript has some issues in its floating point implementation. - to = limit(parseFloat(to.toFixed(7))); - - // Return false if handle can't move. - if ( to === scope_Locations[trigger] ) { - return false; - } - - // Set the handle to the new position. - handle.style[options.style] = to + '%'; - - // Force proper handle stacking - if ( !handle.previousSibling ) { - removeClass(handle, Classes[17]); - if ( to > 50 ) { - addClass(handle, Classes[17]); - } - } - - // Update locations. - scope_Locations[trigger] = to; - - // Convert the value to the slider stepping/range. - scope_Values[trigger] = scope_Spectrum.fromStepping( to ); - - fireEvent('update', trigger); - - return true; - } - - // Loop values from value method and apply them. - function setValues ( count, values ) { - - var i, trigger, to; - - // With the limit option, we'll need another limiting pass. - if ( options.limit ) { - count += 1; - } - - // If there are multiple handles to be set run the setting - // mechanism twice for the first handle, to make sure it - // can be bounced of the second one properly. - for ( i = 0; i < count; i += 1 ) { - - trigger = i%2; - - // Get the current argument from the array. - to = values[trigger]; - - // Setting with null indicates an 'ignore'. - // Inputting 'false' is invalid. - if ( to !== null && to !== false ) { - - // If a formatted number was passed, attemt to decode it. - if ( typeof to === 'number' ) { - to = String(to); - } - - to = options.format.from( to ); - - // Request an update for all links if the value was invalid. - // Do so too if setting the handle fails. - if ( to === false || isNaN(to) || setHandle( scope_Handles[trigger], scope_Spectrum.toStepping( to ), i === (3 - options.dir) ) === false ) { - fireEvent('update', trigger); - } - } - } - } - - // Set the slider value. - function valueSet ( input ) { - - var count, values = asArray( input ), i; - - // The RTL settings is implemented by reversing the front-end, - // internal mechanisms are the same. - if ( options.dir && options.handles > 1 ) { - values.reverse(); - } - - // Animation is optional. - // Make sure the initial values where set before using animated placement. - if ( options.animate && scope_Locations[0] !== -1 ) { - addClassFor( scope_Target, Classes[14], 300 ); - } - - // Determine how often to set the handles. - count = scope_Handles.length > 1 ? 3 : 1; - - if ( values.length === 1 ) { - count = 1; - } - - setValues ( count, values ); - - // Fire the 'set' event for both handles. - for ( i = 0; i < scope_Handles.length; i++ ) { - fireEvent('set', i); - } - } - - // Get the slider value. - function valueGet ( ) { - - var i, retour = []; - - // Get the value from all handles. - for ( i = 0; i < options.handles; i += 1 ){ - retour[i] = options.format.to( scope_Values[i] ); - } - - return inSliderOrder( retour ); - } - - // Removes classes from the root and empties it. - function destroy ( ) { - Classes.forEach(function(cls){ - if ( !cls ) { return; } // Ignore empty classes - removeClass(scope_Target, cls); - }); - scope_Target.innerHTML = ''; - delete scope_Target.noUiSlider; - } - - // Get the current step size for the slider. - function getCurrentStep ( ) { - - // Check all locations, map them to their stepping point. - // Get the step point, then find it in the input list. - var retour = scope_Locations.map(function( location, index ){ - - var step = scope_Spectrum.getApplicableStep( location ), - - // As per #391, the comparison for the decrement step can have some rounding issues. - // Round the value to the precision used in the step. - stepDecimals = countDecimals(String(step[2])), - - // Get the current numeric value - value = scope_Values[index], - - // To move the slider 'one step up', the current step value needs to be added. - // Use null if we are at the maximum slider value. - increment = location === 100 ? null : step[2], - - // Going 'one step down' might put the slider in a different sub-range, so we - // need to switch between the current or the previous step. - prev = Number((value - step[2]).toFixed(stepDecimals)), - - // If the value fits the step, return the current step value. Otherwise, use the - // previous step. Return null if the slider is at its minimum value. - decrement = location === 0 ? null : (prev >= step[1]) ? step[2] : (step[0] || false); - - return [decrement, increment]; - }); - - // Return values in the proper order. - return inSliderOrder( retour ); - } - - // Attach an event to this slider, possibly including a namespace - function bindEvent ( namespacedEvent, callback ) { - scope_Events[namespacedEvent] = scope_Events[namespacedEvent] || []; - scope_Events[namespacedEvent].push(callback); - - // If the event bound is 'update,' fire it immediately for all handles. - if ( namespacedEvent.split('.')[0] === 'update' ) { - scope_Handles.forEach(function(a, index){ - fireEvent('update', index); - }); - } - } - - // Undo attachment of event - function removeEvent ( namespacedEvent ) { - - var event = namespacedEvent.split('.')[0], - namespace = namespacedEvent.substring(event.length); - - Object.keys(scope_Events).forEach(function( bind ){ - - var tEvent = bind.split('.')[0], - tNamespace = bind.substring(tEvent.length); - - if ( (!event || event === tEvent) && (!namespace || namespace === tNamespace) ) { - delete scope_Events[bind]; - } - }); - } - - - // Throw an error if the slider was already initialized. - if ( scope_Target.noUiSlider ) { - throw new Error('Slider was already initialized.'); - } - - - // Create the base element, initialise HTML and set classes. - // Add handles and links. - scope_Base = addSlider( options.dir, options.ort, scope_Target ); - scope_Handles = addHandles( options.handles, options.dir, scope_Base ); - - // Set the connect classes. - addConnection ( options.connect, scope_Target, scope_Handles ); - - // Attach user events. - events( options.events ); - - if ( options.pips ) { - pips(options.pips); - } - - return { - destroy: destroy, - steps: getCurrentStep, - on: bindEvent, - off: removeEvent, - get: valueGet, - set: valueSet - }; - -} - - - // Run the standard initializer - function initialize ( target, originalOptions ) { - - if ( !target.nodeName ) { - throw new Error('noUiSlider.create requires a single element.'); - } - - // Test the options and create the slider environment; - var options = testOptions( originalOptions, target ), - slider = closure( target, options ); - - // Use the public value method to set the start values. - slider.set(options.start); - - target.noUiSlider = slider; - - if (originalOptions.tooltips === true || originalOptions.tooltips === undefined) { - // Tooltips - var tipHandles = target.getElementsByClassName('noUi-handle'), - tooltips = []; - - // Add divs to the slider handles. - for ( var i = 0; i < tipHandles.length; i++ ){ - tooltips[i] = document.createElement('div'); - tipHandles[i].appendChild(tooltips[i]); - // Add a class for styling - tooltips[i].className += 'range-label'; - // Add additional markup - tooltips[i].innerHTML = ''; - // Replace the tooltip reference with the span we just added - tooltips[i] = tooltips[i].getElementsByTagName('span')[0]; - } - - - // When the slider changes, write the value to the tooltips. - target.noUiSlider.on('update', function( values, handle ){ - - tooltips[handle].innerHTML = values[handle]; - }); - } - } - - // Use an object instead of a function for future expansibility; - return { - create: initialize - }; - -})); \ No newline at end of file diff --git a/production/bower_components/Materialize/extras/noUiSlider/nouislider.min.js b/production/bower_components/Materialize/extras/noUiSlider/nouislider.min.js deleted file mode 100644 index f2f1683..0000000 --- a/production/bower_components/Materialize/extras/noUiSlider/nouislider.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){function a(a){return a.split("").reverse().join("")}function b(a,b,c){if((a[b]||a[c])&&a[b]===a[c])throw Error(b)}function c(b,c,d,e,f,g,h,i,j,k,l,m){h=m;var n,o=l="";return g&&(m=g(m)),"number"==typeof m&&isFinite(m)?(b&&0===parseFloat(m.toFixed(b))&&(m=0),0>m&&(n=!0,m=Math.abs(m)),b&&(g=Math.pow(10,b),m=(Math.round(m*g)/g).toFixed(b)),m=m.toString(),-1!==m.indexOf(".")&&(b=m.split("."),m=b[0],d&&(l=d+b[1])),c&&(m=a(m).match(/.{1,3}/g),m=a(m.join(a(c)))),n&&i&&(o+=i),e&&(o+=e),n&&j&&(o+=j),o=o+m+l,f&&(o+=f),k&&(o=k(o,h)),o):!1}function d(a,b,c,d,e,f,g,h,i,j,k,l){var m;return a="",k&&(l=k(l)),l&&"string"==typeof l?(h&&l.substring(0,h.length)===h&&(l=l.replace(h,""),m=!0),d&&l.substring(0,d.length)===d&&(l=l.replace(d,"")),i&&l.substring(0,i.length)===i&&(l=l.replace(i,""),m=!0),e&&l.slice(-1*e.length)===e&&(l=l.slice(0,-1*e.length)),b&&(l=l.split(b).join("")),c&&(l=l.replace(c,".")),m&&(a+="-"),a=Number((a+l).replace(/[^0-9\.\-.]/g,"")),g&&(a=g(a)),"number"==typeof a&&isFinite(a)?a:!1):!1}function e(a){var c,d,e,f={};for(c=0;c0&&8>e&&(f[d]=e):"encoder"===d||"decoder"===d||"edit"===d||"undo"===d?"function"==typeof e&&(f[d]=e):"string"==typeof e&&(f[d]=e);return b(f,"mark","thousand"),b(f,"prefix","negative"),b(f,"prefix","negativeBefore"),f}function f(a,b,c){var d,e=[];for(d=0;d1?b[1].length:0}function j(a,b){a.classList?a.classList.add(b):a.className+=" "+b}function k(a,b){a.classList?a.classList.remove(b):a.className=a.className.replace(new RegExp("(^|\\b)"+b.split(" ").join("|")+"(\\b|$)","gi")," ")}function l(a,b){a.classList?a.classList.contains(b):new RegExp("(^| )"+b+"( |$)","gi").test(a.className)}function m(a,b){return 100/(b-a)}function n(a,b){return 100*b/(a[1]-a[0])}function o(a,b){return n(a,a[0]<0?b+Math.abs(a[0]):b-a[0])}function p(a,b){return b*(a[1]-a[0])/100+a[0]}function q(a,b){for(var c=1;a>=b[c];)c+=1;return c}function r(a,b,c){if(c>=a.slice(-1)[0])return 100;var d,e,f,g,h=q(c,a);return d=a[h-1],e=a[h],f=b[h-1],g=b[h],f+o([d,e],c)/m(f,g)}function s(a,b,c){if(c>=100)return a.slice(-1)[0];var d,e,f,g,h=q(c,b);return d=a[h-1],e=a[h],f=b[h-1],g=b[h],p([d,e],(c-f)*m(f,g))}function t(a,c,d,e){if(100===e)return e;var f,g,h=q(e,a);return d?(f=a[h-1],g=a[h],e-f>(g-f)/2?g:f):c[h-1]?a[h-1]+b(e-a[h-1],c[h-1]):e}function u(a,b,c){var e;if("number"==typeof b&&(b=[b]),"[object Array]"!==Object.prototype.toString.call(b))throw new Error("noUiSlider: 'range' contains invalid value.");if(e="min"===a?0:"max"===a?100:parseFloat(a),!d(e)||!d(b[0]))throw new Error("noUiSlider: 'range' value isn't numeric.");c.xPct.push(e),c.xVal.push(b[0]),e?c.xSteps.push(isNaN(b[1])?!1:b[1]):isNaN(b[1])||(c.xSteps[0]=b[1])}function v(a,b,c){return b?void(c.xSteps[a]=n([c.xVal[a],c.xVal[a+1]],b)/m(c.xPct[a],c.xPct[a+1])):!0}function w(a,b,c,d){this.xPct=[],this.xVal=[],this.xSteps=[d||!1],this.xNumSteps=[!1],this.snap=b,this.direction=c;var e,f=[];for(e in a)a.hasOwnProperty(e)&&f.push([a[e],e]);for(f.sort(function(a,b){return a[0]-b[0]}),e=0;e2)throw new Error("noUiSlider: 'start' option is incorrect.");a.handles=b.length,a.start=b}function A(a,b){if(a.snap=b,"boolean"!=typeof b)throw new Error("noUiSlider: 'snap' option must be a boolean.")}function B(a,b){if(a.animate=b,"boolean"!=typeof b)throw new Error("noUiSlider: 'animate' option must be a boolean.")}function C(a,b){if("lower"===b&&1===a.handles)a.connect=1;else if("upper"===b&&1===a.handles)a.connect=2;else if(b===!0&&2===a.handles)a.connect=3;else{if(b!==!1)throw new Error("noUiSlider: 'connect' option doesn't match handle count.");a.connect=0}}function D(a,b){switch(b){case"horizontal":a.ort=0;break;case"vertical":a.ort=1;break;default:throw new Error("noUiSlider: 'orientation' option is invalid.")}}function E(a,b){if(!d(b))throw new Error("noUiSlider: 'margin' option must be numeric.");if(a.margin=a.spectrum.getMargin(b),!a.margin)throw new Error("noUiSlider: 'margin' option is only supported on linear sliders.")}function F(a,b){if(!d(b))throw new Error("noUiSlider: 'limit' option must be numeric.");if(a.limit=a.spectrum.getMargin(b),!a.limit)throw new Error("noUiSlider: 'limit' option is only supported on linear sliders.")}function G(a,b){switch(b){case"ltr":a.dir=0;break;case"rtl":a.dir=1,a.connect=[0,2,1,3][a.connect];break;default:throw new Error("noUiSlider: 'direction' option was not recognized.")}}function H(a,b){if("string"!=typeof b)throw new Error("noUiSlider: 'behaviour' must be a string containing options.");var c=b.indexOf("tap")>=0,d=b.indexOf("drag")>=0,e=b.indexOf("fixed")>=0,f=b.indexOf("snap")>=0;a.events={tap:c||f,drag:d,fixed:e,snap:f}}function I(a,b){if(a.format=b,"function"==typeof b.to&&"function"==typeof b.from)return!0;throw new Error("noUiSlider: 'format' requires 'to' and 'from' methods.")}function J(a){var b,c={margin:0,limit:0,animate:!0,format:U};b={step:{r:!1,t:x},start:{r:!0,t:z},connect:{r:!0,t:C},direction:{r:!0,t:G},snap:{r:!1,t:A},animate:{r:!1,t:B},range:{r:!0,t:y},orientation:{r:!1,t:D},margin:{r:!1,t:E},limit:{r:!1,t:F},behaviour:{r:!0,t:H},format:{r:!1,t:I}};var d={connect:!1,direction:"ltr",behaviour:"tap",orientation:"horizontal"};return Object.keys(d).forEach(function(b){void 0===a[b]&&(a[b]=d[b])}),Object.keys(b).forEach(function(d){var e=b[d];if(void 0===a[d]){if(e.r)throw new Error("noUiSlider: '"+d+"' is required.");return!0}e.t(c,a[d])}),c.pips=a.pips,c.style=c.ort?"top":"left",c}function K(a,b,c){var d=a+b[0],e=a+b[1];return c?(0>d&&(e+=Math.abs(d)),e>100&&(d-=e-100),[g(d),g(e)]):[d,e]}function L(a){a.preventDefault();var b,c,d=0===a.type.indexOf("touch"),e=0===a.type.indexOf("mouse"),f=0===a.type.indexOf("pointer"),g=a;return 0===a.type.indexOf("MSPointer")&&(f=!0),d&&(b=a.changedTouches[0].pageX,c=a.changedTouches[0].pageY),(e||f)&&(b=a.clientX+window.pageXOffset,c=a.clientY+window.pageYOffset),g.points=[b,c],g.cursor=e||f,g}function M(a,b){var c=document.createElement("div"),d=document.createElement("div"),e=["-lower","-upper"];return a&&e.reverse(),j(d,T[3]),j(d,T[3]+e[b]),j(c,T[2]),c.appendChild(d),c}function N(a,b,c){switch(a){case 1:j(b,T[7]),j(c[0],T[6]);break;case 3:j(c[1],T[6]);case 2:j(c[0],T[7]);case 0:j(b,T[6])}}function O(a,b,c){var d,e=[];for(d=0;a>d;d+=1)e.push(c.appendChild(M(b,d)));return e}function P(a,b,c){j(c,T[0]),j(c,T[8+a]),j(c,T[4+b]);var d=document.createElement("div");return j(d,T[1]),c.appendChild(d),d}function Q(b,d){function e(a,b,c){if("range"===a||"steps"===a)return M.xVal;if("count"===a){var d,e=100/(b-1),f=0;for(b=[];(d=f++*e)<=100;)b.push(d);a="positions"}return"positions"===a?b.map(function(a){return M.fromStepping(c?M.getStep(a):a)}):"values"===a?c?b.map(function(a){return M.fromStepping(M.getStep(M.toStepping(a)))}):b:void 0}function m(b,c,d){var e=M.direction,f={},g=M.xVal[0],h=M.xVal[M.xVal.length-1],i=!1,j=!1,k=0;return M.direction=0,d=a(d.slice().sort(function(a,b){return a-b})),d[0]!==g&&(d.unshift(g),i=!0),d[d.length-1]!==h&&(d.push(h),j=!0),d.forEach(function(a,e){var g,h,l,m,n,o,p,q,r,s,t=a,u=d[e+1];if("steps"===c&&(g=M.xNumSteps[e]),g||(g=u-t),t!==!1&&void 0!==u)for(h=t;u>=h;h+=g){for(m=M.toStepping(h),n=m-k,q=n/b,r=Math.round(q),s=n/r,l=1;r>=l;l+=1)o=k+l*s,f[o.toFixed(5)]=["x",0];p=d.indexOf(h)>-1?1:"steps"===c?2:0,!e&&i&&(p=0),h===u&&j||(f[m.toFixed(5)]=[h,p]),k=m}}),M.direction=e,f}function n(a,b,c){function e(a){return["-normal","-large","-sub"][a]}function f(a,b,c){return'class="'+b+" "+b+"-"+h+" "+b+e(c[1])+'" style="'+d.style+": "+a+'%"'}function g(a,d){M.direction&&(a=100-a),d[1]=d[1]&&b?b(d[0],d[1]):d[1],i.innerHTML+="
                ",d[1]&&(i.innerHTML+="
                "+c.to(d[0])+"
                ")}var h=["horizontal","vertical"][d.ort],i=document.createElement("div");return j(i,"noUi-pips"),j(i,"noUi-pips-"+h),Object.keys(a).forEach(function(b){g(b,a[b])}),i}function o(a){var b=a.mode,c=a.density||1,d=a.filter||!1,f=a.values||!1,g=a.stepped||!1,h=e(b,f,g),i=m(c,b,h),j=a.format||{to:Math.round};return I.appendChild(n(i,d,j))}function p(){return G["offset"+["Width","Height"][d.ort]]}function q(a,b){void 0!==b&&(b=Math.abs(b-d.dir)),Object.keys(R).forEach(function(c){var d=c.split(".")[0];a===d&&R[c].forEach(function(a){a(h(B()),b,r(Array.prototype.slice.call(Q)))})})}function r(a){return 1===a.length?a[0]:d.dir?a.reverse():a}function s(a,b,c,e){var f=function(b){return I.hasAttribute("disabled")?!1:l(I,T[14])?!1:(b=L(b),a===S.start&&void 0!==b.buttons&&b.buttons>1?!1:(b.calcPoint=b.points[d.ort],void c(b,e)))},g=[];return a.split(" ").forEach(function(a){b.addEventListener(a,f,!1),g.push([a,f])}),g}function t(a,b){var c,d,e=b.handles||H,f=!1,g=100*(a.calcPoint-b.start)/p(),h=e[0]===H[0]?0:1;if(c=K(g,b.positions,e.length>1),f=y(e[0],c[h],1===e.length),e.length>1){if(f=y(e[1],c[h?0:1],!1)||f)for(d=0;d1&&j(I,T[12]);var f=function(){return!1};document.body.noUiListener=f,document.body.addEventListener("selectstart",f,!1)}}function w(a){var b,e,g=a.calcPoint,h=0;return a.stopPropagation(),H.forEach(function(a){h+=c(a)[d.style]}),b=h/2>g||1===H.length?0:1,g-=c(G)[d.style],e=100*g/p(),d.events.snap||f(I,T[14],300),H[b].hasAttribute("disabled")?!1:(y(H[b],e),q("slide",b),q("set",b),q("change",b),void(d.events.snap&&v(a,{handles:[H[h]]})))}function x(a){var b,c;if(!a.fixed)for(b=0;b1&&(b=e?Math.max(b,f):Math.min(b,h)),c!==!1&&d.limit&&H.length>1&&(b=e?Math.min(b,i):Math.max(b,l)),b=M.getStep(b),b=g(parseFloat(b.toFixed(7))),b===J[e]?!1:(a.style[d.style]=b+"%",a.previousSibling||(k(a,T[17]),b>50&&j(a,T[17])),J[e]=b,Q[e]=M.fromStepping(b),q("update",e),!0)}function z(a,b){var c,e,f;for(d.limit&&(a+=1),c=0;a>c;c+=1)e=c%2,f=b[e],null!==f&&f!==!1&&("number"==typeof f&&(f=String(f)),f=d.format.from(f),(f===!1||isNaN(f)||y(H[e],M.toStepping(f),c===3-d.dir)===!1)&&q("update",e))}function A(a){var b,c,e=h(a);for(d.dir&&d.handles>1&&e.reverse(),d.animate&&-1!==J[0]&&f(I,T[14],300),b=H.length>1?3:1,1===e.length&&(b=1),z(b,e),c=0;c=c[1]?c[2]:c[0]||!1;return[h,f]});return r(a)}function E(a,b){R[a]=R[a]||[],R[a].push(b),"update"===a.split(".")[0]&&H.forEach(function(a,b){q("update",b)})}function F(a){var b=a.split(".")[0],c=a.substring(b.length);Object.keys(R).forEach(function(a){var d=a.split(".")[0],e=a.substring(d.length);b&&b!==d||c&&c!==e||delete R[a]})}var G,H,I=b,J=[-1,-1],M=d.spectrum,Q=[],R={};if(I.noUiSlider)throw new Error("Slider was already initialized.");return G=P(d.dir,d.ort,I),H=O(d.handles,d.dir,G),N(d.connect,I,H),x(d.events),d.pips&&o(d.pips),{destroy:C,steps:D,on:E,off:F,get:B,set:A}}function R(a,b){if(!a.nodeName)throw new Error("noUiSlider.create requires a single element.");var c=J(b,a),d=Q(a,c);if(d.set(c.start),a.noUiSlider=d,b.tooltips===!0||void 0===b.tooltips){for(var e=a.getElementsByClassName("noUi-handle"),f=[],g=0;g
                ",f[g]=f[g].getElementsByTagName("span")[0];a.noUiSlider.on("update",function(a,b){f[b].innerHTML=a[b]})}}var S=window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend"},T=["noUi-target","noUi-base","noUi-origin","noUi-handle","noUi-horizontal","noUi-vertical","noUi-background","noUi-connect","noUi-ltr","noUi-rtl","noUi-dragable","","noUi-state-drag","","noUi-state-tap","noUi-active","","noUi-stacking"];w.prototype.getMargin=function(a){return 2===this.xPct.length?n(this.xVal,a):!1},w.prototype.toStepping=function(a){return a=r(this.xVal,this.xPct,a),this.direction&&(a=100-a),a},w.prototype.fromStepping=function(a){return this.direction&&(a=100-a),e(s(this.xVal,this.xPct,a))},w.prototype.getStep=function(a){return this.direction&&(a=100-a),a=t(this.xPct,this.xSteps,this.snap,a),this.direction&&(a=100-a),a},w.prototype.getApplicableStep=function(a){var b=q(a,this.xPct),c=100===a?2:1;return[this.xNumSteps[b-2],this.xVal[b-c],this.xNumSteps[b-c]]},w.prototype.convert=function(a){return this.getStep(this.toStepping(a))};var U={to:function(a){return a.toFixed(2)},from:Number};return{create:R}}); \ No newline at end of file diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.eot b/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.eot deleted file mode 100644 index b73776e..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.eot and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.ttf b/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.ttf deleted file mode 100644 index 68822ca..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.woff b/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.woff deleted file mode 100644 index 1f75afd..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.woff and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.woff2 b/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.woff2 deleted file mode 100644 index 350d1c3..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Bold.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Light.eot b/production/bower_components/Materialize/fonts/roboto/Roboto-Light.eot deleted file mode 100644 index 072cdc4..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Light.eot and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Light.ttf b/production/bower_components/Materialize/fonts/roboto/Roboto-Light.ttf deleted file mode 100644 index aa45340..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Light.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Light.woff b/production/bower_components/Materialize/fonts/roboto/Roboto-Light.woff deleted file mode 100644 index 3480c6c..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Light.woff and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Light.woff2 b/production/bower_components/Materialize/fonts/roboto/Roboto-Light.woff2 deleted file mode 100644 index 9a4d98c..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Light.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.eot b/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.eot deleted file mode 100644 index f9ad995..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.eot and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.ttf b/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.ttf deleted file mode 100644 index a3c1a1f..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.woff b/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.woff deleted file mode 100644 index 1186773..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.woff and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.woff2 b/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.woff2 deleted file mode 100644 index d10a592..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Medium.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.eot b/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.eot deleted file mode 100644 index 9b5e8e4..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.eot and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.ttf b/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.ttf deleted file mode 100644 index 0e58508..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.woff b/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.woff deleted file mode 100644 index f823258..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.woff and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.woff2 b/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.woff2 deleted file mode 100644 index b7082ef..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Regular.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.eot b/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.eot deleted file mode 100644 index 2284a3b..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.eot and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.ttf b/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.ttf deleted file mode 100644 index 8779333..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.ttf and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.woff b/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.woff deleted file mode 100644 index 2a98c1e..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.woff and /dev/null differ diff --git a/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.woff2 b/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.woff2 deleted file mode 100644 index a38025a..0000000 Binary files a/production/bower_components/Materialize/fonts/roboto/Roboto-Thin.woff2 and /dev/null differ diff --git a/production/bower_components/Materialize/js/animation.js b/production/bower_components/Materialize/js/animation.js deleted file mode 100644 index d194de7..0000000 --- a/production/bower_components/Materialize/js/animation.js +++ /dev/null @@ -1,9 +0,0 @@ - // Custom Easing - jQuery.extend( jQuery.easing, - { - easeInOutMaterial: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return c/4*((t-=2)*t*t + 2) + b; - } - }); - diff --git a/production/bower_components/Materialize/js/buttons.js b/production/bower_components/Materialize/js/buttons.js deleted file mode 100644 index 48886e1..0000000 --- a/production/bower_components/Materialize/js/buttons.js +++ /dev/null @@ -1,91 +0,0 @@ -(function ($) { - $(document).ready(function() { - - // jQuery reverse - $.fn.reverse = [].reverse; - - // Hover behaviour: make sure this doesn't work on .click-to-toggle FABs! - $(document).on('mouseenter.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle)', function(e) { - var $this = $(this); - openFABMenu($this); - }); - $(document).on('mouseleave.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle)', function(e) { - var $this = $(this); - closeFABMenu($this); - }); - - // Toggle-on-click behaviour. - $(document).on('click.fixedActionBtn', '.fixed-action-btn.click-to-toggle > a', function(e) { - var $this = $(this); - var $menu = $this.parent(); - if ($menu.hasClass('active')) { - closeFABMenu($menu); - } else { - openFABMenu($menu); - } - }); - - }); - - $.fn.extend({ - openFAB: function() { - openFABMenu($(this)); - }, - closeFAB: function() { - closeFABMenu($(this)); - } - }); - - - var openFABMenu = function (btn) { - $this = btn; - if ($this.hasClass('active') === false) { - - // Get direction option - var horizontal = $this.hasClass('horizontal'); - var offsetY, offsetX; - - if (horizontal === true) { - offsetX = 40; - } else { - offsetY = 40; - } - - $this.addClass('active'); - $this.find('ul .btn-floating').velocity( - { scaleY: ".4", scaleX: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'}, - { duration: 0 }); - - var time = 0; - $this.find('ul .btn-floating').reverse().each( function () { - $(this).velocity( - { opacity: "1", scaleX: "1", scaleY: "1", translateY: "0", translateX: '0'}, - { duration: 80, delay: time }); - time += 40; - }); - } - }; - - var closeFABMenu = function (btn) { - $this = btn; - // Get direction option - var horizontal = $this.hasClass('horizontal'); - var offsetY, offsetX; - - if (horizontal === true) { - offsetX = 40; - } else { - offsetY = 40; - } - - $this.removeClass('active'); - var time = 0; - $this.find('ul .btn-floating').velocity("stop", true); - $this.find('ul .btn-floating').velocity( - { opacity: "0", scaleX: ".4", scaleY: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'}, - { duration: 80 } - ); - }; - - -}( jQuery )); diff --git a/production/bower_components/Materialize/js/cards.js b/production/bower_components/Materialize/js/cards.js deleted file mode 100644 index ccd6610..0000000 --- a/production/bower_components/Materialize/js/cards.js +++ /dev/null @@ -1,26 +0,0 @@ -(function ($) { - $(document).ready(function() { - - $(document).on('click.card', '.card', function (e) { - if ($(this).find('> .card-reveal').length) { - if ($(e.target).is($('.card-reveal .card-title')) || $(e.target).is($('.card-reveal .card-title i'))) { - // Make Reveal animate down and display none - $(this).find('.card-reveal').velocity( - {translateY: 0}, { - duration: 225, - queue: false, - easing: 'easeInOutQuad', - complete: function() { $(this).css({ display: 'none'}); } - } - ); - } - else if ($(e.target).is($('.card .activator')) || - $(e.target).is($('.card .activator i')) ) { - $(e.target).closest('.card').css('overflow', 'hidden'); - $(this).find('.card-reveal').css({ display: 'block'}).velocity("stop", false).velocity({translateY: '-100%'}, {duration: 300, queue: false, easing: 'easeInOutQuad'}); - } - } - }); - - }); -}( jQuery )); \ No newline at end of file diff --git a/production/bower_components/Materialize/js/carousel.js b/production/bower_components/Materialize/js/carousel.js deleted file mode 100644 index 0f68dab..0000000 --- a/production/bower_components/Materialize/js/carousel.js +++ /dev/null @@ -1,454 +0,0 @@ -(function ($) { - - var methods = { - - init : function(options) { - var defaults = { - time_constant: 200, // ms - dist: -100, // zoom scale TODO: make this more intuitive as an option - shift: 0, // spacing for center image - padding: 0, // Padding between non center items - full_width: false, // Change to full width styles - indicators: false, // Toggle indicators - no_wrap: false // Don't wrap around and cycle through items. - }; - options = $.extend(defaults, options); - - return this.each(function() { - - var images, offset, center, pressed, dim, count, - reference, referenceY, amplitude, target, velocity, - xform, frame, timestamp, ticker, dragged, vertical_dragged; - var $indicators = $('
                  '); - - - // Initialize - var view = $(this); - var showIndicators = view.attr('data-indicators') || options.indicators; - - // Don't double initialize. - if (view.hasClass('initialized')) { - // Redraw carousel. - $(this).trigger('carouselNext', [0.000001]); - return true; - } - - - // Options - if (options.full_width) { - options.dist = 0; - var firstImage = view.find('.carousel-item img').first(); - if (firstImage.length) { - imageHeight = firstImage.load(function(){ - view.css('height', $(this).height()); - }); - } else { - imageHeight = view.find('.carousel-item').first().height(); - view.css('height', imageHeight); - } - - // Offset fixed items when indicators. - if (showIndicators) { - view.find('.carousel-fixed-item').addClass('with-indicators'); - } - } - - - view.addClass('initialized'); - pressed = false; - offset = target = 0; - images = []; - item_width = view.find('.carousel-item').first().innerWidth(); - dim = item_width * 2 + options.padding; - - view.find('.carousel-item').each(function (i) { - images.push($(this)[0]); - if (showIndicators) { - var $indicator = $('
                • '); - - // Add active to first by default. - if (i === 0) { - $indicator.addClass('active'); - } - - // Handle clicks on indicators. - $indicator.click(function () { - var index = $(this).index(); - cycleTo(index); - }); - $indicators.append($indicator); - } - }); - - if (showIndicators) { - view.append($indicators); - } - count = images.length; - - - function setupEvents() { - if (typeof window.ontouchstart !== 'undefined') { - view[0].addEventListener('touchstart', tap); - view[0].addEventListener('touchmove', drag); - view[0].addEventListener('touchend', release); - } - view[0].addEventListener('mousedown', tap); - view[0].addEventListener('mousemove', drag); - view[0].addEventListener('mouseup', release); - view[0].addEventListener('mouseleave', release); - view[0].addEventListener('click', click); - } - - function xpos(e) { - // touch event - if (e.targetTouches && (e.targetTouches.length >= 1)) { - return e.targetTouches[0].clientX; - } - - // mouse event - return e.clientX; - } - - function ypos(e) { - // touch event - if (e.targetTouches && (e.targetTouches.length >= 1)) { - return e.targetTouches[0].clientY; - } - - // mouse event - return e.clientY; - } - - function wrap(x) { - return (x >= count) ? (x % count) : (x < 0) ? wrap(count + (x % count)) : x; - } - - function scroll(x) { - var i, half, delta, dir, tween, el, alignment, xTranslation; - - offset = (typeof x === 'number') ? x : offset; - center = Math.floor((offset + dim / 2) / dim); - delta = offset - center * dim; - dir = (delta < 0) ? 1 : -1; - tween = -dir * delta * 2 / dim; - half = count >> 1; - - if (!options.full_width) { - alignment = 'translateX(' + (view[0].clientWidth - item_width) / 2 + 'px) '; - alignment += 'translateY(' + (view[0].clientHeight - item_width) / 2 + 'px)'; - } else { - alignment = 'translateX(0)'; - } - - // Set indicator active - if (showIndicators) { - var diff = (center % count); - var activeIndicator = $indicators.find('.indicator-item.active'); - if (activeIndicator.index() !== diff) { - activeIndicator.removeClass('active'); - $indicators.find('.indicator-item').eq(diff).addClass('active'); - } - } - - // center - // Don't show wrapped items. - if (!options.no_wrap || (center >= 0 && center < count)) { - el = images[wrap(center)]; - el.style[xform] = alignment + - ' translateX(' + (-delta / 2) + 'px)' + - ' translateX(' + (dir * options.shift * tween * i) + 'px)' + - ' translateZ(' + (options.dist * tween) + 'px)'; - el.style.zIndex = 0; - if (options.full_width) { tweenedOpacity = 1; } - else { tweenedOpacity = 1 - 0.2 * tween; } - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - for (i = 1; i <= half; ++i) { - // right side - if (options.full_width) { - zTranslation = options.dist; - tweenedOpacity = (i === half && delta < 0) ? 1 - tween : 1; - } else { - zTranslation = options.dist * (i * 2 + tween * dir); - tweenedOpacity = 1 - 0.2 * (i * 2 + tween * dir); - } - // Don't show wrapped items. - if (!options.no_wrap || center + i < count) { - el = images[wrap(center + i)]; - el.style[xform] = alignment + - ' translateX(' + (options.shift + (dim * i - delta) / 2) + 'px)' + - ' translateZ(' + zTranslation + 'px)'; - el.style.zIndex = -i; - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - - // left side - if (options.full_width) { - zTranslation = options.dist; - tweenedOpacity = (i === half && delta > 0) ? 1 - tween : 1; - } else { - zTranslation = options.dist * (i * 2 - tween * dir); - tweenedOpacity = 1 - 0.2 * (i * 2 - tween * dir); - } - // Don't show wrapped items. - if (!options.no_wrap || center - i >= 0) { - el = images[wrap(center - i)]; - el.style[xform] = alignment + - ' translateX(' + (-options.shift + (-dim * i - delta) / 2) + 'px)' + - ' translateZ(' + zTranslation + 'px)'; - el.style.zIndex = -i; - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - } - - // center - // Don't show wrapped items. - if (!options.no_wrap || (center >= 0 && center < count)) { - el = images[wrap(center)]; - el.style[xform] = alignment + - ' translateX(' + (-delta / 2) + 'px)' + - ' translateX(' + (dir * options.shift * tween) + 'px)' + - ' translateZ(' + (options.dist * tween) + 'px)'; - el.style.zIndex = 0; - if (options.full_width) { tweenedOpacity = 1; } - else { tweenedOpacity = 1 - 0.2 * tween; } - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - } - - function track() { - var now, elapsed, delta, v; - - now = Date.now(); - elapsed = now - timestamp; - timestamp = now; - delta = offset - frame; - frame = offset; - - v = 1000 * delta / (1 + elapsed); - velocity = 0.8 * v + 0.2 * velocity; - } - - function autoScroll() { - var elapsed, delta; - - if (amplitude) { - elapsed = Date.now() - timestamp; - delta = amplitude * Math.exp(-elapsed / options.time_constant); - if (delta > 2 || delta < -2) { - scroll(target - delta); - requestAnimationFrame(autoScroll); - } else { - scroll(target); - } - } - } - - function click(e) { - // Disable clicks if carousel was dragged. - if (dragged) { - e.preventDefault(); - e.stopPropagation(); - return false; - - } else if (!options.full_width) { - var clickedIndex = $(e.target).closest('.carousel-item').index(); - var diff = (center % count) - clickedIndex; - - // Disable clicks if carousel was shifted by click - if (diff !== 0) { - e.preventDefault(); - e.stopPropagation(); - } - cycleTo(clickedIndex); - } - } - - function cycleTo(n) { - var diff = (center % count) - n; - - // Account for wraparound. - if (!options.no_wrap) { - if (diff < 0) { - if (Math.abs(diff + count) < Math.abs(diff)) { diff += count; } - - } else if (diff > 0) { - if (Math.abs(diff - count) < diff) { diff -= count; } - } - } - - // Call prev or next accordingly. - if (diff < 0) { - view.trigger('carouselNext', [Math.abs(diff)]); - - } else if (diff > 0) { - view.trigger('carouselPrev', [diff]); - } - } - - function tap(e) { - pressed = true; - dragged = false; - vertical_dragged = false; - reference = xpos(e); - referenceY = ypos(e); - - velocity = amplitude = 0; - frame = offset; - timestamp = Date.now(); - clearInterval(ticker); - ticker = setInterval(track, 100); - - } - - function drag(e) { - var x, delta, deltaY; - if (pressed) { - x = xpos(e); - y = ypos(e); - delta = reference - x; - deltaY = Math.abs(referenceY - y); - if (deltaY < 30 && !vertical_dragged) { - // If vertical scrolling don't allow dragging. - if (delta > 2 || delta < -2) { - dragged = true; - reference = x; - scroll(offset + delta); - } - - } else if (dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - - } else { - // Vertical scrolling. - vertical_dragged = true; - } - } - - if (dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - } - } - - function release(e) { - if (pressed) { - pressed = false; - } else { - return; - } - - clearInterval(ticker); - target = offset; - if (velocity > 10 || velocity < -10) { - amplitude = 0.9 * velocity; - target = offset + amplitude; - } - target = Math.round(target / dim) * dim; - - // No wrap of items. - if (options.no_wrap) { - if (target >= dim * (count - 1)) { - target = dim * (count - 1); - } else if (target < 0) { - target = 0; - } - } - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - - if (dragged) { - e.preventDefault(); - e.stopPropagation(); - } - return false; - } - - xform = 'transform'; - ['webkit', 'Moz', 'O', 'ms'].every(function (prefix) { - var e = prefix + 'Transform'; - if (typeof document.body.style[e] !== 'undefined') { - xform = e; - return false; - } - return true; - }); - - - - window.onresize = scroll; - - setupEvents(); - scroll(offset); - - $(this).on('carouselNext', function(e, n) { - if (n === undefined) { - n = 1; - } - target = offset + dim * n; - if (offset !== target) { - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - } - }); - - $(this).on('carouselPrev', function(e, n) { - if (n === undefined) { - n = 1; - } - target = offset - dim * n; - if (offset !== target) { - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - } - }); - - $(this).on('carouselSet', function(e, n) { - if (n === undefined) { - n = 0; - } - cycleTo(n); - }); - - }); - - - - }, - next : function(n) { - $(this).trigger('carouselNext', [n]); - }, - prev : function(n) { - $(this).trigger('carouselPrev', [n]); - }, - set : function(n) { - $(this).trigger('carouselSet', [n]); - } - }; - - - $.fn.carousel = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.carousel' ); - } - }; // Plugin end -}( jQuery )); \ No newline at end of file diff --git a/production/bower_components/Materialize/js/character_counter.js b/production/bower_components/Materialize/js/character_counter.js deleted file mode 100644 index 3cce87f..0000000 --- a/production/bower_components/Materialize/js/character_counter.js +++ /dev/null @@ -1,72 +0,0 @@ -(function ($) { - - $.fn.characterCounter = function(){ - return this.each(function(){ - var $input = $(this); - var $counterElement = $input.parent().find('span[class="character-counter"]'); - - // character counter has already been added appended to the parent container - if ($counterElement.length) { - return; - } - - var itHasLengthAttribute = $input.attr('length') !== undefined; - - if(itHasLengthAttribute){ - $input.on('input', updateCounter); - $input.on('focus', updateCounter); - $input.on('blur', removeCounterElement); - - addCounterElement($input); - } - - }); - }; - - function updateCounter(){ - var maxLength = +$(this).attr('length'), - actualLength = +$(this).val().length, - isValidLength = actualLength <= maxLength; - - $(this).parent().find('span[class="character-counter"]') - .html( actualLength + '/' + maxLength); - - addInputStyle(isValidLength, $(this)); - } - - function addCounterElement($input) { - var $counterElement = $input.parent().find('span[class="character-counter"]'); - - if ($counterElement.length) { - return; - } - - $counterElement = $('') - .addClass('character-counter') - .css('float','right') - .css('font-size','12px') - .css('height', 1); - - $input.parent().append($counterElement); - } - - function removeCounterElement(){ - $(this).parent().find('span[class="character-counter"]').html(''); - } - - function addInputStyle(isValidLength, $input){ - var inputHasInvalidClass = $input.hasClass('invalid'); - if (isValidLength && inputHasInvalidClass) { - $input.removeClass('invalid'); - } - else if(!isValidLength && !inputHasInvalidClass){ - $input.removeClass('valid'); - $input.addClass('invalid'); - } - } - - $(document).ready(function(){ - $('input, textarea').characterCounter(); - }); - -}( jQuery )); diff --git a/production/bower_components/Materialize/js/chips.js b/production/bower_components/Materialize/js/chips.js deleted file mode 100644 index 8fe7933..0000000 --- a/production/bower_components/Materialize/js/chips.js +++ /dev/null @@ -1,267 +0,0 @@ -(function ($) { - var chipsHandleEvents = false; - var materialChipsDefaults = { - data: [], - placeholder: '', - secondaryPlaceholder: '', - }; - - $(document).ready(function(){ - // Handle removal of static chips. - $(document).on('click', '.chip .close', function(e){ - var $chips = $(this).closest('.chips'); - if ($chips.data('initialized')) { - return; - } - $(this).closest('.chip').remove(); - }); - }); - - $.fn.material_chip = function (options) { - var self = this; - this.$el = $(this); - this.$document = $(document); - this.SELS = { - CHIPS: '.chips', - CHIP: '.chip', - INPUT: 'input', - DELETE: '.material-icons', - SELECTED_CHIP: '.selected', - }; - - if ('data' === options) { - return this.$el.data('chips'); - } - - if ('options' === options) { - return this.$el.data('options'); - } - - this.$el.data('options', $.extend({}, materialChipsDefaults, options)); - - // Initialize - this.init = function() { - var i = 0; - var chips; - self.$el.each(function(){ - var $chips = $(this); - if ($chips.data('initialized')) { - // Prevent double initialization. - return; - } - var options = $chips.data('options'); - if (!options.data || !options.data instanceof Array) { - options.data = []; - } - $chips.data('chips', options.data); - $chips.data('index', i); - $chips.data('initialized', true); - - if (!$chips.hasClass(self.SELS.CHIPS)) { - $chips.addClass('chips'); - } - - self.chips($chips); - i++; - }); - }; - - this.handleEvents = function(){ - var SELS = self.SELS; - - self.$document.on('click', SELS.CHIPS, function(e){ - $(e.target).find(SELS.INPUT).focus(); - }); - - self.$document.on('click', SELS.CHIP, function(e){ - $(SELS.CHIP).removeClass('selected'); - $(this).toggleClass('selected'); - }); - - self.$document.on('keydown', function(e){ - if ($(e.target).is('input, textarea')) { - return; - } - - // delete - var $chip = self.$document.find(SELS.CHIP + SELS.SELECTED_CHIP); - var $chips = $chip.closest(SELS.CHIPS); - var length = $chip.siblings(SELS.CHIP).length; - var index; - - if (!$chip.length) { - return; - } - - if (e.which === 8 || e.which === 46) { - e.preventDefault(); - var chipsIndex = $chips.data('index'); - - index = $chip.index(); - self.deleteChip(chipsIndex, index, $chips); - - var selectIndex = null; - if ((index + 1) < length) { - selectIndex = index; - } else if (index === length || (index + 1) === length) { - selectIndex = length - 1; - } - - if (selectIndex < 0) selectIndex = null; - - if (null !== selectIndex) { - self.selectChip(chipsIndex, selectIndex, $chips); - } - if (!length) $chips.find('input').focus(); - - // left - } else if (e.which === 37) { - index = $chip.index() - 1; - if (index < 0) { - return; - } - $(SELS.CHIP).removeClass('selected'); - self.selectChip($chips.data('index'), index, $chips); - - // right - } else if (e.which === 39) { - index = $chip.index() + 1; - $(SELS.CHIP).removeClass('selected'); - if (index > length) { - $chips.find('input').focus(); - return; - } - self.selectChip($chips.data('index'), index, $chips); - } - }); - - self.$document.on('focusin', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - $(e.target).closest(SELS.CHIPS).addClass('focus'); - $(SELS.CHIP).removeClass('selected'); - }); - - self.$document.on('focusout', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - $(e.target).closest(SELS.CHIPS).removeClass('focus'); - }); - - self.$document.on('keydown', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - var $target = $(e.target); - var $chips = $target.closest(SELS.CHIPS); - var chipsIndex = $chips.data('index'); - var chipsLength = $chips.children(SELS.CHIP).length; - - // enter - if (13 === e.which) { - e.preventDefault(); - self.addChip(chipsIndex, {tag: $target.val()}, $chips); - $target.val(''); - return; - } - - // delete or left - if ((8 === e.keyCode || 37 === e.keyCode) && '' === $target.val() && chipsLength) { - self.selectChip(chipsIndex, chipsLength - 1, $chips); - $target.blur(); - return; - } - }); - - self.$document.on('click', SELS.CHIPS + ' ' + SELS.DELETE, function(e) { - var $target = $(e.target); - var $chips = $target.closest(SELS.CHIPS); - var $chip = $target.closest(SELS.CHIP); - e.stopPropagation(); - self.deleteChip( - $chips.data('index'), - $chip.index(), - $chips - ); - $chips.find('input').focus(); - }); - }; - - this.chips = function($chips) { - var html = ''; - var options = $chips.data('options'); - $chips.data('chips').forEach(function(elem){ - html += self.renderChip(elem); - }); - html += ''; - $chips.html(html); - self.setPlaceholder($chips); - }; - - this.renderChip = function(elem) { - if (!elem.tag) return; - - var html = '
                  ' + elem.tag; - if (elem.image) { - html += ' '; - } - html += 'close'; - html += '
                  '; - return html; - }; - - this.setPlaceholder = function($chips) { - var options = $chips.data('options'); - if ($chips.data('chips').length && options.placeholder) { - $chips.find('input').prop('placeholder', options.placeholder); - } else if (!$chips.data('chips').length && options.secondaryPlaceholder) { - $chips.find('input').prop('placeholder', options.secondaryPlaceholder); - } - }; - - this.isValid = function($chips, elem) { - var chips = $chips.data('chips'); - var exists = false; - for (var i=0; i < chips.length; i++) { - if (chips[i].tag === elem.tag) { - exists = true; - return; - } - } - return '' !== elem.tag && !exists; - }; - - this.addChip = function(chipsIndex, elem, $chips) { - if (!self.isValid($chips, elem)) { - return; - } - var options = $chips.data('options'); - var chipHtml = self.renderChip(elem); - $chips.data('chips').push(elem); - $(chipHtml).insertBefore($chips.find('input')); - $chips.trigger('chip.add', elem); - self.setPlaceholder($chips); - }; - - this.deleteChip = function(chipsIndex, chipIndex, $chips) { - var chip = $chips.data('chips')[chipIndex]; - $chips.find('.chip').eq(chipIndex).remove(); - $chips.data('chips').splice(chipIndex, 1); - $chips.trigger('chip.delete', chip); - self.setPlaceholder($chips); - }; - - this.selectChip = function(chipsIndex, chipIndex, $chips) { - var $chip = $chips.find('.chip').eq(chipIndex); - if ($chip && false === $chip.hasClass('selected')) { - $chip.addClass('selected'); - $chips.trigger('chip.select', $chips.data('chips')[chipIndex]); - } - }; - - this.getChipsElement = function(index, $chips) { - return $chips.eq(index); - }; - - // init - this.init(); - - if (!chipsHandleEvents) { - this.handleEvents(); - chipsHandleEvents = true; - } - }; -}( jQuery )); \ No newline at end of file diff --git a/production/bower_components/Materialize/js/collapsible.js b/production/bower_components/Materialize/js/collapsible.js deleted file mode 100644 index acdbc32..0000000 --- a/production/bower_components/Materialize/js/collapsible.js +++ /dev/null @@ -1,137 +0,0 @@ -(function ($) { - $.fn.collapsible = function(options) { - var defaults = { - accordion: undefined - }; - - options = $.extend(defaults, options); - - - return this.each(function() { - - var $this = $(this); - - var $panel_headers = $(this).find('> li > .collapsible-header'); - - var collapsible_type = $this.data("collapsible"); - - // Turn off any existing event handlers - $this.off('click.collapse', '> li > .collapsible-header'); - $panel_headers.off('click.collapse'); - - - /**************** - Helper Functions - ****************/ - - // Accordion Open - function accordionOpen(object) { - $panel_headers = $this.find('> li > .collapsible-header'); - if (object.hasClass('active')) { - object.parent().addClass('active'); - } - else { - object.parent().removeClass('active'); - } - if (object.parent().hasClass('active')){ - object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - else{ - object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - - $panel_headers.not(object).removeClass('active').parent().removeClass('active'); - $panel_headers.not(object).parent().children('.collapsible-body').stop(true,false).slideUp( - { - duration: 350, - easing: "easeOutQuart", - queue: false, - complete: - function() { - $(this).css('height', ''); - } - }); - } - - // Expandable Open - function expandableOpen(object) { - if (object.hasClass('active')) { - object.parent().addClass('active'); - } - else { - object.parent().removeClass('active'); - } - if (object.parent().hasClass('active')){ - object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - else{ - object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - } - - /** - * Check if object is children of panel header - * @param {Object} object Jquery object - * @return {Boolean} true if it is children - */ - function isChildrenOfPanelHeader(object) { - - var panelHeader = getPanelHeader(object); - - return panelHeader.length > 0; - } - - /** - * Get panel header from a children element - * @param {Object} object Jquery object - * @return {Object} panel header object - */ - function getPanelHeader(object) { - - return object.closest('li > .collapsible-header'); - } - - /***** End Helper Functions *****/ - - - - // Add click handler to only direct collapsible header children - $this.on('click.collapse', '> li > .collapsible-header', function(e) { - var $header = $(this), - element = $(e.target); - - if (isChildrenOfPanelHeader(element)) { - element = getPanelHeader(element); - } - - element.toggleClass('active'); - - if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion - accordionOpen(element); - } else { // Handle Expandables - expandableOpen(element); - - if ($header.hasClass('active')) { - expandableOpen($header); - } - } - }); - - // Open first active - var $panel_headers = $this.find('> li > .collapsible-header'); - if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion - accordionOpen($panel_headers.filter('.active').first()); - } - else { // Handle Expandables - $panel_headers.filter('.active').each(function() { - expandableOpen($(this)); - }); - } - - }); - }; - - $(document).ready(function(){ - $('.collapsible').collapsible(); - }); -}( jQuery )); \ No newline at end of file diff --git a/production/bower_components/Materialize/js/date_picker/picker.date.js b/production/bower_components/Materialize/js/date_picker/picker.date.js deleted file mode 100644 index fb264d0..0000000 --- a/production/bower_components/Materialize/js/date_picker/picker.date.js +++ /dev/null @@ -1,1430 +0,0 @@ -/*! - * Date picker for pickadate.js v3.5.0 - * http://amsul.github.io/pickadate.js/date.htm - */ - -(function ( factory ) { - - // AMD. - if ( typeof define == 'function' && define.amd ) - define( ['picker', 'jquery'], factory ) - - // Node.js/browserify. - else if ( typeof exports == 'object' ) - module.exports = factory( require('./picker.js'), require('jquery') ) - - // Browser globals. - else factory( Picker, jQuery ) - -}(function( Picker, $ ) { - - -/** - * Globals and constants - */ -var DAYS_IN_WEEK = 7, - WEEKS_IN_CALENDAR = 6, - _ = Picker._ - - - -/** - * The date picker constructor - */ -function DatePicker( picker, settings ) { - - var calendar = this, - element = picker.$node[ 0 ], - elementValue = element.value, - elementDataValue = picker.$node.data( 'value' ), - valueString = elementDataValue || elementValue, - formatString = elementDataValue ? settings.formatSubmit : settings.format, - isRTL = function() { - - return element.currentStyle ? - - // For IE. - element.currentStyle.direction == 'rtl' : - - // For normal browsers. - getComputedStyle( picker.$root[0] ).direction == 'rtl' - } - - calendar.settings = settings - calendar.$node = picker.$node - - // The queue of methods that will be used to build item objects. - calendar.queue = { - min: 'measure create', - max: 'measure create', - now: 'now create', - select: 'parse create validate', - highlight: 'parse navigate create validate', - view: 'parse create validate viewset', - disable: 'deactivate', - enable: 'activate' - } - - // The component's item object. - calendar.item = {} - - calendar.item.clear = null - calendar.item.disable = ( settings.disable || [] ).slice( 0 ) - calendar.item.enable = -(function( collectionDisabled ) { - return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1 - })( calendar.item.disable ) - - calendar. - set( 'min', settings.min ). - set( 'max', settings.max ). - set( 'now' ) - - // When there’s a value, set the `select`, which in turn - // also sets the `highlight` and `view`. - if ( valueString ) { - calendar.set( 'select', valueString, { format: formatString }) - } - - // If there’s no value, default to highlighting “today”. - else { - calendar. - set( 'select', null ). - set( 'highlight', calendar.item.now ) - } - - - // The keycode to movement mapping. - calendar.key = { - 40: 7, // Down - 38: -7, // Up - 39: function() { return isRTL() ? -1 : 1 }, // Right - 37: function() { return isRTL() ? 1 : -1 }, // Left - go: function( timeChange ) { - var highlightedObject = calendar.item.highlight, - targetDate = new Date( highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange ) - calendar.set( - 'highlight', - targetDate, - { interval: timeChange } - ) - this.render() - } - } - - - // Bind some picker events. - picker. - on( 'render', function() { - picker.$root.find( '.' + settings.klass.selectMonth ).on( 'change', function() { - var value = this.value - if ( value ) { - picker.set( 'highlight', [ picker.get( 'view' ).year, value, picker.get( 'highlight' ).date ] ) - picker.$root.find( '.' + settings.klass.selectMonth ).trigger( 'focus' ) - } - }) - picker.$root.find( '.' + settings.klass.selectYear ).on( 'change', function() { - var value = this.value - if ( value ) { - picker.set( 'highlight', [ value, picker.get( 'view' ).month, picker.get( 'highlight' ).date ] ) - picker.$root.find( '.' + settings.klass.selectYear ).trigger( 'focus' ) - } - }) - }, 1 ). - on( 'open', function() { - var includeToday = '' - if ( calendar.disabled( calendar.get('now') ) ) { - includeToday = ':not(.' + settings.klass.buttonToday + ')' - } - picker.$root.find( 'button' + includeToday + ', select' ).attr( 'disabled', false ) - }, 1 ). - on( 'close', function() { - picker.$root.find( 'button, select' ).attr( 'disabled', true ) - }, 1 ) - -} //DatePicker - - -/** - * Set a datepicker item object. - */ -DatePicker.prototype.set = function( type, value, options ) { - - var calendar = this, - calendarItem = calendar.item - - // If the value is `null` just set it immediately. - if ( value === null ) { - if ( type == 'clear' ) type = 'select' - calendarItem[ type ] = value - return calendar - } - - // Otherwise go through the queue of methods, and invoke the functions. - // Update this as the time unit, and set the final value as this item. - // * In the case of `enable`, keep the queue but set `disable` instead. - // And in the case of `flip`, keep the queue but set `enable` instead. - calendarItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = calendar.queue[ type ].split( ' ' ).map( function( method ) { - value = calendar[ method ]( type, value, options ) - return value - }).pop() - - // Check if we need to cascade through more updates. - if ( type == 'select' ) { - calendar.set( 'highlight', calendarItem.select, options ) - } - else if ( type == 'highlight' ) { - calendar.set( 'view', calendarItem.highlight, options ) - } - else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) { - if ( calendarItem.select && calendar.disabled( calendarItem.select ) ) { - calendar.set( 'select', calendarItem.select, options ) - } - if ( calendarItem.highlight && calendar.disabled( calendarItem.highlight ) ) { - calendar.set( 'highlight', calendarItem.highlight, options ) - } - } - - return calendar -} //DatePicker.prototype.set - - -/** - * Get a datepicker item object. - */ -DatePicker.prototype.get = function( type ) { - return this.item[ type ] -} //DatePicker.prototype.get - - -/** - * Create a picker date object. - */ -DatePicker.prototype.create = function( type, value, options ) { - - var isInfiniteValue, - calendar = this - - // If there’s no value, use the type as the value. - value = value === undefined ? type : value - - - // If it’s infinity, update the value. - if ( value == -Infinity || value == Infinity ) { - isInfiniteValue = value - } - - // If it’s an object, use the native date object. - else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) { - value = value.obj - } - - // If it’s an array, convert it into a date and make sure - // that it’s a valid date – otherwise default to today. - else if ( $.isArray( value ) ) { - value = new Date( value[ 0 ], value[ 1 ], value[ 2 ] ) - value = _.isDate( value ) ? value : calendar.create().obj - } - - // If it’s a number or date object, make a normalized date. - else if ( _.isInteger( value ) || _.isDate( value ) ) { - value = calendar.normalize( new Date( value ), options ) - } - - // If it’s a literal true or any other case, set it to now. - else /*if ( value === true )*/ { - value = calendar.now( type, value, options ) - } - - // Return the compiled object. - return { - year: isInfiniteValue || value.getFullYear(), - month: isInfiniteValue || value.getMonth(), - date: isInfiniteValue || value.getDate(), - day: isInfiniteValue || value.getDay(), - obj: isInfiniteValue || value, - pick: isInfiniteValue || value.getTime() - } -} //DatePicker.prototype.create - - -/** - * Create a range limit object using an array, date object, - * literal “true”, or integer relative to another time. - */ -DatePicker.prototype.createRange = function( from, to ) { - - var calendar = this, - createDate = function( date ) { - if ( date === true || $.isArray( date ) || _.isDate( date ) ) { - return calendar.create( date ) - } - return date - } - - // Create objects if possible. - if ( !_.isInteger( from ) ) { - from = createDate( from ) - } - if ( !_.isInteger( to ) ) { - to = createDate( to ) - } - - // Create relative dates. - if ( _.isInteger( from ) && $.isPlainObject( to ) ) { - from = [ to.year, to.month, to.date + from ]; - } - else if ( _.isInteger( to ) && $.isPlainObject( from ) ) { - to = [ from.year, from.month, from.date + to ]; - } - - return { - from: createDate( from ), - to: createDate( to ) - } -} //DatePicker.prototype.createRange - - -/** - * Check if a date unit falls within a date range object. - */ -DatePicker.prototype.withinRange = function( range, dateUnit ) { - range = this.createRange(range.from, range.to) - return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick -} - - -/** - * Check if two date range objects overlap. - */ -DatePicker.prototype.overlapRanges = function( one, two ) { - - var calendar = this - - // Convert the ranges into comparable dates. - one = calendar.createRange( one.from, one.to ) - two = calendar.createRange( two.from, two.to ) - - return calendar.withinRange( one, two.from ) || calendar.withinRange( one, two.to ) || - calendar.withinRange( two, one.from ) || calendar.withinRange( two, one.to ) -} - - -/** - * Get the date today. - */ -DatePicker.prototype.now = function( type, value, options ) { - value = new Date() - if ( options && options.rel ) { - value.setDate( value.getDate() + options.rel ) - } - return this.normalize( value, options ) -} - - -/** - * Navigate to next/prev month. - */ -DatePicker.prototype.navigate = function( type, value, options ) { - - var targetDateObject, - targetYear, - targetMonth, - targetDate, - isTargetArray = $.isArray( value ), - isTargetObject = $.isPlainObject( value ), - viewsetObject = this.item.view/*, - safety = 100*/ - - - if ( isTargetArray || isTargetObject ) { - - if ( isTargetObject ) { - targetYear = value.year - targetMonth = value.month - targetDate = value.date - } - else { - targetYear = +value[0] - targetMonth = +value[1] - targetDate = +value[2] - } - - // If we’re navigating months but the view is in a different - // month, navigate to the view’s year and month. - if ( options && options.nav && viewsetObject && viewsetObject.month !== targetMonth ) { - targetYear = viewsetObject.year - targetMonth = viewsetObject.month - } - - // Figure out the expected target year and month. - targetDateObject = new Date( targetYear, targetMonth + ( options && options.nav ? options.nav : 0 ), 1 ) - targetYear = targetDateObject.getFullYear() - targetMonth = targetDateObject.getMonth() - - // If the month we’re going to doesn’t have enough days, - // keep decreasing the date until we reach the month’s last date. - while ( /*safety &&*/ new Date( targetYear, targetMonth, targetDate ).getMonth() !== targetMonth ) { - targetDate -= 1 - /*safety -= 1 - if ( !safety ) { - throw 'Fell into an infinite loop while navigating to ' + new Date( targetYear, targetMonth, targetDate ) + '.' - }*/ - } - - value = [ targetYear, targetMonth, targetDate ] - } - - return value -} //DatePicker.prototype.navigate - - -/** - * Normalize a date by setting the hours to midnight. - */ -DatePicker.prototype.normalize = function( value/*, options*/ ) { - value.setHours( 0, 0, 0, 0 ) - return value -} - - -/** - * Measure the range of dates. - */ -DatePicker.prototype.measure = function( type, value/*, options*/ ) { - - var calendar = this - - // If it’s anything false-y, remove the limits. - if ( !value ) { - value = type == 'min' ? -Infinity : Infinity - } - - // If it’s a string, parse it. - else if ( typeof value == 'string' ) { - value = calendar.parse( type, value ) - } - - // If it's an integer, get a date relative to today. - else if ( _.isInteger( value ) ) { - value = calendar.now( type, value, { rel: value } ) - } - - return value -} ///DatePicker.prototype.measure - - -/** - * Create a viewset object based on navigation. - */ -DatePicker.prototype.viewset = function( type, dateObject/*, options*/ ) { - return this.create([ dateObject.year, dateObject.month, 1 ]) -} - - -/** - * Validate a date as enabled and shift if needed. - */ -DatePicker.prototype.validate = function( type, dateObject, options ) { - - var calendar = this, - - // Keep a reference to the original date. - originalDateObject = dateObject, - - // Make sure we have an interval. - interval = options && options.interval ? options.interval : 1, - - // Check if the calendar enabled dates are inverted. - isFlippedBase = calendar.item.enable === -1, - - // Check if we have any enabled dates after/before now. - hasEnabledBeforeTarget, hasEnabledAfterTarget, - - // The min & max limits. - minLimitObject = calendar.item.min, - maxLimitObject = calendar.item.max, - - // Check if we’ve reached the limit during shifting. - reachedMin, reachedMax, - - // Check if the calendar is inverted and at least one weekday is enabled. - hasEnabledWeekdays = isFlippedBase && calendar.item.disable.filter( function( value ) { - - // If there’s a date, check where it is relative to the target. - if ( $.isArray( value ) ) { - var dateTime = calendar.create( value ).pick - if ( dateTime < dateObject.pick ) hasEnabledBeforeTarget = true - else if ( dateTime > dateObject.pick ) hasEnabledAfterTarget = true - } - - // Return only integers for enabled weekdays. - return _.isInteger( value ) - }).length/*, - - safety = 100*/ - - - - // Cases to validate for: - // [1] Not inverted and date disabled. - // [2] Inverted and some dates enabled. - // [3] Not inverted and out of range. - // - // Cases to **not** validate for: - // • Navigating months. - // • Not inverted and date enabled. - // • Inverted and all dates disabled. - // • ..and anything else. - if ( !options || !options.nav ) if ( - /* 1 */ ( !isFlippedBase && calendar.disabled( dateObject ) ) || - /* 2 */ ( isFlippedBase && calendar.disabled( dateObject ) && ( hasEnabledWeekdays || hasEnabledBeforeTarget || hasEnabledAfterTarget ) ) || - /* 3 */ ( !isFlippedBase && (dateObject.pick <= minLimitObject.pick || dateObject.pick >= maxLimitObject.pick) ) - ) { - - - // When inverted, flip the direction if there aren’t any enabled weekdays - // and there are no enabled dates in the direction of the interval. - if ( isFlippedBase && !hasEnabledWeekdays && ( ( !hasEnabledAfterTarget && interval > 0 ) || ( !hasEnabledBeforeTarget && interval < 0 ) ) ) { - interval *= -1 - } - - - // Keep looping until we reach an enabled date. - while ( /*safety &&*/ calendar.disabled( dateObject ) ) { - - /*safety -= 1 - if ( !safety ) { - throw 'Fell into an infinite loop while validating ' + dateObject.obj + '.' - }*/ - - - // If we’ve looped into the next/prev month with a large interval, return to the original date and flatten the interval. - if ( Math.abs( interval ) > 1 && ( dateObject.month < originalDateObject.month || dateObject.month > originalDateObject.month ) ) { - dateObject = originalDateObject - interval = interval > 0 ? 1 : -1 - } - - - // If we’ve reached the min/max limit, reverse the direction, flatten the interval and set it to the limit. - if ( dateObject.pick <= minLimitObject.pick ) { - reachedMin = true - interval = 1 - dateObject = calendar.create([ - minLimitObject.year, - minLimitObject.month, - minLimitObject.date + (dateObject.pick === minLimitObject.pick ? 0 : -1) - ]) - } - else if ( dateObject.pick >= maxLimitObject.pick ) { - reachedMax = true - interval = -1 - dateObject = calendar.create([ - maxLimitObject.year, - maxLimitObject.month, - maxLimitObject.date + (dateObject.pick === maxLimitObject.pick ? 0 : 1) - ]) - } - - - // If we’ve reached both limits, just break out of the loop. - if ( reachedMin && reachedMax ) { - break - } - - - // Finally, create the shifted date using the interval and keep looping. - dateObject = calendar.create([ dateObject.year, dateObject.month, dateObject.date + interval ]) - } - - } //endif - - - // Return the date object settled on. - return dateObject -} //DatePicker.prototype.validate - - -/** - * Check if a date is disabled. - */ -DatePicker.prototype.disabled = function( dateToVerify ) { - - var - calendar = this, - - // Filter through the disabled dates to check if this is one. - isDisabledMatch = calendar.item.disable.filter( function( dateToDisable ) { - - // If the date is a number, match the weekday with 0index and `firstDay` check. - if ( _.isInteger( dateToDisable ) ) { - return dateToVerify.day === ( calendar.settings.firstDay ? dateToDisable : dateToDisable - 1 ) % 7 - } - - // If it’s an array or a native JS date, create and match the exact date. - if ( $.isArray( dateToDisable ) || _.isDate( dateToDisable ) ) { - return dateToVerify.pick === calendar.create( dateToDisable ).pick - } - - // If it’s an object, match a date within the “from” and “to” range. - if ( $.isPlainObject( dateToDisable ) ) { - return calendar.withinRange( dateToDisable, dateToVerify ) - } - }) - - // If this date matches a disabled date, confirm it’s not inverted. - isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function( dateToDisable ) { - return $.isArray( dateToDisable ) && dateToDisable[3] == 'inverted' || - $.isPlainObject( dateToDisable ) && dateToDisable.inverted - }).length - - // Check the calendar “enabled” flag and respectively flip the - // disabled state. Then also check if it’s beyond the min/max limits. - return calendar.item.enable === -1 ? !isDisabledMatch : isDisabledMatch || - dateToVerify.pick < calendar.item.min.pick || - dateToVerify.pick > calendar.item.max.pick - -} //DatePicker.prototype.disabled - - -/** - * Parse a string into a usable type. - */ -DatePicker.prototype.parse = function( type, value, options ) { - - var calendar = this, - parsingObject = {} - - // If it’s already parsed, we’re good. - if ( !value || typeof value != 'string' ) { - return value - } - - // We need a `.format` to parse the value with. - if ( !( options && options.format ) ) { - options = options || {} - options.format = calendar.settings.format - } - - // Convert the format into an array and then map through it. - calendar.formats.toArray( options.format ).map( function( label ) { - - var - // Grab the formatting label. - formattingLabel = calendar.formats[ label ], - - // The format length is from the formatting label function or the - // label length without the escaping exclamation (!) mark. - formatLength = formattingLabel ? _.trigger( formattingLabel, calendar, [ value, parsingObject ] ) : label.replace( /^!/, '' ).length - - // If there's a format label, split the value up to the format length. - // Then add it to the parsing object with appropriate label. - if ( formattingLabel ) { - parsingObject[ label ] = value.substr( 0, formatLength ) - } - - // Update the value as the substring from format length to end. - value = value.substr( formatLength ) - }) - - // Compensate for month 0index. - return [ - parsingObject.yyyy || parsingObject.yy, - +( parsingObject.mm || parsingObject.m ) - 1, - parsingObject.dd || parsingObject.d - ] -} //DatePicker.prototype.parse - - -/** - * Various formats to display the object in. - */ -DatePicker.prototype.formats = (function() { - - // Return the length of the first word in a collection. - function getWordLengthFromCollection( string, collection, dateObject ) { - - // Grab the first word from the string. - var word = string.match( /\w+/ )[ 0 ] - - // If there's no month index, add it to the date object - if ( !dateObject.mm && !dateObject.m ) { - dateObject.m = collection.indexOf( word ) + 1 - } - - // Return the length of the word. - return word.length - } - - // Get the length of the first word in a string. - function getFirstWordLength( string ) { - return string.match( /\w+/ )[ 0 ].length - } - - return { - - d: function( string, dateObject ) { - - // If there's string, then get the digits length. - // Otherwise return the selected date. - return string ? _.digits( string ) : dateObject.date - }, - dd: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected date with a leading zero. - return string ? 2 : _.lead( dateObject.date ) - }, - ddd: function( string, dateObject ) { - - // If there's a string, then get the length of the first word. - // Otherwise return the short selected weekday. - return string ? getFirstWordLength( string ) : this.settings.weekdaysShort[ dateObject.day ] - }, - dddd: function( string, dateObject ) { - - // If there's a string, then get the length of the first word. - // Otherwise return the full selected weekday. - return string ? getFirstWordLength( string ) : this.settings.weekdaysFull[ dateObject.day ] - }, - m: function( string, dateObject ) { - - // If there's a string, then get the length of the digits - // Otherwise return the selected month with 0index compensation. - return string ? _.digits( string ) : dateObject.month + 1 - }, - mm: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected month with 0index and leading zero. - return string ? 2 : _.lead( dateObject.month + 1 ) - }, - mmm: function( string, dateObject ) { - - var collection = this.settings.monthsShort - - // If there's a string, get length of the relevant month from the short - // months collection. Otherwise return the selected month from that collection. - return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] - }, - mmmm: function( string, dateObject ) { - - var collection = this.settings.monthsFull - - // If there's a string, get length of the relevant month from the full - // months collection. Otherwise return the selected month from that collection. - return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] - }, - yy: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected year by slicing out the first 2 digits. - return string ? 2 : ( '' + dateObject.year ).slice( 2 ) - }, - yyyy: function( string, dateObject ) { - - // If there's a string, then the length is always 4. - // Otherwise return the selected year. - return string ? 4 : dateObject.year - }, - - // Create an array by splitting the formatting string passed. - toArray: function( formatString ) { return formatString.split( /(d{1,4}|m{1,4}|y{4}|yy|!.)/g ) }, - - // Format an object into a string using the formatting options. - toString: function ( formatString, itemObject ) { - var calendar = this - return calendar.formats.toArray( formatString ).map( function( label ) { - return _.trigger( calendar.formats[ label ], calendar, [ 0, itemObject ] ) || label.replace( /^!/, '' ) - }).join( '' ) - } - } -})() //DatePicker.prototype.formats - - - - -/** - * Check if two date units are the exact. - */ -DatePicker.prototype.isDateExact = function( one, two ) { - - var calendar = this - - // When we’re working with weekdays, do a direct comparison. - if ( - ( _.isInteger( one ) && _.isInteger( two ) ) || - ( typeof one == 'boolean' && typeof two == 'boolean' ) - ) { - return one === two - } - - // When we’re working with date representations, compare the “pick” value. - if ( - ( _.isDate( one ) || $.isArray( one ) ) && - ( _.isDate( two ) || $.isArray( two ) ) - ) { - return calendar.create( one ).pick === calendar.create( two ).pick - } - - // When we’re working with range objects, compare the “from” and “to”. - if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { - return calendar.isDateExact( one.from, two.from ) && calendar.isDateExact( one.to, two.to ) - } - - return false -} - - -/** - * Check if two date units overlap. - */ -DatePicker.prototype.isDateOverlap = function( one, two ) { - - var calendar = this, - firstDay = calendar.settings.firstDay ? 1 : 0 - - // When we’re working with a weekday index, compare the days. - if ( _.isInteger( one ) && ( _.isDate( two ) || $.isArray( two ) ) ) { - one = one % 7 + firstDay - return one === calendar.create( two ).day + 1 - } - if ( _.isInteger( two ) && ( _.isDate( one ) || $.isArray( one ) ) ) { - two = two % 7 + firstDay - return two === calendar.create( one ).day + 1 - } - - // When we’re working with range objects, check if the ranges overlap. - if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { - return calendar.overlapRanges( one, two ) - } - - return false -} - - -/** - * Flip the “enabled” state. - */ -DatePicker.prototype.flipEnable = function(val) { - var itemObject = this.item - itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1) -} - - -/** - * Mark a collection of dates as “disabled”. - */ -DatePicker.prototype.deactivate = function( type, datesToDisable ) { - - var calendar = this, - disabledItems = calendar.item.disable.slice(0) - - - // If we’re flipping, that’s all we need to do. - if ( datesToDisable == 'flip' ) { - calendar.flipEnable() - } - - else if ( datesToDisable === false ) { - calendar.flipEnable(1) - disabledItems = [] - } - - else if ( datesToDisable === true ) { - calendar.flipEnable(-1) - disabledItems = [] - } - - // Otherwise go through the dates to disable. - else { - - datesToDisable.map(function( unitToDisable ) { - - var matchFound - - // When we have disabled items, check for matches. - // If something is matched, immediately break out. - for ( var index = 0; index < disabledItems.length; index += 1 ) { - if ( calendar.isDateExact( unitToDisable, disabledItems[index] ) ) { - matchFound = true - break - } - } - - // If nothing was found, add the validated unit to the collection. - if ( !matchFound ) { - if ( - _.isInteger( unitToDisable ) || - _.isDate( unitToDisable ) || - $.isArray( unitToDisable ) || - ( $.isPlainObject( unitToDisable ) && unitToDisable.from && unitToDisable.to ) - ) { - disabledItems.push( unitToDisable ) - } - } - }) - } - - // Return the updated collection. - return disabledItems -} //DatePicker.prototype.deactivate - - -/** - * Mark a collection of dates as “enabled”. - */ -DatePicker.prototype.activate = function( type, datesToEnable ) { - - var calendar = this, - disabledItems = calendar.item.disable, - disabledItemsCount = disabledItems.length - - // If we’re flipping, that’s all we need to do. - if ( datesToEnable == 'flip' ) { - calendar.flipEnable() - } - - else if ( datesToEnable === true ) { - calendar.flipEnable(1) - disabledItems = [] - } - - else if ( datesToEnable === false ) { - calendar.flipEnable(-1) - disabledItems = [] - } - - // Otherwise go through the disabled dates. - else { - - datesToEnable.map(function( unitToEnable ) { - - var matchFound, - disabledUnit, - index, - isExactRange - - // Go through the disabled items and try to find a match. - for ( index = 0; index < disabledItemsCount; index += 1 ) { - - disabledUnit = disabledItems[index] - - // When an exact match is found, remove it from the collection. - if ( calendar.isDateExact( disabledUnit, unitToEnable ) ) { - matchFound = disabledItems[index] = null - isExactRange = true - break - } - - // When an overlapped match is found, add the “inverted” state to it. - else if ( calendar.isDateOverlap( disabledUnit, unitToEnable ) ) { - if ( $.isPlainObject( unitToEnable ) ) { - unitToEnable.inverted = true - matchFound = unitToEnable - } - else if ( $.isArray( unitToEnable ) ) { - matchFound = unitToEnable - if ( !matchFound[3] ) matchFound.push( 'inverted' ) - } - else if ( _.isDate( unitToEnable ) ) { - matchFound = [ unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted' ] - } - break - } - } - - // If a match was found, remove a previous duplicate entry. - if ( matchFound ) for ( index = 0; index < disabledItemsCount; index += 1 ) { - if ( calendar.isDateExact( disabledItems[index], unitToEnable ) ) { - disabledItems[index] = null - break - } - } - - // In the event that we’re dealing with an exact range of dates, - // make sure there are no “inverted” dates because of it. - if ( isExactRange ) for ( index = 0; index < disabledItemsCount; index += 1 ) { - if ( calendar.isDateOverlap( disabledItems[index], unitToEnable ) ) { - disabledItems[index] = null - break - } - } - - // If something is still matched, add it into the collection. - if ( matchFound ) { - disabledItems.push( matchFound ) - } - }) - } - - // Return the updated collection. - return disabledItems.filter(function( val ) { return val != null }) -} //DatePicker.prototype.activate - - -/** - * Create a string for the nodes in the picker. - */ -DatePicker.prototype.nodes = function( isOpen ) { - - var - calendar = this, - settings = calendar.settings, - calendarItem = calendar.item, - nowObject = calendarItem.now, - selectedObject = calendarItem.select, - highlightedObject = calendarItem.highlight, - viewsetObject = calendarItem.view, - disabledCollection = calendarItem.disable, - minLimitObject = calendarItem.min, - maxLimitObject = calendarItem.max, - - - // Create the calendar table head using a copy of weekday labels collection. - // * We do a copy so we don't mutate the original array. - tableHead = (function( collection, fullCollection ) { - - // If the first day should be Monday, move Sunday to the end. - if ( settings.firstDay ) { - collection.push( collection.shift() ) - fullCollection.push( fullCollection.shift() ) - } - - // Create and return the table head group. - return _.node( - 'thead', - _.node( - 'tr', - _.group({ - min: 0, - max: DAYS_IN_WEEK - 1, - i: 1, - node: 'th', - item: function( counter ) { - return [ - collection[ counter ], - settings.klass.weekdays, - 'scope=col title="' + fullCollection[ counter ] + '"' - ] - } - }) - ) - ) //endreturn - - // Materialize modified - })( ( settings.showWeekdaysFull ? settings.weekdaysFull : settings.weekdaysLetter ).slice( 0 ), settings.weekdaysFull.slice( 0 ) ), //tableHead - - - // Create the nav for next/prev month. - createMonthNav = function( next ) { - - // Otherwise, return the created month tag. - return _.node( - 'div', - ' ', - settings.klass[ 'nav' + ( next ? 'Next' : 'Prev' ) ] + ( - - // If the focused month is outside the range, disabled the button. - ( next && viewsetObject.year >= maxLimitObject.year && viewsetObject.month >= maxLimitObject.month ) || - ( !next && viewsetObject.year <= minLimitObject.year && viewsetObject.month <= minLimitObject.month ) ? - ' ' + settings.klass.navDisabled : '' - ), - 'data-nav=' + ( next || -1 ) + ' ' + - _.ariaAttr({ - role: 'button', - controls: calendar.$node[0].id + '_table' - }) + ' ' + - 'title="' + (next ? settings.labelMonthNext : settings.labelMonthPrev ) + '"' - ) //endreturn - }, //createMonthNav - - - // Create the month label. - //Materialize modified - createMonthLabel = function(override) { - - var monthsCollection = settings.showMonthsShort ? settings.monthsShort : settings.monthsFull - - // Materialize modified - if (override == "short_months") { - monthsCollection = settings.monthsShort; - } - - // If there are months to select, add a dropdown menu. - if ( settings.selectMonths && override == undefined) { - - return _.node( 'select', - _.group({ - min: 0, - max: 11, - i: 1, - node: 'option', - item: function( loopedMonth ) { - - return [ - - // The looped month and no classes. - monthsCollection[ loopedMonth ], 0, - - // Set the value and selected index. - 'value=' + loopedMonth + - ( viewsetObject.month == loopedMonth ? ' selected' : '' ) + - ( - ( - ( viewsetObject.year == minLimitObject.year && loopedMonth < minLimitObject.month ) || - ( viewsetObject.year == maxLimitObject.year && loopedMonth > maxLimitObject.month ) - ) ? - ' disabled' : '' - ) - ] - } - }), - settings.klass.selectMonth + ' browser-default', - ( isOpen ? '' : 'disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + - 'title="' + settings.labelMonthSelect + '"' - ) - } - - // Materialize modified - if (override == "short_months") - if (selectedObject != null) - return _.node( 'div', monthsCollection[ selectedObject.month ] ); - else return _.node( 'div', monthsCollection[ viewsetObject.month ] ); - - // If there's a need for a month selector - return _.node( 'div', monthsCollection[ viewsetObject.month ], settings.klass.month ) - }, //createMonthLabel - - - // Create the year label. - // Materialize modified - createYearLabel = function(override) { - - var focusedYear = viewsetObject.year, - - // If years selector is set to a literal "true", set it to 5. Otherwise - // divide in half to get half before and half after focused year. - numberYears = settings.selectYears === true ? 5 : ~~( settings.selectYears / 2 ) - - // If there are years to select, add a dropdown menu. - if ( numberYears ) { - - var - minYear = minLimitObject.year, - maxYear = maxLimitObject.year, - lowestYear = focusedYear - numberYears, - highestYear = focusedYear + numberYears - - // If the min year is greater than the lowest year, increase the highest year - // by the difference and set the lowest year to the min year. - if ( minYear > lowestYear ) { - highestYear += minYear - lowestYear - lowestYear = minYear - } - - // If the max year is less than the highest year, decrease the lowest year - // by the lower of the two: available and needed years. Then set the - // highest year to the max year. - if ( maxYear < highestYear ) { - - var availableYears = lowestYear - minYear, - neededYears = highestYear - maxYear - - lowestYear -= availableYears > neededYears ? neededYears : availableYears - highestYear = maxYear - } - - if ( settings.selectYears && override == undefined ) { - return _.node( 'select', - _.group({ - min: lowestYear, - max: highestYear, - i: 1, - node: 'option', - item: function( loopedYear ) { - return [ - - // The looped year and no classes. - loopedYear, 0, - - // Set the value and selected index. - 'value=' + loopedYear + ( focusedYear == loopedYear ? ' selected' : '' ) - ] - } - }), - settings.klass.selectYear + ' browser-default', - ( isOpen ? '' : 'disabled' ) + ' ' + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + - 'title="' + settings.labelYearSelect + '"' - ) - } - } - - // Materialize modified - if (override == "raw") - return _.node( 'div', focusedYear ) - - // Otherwise just return the year focused - return _.node( 'div', focusedYear, settings.klass.year ) - } //createYearLabel - - - // Materialize modified - createDayLabel = function() { - if (selectedObject != null) - return _.node( 'div', selectedObject.date) - else return _.node( 'div', nowObject.date) - } - createWeekdayLabel = function() { - var display_day; - - if (selectedObject != null) - display_day = selectedObject.day; - else - display_day = nowObject.day; - var weekday = settings.weekdaysFull[ display_day ] - return weekday - } - - - // Create and return the entire calendar. -return _.node( - // Date presentation View - 'div', - _.node( - 'div', - createWeekdayLabel(), - "picker__weekday-display" - )+ - _.node( - // Div for short Month - 'div', - createMonthLabel("short_months"), - settings.klass.month_display - )+ - _.node( - // Div for Day - 'div', - createDayLabel() , - settings.klass.day_display - )+ - _.node( - // Div for Year - 'div', - createYearLabel("raw") , - settings.klass.year_display - ), - settings.klass.date_display - )+ - // Calendar container - _.node('div', - _.node('div', - ( settings.selectYears ? createMonthLabel() + createYearLabel() : createMonthLabel() + createYearLabel() ) + - createMonthNav() + createMonthNav( 1 ), - settings.klass.header - ) + _.node( - 'table', - tableHead + - _.node( - 'tbody', - _.group({ - min: 0, - max: WEEKS_IN_CALENDAR - 1, - i: 1, - node: 'tr', - item: function( rowCounter ) { - - // If Monday is the first day and the month starts on Sunday, shift the date back a week. - var shiftDateBy = settings.firstDay && calendar.create([ viewsetObject.year, viewsetObject.month, 1 ]).day === 0 ? -7 : 0 - - return [ - _.group({ - min: DAYS_IN_WEEK * rowCounter - viewsetObject.day + shiftDateBy + 1, // Add 1 for weekday 0index - max: function() { - return this.min + DAYS_IN_WEEK - 1 - }, - i: 1, - node: 'td', - item: function( targetDate ) { - - // Convert the time date from a relative date to a target date. - targetDate = calendar.create([ viewsetObject.year, viewsetObject.month, targetDate + ( settings.firstDay ? 1 : 0 ) ]) - - var isSelected = selectedObject && selectedObject.pick == targetDate.pick, - isHighlighted = highlightedObject && highlightedObject.pick == targetDate.pick, - isDisabled = disabledCollection && calendar.disabled( targetDate ) || targetDate.pick < minLimitObject.pick || targetDate.pick > maxLimitObject.pick, - formattedDate = _.trigger( calendar.formats.toString, calendar, [ settings.format, targetDate ] ) - - return [ - _.node( - 'div', - targetDate.date, - (function( klasses ) { - - // Add the `infocus` or `outfocus` classes based on month in view. - klasses.push( viewsetObject.month == targetDate.month ? settings.klass.infocus : settings.klass.outfocus ) - - // Add the `today` class if needed. - if ( nowObject.pick == targetDate.pick ) { - klasses.push( settings.klass.now ) - } - - // Add the `selected` class if something's selected and the time matches. - if ( isSelected ) { - klasses.push( settings.klass.selected ) - } - - // Add the `highlighted` class if something's highlighted and the time matches. - if ( isHighlighted ) { - klasses.push( settings.klass.highlighted ) - } - - // Add the `disabled` class if something's disabled and the object matches. - if ( isDisabled ) { - klasses.push( settings.klass.disabled ) - } - - return klasses.join( ' ' ) - })([ settings.klass.day ]), - 'data-pick=' + targetDate.pick + ' ' + _.ariaAttr({ - role: 'gridcell', - label: formattedDate, - selected: isSelected && calendar.$node.val() === formattedDate ? true : null, - activedescendant: isHighlighted ? true : null, - disabled: isDisabled ? true : null - }) - ), - '', - _.ariaAttr({ role: 'presentation' }) - ] //endreturn - } - }) - ] //endreturn - } - }) - ), - settings.klass.table, - 'id="' + calendar.$node[0].id + '_table' + '" ' + _.ariaAttr({ - role: 'grid', - controls: calendar.$node[0].id, - readonly: true - }) - ) - , settings.klass.calendar_container) // end calendar - - + - - // * For Firefox forms to submit, make sure to set the buttons’ `type` attributes as “button”. - _.node( - 'div', - _.node( 'button', settings.today, "btn-flat picker__today", - 'type=button data-pick=' + nowObject.pick + - ( isOpen && !calendar.disabled(nowObject) ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ) + - _.node( 'button', settings.clear, "btn-flat picker__clear", - 'type=button data-clear=1' + - ( isOpen ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ) + - _.node('button', settings.close, "btn-flat picker__close", - 'type=button data-close=true ' + - ( isOpen ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ), - settings.klass.footer - ) //endreturn -} //DatePicker.prototype.nodes - - - - -/** - * The date picker defaults. - */ -DatePicker.defaults = (function( prefix ) { - - return { - - // The title label to use for the month nav buttons - labelMonthNext: 'Next month', - labelMonthPrev: 'Previous month', - - // The title label to use for the dropdown selectors - labelMonthSelect: 'Select a month', - labelYearSelect: 'Select a year', - - // Months and weekdays - monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], - monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], - weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ], - weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ], - - // Materialize modified - weekdaysLetter: [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ], - - // Today and clear - today: 'Today', - clear: 'Clear', - close: 'Close', - - // The format to show on the `input` element - format: 'd mmmm, yyyy', - - // Classes - klass: { - - table: prefix + 'table', - - header: prefix + 'header', - - - // Materialize Added klasses - date_display: prefix + 'date-display', - day_display: prefix + 'day-display', - month_display: prefix + 'month-display', - year_display: prefix + 'year-display', - calendar_container: prefix + 'calendar-container', - // end - - - - navPrev: prefix + 'nav--prev', - navNext: prefix + 'nav--next', - navDisabled: prefix + 'nav--disabled', - - month: prefix + 'month', - year: prefix + 'year', - - selectMonth: prefix + 'select--month', - selectYear: prefix + 'select--year', - - weekdays: prefix + 'weekday', - - day: prefix + 'day', - disabled: prefix + 'day--disabled', - selected: prefix + 'day--selected', - highlighted: prefix + 'day--highlighted', - now: prefix + 'day--today', - infocus: prefix + 'day--infocus', - outfocus: prefix + 'day--outfocus', - - footer: prefix + 'footer', - - buttonClear: prefix + 'button--clear', - buttonToday: prefix + 'button--today', - buttonClose: prefix + 'button--close' - } - } -})( Picker.klasses().picker + '__' ) - - - - - -/** - * Extend the picker to add the date picker. - */ -Picker.extend( 'pickadate', DatePicker ) - - -})); - - diff --git a/production/bower_components/Materialize/js/date_picker/picker.js b/production/bower_components/Materialize/js/date_picker/picker.js deleted file mode 100644 index 48fbbad..0000000 --- a/production/bower_components/Materialize/js/date_picker/picker.js +++ /dev/null @@ -1,1123 +0,0 @@ -/*! - * pickadate.js v3.5.0, 2014/04/13 - * By Amsul, http://amsul.ca - * Hosted on http://amsul.github.io/pickadate.js - * Licensed under MIT - */ - -(function ( factory ) { - - // AMD. - if ( typeof define == 'function' && define.amd ) - define( 'picker', ['jquery'], factory ) - - // Node.js/browserify. - else if ( typeof exports == 'object' ) - module.exports = factory( require('jquery') ) - - // Browser globals. - else this.Picker = factory( jQuery ) - -}(function( $ ) { - -var $window = $( window ) -var $document = $( document ) -var $html = $( document.documentElement ) - - -/** - * The picker constructor that creates a blank picker. - */ -function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) { - - // If there’s no element, return the picker constructor. - if ( !ELEMENT ) return PickerConstructor - - - var - IS_DEFAULT_THEME = false, - - - // The state of the picker. - STATE = { - id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) ) - }, - - - // Merge the defaults and options passed. - SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {}, - - - // Merge the default classes with the settings classes. - CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ), - - - // The element node wrapper into a jQuery object. - $ELEMENT = $( ELEMENT ), - - - // Pseudo picker constructor. - PickerInstance = function() { - return this.start() - }, - - - // The picker prototype. - P = PickerInstance.prototype = { - - constructor: PickerInstance, - - $node: $ELEMENT, - - - /** - * Initialize everything - */ - start: function() { - - // If it’s already started, do nothing. - if ( STATE && STATE.start ) return P - - - // Update the picker states. - STATE.methods = {} - STATE.start = true - STATE.open = false - STATE.type = ELEMENT.type - - - // Confirm focus state, convert into text input to remove UA stylings, - // and set as readonly to prevent keyboard popup. - ELEMENT.autofocus = ELEMENT == getActiveElement() - ELEMENT.readOnly = !SETTINGS.editable - ELEMENT.id = ELEMENT.id || STATE.id - if ( ELEMENT.type != 'text' ) { - ELEMENT.type = 'text' - } - - - // Create a new picker component with the settings. - P.component = new COMPONENT(P, SETTINGS) - - - // Create the picker root with a holder and then prepare it. - P.$root = $( PickerConstructor._.node('div', createWrappedComponent(), CLASSES.picker, 'id="' + ELEMENT.id + '_root" tabindex="0"') ) - prepareElementRoot() - - - // If there’s a format for the hidden input element, create the element. - if ( SETTINGS.formatSubmit ) { - prepareElementHidden() - } - - - // Prepare the input element. - prepareElement() - - - // Insert the root as specified in the settings. - if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root ) - else $ELEMENT.after( P.$root ) - - - // Bind the default component and settings events. - P.on({ - start: P.component.onStart, - render: P.component.onRender, - stop: P.component.onStop, - open: P.component.onOpen, - close: P.component.onClose, - set: P.component.onSet - }).on({ - start: SETTINGS.onStart, - render: SETTINGS.onRender, - stop: SETTINGS.onStop, - open: SETTINGS.onOpen, - close: SETTINGS.onClose, - set: SETTINGS.onSet - }) - - - // Once we’re all set, check the theme in use. - IS_DEFAULT_THEME = isUsingDefaultTheme( P.$root.children()[ 0 ] ) - - - // If the element has autofocus, open the picker. - if ( ELEMENT.autofocus ) { - P.open() - } - - - // Trigger queued the “start” and “render” events. - return P.trigger( 'start' ).trigger( 'render' ) - }, //start - - - /** - * Render a new picker - */ - render: function( entireComponent ) { - - // Insert a new component holder in the root or box. - if ( entireComponent ) P.$root.html( createWrappedComponent() ) - else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) ) - - // Trigger the queued “render” events. - return P.trigger( 'render' ) - }, //render - - - /** - * Destroy everything - */ - stop: function() { - - // If it’s already stopped, do nothing. - if ( !STATE.start ) return P - - // Then close the picker. - P.close() - - // Remove the hidden field. - if ( P._hidden ) { - P._hidden.parentNode.removeChild( P._hidden ) - } - - // Remove the root. - P.$root.remove() - - // Remove the input class, remove the stored data, and unbind - // the events (after a tick for IE - see `P.close`). - $ELEMENT.removeClass( CLASSES.input ).removeData( NAME ) - setTimeout( function() { - $ELEMENT.off( '.' + STATE.id ) - }, 0) - - // Restore the element state - ELEMENT.type = STATE.type - ELEMENT.readOnly = false - - // Trigger the queued “stop” events. - P.trigger( 'stop' ) - - // Reset the picker states. - STATE.methods = {} - STATE.start = false - - return P - }, //stop - - - /** - * Open up the picker - */ - open: function( dontGiveFocus ) { - - // If it’s already open, do nothing. - if ( STATE.open ) return P - - // Add the “active” class. - $ELEMENT.addClass( CLASSES.active ) - aria( ELEMENT, 'expanded', true ) - - // * A Firefox bug, when `html` has `overflow:hidden`, results in - // killing transitions :(. So add the “opened” state on the next tick. - // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 - setTimeout( function() { - - // Add the “opened” class to the picker root. - P.$root.addClass( CLASSES.opened ) - aria( P.$root[0], 'hidden', false ) - - }, 0 ) - - // If we have to give focus, bind the element and doc events. - if ( dontGiveFocus !== false ) { - - // Set it as open. - STATE.open = true - - // Prevent the page from scrolling. - if ( IS_DEFAULT_THEME ) { - $html. - css( 'overflow', 'hidden' ). - css( 'padding-right', '+=' + getScrollbarWidth() ) - } - - // Pass focus to the root element’s jQuery object. - // * Workaround for iOS8 to bring the picker’s root into view. - P.$root.eq(0).focus() - - // Bind the document events. - $document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) { - - var target = event.target - - // If the target of the event is not the element, close the picker picker. - // * Don’t worry about clicks or focusins on the root because those don’t bubble up. - // Also, for Firefox, a click on an `option` element bubbles up directly - // to the doc. So make sure the target wasn't the doc. - // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling, - // which causes the picker to unexpectedly close when right-clicking it. So make - // sure the event wasn’t a right-click. - if ( target != ELEMENT && target != document && event.which != 3 ) { - - // If the target was the holder that covers the screen, - // keep the element focused to maintain tabindex. - P.close( target === P.$root.children()[0] ) - } - - }).on( 'keydown.' + STATE.id, function( event ) { - - var - // Get the keycode. - keycode = event.keyCode, - - // Translate that to a selection change. - keycodeToMove = P.component.key[ keycode ], - - // Grab the target. - target = event.target - - - // On escape, close the picker and give focus. - if ( keycode == 27 ) { - P.close( true ) - } - - - // Check if there is a key movement or “enter” keypress on the element. - else if ( target == P.$root[0] && ( keycodeToMove || keycode == 13 ) ) { - - // Prevent the default action to stop page movement. - event.preventDefault() - - // Trigger the key movement action. - if ( keycodeToMove ) { - PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] ) - } - - // On “enter”, if the highlighted item isn’t disabled, set the value and close. - else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) { - P.set( 'select', P.component.item.highlight ).close() - } - } - - - // If the target is within the root and “enter” is pressed, - // prevent the default action and trigger a click on the target instead. - else if ( $.contains( P.$root[0], target ) && keycode == 13 ) { - event.preventDefault() - target.click() - } - }) - } - - // Trigger the queued “open” events. - return P.trigger( 'open' ) - }, //open - - - /** - * Close the picker - */ - close: function( giveFocus ) { - - // If we need to give focus, do it before changing states. - if ( giveFocus ) { - // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :| - // The focus is triggered *after* the close has completed - causing it - // to open again. So unbind and rebind the event at the next tick. - P.$root.off( 'focus.toOpen' ).eq(0).focus() - setTimeout( function() { - P.$root.on( 'focus.toOpen', handleFocusToOpenEvent ) - }, 0 ) - } - - // Remove the “active” class. - $ELEMENT.removeClass( CLASSES.active ) - aria( ELEMENT, 'expanded', false ) - - // * A Firefox bug, when `html` has `overflow:hidden`, results in - // killing transitions :(. So remove the “opened” state on the next tick. - // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 - setTimeout( function() { - - // Remove the “opened” and “focused” class from the picker root. - P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused ) - aria( P.$root[0], 'hidden', true ) - - }, 0 ) - - // If it’s already closed, do nothing more. - if ( !STATE.open ) return P - - // Set it as closed. - STATE.open = false - - // Allow the page to scroll. - if ( IS_DEFAULT_THEME ) { - $html. - css( 'overflow', '' ). - css( 'padding-right', '-=' + getScrollbarWidth() ) - } - - // Unbind the document events. - $document.off( '.' + STATE.id ) - - // Trigger the queued “close” events. - return P.trigger( 'close' ) - }, //close - - - /** - * Clear the values - */ - clear: function( options ) { - return P.set( 'clear', null, options ) - }, //clear - - - /** - * Set something - */ - set: function( thing, value, options ) { - - var thingItem, thingValue, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} - - // Make sure we have usable options. - options = thingIsObject && $.isPlainObject( value ) ? value : options || {} - - if ( thing ) { - - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = value - } - - // Go through the things of items to set. - for ( thingItem in thingObject ) { - - // Grab the value of the thing. - thingValue = thingObject[ thingItem ] - - // First, if the item exists and there’s a value, set it. - if ( thingItem in P.component.item ) { - if ( thingValue === undefined ) thingValue = null - P.component.set( thingItem, thingValue, options ) - } - - // Then, check to update the element value and broadcast a change. - if ( thingItem == 'select' || thingItem == 'clear' ) { - $ELEMENT. - val( thingItem == 'clear' ? '' : P.get( thingItem, SETTINGS.format ) ). - trigger( 'change' ) - } - } - - // Render a new picker. - P.render() - } - - // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`. - return options.muted ? P : P.trigger( 'set', thingObject ) - }, //set - - - /** - * Get something - */ - get: function( thing, format ) { - - // Make sure there’s something to get. - thing = thing || 'value' - - // If a picker state exists, return that. - if ( STATE[ thing ] != null ) { - return STATE[ thing ] - } - - // Return the submission value, if that. - if ( thing == 'valueSubmit' ) { - if ( P._hidden ) { - return P._hidden.value - } - thing = 'value' - } - - // Return the value, if that. - if ( thing == 'value' ) { - return ELEMENT.value - } - - // Check if a component item exists, return that. - if ( thing in P.component.item ) { - if ( typeof format == 'string' ) { - var thingValue = P.component.get( thing ) - return thingValue ? - PickerConstructor._.trigger( - P.component.formats.toString, - P.component, - [ format, thingValue ] - ) : '' - } - return P.component.get( thing ) - } - }, //get - - - - /** - * Bind events on the things. - */ - on: function( thing, method, internal ) { - - var thingName, thingMethod, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} - - if ( thing ) { - - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = method - } - - // Go through the things to bind to. - for ( thingName in thingObject ) { - - // Grab the method of the thing. - thingMethod = thingObject[ thingName ] - - // If it was an internal binding, prefix it. - if ( internal ) { - thingName = '_' + thingName - } - - // Make sure the thing methods collection exists. - STATE.methods[ thingName ] = STATE.methods[ thingName ] || [] - - // Add the method to the relative method collection. - STATE.methods[ thingName ].push( thingMethod ) - } - } - - return P - }, //on - - - - /** - * Unbind events on the things. - */ - off: function() { - var i, thingName, - names = arguments; - for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) { - thingName = names[i] - if ( thingName in STATE.methods ) { - delete STATE.methods[thingName] - } - } - return P - }, - - - /** - * Fire off method events. - */ - trigger: function( name, data ) { - var _trigger = function( name ) { - var methodList = STATE.methods[ name ] - if ( methodList ) { - methodList.map( function( method ) { - PickerConstructor._.trigger( method, P, [ data ] ) - }) - } - } - _trigger( '_' + name ) - _trigger( name ) - return P - } //trigger - } //PickerInstance.prototype - - - /** - * Wrap the picker holder components together. - */ - function createWrappedComponent() { - - // Create a picker wrapper holder - return PickerConstructor._.node( 'div', - - // Create a picker wrapper node - PickerConstructor._.node( 'div', - - // Create a picker frame - PickerConstructor._.node( 'div', - - // Create a picker box node - PickerConstructor._.node( 'div', - - // Create the components nodes. - P.component.nodes( STATE.open ), - - // The picker box class - CLASSES.box - ), - - // Picker wrap class - CLASSES.wrap - ), - - // Picker frame class - CLASSES.frame - ), - - // Picker holder class - CLASSES.holder - ) //endreturn - } //createWrappedComponent - - - - /** - * Prepare the input element with all bindings. - */ - function prepareElement() { - - $ELEMENT. - - // Store the picker data by component name. - data(NAME, P). - - // Add the “input” class name. - addClass(CLASSES.input). - - // Remove the tabindex. - attr('tabindex', -1). - - // If there’s a `data-value`, update the value of the element. - val( $ELEMENT.data('value') ? - P.get('select', SETTINGS.format) : - ELEMENT.value - ) - - - // Only bind keydown events if the element isn’t editable. - if ( !SETTINGS.editable ) { - - $ELEMENT. - - // On focus/click, focus onto the root to open it up. - on( 'focus.' + STATE.id + ' click.' + STATE.id, function( event ) { - event.preventDefault() - P.$root.eq(0).focus() - }). - - // Handle keyboard event based on the picker being opened or not. - on( 'keydown.' + STATE.id, handleKeydownEvent ) - } - - - // Update the aria attributes. - aria(ELEMENT, { - haspopup: true, - expanded: false, - readonly: false, - owns: ELEMENT.id + '_root' - }) - } - - - /** - * Prepare the root picker element with all bindings. - */ - function prepareElementRoot() { - - P.$root. - - on({ - - // For iOS8. - keydown: handleKeydownEvent, - - // When something within the root is focused, stop from bubbling - // to the doc and remove the “focused” state from the root. - focusin: function( event ) { - P.$root.removeClass( CLASSES.focused ) - event.stopPropagation() - }, - - // When something within the root holder is clicked, stop it - // from bubbling to the doc. - 'mousedown click': function( event ) { - - var target = event.target - - // Make sure the target isn’t the root holder so it can bubble up. - if ( target != P.$root.children()[ 0 ] ) { - - event.stopPropagation() - - // * For mousedown events, cancel the default action in order to - // prevent cases where focus is shifted onto external elements - // when using things like jQuery mobile or MagnificPopup (ref: #249 & #120). - // Also, for Firefox, don’t prevent action on the `option` element. - if ( event.type == 'mousedown' && !$( target ).is( 'input, select, textarea, button, option' )) { - - event.preventDefault() - - // Re-focus onto the root so that users can click away - // from elements focused within the picker. - P.$root.eq(0).focus() - } - } - } - }). - - // Add/remove the “target” class on focus and blur. - on({ - focus: function() { - $ELEMENT.addClass( CLASSES.target ) - }, - blur: function() { - $ELEMENT.removeClass( CLASSES.target ) - } - }). - - // Open the picker and adjust the root “focused” state - on( 'focus.toOpen', handleFocusToOpenEvent ). - - // If there’s a click on an actionable element, carry out the actions. - on( 'click', '[data-pick], [data-nav], [data-clear], [data-close]', function() { - - var $target = $( this ), - targetData = $target.data(), - targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ), - - // * For IE, non-focusable elements can be active elements as well - // (http://stackoverflow.com/a/2684561). - activeElement = getActiveElement() - activeElement = activeElement && ( activeElement.type || activeElement.href ) - - // If it’s disabled or nothing inside is actively focused, re-focus the element. - if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) { - P.$root.eq(0).focus() - } - - // If something is superficially changed, update the `highlight` based on the `nav`. - if ( !targetDisabled && targetData.nav ) { - P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } ) - } - - // If something is picked, set `select` then close with focus. - else if ( !targetDisabled && 'pick' in targetData ) { - P.set( 'select', targetData.pick ) - } - - // If a “clear” button is pressed, empty the values and close with focus. - else if ( targetData.clear ) { - P.clear().close( true ) - } - - else if ( targetData.close ) { - P.close( true ) - } - - }) //P.$root - - aria( P.$root[0], 'hidden', true ) - } - - - /** - * Prepare the hidden input element along with all bindings. - */ - function prepareElementHidden() { - - var name - - if ( SETTINGS.hiddenName === true ) { - name = ELEMENT.name - ELEMENT.name = '' - } - else { - name = [ - typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '', - typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit' - ] - name = name[0] + ELEMENT.name + name[1] - } - - P._hidden = $( - '' - )[0] - - $ELEMENT. - - // If the value changes, update the hidden input with the correct format. - on('change.' + STATE.id, function() { - P._hidden.value = ELEMENT.value ? - P.get('select', SETTINGS.formatSubmit) : - '' - }) - - - // Insert the hidden input as specified in the settings. - if ( SETTINGS.container ) $( SETTINGS.container ).append( P._hidden ) - else $ELEMENT.after( P._hidden ) - } - - - // For iOS8. - function handleKeydownEvent( event ) { - - var keycode = event.keyCode, - - // Check if one of the delete keys was pressed. - isKeycodeDelete = /^(8|46)$/.test(keycode) - - // For some reason IE clears the input value on “escape”. - if ( keycode == 27 ) { - P.close() - return false - } - - // Check if `space` or `delete` was pressed or the picker is closed with a key movement. - if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) { - - // Prevent it from moving the page and bubbling to doc. - event.preventDefault() - event.stopPropagation() - - // If `delete` was pressed, clear the values and close the picker. - // Otherwise open the picker. - if ( isKeycodeDelete ) { P.clear().close() } - else { P.open() } - } - } - - - // Separated for IE - function handleFocusToOpenEvent( event ) { - - // Stop the event from propagating to the doc. - event.stopPropagation() - - // If it’s a focus event, add the “focused” class to the root. - if ( event.type == 'focus' ) { - P.$root.addClass( CLASSES.focused ) - } - - // And then finally open the picker. - P.open() - } - - - // Return a new picker instance. - return new PickerInstance() -} //PickerConstructor - - - -/** - * The default classes and prefix to use for the HTML classes. - */ -PickerConstructor.klasses = function( prefix ) { - prefix = prefix || 'picker' - return { - - picker: prefix, - opened: prefix + '--opened', - focused: prefix + '--focused', - - input: prefix + '__input', - active: prefix + '__input--active', - target: prefix + '__input--target', - - holder: prefix + '__holder', - - frame: prefix + '__frame', - wrap: prefix + '__wrap', - - box: prefix + '__box' - } -} //PickerConstructor.klasses - - - -/** - * Check if the default theme is being used. - */ -function isUsingDefaultTheme( element ) { - - var theme, - prop = 'position' - - // For IE. - if ( element.currentStyle ) { - theme = element.currentStyle[prop] - } - - // For normal browsers. - else if ( window.getComputedStyle ) { - theme = getComputedStyle( element )[prop] - } - - return theme == 'fixed' -} - - - -/** - * Get the width of the browser’s scrollbar. - * Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js - */ -function getScrollbarWidth() { - - if ( $html.height() <= $window.height() ) { - return 0 - } - - var $outer = $( '
                  ' ). - appendTo( 'body' ) - - // Get the width without scrollbars. - var widthWithoutScroll = $outer[0].offsetWidth - - // Force adding scrollbars. - $outer.css( 'overflow', 'scroll' ) - - // Add the inner div. - var $inner = $( '
                  ' ).appendTo( $outer ) - - // Get the width with scrollbars. - var widthWithScroll = $inner[0].offsetWidth - - // Remove the divs. - $outer.remove() - - // Return the difference between the widths. - return widthWithoutScroll - widthWithScroll -} - - - -/** - * PickerConstructor helper methods. - */ -PickerConstructor._ = { - - /** - * Create a group of nodes. Expects: - * ` - { - min: {Integer}, - max: {Integer}, - i: {Integer}, - node: {String}, - item: {Function} - } - * ` - */ - group: function( groupObject ) { - - var - // Scope for the looped object - loopObjectScope, - - // Create the nodes list - nodesList = '', - - // The counter starts from the `min` - counter = PickerConstructor._.trigger( groupObject.min, groupObject ) - - - // Loop from the `min` to `max`, incrementing by `i` - for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) { - - // Trigger the `item` function within scope of the object - loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] ) - - // Splice the subgroup and create nodes out of the sub nodes - nodesList += PickerConstructor._.node( - groupObject.node, - loopObjectScope[ 0 ], // the node - loopObjectScope[ 1 ], // the classes - loopObjectScope[ 2 ] // the attributes - ) - } - - // Return the list of nodes - return nodesList - }, //group - - - /** - * Create a dom node string - */ - node: function( wrapper, item, klass, attribute ) { - - // If the item is false-y, just return an empty string - if ( !item ) return '' - - // If the item is an array, do a join - item = $.isArray( item ) ? item.join( '' ) : item - - // Check for the class - klass = klass ? ' class="' + klass + '"' : '' - - // Check for any attributes - attribute = attribute ? ' ' + attribute : '' - - // Return the wrapped item - return '<' + wrapper + klass + attribute + '>' + item + '' - }, //node - - - /** - * Lead numbers below 10 with a zero. - */ - lead: function( number ) { - return ( number < 10 ? '0': '' ) + number - }, - - - /** - * Trigger a function otherwise return the value. - */ - trigger: function( callback, scope, args ) { - return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback - }, - - - /** - * If the second character is a digit, length is 2 otherwise 1. - */ - digits: function( string ) { - return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1 - }, - - - /** - * Tell if something is a date object. - */ - isDate: function( value ) { - return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() ) - }, - - - /** - * Tell if something is an integer. - */ - isInteger: function( value ) { - return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0 - }, - - - /** - * Create ARIA attribute strings. - */ - ariaAttr: ariaAttr -} //PickerConstructor._ - - - -/** - * Extend the picker with a component and defaults. - */ -PickerConstructor.extend = function( name, Component ) { - - // Extend jQuery. - $.fn[ name ] = function( options, action ) { - - // Grab the component data. - var componentData = this.data( name ) - - // If the picker is requested, return the data object. - if ( options == 'picker' ) { - return componentData - } - - // If the component data exists and `options` is a string, carry out the action. - if ( componentData && typeof options == 'string' ) { - return PickerConstructor._.trigger( componentData[ options ], componentData, [ action ] ) - } - - // Otherwise go through each matched element and if the component - // doesn’t exist, create a new picker using `this` element - // and merging the defaults and options with a deep copy. - return this.each( function() { - var $this = $( this ) - if ( !$this.data( name ) ) { - new PickerConstructor( this, name, Component, options ) - } - }) - } - - // Set the defaults. - $.fn[ name ].defaults = Component.defaults -} //PickerConstructor.extend - - - -function aria(element, attribute, value) { - if ( $.isPlainObject(attribute) ) { - for ( var key in attribute ) { - ariaSet(element, key, attribute[key]) - } - } - else { - ariaSet(element, attribute, value) - } -} -function ariaSet(element, attribute, value) { - element.setAttribute( - (attribute == 'role' ? '' : 'aria-') + attribute, - value - ) -} -function ariaAttr(attribute, data) { - if ( !$.isPlainObject(attribute) ) { - attribute = { attribute: data } - } - data = '' - for ( var key in attribute ) { - var attr = (key == 'role' ? '' : 'aria-') + key, - attrVal = attribute[key] - data += attrVal == null ? '' : attr + '="' + attribute[key] + '"' - } - return data -} - -// IE8 bug throws an error for activeElements within iframes. -function getActiveElement() { - try { - return document.activeElement - } catch ( err ) { } -} - - - -// Expose the picker constructor. -return PickerConstructor - - -})); - - diff --git a/production/bower_components/Materialize/js/dropdown.js b/production/bower_components/Materialize/js/dropdown.js deleted file mode 100644 index 965f1cd..0000000 --- a/production/bower_components/Materialize/js/dropdown.js +++ /dev/null @@ -1,265 +0,0 @@ -(function ($) { - - // Add posibility to scroll to selected option - // usefull for select for example - $.fn.scrollTo = function(elem) { - $(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top); - return this; - }; - - $.fn.dropdown = function (options) { - var defaults = { - inDuration: 300, - outDuration: 225, - constrain_width: true, // Constrains width of dropdown to the activator - hover: false, - gutter: 0, // Spacing from edge - belowOrigin: false, - alignment: 'left', - stopPropagation: false - }; - - // Open dropdown. - if (options === "open") { - this.each(function() { - $(this).trigger('open'); - }); - return false; - } - - // Close dropdown. - if (options === "close") { - this.each(function() { - $(this).trigger('close'); - }); - return false; - } - - this.each(function(){ - var origin = $(this); - var options = $.extend({}, defaults, options); - var isFocused = false; - - // Dropdown menu - var activates = $("#"+ origin.attr('data-activates')); - - function updateOptions() { - if (origin.data('induration') !== undefined) - options.inDuration = origin.data('induration'); - if (origin.data('outduration') !== undefined) - options.outDuration = origin.data('outduration'); - if (origin.data('constrainwidth') !== undefined) - options.constrain_width = origin.data('constrainwidth'); - if (origin.data('hover') !== undefined) - options.hover = origin.data('hover'); - if (origin.data('gutter') !== undefined) - options.gutter = origin.data('gutter'); - if (origin.data('beloworigin') !== undefined) - options.belowOrigin = origin.data('beloworigin'); - if (origin.data('alignment') !== undefined) - options.alignment = origin.data('alignment'); - if (origin.data('stoppropagation') !== undefined) - options.stopPropagation = origin.data('stoppropagation'); - } - - updateOptions(); - - // Attach dropdown to its activator - origin.after(activates); - - /* - Helper function to position and resize dropdown. - Used in hover and click handler. - */ - function placeDropdown(eventType) { - // Check for simultaneous focus and click events. - if (eventType === 'focus') { - isFocused = true; - } - - // Check html data attributes - updateOptions(); - - // Set Dropdown state - activates.addClass('active'); - origin.addClass('active'); - - // Constrain width - if (options.constrain_width === true) { - activates.css('width', origin.outerWidth()); - - } else { - activates.css('white-space', 'nowrap'); - } - - // Offscreen detection - var windowHeight = window.innerHeight; - var originHeight = origin.innerHeight(); - var offsetLeft = origin.offset().left; - var offsetTop = origin.offset().top - $(window).scrollTop(); - var currAlignment = options.alignment; - var gutterSpacing = 0; - var leftPosition = 0; - - // Below Origin - var verticalOffset = 0; - if (options.belowOrigin === true) { - verticalOffset = originHeight; - } - - // Check for scrolling positioned container. - var scrollYOffset = 0; - var scrollXOffset = 0; - var wrapper = origin.parent(); - if (!wrapper.is('body')) { - if (wrapper[0].scrollHeight > wrapper[0].clientHeight) { - scrollYOffset = wrapper[0].scrollTop; - } - if (wrapper[0].scrollWidth > wrapper[0].clientWidth) { - scrollXOffset = wrapper[0].scrollLeft; - } - } - - - if (offsetLeft + activates.innerWidth() > $(window).width()) { - // Dropdown goes past screen on right, force right alignment - currAlignment = 'right'; - - } else if (offsetLeft - activates.innerWidth() + origin.innerWidth() < 0) { - // Dropdown goes past screen on left, force left alignment - currAlignment = 'left'; - } - // Vertical bottom offscreen detection - if (offsetTop + activates.innerHeight() > windowHeight) { - // If going upwards still goes offscreen, just crop height of dropdown. - if (offsetTop + originHeight - activates.innerHeight() < 0) { - var adjustedHeight = windowHeight - offsetTop - verticalOffset; - activates.css('max-height', adjustedHeight); - } else { - // Flow upwards. - if (!verticalOffset) { - verticalOffset += originHeight; - } - verticalOffset -= activates.innerHeight(); - } - } - - // Handle edge alignment - if (currAlignment === 'left') { - gutterSpacing = options.gutter; - leftPosition = origin.position().left + gutterSpacing; - } - else if (currAlignment === 'right') { - var offsetRight = origin.position().left + origin.outerWidth() - activates.outerWidth(); - gutterSpacing = -options.gutter; - leftPosition = offsetRight + gutterSpacing; - } - - // Position dropdown - activates.css({ - position: 'absolute', - top: origin.position().top + verticalOffset + scrollYOffset, - left: leftPosition + scrollXOffset - }); - - - // Show dropdown - activates.stop(true, true).css('opacity', 0) - .slideDown({ - queue: false, - duration: options.inDuration, - easing: 'easeOutCubic', - complete: function() { - $(this).css('height', ''); - } - }) - .animate( {opacity: 1}, {queue: false, duration: options.inDuration, easing: 'easeOutSine'}); - } - - function hideDropdown() { - // Check for simultaneous focus and click events. - isFocused = false; - activates.fadeOut(options.outDuration); - activates.removeClass('active'); - origin.removeClass('active'); - setTimeout(function() { activates.css('max-height', ''); }, options.outDuration); - } - - // Hover - if (options.hover) { - var open = false; - origin.unbind('click.' + origin.attr('id')); - // Hover handler to show dropdown - origin.on('mouseenter', function(e){ // Mouse over - if (open === false) { - placeDropdown(); - open = true; - } - }); - origin.on('mouseleave', function(e){ - // If hover on origin then to something other than dropdown content, then close - var toEl = e.toElement || e.relatedTarget; // added browser compatibility for target element - if(!$(toEl).closest('.dropdown-content').is(activates)) { - activates.stop(true, true); - hideDropdown(); - open = false; - } - }); - - activates.on('mouseleave', function(e){ // Mouse out - var toEl = e.toElement || e.relatedTarget; - if(!$(toEl).closest('.dropdown-button').is(origin)) { - activates.stop(true, true); - hideDropdown(); - open = false; - } - }); - - // Click - } else { - // Click handler to show dropdown - origin.unbind('click.' + origin.attr('id')); - origin.bind('click.'+origin.attr('id'), function(e){ - if (!isFocused) { - if ( origin[0] == e.currentTarget && - !origin.hasClass('active') && - ($(e.target).closest('.dropdown-content').length === 0)) { - e.preventDefault(); // Prevents button click from moving window - if (options.stopPropagation) { - e.stopPropagation(); - } - placeDropdown('click'); - } - // If origin is clicked and menu is open, close menu - else if (origin.hasClass('active')) { - hideDropdown(); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - } - // If menu open, add click close handler to document - if (activates.hasClass('active')) { - $(document).bind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'), function (e) { - if (!activates.is(e.target) && !origin.is(e.target) && (!origin.find(e.target).length) ) { - hideDropdown(); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - } - }); - } - } - }); - - } // End else - - // Listen to open and close event - useful for select component - origin.on('open', function(e, eventType) { - placeDropdown(eventType); - }); - origin.on('close', hideDropdown); - - - }); - }; // End dropdown plugin - - $(document).ready(function(){ - $('.dropdown-button').dropdown(); - }); -}( jQuery )); diff --git a/production/bower_components/Materialize/js/forms.js b/production/bower_components/Materialize/js/forms.js deleted file mode 100644 index de7f44d..0000000 --- a/production/bower_components/Materialize/js/forms.js +++ /dev/null @@ -1,681 +0,0 @@ -(function ($) { - $(document).ready(function() { - - // Function to update labels of text fields - Materialize.updateTextFields = function() { - var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; - $(input_selector).each(function(index, element) { - if ($(element).val().length > 0 || element.autofocus ||$(this).attr('placeholder') !== undefined || $(element)[0].validity.badInput === true) { - $(this).siblings('label').addClass('active'); - } - else { - $(this).siblings('label').removeClass('active'); - } - }); - }; - - // Text based inputs - var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; - - // Add active if form auto complete - $(document).on('change', input_selector, function () { - if($(this).val().length !== 0 || $(this).attr('placeholder') !== undefined) { - $(this).siblings('label').addClass('active'); - } - validate_field($(this)); - }); - - // Add active if input element has been pre-populated on document ready - $(document).ready(function() { - Materialize.updateTextFields(); - }); - - // HTML DOM FORM RESET handling - $(document).on('reset', function(e) { - var formReset = $(e.target); - if (formReset.is('form')) { - formReset.find(input_selector).removeClass('valid').removeClass('invalid'); - formReset.find(input_selector).each(function () { - if ($(this).attr('value') === '') { - $(this).siblings('label').removeClass('active'); - } - }); - - // Reset select - formReset.find('select.initialized').each(function () { - var reset_text = formReset.find('option[selected]').text(); - formReset.siblings('input.select-dropdown').val(reset_text); - }); - } - }); - - // Add active when element has focus - $(document).on('focus', input_selector, function () { - $(this).siblings('label, .prefix').addClass('active'); - }); - - $(document).on('blur', input_selector, function () { - var $inputElement = $(this); - var selector = ".prefix"; - - if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === undefined) { - selector += ", label"; - } - - $inputElement.siblings(selector).removeClass('active'); - - validate_field($inputElement); - }); - - window.validate_field = function(object) { - var hasLength = object.attr('length') !== undefined; - var lenAttr = parseInt(object.attr('length')); - var len = object.val().length; - - if (object.val().length === 0 && object[0].validity.badInput === false) { - if (object.hasClass('validate')) { - object.removeClass('valid'); - object.removeClass('invalid'); - } - } - else { - if (object.hasClass('validate')) { - // Check for character counter attributes - if ((object.is(':valid') && hasLength && (len <= lenAttr)) || (object.is(':valid') && !hasLength)) { - object.removeClass('invalid'); - object.addClass('valid'); - } - else { - object.removeClass('valid'); - object.addClass('invalid'); - } - } - } - }; - - // Radio and Checkbox focus class - var radio_checkbox = 'input[type=radio], input[type=checkbox]'; - $(document).on('keyup.radio', radio_checkbox, function(e) { - // TAB, check if tabbing to radio or checkbox. - if (e.which === 9) { - $(this).addClass('tabbed'); - var $this = $(this); - $this.one('blur', function(e) { - - $(this).removeClass('tabbed'); - }); - return; - } - }); - - // Textarea Auto Resize - var hiddenDiv = $('.hiddendiv').first(); - if (!hiddenDiv.length) { - hiddenDiv = $('
                  '); - $('body').append(hiddenDiv); - } - var text_area_selector = '.materialize-textarea'; - - function textareaAutoResize($textarea) { - // Set font properties of hiddenDiv - - var fontFamily = $textarea.css('font-family'); - var fontSize = $textarea.css('font-size'); - var lineHeight = $textarea.css('line-height'); - - if (fontSize) { hiddenDiv.css('font-size', fontSize); } - if (fontFamily) { hiddenDiv.css('font-family', fontFamily); } - if (lineHeight) { hiddenDiv.css('line-height', lineHeight); } - - if ($textarea.attr('wrap') === "off") { - hiddenDiv.css('overflow-wrap', "normal") - .css('white-space', "pre"); - } - - hiddenDiv.text($textarea.val() + '\n'); - var content = hiddenDiv.html().replace(/\n/g, '
                  '); - hiddenDiv.html(content); - - - // When textarea is hidden, width goes crazy. - // Approximate with half of window size - - if ($textarea.is(':visible')) { - hiddenDiv.css('width', $textarea.width()); - } - else { - hiddenDiv.css('width', $(window).width()/2); - } - - $textarea.css('height', hiddenDiv.height()); - } - - $(text_area_selector).each(function () { - var $textarea = $(this); - if ($textarea.val().length) { - textareaAutoResize($textarea); - } - }); - - $('body').on('keyup keydown autoresize', text_area_selector, function () { - textareaAutoResize($(this)); - }); - - // File Input Path - $(document).on('change', '.file-field input[type="file"]', function () { - var file_field = $(this).closest('.file-field'); - var path_input = file_field.find('input.file-path'); - var files = $(this)[0].files; - var file_names = []; - for (var i = 0; i < files.length; i++) { - file_names.push(files[i].name); - } - path_input.val(file_names.join(", ")); - path_input.trigger('change'); - }); - - /**************** - * Range Input * - ****************/ - - var range_type = 'input[type=range]'; - var range_mousedown = false; - var left; - - $(range_type).each(function () { - var thumb = $(''); - $(this).after(thumb); - }); - - var range_wrapper = '.range-field'; - $(document).on('change', range_type, function(e) { - var thumb = $(this).siblings('.thumb'); - thumb.find('.value').html($(this).val()); - }); - - $(document).on('input mousedown touchstart', range_type, function(e) { - var thumb = $(this).siblings('.thumb'); - var width = $(this).outerWidth(); - - // If thumb indicator does not exist yet, create it - if (thumb.length <= 0) { - thumb = $(''); - $(this).after(thumb); - } - - // Set indicator value - thumb.find('.value').html($(this).val()); - - range_mousedown = true; - $(this).addClass('active'); - - if (!thumb.hasClass('active')) { - thumb.velocity({ height: "30px", width: "30px", top: "-20px", marginLeft: "-15px"}, { duration: 300, easing: 'easeOutExpo' }); - } - - if (e.type !== 'input') { - if(e.pageX === undefined || e.pageX === null){//mobile - left = e.originalEvent.touches[0].pageX - $(this).offset().left; - } - else{ // desktop - left = e.pageX - $(this).offset().left; - } - if (left < 0) { - left = 0; - } - else if (left > width) { - left = width; - } - thumb.addClass('active').css('left', left); - } - - thumb.find('.value').html($(this).val()); - }); - - $(document).on('mouseup touchend', range_wrapper, function() { - range_mousedown = false; - $(this).removeClass('active'); - }); - - $(document).on('mousemove touchmove', range_wrapper, function(e) { - var thumb = $(this).children('.thumb'); - var left; - if (range_mousedown) { - if (!thumb.hasClass('active')) { - thumb.velocity({ height: '30px', width: '30px', top: '-20px', marginLeft: '-15px'}, { duration: 300, easing: 'easeOutExpo' }); - } - if (e.pageX === undefined || e.pageX === null) { //mobile - left = e.originalEvent.touches[0].pageX - $(this).offset().left; - } - else{ // desktop - left = e.pageX - $(this).offset().left; - } - var width = $(this).outerWidth(); - - if (left < 0) { - left = 0; - } - else if (left > width) { - left = width; - } - thumb.addClass('active').css('left', left); - thumb.find('.value').html(thumb.siblings(range_type).val()); - } - }); - - $(document).on('mouseout touchleave', range_wrapper, function() { - if (!range_mousedown) { - - var thumb = $(this).children('.thumb'); - - if (thumb.hasClass('active')) { - thumb.velocity({ height: '0', width: '0', top: '10px', marginLeft: '-6px'}, { duration: 100 }); - } - thumb.removeClass('active'); - } - }); - - /************************** - * Auto complete plugin * - *************************/ - $.fn.autocomplete = function (options) { - // Defaults - var defaults = { - data: {} - }; - - options = $.extend(defaults, options); - - return this.each(function() { - var $input = $(this); - var data = options.data, - $inputDiv = $input.closest('.input-field'); // Div to append on - - // Check if data isn't empty - if (!$.isEmptyObject(data)) { - // Create autocomplete element - var $autocomplete = $(''); - - // Append autocomplete element - if ($inputDiv.length) { - $inputDiv.append($autocomplete); // Set ul in body - } else { - $input.after($autocomplete); - } - - var highlight = function(string, $el) { - var img = $el.find('img'); - var matchStart = $el.text().toLowerCase().indexOf("" + string.toLowerCase() + ""), - matchEnd = matchStart + string.length - 1, - beforeMatch = $el.text().slice(0, matchStart), - matchText = $el.text().slice(matchStart, matchEnd + 1), - afterMatch = $el.text().slice(matchEnd + 1); - $el.html("" + beforeMatch + "" + matchText + "" + afterMatch + ""); - if (img.length) { - $el.prepend(img); - } - }; - - // Perform search - $input.on('keyup', function (e) { - // Capture Enter - if (e.which === 13) { - $autocomplete.find('li').first().click(); - return; - } - - var val = $input.val().toLowerCase(); - $autocomplete.empty(); - - // Check if the input isn't empty - if (val !== '') { - for(var key in data) { - if (data.hasOwnProperty(key) && - key.toLowerCase().indexOf(val) !== -1 && - key.toLowerCase() !== val) { - var autocompleteOption = $('
                • '); - if(!!data[key]) { - autocompleteOption.append(''+ key +''); - } else { - autocompleteOption.append(''+ key +''); - } - $autocomplete.append(autocompleteOption); - - highlight(val, autocompleteOption); - } - } - } - }); - - // Set input value - $autocomplete.on('click', 'li', function () { - $input.val($(this).text().trim()); - $autocomplete.empty(); - }); - } - }); - }; - - }); // End of $(document).ready - - /******************* - * Select Plugin * - ******************/ - $.fn.material_select = function (callback) { - $(this).each(function(){ - var $select = $(this); - - if ($select.hasClass('browser-default')) { - return; // Continue to next (return false breaks out of entire loop) - } - - var multiple = $select.attr('multiple') ? true : false, - lastID = $select.data('select-id'); // Tear down structure if Select needs to be rebuilt - - if (lastID) { - $select.parent().find('span.caret').remove(); - $select.parent().find('input').remove(); - - $select.unwrap(); - $('ul#select-options-'+lastID).remove(); - } - - // If destroying the select, remove the selelct-id and reset it to it's uninitialized state. - if(callback === 'destroy') { - $select.data('select-id', null).removeClass('initialized'); - return; - } - - var uniqueID = Materialize.guid(); - $select.data('select-id', uniqueID); - var wrapper = $('
                  '); - wrapper.addClass($select.attr('class')); - var options = $(''), - selectChildren = $select.children('option, optgroup'), - valuesSelected = [], - optionsHover = false; - - var label = $select.find('option:selected').html() || $select.find('option:first').html() || ""; - - // Function that renders and appends the option taking into - // account type and possible image icon. - var appendOptionWithIcon = function(select, option, type) { - // Add disabled attr if disabled - var disabledClass = (option.is(':disabled')) ? 'disabled ' : ''; - var optgroupClass = (type === 'optgroup-option') ? 'optgroup-option ' : ''; - - // add icons - var icon_url = option.data('icon'); - var classes = option.attr('class'); - if (!!icon_url) { - var classString = ''; - if (!!classes) classString = ' class="' + classes + '"'; - - // Check for multiple type. - if (type === 'multiple') { - options.append($('
                • ' + option.html() + '
                • ')); - } else { - options.append($('
                • ' + option.html() + '
                • ')); - } - return true; - } - - // Check for multiple type. - if (type === 'multiple') { - options.append($('
                • ' + option.html() + '
                • ')); - } else { - options.append($('
                • ' + option.html() + '
                • ')); - } - }; - - /* Create dropdown structure. */ - if (selectChildren.length) { - selectChildren.each(function() { - if ($(this).is('option')) { - // Direct descendant option. - if (multiple) { - appendOptionWithIcon($select, $(this), 'multiple'); - - } else { - appendOptionWithIcon($select, $(this)); - } - } else if ($(this).is('optgroup')) { - // Optgroup. - var selectOptions = $(this).children('option'); - options.append($('
                • ' + $(this).attr('label') + '
                • ')); - - selectOptions.each(function() { - appendOptionWithIcon($select, $(this), 'optgroup-option'); - }); - } - }); - } - - options.find('li:not(.optgroup)').each(function (i) { - $(this).click(function (e) { - // Check if option element is disabled - if (!$(this).hasClass('disabled') && !$(this).hasClass('optgroup')) { - var selected = true; - - if (multiple) { - $('input[type="checkbox"]', this).prop('checked', function(i, v) { return !v; }); - selected = toggleEntryFromArray(valuesSelected, $(this).index(), $select); - $newSelect.trigger('focus'); - } else { - options.find('li').removeClass('active'); - $(this).toggleClass('active'); - $newSelect.val($(this).text()); - } - - activateOption(options, $(this)); - $select.find('option').eq(i).prop('selected', selected); - // Trigger onchange() event - $select.trigger('change'); - if (typeof callback !== 'undefined') callback(); - } - - e.stopPropagation(); - }); - }); - - // Wrap Elements - $select.wrap(wrapper); - // Add Select Display Element - var dropdownIcon = $(''); - if ($select.is(':disabled')) - dropdownIcon.addClass('disabled'); - - // escape double quotes - var sanitizedLabelHtml = label.replace(/"/g, '"'); - - var $newSelect = $(''); - $select.before($newSelect); - $newSelect.before(dropdownIcon); - - $newSelect.after(options); - // Check if section element is disabled - if (!$select.is(':disabled')) { - $newSelect.dropdown({'hover': false, 'closeOnClick': false}); - } - - // Copy tabindex - if ($select.attr('tabindex')) { - $($newSelect[0]).attr('tabindex', $select.attr('tabindex')); - } - - $select.addClass('initialized'); - - $newSelect.on({ - 'focus': function (){ - if ($('ul.select-dropdown').not(options[0]).is(':visible')) { - $('input.select-dropdown').trigger('close'); - } - if (!options.is(':visible')) { - $(this).trigger('open', ['focus']); - var label = $(this).val(); - var selectedOption = options.find('li').filter(function() { - return $(this).text().toLowerCase() === label.toLowerCase(); - })[0]; - activateOption(options, selectedOption); - } - }, - 'click': function (e){ - e.stopPropagation(); - } - }); - - $newSelect.on('blur', function() { - if (!multiple) { - $(this).trigger('close'); - } - options.find('li.selected').removeClass('selected'); - }); - - options.hover(function() { - optionsHover = true; - }, function () { - optionsHover = false; - }); - - $(window).on({ - 'click': function () { - multiple && (optionsHover || $newSelect.trigger('close')); - } - }); - - // Add initial multiple selections. - if (multiple) { - $select.find("option:selected:not(:disabled)").each(function () { - var index = $(this).index(); - - toggleEntryFromArray(valuesSelected, index, $select); - options.find("li").eq(index).find(":checkbox").prop("checked", true); - }); - } - - // Make option as selected and scroll to selected position - var activateOption = function(collection, newOption) { - if (newOption) { - collection.find('li.selected').removeClass('selected'); - var option = $(newOption); - option.addClass('selected'); - options.scrollTo(option); - } - }; - - // Allow user to search by typing - // this array is cleared after 1 second - var filterQuery = [], - onKeyDown = function(e){ - // TAB - switch to another input - if(e.which == 9){ - $newSelect.trigger('close'); - return; - } - - // ARROW DOWN WHEN SELECT IS CLOSED - open select options - if(e.which == 40 && !options.is(':visible')){ - $newSelect.trigger('open'); - return; - } - - // ENTER WHEN SELECT IS CLOSED - submit form - if(e.which == 13 && !options.is(':visible')){ - return; - } - - e.preventDefault(); - - // CASE WHEN USER TYPE LETTERS - var letter = String.fromCharCode(e.which).toLowerCase(), - nonLetters = [9,13,27,38,40]; - if (letter && (nonLetters.indexOf(e.which) === -1)) { - filterQuery.push(letter); - - var string = filterQuery.join(''), - newOption = options.find('li').filter(function() { - return $(this).text().toLowerCase().indexOf(string) === 0; - })[0]; - - if (newOption) { - activateOption(options, newOption); - } - } - - // ENTER - select option and close when select options are opened - if (e.which == 13) { - var activeOption = options.find('li.selected:not(.disabled)')[0]; - if(activeOption){ - $(activeOption).trigger('click'); - if (!multiple) { - $newSelect.trigger('close'); - } - } - } - - // ARROW DOWN - move to next not disabled option - if (e.which == 40) { - if (options.find('li.selected').length) { - newOption = options.find('li.selected').next('li:not(.disabled)')[0]; - } else { - newOption = options.find('li:not(.disabled)')[0]; - } - activateOption(options, newOption); - } - - // ESC - close options - if (e.which == 27) { - $newSelect.trigger('close'); - } - - // ARROW UP - move to previous not disabled option - if (e.which == 38) { - newOption = options.find('li.selected').prev('li:not(.disabled)')[0]; - if(newOption) - activateOption(options, newOption); - } - - // Automaticaly clean filter query so user can search again by starting letters - setTimeout(function(){ filterQuery = []; }, 1000); - }; - - $newSelect.on('keydown', onKeyDown); - }); - - function toggleEntryFromArray(entriesArray, entryIndex, select) { - var index = entriesArray.indexOf(entryIndex), - notAdded = index === -1; - - if (notAdded) { - entriesArray.push(entryIndex); - } else { - entriesArray.splice(index, 1); - } - - select.siblings('ul.dropdown-content').find('li').eq(entryIndex).toggleClass('active'); - - // use notAdded instead of true (to detect if the option is selected or not) - select.find('option').eq(entryIndex).prop('selected', notAdded); - setValueToInput(entriesArray, select); - - return notAdded; - } - - function setValueToInput(entriesArray, select) { - var value = ''; - - for (var i = 0, count = entriesArray.length; i < count; i++) { - var text = select.find('option').eq(entriesArray[i]).text(); - - i === 0 ? value += text : value += ', ' + text; - } - - if (value === '') { - value = select.find('option:disabled').eq(0).text(); - } - - select.siblings('input.select-dropdown').val(value); - } - }; - -}( jQuery )); diff --git a/production/bower_components/Materialize/js/global.js b/production/bower_components/Materialize/js/global.js deleted file mode 100644 index 5d1d787..0000000 --- a/production/bower_components/Materialize/js/global.js +++ /dev/null @@ -1,45 +0,0 @@ -// Required for Meteor package, the use of window prevents export by Meteor -(function(window){ - if(window.Package){ - Materialize = {}; - } else { - window.Materialize = {}; - } -})(window); - - -// Unique ID -Materialize.guid = (function() { - function s4() { - return Math.floor((1 + Math.random()) * 0x10000) - .toString(16) - .substring(1); - } - return function() { - return s4() + s4() + '-' + s4() + '-' + s4() + '-' + - s4() + '-' + s4() + s4() + s4(); - }; -})(); - -Materialize.elementOrParentIsFixed = function(element) { - var $element = $(element); - var $checkElements = $element.add($element.parents()); - var isFixed = false; - $checkElements.each(function(){ - if ($(this).css("position") === "fixed") { - isFixed = true; - return false; - } - }); - return isFixed; -}; - -// Velocity has conflicts when loaded with jQuery, this will check for it -var Vel; -if ($) { - Vel = $.Velocity; -} else if (jQuery) { - Vel = jQuery.Velocity; -} else { - Vel = Velocity; -} diff --git a/production/bower_components/Materialize/js/hammer.min.js b/production/bower_components/Materialize/js/hammer.min.js deleted file mode 100644 index 6c232c8..0000000 --- a/production/bower_components/Materialize/js/hammer.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h1&&!c.firstMultiple?c.firstMultiple=gb(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=hb(d);b.timeStamp=j(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=lb(h,i),b.distance=kb(h,i),eb(c,b),b.offsetDirection=jb(b.deltaX,b.deltaY),b.scale=g?nb(g.pointers,d):1,b.rotation=g?mb(g.pointers,d):0,fb(c,b);var k=a.element;v(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===O||f.eventType===Q)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,m=ib(e,k,l);g=m.x,h=m.y,f=i(m.x)>i(m.y)?m.x:m.y,j=jb(k,l),a.lastInterval=b}else f=c.velocity,g=c.velocityX,h=c.velocityY,j=c.direction;b.velocity=f,b.velocityX=g,b.velocityY=h,b.direction=j}function gb(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Q|R)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){var c=Bb.call(this,a,b);b&(Q|R)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,e=c.pointerType==L;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Q|R)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(l(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_b(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(l(a,"requireFailure",this))return this;var b=this.requireFail;return a=_b(a,this),-1===y(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(l(a,"dropRequireFailure",this))return this;a=_b(a,this);var b=y(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;af?T:U,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?S:0>g?V:W,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Q|R)&&!e)this.reset();else if(a.eventType&O)this.reset(),this._timer=k(function(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===Vb&&(a&&a.eventType&Q?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=j(),this.manager.emit(this.options.event,this._input)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,b=this.options.direction;return b&(X|Y)?c=a.velocity:b&X?c=a.velocityX:b&Y&&(c=a.velocityY),this._super.attrTest.call(this,a)&&b&a.direction&&a.distance>this.options.threshold&&i(c)>this.options.velocity&&a.eventType&Q},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance0)||r.isTime(e)&&e.attr("title")||e.attr("title",a)}return e.data("timeago")}function i(t){return r.inWords(n(t))}function n(t){return(new Date).getTime()-t.getTime()}t.timeago=function(e){return i(e instanceof Date?e:"string"==typeof e?t.timeago.parse(e):"number"==typeof e?new Date(e):t.timeago.datetime(e))};var r=t.timeago;t.extend(t.timeago,{settings:{refreshMillis:6e4,allowPast:!0,allowFuture:!1,localeTitle:!1,cutoff:0,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo:"ago",suffixFromNow:"from now",inPast:"any moment now",seconds:"less than a minute",minute:"about a minute",minutes:"%d minutes",hour:"about an hour",hours:"about %d hours",day:"a day",days:"%d days",month:"about a month",months:"%d months",year:"about a year",years:"%d years",wordSeparator:" ",numbers:[]}},inWords:function(e){function a(a,n){var r=t.isFunction(a)?a(n,e):a,o=i.numbers&&i.numbers[n]||n;return r.replace(/%d/i,o)}if(!this.settings.allowPast&&!this.settings.allowFuture)throw"timeago allowPast and allowFuture settings can not both be set to false.";var i=this.settings.strings,n=i.prefixAgo,r=i.suffixAgo;if(this.settings.allowFuture&&0>e&&(n=i.prefixFromNow,r=i.suffixFromNow),!this.settings.allowPast&&e>=0)return this.settings.strings.inPast;var o=Math.abs(e)/1e3,s=o/60,u=s/60,m=u/24,l=m/365,d=45>o&&a(i.seconds,Math.round(o))||90>o&&a(i.minute,1)||45>s&&a(i.minutes,Math.round(s))||90>s&&a(i.hour,1)||24>u&&a(i.hours,Math.round(u))||42>u&&a(i.day,1)||30>m&&a(i.days,Math.round(m))||45>m&&a(i.month,1)||365>m&&a(i.months,Math.round(m/30))||1.5>l&&a(i.year,1)||a(i.years,Math.round(l)),f=i.wordSeparator||"";return void 0===i.wordSeparator&&(f=" "),t.trim([n,d,r].join(f))},parse:function(e){var a=t.trim(e);return a=a.replace(/\.\d+/,""),a=a.replace(/-/,"/").replace(/-/,"/"),a=a.replace(/T/," ").replace(/Z/," UTC"),a=a.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"),a=a.replace(/([\+\-]\d\d)$/," $100"),new Date(a)},datetime:function(e){var a=t(e).attr(r.isTime(e)?"datetime":"title");return r.parse(a)},isTime:function(e){return"time"===t(e).get(0).tagName.toLowerCase()}});var o={init:function(){var a=t.proxy(e,this);a();var i=r.settings;i.refreshMillis>0&&(this._timeagoInterval=setInterval(a,i.refreshMillis))},update:function(a){var i=r.parse(a);t(this).data("timeago",{datetime:i}),r.settings.localeTitle&&t(this).attr("title",i.toLocaleString()),e.apply(this)},updateFromDOM:function(){t(this).data("timeago",{datetime:r.parse(t(this).attr(r.isTime(this)?"datetime":"title"))}),e.apply(this)},dispose:function(){this._timeagoInterval&&(window.clearInterval(this._timeagoInterval),this._timeagoInterval=null)}};t.fn.timeago=function(t,e){var a=t?o[t]:o.init;if(!a)throw new Error("Unknown function name '"+t+"' for timeago");return this.each(function(){a.call(this,e)}),this},document.createElement("abbr"),document.createElement("time")}); \ No newline at end of file diff --git a/production/bower_components/Materialize/js/materialbox.js b/production/bower_components/Materialize/js/materialbox.js deleted file mode 100644 index 34548dd..0000000 --- a/production/bower_components/Materialize/js/materialbox.js +++ /dev/null @@ -1,269 +0,0 @@ -(function ($) { - - $.fn.materialbox = function () { - - return this.each(function() { - - if ($(this).hasClass('initialized')) { - return; - } - - $(this).addClass('initialized'); - - var overlayActive = false; - var doneAnimating = true; - var inDuration = 275; - var outDuration = 200; - var origin = $(this); - var placeholder = $('
                  ').addClass('material-placeholder'); - var originalWidth = 0; - var originalHeight = 0; - var ancestorsChanged; - var ancestor; - origin.wrap(placeholder); - - - origin.on('click', function(){ - var placeholder = origin.parent('.material-placeholder'); - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var originalWidth = origin.width(); - var originalHeight = origin.height(); - - - // If already modal, return to original - if (doneAnimating === false) { - returnToOriginal(); - return false; - } - else if (overlayActive && doneAnimating===true) { - returnToOriginal(); - return false; - } - - - // Set states - doneAnimating = false; - origin.addClass('active'); - overlayActive = true; - - // Set positioning for placeholder - placeholder.css({ - width: placeholder[0].getBoundingClientRect().width, - height: placeholder[0].getBoundingClientRect().height, - position: 'relative', - top: 0, - left: 0 - }); - - // Find ancestor with overflow: hidden; and remove it - ancestorsChanged = undefined; - ancestor = placeholder[0].parentNode; - var count = 0; - while (ancestor !== null && !$(ancestor).is(document)) { - var curr = $(ancestor); - if (curr.css('overflow') !== 'visible') { - curr.css('overflow', 'visible'); - if (ancestorsChanged === undefined) { - ancestorsChanged = curr; - } - else { - ancestorsChanged = ancestorsChanged.add(curr); - } - } - ancestor = ancestor.parentNode; - } - - // Set css on origin - origin.css({position: 'absolute', 'z-index': 1000}) - .data('width', originalWidth) - .data('height', originalHeight); - - // Add overlay - var overlay = $('
                  ') - .css({ - opacity: 0 - }) - .click(function(){ - if (doneAnimating === true) - returnToOriginal(); - }); - // Animate Overlay - // Put before in origin image to preserve z-index layering. - origin.before(overlay); - overlay.velocity({opacity: 1}, - {duration: inDuration, queue: false, easing: 'easeOutQuad'} ); - - // Add and animate caption if it exists - if (origin.data('caption') !== "") { - var $photo_caption = $('
                  '); - $photo_caption.text(origin.data('caption')); - $('body').append($photo_caption); - $photo_caption.css({ "display": "inline" }); - $photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'}); - } - - // Resize Image - var ratio = 0; - var widthPercent = originalWidth / windowWidth; - var heightPercent = originalHeight / windowHeight; - var newWidth = 0; - var newHeight = 0; - - if (widthPercent > heightPercent) { - ratio = originalHeight / originalWidth; - newWidth = windowWidth * 0.9; - newHeight = windowWidth * 0.9 * ratio; - } - else { - ratio = originalWidth / originalHeight; - newWidth = (windowHeight * 0.9) * ratio; - newHeight = windowHeight * 0.9; - } - - // Animate image + set z-index - if(origin.hasClass('responsive-img')) { - origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false, - complete: function(){ - origin.css({left: 0, top: 0}) - .velocity( - { - height: newHeight, - width: newWidth, - left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, - top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 - }, - { - duration: inDuration, - queue: false, - easing: 'easeOutQuad', - complete: function(){doneAnimating = true;} - } - ); - } // End Complete - }); // End Velocity - } - else { - origin.css('left', 0) - .css('top', 0) - .velocity( - { - height: newHeight, - width: newWidth, - left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, - top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 - }, - { - duration: inDuration, - queue: false, - easing: 'easeOutQuad', - complete: function(){doneAnimating = true;} - } - ); // End Velocity - } - - }); // End origin on click - - - // Return on scroll - $(window).scroll(function() { - if (overlayActive) { - returnToOriginal(); - } - }); - - // Return on ESC - $(document).keyup(function(e) { - - if (e.keyCode === 27 && doneAnimating === true) { // ESC key - if (overlayActive) { - returnToOriginal(); - } - } - }); - - - // This function returns the modaled image to the original spot - function returnToOriginal() { - - doneAnimating = false; - - var placeholder = origin.parent('.material-placeholder'); - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var originalWidth = origin.data('width'); - var originalHeight = origin.data('height'); - - origin.velocity("stop", true); - $('#materialbox-overlay').velocity("stop", true); - $('.materialbox-caption').velocity("stop", true); - - - $('#materialbox-overlay').velocity({opacity: 0}, { - duration: outDuration, // Delay prevents animation overlapping - queue: false, easing: 'easeOutQuad', - complete: function(){ - // Remove Overlay - overlayActive = false; - $(this).remove(); - } - }); - - // Resize Image - origin.velocity( - { - width: originalWidth, - height: originalHeight, - left: 0, - top: 0 - }, - { - duration: outDuration, - queue: false, easing: 'easeOutQuad' - } - ); - - // Remove Caption + reset css settings on image - $('.materialbox-caption').velocity({opacity: 0}, { - duration: outDuration, // Delay prevents animation overlapping - queue: false, easing: 'easeOutQuad', - complete: function(){ - placeholder.css({ - height: '', - width: '', - position: '', - top: '', - left: '' - }); - - origin.css({ - height: '', - top: '', - left: '', - width: '', - 'max-width': '', - position: '', - 'z-index': '' - }); - - // Remove class - origin.removeClass('active'); - doneAnimating = true; - $(this).remove(); - - // Remove overflow overrides on ancestors - if (ancestorsChanged) { - ancestorsChanged.css('overflow', ''); - } - } - }); - - } - }); -}; - -$(document).ready(function(){ - $('.materialboxed').materialbox(); -}); - -}( jQuery )); diff --git a/production/bower_components/Materialize/js/parallax.js b/production/bower_components/Materialize/js/parallax.js deleted file mode 100644 index 841d7ac..0000000 --- a/production/bower_components/Materialize/js/parallax.js +++ /dev/null @@ -1,58 +0,0 @@ -(function ($) { - - $.fn.parallax = function () { - var window_width = $(window).width(); - // Parallax Scripts - return this.each(function(i) { - var $this = $(this); - $this.addClass('parallax'); - - function updateParallax(initial) { - var container_height; - if (window_width < 601) { - container_height = ($this.height() > 0) ? $this.height() : $this.children("img").height(); - } - else { - container_height = ($this.height() > 0) ? $this.height() : 500; - } - var $img = $this.children("img").first(); - var img_height = $img.height(); - var parallax_dist = img_height - container_height; - var bottom = $this.offset().top + container_height; - var top = $this.offset().top; - var scrollTop = $(window).scrollTop(); - var windowHeight = window.innerHeight; - var windowBottom = scrollTop + windowHeight; - var percentScrolled = (windowBottom - top) / (container_height + windowHeight); - var parallax = Math.round((parallax_dist * percentScrolled)); - - if (initial) { - $img.css('display', 'block'); - } - if ((bottom > scrollTop) && (top < (scrollTop + windowHeight))) { - $img.css('transform', "translate3D(-50%," + parallax + "px, 0)"); - } - - } - - // Wait for image load - $this.children("img").one("load", function() { - updateParallax(true); - }).each(function() { - if(this.complete) $(this).load(); - }); - - $(window).scroll(function() { - window_width = $(window).width(); - updateParallax(false); - }); - - $(window).resize(function() { - window_width = $(window).width(); - updateParallax(false); - }); - - }); - - }; -}( jQuery )); \ No newline at end of file diff --git a/production/bower_components/Materialize/js/pushpin.js b/production/bower_components/Materialize/js/pushpin.js deleted file mode 100644 index 5f42246..0000000 --- a/production/bower_components/Materialize/js/pushpin.js +++ /dev/null @@ -1,71 +0,0 @@ -(function ($) { - $.fn.pushpin = function (options) { - // Defaults - var defaults = { - top: 0, - bottom: Infinity, - offset: 0 - }; - - // Remove pushpin event and classes - if (options === "remove") { - this.each(function () { - if (id = $(this).data('pushpin-id')) { - $(window).off('scroll.' + id); - $(this).removeData('pushpin-id').removeClass('pin-top pinned pin-bottom').removeAttr('style'); - } - }); - return false; - } - - options = $.extend(defaults, options); - - - $index = 0; - return this.each(function() { - var $uniqueId = Materialize.guid(), - $this = $(this), - $original_offset = $(this).offset().top; - - function removePinClasses(object) { - object.removeClass('pin-top'); - object.removeClass('pinned'); - object.removeClass('pin-bottom'); - } - - function updateElements(objects, scrolled) { - objects.each(function () { - // Add position fixed (because its between top and bottom) - if (options.top <= scrolled && options.bottom >= scrolled && !$(this).hasClass('pinned')) { - removePinClasses($(this)); - $(this).css('top', options.offset); - $(this).addClass('pinned'); - } - - // Add pin-top (when scrolled position is above top) - if (scrolled < options.top && !$(this).hasClass('pin-top')) { - removePinClasses($(this)); - $(this).css('top', 0); - $(this).addClass('pin-top'); - } - - // Add pin-bottom (when scrolled position is below bottom) - if (scrolled > options.bottom && !$(this).hasClass('pin-bottom')) { - removePinClasses($(this)); - $(this).addClass('pin-bottom'); - $(this).css('top', options.bottom - $original_offset); - } - }); - } - - $(this).data('pushpin-id', $uniqueId); - updateElements($this, $(window).scrollTop()); - $(window).on('scroll.' + $uniqueId, function () { - var $scrolled = $(window).scrollTop() + options.offset; - updateElements($this, $scrolled); - }); - - }); - - }; -}( jQuery )); \ No newline at end of file diff --git a/production/bower_components/Materialize/js/scrollFire.js b/production/bower_components/Materialize/js/scrollFire.js deleted file mode 100644 index 76eccd4..0000000 --- a/production/bower_components/Materialize/js/scrollFire.js +++ /dev/null @@ -1,48 +0,0 @@ -(function($) { - - // Input: Array of JSON objects {selector, offset, callback} - - Materialize.scrollFire = function(options) { - - var didScroll = false; - - window.addEventListener("scroll", function() { - didScroll = true; - }); - - // Rate limit to 100ms - setInterval(function() { - if(didScroll) { - didScroll = false; - - var windowScroll = window.pageYOffset + window.innerHeight; - - for (var i = 0 ; i < options.length; i++) { - // Get options from each line - var value = options[i]; - var selector = value.selector, - offset = value.offset, - callback = value.callback; - - var currentElement = document.querySelector(selector); - if ( currentElement !== null) { - var elementOffset = currentElement.getBoundingClientRect().top + window.pageYOffset; - - if (windowScroll > (elementOffset + offset)) { - if (value.done !== true) { - if (typeof(callback) === 'function') { - callback.call(this, currentElement); - } else if (typeof(callback) === 'string') { - var callbackFunc = new Function(callback); - callbackFunc(currentElement); - } - value.done = true; - } - } - } - } - } - }, 100); - }; - -})(jQuery); diff --git a/production/bower_components/Materialize/js/scrollspy.js b/production/bower_components/Materialize/js/scrollspy.js deleted file mode 100644 index ea85765..0000000 --- a/production/bower_components/Materialize/js/scrollspy.js +++ /dev/null @@ -1,283 +0,0 @@ -/** - * Extend jquery with a scrollspy plugin. - * This watches the window scroll and fires events when elements are scrolled into viewport. - * - * throttle() and getTime() taken from Underscore.js - * https://github.com/jashkenas/underscore - * - * @author Copyright 2013 John Smart - * @license https://raw.github.com/thesmart/jquery-scrollspy/master/LICENSE - * @see https://github.com/thesmart - * @version 0.1.2 - */ -(function($) { - - var jWindow = $(window); - var elements = []; - var elementsInView = []; - var isSpying = false; - var ticks = 0; - var unique_id = 1; - var offset = { - top : 0, - right : 0, - bottom : 0, - left : 0, - } - - /** - * Find elements that are within the boundary - * @param {number} top - * @param {number} right - * @param {number} bottom - * @param {number} left - * @return {jQuery} A collection of elements - */ - function findElements(top, right, bottom, left) { - var hits = $(); - $.each(elements, function(i, element) { - if (element.height() > 0) { - var elTop = element.offset().top, - elLeft = element.offset().left, - elRight = elLeft + element.width(), - elBottom = elTop + element.height(); - - var isIntersect = !(elLeft > right || - elRight < left || - elTop > bottom || - elBottom < top); - - if (isIntersect) { - hits.push(element); - } - } - }); - - return hits; - } - - - /** - * Called when the user scrolls the window - */ - function onScroll() { - // unique tick id - ++ticks; - - // viewport rectangle - var top = jWindow.scrollTop(), - left = jWindow.scrollLeft(), - right = left + jWindow.width(), - bottom = top + jWindow.height(); - - // determine which elements are in view -// + 60 accounts for fixed nav - var intersections = findElements(top+offset.top + 200, right+offset.right, bottom+offset.bottom, left+offset.left); - $.each(intersections, function(i, element) { - - var lastTick = element.data('scrollSpy:ticks'); - if (typeof lastTick != 'number') { - // entered into view - element.triggerHandler('scrollSpy:enter'); - } - - // update tick id - element.data('scrollSpy:ticks', ticks); - }); - - // determine which elements are no longer in view - $.each(elementsInView, function(i, element) { - var lastTick = element.data('scrollSpy:ticks'); - if (typeof lastTick == 'number' && lastTick !== ticks) { - // exited from view - element.triggerHandler('scrollSpy:exit'); - element.data('scrollSpy:ticks', null); - } - }); - - // remember elements in view for next tick - elementsInView = intersections; - } - - /** - * Called when window is resized - */ - function onWinSize() { - jWindow.trigger('scrollSpy:winSize'); - } - - /** - * Get time in ms - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @type {function} - * @return {number} - */ - var getTime = (Date.now || function () { - return new Date().getTime(); - }); - - /** - * Returns a function, that, when invoked, will only be triggered at most once - * during a given window of time. Normally, the throttled function will run - * as much as it can, without ever going more than once per `wait` duration; - * but if you'd like to disable the execution on the leading edge, pass - * `{leading: false}`. To disable execution on the trailing edge, ditto. - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @param {function} func - * @param {number} wait - * @param {Object=} options - * @returns {Function} - */ - function throttle(func, wait, options) { - var context, args, result; - var timeout = null; - var previous = 0; - options || (options = {}); - var later = function () { - previous = options.leading === false ? 0 : getTime(); - timeout = null; - result = func.apply(context, args); - context = args = null; - }; - return function () { - var now = getTime(); - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0) { - clearTimeout(timeout); - timeout = null; - previous = now; - result = func.apply(context, args); - context = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - return result; - }; - }; - - /** - * Enables ScrollSpy using a selector - * @param {jQuery|string} selector The elements collection, or a selector - * @param {Object=} options Optional. - throttle : number -> scrollspy throttling. Default: 100 ms - offsetTop : number -> offset from top. Default: 0 - offsetRight : number -> offset from right. Default: 0 - offsetBottom : number -> offset from bottom. Default: 0 - offsetLeft : number -> offset from left. Default: 0 - * @returns {jQuery} - */ - $.scrollSpy = function(selector, options) { - var defaults = { - throttle: 100, - scrollOffset: 200 // offset - 200 allows elements near bottom of page to scroll - }; - options = $.extend(defaults, options); - - var visible = []; - selector = $(selector); - selector.each(function(i, element) { - elements.push($(element)); - $(element).data("scrollSpy:id", i); - // Smooth scroll to section - $('a[href="#' + $(element).attr('id') + '"]').click(function(e) { - e.preventDefault(); - var offset = $(this.hash).offset().top + 1; - $('html, body').animate({ scrollTop: offset - options.scrollOffset }, {duration: 400, queue: false, easing: 'easeOutCubic'}); - }); - }); - - offset.top = options.offsetTop || 0; - offset.right = options.offsetRight || 0; - offset.bottom = options.offsetBottom || 0; - offset.left = options.offsetLeft || 0; - - var throttledScroll = throttle(onScroll, options.throttle || 100); - var readyScroll = function(){ - $(document).ready(throttledScroll); - }; - - if (!isSpying) { - jWindow.on('scroll', readyScroll); - jWindow.on('resize', readyScroll); - isSpying = true; - } - - // perform a scan once, after current execution context, and after dom is ready - setTimeout(readyScroll, 0); - - - selector.on('scrollSpy:enter', function() { - visible = $.grep(visible, function(value) { - return value.height() != 0; - }); - - var $this = $(this); - - if (visible[0]) { - $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active'); - if ($this.data('scrollSpy:id') < visible[0].data('scrollSpy:id')) { - visible.unshift($(this)); - } - else { - visible.push($(this)); - } - } - else { - visible.push($(this)); - } - - - $('a[href="#' + visible[0].attr('id') + '"]').addClass('active'); - }); - selector.on('scrollSpy:exit', function() { - visible = $.grep(visible, function(value) { - return value.height() != 0; - }); - - if (visible[0]) { - $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active'); - var $this = $(this); - visible = $.grep(visible, function(value) { - return value.attr('id') != $this.attr('id'); - }); - if (visible[0]) { // Check if empty - $('a[href="#' + visible[0].attr('id') + '"]').addClass('active'); - } - } - }); - - return selector; - }; - - /** - * Listen for window resize events - * @param {Object=} options Optional. Set { throttle: number } to change throttling. Default: 100 ms - * @returns {jQuery} $(window) - */ - $.winSizeSpy = function(options) { - $.winSizeSpy = function() { return jWindow; }; // lock from multiple calls - options = options || { - throttle: 100 - }; - return jWindow.on('resize', throttle(onWinSize, options.throttle || 100)); - }; - - /** - * Enables ScrollSpy on a collection of elements - * e.g. $('.scrollSpy').scrollSpy() - * @param {Object=} options Optional. - throttle : number -> scrollspy throttling. Default: 100 ms - offsetTop : number -> offset from top. Default: 0 - offsetRight : number -> offset from right. Default: 0 - offsetBottom : number -> offset from bottom. Default: 0 - offsetLeft : number -> offset from left. Default: 0 - * @returns {jQuery} - */ - $.fn.scrollSpy = function(options) { - return $.scrollSpy($(this), options); - }; - -})(jQuery); diff --git a/production/bower_components/Materialize/js/sideNav.js b/production/bower_components/Materialize/js/sideNav.js deleted file mode 100644 index 820d3f4..0000000 --- a/production/bower_components/Materialize/js/sideNav.js +++ /dev/null @@ -1,352 +0,0 @@ -(function ($) { - - var methods = { - init : function(options) { - var defaults = { - menuWidth: 300, - edge: 'left', - closeOnClick: false - }; - options = $.extend(defaults, options); - - $(this).each(function(){ - var $this = $(this); - var menu_id = $("#"+ $this.attr('data-activates')); - - // Set to width - if (options.menuWidth != 300) { - menu_id.css('width', options.menuWidth); - } - - // Add Touch Area - var dragTarget = $('
                  '); - $('body').append(dragTarget); - - if (options.edge == 'left') { - menu_id.css('transform', 'translateX(-100%)'); - dragTarget.css({'left': 0}); // Add Touch Area - } - else { - menu_id.addClass('right-aligned') // Change text-alignment to right - .css('transform', 'translateX(100%)'); - dragTarget.css({'right': 0}); // Add Touch Area - } - - // If fixed sidenav, bring menu out - if (menu_id.hasClass('fixed')) { - if (window.innerWidth > 992) { - menu_id.css('transform', 'translateX(0)'); - } - } - - // Window resize to reset on large screens fixed - if (menu_id.hasClass('fixed')) { - $(window).resize( function() { - if (window.innerWidth > 992) { - // Close menu if window is resized bigger than 992 and user has fixed sidenav - if ($('#sidenav-overlay').length !== 0 && menuOut) { - removeMenu(true); - } - else { - // menu_id.removeAttr('style'); - menu_id.css('transform', 'translateX(0%)'); - // menu_id.css('width', options.menuWidth); - } - } - else if (menuOut === false){ - if (options.edge === 'left') { - menu_id.css('transform', 'translateX(-100%)'); - } else { - menu_id.css('transform', 'translateX(100%)'); - } - - } - - }); - } - - // if closeOnClick, then add close event for all a tags in side sideNav - if (options.closeOnClick === true) { - menu_id.on("click.itemclick", "a:not(.collapsible-header)", function(){ - removeMenu(); - }); - } - - function removeMenu(restoreNav) { - panning = false; - menuOut = false; - // Reenable scrolling - $('body').css({ - overflow: '', - width: '' - }); - - $('#sidenav-overlay').velocity({opacity: 0}, {duration: 200, - queue: false, easing: 'easeOutQuad', - complete: function() { - $(this).remove(); - } }); - if (options.edge === 'left') { - // Reset phantom div - dragTarget.css({width: '', right: '', left: '0'}); - menu_id.velocity( - {'translateX': '-100%'}, - { duration: 200, - queue: false, - easing: 'easeOutCubic', - complete: function() { - if (restoreNav === true) { - // Restore Fixed sidenav - menu_id.removeAttr('style'); - menu_id.css('width', options.menuWidth); - } - } - - }); - } - else { - // Reset phantom div - dragTarget.css({width: '', right: '0', left: ''}); - menu_id.velocity( - {'translateX': '100%'}, - { duration: 200, - queue: false, - easing: 'easeOutCubic', - complete: function() { - if (restoreNav === true) { - // Restore Fixed sidenav - menu_id.removeAttr('style'); - menu_id.css('width', options.menuWidth); - } - } - }); - } - } - - - - // Touch Event - var panning = false; - var menuOut = false; - - dragTarget.on('click', function(){ - if (menuOut) { - removeMenu(); - } - }); - - dragTarget.hammer({ - prevent_default: false - }).bind('pan', function(e) { - - if (e.gesture.pointerType == "touch") { - - var direction = e.gesture.direction; - var x = e.gesture.center.x; - var y = e.gesture.center.y; - var velocityX = e.gesture.velocityX; - - // Disable Scrolling - var $body = $('body'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - // If overlay does not exist, create one and if it is clicked, close menu - if ($('#sidenav-overlay').length === 0) { - var overlay = $('
                  '); - overlay.css('opacity', 0).click( function(){ - removeMenu(); - }); - $('body').append(overlay); - } - - // Keep within boundaries - if (options.edge === 'left') { - if (x > options.menuWidth) { x = options.menuWidth; } - else if (x < 0) { x = 0; } - } - - if (options.edge === 'left') { - // Left Direction - if (x < (options.menuWidth / 2)) { menuOut = false; } - // Right Direction - else if (x >= (options.menuWidth / 2)) { menuOut = true; } - menu_id.css('transform', 'translateX(' + (x - options.menuWidth) + 'px)'); - } - else { - // Left Direction - if (x < (window.innerWidth - options.menuWidth / 2)) { - menuOut = true; - } - // Right Direction - else if (x >= (window.innerWidth - options.menuWidth / 2)) { - menuOut = false; - } - var rightPos = (x - options.menuWidth / 2); - if (rightPos < 0) { - rightPos = 0; - } - - menu_id.css('transform', 'translateX(' + rightPos + 'px)'); - } - - - // Percentage overlay - var overlayPerc; - if (options.edge === 'left') { - overlayPerc = x / options.menuWidth; - $('#sidenav-overlay').velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'}); - } - else { - overlayPerc = Math.abs((x - window.innerWidth) / options.menuWidth); - $('#sidenav-overlay').velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'}); - } - } - - }).bind('panend', function(e) { - - if (e.gesture.pointerType == "touch") { - var velocityX = e.gesture.velocityX; - var x = e.gesture.center.x; - var leftPos = x - options.menuWidth; - var rightPos = x - options.menuWidth / 2; - if (leftPos > 0 ) { - leftPos = 0; - } - if (rightPos < 0) { - rightPos = 0; - } - panning = false; - - if (options.edge === 'left') { - // If velocityX <= 0.3 then the user is flinging the menu closed so ignore menuOut - if ((menuOut && velocityX <= 0.3) || velocityX < -0.5) { - // Return menu to open - if (leftPos !== 0) { - menu_id.velocity({'translateX': [0, leftPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $('#sidenav-overlay').velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - dragTarget.css({width: '50%', right: 0, left: ''}); - menuOut = true; - } - else if (!menuOut || velocityX > 0.3) { - // Enable Scrolling - $('body').css({ - overflow: '', - width: '' - }); - // Slide menu closed - menu_id.velocity({'translateX': [-1 * options.menuWidth - 10, leftPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'}); - $('#sidenav-overlay').velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', - complete: function () { - $(this).remove(); - }}); - dragTarget.css({width: '10px', right: '', left: 0}); - } - } - else { - if ((menuOut && velocityX >= -0.3) || velocityX > 0.5) { - // Return menu to open - if (rightPos !== 0) { - menu_id.velocity({'translateX': [0, rightPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $('#sidenav-overlay').velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - dragTarget.css({width: '50%', right: '', left: 0}); - menuOut = true; - } - else if (!menuOut || velocityX < -0.3) { - // Enable Scrolling - $('body').css({ - overflow: '', - width: '' - }); - - // Slide menu closed - menu_id.velocity({'translateX': [options.menuWidth + 10, rightPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'}); - $('#sidenav-overlay').velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', - complete: function () { - $(this).remove(); - }}); - dragTarget.css({width: '10px', right: 0, left: ''}); - } - } - - } - }); - - $this.click(function() { - if (menuOut === true) { - menuOut = false; - panning = false; - removeMenu(); - } - else { - - // Disable Scrolling - var $body = $('body'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - // Push current drag target on top of DOM tree - $('body').append(dragTarget); - - if (options.edge === 'left') { - dragTarget.css({width: '50%', right: 0, left: ''}); - menu_id.velocity({'translateX': [0, -1 * options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - else { - dragTarget.css({width: '50%', right: '', left: 0}); - menu_id.velocity({'translateX': [0, options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - var overlay = $('
                  '); - overlay.css('opacity', 0) - .click(function(){ - menuOut = false; - panning = false; - removeMenu(); - overlay.velocity({opacity: 0}, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $(this).remove(); - } }); - - }); - $('body').append(overlay); - overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function () { - menuOut = true; - panning = false; - } - }); - } - - return false; - }); - }); - - - }, - show : function() { - this.trigger('click'); - }, - hide : function() { - $('#sidenav-overlay').trigger('click'); - } - }; - - - $.fn.sideNav = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.sideNav' ); - } - }; // Plugin end -}( jQuery )); diff --git a/production/bower_components/Materialize/js/slider.js b/production/bower_components/Materialize/js/slider.js deleted file mode 100644 index 6b8f24a..0000000 --- a/production/bower_components/Materialize/js/slider.js +++ /dev/null @@ -1,321 +0,0 @@ -(function ($) { - - var methods = { - - init : function(options) { - var defaults = { - indicators: true, - height: 400, - transition: 500, - interval: 6000 - }; - options = $.extend(defaults, options); - - return this.each(function() { - - // For each slider, we want to keep track of - // which slide is active and its associated content - var $this = $(this); - var $slider = $this.find('ul.slides').first(); - var $slides = $slider.find('> li'); - var $active_index = $slider.find('.active').index(); - var $active, $indicators, $interval; - if ($active_index != -1) { $active = $slides.eq($active_index); } - - // Transitions the caption depending on alignment - function captionTransition(caption, duration) { - if (caption.hasClass("center-align")) { - caption.velocity({opacity: 0, translateY: -100}, {duration: duration, queue: false}); - } - else if (caption.hasClass("right-align")) { - caption.velocity({opacity: 0, translateX: 100}, {duration: duration, queue: false}); - } - else if (caption.hasClass("left-align")) { - caption.velocity({opacity: 0, translateX: -100}, {duration: duration, queue: false}); - } - } - - // This function will transition the slide to any index of the next slide - function moveToSlide(index) { - // Wrap around indices. - if (index >= $slides.length) index = 0; - else if (index < 0) index = $slides.length -1; - - $active_index = $slider.find('.active').index(); - - // Only do if index changes - if ($active_index != index) { - $active = $slides.eq($active_index); - $caption = $active.find('.caption'); - - $active.removeClass('active'); - $active.velocity({opacity: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad', - complete: function() { - $slides.not('.active').velocity({opacity: 0, translateX: 0, translateY: 0}, {duration: 0, queue: false}); - } }); - captionTransition($caption, options.transition); - - - // Update indicators - if (options.indicators) { - $indicators.eq($active_index).removeClass('active'); - } - - $slides.eq(index).velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - $slides.eq(index).find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, delay: options.transition, queue: false, easing: 'easeOutQuad'}); - $slides.eq(index).addClass('active'); - - - // Update indicators - if (options.indicators) { - $indicators.eq(index).addClass('active'); - } - } - } - - // Set height of slider - // If fullscreen, do nothing - if (!$this.hasClass('fullscreen')) { - if (options.indicators) { - // Add height if indicators are present - $this.height(options.height + 40); - } - else { - $this.height(options.height); - } - $slider.height(options.height); - } - - - // Set initial positions of captions - $slides.find('.caption').each(function () { - captionTransition($(this), 0); - }); - - // Move img src into background-image - $slides.find('img').each(function () { - var placeholderBase64 = 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; - if ($(this).attr('src') !== placeholderBase64) { - $(this).css('background-image', 'url(' + $(this).attr('src') + ')' ); - $(this).attr('src', placeholderBase64); - } - }); - - // dynamically add indicators - if (options.indicators) { - $indicators = $('
                    '); - $slides.each(function( index ) { - var $indicator = $('
                  • '); - - // Handle clicks on indicators - $indicator.click(function () { - var $parent = $slider.parent(); - var curr_index = $parent.find($(this)).index(); - moveToSlide(curr_index); - - // reset interval - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - }); - $indicators.append($indicator); - }); - $this.append($indicators); - $indicators = $this.find('ul.indicators').find('li.indicator-item'); - } - - if ($active) { - $active.show(); - } - else { - $slides.first().addClass('active').velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - - $active_index = 0; - $active = $slides.eq($active_index); - - // Update indicators - if (options.indicators) { - $indicators.eq($active_index).addClass('active'); - } - } - - // Adjust height to current slide - $active.find('img').each(function() { - $active.find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - }); - - // auto scroll - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - moveToSlide($active_index + 1); - - }, options.transition + options.interval - ); - - - // HammerJS, Swipe navigation - - // Touch Event - var panning = false; - var swipeLeft = false; - var swipeRight = false; - - $this.hammer({ - prevent_default: false - }).bind('pan', function(e) { - if (e.gesture.pointerType === "touch") { - - // reset interval - clearInterval($interval); - - var direction = e.gesture.direction; - var x = e.gesture.deltaX; - var velocityX = e.gesture.velocityX; - - $curr_slide = $slider.find('.active'); - $curr_slide.velocity({ translateX: x - }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - // Swipe Left - if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.65)) { - swipeRight = true; - } - // Swipe Right - else if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.65)) { - swipeLeft = true; - } - - // Make Slide Behind active slide visible - var next_slide; - if (swipeLeft) { - next_slide = $curr_slide.next(); - if (next_slide.length === 0) { - next_slide = $slides.first(); - } - next_slide.velocity({ opacity: 1 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - if (swipeRight) { - next_slide = $curr_slide.prev(); - if (next_slide.length === 0) { - next_slide = $slides.last(); - } - next_slide.velocity({ opacity: 1 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - - } - - }).bind('panend', function(e) { - if (e.gesture.pointerType === "touch") { - - $curr_slide = $slider.find('.active'); - panning = false; - curr_index = $slider.find('.active').index(); - - if (!swipeRight && !swipeLeft || $slides.length <=1) { - // Return to original spot - $curr_slide.velocity({ translateX: 0 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - else if (swipeLeft) { - moveToSlide(curr_index + 1); - $curr_slide.velocity({translateX: -1 * $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); - } }); - } - else if (swipeRight) { - moveToSlide(curr_index - 1); - $curr_slide.velocity({translateX: $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); - } }); - } - swipeLeft = false; - swipeRight = false; - - // Restart interval - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - } - }); - - $this.on('sliderPause', function() { - clearInterval($interval); - }); - - $this.on('sliderStart', function() { - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - }); - - $this.on('sliderNext', function() { - $active_index = $slider.find('.active').index(); - moveToSlide($active_index + 1); - }); - - $this.on('sliderPrev', function() { - $active_index = $slider.find('.active').index(); - moveToSlide($active_index - 1); - }); - - }); - - - - }, - pause : function() { - $(this).trigger('sliderPause'); - }, - start : function() { - $(this).trigger('sliderStart'); - }, - next : function() { - $(this).trigger('sliderNext'); - }, - prev : function() { - $(this).trigger('sliderPrev'); - } - }; - - - $.fn.slider = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' ); - } - }; // Plugin end -}( jQuery )); diff --git a/production/bower_components/Materialize/js/tabs.js b/production/bower_components/Materialize/js/tabs.js deleted file mode 100644 index f26d947..0000000 --- a/production/bower_components/Materialize/js/tabs.js +++ /dev/null @@ -1,148 +0,0 @@ -(function ($) { - - var methods = { - init : function(options) { - var defaults = { - onShow: null - }; - options = $.extend(defaults, options); - - return this.each(function() { - - // For each set of tabs, we want to keep track of - // which tab is active and its associated content - var $this = $(this), - window_width = $(window).width(); - - $this.width('100%'); - var $active, $content, $links = $this.find('li.tab a'), - $tabs_width = $this.width(), - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length, - $index = 0; - - // If the location.hash matches one of the links, use that as the active tab. - $active = $($links.filter('[href="'+location.hash+'"]')); - - // If no match is found, use the first link or any with class 'active' as the initial active tab. - if ($active.length === 0) { - $active = $(this).find('li.tab a.active').first(); - } - if ($active.length === 0) { - $active = $(this).find('li.tab a').first(); - } - - $active.addClass('active'); - $index = $links.index($active); - if ($index < 0) { - $index = 0; - } - - if ($active[0] !== undefined) { - $content = $($active[0].hash); - } - - // append indicator then set indicator width to tab width - $this.append('
                    '); - var $indicator = $this.find('.indicator'); - if ($this.is(":visible")) { - $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)}); - $indicator.css({"left": $index * $tab_width}); - } - $(window).resize(function () { - $tabs_width = $this.width(); - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length; - if ($index < 0) { - $index = 0; - } - if ($tab_width !== 0 && $tabs_width !== 0) { - $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)}); - $indicator.css({"left": $index * $tab_width}); - } - }); - - // Hide the remaining content - $links.not($active).each(function () { - $(this.hash).hide(); - }); - - - // Bind the click event handler - $this.on('click', 'a', function(e) { - if ($(this).parent().hasClass('disabled')) { - e.preventDefault(); - return; - } - - // Act as regular link if target attribute is specified. - if (!!$(this).attr("target")) { - return; - } - - $tabs_width = $this.width(); - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length; - - // Make the old tab inactive. - $active.removeClass('active'); - if ($content !== undefined) { - $content.hide(); - } - - // Update the variables with the new link and content - $active = $(this); - $content = $(this.hash); - $links = $this.find('li.tab a'); - - // Make the tab active. - $active.addClass('active'); - var $prev_index = $index; - $index = $links.index($(this)); - if ($index < 0) { - $index = 0; - } - // Change url to current tab - // window.location.hash = $active.attr('href'); - - if ($content !== undefined) { - $content.show(); - if (typeof(options.onShow) === "function") { - options.onShow.call(this, $content); - } - } - - // Update indicator - if (($index - $prev_index) >= 0) { - $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, { duration: 300, queue: false, easing: 'easeOutQuad'}); - $indicator.velocity({"left": $index * $tab_width}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90}); - - } - else { - $indicator.velocity({"left": $index * $tab_width}, { duration: 300, queue: false, easing: 'easeOutQuad'}); - $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90}); - } - - // Prevent the anchor's default click action - e.preventDefault(); - }); - }); - - }, - select_tab : function( id ) { - this.find('a[href="#' + id + '"]').trigger('click'); - } - }; - - $.fn.tabs = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' ); - } - }; - - $(document).ready(function(){ - $('ul.tabs').tabs(); - }); -}( jQuery )); diff --git a/production/bower_components/Materialize/js/toasts.js b/production/bower_components/Materialize/js/toasts.js deleted file mode 100644 index 6eb70d1..0000000 --- a/production/bower_components/Materialize/js/toasts.js +++ /dev/null @@ -1,136 +0,0 @@ -Materialize.toast = function (message, displayLength, className, completeCallback) { - className = className || ""; - - var container = document.getElementById('toast-container'); - - // Create toast container if it does not exist - if (container === null) { - // create notification container - container = document.createElement('div'); - container.id = 'toast-container'; - document.body.appendChild(container); - } - - // Select and append toast - var newToast = createToast(message); - - // only append toast if message is not undefined - if(message){ - container.appendChild(newToast); - } - - newToast.style.top = '35px'; - newToast.style.opacity = 0; - - // Animate toast in - Vel(newToast, { "top" : "0px", opacity: 1 }, {duration: 300, - easing: 'easeOutCubic', - queue: false}); - - // Allows timer to be pause while being panned - var timeLeft = displayLength; - var counterInterval = setInterval (function(){ - - - if (newToast.parentNode === null) - window.clearInterval(counterInterval); - - // If toast is not being dragged, decrease its time remaining - if (!newToast.classList.contains('panning')) { - timeLeft -= 20; - } - - if (timeLeft <= 0) { - // Animate toast out - Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375, - easing: 'easeOutExpo', - queue: false, - complete: function(){ - // Call the optional callback - if(typeof(completeCallback) === "function") - completeCallback(); - // Remove toast after it times out - this[0].parentNode.removeChild(this[0]); - } - }); - window.clearInterval(counterInterval); - } - }, 20); - - - - function createToast(html) { - - // Create toast - var toast = document.createElement('div'); - toast.classList.add('toast'); - if (className) { - var classes = className.split(' '); - - for (var i = 0, count = classes.length; i < count; i++) { - toast.classList.add(classes[i]); - } - } - // If type of parameter is HTML Element - if ( typeof HTMLElement === "object" ? html instanceof HTMLElement : html && typeof html === "object" && html !== null && html.nodeType === 1 && typeof html.nodeName==="string" -) { - toast.appendChild(html); - } - else if (html instanceof jQuery) { - // Check if it is jQuery object - toast.appendChild(html[0]); - } - else { - // Insert as text; - toast.innerHTML = html; - } - // Bind hammer - var hammerHandler = new Hammer(toast, {prevent_default: false}); - hammerHandler.on('pan', function(e) { - var deltaX = e.deltaX; - var activationDistance = 80; - - // Change toast state - if (!toast.classList.contains('panning')){ - toast.classList.add('panning'); - } - - var opacityPercent = 1-Math.abs(deltaX / activationDistance); - if (opacityPercent < 0) - opacityPercent = 0; - - Vel(toast, {left: deltaX, opacity: opacityPercent }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - }); - - hammerHandler.on('panend', function(e) { - var deltaX = e.deltaX; - var activationDistance = 80; - - // If toast dragged past activation point - if (Math.abs(deltaX) > activationDistance) { - Vel(toast, {marginTop: '-40px'}, { duration: 375, - easing: 'easeOutExpo', - queue: false, - complete: function(){ - if(typeof(completeCallback) === "function") { - completeCallback(); - } - toast.parentNode.removeChild(toast); - } - }); - - } else { - toast.classList.remove('panning'); - // Put toast back into original position - Vel(toast, { left: 0, opacity: 1 }, { duration: 300, - easing: 'easeOutExpo', - queue: false - }); - - } - }); - - return toast; - } -}; diff --git a/production/bower_components/Materialize/js/tooltip.js b/production/bower_components/Materialize/js/tooltip.js deleted file mode 100644 index 5e8c779..0000000 --- a/production/bower_components/Materialize/js/tooltip.js +++ /dev/null @@ -1,230 +0,0 @@ -(function ($) { - $.fn.tooltip = function (options) { - var timeout = null, - margin = 5; - - // Defaults - var defaults = { - delay: 350, - tooltip: '', - position: 'bottom', - html: false - }; - - // Remove tooltip from the activator - if (options === "remove") { - this.each(function() { - $('#' + $(this).attr('data-tooltip-id')).remove(); - $(this).off('mouseenter.tooltip mouseleave.tooltip'); - }); - return false; - } - - options = $.extend(defaults, options); - - return this.each(function() { - var tooltipId = Materialize.guid(); - var origin = $(this); - origin.attr('data-tooltip-id', tooltipId); - - // Get attributes. - var allowHtml, - tooltipDelay, - tooltipPosition, - tooltipText, - tooltipEl, - backdrop; - var setAttributes = function() { - allowHtml = origin.attr('data-html') ? origin.attr('data-html') === 'true' : options.html; - tooltipDelay = origin.attr('data-delay'); - tooltipDelay = (tooltipDelay === undefined || tooltipDelay === '') ? - options.delay : tooltipDelay; - tooltipPosition = origin.attr('data-position'); - tooltipPosition = (tooltipPosition === undefined || tooltipPosition === '') ? - options.position : tooltipPosition; - tooltipText = origin.attr('data-tooltip'); - tooltipText = (tooltipText === undefined || tooltipText === '') ? - options.tooltip : tooltipText; - }; - setAttributes(); - - var renderTooltipEl = function() { - var tooltip = $('
                    '); - - // Create Text span - if (allowHtml) { - tooltipText = $('').html(tooltipText); - } else{ - tooltipText = $('').text(tooltipText); - } - - // Create tooltip - tooltip.append(tooltipText) - .appendTo($('body')) - .attr('id', tooltipId); - - // Create backdrop - backdrop = $('
                    '); - backdrop.appendTo(tooltip); - return tooltip; - }; - tooltipEl = renderTooltipEl(); - - // Destroy previously binded events - origin.off('mouseenter.tooltip mouseleave.tooltip'); - // Mouse In - var started = false, timeoutRef; - origin.on({'mouseenter.tooltip': function(e) { - var showTooltip = function() { - setAttributes(); - started = true; - tooltipEl.velocity('stop'); - backdrop.velocity('stop'); - tooltipEl.css({ display: 'block', left: '0px', top: '0px' }); - - // Tooltip positioning - var originWidth = origin.outerWidth(); - var originHeight = origin.outerHeight(); - - var tooltipHeight = tooltipEl.outerHeight(); - var tooltipWidth = tooltipEl.outerWidth(); - var tooltipVerticalMovement = '0px'; - var tooltipHorizontalMovement = '0px'; - var scaleXFactor = 8; - var scaleYFactor = 8; - var targetTop, targetLeft, newCoordinates; - - if (tooltipPosition === "top") { - // Top Position - targetTop = origin.offset().top - tooltipHeight - margin; - targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipVerticalMovement = '-10px'; - backdrop.css({ - bottom: 0, - left: 0, - borderRadius: '14px 14px 0 0', - transformOrigin: '50% 100%', - marginTop: tooltipHeight, - marginLeft: (tooltipWidth/2) - (backdrop.width()/2) - }); - } - // Left Position - else if (tooltipPosition === "left") { - targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2; - targetLeft = origin.offset().left - tooltipWidth - margin; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipHorizontalMovement = '-10px'; - backdrop.css({ - top: '-7px', - right: 0, - width: '14px', - height: '14px', - borderRadius: '14px 0 0 14px', - transformOrigin: '95% 50%', - marginTop: tooltipHeight/2, - marginLeft: tooltipWidth - }); - } - // Right Position - else if (tooltipPosition === "right") { - targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2; - targetLeft = origin.offset().left + originWidth + margin; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipHorizontalMovement = '+10px'; - backdrop.css({ - top: '-7px', - left: 0, - width: '14px', - height: '14px', - borderRadius: '0 14px 14px 0', - transformOrigin: '5% 50%', - marginTop: tooltipHeight/2, - marginLeft: '0px' - }); - } - else { - // Bottom Position - targetTop = origin.offset().top + origin.outerHeight() + margin; - targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - tooltipVerticalMovement = '+10px'; - backdrop.css({ - top: 0, - left: 0, - marginLeft: (tooltipWidth/2) - (backdrop.width()/2) - }); - } - - // Set tooptip css placement - tooltipEl.css({ - top: newCoordinates.y, - left: newCoordinates.x - }); - - // Calculate Scale to fill - scaleXFactor = Math.SQRT2 * tooltipWidth / parseInt(backdrop.css('width')); - scaleYFactor = Math.SQRT2 * tooltipHeight / parseInt(backdrop.css('height')); - - tooltipEl.velocity({ marginTop: tooltipVerticalMovement, marginLeft: tooltipHorizontalMovement}, { duration: 350, queue: false }) - .velocity({opacity: 1}, {duration: 300, delay: 50, queue: false}); - backdrop.css({ display: 'block' }) - .velocity({opacity:1},{duration: 55, delay: 0, queue: false}) - .velocity({scaleX: scaleXFactor, scaleY: scaleYFactor}, {duration: 300, delay: 0, queue: false, easing: 'easeInOutQuad'}); - }; - - timeoutRef = setTimeout(showTooltip, tooltipDelay); // End Interval - - // Mouse Out - }, - 'mouseleave.tooltip': function(){ - // Reset State - started = false; - clearTimeout(timeoutRef); - - // Animate back - setTimeout(function() { - if (started !== true) { - tooltipEl.velocity({ - opacity: 0, marginTop: 0, marginLeft: 0}, { duration: 225, queue: false}); - backdrop.velocity({opacity: 0, scaleX: 1, scaleY: 1}, { - duration:225, - queue: false, - complete: function(){ - backdrop.css('display', 'none'); - tooltipEl.css('display', 'none'); - started = false;} - }); - } - },225); - } - }); - }); - }; - - var repositionWithinScreen = function(x, y, width, height) { - var newX = x; - var newY = y; - - if (newX < 0) { - newX = 4; - } else if (newX + width > window.innerWidth) { - newX -= newX + width - window.innerWidth; - } - - if (newY < 0) { - newY = 4; - } else if (newY + height > window.innerHeight + $(window).scrollTop) { - newY -= newY + height - window.innerHeight; - } - - return {x: newX, y: newY}; - }; - - $(document).ready(function(){ - $('.tooltipped').tooltip(); - }); -}( jQuery )); diff --git a/production/bower_components/Materialize/js/transitions.js b/production/bower_components/Materialize/js/transitions.js deleted file mode 100644 index d4e9159..0000000 --- a/production/bower_components/Materialize/js/transitions.js +++ /dev/null @@ -1,169 +0,0 @@ -(function ($) { - // Image transition function - Materialize.fadeInImage = function(selectorOrEl) { - var element; - if (typeof(selectorOrEl) === 'string') { - element = $(selectorOrEl); - } else if (typeof(selectorOrEl) === 'object') { - element = selectorOrEl; - } else { - return; - } - element.css({opacity: 0}); - $(element).velocity({opacity: 1}, { - duration: 650, - queue: false, - easing: 'easeOutSine' - }); - $(element).velocity({opacity: 1}, { - duration: 1300, - queue: false, - easing: 'swing', - step: function(now, fx) { - fx.start = 100; - var grayscale_setting = now/100; - var brightness_setting = 150 - (100 - now)/1.75; - - if (brightness_setting < 100) { - brightness_setting = 100; - } - if (now >= 0) { - $(this).css({ - "-webkit-filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)", - "filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)" - }); - } - } - }); - }; - - // Horizontal staggered list - Materialize.showStaggeredList = function(selectorOrEl) { - var element; - if (typeof(selectorOrEl) === 'string') { - element = $(selectorOrEl); - } else if (typeof(selectorOrEl) === 'object') { - element = selectorOrEl; - } else { - return; - } - var time = 0; - element.find('li').velocity( - { translateX: "-100px"}, - { duration: 0 }); - - element.find('li').each(function() { - $(this).velocity( - { opacity: "1", translateX: "0"}, - { duration: 800, delay: time, easing: [60, 10] }); - time += 120; - }); - }; - - - $(document).ready(function() { - // Hardcoded .staggered-list scrollFire - // var staggeredListOptions = []; - // $('ul.staggered-list').each(function (i) { - - // var label = 'scrollFire-' + i; - // $(this).addClass(label); - // staggeredListOptions.push( - // {selector: 'ul.staggered-list.' + label, - // offset: 200, - // callback: 'showStaggeredList("ul.staggered-list.' + label + '")'}); - // }); - // scrollFire(staggeredListOptions); - - // HammerJS, Swipe navigation - - // Touch Event - var swipeLeft = false; - var swipeRight = false; - - - // Dismissible Collections - $('.dismissable').each(function() { - $(this).hammer({ - prevent_default: false - }).bind('pan', function(e) { - if (e.gesture.pointerType === "touch") { - var $this = $(this); - var direction = e.gesture.direction; - var x = e.gesture.deltaX; - var velocityX = e.gesture.velocityX; - - $this.velocity({ translateX: x - }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - // Swipe Left - if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.75)) { - swipeLeft = true; - } - - // Swipe Right - if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.75)) { - swipeRight = true; - } - } - }).bind('panend', function(e) { - // Reset if collection is moved back into original position - if (Math.abs(e.gesture.deltaX) < ($(this).innerWidth() / 2)) { - swipeRight = false; - swipeLeft = false; - } - - if (e.gesture.pointerType === "touch") { - var $this = $(this); - if (swipeLeft || swipeRight) { - var fullWidth; - if (swipeLeft) { fullWidth = $this.innerWidth(); } - else { fullWidth = -1 * $this.innerWidth(); } - - $this.velocity({ translateX: fullWidth, - }, {duration: 100, queue: false, easing: 'easeOutQuad', complete: - function() { - $this.css('border', 'none'); - $this.velocity({ height: 0, padding: 0, - }, {duration: 200, queue: false, easing: 'easeOutQuad', complete: - function() { $this.remove(); } - }); - } - }); - } - else { - $this.velocity({ translateX: 0, - }, {duration: 100, queue: false, easing: 'easeOutQuad'}); - } - swipeLeft = false; - swipeRight = false; - } - }); - - }); - - - // time = 0 - // // Vertical Staggered list - // $('ul.staggered-list.vertical li').velocity( - // { translateY: "100px"}, - // { duration: 0 }); - - // $('ul.staggered-list.vertical li').each(function() { - // $(this).velocity( - // { opacity: "1", translateY: "0"}, - // { duration: 800, delay: time, easing: [60, 25] }); - // time += 120; - // }); - - // // Fade in and Scale - // $('.fade-in.scale').velocity( - // { scaleX: .4, scaleY: .4, translateX: -600}, - // { duration: 0}); - // $('.fade-in').each(function() { - // $(this).velocity( - // { opacity: "1", scaleX: 1, scaleY: 1, translateX: 0}, - // { duration: 800, easing: [60, 10] }); - // }); - }); -}( jQuery )); diff --git a/production/bower_components/Materialize/js/velocity.min.js b/production/bower_components/Materialize/js/velocity.min.js deleted file mode 100644 index ea21aad..0000000 --- a/production/bower_components/Materialize/js/velocity.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */ -/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */ -/*! Note that this has been modified by Materialize to confirm that Velocity is not already being imported. */ -jQuery.Velocity?console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity."):(!function(e){function t(e){var t=e.length,a=r.type(e);return"function"===a||r.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===a||0===t||"number"==typeof t&&t>0&&t-1 in e}if(!e.jQuery){var r=function(e,t){return new r.fn.init(e,t)};r.isWindow=function(e){return null!=e&&e==e.window},r.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e},r.isArray=Array.isArray||function(e){return"array"===r.type(e)},r.isPlainObject=function(e){var t;if(!e||"object"!==r.type(e)||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&&!o.call(e,"constructor")&&!o.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}for(t in e);return void 0===t||o.call(e,t)},r.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},r.data=function(e,t,n){if(void 0===n){var o=e[r.expando],i=o&&a[o];if(void 0===t)return i;if(i&&t in i)return i[t]}else if(void 0!==t){var o=e[r.expando]||(e[r.expando]=++r.uuid);return a[o]=a[o]||{},a[o][t]=n,n}},r.removeData=function(e,t){var n=e[r.expando],o=n&&a[n];o&&r.each(t,function(e,t){delete o[t]})},r.extend=function(){var e,t,a,n,o,i,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[l]||{},l++),"object"!=typeof s&&"function"!==r.type(s)&&(s={}),l===u&&(s=this,l--);u>l;l++)if(null!=(o=arguments[l]))for(n in o)e=s[n],a=o[n],s!==a&&(c&&a&&(r.isPlainObject(a)||(t=r.isArray(a)))?(t?(t=!1,i=e&&r.isArray(e)?e:[]):i=e&&r.isPlainObject(e)?e:{},s[n]=r.extend(c,i,a)):void 0!==a&&(s[n]=a));return s},r.queue=function(e,a,n){function o(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){a=(a||"fx")+"queue";var i=r.data(e,a);return n?(!i||r.isArray(n)?i=r.data(e,a,o(n)):i.push(n),i):i||[]}},r.dequeue=function(e,t){r.each(e.nodeType?[e]:e,function(e,a){t=t||"fx";var n=r.queue(a,t),o=n.shift();"inprogress"===o&&(o=n.shift()),o&&("fx"===t&&n.unshift("inprogress"),o.call(a,function(){r.dequeue(a,t)}))})},r.fn=r.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),a=this.offset(),n=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:r(e).offset();return a.top-=parseFloat(t.style.marginTop)||0,a.left-=parseFloat(t.style.marginLeft)||0,e.style&&(n.top+=parseFloat(e.style.borderTopWidth)||0,n.left+=parseFloat(e.style.borderLeftWidth)||0),{top:a.top-n.top,left:a.left-n.left}}};var a={};r.expando="velocity"+(new Date).getTime(),r.uuid=0;for(var n={},o=n.hasOwnProperty,i=n.toString,s="Boolean Number String Function Array Date RegExp Object Error".split(" "),l=0;ln;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return m.isString(e)?b.Easings[e]||(r=!1):r=m.isArray(e)&&1===e.length?s.apply(null,e):m.isArray(e)&&2===e.length?x.apply(null,e.concat([t])):m.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=b.Easings[b.defaults.easing]?b.defaults.easing:v),r}function c(e){if(e){var t=(new Date).getTime(),r=b.State.calls.length;r>1e4&&(b.State.calls=n(b.State.calls));for(var o=0;r>o;o++)if(b.State.calls[o]){var s=b.State.calls[o],l=s[0],u=s[2],d=s[3],g=!!d,y=null;d||(d=b.State.calls[o][3]=t-16);for(var h=Math.min((t-d)/u.duration,1),v=0,x=l.length;x>v;v++){var P=l[v],V=P.element;if(i(V)){var C=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var T=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];f.each(T,function(e,t){S.setPropertyValue(V,"display",t)})}S.setPropertyValue(V,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&S.setPropertyValue(V,"visibility",u.visibility);for(var k in P)if("element"!==k){var A,F=P[k],j=m.isString(F.easing)?b.Easings[F.easing]:F.easing;if(1===h)A=F.endValue;else{var E=F.endValue-F.startValue;if(A=F.startValue+E*j(h,u,E),!g&&A===F.currentValue)continue}if(F.currentValue=A,"tween"===k)y=A;else{if(S.Hooks.registered[k]){var H=S.Hooks.getRoot(k),N=i(V).rootPropertyValueCache[H];N&&(F.rootPropertyValue=N)}var L=S.setPropertyValue(V,k,F.currentValue+(0===parseFloat(A)?"":F.unitType),F.rootPropertyValue,F.scrollData);S.Hooks.registered[k]&&(i(V).rootPropertyValueCache[H]=S.Normalizations.registered[H]?S.Normalizations.registered[H]("extract",null,L[1]):L[1]),"transform"===L[0]&&(C=!0)}}u.mobileHA&&i(V).transformCache.translate3d===a&&(i(V).transformCache.translate3d="(0px, 0px, 0px)",C=!0),C&&S.flushTransformCache(V)}}u.display!==a&&"none"!==u.display&&(b.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(b.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],h,Math.max(0,d+u.duration-t),d,y),1===h&&p(o)}}b.State.isTicking&&w(c)}function p(e,t){if(!b.State.calls[e])return!1;for(var r=b.State.calls[e][0],n=b.State.calls[e][1],o=b.State.calls[e][2],s=b.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&S.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&S.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&(f.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test(f.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var d=!1;f.each(S.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(d=!0,delete i(p).transformCache[t])}),o.mobileHA&&(d=!0,delete i(p).transformCache.translate3d),d&&S.flushTransformCache(p),S.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(g){setTimeout(function(){throw g},1)}s&&o.loop!==!0&&s(n),i(p)&&o.loop===!0&&!t&&(f.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),b(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&f.dequeue(p,o.queue)}b.State.calls[e]=!1;for(var m=0,y=b.State.calls.length;y>m;m++)if(b.State.calls[m]!==!1){l=!0;break}l===!1&&(b.State.isTicking=!1,delete b.State.calls,b.State.calls=[])}var f,d=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),g=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r,a=(new Date).getTime();return r=Math.max(0,16-(a-e)),e=a+r,setTimeout(function(){t(a+r)},r)}}(),m={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},y=!1;if(e.fn&&e.fn.jquery?(f=e,y=!0):f=t.Velocity.Utilities,8>=d&&!y)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=d)return void(jQuery.fn.velocity=jQuery.fn.animate);var h=400,v="swing",b={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:f,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:h,easing:v,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){f.data(e,"velocity",{isSVG:m.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};t.pageYOffset!==a?(b.State.scrollAnchor=t,b.State.scrollPropertyLeft="pageXOffset",b.State.scrollPropertyTop="pageYOffset"):(b.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,b.State.scrollPropertyLeft="scrollLeft",b.State.scrollPropertyTop="scrollTop");var x=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o,i,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,p=1e-4,f=.016;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,l.tension=e,l.friction=t,o=null!==n,o?(c=a(e,t),i=c/n*f):i=f;s=r(s||l,i),u.push(1+s.x),c+=16,Math.abs(s.x)>p&&Math.abs(s.v)>p;);return o?function(e){return u[e*(u.length-1)|0]}:c}}();b.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},f.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){b.Easings[t[0]]=l.apply(null,t[1])});var S=b.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=d)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=d||b.State.isGingerbread||(S.Lists.transformsBase=S.Lists.transformsBase.concat(S.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=d||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=d?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=d?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(d||b.State.isAndroid&&!b.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(b.State.prefixMatches[e])return[b.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),m.isString(b.State.prefixElement.style[n]))return b.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t,r=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return e=e.replace(r,function(e,t,r,a){return t+t+r+r+a+a}),t=a.exec(e),t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&S.setPropertyValue(e,"display","none")}var l=0;if(8>=d)l=f.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===S.getPropertyValue(e,"display")&&(u=!0,S.setPropertyValue(e,"display",S.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(S.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(S.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(S.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(S.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var g;g=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===d&&"filter"===r?g.getPropertyValue(r):g[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var m=s(e,"position");("fixed"===m||"absolute"===m&&/top|left/i.test(r))&&(l=f(e).position()[r]+"px")}return l}var l;if(S.Hooks.registered[r]){var u=r,c=S.Hooks.getRoot(u);n===a&&(n=S.getPropertyValue(e,S.Names.prefixCheck(c)[0])),S.Normalizations.registered[c]&&(n=S.Normalizations.registered[c]("extract",e,n)),l=S.Hooks.extractValue(u,n)}else if(S.Normalizations.registered[r]){var p,g;p=S.Normalizations.registered[r]("name",e),"transform"!==p&&(g=s(e,S.Names.prefixCheck(p)[0]),S.Values.isCSSNullValue(g)&&S.Hooks.templates[r]&&(g=S.Hooks.templates[r][1])),l=S.Normalizations.registered[r]("extract",e,g)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(m){l=0}else l=e.getAttribute(r);else l=s(e,S.Names.prefixCheck(r)[0]);return S.Values.isCSSNullValue(l)&&(l=0),b.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(S.Normalizations.registered[r]&&"transform"===S.Normalizations.registered[r]("name",e))S.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(S.Hooks.registered[r]){var l=r,u=S.Hooks.getRoot(r);n=n||S.getPropertyValue(e,u),a=S.Hooks.injectValue(l,a,n),r=u}if(S.Normalizations.registered[r]&&(a=S.Normalizations.registered[r]("inject",e,a),r=S.Normalizations.registered[r]("name",e)),s=S.Names.prefixCheck(r)[0],8>=d)try{e.style[s]=a}catch(c){b.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;b.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(S.getPropertyValue(e,t))}var r="";if((d||b.State.isAndroid&&!b.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};f.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;f.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===d&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}S.setPropertyValue(e,"transform",r)}};S.Hooks.register(),S.Normalizations.register(),b.hook=function(e,t,r){var n=a;return e=o(e),f.each(e,function(e,o){if(i(o)===a&&b.init(o),r===a)n===a&&(n=b.CSS.getPropertyValue(o,t));else{var s=b.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&b.CSS.flushTransformCache(o),n=s}}),n};var P=function(){function e(){return s?k.promise||null:l}function n(){function e(e){function p(e,t){var r=a,n=a,i=a;return m.isArray(e)?(r=e[0],!m.isArray(e[1])&&/^[\d-]/.test(e[1])||m.isFunction(e[1])||S.RegEx.isHex.test(e[1])?i=e[1]:(m.isString(e[1])&&!S.RegEx.isHex.test(e[1])||m.isArray(e[1]))&&(n=t?e[1]:u(e[1],s.duration),e[2]!==a&&(i=e[2]))):r=e,t||(n=n||s.easing),m.isFunction(r)&&(r=r.call(o,V,w)),m.isFunction(i)&&(i=i.call(o,V,w)),[r||0,n,i]}function d(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=S.Values.getUnitType(e)),[a,r]}function h(){var e={myParent:o.parentNode||r.body,position:S.getPropertyValue(o,"position"),fontSize:S.getPropertyValue(o,"fontSize")},a=e.position===L.lastPosition&&e.myParent===L.lastParent,n=e.fontSize===L.lastFontSize;L.lastParent=e.myParent,L.lastPosition=e.position,L.lastFontSize=e.fontSize;var s=100,l={};if(n&&a)l.emToPx=L.lastEmToPx,l.percentToPxWidth=L.lastPercentToPxWidth,l.percentToPxHeight=L.lastPercentToPxHeight;else{var u=i(o).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");b.init(u),e.myParent.appendChild(u),f.each(["overflow","overflowX","overflowY"],function(e,t){b.CSS.setPropertyValue(u,t,"hidden")}),b.CSS.setPropertyValue(u,"position",e.position),b.CSS.setPropertyValue(u,"fontSize",e.fontSize),b.CSS.setPropertyValue(u,"boxSizing","content-box"),f.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){b.CSS.setPropertyValue(u,t,s+"%")}),b.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=L.lastPercentToPxWidth=(parseFloat(S.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=L.lastPercentToPxHeight=(parseFloat(S.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=L.lastEmToPx=(parseFloat(S.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===L.remToPx&&(L.remToPx=parseFloat(S.getPropertyValue(r.body,"fontSize"))||16),null===L.vwToPx&&(L.vwToPx=parseFloat(t.innerWidth)/100,L.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=L.remToPx,l.vwToPx=L.vwToPx,l.vhToPx=L.vhToPx,b.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),o),l}if(s.begin&&0===V)try{s.begin.call(g,g)}catch(x){setTimeout(function(){throw x},1)}if("scroll"===A){var P,C,T,F=/^x$/i.test(s.axis)?"Left":"Top",j=parseFloat(s.offset)||0;s.container?m.isWrapped(s.container)||m.isNode(s.container)?(s.container=s.container[0]||s.container,P=s.container["scroll"+F],T=P+f(o).position()[F.toLowerCase()]+j):s.container=null:(P=b.State.scrollAnchor[b.State["scrollProperty"+F]],C=b.State.scrollAnchor[b.State["scrollProperty"+("Left"===F?"Top":"Left")]],T=f(o).offset()[F.toLowerCase()]+j),l={scroll:{rootPropertyValue:!1,startValue:P,currentValue:P,endValue:T,unitType:"",easing:s.easing,scrollData:{container:s.container,direction:F,alternateValue:C}},element:o},b.debug&&console.log("tweensContainer (scroll): ",l.scroll,o)}else if("reverse"===A){if(!i(o).tweensContainer)return void f.dequeue(o,s.queue);"none"===i(o).opts.display&&(i(o).opts.display="auto"),"hidden"===i(o).opts.visibility&&(i(o).opts.visibility="visible"),i(o).opts.loop=!1,i(o).opts.begin=null,i(o).opts.complete=null,v.easing||delete s.easing,v.duration||delete s.duration,s=f.extend({},i(o).opts,s);var E=f.extend(!0,{},i(o).tweensContainer);for(var H in E)if("element"!==H){var N=E[H].startValue;E[H].startValue=E[H].currentValue=E[H].endValue,E[H].endValue=N,m.isEmptyObject(v)||(E[H].easing=s.easing),b.debug&&console.log("reverse tweensContainer ("+H+"): "+JSON.stringify(E[H]),o)}l=E}else if("start"===A){var E;i(o).tweensContainer&&i(o).isAnimating===!0&&(E=i(o).tweensContainer),f.each(y,function(e,t){if(RegExp("^"+S.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(S.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=S.Values.hexToRgb(n),u=i?S.Values.hexToRgb(i):a,c=0;cO;O++){var q={delay:j.delay,progress:j.progress};O===z-1&&(q.display=j.display,q.visibility=j.visibility,q.complete=j.complete),P(g,"reverse",q)}return e()}};b=f.extend(P,b),b.animate=P;var w=t.requestAnimationFrame||g;return b.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(w=function(e){return setTimeout(function(){e(!0)},16)},c()):w=t.requestAnimationFrame||g}),e.Velocity=b,e!==t&&(e.fn.velocity=P,e.fn.velocity.defaults=b.defaults),f.each(["Down","Up"],function(e,t){b.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},d={};l.display===a&&(l.display="Down"===t?"inline"===b.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){d[r]=e.style[r];var a=b.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}d.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in d)e.style[t]=d[t];c&&c.call(i,i),s&&s.resolver(i)},b(e,p,l)}}),f.each(["In","Out"],function(e,t){b.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),b(this,u,l)}}),b}(window.jQuery||window.Zepto||window,window,document)})); diff --git a/production/bower_components/Materialize/js/waves.js b/production/bower_components/Materialize/js/waves.js deleted file mode 100644 index c76d463..0000000 --- a/production/bower_components/Materialize/js/waves.js +++ /dev/null @@ -1,338 +0,0 @@ -/*! - * Waves v0.6.4 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ - -;(function(window) { - 'use strict'; - - var Waves = Waves || {}; - var $$ = document.querySelectorAll.bind(document); - - // Find exact position of element - function isWindow(obj) { - return obj !== null && obj === obj.window; - } - - function getWindow(elem) { - return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView; - } - - function offset(elem) { - var docElem, win, - box = {top: 0, left: 0}, - doc = elem && elem.ownerDocument; - - docElem = doc.documentElement; - - if (typeof elem.getBoundingClientRect !== typeof undefined) { - box = elem.getBoundingClientRect(); - } - win = getWindow(doc); - return { - top: box.top + win.pageYOffset - docElem.clientTop, - left: box.left + win.pageXOffset - docElem.clientLeft - }; - } - - function convertStyle(obj) { - var style = ''; - - for (var a in obj) { - if (obj.hasOwnProperty(a)) { - style += (a + ':' + obj[a] + ';'); - } - } - - return style; - } - - var Effect = { - - // Effect delay - duration: 750, - - show: function(e, element) { - - // Disable right click - if (e.button === 2) { - return false; - } - - var el = element || this; - - // Create ripple - var ripple = document.createElement('div'); - ripple.className = 'waves-ripple'; - el.appendChild(ripple); - - // Get click coordinate and element witdh - var pos = offset(el); - var relativeY = (e.pageY - pos.top); - var relativeX = (e.pageX - pos.left); - var scale = 'scale('+((el.clientWidth / 100) * 10)+')'; - - // Support for touch devices - if ('touches' in e) { - relativeY = (e.touches[0].pageY - pos.top); - relativeX = (e.touches[0].pageX - pos.left); - } - - // Attach data to element - ripple.setAttribute('data-hold', Date.now()); - ripple.setAttribute('data-scale', scale); - ripple.setAttribute('data-x', relativeX); - ripple.setAttribute('data-y', relativeY); - - // Set ripple position - var rippleStyle = { - 'top': relativeY+'px', - 'left': relativeX+'px' - }; - - ripple.className = ripple.className + ' waves-notransition'; - ripple.setAttribute('style', convertStyle(rippleStyle)); - ripple.className = ripple.className.replace('waves-notransition', ''); - - // Scale the ripple - rippleStyle['-webkit-transform'] = scale; - rippleStyle['-moz-transform'] = scale; - rippleStyle['-ms-transform'] = scale; - rippleStyle['-o-transform'] = scale; - rippleStyle.transform = scale; - rippleStyle.opacity = '1'; - - rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['-moz-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['-o-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['transition-duration'] = Effect.duration + 'ms'; - - rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - - ripple.setAttribute('style', convertStyle(rippleStyle)); - }, - - hide: function(e) { - TouchHandler.touchup(e); - - var el = this; - var width = el.clientWidth * 1.4; - - // Get first ripple - var ripple = null; - var ripples = el.getElementsByClassName('waves-ripple'); - if (ripples.length > 0) { - ripple = ripples[ripples.length - 1]; - } else { - return false; - } - - var relativeX = ripple.getAttribute('data-x'); - var relativeY = ripple.getAttribute('data-y'); - var scale = ripple.getAttribute('data-scale'); - - // Get delay beetween mousedown and mouse leave - var diff = Date.now() - Number(ripple.getAttribute('data-hold')); - var delay = 350 - diff; - - if (delay < 0) { - delay = 0; - } - - // Fade out ripple after delay - setTimeout(function() { - var style = { - 'top': relativeY+'px', - 'left': relativeX+'px', - 'opacity': '0', - - // Duration - '-webkit-transition-duration': Effect.duration + 'ms', - '-moz-transition-duration': Effect.duration + 'ms', - '-o-transition-duration': Effect.duration + 'ms', - 'transition-duration': Effect.duration + 'ms', - '-webkit-transform': scale, - '-moz-transform': scale, - '-ms-transform': scale, - '-o-transform': scale, - 'transform': scale, - }; - - ripple.setAttribute('style', convertStyle(style)); - - setTimeout(function() { - try { - el.removeChild(ripple); - } catch(e) { - return false; - } - }, Effect.duration); - }, delay); - }, - - // Little hack to make can perform waves effect - wrapInput: function(elements) { - for (var a = 0; a < elements.length; a++) { - var el = elements[a]; - - if (el.tagName.toLowerCase() === 'input') { - var parent = el.parentNode; - - // If input already have parent just pass through - if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) { - continue; - } - - // Put element class and style to the specified parent - var wrapper = document.createElement('i'); - wrapper.className = el.className + ' waves-input-wrapper'; - - var elementStyle = el.getAttribute('style'); - - if (!elementStyle) { - elementStyle = ''; - } - - wrapper.setAttribute('style', elementStyle); - - el.className = 'waves-button-input'; - el.removeAttribute('style'); - - // Put element as child - parent.replaceChild(wrapper, el); - wrapper.appendChild(el); - } - } - } - }; - - - /** - * Disable mousedown event for 500ms during and after touch - */ - var TouchHandler = { - /* uses an integer rather than bool so there's no issues with - * needing to clear timeouts if another touch event occurred - * within the 500ms. Cannot mouseup between touchstart and - * touchend, nor in the 500ms after touchend. */ - touches: 0, - allowEvent: function(e) { - var allow = true; - - if (e.type === 'touchstart') { - TouchHandler.touches += 1; //push - } else if (e.type === 'touchend' || e.type === 'touchcancel') { - setTimeout(function() { - if (TouchHandler.touches > 0) { - TouchHandler.touches -= 1; //pop after 500ms - } - }, 500); - } else if (e.type === 'mousedown' && TouchHandler.touches > 0) { - allow = false; - } - - return allow; - }, - touchup: function(e) { - TouchHandler.allowEvent(e); - } - }; - - - /** - * Delegated click handler for .waves-effect element. - * returns null when .waves-effect element not in "click tree" - */ - function getWavesEffectElement(e) { - if (TouchHandler.allowEvent(e) === false) { - return null; - } - - var element = null; - var target = e.target || e.srcElement; - - while (target.parentElement !== null) { - if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) { - element = target; - break; - } else if (target.classList.contains('waves-effect')) { - element = target; - break; - } - target = target.parentElement; - } - - return element; - } - - /** - * Bubble the click and show effect if .waves-effect elem was found - */ - function showEffect(e) { - var element = getWavesEffectElement(e); - - if (element !== null) { - Effect.show(e, element); - - if ('ontouchstart' in window) { - element.addEventListener('touchend', Effect.hide, false); - element.addEventListener('touchcancel', Effect.hide, false); - } - - element.addEventListener('mouseup', Effect.hide, false); - element.addEventListener('mouseleave', Effect.hide, false); - } - } - - Waves.displayEffect = function(options) { - options = options || {}; - - if ('duration' in options) { - Effect.duration = options.duration; - } - - //Wrap input inside tag - Effect.wrapInput($$('.waves-effect')); - - if ('ontouchstart' in window) { - document.body.addEventListener('touchstart', showEffect, false); - } - - document.body.addEventListener('mousedown', showEffect, false); - }; - - /** - * Attach Waves to an input element (or any element which doesn't - * bubble mouseup/mousedown events). - * Intended to be used with dynamically loaded forms/inputs, or - * where the user doesn't want a delegated click handler. - */ - Waves.attach = function(element) { - //FUTURE: automatically add waves classes and allow users - // to specify them with an options param? Eg. light/classic/button - if (element.tagName.toLowerCase() === 'input') { - Effect.wrapInput([element]); - element = element.parentElement; - } - - if ('ontouchstart' in window) { - element.addEventListener('touchstart', showEffect, false); - } - - element.addEventListener('mousedown', showEffect, false); - }; - - window.Waves = Waves; - - document.addEventListener('DOMContentLoaded', function() { - Waves.displayEffect(); - }, false); - -})(window); diff --git a/production/bower_components/Materialize/package.js b/production/bower_components/Materialize/package.js deleted file mode 100644 index ab41f95..0000000 --- a/production/bower_components/Materialize/package.js +++ /dev/null @@ -1,97 +0,0 @@ -// package metadata file for Meteor.js - -Package.describe({ - name: 'materialize:materialize', // http://atmospherejs.com/materialize/materialize - summary: 'Materialize (official): A modern responsive front-end framework based on Material Design', - version: '0.97.7', - git: 'https://github.com/Dogfalo/materialize.git' -}); - - -Package.onUse(function (api) { - api.versionsFrom('METEOR@1.0'); - - api.use('fourseven:scss@3.2.0'); - api.use('jquery', 'client'); - api.imply('jquery', 'client'); - - var assets = [ - 'dist/fonts/roboto/Roboto-Bold.ttf', - 'dist/fonts/roboto/Roboto-Bold.woff', - 'dist/fonts/roboto/Roboto-Bold.woff2', - 'dist/fonts/roboto/Roboto-Light.ttf', - 'dist/fonts/roboto/Roboto-Light.woff', - 'dist/fonts/roboto/Roboto-Light.woff2', - 'dist/fonts/roboto/Roboto-Medium.ttf', - 'dist/fonts/roboto/Roboto-Medium.woff', - 'dist/fonts/roboto/Roboto-Medium.woff2', - 'dist/fonts/roboto/Roboto-Regular.ttf', - 'dist/fonts/roboto/Roboto-Regular.woff', - 'dist/fonts/roboto/Roboto-Regular.woff2', - 'dist/fonts/roboto/Roboto-Thin.ttf', - 'dist/fonts/roboto/Roboto-Thin.woff', - 'dist/fonts/roboto/Roboto-Thin.woff2', - ]; - - addAssets(api, assets); - - api.addFiles([ - 'dist/js/materialize.js' - ], 'client'); - - var scssFiles = [ - 'sass/components/date_picker/_default.date.scss', - 'sass/components/date_picker/_default.scss', - 'sass/components/date_picker/_default.time.scss', - 'sass/components/forms/_checkboxes.scss', - 'sass/components/forms/_file-input.scss', - 'sass/components/forms/_forms.scss', - 'sass/components/forms/_input-fields.scss', - 'sass/components/forms/_radio-buttons.scss', - 'sass/components/forms/_range.scss', - 'sass/components/forms/_select.scss', - 'sass/components/forms/_switches.scss', - 'sass/components/_buttons.scss', - 'sass/components/_cards.scss', - 'sass/components/_carousel.scss', - 'sass/components/_chips.scss', - 'sass/components/_collapsible.scss', - 'sass/components/_color.scss', - 'sass/components/_dropdown.scss', - 'sass/components/_global.scss', - 'sass/components/_grid.scss', - 'sass/components/_icons-material-design.scss', - 'sass/components/_materialbox.scss', - 'sass/components/_mixins.scss', - 'sass/components/_modal.scss', - 'sass/components/_navbar.scss', - 'sass/components/_normalize.scss', - 'sass/components/_prefixer.scss', - 'sass/components/_preloader.scss', - 'sass/components/_roboto.scss', - 'sass/components/_sideNav.scss', - 'sass/components/_slider.scss', - 'sass/components/_table_of_contents.scss', - 'sass/components/_tabs.scss', - 'sass/components/_toast.scss', - 'sass/components/_tooltip.scss', - 'sass/components/_typography.scss', - 'sass/components/_variables.scss', - 'sass/components/_waves.scss', - 'sass/materialize.scss' - ]; - - api.addFiles(scssFiles, 'client'); - - - api.export('Materialize', 'client'); -}); - - -function addAssets(api, assets){ - if(api.addAssets){ - api.addAssets(assets, 'client'); - } else { - api.addFiles(assets, 'client', {isAsset: true}); - } -} diff --git a/production/bower_components/Materialize/sass/components/_buttons.scss b/production/bower_components/Materialize/sass/components/_buttons.scss deleted file mode 100644 index be429bb..0000000 --- a/production/bower_components/Materialize/sass/components/_buttons.scss +++ /dev/null @@ -1,211 +0,0 @@ -// shared styles -.btn, -.btn-flat { - border: $button-border; - border-radius: $button-radius; - display: inline-block; - height: $button-height; - line-height: $button-height; - outline: 0; - padding: $button-padding; - text-transform: uppercase; - vertical-align: middle; - // Gets rid of tap active state - -webkit-tap-highlight-color: transparent; -} - -// Disabled shared style -.btn.disabled, -.btn-floating.disabled, -.btn-large.disabled, -.btn:disabled, -.btn-large:disabled, -.btn-floating:disabled, -.btn[disabled], -.btn-large[disabled], -.btn-floating[disabled] { - background-color: $button-disabled-background !important; - box-shadow: none; - color: $button-disabled-color !important; - cursor: default; - - * { - pointer-events: none; - } - - &:hover { - background-color: $button-disabled-background !important; - color: $button-disabled-color !important; - } -} - -// Shared icon styles -.btn, -.btn-floating, -.btn-large, -.btn-flat { - i { - font-size: $button-font-size; - line-height: inherit; - } -} - -// Raised Button -.btn { - text-decoration: none; - color: $button-raised-color; - background-color: $button-raised-background; - text-align: center; - letter-spacing: .5px; - @extend .z-depth-1; - transition: .2s ease-out; - cursor: pointer; - - &:hover { - background-color: $button-raised-background-hover; - @extend .z-depth-1-half; - } -} - -// Floating button -.btn-floating { - display: inline-block; - color: $button-floating-color; - position: relative; - overflow: hidden; - z-index: 1; - width: $button-floating-size; - height: $button-floating-size; - line-height: $button-floating-size; - padding: 0; - background-color: $button-floating-background; - border-radius: $button-floating-radius; - @extend .z-depth-1; - transition: .3s; - cursor: pointer; - vertical-align: middle; - - i { - width: inherit; - display: inline-block; - text-align: center; - color: $button-floating-color; - font-size: $button-large-icon-font-size; - line-height: $button-floating-size; - } - - &:hover { - background-color: $button-floating-background-hover; - @extend .z-depth-1-half; - } - - &:before { - border-radius: 0; - } - - &.btn-large { - width: $button-floating-large-size; - height: $button-floating-large-size; - i { - line-height: $button-floating-large-size; - } - } -} - -// button fix -button.btn-floating { - border: $button-border; -} - -// Fixed Action Button -.fixed-action-btn { - &.active { - ul { - visibility: visible; - } - } - - &.horizontal { - padding: 0 0 0 15px; - - ul { - text-align: right; - right: 64px; - top: 50%; - transform: translateY(-50%); - height: 100%; - left: auto; - width: 500px; /*width 100% only goes to width of button container */ - - li { - display: inline-block; - margin: 15px 15px 0 0; - } - } - } - - position: fixed; - right: 23px; - bottom: 23px; - padding-top: 15px; - margin-bottom: 0; - z-index: 998; - - ul { - left: 0; - right: 0; - text-align: center; - position: absolute; - bottom: 64px; - margin: 0; - visibility: hidden; - - li { - margin-bottom: 15px; - } - - a.btn-floating { - opacity: 0; - } - } -} - -// Flat button -.btn-flat { - box-shadow: none; - background-color: transparent; - color: $button-flat-color; - cursor: pointer; - transition: background-color .2s; - - &:focus, - &:active { - background-color: transparent; - } - - &:hover { - background-color: rgba(0,0,0,.1); - box-shadow: none; - } - - &.disabled { - color: $button-flat-disabled-color; - cursor: default; - } -} - -// Large button -.btn-large { - @extend .btn; - height: $button-large-height; - line-height: $button-large-height; - - i { - font-size: $button-large-icon-font-size; - } -} - -// Block button -.btn-block { - display: block; -} diff --git a/production/bower_components/Materialize/sass/components/_cards.scss b/production/bower_components/Materialize/sass/components/_cards.scss deleted file mode 100644 index e137536..0000000 --- a/production/bower_components/Materialize/sass/components/_cards.scss +++ /dev/null @@ -1,185 +0,0 @@ - - -.card-panel { - transition: box-shadow .25s; - padding: $card-padding; - margin: $element-top-margin 0 $element-bottom-margin 0; - border-radius: 2px; - @extend .z-depth-1; - background-color: $card-bg-color; -} - -.card { - position: relative; - margin: $element-top-margin 0 $element-bottom-margin 0; - background-color: $card-bg-color; - transition: box-shadow .25s; - border-radius: 2px; - @extend .z-depth-1; - - - .card-title { - font-size: 24px; - font-weight: 300; - &.activator { - cursor: pointer; - } - } - - // Card Sizes - &.small, &.medium, &.large { - position: relative; - - .card-image { - max-height: 60%; - overflow: hidden; - } - .card-image + .card-content { - max-height: 40%; - } - .card-content { - max-height: 100%; - overflow: hidden; - } - .card-action { - position: absolute; - bottom: 0; - left: 0; - right: 0; - } - } - - &.small { - height: 300px; - } - - &.medium { - height: 400px; - } - - &.large { - height: 500px; - } - - // Horizontal Cards - &.horizontal { - &.small, &.medium, &.large { - .card-image { - height: 100%; - max-height: none; - overflow: visible; - - img { - height: 100%; - } - } - } - - display: flex; - - .card-image { - max-width: 50%; - img { - max-width: 100%; - width: auto; - } - } - - .card-stacked { - display: flex; - flex-direction: column; - flex: 1; - position: relative; - - .card-content { - flex-grow: 1; - } - } - } - - // Sticky Action Section - &.sticky-action { - .card-action { - z-index: 2; - } - - .card-reveal { - z-index: 1; - padding-bottom: 64px; - } - } - - - - - .card-image { - position: relative; - - // Image background for content - img { - display: block; - border-radius: 2px 2px 0 0; - position: relative; - left: 0; - right: 0; - top: 0; - bottom: 0; - width: 100%; - } - - .card-title { - color: $card-bg-color; - position: absolute; - bottom: 0; - left: 0; - padding: $card-padding; - } - - } - - .card-content { - padding: $card-padding; - border-radius: 0 0 2px 2px; - - p { - margin: 0; - color: inherit; - } - .card-title { - line-height: 48px; - } - } - - .card-action { - position: relative; - background-color: inherit; - border-top: 1px solid rgba(160,160,160,.2); - padding: $card-padding; - - a:not(.btn):not(.btn-large):not(.btn-floating) { - color: $card-link-color; - margin-right: $card-padding; - transition: color .3s ease; - text-transform: uppercase; - - &:hover { color: $card-link-color-light; } - } - } - - .card-reveal { - padding: $card-padding; - position: absolute; - background-color: $card-bg-color; - width: 100%; - overflow-y: auto; - top: 100%; - height: 100%; - z-index: 3; - display: none; - - .card-title { - cursor: pointer; - display: block; - } - } -} diff --git a/production/bower_components/Materialize/sass/components/_carousel.scss b/production/bower_components/Materialize/sass/components/_carousel.scss deleted file mode 100644 index 56e54dd..0000000 --- a/production/bower_components/Materialize/sass/components/_carousel.scss +++ /dev/null @@ -1,85 +0,0 @@ -.carousel { - &.carousel-slider { - top: 0; - left: 0; - height: 0; - - .carousel-fixed-item { - &.with-indicators { - bottom: 68px; - } - - position: absolute; - left: 0; - right: 0; - bottom: 20px; - z-index: 1; - } - - .carousel-item { - width: 100%; - height: 100%; - min-height: 400px; - position: absolute; - top: 0; - left: 0; - - h2 { - font-size: 24px; - font-weight: 500; - line-height: 32px; - } - - p { - font-size: 15px; - } - } - } - - overflow: hidden; - position: relative; - width: 100%; - height: 400px; - perspective: 500px; - transform-style: preserve-3d; - transform-origin: 0% 50%; - - .carousel-item { - display: none; - width: 200px; - height: 400px; - position: absolute; - top: 0; - left: 0; - - img { - width: 100%; - } - } - - .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; - - .indicator-item { - &.active { - background-color: #fff; - } - - display: inline-block; - position: relative; - cursor: pointer; - height: 8px; - width: 8px; - margin: 24px 4px; - background-color: rgba(255,255,255,.5); - - transition: background-color .3s; - border-radius: 50%; - } - } -} diff --git a/production/bower_components/Materialize/sass/components/_chips.scss b/production/bower_components/Materialize/sass/components/_chips.scss deleted file mode 100644 index 2954411..0000000 --- a/production/bower_components/Materialize/sass/components/_chips.scss +++ /dev/null @@ -1,74 +0,0 @@ -.chip { - display: inline-block; - height: 32px; - font-size: 13px; - font-weight: 500; - color: rgba(0,0,0,.6); - line-height: 32px; - padding: 0 12px; - border-radius: 16px; - background-color: $chip-bg-color; - margin-bottom: $chip-margin; - margin-right: $chip-margin; - - img { - float: left; - margin: 0 8px 0 -12px; - height: 32px; - width: 32px; - border-radius: 50%; - } - - .close { - cursor: pointer; - float: right; - font-size: 16px; - line-height: 32px; - padding-left: 8px; - } -} - -.chips { - border: none; - border-bottom: 1px solid $chip-border-color; - box-shadow: none; - margin-bottom: 30px; - min-height: 45px; - outline: none; - padding-bottom: $chip-margin; - transition: all .3s; - - &.focus { - border-bottom: 1px solid $chip-selected-color; - box-shadow: 0 1px 0 0 $chip-selected-color; - } - - &:hover { - cursor: text; - } - - .chip.selected { - background-color: $chip-selected-color; - color: #fff; - } - - .input { - background: none; - border: 0; - color: rgba(0,0,0,.6); - display: inline-block; - font-size: 13px; - font-weight: 500; - height: 32px; - margin-right: 20px; - line-height: 32px; - outline: 0; - padding: 0 !important; - width: 120px !important; - } - - .input:focus { - border: 0 !important; - box-shadow: none !important; - } -} diff --git a/production/bower_components/Materialize/sass/components/_collapsible.scss b/production/bower_components/Materialize/sass/components/_collapsible.scss deleted file mode 100644 index 6a2cb21..0000000 --- a/production/bower_components/Materialize/sass/components/_collapsible.scss +++ /dev/null @@ -1,90 +0,0 @@ -.collapsible { - border-top: 1px solid $collapsible-border-color; - border-right: 1px solid $collapsible-border-color; - border-left: 1px solid $collapsible-border-color; - margin: $element-top-margin 0 $element-bottom-margin 0; - @extend .z-depth-1; -} - -.collapsible-header { - display: block; - cursor: pointer; - min-height: $collapsible-height; - line-height: $collapsible-height; - padding: 0 1rem; - background-color: $collapsible-header-color; - border-bottom: 1px solid $collapsible-border-color; - - i { - width: 2rem; - font-size: 1.6rem; - line-height: $collapsible-height; - display: block; - float: left; - text-align: center; - margin-right: 1rem; - } -} - -.collapsible-body { - display: none; - border-bottom: 1px solid $collapsible-border-color; - box-sizing: border-box; - - p { - margin: 0; - padding: 2rem; - } -} - -// sideNav collapsible styling -.side-nav, -.side-nav.fixed { - - .collapsible { - border: none; - box-shadow: none; - - li { padding: 0; } - } - - .collapsible-header { - background-color: transparent; - border: none; - line-height: inherit; - height: inherit; - padding: 0 $sidenav-padding; - - &:hover { background-color: rgba(0,0,0,.05); } - i { line-height: inherit; } - } - - .collapsible-body { - border: 0; - background-color: $collapsible-header-color; - - li a { - padding: 0 (7.5px + $sidenav-padding) - 0 (15px + $sidenav-padding); - } - } - -} - -// Popout Collapsible - -.collapsible.popout { - border: none; - box-shadow: none; - > li { - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); - // transform: scaleX(.92); - margin: 0 24px; - transition: margin .35s cubic-bezier(0.250, 0.460, 0.450, 0.940); - } - > li.active { - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); - margin: 16px 0; - // transform: scaleX(1); - } -} diff --git a/production/bower_components/Materialize/sass/components/_color.scss b/production/bower_components/Materialize/sass/components/_color.scss deleted file mode 100644 index ef9d600..0000000 --- a/production/bower_components/Materialize/sass/components/_color.scss +++ /dev/null @@ -1,412 +0,0 @@ -// Utility Color Classes - -//.success { -// -//} - -// Google Color Palette defined: http://www.google.com/design/spec/style/color.html - - -$materialize-red: ( - "base": #e51c23, - "lighten-5": #fdeaeb, - "lighten-4": #f8c1c3, - "lighten-3": #f3989b, - "lighten-2": #ee6e73, - "lighten-1": #ea454b, - "darken-1": #d0181e, - "darken-2": #b9151b, - "darken-3": #a21318, - "darken-4": #8b1014, -); - -$red: ( - "base": #F44336, - "lighten-5": #FFEBEE, - "lighten-4": #FFCDD2, - "lighten-3": #EF9A9A, - "lighten-2": #E57373, - "lighten-1": #EF5350, - "darken-1": #E53935, - "darken-2": #D32F2F, - "darken-3": #C62828, - "darken-4": #B71C1C, - "accent-1": #FF8A80, - "accent-2": #FF5252, - "accent-3": #FF1744, - "accent-4": #D50000 -); - -$pink: ( - "base": #e91e63, - "lighten-5": #fce4ec, - "lighten-4": #f8bbd0, - "lighten-3": #f48fb1, - "lighten-2": #f06292, - "lighten-1": #ec407a, - "darken-1": #d81b60, - "darken-2": #c2185b, - "darken-3": #ad1457, - "darken-4": #880e4f, - "accent-1": #ff80ab, - "accent-2": #ff4081, - "accent-3": #f50057, - "accent-4": #c51162 -); - -$purple: ( - "base": #9c27b0, - "lighten-5": #f3e5f5, - "lighten-4": #e1bee7, - "lighten-3": #ce93d8, - "lighten-2": #ba68c8, - "lighten-1": #ab47bc, - "darken-1": #8e24aa, - "darken-2": #7b1fa2, - "darken-3": #6a1b9a, - "darken-4": #4a148c, - "accent-1": #ea80fc, - "accent-2": #e040fb, - "accent-3": #d500f9, - "accent-4": #aa00ff -); - -$deep-purple: ( - "base": #673ab7, - "lighten-5": #ede7f6, - "lighten-4": #d1c4e9, - "lighten-3": #b39ddb, - "lighten-2": #9575cd, - "lighten-1": #7e57c2, - "darken-1": #5e35b1, - "darken-2": #512da8, - "darken-3": #4527a0, - "darken-4": #311b92, - "accent-1": #b388ff, - "accent-2": #7c4dff, - "accent-3": #651fff, - "accent-4": #6200ea -); - -$indigo: ( - "base": #3f51b5, - "lighten-5": #e8eaf6, - "lighten-4": #c5cae9, - "lighten-3": #9fa8da, - "lighten-2": #7986cb, - "lighten-1": #5c6bc0, - "darken-1": #3949ab, - "darken-2": #303f9f, - "darken-3": #283593, - "darken-4": #1a237e, - "accent-1": #8c9eff, - "accent-2": #536dfe, - "accent-3": #3d5afe, - "accent-4": #304ffe -); - -$blue: ( - "base": #2196F3, - "lighten-5": #E3F2FD, - "lighten-4": #BBDEFB, - "lighten-3": #90CAF9, - "lighten-2": #64B5F6, - "lighten-1": #42A5F5, - "darken-1": #1E88E5, - "darken-2": #1976D2, - "darken-3": #1565C0, - "darken-4": #0D47A1, - "accent-1": #82B1FF, - "accent-2": #448AFF, - "accent-3": #2979FF, - "accent-4": #2962FF -); - -$light-blue: ( - "base": #03a9f4, - "lighten-5": #e1f5fe, - "lighten-4": #b3e5fc, - "lighten-3": #81d4fa, - "lighten-2": #4fc3f7, - "lighten-1": #29b6f6, - "darken-1": #039be5, - "darken-2": #0288d1, - "darken-3": #0277bd, - "darken-4": #01579b, - "accent-1": #80d8ff, - "accent-2": #40c4ff, - "accent-3": #00b0ff, - "accent-4": #0091ea -); - -$cyan: ( - "base": #00bcd4, - "lighten-5": #e0f7fa, - "lighten-4": #b2ebf2, - "lighten-3": #80deea, - "lighten-2": #4dd0e1, - "lighten-1": #26c6da, - "darken-1": #00acc1, - "darken-2": #0097a7, - "darken-3": #00838f, - "darken-4": #006064, - "accent-1": #84ffff, - "accent-2": #18ffff, - "accent-3": #00e5ff, - "accent-4": #00b8d4 -); - -$teal: ( - "base": #009688, - "lighten-5": #e0f2f1, - "lighten-4": #b2dfdb, - "lighten-3": #80cbc4, - "lighten-2": #4db6ac, - "lighten-1": #26a69a, - "darken-1": #00897b, - "darken-2": #00796b, - "darken-3": #00695c, - "darken-4": #004d40, - "accent-1": #a7ffeb, - "accent-2": #64ffda, - "accent-3": #1de9b6, - "accent-4": #00bfa5 -); - -$green: ( - "base": #4CAF50, - "lighten-5": #E8F5E9, - "lighten-4": #C8E6C9, - "lighten-3": #A5D6A7, - "lighten-2": #81C784, - "lighten-1": #66BB6A, - "darken-1": #43A047, - "darken-2": #388E3C, - "darken-3": #2E7D32, - "darken-4": #1B5E20, - "accent-1": #B9F6CA, - "accent-2": #69F0AE, - "accent-3": #00E676, - "accent-4": #00C853 -); - -$light-green: ( - "base": #8bc34a, - "lighten-5": #f1f8e9, - "lighten-4": #dcedc8, - "lighten-3": #c5e1a5, - "lighten-2": #aed581, - "lighten-1": #9ccc65, - "darken-1": #7cb342, - "darken-2": #689f38, - "darken-3": #558b2f, - "darken-4": #33691e, - "accent-1": #ccff90, - "accent-2": #b2ff59, - "accent-3": #76ff03, - "accent-4": #64dd17 -); - -$lime: ( - "base": #cddc39, - "lighten-5": #f9fbe7, - "lighten-4": #f0f4c3, - "lighten-3": #e6ee9c, - "lighten-2": #dce775, - "lighten-1": #d4e157, - "darken-1": #c0ca33, - "darken-2": #afb42b, - "darken-3": #9e9d24, - "darken-4": #827717, - "accent-1": #f4ff81, - "accent-2": #eeff41, - "accent-3": #c6ff00, - "accent-4": #aeea00 -); - -$yellow: ( - "base": #ffeb3b, - "lighten-5": #fffde7, - "lighten-4": #fff9c4, - "lighten-3": #fff59d, - "lighten-2": #fff176, - "lighten-1": #ffee58, - "darken-1": #fdd835, - "darken-2": #fbc02d, - "darken-3": #f9a825, - "darken-4": #f57f17, - "accent-1": #ffff8d, - "accent-2": #ffff00, - "accent-3": #ffea00, - "accent-4": #ffd600 -); - -$amber: ( - "base": #ffc107, - "lighten-5": #fff8e1, - "lighten-4": #ffecb3, - "lighten-3": #ffe082, - "lighten-2": #ffd54f, - "lighten-1": #ffca28, - "darken-1": #ffb300, - "darken-2": #ffa000, - "darken-3": #ff8f00, - "darken-4": #ff6f00, - "accent-1": #ffe57f, - "accent-2": #ffd740, - "accent-3": #ffc400, - "accent-4": #ffab00 -); - -$orange: ( - "base": #ff9800, - "lighten-5": #fff3e0, - "lighten-4": #ffe0b2, - "lighten-3": #ffcc80, - "lighten-2": #ffb74d, - "lighten-1": #ffa726, - "darken-1": #fb8c00, - "darken-2": #f57c00, - "darken-3": #ef6c00, - "darken-4": #e65100, - "accent-1": #ffd180, - "accent-2": #ffab40, - "accent-3": #ff9100, - "accent-4": #ff6d00 -); - -$deep-orange: ( - "base": #ff5722, - "lighten-5": #fbe9e7, - "lighten-4": #ffccbc, - "lighten-3": #ffab91, - "lighten-2": #ff8a65, - "lighten-1": #ff7043, - "darken-1": #f4511e, - "darken-2": #e64a19, - "darken-3": #d84315, - "darken-4": #bf360c, - "accent-1": #ff9e80, - "accent-2": #ff6e40, - "accent-3": #ff3d00, - "accent-4": #dd2c00 -); - -$brown: ( - "base": #795548, - "lighten-5": #efebe9, - "lighten-4": #d7ccc8, - "lighten-3": #bcaaa4, - "lighten-2": #a1887f, - "lighten-1": #8d6e63, - "darken-1": #6d4c41, - "darken-2": #5d4037, - "darken-3": #4e342e, - "darken-4": #3e2723 -); - -$blue-grey: ( - "base": #607d8b, - "lighten-5": #eceff1, - "lighten-4": #cfd8dc, - "lighten-3": #b0bec5, - "lighten-2": #90a4ae, - "lighten-1": #78909c, - "darken-1": #546e7a, - "darken-2": #455a64, - "darken-3": #37474f, - "darken-4": #263238 -); - -$grey: ( - "base": #9e9e9e, - "lighten-5": #fafafa, - "lighten-4": #f5f5f5, - "lighten-3": #eeeeee, - "lighten-2": #e0e0e0, - "lighten-1": #bdbdbd, - "darken-1": #757575, - "darken-2": #616161, - "darken-3": #424242, - "darken-4": #212121 -); - -$shades: ( - "black": #000000, - "white": #FFFFFF, - "transparent": transparent -); - -$colors: ( - "materialize-red": $materialize-red, - "red": $red, - "pink": $pink, - "purple": $purple, - "deep-purple": $deep-purple, - "indigo": $indigo, - "blue": $blue, - "light-blue": $light-blue, - "cyan": $cyan, - "teal": $teal, - "green": $green, - "light-green": $light-green, - "lime": $lime, - "yellow": $yellow, - "amber": $amber, - "orange": $orange, - "deep-orange": $deep-orange, - "brown": $brown, - "blue-grey": $blue-grey, - "grey": $grey, - "shades": $shades -); - - -// Color Classes - -@each $color_name, $color in $colors { - @each $color_type, $color_value in $color { - @if $color_type == "base" { - .#{$color_name} { - background-color: $color_value !important; - } - .#{$color_name}-text { - color: $color_value !important; - } - } - @else if $color_name != "shades" { - .#{$color_name}.#{$color_type} { - background-color: $color_value !important; - } - .#{$color_name}-text.text-#{$color_type} { - color: $color_value !important; - } - } - } -} - -// Shade classes -@each $color, $color_value in $shades { - .#{$color} { - background-color: $color_value !important; - } - .#{$color}-text { - color: $color_value !important; - } -} - - -// usage: color("name_of_color", "type_of_color") -// to avoid to repeating map-get($colors, ...) - -@function color($color, $type) { - @if map-has-key($colors, $color) { - $curr_color: map-get($colors, $color); - @if map-has-key($curr_color, $type) { - @return map-get($curr_color, $type); - } - } - @warn "Unknown `#{name}` in $colors."; - @return null; -} - diff --git a/production/bower_components/Materialize/sass/components/_dropdown.scss b/production/bower_components/Materialize/sass/components/_dropdown.scss deleted file mode 100644 index 71ab9f5..0000000 --- a/production/bower_components/Materialize/sass/components/_dropdown.scss +++ /dev/null @@ -1,57 +0,0 @@ -.dropdown-content { - @extend .z-depth-1; - background-color: $dropdown-bg-color; - margin: 0; - display: none; - min-width: 100px; - max-height: 650px; - overflow-y: auto; - opacity: 0; - position: absolute; - z-index: 999; - will-change: width, height; - - li { - clear: both; - color: $off-black; - cursor: pointer; - min-height: $dropdown-item-height; - line-height: 1.5rem; - width: 100%; - text-align: left; - text-transform: none; - - &:hover, &.active, &.selected { - background-color: $dropdown-hover-bg-color; - } - - &.active.selected { - background-color: darken($dropdown-hover-bg-color, 5%); - } - - &.divider { - min-height: 0; - height: 1px; - } - - & > a, & > span { - font-size: 16px; - color: $dropdown-color; - display: block; - line-height: 22px; - padding: (($dropdown-item-height - 22) / 2) 16px; - } - - & > span > label { - top: 1px; - left: 3px; - height: 18px; - } - - // Icon alignment override - & > a > i { - height: inherit; - line-height: inherit; - } - } -} diff --git a/production/bower_components/Materialize/sass/components/_global.scss b/production/bower_components/Materialize/sass/components/_global.scss deleted file mode 100644 index 7e7bd2e..0000000 --- a/production/bower_components/Materialize/sass/components/_global.scss +++ /dev/null @@ -1,781 +0,0 @@ -//Default styles - -html { - box-sizing: border-box; -} -*, *:before, *:after { - box-sizing: inherit; -} - -body { - // display: flex; - // min-height: 100vh; - // flex-direction: column; -} - -main { - // flex: 1 0 auto; -} - -ul { - &.browser-default, - &.browser-default li { - list-style-type: initial; - } - - padding: 0; - list-style-type: none; - - li { - list-style-type: none; - } -} - -a { - color: $link-color; - text-decoration: none; - - // Gets rid of tap active state - -webkit-tap-highlight-color: transparent; -} - - -// Positioning -.valign-wrapper { - display: flex; - align-items: center; - - .valign { - display: block; - } -} - - -// classic clearfix -.clearfix { - clear: both; -} - - -// Z-levels -.z-depth-0 { - box-shadow: none !important; -} -.z-depth-1{ - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); -} -.z-depth-1-half{ - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); -} -.z-depth-2{ - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); -} -.z-depth-3{ - box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); -} -.z-depth-4{ - box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); -} -.z-depth-5{ - box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); -} - -.hoverable { - transition: box-shadow .25s; - box-shadow: 0; -} - -.hoverable:hover { - transition: box-shadow .25s; - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); -} - -// Dividers - -.divider { - height: 1px; - overflow: hidden; - background-color: color("grey", "lighten-2"); -} - - -// Blockquote - -blockquote { - margin: 20px 0; - padding-left: 1.5rem; - border-left: 5px solid $primary-color; -} - -// Icon Styles - -i { - line-height: inherit; - - &.left { - float: left; - margin-right: 15px; - } - &.right { - float: right; - margin-left: 15px; - } - &.tiny { - font-size: 1rem; - } - &.small { - font-size: 2rem; - } - &.medium { - font-size: 4rem; - } - &.large { - font-size: 6rem; - } -} - -// Images -img.responsive-img, -video.responsive-video { - max-width: 100%; - height: auto; -} - - -// Pagination - -.pagination { - - li { - display: inline-block; - border-radius: 2px; - text-align: center; - vertical-align: top; - height: 30px; - - a { - color: #444; - display: inline-block; - font-size: 1.2rem; - padding: 0 10px; - line-height: 30px; - } - - &.active a { color: #fff; } - - &.active { background-color: $primary-color; } - - &.disabled a { - cursor: default; - color: #999; - } - - i { - font-size: 2rem; - } - } - - - li.pages ul li { - display: inline-block; - float: none; - } -} -@media #{$medium-and-down} { - .pagination { - width: 100%; - - li.prev, - li.next { - width: 10%; - } - - li.pages { - width: 80%; - overflow: hidden; - white-space: nowrap; - } - } -} - -// Breadcrumbs -.breadcrumb { - font-size: 18px; - color: rgba(255,255,255, .7); - - i, - [class^="mdi-"], [class*="mdi-"], - i.material-icons { - display: inline-block; - float: left; - font-size: 24px; - } - - &:before { - content: '\E5CC'; - color: rgba(255,255,255, .7); - vertical-align: top; - display: inline-block; - font-family: 'Material Icons'; - font-weight: normal; - font-style: normal; - font-size: 25px; - margin: 0 10px 0 8px; - -webkit-font-smoothing: antialiased; - } - - &:first-child:before { - display: none; - } - - &:last-child { - color: #fff; - } -} - - -// Parallax -.parallax-container { - position: relative; - overflow: hidden; - height: 500px; -} - -.parallax { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; - - img { - display: none; - position: absolute; - left: 50%; - bottom: 0; - min-width: 100%; - min-height: 100%; - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); - transform: translateX(-50%); - } -} - -// Pushpin -.pin-top, .pin-bottom { - position: relative; -} -.pinned { - position: fixed !important; -} - -/********************* - Transition Classes -**********************/ - -ul.staggered-list li { - opacity: 0; -} - -.fade-in { - opacity: 0; - transform-origin: 0 50%; -} - - -/********************* - Media Query Classes -**********************/ -.hide-on-small-only, .hide-on-small-and-down { - @media #{$small-and-down} { - display: none !important; - } -} -.hide-on-med-and-down { - @media #{$medium-and-down} { - display: none !important; - } -} -.hide-on-med-and-up { - @media #{$medium-and-up} { - display: none !important; - } -} -.hide-on-med-only { - @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) { - display: none !important; - } -} -.hide-on-large-only { - @media #{$large-and-up} { - display: none !important; - } -} -.show-on-large { - @media #{$large-and-up} { - display: block !important; - } -} -.show-on-medium { - @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) { - display: block !important; - } -} -.show-on-small { - @media #{$small-and-down} { - display: block !important; - } -} -.show-on-medium-and-up { - @media #{$medium-and-up} { - display: block !important; - } -} -.show-on-medium-and-down { - @media #{$medium-and-down} { - display: block !important; - } -} - - -// Center text on mobile -.center-on-small-only { - @media #{$small-and-down} { - text-align: center; - } -} - -// Footer -footer.page-footer { - margin-top: 20px; - padding-top: 20px; - background-color: $footer-bg-color; - - .footer-copyright { - overflow: hidden; - height: 50px; - line-height: 50px; - color: rgba(255,255,255,.8); - background-color: rgba(51,51,51,.08); - @extend .light; - } -} - -// Tables -table, th, td { - border: none; -} - -table { - width:100%; - display: table; - - &.bordered > thead > tr, - &.bordered > tbody > tr { - border-bottom: 1px solid $table-border-color; - } - - &.striped > tbody { - > tr:nth-child(odd) { - background-color: $table-striped-color; - } - - > tr > td { - border-radius: 0; - } - } - - &.highlight > tbody > tr { - transition: background-color .25s ease; - &:hover { - background-color: $table-striped-color; - } - } - - &.centered { - thead tr th, tbody tr td { - text-align: center; - } - } - -} - -thead { - border-bottom: 1px solid $table-border-color; -} - -td, th{ - padding: 15px 5px; - display: table-cell; - text-align: left; - vertical-align: middle; - border-radius: 2px; -} - -// Responsive Table -@media #{$medium-and-down} { - - table.responsive-table { - width: 100%; - border-collapse: collapse; - border-spacing: 0; - display: block; - position: relative; - - td:empty:before { - content: '\00a0'; - } - - th, - td { - margin: 0; - vertical-align: top; - } - - th { text-align: left; } - thead { - display: block; - float: left; - - tr { - display: block; - padding: 0 10px 0 0; - - th::before { - content: "\00a0"; - } - } - } - tbody { - display: block; - width: auto; - position: relative; - overflow-x: auto; - white-space: nowrap; - - tr { - display: inline-block; - vertical-align: top; - } - } - th { - display: block; - text-align: right; - } - td { - display: block; - min-height: 1.25em; - text-align: left; - } - tr { padding: 0 10px; } - - /* sort out borders */ - thead { - border: 0; - border-right: 1px solid $table-border-color; - } - - &.bordered { - th { border-bottom: 0; border-left: 0; } - td { border-left: 0; border-right: 0; border-bottom: 0; } - tr { border: 0; } - tbody tr { border-right: 1px solid $table-border-color; } - } - - } - -} - - -// Collections -.collection { - margin: $element-top-margin 0 $element-bottom-margin 0; - border: 1px solid $collection-border-color; - border-radius: 2px; - overflow: hidden; - position: relative; - - .collection-item { - background-color: $collection-bg-color; - line-height: 1.5rem; - padding: 10px 20px; - margin: 0; - border-bottom: 1px solid $collection-border-color; - - // Avatar Collection - &.avatar { - min-height: 84px; - padding-left: 72px; - position: relative; - - .circle { - position: absolute; - width: 42px; - height: 42px; - overflow: hidden; - left: 15px; - display: inline-block; - vertical-align: middle; - } - i.circle { - font-size: 18px; - line-height: 42px; - color: #fff; - background-color: #999; - text-align: center; - } - - - .title { - font-size: 16px; - } - - p { - margin: 0; - } - - .secondary-content { - position: absolute; - top: 16px; - right: 16px; - } - - } - - - &:last-child { - border-bottom: none; - } - - &.active { - background-color: $collection-active-bg-color; - color: $collection-active-color; - - .secondary-content { - color: #fff; - } - } - } - a.collection-item{ - display: block; - transition: .25s; - color: $collection-link-color; - &:not(.active) { - &:hover { - background-color: $collection-hover-bg-color; - } - } - } - - &.with-header { - .collection-header { - background-color: $collection-bg-color; - border-bottom: 1px solid $collection-border-color; - padding: 10px 20px; - } - .collection-item { - padding-left: 30px; - } - .collection-item.avatar { - padding-left: 72px; - } - } - -} -// Made less specific to allow easier overriding -.secondary-content { - float: right; - color: $secondary-color; -} -.collapsible .collection { - margin: 0; - border: none; -} - - - -// Badges -span.badge { - min-width: 3rem; - padding: 0 6px; - text-align: center; - font-size: 1rem; - line-height: inherit; - color: color('grey', 'darken-1'); - position: absolute; - right: 15px; - box-sizing: border-box; - - &.new { - font-weight: 300; - font-size: 0.8rem; - color: #fff; - background-color: $badge-bg-color; - border-radius: 2px; - } - &.new:after { - content: " new"; - } - - &[data-badge-caption]::after { - content: " " attr(data-badge-caption); - } - - -} -nav ul a span.badge { - position: static; - margin-left: 4px; - line-height: 0; -} - -// Responsive Videos -.video-container { - position: relative; - padding-bottom: 56.25%; - height: 0; - overflow: hidden; - - iframe, object, embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - } -} - -// Progress Bar -.progress { - position: relative; - height: 4px; - display: block; - width: 100%; - background-color: lighten($progress-bar-color, 40%); - border-radius: 2px; - margin: $element-top-margin 0 $element-bottom-margin 0; - overflow: hidden; - .determinate { - position: absolute; - top: 0; - left: 0; - bottom: 0; - background-color: $progress-bar-color; - transition: width .3s linear; - } - .indeterminate { - background-color: $progress-bar-color; - &:before { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left:0; - bottom: 0; - will-change: left, right; - // Custom bezier - animation: indeterminate 2.1s cubic-bezier(0.650, 0.815, 0.735, 0.395) infinite; - - } - &:after { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left:0; - bottom: 0; - will-change: left, right; - // Custom bezier - animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.840, 0.440, 1.000) infinite; - animation-delay: 1.15s; - } - } -} -@keyframes indeterminate { - 0% { - left: -35%; - right:100%; - } - 60% { - left: 100%; - right: -90%; - } - 100% { - left: 100%; - right: -90%; - } -} - -@keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; - } - 60% { - left: 107%; - right: -8%; - } - 100% { - left: 107%; - right: -8%; - } -} - - -/******************* - Utility Classes -*******************/ - -.hide { - display: none !important; -} - -// Text Align -.left-align { - text-align: left; -} -.right-align { - text-align: right -} -.center, .center-align { - text-align: center; -} - -.left { - float: left !important; -} -.right { - float: right !important; -} - -// No Text Select -.no-select { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.circle { - border-radius: 50%; -} - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} - -.truncate { - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.no-padding { - padding: 0 !important; -} diff --git a/production/bower_components/Materialize/sass/components/_grid.scss b/production/bower_components/Materialize/sass/components/_grid.scss deleted file mode 100644 index 4ffc3ed..0000000 --- a/production/bower_components/Materialize/sass/components/_grid.scss +++ /dev/null @@ -1,147 +0,0 @@ -.container { - margin: 0 auto; - max-width: 1280px; - width: 90%; -} -@media #{$medium-and-up} { - .container { - width: 85%; - } -} -@media #{$large-and-up} { - .container { - width: 70%; - } -} -.container .row { - margin-left: (-1 * $gutter-width / 2); - margin-right: (-1 * $gutter-width / 2); -} - -.section { - padding-top: 1rem; - padding-bottom: 1rem; - - &.no-pad { - padding: 0; - } - &.no-pad-bot { - padding-bottom: 0; - } - &.no-pad-top { - padding-top: 0; - } -} - - -.row { - margin-left: auto; - margin-right: auto; - margin-bottom: 20px; - - // Clear floating children - &:after { - content: ""; - display: table; - clear: both; - } - - .col { - float: left; - box-sizing: border-box; - padding: 0 $gutter-width / 2; - min-height: 1px; - - &[class*="push-"], - &[class*="pull-"] { - position: relative; - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.s#{$i} { - width: $perc; - margin-left: auto; - left: auto; - right: auto; - } - $i: $i + 1; - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.offset-s#{$i} { - margin-left: $perc; - } - &.pull-s#{$i} { - right: $perc; - } - &.push-s#{$i} { - left: $perc; - } - $i: $i + 1; - } - - @media #{$medium-and-up} { - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.m#{$i} { - width: $perc; - margin-left: auto; - left: auto; - right: auto; - } - $i: $i + 1 - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.offset-m#{$i} { - margin-left: $perc; - } - &.pull-m#{$i} { - right: $perc; - } - &.push-m#{$i} { - left: $perc; - } - $i: $i + 1; - } - } - - @media #{$large-and-up} { - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.l#{$i} { - width: $perc; - margin-left: auto; - left: auto; - right: auto; - } - $i: $i + 1; - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.offset-l#{$i} { - margin-left: $perc; - } - &.pull-l#{$i} { - right: $perc; - } - &.push-l#{$i} { - left: $perc; - } - $i: $i + 1; - } - } - } -} diff --git a/production/bower_components/Materialize/sass/components/_icons-material-design.scss b/production/bower_components/Materialize/sass/components/_icons-material-design.scss deleted file mode 100644 index d8d91c1..0000000 --- a/production/bower_components/Materialize/sass/components/_icons-material-design.scss +++ /dev/null @@ -1,5 +0,0 @@ -/* This is needed for some mobile phones to display the Google Icon font properly */ -.material-icons { - text-rendering: optimizeLegibility; - font-feature-settings: 'liga'; -} diff --git a/production/bower_components/Materialize/sass/components/_materialbox.scss b/production/bower_components/Materialize/sass/components/_materialbox.scss deleted file mode 100644 index ee37426..0000000 --- a/production/bower_components/Materialize/sass/components/_materialbox.scss +++ /dev/null @@ -1,42 +0,0 @@ -.materialboxed { - display: block; - cursor: zoom-in; - position: relative; - transition: opacity .4s; - - &:hover { - &:not(.active) { - opacity: .8; - } - will-change: left, top, width, height; - } -} - -.materialboxed.active { - cursor: zoom-out; -} - -#materialbox-overlay { - position:fixed; - top:0; - left:0; - right: 0; - bottom: 0; - background-color: #292929; - z-index: 1000; - - will-change: opacity; -} -.materialbox-caption { - position: fixed; - display: none; - color: #fff; - line-height: 50px; - bottom: 0; - width: 100%; - text-align: center; - padding: 0% 15%; - height: 50px; - z-index: 1000; - -webkit-font-smoothing: antialiased; -} \ No newline at end of file diff --git a/production/bower_components/Materialize/sass/components/_mixins.scss b/production/bower_components/Materialize/sass/components/_mixins.scss deleted file mode 100644 index 054f8f6..0000000 --- a/production/bower_components/Materialize/sass/components/_mixins.scss +++ /dev/null @@ -1,5 +0,0 @@ -// @mixin box-shadow-2($args1, $args2) { -// -webkit-box-shadow: $args1, $args2; -// -moz-box-shadow: $args1, $args2; -// box-shadow: $args1, $args2; -// } \ No newline at end of file diff --git a/production/bower_components/Materialize/sass/components/_modal.scss b/production/bower_components/Materialize/sass/components/_modal.scss deleted file mode 100644 index 0a6dcfb..0000000 --- a/production/bower_components/Materialize/sass/components/_modal.scss +++ /dev/null @@ -1,90 +0,0 @@ -.modal { - @extend .z-depth-4; - - display: none; - position: fixed; - left: 0; - right: 0; - background-color: #fafafa; - padding: 0; - max-height: 70%; - width: 55%; - margin: auto; - overflow-y: auto; - - border-radius: 2px; - will-change: top, opacity; - - @media #{$medium-and-down} { - width: 80%; - } - - h1,h2,h3,h4 { - margin-top: 0; - } - - .modal-content { - padding: 24px; - } - .modal-close { - cursor: pointer; - } - - .modal-footer { - border-radius: 0 0 2px 2px; - background-color: #fafafa; - padding: 4px 6px; - height: 56px; - width: 100%; - - .btn, .btn-flat { - float: right; - margin: 6px 0; - } - } -} -.lean-overlay { - position: fixed; - z-index:999; - top: -100px; - left: 0; - bottom: 0; - right: 0; - height: 125%; - width: 100%; - background: #000; - display: none; - - will-change: opacity; -} - -// Modal with fixed action footer -.modal.modal-fixed-footer { - padding: 0; - height: 70%; - - .modal-content { - position: absolute; - height: calc(100% - 56px); - max-height: 100%; - width: 100%; - overflow-y: auto; - } - - .modal-footer { - border-top: 1px solid rgba(0,0,0,.1); - position: absolute; - bottom: 0; - } -} - -// Modal Bottom Sheet Style -.modal.bottom-sheet { - top: auto; - bottom: -100%; - margin: 0; - width: 100%; - max-height: 45%; - border-radius: 0; - will-change: bottom, opacity; -} diff --git a/production/bower_components/Materialize/sass/components/_navbar.scss b/production/bower_components/Materialize/sass/components/_navbar.scss deleted file mode 100644 index 8eeb37e..0000000 --- a/production/bower_components/Materialize/sass/components/_navbar.scss +++ /dev/null @@ -1,182 +0,0 @@ -nav { - color: $navbar-font-color; - @extend .z-depth-1; - background-color: $primary-color; - width: 100%; - height: $navbar-height-mobile; - line-height: $navbar-height-mobile; - - a { color: $navbar-font-color; } - - i, - [class^="mdi-"], [class*="mdi-"], - i.material-icons { - display: block; - font-size: 2rem; - height: $navbar-height-mobile; - line-height: $navbar-height-mobile; - } - - .nav-wrapper { - position: relative; - height: 100%; - } - - @media #{$large-and-up} { - a.button-collapse { display: none; } - } - - - // Collapse button - .button-collapse { - float: left; - position: relative; - z-index: 1; - height: $navbar-height-mobile; - - i { - font-size: 2.7rem; - height: $navbar-height-mobile; - line-height: $navbar-height-mobile; - } - } - - - // Logo - .brand-logo { - position: absolute; - color: $navbar-font-color; - display: inline-block; - font-size: $navbar-brand-font-size; - padding: 0; - white-space: nowrap; - - &.center { - left: 50%; - transform: translateX(-50%); - } - - @media #{$medium-and-down} { - left: 50%; - transform: translateX(-50%); - - &.left, &.right { - padding: 0; - transform: none; - } - - &.left { left: 0.5rem; } - &.right { - right: 0.5rem; - left: auto; - } - } - - &.right { - right: 0.5rem; - padding: 0; - } - - i, - [class^="mdi-"], [class*="mdi-"], - i.material-icons { - float: left; - margin-right: 15px; - } - } - - - // Navbar Links - ul { - margin: 0; - - li { - transition: background-color .3s; - float: left; - padding: 0; - - &.active { - background-color: rgba(0,0,0,.1); - } - } - a { - transition: background-color .3s; - font-size: $navbar-font-size; - color: $navbar-font-color; - display: block; - padding: 0 15px; - cursor: pointer; - - &.btn, &.btn-large, &.btn-flat, &.btn-floating { - margin-top: -2px; - margin-left: 15px; - margin-right: 15px; - } - - &:hover { - background-color: rgba(0,0,0,.1); - } - } - - &.left { - float: left; - } - } - - // Navbar Search Form - form { - height: 100%; - } - - .input-field { - margin: 0; - height: 100%; - - input { - height: 100%; - font-size: 1.2rem; - border: none; - padding-left: 2rem; - - &:focus, &[type=text]:valid, &[type=password]:valid, - &[type=email]:valid, &[type=url]:valid, &[type=date]:valid { - border: none; - box-shadow: none; - } - } - - label { - top: 0; - left: 0; - - i { - color: rgba(255,255,255,.7); - transition: color .3s; - } - &.active i { color: $navbar-font-color; } - &.active { - transform: translateY(0); - } - } - } -} - -// Fixed Navbar -.navbar-fixed { - position: relative; - height: $navbar-height-mobile; - z-index: 998; - - nav { - position: fixed; - } -} -@media #{$medium-and-up} { - nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i { - height: $navbar-height; - line-height: $navbar-height; - } - .navbar-fixed { - height: $navbar-height; - } -} diff --git a/production/bower_components/Materialize/sass/components/_normalize.scss b/production/bower_components/Materialize/sass/components/_normalize.scss deleted file mode 100644 index 5e5e3c8..0000000 --- a/production/bower_components/Materialize/sass/components/_normalize.scss +++ /dev/null @@ -1,424 +0,0 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * Improve readability of focused elements when they are also in an - * active/hover state. - */ - -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9/10. - */ - -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - box-sizing: content-box; /* 2 */ -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/production/bower_components/Materialize/sass/components/_prefixer.scss b/production/bower_components/Materialize/sass/components/_prefixer.scss deleted file mode 100644 index 13376de..0000000 --- a/production/bower_components/Materialize/sass/components/_prefixer.scss +++ /dev/null @@ -1,384 +0,0 @@ -//--------------------------------------------------- -// Sass Prefixer -// ------------------------------------------------- -// TABLE OF CONTENTS -// (*) denotes a syntax-sugar helper -// ------------------------------------------------- -// -// animation($args) -// animation-delay($delay) -// animation-direction($direction) -// animation-duration($duration) -// animation-fill-mode($mode) -// animation-iteration-count($count) -// animation-name($name) -// animation-play-state($state) -// animation-timing-function($function) -// background-size($args) -// inner-shadow($args) * -// box-sizing($args) -// border-box() * -// content-box() * -// columns($args) -// column-count($count) -// column-gap($gap) -// column-rule($args) -// column-width($width) -// flexbox() -// flex($args) -// order($args) -// align($args) -// justify-content($args) -// gradient($default,$start,$stop) * -// linear-gradient-top($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])* -// linear-gradient-left($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])* -// perspective($pixels) -// transform($args) -// transform-origin($args) -// transform-style($style) -// rotate($deg) -// scale($factor) -// translate($x,$y) -// translate3d($x,$y,$z) -// translateHardware($x,$y) * -// text-shadow($args) -// transition($args) -// transition-delay($delay) -// transition-duration($duration) -// transition-property($property) -// transition-timing-function($function) - - -// Animation - -// @mixin animation($args) { -// -webkit-animation: $args; -// -moz-animation: $args; -// -ms-animation: $args; -// -o-animation: $args; -// animation: $args; -// } -// @mixin animation-delay($delay) { -// -webkit-animation-delay: $delay; -// -moz-animation-delay: $delay; -// -ms-animation-delay: $delay; -// -o-animation-delay: $delay; -// animation-delay: $delay; -// } -// @mixin animation-direction($direction) { -// -webkit-animation-direction: $direction; -// -moz-animation-direction: $direction; -// -ms-animation-direction: $direction; -// -o-animation-direction: $direction; -// } -// @mixin animation-duration($duration) { -// -webkit-animation-duration: $duration; -// -moz-animation-duration: $duration; -// -ms-animation-duration: $duration; -// -o-animation-duration: $duration; -// } -// @mixin animation-fill-mode($mode) { -// -webkit-animation-fill-mode: $mode; -// -moz-animation-fill-mode: $mode; -// -ms-animation-fill-mode: $mode; -// -o-animation-fill-mode: $mode; -// animation-fill-mode: $mode; -// } -// @mixin animation-iteration-count($count) { -// -webkit-animation-iteration-count: $count; -// -moz-animation-iteration-count: $count; -// -ms-animation-iteration-count: $count; -// -o-animation-iteration-count: $count; -// animation-iteration-count: $count; -// } -// @mixin animation-name($name) { -// -webkit-animation-name: $name; -// -moz-animation-name: $name; -// -ms-animation-name: $name; -// -o-animation-name: $name; -// animation-name: $name; -// } -// @mixin animation-play-state($state) { -// -webkit-animation-play-state: $state; -// -moz-animation-play-state: $state; -// -ms-animation-play-state: $state; -// -o-animation-play-state: $state; -// animation-play-state: $state; -// } -// @mixin animation-timing-function($function) { -// -webkit-animation-timing-function: $function; -// -moz-animation-timing-function: $function; -// -ms-animation-timing-function: $function; -// -o-animation-timing-function: $function; -// animation-timing-function: $function; -// } - -// Keyframes -// @mixin keyframes($animation-name) { -// @-webkit-keyframes #{$animation-name} { -// @content; -// } -// @-moz-keyframes #{$animation-name} { -// @content; -// } -// @keyframes #{$animation-name} { -// @content; -// } -// } - -// Backface-visibility - -// @mixin backface-visibility($args) { -// -webkit-backface-visibility: $args; -// -moz-backface-visibility: $args; -// -ms-backface-visibility: $args; -// backface-visibility: $args; -// } - - -// Background Size - -// @mixin background-size($args) { -// -webkit-background-size: $args; -// background-size: $args; -// } - -// Box Sizing - -// @mixin box-sizing($args) { -// -webkit-box-sizing: $args; -// -moz-box-sizing: $args; -// box-sizing: $args; -// } -// @mixin border-box(){ -// @include box-sizing(border-box); -// } -// @mixin content-box(){ -// @include box-sizing(content-box); -// } - - -// Columns - -// @mixin columns($args) { -// -webkit-columns: $args; -// -moz-columns: $args; -// columns: $args; -// } -// @mixin column-count($count) { -// -webkit-column-count: $count; -// -moz-column-count: $count; -// column-count: $count; -// } -// @mixin column-gap($gap) { -// -webkit-column-gap: $gap; -// -moz-column-gap: $gap; -// column-gap: $gap; -// } -// @mixin column-width($width) { -// -webkit-column-width: $width; -// -moz-column-width: $width; -// column-width: $width; -// } -// @mixin column-rule($args) { -// -webkit-column-rule: $args; -// -moz-column-rule: $args; -// column-rule: $args; -// } - -// Filter -// @mixin filter($args) { -// -webkit-filter: $args; -// -moz-filter: $args; -// -o-filter: $args; -// -ms-filter: $args; -// } - -// Flexbox -// @mixin flexbox() { -// display: -webkit-box; -// display: -moz-box; -// display: -ms-flexbox; -// display: -webkit-flex; -// display: flex; -// } - // @mixin flex($values) { - // -webkit-box-flex: $values; - // -moz-box-flex: $values; - // -webkit-flex: $values; - // -ms-flex: $values; - // flex: $values; - // } - // @mixin order($val) { - // -webkit-box-ordinal-group: $val; - // -moz-box-ordinal-group: $val; - // -ms-flex-order: $val; - // -webkit-order: $val; - // order: $val; - // } - // @mixin align($align) { - // -webkit-flex-align: $align; - // -ms-flex-align: $align; - // -webkit-align-items: $align; - // align-items: $align; - // } - // @mixin justify-content($val) { - // -webkit-justify-content: $val; - // justify-content: $val; - // } -// Gradients - -// @mixin gradient($default: #F5F5F5, $start: #EEE, $stop: #FFF) { -// @include linear-gradient-top($default,$start,0%,$stop,100%); -// } -// @mixin linear-gradient-top($default,$color1,$stop1,$color2,$stop2) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2)); -// background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2); -// background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2); -// background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2); -// background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2); -// background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2); -// } -// @mixin linear-gradient-top2($default,$color1,$stop1,$color2,$stop2,$color3,$stop3) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3)); -// background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// } -// @mixin linear-gradient-top3($default,$color1,$stop1,$color2,$stop2,$color3,$stop3,$color4,$stop4) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3), color-stop($stop4 $color4)); -// background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// } -// @mixin linear-gradient-left($default,$color1,$stop1,$color2,$stop2) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2)); -// background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2); -// background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2); -// background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2); -// background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2); -// background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2); -// } -// @mixin linear-gradient-left2($default,$color1,$stop1,$color2,$stop2,$color3,$stop3) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3)); -// background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// } -// @mixin linear-gradient-left3($default,$color1,$stop1,$color2,$stop2,$color3,$stop3,$color4,$stop4) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3), color-stop($stop4 $color4)); -// background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// } - -// Perspective -@mixin perspective($pixels) { - perspective: $pixels; - -webkit-perspective: $pixels; -} - - -// Text Shadow - -// @mixin text-shadow($args) { -// text-shadow: $args; -// } - - -// Transforms - -// @mixin transform($args) { -// -webkit-transform: $args; -// -moz-transform: $args; -// -ms-transform: $args; -// -o-transform: $args; -// transform: $args; -// } -// @mixin transform-origin($args) { -// -webkit-transform-origin: $args; -// -moz-transform-origin: $args; -// -ms-transform-origin: $args; -// -o-transform-origin: $args; -// transform-origin: $args; -// } -// @mixin transform-style($style) { -// -webkit-transform-style: $style; -// -moz-transform-style: $style; -// -ms-transform-style: $style; -// -o-transform-style: $style; -// transform-style: $style; -// } -// @mixin rotate($deg:45deg){ -// @include transform(rotate($deg)); -// } -// @mixin scale($factor:.5){ -// @include transform(scale($factor)); -// } -// @mixin translate($x,$y){ -// @include transform(translate($x,$y)); -// } -// @mixin translate3d($x,$y,$z) { -// @include transform(translate3d($x,$y,$z)); -// } -// @mixin translateHardware($x,$y) { -// @include translate($x,$y); -// -webkit-transform: translate3d($x,$y,0); -// -moz-transform: translate3d($x,$y,0); -// -o-transform: translate3d($x,$y,0); -// -ms-transform: translate3d($x,$y,0); -// transform: translate3d($x,$y,0); -// } - - -// Transitions - -// @mixin transition($args:200ms) { -// -webkit-transition: $args; -// -moz-transition: $args; -// -o-transition: $args; -// -ms-transition: $args; -// transition: $args; -// } -// @mixin transition-delay($delay:0) { -// -webkit-transition-delay: $delay; -// -moz-transition-delay: $delay; -// -o-transition-delay: $delay; -// -ms-transition-delay: $delay; -// transition-delay: $delay; -// } -// @mixin transition-duration($duration:200ms) { -// -webkit-transition-duration: $duration; -// -moz-transition-duration: $duration; -// -o-transition-duration: $duration; -// -ms-transition-duration: $duration; -// transition-duration: $duration; -// } -// @mixin transition-property($property:all) { -// -webkit-transition-property: $property; -// -moz-transition-property: $property; -// -o-transition-property: $property; -// -ms-transition-property: $property; -// transition-property: $property; -// } -// @mixin transition-timing-function($function:ease) { -// -webkit-transition-timing-function: $function; -// -moz-transition-timing-function: $function; -// -o-transition-timing-function: $function; -// -ms-transition-timing-function: $function; -// transition-timing-function: $function; -// } diff --git a/production/bower_components/Materialize/sass/components/_preloader.scss b/production/bower_components/Materialize/sass/components/_preloader.scss deleted file mode 100644 index 31e1600..0000000 --- a/production/bower_components/Materialize/sass/components/_preloader.scss +++ /dev/null @@ -1,334 +0,0 @@ -/* - @license - Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ - -/**************************/ -/* STYLES FOR THE SPINNER */ -/**************************/ - -/* - * Constants: - * STROKEWIDTH = 3px - * ARCSIZE = 270 degrees (amount of circle the arc takes up) - * ARCTIME = 1333ms (time it takes to expand and contract arc) - * ARCSTARTROT = 216 degrees (how much the start location of the arc - * should rotate each time, 216 gives us a - * 5 pointed star shape (it's 360/5 * 3). - * For a 7 pointed star, we might do - * 360/7 * 3 = 154.286) - * CONTAINERWIDTH = 28px - * SHRINK_TIME = 400ms - */ - - -.preloader-wrapper { - display: inline-block; - position: relative; - width: 48px; - height: 48px; - - &.small { - width: 36px; - height: 36px; - } - - &.big { - width: 64px; - height: 64px; - } - - &.active { - /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */ - -webkit-animation: container-rotate 1568ms linear infinite; - animation: container-rotate 1568ms linear infinite; - } -} - -@-webkit-keyframes container-rotate { - to { -webkit-transform: rotate(360deg) } -} - -@keyframes container-rotate { - to { transform: rotate(360deg) } -} - -.spinner-layer { - position: absolute; - width: 100%; - height: 100%; - opacity: 0; - border-color: $spinner-default-color; -} - -.spinner-blue, -.spinner-blue-only { - border-color: #4285f4; -} - -.spinner-red, -.spinner-red-only { - border-color: #db4437; -} - -.spinner-yellow, -.spinner-yellow-only { - border-color: #f4b400; -} - -.spinner-green, -.spinner-green-only { - border-color: #0f9d58; -} - -/** - * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee): - * - * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't - * guarantee that the animation will start _exactly_ after that value. So we avoid using - * animation-delay and instead set custom keyframes for each color (as redundant as it - * seems). - * - * We write out each animation in full (instead of separating animation-name, - * animation-duration, etc.) because under the polyfill, Safari does not recognize those - * specific properties properly, treats them as -webkit-animation, and overrides the - * other animation rules. See https://github.com/Polymer/platform/issues/53. - */ -.active .spinner-layer.spinner-blue { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-red { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-yellow { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-green { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .spinner-layer, -.active .spinner-layer.spinner-blue-only, -.active .spinner-layer.spinner-red-only, -.active .spinner-layer.spinner-yellow-only, -.active .spinner-layer.spinner-green-only { - /* durations: 4 * ARCTIME */ - opacity: 1; - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -@-webkit-keyframes fill-unfill-rotate { - 12.5% { -webkit-transform: rotate(135deg); } /* 0.5 * ARCSIZE */ - 25% { -webkit-transform: rotate(270deg); } /* 1 * ARCSIZE */ - 37.5% { -webkit-transform: rotate(405deg); } /* 1.5 * ARCSIZE */ - 50% { -webkit-transform: rotate(540deg); } /* 2 * ARCSIZE */ - 62.5% { -webkit-transform: rotate(675deg); } /* 2.5 * ARCSIZE */ - 75% { -webkit-transform: rotate(810deg); } /* 3 * ARCSIZE */ - 87.5% { -webkit-transform: rotate(945deg); } /* 3.5 * ARCSIZE */ - to { -webkit-transform: rotate(1080deg); } /* 4 * ARCSIZE */ -} - -@keyframes fill-unfill-rotate { - 12.5% { transform: rotate(135deg); } /* 0.5 * ARCSIZE */ - 25% { transform: rotate(270deg); } /* 1 * ARCSIZE */ - 37.5% { transform: rotate(405deg); } /* 1.5 * ARCSIZE */ - 50% { transform: rotate(540deg); } /* 2 * ARCSIZE */ - 62.5% { transform: rotate(675deg); } /* 2.5 * ARCSIZE */ - 75% { transform: rotate(810deg); } /* 3 * ARCSIZE */ - 87.5% { transform: rotate(945deg); } /* 3.5 * ARCSIZE */ - to { transform: rotate(1080deg); } /* 4 * ARCSIZE */ -} - -@-webkit-keyframes blue-fade-in-out { - from { opacity: 1; } - 25% { opacity: 1; } - 26% { opacity: 0; } - 89% { opacity: 0; } - 90% { opacity: 1; } - 100% { opacity: 1; } -} - -@keyframes blue-fade-in-out { - from { opacity: 1; } - 25% { opacity: 1; } - 26% { opacity: 0; } - 89% { opacity: 0; } - 90% { opacity: 1; } - 100% { opacity: 1; } -} - -@-webkit-keyframes red-fade-in-out { - from { opacity: 0; } - 15% { opacity: 0; } - 25% { opacity: 1; } - 50% { opacity: 1; } - 51% { opacity: 0; } -} - -@keyframes red-fade-in-out { - from { opacity: 0; } - 15% { opacity: 0; } - 25% { opacity: 1; } - 50% { opacity: 1; } - 51% { opacity: 0; } -} - -@-webkit-keyframes yellow-fade-in-out { - from { opacity: 0; } - 40% { opacity: 0; } - 50% { opacity: 1; } - 75% { opacity: 1; } - 76% { opacity: 0; } -} - -@keyframes yellow-fade-in-out { - from { opacity: 0; } - 40% { opacity: 0; } - 50% { opacity: 1; } - 75% { opacity: 1; } - 76% { opacity: 0; } -} - -@-webkit-keyframes green-fade-in-out { - from { opacity: 0; } - 65% { opacity: 0; } - 75% { opacity: 1; } - 90% { opacity: 1; } - 100% { opacity: 0; } -} - -@keyframes green-fade-in-out { - from { opacity: 0; } - 65% { opacity: 0; } - 75% { opacity: 1; } - 90% { opacity: 1; } - 100% { opacity: 0; } -} - -/** - * Patch the gap that appear between the two adjacent div.circle-clipper while the - * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11). - */ -.gap-patch { - position: absolute; - top: 0; - left: 45%; - width: 10%; - height: 100%; - overflow: hidden; - border-color: inherit; -} - -.gap-patch .circle { - width: 1000%; - left: -450%; -} - -.circle-clipper { - display: inline-block; - position: relative; - width: 50%; - height: 100%; - overflow: hidden; - border-color: inherit; - - .circle { - width: 200%; - height: 100%; - border-width: 3px; /* STROKEWIDTH */ - border-style: solid; - border-color: inherit; - border-bottom-color: transparent !important; - border-radius: 50%; - -webkit-animation: none; - animation: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; - } - - &.left .circle { - left: 0; - border-right-color: transparent !important; - -webkit-transform: rotate(129deg); - transform: rotate(129deg); - } - &.right .circle { - left: -100%; - border-left-color: transparent !important; - -webkit-transform: rotate(-129deg); - transform: rotate(-129deg); - } -} - - - -.active .circle-clipper.left .circle { - /* duration: ARCTIME */ - -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .circle-clipper.right .circle { - /* duration: ARCTIME */ - -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -@-webkit-keyframes left-spin { - from { -webkit-transform: rotate(130deg); } - 50% { -webkit-transform: rotate(-5deg); } - to { -webkit-transform: rotate(130deg); } -} - -@keyframes left-spin { - from { transform: rotate(130deg); } - 50% { transform: rotate(-5deg); } - to { transform: rotate(130deg); } -} - -@-webkit-keyframes right-spin { - from { -webkit-transform: rotate(-130deg); } - 50% { -webkit-transform: rotate(5deg); } - to { -webkit-transform: rotate(-130deg); } -} - -@keyframes right-spin { - from { transform: rotate(-130deg); } - 50% { transform: rotate(5deg); } - to { transform: rotate(-130deg); } -} - -#spinnerContainer.cooldown { - /* duration: SHRINK_TIME */ - -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1); - animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1); -} - -@-webkit-keyframes fade-out { - from { opacity: 1; } - to { opacity: 0; } -} - -@keyframes fade-out { - from { opacity: 1; } - to { opacity: 0; } -} \ No newline at end of file diff --git a/production/bower_components/Materialize/sass/components/_roboto.scss b/production/bower_components/Materialize/sass/components/_roboto.scss deleted file mode 100644 index 741ab5b..0000000 --- a/production/bower_components/Materialize/sass/components/_roboto.scss +++ /dev/null @@ -1,49 +0,0 @@ -@font-face { - font-family: "Roboto"; - src: local(Roboto Thin), url('#{$roboto-font-path}Roboto-Thin.eot'); - src: url("#{$roboto-font-path}Roboto-Thin.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Thin.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Thin.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Thin.ttf") format("truetype"); - - font-weight: 200; -} -@font-face { - font-family: "Roboto"; - src: local(Roboto Light), url('#{$roboto-font-path}Roboto-Light.eot'); - src: url("#{$roboto-font-path}Roboto-Light.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Light.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Light.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Light.ttf") format("truetype"); - font-weight: 300; -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Regular), url('#{$roboto-font-path}Roboto-Regular.eot'); - src: url("#{$roboto-font-path}Roboto-Regular.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Regular.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Regular.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Regular.ttf") format("truetype"); - font-weight: 400; -} - -@font-face { - font-family: "Roboto"; - src: url('#{$roboto-font-path}Roboto-Medium.eot'); - src: url("#{$roboto-font-path}Roboto-Medium.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Medium.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Medium.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Medium.ttf") format("truetype"); - font-weight: 500; -} - -@font-face { - font-family: "Roboto"; - src: url('#{$roboto-font-path}Roboto-Bold.eot'); - src: url("#{$roboto-font-path}Roboto-Bold.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Bold.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Bold.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Bold.ttf") format("truetype"); - font-weight: 700; -} diff --git a/production/bower_components/Materialize/sass/components/_sideNav.scss b/production/bower_components/Materialize/sass/components/_sideNav.scss deleted file mode 100644 index f363e45..0000000 --- a/production/bower_components/Materialize/sass/components/_sideNav.scss +++ /dev/null @@ -1,218 +0,0 @@ -.side-nav { - position: fixed; - width: 300px; - left: 0; - top: 0; - margin: 0; - transform: translateX(-100%); - height: 100%; - height: calc(100% + 60px); - height: -moz-calc(100%); //Temporary Firefox Fix - padding-bottom: 60px; - background-color: $sidenav-bg-color; - z-index: 999; - backface-visibility: hidden; - overflow-y: auto; - will-change: transform; - backface-visibility: hidden; - transform: translateX(-105%); - - @extend .z-depth-1; - - // Right Align - &.right-aligned { - right: 0; - transform: translateX(105%); - left: auto; - transform: translateX(100%); - } - - .collapsible { - margin: 0; - } - - - li { - float: none; - line-height: $sidenav-item-height; - - &.active { background-color: rgba(0,0,0,.05); } - } - - a { - color: $sidenav-font-color; - display: block; - font-size: $sidenav-font-size; - font-weight: 500; - height: $sidenav-item-height; - line-height: $sidenav-item-height; - padding: 0 ($sidenav-padding * 2); - - &:hover { background-color: rgba(0,0,0,.05);} - - &.btn, &.btn-large, &.btn-flat, &.btn-floating { - margin: 10px 15px; - } - - &.btn, - &.btn-large, - &.btn-floating { color: $button-raised-color; } - &.btn-flat { color: $button-flat-color; } - - &.btn:hover, - &.btn-large:hover { background-color: lighten($button-raised-background, 5%); } - &.btn-floating:hover { background-color: $button-raised-background; } - } - - li > a > i, - li > a > [class^="mdi-"], li > a > [class*="mdi-"], - li > a > i.material-icons { - float: left; - line-height: $sidenav-item-height; - margin: 0 ($sidenav-padding * 2) 0 0; - width: $sidenav-item-height / 2; - color: rgba(0,0,0,.54); - } - - .divider { - margin: ($sidenav-padding / 2) 0 0 0; - } - - .subheader { - &:hover { - background-color: transparent; - } - - cursor: initial; - pointer-events: none; - color: rgba(0,0,0,.54); - font-size: $sidenav-font-size; - font-weight: 500; - line-height: $sidenav-item-height; - } - - .userView { - overflow: hidden; - position: relative; - padding: ($sidenav-padding * 2) ($sidenav-padding * 2) 0; - margin-bottom: $sidenav-padding / 2; - - a { - &:hover { background-color: transparent; } - height: auto; - padding: 0; - } - - .background { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1; - } - - .circle, .name, .email { - display: block; - } - - .circle { - height: 64px; - width: 64px; - } - - .name, - .email { - font-weight: $sidenav-font-size; - line-height: 24px; - } - - .name { - margin-top: 16px; - font-weight: 500; - } - - .email { - padding-bottom: 16px; - font-weight: 400; - } - } -} - - -// Touch interaction -.drag-target { - height: 100%; - width: 10px; - position: fixed; - top: 0; - z-index: 998; -} - - -// Hidden side-nav for all sizes -.side-nav.fixed { - a { - display: block; - padding: 0 $sidenav-padding; - color: $sidenav-font-color; - } -} - - -// Fixed side-nav shown -.side-nav.fixed { - left: 0; - transform: translateX(0); - position: fixed; - - // Right Align - &.right-aligned { - right: 0; - left: auto; - } -} - -// Fixed sideNav hide on smaller -@media #{$medium-and-down} { - .side-nav { - &.fixed { - transform: translateX(-105%); - - &.right-aligned { - transform: translateX(105%); - } - } - - a { - padding: 0 $sidenav-padding; - } - - .userView { - padding: $sidenav-padding $sidenav-padding 0; - } - } -} - - -.side-nav .collapsible-body li.active, -.side-nav.fixed .collapsible-body li.active { - background-color: $primary-color; - a { - color: $sidenav-bg-color; - } -} - - -#sidenav-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - - height: 120vh; - background-color: rgba(0,0,0,.5); - z-index: 997; - - will-change: opacity; -} diff --git a/production/bower_components/Materialize/sass/components/_slider.scss b/production/bower_components/Materialize/sass/components/_slider.scss deleted file mode 100644 index 2265cdb..0000000 --- a/production/bower_components/Materialize/sass/components/_slider.scss +++ /dev/null @@ -1,92 +0,0 @@ -.slider { - position: relative; - height: 400px; - width: 100%; - - // Fullscreen slider - &.fullscreen { - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - - ul.slides { - height: 100%; - } - - ul.indicators { - z-index: 2; - bottom: 30px; - } - } - - .slides { - background-color: $slider-bg-color; - margin: 0; - height: 400px; - - li { - opacity: 0; - position: absolute; - top: 0; - left: 0; - z-index: 1; - width: 100%; - height: inherit; - overflow: hidden; - - img { - height: 100%; - width: 100%; - background-size: cover; - background-position: center; - } - - .caption { - color: #fff; - position: absolute; - top: 15%; - left: 15%; - width: 70%; - opacity: 0; - - p { color: $slider-bg-color-light; } - } - - &.active { - z-index: 2; - } - } - } - - - .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; - - .indicator-item { - display: inline-block; - position: relative; - cursor: pointer; - height: 16px; - width: 16px; - margin: 0 12px; - background-color: $slider-bg-color-light; - - transition: background-color .3s; - border-radius: 50%; - - &.active { - background-color: $slider-indicator-color; - } - } - } - -} \ No newline at end of file diff --git a/production/bower_components/Materialize/sass/components/_table_of_contents.scss b/production/bower_components/Materialize/sass/components/_table_of_contents.scss deleted file mode 100644 index 2872bdb..0000000 --- a/production/bower_components/Materialize/sass/components/_table_of_contents.scss +++ /dev/null @@ -1,33 +0,0 @@ -/*************** - Nav List -***************/ -.table-of-contents { - &.fixed { - position: fixed; - } - - li { - padding: 2px 0; - } - a { - display: inline-block; - font-weight: 300; - color: #757575; - padding-left: 20px; - height: 1.5rem; - line-height: 1.5rem; - letter-spacing: .4; - display: inline-block; - - &:hover { - color: lighten(#757575, 20%); - padding-left: 19px; - border-left: 1px solid lighten(color("materialize-red", "base"),10%); - } - &.active { - font-weight: 500; - padding-left: 18px; - border-left: 2px solid lighten(color("materialize-red", "base"),10%); - } - } -} diff --git a/production/bower_components/Materialize/sass/components/_tabs.scss b/production/bower_components/Materialize/sass/components/_tabs.scss deleted file mode 100644 index 6380882..0000000 --- a/production/bower_components/Materialize/sass/components/_tabs.scss +++ /dev/null @@ -1,56 +0,0 @@ -.tabs { - display: flex; - position: relative; - overflow-x: auto; - overflow-y: hidden; - height: 48px; - background-color: $tabs-bg-color; - margin: 0 auto; - width: 100%; - white-space: nowrap; - - .tab { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - display: block; - float: left; - text-align: center; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: uppercase; - text-overflow: ellipsis; - overflow: hidden; - letter-spacing: .8px; - width: 15%; - min-width: 80px; - - a { - color: $tabs-text-color; - display: block; - width: 100%; - height: 100%; - text-overflow: ellipsis; - overflow: hidden; - transition: color .28s ease; - &:hover { - color: lighten($tabs-text-color, 20%); - } - } - - &.disabled a { - color: lighten($tabs-text-color, 20%); - cursor: default; - } - } - .indicator { - position: absolute; - bottom: 0; - height: 2px; - background-color: $tabs-underline-color; - will-change: left, right; - } -} diff --git a/production/bower_components/Materialize/sass/components/_toast.scss b/production/bower_components/Materialize/sass/components/_toast.scss deleted file mode 100644 index 7d4ef90..0000000 --- a/production/bower_components/Materialize/sass/components/_toast.scss +++ /dev/null @@ -1,65 +0,0 @@ -#toast-container { - display:block; - position: fixed; - z-index: 10000; - - @media #{$small-and-down} { - min-width: 100%; - bottom: 0%; - } - @media #{$medium-only} { - left: 5%; - bottom: 7%; - max-width: 90%; - } - @media #{$large-and-up} { - top: 10%; - right: 7%; - max-width: 86%; - } -} - -.toast { - @extend .z-depth-1; - border-radius: 2px; - top: 0; - width: auto; - clear: both; - margin-top: 10px; - position: relative; - max-width:100%; - height: auto; - min-height: $toast-height; - line-height: 1.5em; - word-break: break-all; - background-color: $toast-color; - padding: 10px 25px; - font-size: 1.1rem; - font-weight: 300; - color: $toast-text-color; - - display: flex; - align-items: center; - justify-content: space-between; - - .btn, .btn-flat { - margin: 0; - margin-left: 3rem; - } - - &.rounded{ - border-radius: 24px; - } - - @media #{$small-and-down} { - width:100%; - border-radius: 0; - } - @media #{$medium-only} { - float: left; - } - @media #{$large-and-up} { - float: right; - } - -} diff --git a/production/bower_components/Materialize/sass/components/_tooltip.scss b/production/bower_components/Materialize/sass/components/_tooltip.scss deleted file mode 100644 index 93d9764..0000000 --- a/production/bower_components/Materialize/sass/components/_tooltip.scss +++ /dev/null @@ -1,32 +0,0 @@ -.material-tooltip { - padding: 10px 8px; - font-size: 1rem; - z-index: 2000; - background-color: transparent; - border-radius: 2px; - color: #fff; - min-height: 36px; - line-height: 120%; - opacity: 0; - display: none; - position: absolute; - text-align: center; - max-width: calc(100% - 4px); - overflow: hidden; - left: 0; - top: 0; - pointer-events: none; -} - -.backdrop { - position: absolute; - opacity: 0; - display: none; - height: 7px; - width: 14px; - border-radius: 0 0 50% 50%; - background-color: #323232; - z-index: -1; - transform-origin: 50% 0%; - transform: translate3d(0,0,0); -} diff --git a/production/bower_components/Materialize/sass/components/_typography.scss b/production/bower_components/Materialize/sass/components/_typography.scss deleted file mode 100644 index 5301c80..0000000 --- a/production/bower_components/Materialize/sass/components/_typography.scss +++ /dev/null @@ -1,61 +0,0 @@ - -a { - text-decoration: none; -} - -html{ - line-height: 1.5; - - @media only screen and (min-width: 0) { - font-size: 14px; - } - - @media only screen and (min-width: $medium-screen) { - font-size: 14.5px; - } - - @media only screen and (min-width: $large-screen) { - font-size: 15px; - } - - font-family: "Roboto", sans-serif; - font-weight: normal; - color: $off-black; -} -h1, h2, h3, h4, h5, h6 { - font-weight: 400; - line-height: 1.1; -} - -// Header Styles -h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; } -h1 { font-size: $h1-fontsize; line-height: 110%; margin: ($h1-fontsize / 2) 0 ($h1-fontsize / 2.5) 0;} -h2 { font-size: $h2-fontsize; line-height: 110%; margin: ($h2-fontsize / 2) 0 ($h2-fontsize / 2.5) 0;} -h3 { font-size: $h3-fontsize; line-height: 110%; margin: ($h3-fontsize / 2) 0 ($h3-fontsize / 2.5) 0;} -h4 { font-size: $h4-fontsize; line-height: 110%; margin: ($h4-fontsize / 2) 0 ($h4-fontsize / 2.5) 0;} -h5 { font-size: $h5-fontsize; line-height: 110%; margin: ($h5-fontsize / 2) 0 ($h5-fontsize / 2.5) 0;} -h6 { font-size: $h6-fontsize; line-height: 110%; margin: ($h6-fontsize / 2) 0 ($h6-fontsize / 2.5) 0;} - -// Text Styles -em { font-style: italic; } -strong { font-weight: 500; } -small { font-size: 75%; } -.light { font-weight: 300; } -.thin { font-weight: 200; } - - -.flow-text{ - font-weight: 300; - $i: 0; - @while $i <= $intervals { - @media only screen and (min-width : 360 + ($i * $interval-size)) { - font-size: 1.2rem * (1 + (.02 * $i)); - } - $i: $i + 1; - } - - // Handle below 360px screen - @media only screen and (max-width: 360px) { - font-size: 1.2rem; - } -} \ No newline at end of file diff --git a/production/bower_components/Materialize/sass/components/_variables.scss b/production/bower_components/Materialize/sass/components/_variables.scss deleted file mode 100644 index eb2aa65..0000000 --- a/production/bower_components/Materialize/sass/components/_variables.scss +++ /dev/null @@ -1,313 +0,0 @@ -/* ========================================================================== - Materialize variables - ========================================================================== */ -/** - * Table of Contents: - * - * 1. Colors - * 2. Badges - * 3. Buttons - * 4. Cards - * 5. Collapsible - * 6. Chips - * 7. Date Picker - * 8. Dropdown - * 10. Forms - * 11. Global - * 12. Grid - * 13. Navigation Bar - * 14. Side Navigation - * 15. Photo Slider - * 16. Spinners | Loaders - * 17. Tabs - * 18. Tables - * 19. Toasts - * 20. Typography - * 21. Footer - * 22. Flow Text - * 23. Collections - * 24. Progress Bar - */ - - -/* 1. Colors - ========================================================================== */ - -$primary-color: color("materialize-red", "lighten-2") !default; -$primary-color-light: lighten($primary-color, 15%) !default; -$primary-color-dark: darken($primary-color, 15%) !default; - -$secondary-color: color("teal", "lighten-1") !default; -$success-color: color("green", "base") !default; -$error-color: color("red", "base") !default; -$link-color: color("light-blue", "darken-1") !default; - - -/* 2. Badges - ========================================================================== */ - -$badge-bg-color: $secondary-color !default; - - -/* 3. Buttons - ========================================================================== */ - -// Shared styles -$button-border: none !default; -$button-background-focus: lighten($secondary-color, 4%) !default; -$button-font-size: 1.3rem !default; -$button-height: 36px !default; -$button-padding: 0 2rem !default; -$button-radius: 2px !default; - -// Disabled styles -$button-disabled-background: #DFDFDF !default; -$button-disabled-color: #9F9F9F !default; - -// Raised buttons -$button-raised-background: $secondary-color !default; -$button-raised-background-hover: lighten($button-raised-background, 5%) !default; -$button-raised-color: #fff !default; - -// Large buttons -$button-large-icon-font-size: 1.6rem !default; -$button-large-height: $button-height * 1.5 !default; - -// Flat buttons -$button-flat-color: #343434 !default; -$button-flat-disabled-color: lighten(#999, 10%) !default; - -// Floating buttons -$button-floating-background: $secondary-color !default; -$button-floating-background-hover: $button-floating-background !default; -$button-floating-color: #fff !default; -$button-floating-size: 37px !default; -$button-floating-large-size: $button-floating-size * 1.5 !default; -$button-floating-radius: 50% !default; - - -/* 4. Cards - ========================================================================== */ - -$card-padding: 20px !default; -$card-bg-color: #fff !default; -$card-link-color: color("orange", "accent-2") !default; -$card-link-color-light: lighten($card-link-color, 20%) !default; - - -/* 5. Collapsible - ========================================================================== */ - -$collapsible-height: 3rem !default; -$collapsible-header-color: #fff !default; -$collapsible-border-color: #ddd !default; - - -/* 6. Chips - ========================================================================== */ - -$chip-bg-color: #e4e4e4 !default; -$chip-border-color: #9e9e9e !default; -$chip-selected-color: #26a69a !default; -$chip-margin: 5px !default; - - -/* 7. Date Picker - ========================================================================== */ - -$datepicker-weekday-bg: darken($secondary-color, 7%) !default; -$datepicker-date-bg: $secondary-color !default; -$datepicker-year: rgba(255, 255, 255, .4) !default; -$datepicker-focus: rgba(0,0,0, .05) !default; -$datepicker-selected: $secondary-color !default; -$datepicker-selected-outfocus: desaturate(lighten($secondary-color, 35%), 15%) !default; - - -/* 8. Dropdown - ========================================================================== */ - -$dropdown-bg-color: #fff !default; -$dropdown-hover-bg-color: #eee !default; -$dropdown-color: $secondary-color !default; -$dropdown-item-height: 50px !default; - - -/* 9. Fonts - ========================================================================== */ - -$roboto-font-path: "../fonts/roboto/" !default; - - -/* 10. Forms - ========================================================================== */ - -// Text Inputs + Textarea -$input-height: 3rem !default; -$input-border-color: color("grey", "base") !default; -$input-border: 1px solid $input-border-color !default; -$input-background: #fff !default; -$input-error-color: $error-color !default; -$input-success-color: $success-color !default; -$input-focus-color: $secondary-color !default; -$input-font-size: 1rem !default; -$input-margin: 0 0 20px 0 !default; -$input-padding: 0 !default; -$input-transition: all .3s !default; -$label-font-size: .8rem !default; -$input-disabled-color: rgba(0,0,0, .26) !default; -$input-disabled-solid-color: #BDBDBD !default; -$input-disabled-border: 1px dotted $input-disabled-color !default; -$input-invalid-border: 1px solid $input-error-color !default; -$placeholder-text-color: lighten($input-border-color, 20%) !default; - -// Radio Buttons -$radio-fill-color: $secondary-color !default; -$radio-empty-color: #5a5a5a !default; -$radio-border: 2px solid $radio-fill-color !default; - -// Range -$range-height: 14px !default; -$range-width: 14px !default; -$track-height: 3px !default; - -// Select -$select-border: 1px solid #f2f2f2 !default; -$select-background: rgba(255, 255, 255, 0.90) !default; -$select-focus: 1px solid lighten($secondary-color, 47%) !default; -$select-padding: 5px !default; -$select-radius: 2px !default; -$select-disabled-color: rgba(0,0,0,.3) !default; - -// Switches -$switch-bg-color: $secondary-color !default; -$switch-checked-lever-bg: desaturate(lighten($secondary-color, 25%), 25%) !default; -$switch-unchecked-bg: #F1F1F1 !default; -$switch-unchecked-lever-bg: #818181 !default; -$switch-radius: 15px !default; - - -/* 11. Global - ========================================================================== */ - -// Media Query Ranges -$small-screen-up: 601px !default; -$medium-screen-up: 993px !default; -$large-screen-up: 1201px !default; -$small-screen: 600px !default; -$medium-screen: 992px !default; -$large-screen: 1200px !default; - -$medium-and-up: "only screen and (min-width : #{$small-screen-up})" !default; -$large-and-up: "only screen and (min-width : #{$medium-screen-up})" !default; -$small-and-down: "only screen and (max-width : #{$small-screen})" !default; -$medium-and-down: "only screen and (max-width : #{$medium-screen})" !default; -$medium-only: "only screen and (min-width : #{$small-screen-up}) and (max-width : #{$medium-screen})" !default; - - -/* 12. Grid - ========================================================================== */ - -$num-cols: 12 !default; -$gutter-width: 1.5rem !default; -$element-top-margin: $gutter-width/3 !default; -$element-bottom-margin: ($gutter-width*2)/3 !default; - - -/* 13. Navigation Bar - ========================================================================== */ - -$navbar-height: 64px !default; -$navbar-height-mobile: 56px !default; -$navbar-font-size: 1rem !default; -$navbar-font-color: #fff !default; -$navbar-brand-font-size: 2.1rem !default; - -/* 14. Side Navigation - ========================================================================== */ - -$sidenav-font-size: 14px !default; -$sidenav-font-color: rgba(0,0,0,.87) !default; -$sidenav-bg-color: #fff !default; -$sidenav-padding: 16px !default; -$sidenav-item-height: 48px !default; - - -/* 15. Photo Slider - ========================================================================== */ - -$slider-bg-color: color('grey', 'base') !default; -$slider-bg-color-light: color('grey', 'lighten-2') !default; -$slider-indicator-color: color('green', 'base') !default; - - -/* 16. Spinners | Loaders - ========================================================================== */ - -$spinner-default-color: $secondary-color !default; - - -/* 17. Tabs - ========================================================================== */ - -$tabs-underline-color: $primary-color-light !default; -$tabs-text-color: $primary-color !default; -$tabs-bg-color: #fff !default; - - -/* 18. Tables - ========================================================================== */ - -$table-border-color: #d0d0d0 !default; -$table-striped-color: #f2f2f2 !default; - - -/* 19. Toasts - ========================================================================== */ - -$toast-height: 48px !default; -$toast-color: #323232 !default; -$toast-text-color: #fff !default; - - -/* 20. Typography - ========================================================================== */ - -$off-black: rgba(0, 0, 0, 0.87) !default; -// Header Styles -$h1-fontsize: 4.2rem !default; -$h2-fontsize: 3.56rem !default; -$h3-fontsize: 2.92rem !default; -$h4-fontsize: 2.28rem !default; -$h5-fontsize: 1.64rem !default; -$h6-fontsize: 1rem !default; - - -/* 21. Footer - ========================================================================== */ - -$footer-bg-color: $primary-color !default; - - -/* 22. Flow Text - ========================================================================== */ - -$range : $large-screen - $small-screen !default; -$intervals: 20 !default; -$interval-size: $range / $intervals !default; - - -/* 23. Collections - ========================================================================== */ - -$collection-border-color: #e0e0e0 !default; -$collection-bg-color: #fff !default; -$collection-active-bg-color: $secondary-color !default; -$collection-active-color: lighten($secondary-color, 55%) !default; -$collection-hover-bg-color: #ddd !default; -$collection-link-color: $secondary-color !default; - - -/* 24. Progress Bar - ========================================================================== */ - -$progress-bar-color: $secondary-color !default; diff --git a/production/bower_components/Materialize/sass/components/_waves.scss b/production/bower_components/Materialize/sass/components/_waves.scss deleted file mode 100644 index ef54a4d..0000000 --- a/production/bower_components/Materialize/sass/components/_waves.scss +++ /dev/null @@ -1,177 +0,0 @@ - -/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ - - -.waves-effect { - position: relative; - cursor: pointer; - display: inline-block; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: transparent; - // white-space: nowrap; - // outline: 0; - - vertical-align: middle; - // cursor: pointer; - // border: none; - // outline: none; - // color: inherit; - // background-color: rgba(0, 0, 0, 0); - // font-size: 1em; - // line-height:1em; - // text-align: center; - // text-decoration: none; - z-index: 1; - will-change: opacity, transform; - transition: all .3s ease-out; - - .waves-ripple { - position: absolute; - border-radius: 50%; - width: 20px; - height: 20px; - margin-top:-10px; - margin-left:-10px; - opacity: 0; - - background: rgba(0,0,0,0.2); - // $gradient: rgba(0,0,0,0.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%; - // background: -webkit-radial-gradient($gradient); - // background: -o-radial-gradient($gradient); - // background: -moz-radial-gradient($gradient); - // background: radial-gradient($gradient); - transition: all 0.7s ease-out; - transition-property: transform, opacity; - transform: scale(0); - pointer-events: none; - } - - // Waves Colors - &.waves-light .waves-ripple { - background-color: rgba(255, 255, 255, 0.45); - } - - &.waves-red .waves-ripple { - background-color: rgba(244, 67, 54, .70); - } - &.waves-yellow .waves-ripple { - background-color: rgba(255, 235, 59, .70); - } - &.waves-orange .waves-ripple { - background-color: rgba(255, 152, 0, .70); - } - &.waves-purple .waves-ripple { - background-color: rgba(156, 39, 176, 0.70); - } - &.waves-green .waves-ripple { - background-color: rgba(76, 175, 80, 0.70); - } - &.waves-teal .waves-ripple { - background-color: rgba(0, 150, 136, 0.70); - } - - // Style input button bug. - input[type="button"], input[type="reset"], input[type="submit"] { - border: 0; - font-style: normal; - font-size: inherit; - text-transform: inherit; - background: none; - } - - img { - position: relative; - z-index: -1; - } -} - -.waves-notransition { - transition: none #{"!important"}; -} - -.waves-circle { - transform: translateZ(0); - -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); -} - -// .waves-button, -// .waves-button:hover, -// .waves-button:visited, -// .waves-button-input { -// white-space: nowrap; -// vertical-align: middle; -// cursor: pointer; -// border: none; -// outline: none; -// color: inherit; -// background-color: rgba(0, 0, 0, 0); -// font-size: 1em; -// line-height:1em; -// text-align: center; -// text-decoration: none; -// z-index: 1; -// } - -// .waves-button { -// padding: 0.85em 1.1em; -// border-radius: 0.2em; -// } - -// .waves-button-input { -// margin: 0; -// padding: 0.85em 1.1em; -// } - -.waves-input-wrapper { - border-radius: 0.2em; - vertical-align: bottom; - - // &.waves-button { - // padding: 0; - // } - - .waves-button-input { - position: relative; - top: 0; - left: 0; - z-index: 1; - } -} - -.waves-circle { - text-align: center; - width: 2.5em; - height: 2.5em; - line-height: 2.5em; - border-radius: 50%; - -webkit-mask-image: none; -} - -// .waves-float { - // -webkit-mask-image: none; - // @include box-shadow(0px 1px 1.5px 1px rgba(0, 0, 0, 0.12)); - - // &:active { - // @include box-shadow(0px 8px 20px 1px rgba(0, 0, 0, 0.30)); -// } -// } - -.waves-block { - display: block; -} - -/* Firefox Bug: link not triggered */ -.waves-effect .waves-ripple { - z-index: -1; -} \ No newline at end of file diff --git a/production/bower_components/Materialize/sass/components/date_picker/_default.date.scss b/production/bower_components/Materialize/sass/components/date_picker/_default.date.scss deleted file mode 100644 index 84e96b5..0000000 --- a/production/bower_components/Materialize/sass/components/date_picker/_default.date.scss +++ /dev/null @@ -1,435 +0,0 @@ -/* ========================================================================== - $BASE-DATE-PICKER - ========================================================================== */ -/** - * The picker box. - */ -.picker__box { - padding: 0 1em; -} -/** - * The header containing the month and year stuff. - */ -.picker__header { - text-align: center; - position: relative; - margin-top: .75em; -} -/** - * The month and year labels. - */ -.picker__month, -.picker__year { -// font-weight: 500; - display: inline-block; - margin-left: .25em; - margin-right: .25em; -} -/** - * The month and year selectors. - */ -.picker__select--month, -.picker__select--year { - - height: 2em; - padding: 0; - margin-left: .25em; - margin-right: .25em; -} - -// Modified -.picker__select--month.browser-default { - display: inline; - background-color: #FFFFFF; - width: 40%; -} -.picker__select--year.browser-default { - display: inline; - background-color: #FFFFFF; - width: 26%; -} -.picker__select--month:focus, -.picker__select--year:focus { - border-color: $datepicker-focus; -} -/** - * The month navigation buttons. - */ -.picker__nav--prev, -.picker__nav--next { - position: absolute; - padding: .5em 1.25em; - width: 1em; - height: 1em; - box-sizing: content-box; - top: -0.25em; -} -//@media (min-width: 24.5em) { -// .picker__nav--prev, -// .picker__nav--next { -// top: -0.33em; -// } -//} -.picker__nav--prev { - left: -1em; - padding-right: 1.25em; -} -//@media (min-width: 24.5em) { -// .picker__nav--prev { -// padding-right: 1.5em; -// } -//} -.picker__nav--next { - right: -1em; - padding-left: 1.25em; -} -//@media (min-width: 24.5em) { -// .picker__nav--next { -// padding-left: 1.5em; -// } -//} - -.picker__nav--disabled, -.picker__nav--disabled:hover, -.picker__nav--disabled:before, -.picker__nav--disabled:before:hover { - cursor: default; - background: none; - border-right-color: #f5f5f5; - border-left-color: #f5f5f5; -} -/** - * The calendar table of dates - */ -.picker__table { - text-align: center; - border-collapse: collapse; - border-spacing: 0; - table-layout: fixed; - font-size: 1rem; - width: 100%; - margin-top: .75em; - margin-bottom: .5em; -} - - - -.picker__table th, .picker__table td { - text-align: center; -} - - - - - - -.picker__table td { - margin: 0; - padding: 0; -} -/** - * The weekday labels - */ -.picker__weekday { - width: 14.285714286%; - font-size: .75em; - padding-bottom: .25em; - color: #999999; - font-weight: 500; - /* Increase the spacing a tad */ -} -@media (min-height: 33.875em) { - .picker__weekday { - padding-bottom: .5em; - } -} -/** - * The days on the calendar - */ - -.picker__day--today { - position: relative; - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; - -} - -//.picker__day--today:before { -// content: " "; -// position: absolute; -// top: 2px; -// right: 2px; -// width: 0; -// height: 0; -// border-top: 0.5em solid #0059bc; -// border-left: .5em solid transparent; -//} -.picker__day--disabled:before { - border-top-color: #aaaaaa; -} - - -.picker__day--infocus:hover{ - cursor: pointer; - color: #000; - font-weight: 500; -} - -.picker__day--outfocus { - display: none; - padding: .75rem 0; - color: #fff; - -} -.picker__day--outfocus:hover { - cursor: pointer; - color: #dddddd; -// background: #b1dcfb; - font-weight: 500; -} - - -.picker__day--highlighted { -// border-color: #0089ec; -} -.picker__day--highlighted:hover, -.picker--focused .picker__day--highlighted { - cursor: pointer; -// color: #000000; -// background: #b1dcfb; -// font-weight: 500; -} -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - - -// Circle background - border-radius: 50%; - transform: scale(.75); - background: #0089ec; - color: #ffffff; -} -.picker__day--disabled, -.picker__day--disabled:hover, -.picker--focused .picker__day--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} -.picker__day--highlighted.picker__day--disabled, -.picker__day--highlighted.picker__day--disabled:hover { - background: #bbbbbb; -} -/** - * The footer containing the "today", "clear", and "close" buttons. - */ -.picker__footer { - text-align: center; - display: flex; - align-items: center; - justify-content: space-between; -} -.picker__button--today, -.picker__button--clear, -.picker__button--close { - border: 1px solid #ffffff; - background: #ffffff; - font-size: .8em; - padding: .66em 0; - font-weight: bold; - width: 33%; - display: inline-block; - vertical-align: bottom; -} -.picker__button--today:hover, -.picker__button--clear:hover, -.picker__button--close:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-bottom-color: #b1dcfb; -} -.picker__button--today:focus, -.picker__button--clear:focus, -.picker__button--close:focus { - background: #b1dcfb; - border-color: $datepicker-focus; - outline: none; -} -.picker__button--today:before, -.picker__button--clear:before, -.picker__button--close:before { - position: relative; - display: inline-block; - height: 0; -} -.picker__button--today:before, -.picker__button--clear:before { - content: " "; - margin-right: .45em; -} -.picker__button--today:before { - top: -0.05em; - width: 0; - border-top: 0.66em solid #0059bc; - border-left: .66em solid transparent; -} -.picker__button--clear:before { - top: -0.25em; - width: .66em; - border-top: 3px solid #ee2200; -} -.picker__button--close:before { - content: "\D7"; - top: -0.1em; - vertical-align: top; - font-size: 1.1em; - margin-right: .35em; - color: #777777; -} -.picker__button--today[disabled], -.picker__button--today[disabled]:hover { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} -.picker__button--today[disabled]:before { - border-top-color: #aaaaaa; -} - -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__box { - border-radius: 2px; - overflow: hidden; -} - -.picker__date-display { - text-align: center; - background-color: $datepicker-date-bg; - color: #fff; - padding-bottom: 15px; - font-weight: 300; -} - -.picker__nav--prev:hover, -.picker__nav--next:hover { - cursor: pointer; - color: #000000; - background: $datepicker-selected-outfocus; -} - -.picker__weekday-display { - background-color: $datepicker-weekday-bg; - padding: 10px; - font-weight: 200; - letter-spacing: .5; - font-size: 1rem; - margin-bottom: 15px; -} - -.picker__month-display { - text-transform: uppercase; - font-size: 2rem; -} -.picker__day-display { - - font-size: 4.5rem; - font-weight: 400; -} -.picker__year-display { - font-size: 1.8rem; - color: $datepicker-year; -} - -.picker__box { - padding: 0; -} -.picker__calendar-container { - padding: 0 1rem; - - thead { - border: none; - } -} - -// Calendar -.picker__table { - margin-top: 0; - margin-bottom: .5em; -} - -.picker__day--infocus { - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; -} - -//Today style -.picker__day.picker__day--today { - color: $datepicker-selected; -} - -.picker__day.picker__day--today.picker__day--selected { - color: #fff; -} - -// Table Header -.picker__weekday { - font-size: .9rem; -} - - -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - // Circle background - border-radius: 50%; - transform: scale(.9); - background-color: $datepicker-selected; - &.picker__day--outfocus { - background-color: $datepicker-selected-outfocus; - } - color: #ffffff; -} - -.picker__footer { - text-align: right; - padding: 5px 10px; -} - -// Materialize modified -.picker__close, .picker__today { - font-size: 1.1rem; - padding: 0 1rem; - color: $datepicker-selected; -} - -//month nav buttons -.picker__nav--prev:before, -.picker__nav--next:before { - content: " "; - border-top: .5em solid transparent; - border-bottom: .5em solid transparent; - border-right: 0.75em solid #676767; - width: 0; - height: 0; - display: block; - margin: 0 auto; -} -.picker__nav--next:before { - border-right: 0; - border-left: 0.75em solid #676767; -} -button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus { - background-color: $datepicker-selected-outfocus; -} diff --git a/production/bower_components/Materialize/sass/components/date_picker/_default.scss b/production/bower_components/Materialize/sass/components/date_picker/_default.scss deleted file mode 100644 index 971fbc7..0000000 --- a/production/bower_components/Materialize/sass/components/date_picker/_default.scss +++ /dev/null @@ -1,201 +0,0 @@ -/* ========================================================================== - $BASE-PICKER - ========================================================================== */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -.picker { - font-size: 16px; - text-align: left; - line-height: 1.2; - color: #000000; - position: absolute; - z-index: 10000; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -/** - * The picker input element. - */ -.picker__input { - cursor: default; -} -/** - * When the picker is opened, the input element is "activated". - */ -.picker__input.picker__input--active { - border-color: #0089ec; -} -/** - * The holder is the only "scrollable" top-level container element. - */ -.picker__holder { - width: 100%; - overflow-y: auto; - -webkit-overflow-scrolling: touch; -} - -/*! - * Default mobile-first, responsive styling for pickadate.js - * Demo: http://amsul.github.io/pickadate.js - */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -/** - * Make the holder and frame fullscreen. - */ -.picker__holder, -.picker__frame { - bottom: 0; - left: 0; - right: 0; - top: 100%; -} -/** - * The holder should overlay the entire screen. - */ -.picker__holder { - position: fixed; - -webkit-transition: background 0.15s ease-out, top 0s 0.15s; - -moz-transition: background 0.15s ease-out, top 0s 0.15s; - transition: background 0.15s ease-out, top 0s 0.15s; - -webkit-backface-visibility: hidden; -} -/** - * The frame that bounds the box contents of the picker. - */ -.picker__frame { - position: absolute; - margin: 0 auto; - min-width: 256px; - -// picker width - width: 300px; - max-height: 350px; - - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -moz-opacity: 0; - opacity: 0; - -webkit-transition: all 0.15s ease-out; - -moz-transition: all 0.15s ease-out; - transition: all 0.15s ease-out; -} -@media (min-height: 28.875em) { - .picker__frame { - overflow: visible; - top: auto; - bottom: -100%; - max-height: 80%; - } -} -@media (min-height: 40.125em) { - .picker__frame { - margin-bottom: 7.5%; - } -} -/** - * The wrapper sets the stage to vertically align the box contents. - */ -.picker__wrap { - display: table; - width: 100%; - height: 100%; -} -@media (min-height: 28.875em) { - .picker__wrap { - display: block; - } -} -/** - * The box contains all the picker contents. - */ -.picker__box { - background: #ffffff; - display: table-cell; - vertical-align: middle; -} -//@media (min-height: 26.5em) { -// .picker__box { -//// font-size: 1.25em; -// } -//} -@media (min-height: 28.875em) { - .picker__box { - display: block; - -// picker header font-size -// font-size: 1rem; - - border: 1px solid #777777; - border-top-color: #898989; - border-bottom-width: 0; - -webkit-border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - border-radius: 5px 5px 0 0; - -webkit-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - -moz-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - } -} -//@media (min-height: 40.125em) { -// .picker__box { -// font-size: 1.1rem; -// border-bottom-width: 1px; -// -webkit-border-radius: 5px; -// -moz-border-radius: 5px; -// border-radius: 5px; -// } -//} -/** - * When the picker opens... - */ -.picker--opened .picker__holder { - top: 0; - background: transparent; - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)"; - zoom: 1; - background: rgba(0, 0, 0, 0.32); - -webkit-transition: background 0.15s ease-out; - -moz-transition: background 0.15s ease-out; - transition: background 0.15s ease-out; -} -.picker--opened .picker__frame { - top: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; - filter: alpha(opacity=100); - -moz-opacity: 1; - opacity: 1; -} -@media (min-height: 35.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} -/** - * For `large` screens, transform into an inline picker. - */ - -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ - -.picker__input.picker__input--active { - border-color: color("blue", "lighten-5"); -} - -.picker__frame { - margin: 0 auto; - max-width: 325px; -} - -@media (min-height: 38.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} diff --git a/production/bower_components/Materialize/sass/components/date_picker/_default.time.scss b/production/bower_components/Materialize/sass/components/date_picker/_default.time.scss deleted file mode 100644 index 0b159c8..0000000 --- a/production/bower_components/Materialize/sass/components/date_picker/_default.time.scss +++ /dev/null @@ -1,125 +0,0 @@ -/* ========================================================================== - $BASE-TIME-PICKER - ========================================================================== */ -/** - * The list of times. - */ -.picker__list { - list-style: none; - padding: 0.75em 0 4.2em; - margin: 0; -} -/** - * The times on the clock. - */ -.picker__list-item { - border-bottom: 1px solid #dddddd; - border-top: 1px solid #dddddd; - margin-bottom: -1px; - position: relative; - background: #ffffff; - padding: .75em 1.25em; -} -@media (min-height: 46.75em) { - .picker__list-item { - padding: .5em 1em; - } -} -/* Hovered time */ -.picker__list-item:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-color: #0089ec; - z-index: 10; -} -/* Highlighted and hovered/focused time */ -.picker__list-item--highlighted { - border-color: #0089ec; - z-index: 10; -} -.picker__list-item--highlighted:hover, -.picker--focused .picker__list-item--highlighted { - cursor: pointer; - color: #000000; - background: #b1dcfb; -} -/* Selected and hovered/focused time */ -.picker__list-item--selected, -.picker__list-item--selected:hover, -.picker--focused .picker__list-item--selected { - background: #0089ec; - color: #ffffff; - z-index: 10; -} -/* Disabled time */ -.picker__list-item--disabled, -.picker__list-item--disabled:hover, -.picker--focused .picker__list-item--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; - border-color: #dddddd; - z-index: auto; -} -/** - * The clear button - */ -.picker--time .picker__button--clear { - display: block; - width: 80%; - margin: 1em auto 0; - padding: 1em 1.25em; - background: none; - border: 0; - font-weight: 500; - font-size: .67em; - text-align: center; - text-transform: uppercase; - color: #666; -} -.picker--time .picker__button--clear:hover, -.picker--time .picker__button--clear:focus { - color: #000000; - background: #b1dcfb; - background: #ee2200; - border-color: #ee2200; - cursor: pointer; - color: #ffffff; - outline: none; -} -.picker--time .picker__button--clear:before { - top: -0.25em; - color: #666; - font-size: 1.25em; - font-weight: bold; -} -.picker--time .picker__button--clear:hover:before, -.picker--time .picker__button--clear:focus:before { - color: #ffffff; -} - -/* ========================================================================== - $DEFAULT-TIME-PICKER - ========================================================================== */ -/** - * The frame the bounds the time picker. - */ -.picker--time .picker__frame { - min-width: 256px; - max-width: 320px; -} -/** - * The picker box. - */ -.picker--time .picker__box { - font-size: 1em; - background: #f2f2f2; - padding: 0; -} -@media (min-height: 40.125em) { - .picker--time .picker__box { - margin-bottom: 5em; - } -} diff --git a/production/bower_components/Materialize/sass/components/forms/_checkboxes.scss b/production/bower_components/Materialize/sass/components/forms/_checkboxes.scss deleted file mode 100644 index a8743c1..0000000 --- a/production/bower_components/Materialize/sass/components/forms/_checkboxes.scss +++ /dev/null @@ -1,220 +0,0 @@ -/* Checkboxes - ========================================================================== */ - -/* CUSTOM CSS CHECKBOXES */ -form p { - margin-bottom: 10px; - text-align: left; -} - -form p:last-child { - margin-bottom: 0; -} - -/* Remove default checkbox */ -[type="checkbox"]:not(:checked), -[type="checkbox"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -// Checkbox Styles -[type="checkbox"] { - // Text Label Style - + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - - -webkit-user-select: none; /* webkit (safari, chrome) browsers */ - -moz-user-select: none; /* mozilla browsers */ - -khtml-user-select: none; /* webkit (konqueror) browsers */ - -ms-user-select: none; /* IE10+ */ - } - - /* checkbox aspect */ - + label:before, - &:not(.filled-in) + label:after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 18px; - height: 18px; - z-index: 0; - border: 2px solid $radio-empty-color; - border-radius: 1px; - margin-top: 2px; - transition: .2s; - } - - &:not(.filled-in) + label:after { - border: 0; - transform: scale(0); - } - - &:not(:checked):disabled + label:before { - border: none; - background-color: $input-disabled-color; - } - - // Focused styles - &.tabbed:focus + label:after { - transform: scale(1); - border: 0; - border-radius: 50%; - box-shadow: 0 0 0 10px rgba(0,0,0,.1); - background-color: rgba(0,0,0,.1); - } -} - -[type="checkbox"]:checked { - + label:before { - top: -4px; - left: -5px; - width: 12px; - height: 22px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: $radio-border; - border-bottom: $radio-border; - transform: rotate(40deg); - backface-visibility: hidden; - transform-origin: 100% 100%; - } - - &:disabled + label:before { - border-right: 2px solid $input-disabled-color; - border-bottom: 2px solid $input-disabled-color; - } -} - -/* Indeterminate checkbox */ -[type="checkbox"]:indeterminate { - +label:before { - top: -11px; - left: -12px; - width: 10px; - height: 22px; - border-top: none; - border-left: none; - border-right: $radio-border; - border-bottom: none; - transform: rotate(90deg); - backface-visibility: hidden; - transform-origin: 100% 100%; - } - - // Disabled indeterminate - &:disabled + label:before { - border-right: 2px solid $input-disabled-color; - background-color: transparent; - } -} - -// Filled in Style -[type="checkbox"].filled-in { - // General - + label:after { - border-radius: 2px; - } - - + label:before, - + label:after { - content: ''; - left: 0; - position: absolute; - /* .1s delay is for check animation */ - transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s; - z-index: 1; - } - - // Unchecked style - &:not(:checked) + label:before { - width: 0; - height: 0; - border: 3px solid transparent; - left: 6px; - top: 10px; - - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 20% 40%; - transform-origin: 100% 100%; - } - - &:not(:checked) + label:after { - height: 20px; - width: 20px; - background-color: transparent; - border: 2px solid $radio-empty-color; - top: 0px; - z-index: 0; - } - - // Checked style - &:checked { - + label:before { - top: 0; - left: 1px; - width: 8px; - height: 13px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid $input-background; - border-bottom: 2px solid $input-background; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; - } - - + label:after { - top: 0; - width: 20px; - height: 20px; - border: 2px solid $secondary-color; - background-color: $secondary-color; - z-index: 0; - } - } - - // Focused styles - &.tabbed:focus + label:after { - border-radius: 2px; - border-color: $radio-empty-color; - background-color: rgba(0,0,0,.1); - } - - &.tabbed:checked:focus + label:after { - border-radius: 2px; - background-color: $secondary-color; - border-color: $secondary-color; - } - - // Disabled style - &:disabled:not(:checked) + label:before { - background-color: transparent; - border: 2px solid transparent; - } - - &:disabled:not(:checked) + label:after { - border-color: transparent; - background-color: $input-disabled-solid-color; - } - - &:disabled:checked + label:before { - background-color: transparent; - } - - &:disabled:checked + label:after { - background-color: $input-disabled-solid-color; - border-color: $input-disabled-solid-color; - } -} diff --git a/production/bower_components/Materialize/sass/components/forms/_file-input.scss b/production/bower_components/Materialize/sass/components/forms/_file-input.scss deleted file mode 100644 index 3b3fe55..0000000 --- a/production/bower_components/Materialize/sass/components/forms/_file-input.scss +++ /dev/null @@ -1,38 +0,0 @@ -/* File Input - ========================================================================== */ - -.file-field { - position: relative; - - .file-path-wrapper { - overflow: hidden; - padding-left: 10px; - } - - input.file-path { width: 100%; } - - .btn { - float: left; - height: $input-height; - line-height: $input-height; - } - - span { - cursor: pointer; - } - - input[type=file] { - position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; - width: 100%; - margin: 0; - padding: 0; - font-size: 20px; - cursor: pointer; - opacity: 0; - filter: alpha(opacity=0); - } -} diff --git a/production/bower_components/Materialize/sass/components/forms/_forms.scss b/production/bower_components/Materialize/sass/components/forms/_forms.scss deleted file mode 100644 index e9b65b4..0000000 --- a/production/bower_components/Materialize/sass/components/forms/_forms.scss +++ /dev/null @@ -1,22 +0,0 @@ -// Remove Focus Boxes -select:focus { - outline: $select-focus; -} - -button:focus { - outline: none; - background-color: $button-background-focus; -} - -label { - font-size: $label-font-size; - color: $input-border-color; -} - -@import 'input-fields'; -@import 'radio-buttons'; -@import 'checkboxes'; -@import 'switches'; -@import 'select'; -@import 'file-input'; -@import 'range'; diff --git a/production/bower_components/Materialize/sass/components/forms/_input-fields.scss b/production/bower_components/Materialize/sass/components/forms/_input-fields.scss deleted file mode 100644 index 327851d..0000000 --- a/production/bower_components/Materialize/sass/components/forms/_input-fields.scss +++ /dev/null @@ -1,273 +0,0 @@ -/* Text Inputs + Textarea - ========================================================================== */ - -/* Style Placeholders */ - -::-webkit-input-placeholder { - color: $placeholder-text-color; -} - -:-moz-placeholder { /* Firefox 18- */ - color: $placeholder-text-color; -} - -::-moz-placeholder { /* Firefox 19+ */ - color: $placeholder-text-color; -} - -:-ms-input-placeholder { - color: $placeholder-text-color; -} - -/* Text inputs */ - -input:not([type]), -input[type=text], -input[type=password], -input[type=email], -input[type=url], -input[type=time], -input[type=date], -input[type=datetime], -input[type=datetime-local], -input[type=tel], -input[type=number], -input[type=search], -textarea.materialize-textarea { - - // General Styles - background-color: transparent; - border: none; - border-bottom: $input-border; - border-radius: 0; - outline: none; - height: $input-height; - width: 100%; - font-size: $input-font-size; - margin: $input-margin; - padding: $input-padding; - box-shadow: none; - box-sizing: content-box; - transition: $input-transition; - - // Disabled input style - &:disabled, - &[readonly="readonly"] { - color: $input-disabled-color; - border-bottom: $input-disabled-border; - } - - // Disabled label style - &:disabled+label, - &[readonly="readonly"]+label { - color: $input-disabled-color; - } - - // Focused input style - &:focus:not([readonly]) { - border-bottom: 1px solid $input-focus-color; - box-shadow: 0 1px 0 0 $input-focus-color; - } - - // Focused label style - &:focus:not([readonly])+label { - color: $input-focus-color; - } - - // Valid Input Style - &.valid, - &:focus.valid { - border-bottom: 1px solid $input-success-color; - box-shadow: 0 1px 0 0 $input-success-color; - } - - // Custom Success Message - &.valid + label:after, - &:focus.valid + label:after { - content: attr(data-success); - color: $input-success-color; - opacity: 1; - } - - // Invalid Input Style - &.invalid, - &:focus.invalid { - border-bottom: $input-invalid-border; - box-shadow: 0 1px 0 0 $input-error-color; - } - - // Custom Error message - &.invalid + label:after, - &:focus.invalid + label:after { - content: attr(data-error); - color: $input-error-color; - opacity: 1; - } - - // Full width label when using validate for error messages - &.validate + label { - width: 100%; - pointer-events: none; - } - - // Form Message Shared Styles - & + label:after { - display: block; - content: ""; - position: absolute; - top: 60px; - opacity: 0; - transition: .2s opacity ease-out, .2s color ease-out; - } -} - -// Styling for input field wrapper -.input-field { - // Gutter spacing - &.col { - label { - left: $gutter-width / 2; - } - - .prefix ~ label, - .prefix ~ .validate ~ label { - width: calc(100% - 3rem - #{$gutter-width}); - } - } - - position: relative; - margin-top: 1rem; - - label { - color: $input-border-color; - position: absolute; - top: 0.8rem; - font-size: 1rem; - cursor: text; - transition: .2s ease-out; - } - - label.active { - font-size: $label-font-size; - transform: translateY(-140%); - } - - // Prefix Icons - .prefix { - position: absolute; - width: $input-height; - font-size: 2rem; - transition: color .2s; - - &.active { color: $input-focus-color; } - } - - .prefix ~ input, - .prefix ~ textarea, - .prefix ~ label, - .prefix ~ .validate ~ label, - .prefix ~ .autocomplete-content { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); - } - - .prefix ~ label { margin-left: 3rem; } - - @media #{$medium-and-down} { - .prefix ~ input { - width: 86%; - width: calc(100% - 3rem); - } - } - - @media #{$small-and-down} { - .prefix ~ input { - width: 80%; - width: calc(100% - 3rem); - } - } -} - - -/* Search Field */ - -.input-field input[type=search] { - display: block; - line-height: inherit; - padding-left: 4rem; - width: calc(100% - 4rem); - - &:focus { - background-color: $input-background; - border: 0; - box-shadow: none; - color: #444; - - & + label i, - & ~ .mdi-navigation-close, - & ~ .material-icons { - color: #444; - } - } - - & + label { - left: 1rem; - } - - & ~ .mdi-navigation-close, - & ~ .material-icons { - position: absolute; - top: 0; - right: 1rem; - color: transparent; - cursor: pointer; - font-size: 2rem; - transition: .3s color; - } -} - - -/* Textarea */ - -// Default textarea -textarea { - width: 100%; - height: $input-height; - background-color: transparent; - - &.materialize-textarea { - overflow-y: hidden; /* prevents scroll bar flash */ - padding: .8rem 0 1.6rem 0; /* prevents text jump on Enter keypress */ - resize: none; - min-height: $input-height; - } -} - -// For textarea autoresize -.hiddendiv { - display: none; - white-space: pre-wrap; - word-wrap: break-word; - overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */ - padding-top: 1.2rem; /* prevents text jump on Enter keypress */ -} - - -/* Autocomplete */ -.autocomplete-content { - margin-top: -15px; - display: block; - opacity: 1; - position: static; - - li { - .highlight { color: #444; } - - img { - height: $dropdown-item-height - 10; - width: $dropdown-item-height - 10; - margin: 5px 15px; - } - } -} diff --git a/production/bower_components/Materialize/sass/components/forms/_radio-buttons.scss b/production/bower_components/Materialize/sass/components/forms/_radio-buttons.scss deleted file mode 100644 index cb1f37d..0000000 --- a/production/bower_components/Materialize/sass/components/forms/_radio-buttons.scss +++ /dev/null @@ -1,119 +0,0 @@ -/* Radio Buttons - ========================================================================== */ - -// Remove default Radio Buttons -[type="radio"]:not(:checked), -[type="radio"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -[type="radio"]:not(:checked) + label, -[type="radio"]:checked + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - transition: .28s ease; - - -khtml-user-select: none; /* webkit (konqueror) browsers */ - user-select: none; -} - -[type="radio"] + label:before, -[type="radio"] + label:after { - content: ''; - position: absolute; - left: 0; - top: 0; - margin: 4px; - width: 16px; - height: 16px; - z-index: 0; - transition: .28s ease; -} - -/* Unchecked styles */ -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after, -[type="radio"]:checked + label:before, -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border-radius: 50%; -} - -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after { - border: 2px solid $radio-empty-color; -} - -[type="radio"]:not(:checked) + label:after { - z-index: -1; - transform: scale(0); -} - -/* Checked styles */ -[type="radio"]:checked + label:before { - border: 2px solid transparent; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border: $radio-border; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:after { - background-color: $radio-fill-color; - z-index: 0; -} - -[type="radio"]:checked + label:after { - transform: scale(1.02); -} - -/* Radio With gap */ -[type="radio"].with-gap:checked + label:after { - transform: scale(.5); -} - -/* Focused styles */ -[type="radio"].tabbed:focus + label:before { - box-shadow: 0 0 0 10px rgba(0,0,0,.1); -} - -/* Disabled Radio With gap */ -[type="radio"].with-gap:disabled:checked + label:before { - border: 2px solid $input-disabled-color; -} - -[type="radio"].with-gap:disabled:checked + label:after { - border: none; - background-color: $input-disabled-color; -} - -/* Disabled style */ -[type="radio"]:disabled:not(:checked) + label:before, -[type="radio"]:disabled:checked + label:before { - background-color: transparent; - border-color: $input-disabled-color; -} - -[type="radio"]:disabled + label { - color: $input-disabled-color; -} - -[type="radio"]:disabled:not(:checked) + label:before { - border-color: $input-disabled-color; -} - -[type="radio"]:disabled:checked + label:after { - background-color: $input-disabled-color; - border-color: $input-disabled-solid-color; -} diff --git a/production/bower_components/Materialize/sass/components/forms/_range.scss b/production/bower_components/Materialize/sass/components/forms/_range.scss deleted file mode 100644 index 7947375..0000000 --- a/production/bower_components/Materialize/sass/components/forms/_range.scss +++ /dev/null @@ -1,159 +0,0 @@ -/* Range - ========================================================================== */ - -.range-field { - position: relative; -} - -input[type=range], -input[type=range] + .thumb { - @extend .no-select; - cursor: pointer; -} - -input[type=range] { - position: relative; - background-color: transparent; - border: none; - outline: none; - width: 100%; - margin: 15px 0; - padding: 0; - - &:focus { - outline: none; - } -} - -input[type=range] + .thumb { - position: absolute; - border: none; - height: 0; - width: 0; - border-radius: 50%; - background-color: $radio-fill-color; - top: 10px; - margin-left: -6px; - - transform-origin: 50% 50%; - transform: rotate(-45deg); - - .value { - display: block; - width: 30px; - text-align: center; - color: $radio-fill-color; - font-size: 0; - transform: rotate(45deg); - } - - &.active { - border-radius: 50% 50% 50% 0; - - .value { - color: $input-background; - margin-left: -1px; - margin-top: 8px; - font-size: 10px; - } - } -} - -// WebKit -input[type=range] { - -webkit-appearance: none; -} - -input[type=range]::-webkit-slider-runnable-track { - height: $track-height; - background: #c2c0c2; - border: none; -} - -input[type=range]::-webkit-slider-thumb { - -webkit-appearance: none; - border: none; - height: $range-height; - width: $range-width; - border-radius: 50%; - background-color: $radio-fill-color; - transform-origin: 50% 50%; - margin: -5px 0 0 0; - transition: .3s; -} - -input[type=range]:focus::-webkit-slider-runnable-track { - background: #ccc; -} - -// FireFox -input[type=range] { - /* fix for FF unable to apply focus style bug */ - border: 1px solid white; - - /*required for proper track sizing in FF*/ -} - -input[type=range]::-moz-range-track { - height: $track-height; - background: #ddd; - border: none; -} - -input[type=range]::-moz-range-thumb { - border: none; - height: $range-height; - width: $range-width; - border-radius: 50%; - background: $radio-fill-color; - margin-top: -5px; -} - -// hide the outline behind the border -input[type=range]:-moz-focusring { - outline: 1px solid #fff; - outline-offset: -1px; -} - -input[type=range]:focus::-moz-range-track { - background: #ccc; -} - -// IE 10+ -input[type=range]::-ms-track { - height: $track-height; - - // remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead - background: transparent; - - // leave room for the larger thumb to overflow with a transparent border */ - border-color: transparent; - border-width: 6px 0; - - /*remove default tick marks*/ - color: transparent; -} - -input[type=range]::-ms-fill-lower { - background: #777; -} - -input[type=range]::-ms-fill-upper { - background: #ddd; -} - -input[type=range]::-ms-thumb { - border: none; - height: $range-height; - width: $range-width; - border-radius: 50%; - background: $radio-fill-color; -} - -input[type=range]:focus::-ms-fill-lower { - background: #888; -} - -input[type=range]:focus::-ms-fill-upper { - background: #ccc; -} diff --git a/production/bower_components/Materialize/sass/components/forms/_select.scss b/production/bower_components/Materialize/sass/components/forms/_select.scss deleted file mode 100644 index 884351a..0000000 --- a/production/bower_components/Materialize/sass/components/forms/_select.scss +++ /dev/null @@ -1,116 +0,0 @@ -/* Select Field - ========================================================================== */ - -select { display: none; } -select.browser-default { display: block; } - -select { - background-color: $select-background; - width: 100%; - padding: $select-padding; - border: $select-border; - border-radius: $select-radius; - height: $input-height; -} - -.select-label { - position: absolute; -} - -.select-wrapper { - position: relative; - - input.select-dropdown { - position: relative; - cursor: pointer; - background-color: transparent; - border: none; - border-bottom: $input-border; - outline: none; - height: $input-height; - line-height: $input-height; - width: 100%; - font-size: $input-font-size; - margin: $input-margin; - padding: 0; - display: block; - } - - span.caret { - color: initial; - position: absolute; - right: 0; - top: 16px; - font-size: 10px; - &.disabled { - color: $input-disabled-color; - } - } - - & + label { - position: absolute; - top: -14px; - font-size: $label-font-size; - } -} - -// Disabled styles -select:disabled { - color: rgba(0,0,0,.3); -} - -.select-wrapper input.select-dropdown:disabled { - color: rgba(0,0,0,.3); - cursor: default; - -webkit-user-select: none; /* webkit (safari, chrome) browsers */ - -moz-user-select: none; /* mozilla browsers */ - -ms-user-select: none; /* IE10+ */ - border-bottom: 1px solid rgba(0,0,0,.3); -} - -.select-wrapper i { - color: $select-disabled-color; -} - -.select-dropdown li.disabled, -.select-dropdown li.disabled > span, -.select-dropdown li.optgroup { - color: $select-disabled-color; - background-color: transparent; -} - -// Prefix Icons -.prefix ~ .select-wrapper { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.prefix ~ label { margin-left: 3rem; } - -// Icons -.select-dropdown li { - img { - height: $dropdown-item-height - 10; - width: $dropdown-item-height - 10; - margin: 5px 15px; - float: right; - } -} - -// Optgroup styles -.select-dropdown li.optgroup { - border-top: 1px solid $dropdown-hover-bg-color; - - &.selected > span { - color: rgba(0, 0, 0, .7); - } - - & > span { - color: rgba(0, 0, 0, .4); - } - - & ~ li.optgroup-option { - padding-left: 1rem; - } -} diff --git a/production/bower_components/Materialize/sass/components/forms/_switches.scss b/production/bower_components/Materialize/sass/components/forms/_switches.scss deleted file mode 100644 index 2c6655a..0000000 --- a/production/bower_components/Materialize/sass/components/forms/_switches.scss +++ /dev/null @@ -1,78 +0,0 @@ -/* Switch - ========================================================================== */ - -.switch, -.switch * { - -webkit-user-select: none; - -moz-user-select: none; - -khtml-user-select: none; - -ms-user-select: none; -} - -.switch label { - cursor: pointer; -} - -.switch label input[type=checkbox] { - opacity: 0; - width: 0; - height: 0; - - &:checked + .lever { - background-color: $switch-checked-lever-bg; - - &:after { - background-color: $switch-bg-color; - left: 24px; - } - } -} - -.switch label .lever { - content: ""; - display: inline-block; - position: relative; - width: 40px; - height: 15px; - background-color: $switch-unchecked-lever-bg; - border-radius: $switch-radius; - margin-right: 10px; - transition: background 0.3s ease; - vertical-align: middle; - margin: 0 16px; - - &:after { - content: ""; - position: absolute; - display: inline-block; - width: 21px; - height: 21px; - background-color: $switch-unchecked-bg; - border-radius: 21px; - box-shadow: 0 1px 3px 1px rgba(0,0,0,.4); - left: -5px; - top: -3px; - transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease; - } -} - -// Switch active style -input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after, -input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0,0,0,.4), 0 0 0 15px transparentize($switch-bg-color, .9); -} - -input[type=checkbox]:not(:disabled) ~ .lever:active:after, -input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0,0,0,.4), 0 0 0 15px rgba(0, 0, 0, .08); -} - -// Disabled Styles -.switch input[type=checkbox][disabled] + .lever { - cursor: default; -} - -.switch label input[type=checkbox][disabled] + .lever:after, -.switch label input[type=checkbox][disabled]:checked + .lever:after { - background-color: $input-disabled-solid-color; -} diff --git a/production/bower_components/Materialize/sass/materialize.scss b/production/bower_components/Materialize/sass/materialize.scss deleted file mode 100644 index 2bc0473..0000000 --- a/production/bower_components/Materialize/sass/materialize.scss +++ /dev/null @@ -1,40 +0,0 @@ -@charset "UTF-8"; - -// Mixins -// @import "components/prefixer"; -@import "components/mixins"; -@import "components/color"; - -// Variables; -@import "components/variables"; - -// Reset -@import "components/normalize"; - -// components -@import "components/global"; -@import "components/icons-material-design"; -@import "components/grid"; -@import "components/navbar"; -@import "components/roboto"; -@import "components/typography"; -@import "components/cards"; -@import "components/toast"; -@import "components/tabs"; -@import "components/tooltip"; -@import "components/buttons"; -@import "components/dropdown"; -@import "components/waves"; -@import "components/modal"; -@import "components/collapsible"; -@import "components/chips"; -@import "components/materialbox"; -@import "components/forms/forms"; -@import "components/table_of_contents"; -@import "components/sideNav"; -@import "components/preloader"; -@import "components/slider"; -@import "components/carousel"; -@import "components/date_picker/default"; -@import "components/date_picker/default.date"; -@import "components/date_picker/default.time"; diff --git a/production/bower_components/Materialize/templates/masonry-template/LICENSE b/production/bower_components/Materialize/templates/masonry-template/LICENSE deleted file mode 100644 index c795dcc..0000000 --- a/production/bower_components/Materialize/templates/masonry-template/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Materialize - -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. \ No newline at end of file diff --git a/production/bower_components/Materialize/templates/masonry-template/background1.jpg b/production/bower_components/Materialize/templates/masonry-template/background1.jpg deleted file mode 100644 index e8b388e..0000000 Binary files a/production/bower_components/Materialize/templates/masonry-template/background1.jpg and /dev/null differ diff --git a/production/bower_components/Materialize/templates/masonry-template/background2.jpg b/production/bower_components/Materialize/templates/masonry-template/background2.jpg deleted file mode 100644 index cc0a11c..0000000 Binary files a/production/bower_components/Materialize/templates/masonry-template/background2.jpg and /dev/null differ diff --git a/production/bower_components/Materialize/templates/masonry-template/background3.jpg b/production/bower_components/Materialize/templates/masonry-template/background3.jpg deleted file mode 100644 index 0bc540d..0000000 Binary files a/production/bower_components/Materialize/templates/masonry-template/background3.jpg and /dev/null differ diff --git a/production/bower_components/Materialize/templates/masonry-template/css/style.css b/production/bower_components/Materialize/templates/masonry-template/css/style.css deleted file mode 100644 index d894cbd..0000000 --- a/production/bower_components/Materialize/templates/masonry-template/css/style.css +++ /dev/null @@ -1,55 +0,0 @@ -/* Custom Stylesheet */ -/** - * Use this file to override Materialize files so you can update - * the core Materialize files in the future - * - * Made By MaterializeCSS.com - */ - -nav ul a, -nav .brand-logo { - color: #444; -} - -p { - line-height: 2rem; -} - -.button-collapse { - color: #26a69a; -} - -.parallax-container { - min-height: 380px; - line-height: 0; - height: auto; - color: rgba(255,255,255,.9); -} - .parallax-container .section { - width: 100%; - } - -@media only screen and (max-width : 992px) { - .parallax-container .section { - position: absolute; - top: 40%; - } - #index-banner .section { - top: 10%; - } -} - -@media only screen and (max-width : 600px) { - #index-banner .section { - top: 0; - } -} - - -.icon-block { - padding: 0 15px; -} - -footer.page-footer { - margin: 0; -} \ No newline at end of file diff --git a/production/bower_components/Materialize/templates/masonry-template/js/init.js b/production/bower_components/Materialize/templates/masonry-template/js/init.js deleted file mode 100644 index dbc6473..0000000 --- a/production/bower_components/Materialize/templates/masonry-template/js/init.js +++ /dev/null @@ -1,16 +0,0 @@ -(function($){ - $(function(){ - - $('.button-collapse').sideNav(); - - - var $container = $('#masonry-grid'); - // initialize - $container.masonry({ - columnWidth: '.col', - itemSelector: '.col', - }); - - - }); // end of document ready -})(jQuery); // end of jQuery name space \ No newline at end of file diff --git a/production/bower_components/Materialize/templates/masonry-template/js/masonry.pkgd.min.js b/production/bower_components/Materialize/templates/masonry-template/js/masonry.pkgd.min.js deleted file mode 100644 index 628bb12..0000000 --- a/production/bower_components/Materialize/templates/masonry-template/js/masonry.pkgd.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Masonry PACKAGED v3.2.2 - * Cascading grid layout library - * http://masonry.desandro.com - * MIT License - * by David DeSandro - */ - -!function(a){function b(){}function c(a){function c(b){b.prototype.option||(b.prototype.option=function(b){a.isPlainObject(b)&&(this.options=a.extend(!0,this.options,b))})}function e(b,c){a.fn[b]=function(e){if("string"==typeof e){for(var g=d.call(arguments,1),h=0,i=this.length;i>h;h++){var j=this[h],k=a.data(j,b);if(k)if(a.isFunction(k[e])&&"_"!==e.charAt(0)){var l=k[e].apply(k,g);if(void 0!==l)return l}else f("no such method '"+e+"' for "+b+" instance");else f("cannot call methods on "+b+" prior to initialization; attempted to call '"+e+"'")}return this}return this.each(function(){var d=a.data(this,b);d?(d.option(e),d._init()):(d=new c(this,e),a.data(this,b,d))})}}if(a){var f="undefined"==typeof console?b:function(a){console.error(a)};return a.bridget=function(a,b){c(b),e(a,b)},a.bridget}}var d=Array.prototype.slice;"function"==typeof define&&define.amd?define("jquery-bridget/jquery.bridget",["jquery"],c):c("object"==typeof exports?require("jquery"):a.jQuery)}(window),function(a){function b(b){var c=a.event;return c.target=c.target||c.srcElement||b,c}var c=document.documentElement,d=function(){};c.addEventListener?d=function(a,b,c){a.addEventListener(b,c,!1)}:c.attachEvent&&(d=function(a,c,d){a[c+d]=d.handleEvent?function(){var c=b(a);d.handleEvent.call(d,c)}:function(){var c=b(a);d.call(a,c)},a.attachEvent("on"+c,a[c+d])});var e=function(){};c.removeEventListener?e=function(a,b,c){a.removeEventListener(b,c,!1)}:c.detachEvent&&(e=function(a,b,c){a.detachEvent("on"+b,a[b+c]);try{delete a[b+c]}catch(d){a[b+c]=void 0}});var f={bind:d,unbind:e};"function"==typeof define&&define.amd?define("eventie/eventie",f):"object"==typeof exports?module.exports=f:a.eventie=f}(this),function(a){function b(a){"function"==typeof a&&(b.isReady?a():g.push(a))}function c(a){var c="readystatechange"===a.type&&"complete"!==f.readyState;b.isReady||c||d()}function d(){b.isReady=!0;for(var a=0,c=g.length;c>a;a++){var d=g[a];d()}}function e(e){return"complete"===f.readyState?d():(e.bind(f,"DOMContentLoaded",c),e.bind(f,"readystatechange",c),e.bind(a,"load",c)),b}var f=a.document,g=[];b.isReady=!1,"function"==typeof define&&define.amd?define("doc-ready/doc-ready",["eventie/eventie"],e):"object"==typeof exports?module.exports=e(require("eventie")):a.docReady=e(a.eventie)}(window),function(){function a(){}function b(a,b){for(var c=a.length;c--;)if(a[c].listener===b)return c;return-1}function c(a){return function(){return this[a].apply(this,arguments)}}var d=a.prototype,e=this,f=e.EventEmitter;d.getListeners=function(a){var b,c,d=this._getEvents();if(a instanceof RegExp){b={};for(c in d)d.hasOwnProperty(c)&&a.test(c)&&(b[c]=d[c])}else b=d[a]||(d[a]=[]);return b},d.flattenListeners=function(a){var b,c=[];for(b=0;be;e++)if(b=c[e]+a,"string"==typeof d[b])return b}}var c="Webkit Moz ms Ms O".split(" "),d=document.documentElement.style;"function"==typeof define&&define.amd?define("get-style-property/get-style-property",[],function(){return b}):"object"==typeof exports?module.exports=b:a.getStyleProperty=b}(window),function(a){function b(a){var b=parseFloat(a),c=-1===a.indexOf("%")&&!isNaN(b);return c&&b}function c(){}function d(){for(var a={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},b=0,c=g.length;c>b;b++){var d=g[b];a[d]=0}return a}function e(c){function e(){if(!m){m=!0;var d=a.getComputedStyle;if(j=function(){var a=d?function(a){return d(a,null)}:function(a){return a.currentStyle};return function(b){var c=a(b);return c||f("Style returned "+c+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),c}}(),k=c("boxSizing")){var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style[k]="border-box";var g=document.body||document.documentElement;g.appendChild(e);var h=j(e);l=200===b(h.width),g.removeChild(e)}}}function h(a){if(e(),"string"==typeof a&&(a=document.querySelector(a)),a&&"object"==typeof a&&a.nodeType){var c=j(a);if("none"===c.display)return d();var f={};f.width=a.offsetWidth,f.height=a.offsetHeight;for(var h=f.isBorderBox=!(!k||!c[k]||"border-box"!==c[k]),m=0,n=g.length;n>m;m++){var o=g[m],p=c[o];p=i(a,p);var q=parseFloat(p);f[o]=isNaN(q)?0:q}var r=f.paddingLeft+f.paddingRight,s=f.paddingTop+f.paddingBottom,t=f.marginLeft+f.marginRight,u=f.marginTop+f.marginBottom,v=f.borderLeftWidth+f.borderRightWidth,w=f.borderTopWidth+f.borderBottomWidth,x=h&&l,y=b(c.width);y!==!1&&(f.width=y+(x?0:r+v));var z=b(c.height);return z!==!1&&(f.height=z+(x?0:s+w)),f.innerWidth=f.width-(r+v),f.innerHeight=f.height-(s+w),f.outerWidth=f.width+t,f.outerHeight=f.height+u,f}}function i(b,c){if(a.getComputedStyle||-1===c.indexOf("%"))return c;var d=b.style,e=d.left,f=b.runtimeStyle,g=f&&f.left;return g&&(f.left=b.currentStyle.left),d.left=c,c=d.pixelLeft,d.left=e,g&&(f.left=g),c}var j,k,l,m=!1;return h}var f="undefined"==typeof console?c:function(a){console.error(a)},g=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];"function"==typeof define&&define.amd?define("get-size/get-size",["get-style-property/get-style-property"],e):"object"==typeof exports?module.exports=e(require("desandro-get-style-property")):a.getSize=e(a.getStyleProperty)}(window),function(a){function b(a,b){return a[g](b)}function c(a){if(!a.parentNode){var b=document.createDocumentFragment();b.appendChild(a)}}function d(a,b){c(a);for(var d=a.parentNode.querySelectorAll(b),e=0,f=d.length;f>e;e++)if(d[e]===a)return!0;return!1}function e(a,d){return c(a),b(a,d)}var f,g=function(){if(a.matchesSelector)return"matchesSelector";for(var b=["webkit","moz","ms","o"],c=0,d=b.length;d>c;c++){var e=b[c],f=e+"MatchesSelector";if(a[f])return f}}();if(g){var h=document.createElement("div"),i=b(h,"div");f=i?b:e}else f=d;"function"==typeof define&&define.amd?define("matches-selector/matches-selector",[],function(){return f}):"object"==typeof exports?module.exports=f:window.matchesSelector=f}(Element.prototype),function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}function c(a){for(var b in a)return!1;return b=null,!0}function d(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function e(a,e,f){function h(a,b){a&&(this.element=a,this.layout=b,this.position={x:0,y:0},this._create())}var i=f("transition"),j=f("transform"),k=i&&j,l=!!f("perspective"),m={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend",transition:"transitionend"}[i],n=["transform","transition","transitionDuration","transitionProperty"],o=function(){for(var a={},b=0,c=n.length;c>b;b++){var d=n[b],e=f(d);e&&e!==d&&(a[d]=e)}return a}();b(h.prototype,a.prototype),h.prototype._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},h.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},h.prototype.getSize=function(){this.size=e(this.element)},h.prototype.css=function(a){var b=this.element.style;for(var c in a){var d=o[c]||c;b[d]=a[c]}},h.prototype.getPosition=function(){var a=g(this.element),b=this.layout.options,c=b.isOriginLeft,d=b.isOriginTop,e=parseInt(a[c?"left":"right"],10),f=parseInt(a[d?"top":"bottom"],10);e=isNaN(e)?0:e,f=isNaN(f)?0:f;var h=this.layout.size;e-=c?h.paddingLeft:h.paddingRight,f-=d?h.paddingTop:h.paddingBottom,this.position.x=e,this.position.y=f},h.prototype.layoutPosition=function(){var a=this.layout.size,b=this.layout.options,c={};b.isOriginLeft?(c.left=this.position.x+a.paddingLeft+"px",c.right=""):(c.right=this.position.x+a.paddingRight+"px",c.left=""),b.isOriginTop?(c.top=this.position.y+a.paddingTop+"px",c.bottom=""):(c.bottom=this.position.y+a.paddingBottom+"px",c.top=""),this.css(c),this.emitEvent("layout",[this])};var p=l?function(a,b){return"translate3d("+a+"px, "+b+"px, 0)"}:function(a,b){return"translate("+a+"px, "+b+"px)"};h.prototype._transitionTo=function(a,b){this.getPosition();var c=this.position.x,d=this.position.y,e=parseInt(a,10),f=parseInt(b,10),g=e===this.position.x&&f===this.position.y;if(this.setPosition(a,b),g&&!this.isTransitioning)return void this.layoutPosition();var h=a-c,i=b-d,j={},k=this.layout.options;h=k.isOriginLeft?h:-h,i=k.isOriginTop?i:-i,j.transform=p(h,i),this.transition({to:j,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},h.prototype.goTo=function(a,b){this.setPosition(a,b),this.layoutPosition()},h.prototype.moveTo=k?h.prototype._transitionTo:h.prototype.goTo,h.prototype.setPosition=function(a,b){this.position.x=parseInt(a,10),this.position.y=parseInt(b,10)},h.prototype._nonTransition=function(a){this.css(a.to),a.isCleaning&&this._removeStyles(a.to);for(var b in a.onTransitionEnd)a.onTransitionEnd[b].call(this)},h.prototype._transition=function(a){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(a);var b=this._transn;for(var c in a.onTransitionEnd)b.onEnd[c]=a.onTransitionEnd[c];for(c in a.to)b.ingProperties[c]=!0,a.isCleaning&&(b.clean[c]=!0);if(a.from){this.css(a.from);var d=this.element.offsetHeight;d=null}this.enableTransition(a.to),this.css(a.to),this.isTransitioning=!0};var q=j&&d(j)+",opacity";h.prototype.enableTransition=function(){this.isTransitioning||(this.css({transitionProperty:q,transitionDuration:this.layout.options.transitionDuration}),this.element.addEventListener(m,this,!1))},h.prototype.transition=h.prototype[i?"_transition":"_nonTransition"],h.prototype.onwebkitTransitionEnd=function(a){this.ontransitionend(a)},h.prototype.onotransitionend=function(a){this.ontransitionend(a)};var r={"-webkit-transform":"transform","-moz-transform":"transform","-o-transform":"transform"};h.prototype.ontransitionend=function(a){if(a.target===this.element){var b=this._transn,d=r[a.propertyName]||a.propertyName;if(delete b.ingProperties[d],c(b.ingProperties)&&this.disableTransition(),d in b.clean&&(this.element.style[a.propertyName]="",delete b.clean[d]),d in b.onEnd){var e=b.onEnd[d];e.call(this),delete b.onEnd[d]}this.emitEvent("transitionEnd",[this])}},h.prototype.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(m,this,!1),this.isTransitioning=!1},h.prototype._removeStyles=function(a){var b={};for(var c in a)b[c]="";this.css(b)};var s={transitionProperty:"",transitionDuration:""};return h.prototype.removeTransitionStyles=function(){this.css(s)},h.prototype.removeElem=function(){this.element.parentNode.removeChild(this.element),this.emitEvent("remove",[this])},h.prototype.remove=function(){if(!i||!parseFloat(this.layout.options.transitionDuration))return void this.removeElem();var a=this;this.on("transitionEnd",function(){return a.removeElem(),!0}),this.hide()},h.prototype.reveal=function(){delete this.isHidden,this.css({display:""});var a=this.layout.options;this.transition({from:a.hiddenStyle,to:a.visibleStyle,isCleaning:!0})},h.prototype.hide=function(){this.isHidden=!0,this.css({display:""});var a=this.layout.options;this.transition({from:a.visibleStyle,to:a.hiddenStyle,isCleaning:!0,onTransitionEnd:{opacity:function(){this.isHidden&&this.css({display:"none"})}}})},h.prototype.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},h}var f=a.getComputedStyle,g=f?function(a){return f(a,null)}:function(a){return a.currentStyle};"function"==typeof define&&define.amd?define("outlayer/item",["eventEmitter/EventEmitter","get-size/get-size","get-style-property/get-style-property"],e):"object"==typeof exports?module.exports=e(require("wolfy87-eventemitter"),require("get-size"),require("desandro-get-style-property")):(a.Outlayer={},a.Outlayer.Item=e(a.EventEmitter,a.getSize,a.getStyleProperty))}(window),function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}function c(a){return"[object Array]"===l.call(a)}function d(a){var b=[];if(c(a))b=a;else if(a&&"number"==typeof a.length)for(var d=0,e=a.length;e>d;d++)b.push(a[d]);else b.push(a);return b}function e(a,b){var c=n(b,a);-1!==c&&b.splice(c,1)}function f(a){return a.replace(/(.)([A-Z])/g,function(a,b,c){return b+"-"+c}).toLowerCase()}function g(c,g,l,n,o,p){function q(a,c){if("string"==typeof a&&(a=h.querySelector(a)),!a||!m(a))return void(i&&i.error("Bad "+this.constructor.namespace+" element: "+a));this.element=a,this.options=b({},this.constructor.defaults),this.option(c);var d=++r;this.element.outlayerGUID=d,s[d]=this,this._create(),this.options.isInitLayout&&this.layout()}var r=0,s={};return q.namespace="outlayer",q.Item=p,q.defaults={containerStyle:{position:"relative"},isInitLayout:!0,isOriginLeft:!0,isOriginTop:!0,isResizeBound:!0,isResizingContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}},b(q.prototype,l.prototype),q.prototype.option=function(a){b(this.options,a)},q.prototype._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),b(this.element.style,this.options.containerStyle),this.options.isResizeBound&&this.bindResize()},q.prototype.reloadItems=function(){this.items=this._itemize(this.element.children)},q.prototype._itemize=function(a){for(var b=this._filterFindItemElements(a),c=this.constructor.Item,d=[],e=0,f=b.length;f>e;e++){var g=b[e],h=new c(g,this);d.push(h)}return d},q.prototype._filterFindItemElements=function(a){a=d(a);for(var b=this.options.itemSelector,c=[],e=0,f=a.length;f>e;e++){var g=a[e];if(m(g))if(b){o(g,b)&&c.push(g);for(var h=g.querySelectorAll(b),i=0,j=h.length;j>i;i++)c.push(h[i])}else c.push(g)}return c},q.prototype.getItemElements=function(){for(var a=[],b=0,c=this.items.length;c>b;b++)a.push(this.items[b].element);return a},q.prototype.layout=function(){this._resetLayout(),this._manageStamps();var a=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;this.layoutItems(this.items,a),this._isLayoutInited=!0},q.prototype._init=q.prototype.layout,q.prototype._resetLayout=function(){this.getSize()},q.prototype.getSize=function(){this.size=n(this.element)},q.prototype._getMeasurement=function(a,b){var c,d=this.options[a];d?("string"==typeof d?c=this.element.querySelector(d):m(d)&&(c=d),this[a]=c?n(c)[b]:d):this[a]=0},q.prototype.layoutItems=function(a,b){a=this._getItemsForLayout(a),this._layoutItems(a,b),this._postLayout()},q.prototype._getItemsForLayout=function(a){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c];e.isIgnored||b.push(e)}return b},q.prototype._layoutItems=function(a,b){function c(){d.emitEvent("layoutComplete",[d,a])}var d=this;if(!a||!a.length)return void c();this._itemsOn(a,"layout",c);for(var e=[],f=0,g=a.length;g>f;f++){var h=a[f],i=this._getItemLayoutPosition(h);i.item=h,i.isInstant=b||h.isLayoutInstant,e.push(i)}this._processLayoutQueue(e)},q.prototype._getItemLayoutPosition=function(){return{x:0,y:0}},q.prototype._processLayoutQueue=function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b];this._positionItem(d.item,d.x,d.y,d.isInstant)}},q.prototype._positionItem=function(a,b,c,d){d?a.goTo(b,c):a.moveTo(b,c)},q.prototype._postLayout=function(){this.resizeContainer()},q.prototype.resizeContainer=function(){if(this.options.isResizingContainer){var a=this._getContainerSize();a&&(this._setContainerMeasure(a.width,!0),this._setContainerMeasure(a.height,!1))}},q.prototype._getContainerSize=k,q.prototype._setContainerMeasure=function(a,b){if(void 0!==a){var c=this.size;c.isBorderBox&&(a+=b?c.paddingLeft+c.paddingRight+c.borderLeftWidth+c.borderRightWidth:c.paddingBottom+c.paddingTop+c.borderTopWidth+c.borderBottomWidth),a=Math.max(a,0),this.element.style[b?"width":"height"]=a+"px"}},q.prototype._itemsOn=function(a,b,c){function d(){return e++,e===f&&c.call(g),!0}for(var e=0,f=a.length,g=this,h=0,i=a.length;i>h;h++){var j=a[h];j.on(b,d)}},q.prototype.ignore=function(a){var b=this.getItem(a);b&&(b.isIgnored=!0)},q.prototype.unignore=function(a){var b=this.getItem(a);b&&delete b.isIgnored},q.prototype.stamp=function(a){if(a=this._find(a)){this.stamps=this.stamps.concat(a);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.ignore(d)}}},q.prototype.unstamp=function(a){if(a=this._find(a))for(var b=0,c=a.length;c>b;b++){var d=a[b];e(d,this.stamps),this.unignore(d)}},q.prototype._find=function(a){return a?("string"==typeof a&&(a=this.element.querySelectorAll(a)),a=d(a)):void 0},q.prototype._manageStamps=function(){if(this.stamps&&this.stamps.length){this._getBoundingRect();for(var a=0,b=this.stamps.length;b>a;a++){var c=this.stamps[a];this._manageStamp(c)}}},q.prototype._getBoundingRect=function(){var a=this.element.getBoundingClientRect(),b=this.size;this._boundingRect={left:a.left+b.paddingLeft+b.borderLeftWidth,top:a.top+b.paddingTop+b.borderTopWidth,right:a.right-(b.paddingRight+b.borderRightWidth),bottom:a.bottom-(b.paddingBottom+b.borderBottomWidth)}},q.prototype._manageStamp=k,q.prototype._getElementOffset=function(a){var b=a.getBoundingClientRect(),c=this._boundingRect,d=n(a),e={left:b.left-c.left-d.marginLeft,top:b.top-c.top-d.marginTop,right:c.right-b.right-d.marginRight,bottom:c.bottom-b.bottom-d.marginBottom};return e},q.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},q.prototype.bindResize=function(){this.isResizeBound||(c.bind(a,"resize",this),this.isResizeBound=!0)},q.prototype.unbindResize=function(){this.isResizeBound&&c.unbind(a,"resize",this),this.isResizeBound=!1},q.prototype.onresize=function(){function a(){b.resize(),delete b.resizeTimeout}this.resizeTimeout&&clearTimeout(this.resizeTimeout);var b=this;this.resizeTimeout=setTimeout(a,100)},q.prototype.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},q.prototype.needsResizeLayout=function(){var a=n(this.element),b=this.size&&a;return b&&a.innerWidth!==this.size.innerWidth},q.prototype.addItems=function(a){var b=this._itemize(a);return b.length&&(this.items=this.items.concat(b)),b},q.prototype.appended=function(a){var b=this.addItems(a);b.length&&(this.layoutItems(b,!0),this.reveal(b))},q.prototype.prepended=function(a){var b=this._itemize(a);if(b.length){var c=this.items.slice(0);this.items=b.concat(c),this._resetLayout(),this._manageStamps(),this.layoutItems(b,!0),this.reveal(b),this.layoutItems(c)}},q.prototype.reveal=function(a){var b=a&&a.length;if(b)for(var c=0;b>c;c++){var d=a[c];d.reveal()}},q.prototype.hide=function(a){var b=a&&a.length;if(b)for(var c=0;b>c;c++){var d=a[c];d.hide()}},q.prototype.getItem=function(a){for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];if(d.element===a)return d}},q.prototype.getItems=function(a){if(a&&a.length){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c],f=this.getItem(e);f&&b.push(f)}return b}},q.prototype.remove=function(a){a=d(a);var b=this.getItems(a);if(b&&b.length){this._itemsOn(b,"remove",function(){this.emitEvent("removeComplete",[this,b])});for(var c=0,f=b.length;f>c;c++){var g=b[c];g.remove(),e(g,this.items)}}},q.prototype.destroy=function(){var a=this.element.style;a.height="",a.position="",a.width="";for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];d.destroy()}this.unbindResize();var e=this.element.outlayerGUID;delete s[e],delete this.element.outlayerGUID,j&&j.removeData(this.element,this.constructor.namespace)},q.data=function(a){var b=a&&a.outlayerGUID;return b&&s[b]},q.create=function(a,c){function d(){q.apply(this,arguments)}return Object.create?d.prototype=Object.create(q.prototype):b(d.prototype,q.prototype),d.prototype.constructor=d,d.defaults=b({},q.defaults),b(d.defaults,c),d.prototype.settings={},d.namespace=a,d.data=q.data,d.Item=function(){p.apply(this,arguments)},d.Item.prototype=new p,g(function(){for(var b=f(a),c=h.querySelectorAll(".js-"+b),e="data-"+b+"-options",g=0,k=c.length;k>g;g++){var l,m=c[g],n=m.getAttribute(e);try{l=n&&JSON.parse(n)}catch(o){i&&i.error("Error parsing "+e+" on "+m.nodeName.toLowerCase()+(m.id?"#"+m.id:"")+": "+o);continue}var p=new d(m,l);j&&j.data(m,a,p)}}),j&&j.bridget&&j.bridget(a,d),d},q.Item=p,q}var h=a.document,i=a.console,j=a.jQuery,k=function(){},l=Object.prototype.toString,m="function"==typeof HTMLElement||"object"==typeof HTMLElement?function(a){return a instanceof HTMLElement}:function(a){return a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName},n=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1};"function"==typeof define&&define.amd?define("outlayer/outlayer",["eventie/eventie","doc-ready/doc-ready","eventEmitter/EventEmitter","get-size/get-size","matches-selector/matches-selector","./item"],g):"object"==typeof exports?module.exports=g(require("eventie"),require("doc-ready"),require("wolfy87-eventemitter"),require("get-size"),require("desandro-matches-selector"),require("./item")):a.Outlayer=g(a.eventie,a.docReady,a.EventEmitter,a.getSize,a.matchesSelector,a.Outlayer.Item)}(window),function(a){function b(a,b){var d=a.create("masonry");return d.prototype._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns();var a=this.cols;for(this.colYs=[];a--;)this.colYs.push(0);this.maxY=0},d.prototype.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var a=this.items[0],c=a&&a.element;this.columnWidth=c&&b(c).outerWidth||this.containerWidth}this.columnWidth+=this.gutter,this.cols=Math.floor((this.containerWidth+this.gutter)/this.columnWidth),this.cols=Math.max(this.cols,1)},d.prototype.getContainerWidth=function(){var a=this.options.isFitWidth?this.element.parentNode:this.element,c=b(a);this.containerWidth=c&&c.innerWidth},d.prototype._getItemLayoutPosition=function(a){a.getSize();var b=a.size.outerWidth%this.columnWidth,d=b&&1>b?"round":"ceil",e=Math[d](a.size.outerWidth/this.columnWidth);e=Math.min(e,this.cols);for(var f=this._getColGroup(e),g=Math.min.apply(Math,f),h=c(f,g),i={x:this.columnWidth*h,y:g},j=g+a.size.outerHeight,k=this.cols+1-f.length,l=0;k>l;l++)this.colYs[h+l]=j;return i},d.prototype._getColGroup=function(a){if(2>a)return this.colYs;for(var b=[],c=this.cols+1-a,d=0;c>d;d++){var e=this.colYs.slice(d,d+a);b[d]=Math.max.apply(Math,e)}return b},d.prototype._manageStamp=function(a){var c=b(a),d=this._getElementOffset(a),e=this.options.isOriginLeft?d.left:d.right,f=e+c.outerWidth,g=Math.floor(e/this.columnWidth);g=Math.max(0,g);var h=Math.floor(f/this.columnWidth);h-=f%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var i=(this.options.isOriginTop?d.top:d.bottom)+c.outerHeight,j=g;h>=j;j++)this.colYs[j]=Math.max(i,this.colYs[j])},d.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var a={height:this.maxY};return this.options.isFitWidth&&(a.width=this._getContainerFitWidth()),a},d.prototype._getContainerFitWidth=function(){for(var a=0,b=this.cols;--b&&0===this.colYs[b];)a++;return(this.cols-a)*this.columnWidth-this.gutter},d.prototype.needsResizeLayout=function(){var a=this.containerWidth;return this.getContainerWidth(),a!==this.containerWidth},d}var c=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++){var e=a[c];if(e===b)return c}return-1};"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],b):"object"==typeof exports?module.exports=b(require("outlayer"),require("get-size")):a.Masonry=b(a.Outlayer,a.getSize)}(window); \ No newline at end of file diff --git a/production/bower_components/Materialize/templates/parallax-template/LICENSE b/production/bower_components/Materialize/templates/parallax-template/LICENSE deleted file mode 100644 index c795dcc..0000000 --- a/production/bower_components/Materialize/templates/parallax-template/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Materialize - -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. \ No newline at end of file diff --git a/production/bower_components/Materialize/templates/parallax-template/background1.jpg b/production/bower_components/Materialize/templates/parallax-template/background1.jpg deleted file mode 100644 index e8b388e..0000000 Binary files a/production/bower_components/Materialize/templates/parallax-template/background1.jpg and /dev/null differ diff --git a/production/bower_components/Materialize/templates/parallax-template/background2.jpg b/production/bower_components/Materialize/templates/parallax-template/background2.jpg deleted file mode 100644 index 0bc540d..0000000 Binary files a/production/bower_components/Materialize/templates/parallax-template/background2.jpg and /dev/null differ diff --git a/production/bower_components/Materialize/templates/parallax-template/background3.jpg b/production/bower_components/Materialize/templates/parallax-template/background3.jpg deleted file mode 100644 index cc0a11c..0000000 Binary files a/production/bower_components/Materialize/templates/parallax-template/background3.jpg and /dev/null differ diff --git a/production/bower_components/Materialize/templates/parallax-template/css/style.css b/production/bower_components/Materialize/templates/parallax-template/css/style.css deleted file mode 100644 index 4fa3c90..0000000 --- a/production/bower_components/Materialize/templates/parallax-template/css/style.css +++ /dev/null @@ -1,57 +0,0 @@ -/* Custom Stylesheet */ -/** - * Use this file to override Materialize files so you can update - * the core Materialize files in the future - * - * Made By MaterializeCSS.com - */ - -nav ul a, -nav .brand-logo { - color: #444; -} - -p { - line-height: 2rem; -} - -.button-collapse { - color: #26a69a; -} - -.parallax-container { - min-height: 380px; - line-height: 0; - height: auto; - color: rgba(255,255,255,.9); -} - .parallax-container .section { - width: 100%; - } - -@media only screen and (max-width : 992px) { - .parallax-container .section { - position: absolute; - top: 40%; - } - #index-banner .section { - top: 10%; - } -} - -@media only screen and (max-width : 600px) { - #index-banner .section { - top: 0; - } -} - -.icon-block { - padding: 0 15px; -} -.icon-block .material-icons { - font-size: inherit; -} - -footer.page-footer { - margin: 0; -} \ No newline at end of file diff --git a/production/bower_components/Materialize/templates/parallax-template/js/init.js b/production/bower_components/Materialize/templates/parallax-template/js/init.js deleted file mode 100644 index d9e58b7..0000000 --- a/production/bower_components/Materialize/templates/parallax-template/js/init.js +++ /dev/null @@ -1,8 +0,0 @@ -(function($){ - $(function(){ - - $('.button-collapse').sideNav(); - $('.parallax').parallax(); - - }); // end of document ready -})(jQuery); // end of jQuery name space \ No newline at end of file diff --git a/production/bower_components/Materialize/templates/starter-template/LICENSE b/production/bower_components/Materialize/templates/starter-template/LICENSE deleted file mode 100644 index c795dcc..0000000 --- a/production/bower_components/Materialize/templates/starter-template/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Materialize - -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. \ No newline at end of file diff --git a/production/bower_components/Materialize/templates/starter-template/css/style.css b/production/bower_components/Materialize/templates/starter-template/css/style.css deleted file mode 100644 index 2e8db1f..0000000 --- a/production/bower_components/Materialize/templates/starter-template/css/style.css +++ /dev/null @@ -1,14 +0,0 @@ -/* Custom Stylesheet */ -/** - * Use this file to override Materialize files so you can update - * the core Materialize files in the future - * - * Made By MaterializeCSS.com - */ - -.icon-block { - padding: 0 15px; -} -.icon-block .material-icons { - font-size: inherit; -} \ No newline at end of file diff --git a/production/bower_components/Materialize/templates/starter-template/js/init.js b/production/bower_components/Materialize/templates/starter-template/js/init.js deleted file mode 100644 index 01938d5..0000000 --- a/production/bower_components/Materialize/templates/starter-template/js/init.js +++ /dev/null @@ -1,7 +0,0 @@ -(function($){ - $(function(){ - - $('.button-collapse').sideNav(); - - }); // end of document ready -})(jQuery); // end of jQuery name space \ No newline at end of file diff --git a/production/bower_components/Materialize/tests/spec/cards/cardsSpec.js b/production/bower_components/Materialize/tests/spec/cards/cardsSpec.js deleted file mode 100644 index ffd2da3..0000000 --- a/production/bower_components/Materialize/tests/spec/cards/cardsSpec.js +++ /dev/null @@ -1,100 +0,0 @@ -describe( "Cards", function () { - var reveal; - - beforeEach(function() { - loadFixtures('cards/cardsFixture.html'); - }); - - describe("reveal cards", function () { - var revealCard; - - beforeEach(function() { - revealCard = $('.card.reveal'); - }); - - it("should have a hidden card-reveal", function (done) { - var revealDiv = revealCard.find('.card-reveal'); - var activator = revealCard.find('.activator'); - - expect(revealDiv).toBeHidden('reveal div should be hidden initially'); - - activator.click(); - - setTimeout(function() { - expect(revealDiv).toBeVisible('reveal did not appear after activator was clicked.'); - - // Check revealDiv covers reveal card. - expect(revealDiv.outerWidth()).toEqual(revealCard.outerWidth(), 'activator was not as wide as reveal card.'); - expect(revealDiv.outerHeight()).toEqual(revealCard.outerHeight(), 'activator was not as high as reveal card.'); - expect(revealDiv.offset().top).toEqual(revealCard.offset().top, 'activator was not as in the same y as reveal card.'); - expect(revealDiv.offset().left).toEqual(revealCard.offset().left, 'activator was not as in the same x as reveal card.'); - - done(); - }, 400); - - }); - }); - - describe("image cards", function () { - var imageCard; - - beforeEach(function() { - imageCard = $('.card.image'); - }); - - it("should have an image that fills to full width of card", function () { - var image = imageCard.find('.card-image > img'); - - expect(image.outerWidth()).toEqual(imageCard.outerWidth(), 'image does not fill width of card'); - expect(image.offset().top).toEqual(imageCard.offset().top, 'image was not as in the same y as card.'); - }); - }); - - - describe("sized cards", function () { - var small, medium, large; - - beforeEach(function() { - small = $('.card.small'); - medium = $('.card.medium'); - large = $('.card.large'); - }); - - it("should have small card dimensions", function () { - var cardImage = small.find('.card-image'); - var cardContent = small.find('.card-content'); - var cardAction = small.find('.card-action'); - - expect(small.outerHeight()).toEqual(300, 'small card should be 300px high'); - expect(cardImage.outerHeight()).toBeLessThan(181, 'small image should be <= 180px or 60% high'); - expect(cardContent.outerHeight()).toBeLessThan(121, 'small content should be <= 120px or 40% high'); - expect(cardAction.offset().top + cardAction.outerHeight()) - .toEqual(small.offset().top + small.outerHeight(), 'small action should be at bottom of card'); - }); - - it("should have medium card dimensions", function () { - var cardImage = medium.find('.card-image'); - var cardContent = medium.find('.card-content'); - var cardAction = medium.find('.card-action'); - - expect(medium.outerHeight()).toEqual(400, 'medium card should be 400px high'); - expect(cardImage.outerHeight()).toBeLessThan(241, 'medium image should be <= 240 or 60% high'); - expect(cardContent.outerHeight()).toBeLessThan(161, 'medium content should be <= 160px or 40% high'); - expect(cardAction.offset().top + cardAction.outerHeight()) - .toEqual(medium.offset().top + medium.outerHeight(), 'medium action should be at bottom of card'); - }); - - it("should have large card dimensions", function () { - var cardImage = large.find('.card-image'); - var cardContent = large.find('.card-content'); - var cardAction = large.find('.card-action'); - - expect(large.outerHeight()).toEqual(500, 'large card should be 500px high'); - expect(cardImage.outerHeight()).toBeLessThan(301, 'large image should be <= 300 or 60% high'); - expect(cardContent.outerHeight()).toBeLessThan(201, 'large content should be <= 200 or 40% high'); - expect(cardAction.offset().top + cardAction.outerHeight()) - .toEqual(large.offset().top + large.outerHeight(), 'large action should be at bottom of card'); - }); - }); - -}); diff --git a/production/bower_components/Materialize/tests/spec/collapsible/collapsibleSpec.js b/production/bower_components/Materialize/tests/spec/collapsible/collapsibleSpec.js deleted file mode 100644 index bdfd265..0000000 --- a/production/bower_components/Materialize/tests/spec/collapsible/collapsibleSpec.js +++ /dev/null @@ -1,92 +0,0 @@ -describe( "Collapsible Plugin", function () { - var collapsible, accordion; - - beforeEach(function() { - loadFixtures('collapsible/collapsible.html'); - collapsible = $('.collapsible'); - accordion = $('.accordion'); - popout = $('.popout'); - collapsible.collapsible(); - }); - - describe( "collapsible", function () { - - it("should open all items, keeping all open", function () { - // Collapsible body height should be 0 on start when hidden. - var headers = collapsible.find('.collapsible-header'); - var bodies = collapsible.find('.collapsible-body'); - - bodies.each(function() { - expect($(this)).toBeHidden('because collapsible bodies should be hidden initially.'); - }); - - // Collapsible body height should be > 0 after being opened. - headers.each(function() { - $(this).click(); - }); - bodies.each(function() { - expect($(this)).toBeVisible('because collapsible bodies not visible after being opened.'); - }); - }); - }); - - describe( "accordion", function () { - - it("should open first and second items, keeping only second open", function (done) { - // Collapsible body height should be 0 on start when hidden. - var firstHeader = accordion.find('.collapsible-header').first(); - var firstBody = accordion.find('.collapsible-body').first(); - var secondHeader = accordion.find('.collapsible-header').eq(1); - var secondBody = accordion.find('.collapsible-body').eq(1); - expect(firstBody).toBeHidden('because accordion bodies should be hidden initially.'); - expect(secondBody).toBeHidden('because accordion bodies should be hidden initially.'); - - // Collapsible body height should be > 0 after being opened. - firstHeader.click(); - - setTimeout(function() { - expect(firstBody).toBeVisible('because accordion bodies not visible after being opened.'); - secondHeader.click(); - - setTimeout(function() { - expect(firstBody).toBeHidden('because accordion bodies should be hidden when another item is opened.'); - expect(secondBody).toBeVisible('because accordion bodies not visible after being opened.'); - done(); - }, 400); - }, 200); - - }); - }); - - describe( "popout", function () { - - it("should open first and popout", function (done) { - // Collapsible body height should be 0 on start when hidden. - var firstLi = popout.find('li').first(); - var firstHeader = popout.find('.collapsible-header').first(); - var firstBody = popout.find('.collapsible-body').first(); - expect(firstBody).toBeHidden('because accordion bodies should be hidden initially.'); - - // Expect margin to be > 0 because not popped out. - popout.find('li').each(function () { - var marginLeft = parseInt($(this).css('margin-left')); - var marginRight = parseInt($(this).css('margin-right')); - expect(marginLeft).toBeGreaterThan(0, 'because closed popout items should have horizontal margins.'); - expect(marginRight).toBeGreaterThan(0, 'because closed popout items should have horizontal margins.'); - }); - - // expect margin to be 0 because popped out. - firstHeader.click(); - setTimeout(function() { - var firstMarginLeft = parseInt(firstLi.css('margin-left')); - var firstMarginRight = parseInt(firstLi.css('margin-right')); - expect(firstMarginLeft).toEqual(0, 'because opened popout items should have no horizontal margins.'); - expect(firstMarginRight).toEqual(0, 'because opened popout items should have no horizontal margins.'); - expect(firstBody).toBeVisible('because accordion bodies not visible after being opened.'); - - done(); - }, 400); - - }); - }); -}); diff --git a/production/bower_components/Materialize/tests/spec/helper.js b/production/bower_components/Materialize/tests/spec/helper.js deleted file mode 100644 index 08cc019..0000000 --- a/production/bower_components/Materialize/tests/spec/helper.js +++ /dev/null @@ -1 +0,0 @@ -jasmine.getFixtures().fixturesPath = 'tests/spec'; \ No newline at end of file diff --git a/production/bower_components/Materialize/tests/spec/scrollFire/scrollFireSpec.js b/production/bower_components/Materialize/tests/spec/scrollFire/scrollFireSpec.js deleted file mode 100644 index 6b42d12..0000000 --- a/production/bower_components/Materialize/tests/spec/scrollFire/scrollFireSpec.js +++ /dev/null @@ -1,31 +0,0 @@ -describe('ScrollFire Plugin', function() { - var options, testElement; - - beforeEach(function() { - options = [{ - selector: '#test', - offset: 50, - callback: 'Materialize.callbackFunc()' - }]; - Materialize.callbackFunc = function() { - return 'I have been called'; - }; - - loadFixtures('scrollFire/scrollFireFixture.html'); - spyOn(Materialize, 'callbackFunc').and.callThrough(); - testElement = $('#test'); - Materialize.scrollFire(options); - }); - - describe('ScrollFire', function() { - it('should fire the callback function', function(done) { - // Scroll to the test component - window.scrollTo(0, testElement.offset().top); - // The callback function should be fired after scrolling - setTimeout(function() { - expect(Materialize.callbackFunc).toHaveBeenCalled(); - done(); - }, 400); - }); - }); -}); diff --git a/production/bower_components/Materialize/tests/spec/select/selectSpec.js b/production/bower_components/Materialize/tests/spec/select/selectSpec.js deleted file mode 100644 index c76555c..0000000 --- a/production/bower_components/Materialize/tests/spec/select/selectSpec.js +++ /dev/null @@ -1,199 +0,0 @@ -describe("Select Plugin", function () { - beforeEach(function() { - loadFixtures('select/selectFixture.html'); - $('select').not('.disabled').material_select(); - }); - - describe("Select", function () { - var browserSelect, normalInput, normalDropdown; - - beforeEach(function() { - browserSelect = $('select.normal'); - }); - - it("should open dropdown and select option", function (done) { - normalInput = browserSelect.parent().find('input.select-dropdown'); - normalDropdown = browserSelect.parent().find('ul.select-dropdown'); - - expect(normalInput).toExist('Should dynamically generate select dropdown structure.'); - expect(normalDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(normalInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(normalDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - normalInput.click(); - - setTimeout(function() { - expect(normalDropdown).toBeVisible('Should be visible after opening.'); - var firstOption = normalDropdown.find('li:not(.disabled)').first(); - firstOption.click(); - normalInput.blur(); - - setTimeout(function() { - expect(normalDropdown).toBeHidden('Should be hidden after choosing item.'); - expect(normalInput.val()).toEqual(firstOption[0].innerText, 'Value should equal chosen option.'); - done(); - }, 400); - }, 400); - }); - - it("should have pre-selected value", function () { - normalInput = browserSelect.parent().find('input.select-dropdown'); - normalDropdown = browserSelect.parent().find('ul.select-dropdown'); - - var firstOption = browserSelect.find('option[selected]'); - expect(normalInput.val()).toEqual(firstOption.text(), 'Value should be equal to preselected option.'); - }); - }); - - describe("Multiple Select", function () { - var browserSelect, multipleInput, multipleDropdown; - - beforeEach(function() { - browserSelect = $('select.multiple'); - }); - - it("should open dropdown and select multiple options", function(done) { - multipleInput = browserSelect.parent().find('input.select-dropdown'); - multipleDropdown = browserSelect.parent().find('ul.select-dropdown'); - - expect(multipleInput).toExist('Should dynamically generate select dropdown structure.'); - expect(multipleDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(multipleInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(multipleDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - multipleInput.click(); - - setTimeout(function() { - expect(multipleDropdown).toBeVisible('Should be visible after opening.'); - var firstOption = multipleDropdown.find('li:not(.disabled)').first(); - var secondOption = multipleDropdown.find('li:not(.disabled)').eq(1); - var thirdOption = multipleDropdown.find('li:not(.disabled)').eq(2); - firstOption.click(); - $('body').click(); - - setTimeout(function() { - expect(multipleDropdown).toBeHidden('Should be hidden after choosing item.'); - expect(browserSelect.val()).toEqual(['1', '2', '3'], 'Actual select should have correct selected values.'); - expect(multipleInput.val()).toEqual(secondOption[0].innerText + ', ' + thirdOption[0].innerText + ', ' + firstOption[0].innerText, 'Value should equal chosen multiple options.'); - done(); - }, 400); - }, 400); - }); - - it("should open dropdown and deselect multiple options", function(done) { - multipleInput = browserSelect.parent().find('input.select-dropdown'); - multipleDropdown = browserSelect.parent().find('ul.select-dropdown'); - - expect(multipleInput).toExist('Should dynamically generate select dropdown structure.'); - expect(multipleDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(multipleInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(multipleDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - multipleInput.click(); - - setTimeout(function() { - expect(multipleDropdown).toBeVisible('Should be visible after opening.'); - var disabledOption = multipleDropdown.find('li.disabled'); - var secondOption = multipleDropdown.find('li:not(.disabled)').eq(1); - var thirdOption = multipleDropdown.find('li:not(.disabled)').eq(2); - secondOption.click(); - thirdOption.click(); - $('body').click(); - - setTimeout(function() { - expect(multipleDropdown).toBeHidden('Should be hidden after choosing item.'); - expect(browserSelect.val()).toEqual(null, 'Actual select element should be empty because none chosen.'); - expect(multipleInput.val()).toEqual(disabledOption[0].innerText, 'Value should equal default because none chosen.'); - done(); - }, 400); - }, 400); - }); - - it("should have multiple pre-selected values", function () { - multipleInput = browserSelect.parent().find('input.select-dropdown'); - multipleDropdown = browserSelect.parent().find('ul.select-dropdown'); - - var secondOption = browserSelect.find('option[selected]').eq(0); - var thirdOption = browserSelect.find('option[selected]').eq(1); - expect(multipleInput.val()).toEqual(secondOption.text() + ', ' + thirdOption.text(), 'Value should be equal to preselected option.'); - }); - }); - - describe("Optgroup Select", function () { - var browserSelect, optInput, optDropdown, optionInOptgroup, optionAfterOptGroup; - - beforeEach(function() { - browserSelect = $('select.optgroup'); - }); - - it("should open dropdown and select options", function(done) { - optInput = browserSelect.parent().find('input.select-dropdown'); - optDropdown = browserSelect.parent().find('ul.select-dropdown'); - - var optgroups = optDropdown.find('li.optgroup'); - browserSelect.find('optgroup').each(function(i) { - expect($(this).attr('label')).toEqual(optgroups.eq(i)[0].innerText, 'should generate optgroup structure.'); - }); - - expect(optInput).toExist('Should dynamically generate select dropdown structure.'); - expect(optDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(optInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(optDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - optInput.click(); - - setTimeout(function() { - expect(optDropdown).toBeVisible('Should be visible after opening.'); - var secondOption = optDropdown.find('li:not(.disabled):not(.optgroup)').eq(1); - secondOption.click(); - optInput.blur(); - - setTimeout(function() { - expect(optDropdown).toBeHidden('Should be hidden after choosing item.'); - expect(optInput.val()).toEqual(secondOption[0].innerText, 'Value should be equal to selected option.'); - done(); - }, 400); - }, 400); - }); - - it("should have options inside optgroup indented", function() { - optionInOptgroup = browserSelect.parent().find('li.optgroup + li'); - optionAfterOptGroup = browserSelect.parent().find('ul li:last-child'); - - expect(optionInOptgroup).toHaveClass('optgroup-option', 'Should have optgroup-option class'); - expect(optionAfterOptGroup).not.toHaveClass('optgroup-option', 'Should not have optgroup-option class'); - }); - - it("should not do anything when optgroup li clicked", function(done) { - optInput = browserSelect.parent().find('input.select-dropdown'); - optDropdown = browserSelect.parent().find('ul.select-dropdown'); - var originalVal = optInput.val(); - - var optgroups = optDropdown.find('li.optgroup'); - browserSelect.find('optgroup').each(function(i) { - expect($(this).attr('label')).toEqual(optgroups.eq(i)[0].innerText, 'should generate optgroup structure.'); - }); - - expect(optInput).toExist('Should dynamically generate select dropdown structure.'); - expect(optDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(optInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(optDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - optInput.click(); - - setTimeout(function() { - expect(optDropdown).toBeVisible('Should be visible after opening.'); - var optgroup = optDropdown.find('li.optgroup').first(); - optgroup.click(); - optInput.blur(); - - setTimeout(function() { - expect(optDropdown).toBeHidden('Should be hidden after choosing invalid item.'); - expect(optInput.val()).toEqual(originalVal, 'Value should be equal to original option.'); - done(); - }, 400); - }, 400); - }); - - }); -}); diff --git a/production/bower_components/Materialize/tests/spec/tabs/tabsSpec.js b/production/bower_components/Materialize/tests/spec/tabs/tabsSpec.js deleted file mode 100644 index 490eff6..0000000 --- a/production/bower_components/Materialize/tests/spec/tabs/tabsSpec.js +++ /dev/null @@ -1,72 +0,0 @@ -describe("Tabs Plugin", function () { - beforeEach(function() { - loadFixtures('tabs/tabsFixture.html'); - $('ul.tabs').tabs(); - }); - - describe("Tabs", function () { - var normalTabs; - - beforeEach(function() { - normalTabs = $('.tabs.normal'); - }); - - it("should open to active tab", function () { - var activeTab = normalTabs.find('.active'); - var activeTabHash = activeTab.attr('href'); - normalTabs.find('.tab a').each(function() { - var tabHash = $(this).attr('href'); - if (tabHash === activeTabHash) { - expect($(tabHash)).toBeVisible('active tab content should be visible by default'); - } else { - expect($(tabHash)).toBeHidden('Tab content should be hidden by default'); - } - }); - - var indicator = normalTabs.find('.indicator'); - expect(indicator).toExist('Indicator should be generated'); - // expect(Math.abs(indicator.offset().left - activeTab.offset().left)).toBeLessThan(1, 'Indicator should be at active tab by default.'); - }); - - it("should switch to clicked tab", function (done) { - var activeTab = normalTabs.find('.active'); - var activeTabHash = activeTab.attr('href'); - var disabledTab = normalTabs.find('.disabled a'); - var disabledTabHash = disabledTab.attr('href'); - var firstTab = normalTabs.find('.tab a').first(); - var firstTabHash = firstTab.attr('href'); - var indicator = normalTabs.find('.indicator'); - - expect(indicator).toExist('Indicator should be generated'); - // expect(Math.abs(indicator.offset().left - activeTab.offset().left)).toBeLessThan(1, 'Indicator should be at active tab by default.'); - - disabledTab.click(); - - setTimeout(function() { - expect($(activeTabHash)).toBeVisible('Clicking disabled should not change tabs.'); - expect($(disabledTabHash)).toBeHidden('Clicking disabled should not change tabs.'); - - firstTab.click(); - - setTimeout(function() { - expect($(activeTabHash)).toBeHidden('Clicking tab should switch to that tab.'); - expect($(firstTabHash)).toBeVisible('Clicking tab should switch to that tab.'); - expect(indicator.offset().left).toEqual(firstTab.offset().left, 'Indicator should move to clicked tab.'); - done(); - }, 400); - }, 400); - - }); - - it("should horizontally scroll when too many tabs", function () { - var tabsScrollWidth = 0; - normalTabs.parent().css('width', '400px'); - normalTabs.find('.tab').each(function() { - tabsScrollWidth += $(this).width(); - }); - - expect(tabsScrollWidth).toBeGreaterThan(normalTabs.width(), 'Scroll width should exceed tabs width'); - }); - - }); -}); \ No newline at end of file diff --git a/production/bower_components/Materialize/tests/spec/toast/toastSpec.js b/production/bower_components/Materialize/tests/spec/toast/toastSpec.js deleted file mode 100644 index be9e0d8..0000000 --- a/production/bower_components/Materialize/tests/spec/toast/toastSpec.js +++ /dev/null @@ -1,61 +0,0 @@ -describe( 'Toasts:', function() { - var toastOutDuration = 375; - var toastInDuration = 300; - var toast; - - describe('Toast javascript functions', function() { - // Toast out animation duration does not count as part of its timer. - it('should display and remove a toast', function(done) { - Materialize.toast('Test toast', toastInDuration); - - setTimeout(function() { - toast = $('.toast'); - expect(toast.length).toBe(1); - expect(toast).toBeVisible(); - expect(toast.text()).toBe('Test toast'); - setTimeout(function() { - toast = $('.toast'); - expect(toast).toBeVisible(); - expect(toast.length).toBe(1, 'because toast duration still on going'); - setTimeout(function() { - toast = $('.toast'); - expect(toast.length).toBe(0, 'because toast should be removed by now'); - done(); - }, toastOutDuration + 90); // .1s leeway is given - }, 10); - }, toastInDuration); - }); - - it('Opens a toast with HTML content', function() { - var $toastContent = $('I am toast content'); - Materialize.toast($toastContent, 400); - toast = $('.toast'); - expect(toast.first('span').text()).toBe('I am toast content'); - expect(toast.first('span').text()).not.toBe('I am toast') - }); - - it('Toasts should call the callback function when dismissed', - function(done) { - var boolObj = {wasCalled: false}; - var callback = function() { - boolObj.wasCalled = true; - }; - Materialize.toast('I am a toast', 100, '', callback); - setTimeout(function() { - expect(boolObj.wasCalled).toBe(true, - 'because the callback set it to true'); - done(); - }, 500); - }); - - it('Apply two custom class to a toast', function() { - Materialize.toast('Hi', 400, 'round flat'); - toast = $('.toast'); - expect(toast.closest('.round.flat').length).toBe(1, - 'because the class parameter was passed with two classes'); - }); - - }); - - -}); diff --git a/production/bower_components/Materialize/tests/spec/tooltip/tooltipSpec.js b/production/bower_components/Materialize/tests/spec/tooltip/tooltipSpec.js deleted file mode 100644 index c98fffd..0000000 --- a/production/bower_components/Materialize/tests/spec/tooltip/tooltipSpec.js +++ /dev/null @@ -1,108 +0,0 @@ -describe( 'Tooltip:', function() { - var tooltippedBtn, tooltip; - - beforeEach(function() { - loadFixtures('tooltip/tooltipFixture.html'); - $('.tooltipped').tooltip(); - }); - - describe('Tooltip opens and closes properly', function() { - - - it('Opens a tooltip on mouse enter', function(done) { - tooltippedBtn = $('#test'); - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')) - expect(tooltip).toBeHidden('because tooltip is not activated yet'); - - // Mouse enter - tooltippedBtn.trigger('mouseenter'); - setTimeout(function() { - expect(tooltip).toBeVisible('because mouse entered tooltipped btn'); - expect(tooltip.children('span').text()).toBe('I am tooltip', - 'because that is the defined text in the html attribute'); - - // Mouse leave - tooltippedBtn.trigger('mouseleave'); - setTimeout(function() { - expect(tooltip).toBeVisible('because mouse left tooltipped btn'); - done(); - }, 300); - }, 200); - }); - - - it('Positions tooltips smartly on the bottom within the screen bounds', function(done) { - tooltippedBtn = $('#test1'); - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')); - // Mouse enter - tooltippedBtn.trigger('mouseenter'); - setTimeout(function() { - var offset = tooltip.offset(); - // Check window bounds - expect(offset.top >= 0).toBeTruthy(); - expect(offset.top < 0).toBeFalsy(); - expect(offset.top + tooltip.height() <= - window.innerHeight).toBeTruthy(); - expect(offset.left >= 0).toBeTruthy(); - expect(offset.left < 0).toBeFalsy(); - expect(offset.left + tooltip.width() <= window.innerWidth).toBeTruthy(); - - // check if tooltip is under btn - expect(offset.top > tooltippedBtn.offset().top + tooltippedBtn.height()) - .toBeTruthy(); - expect(offset.top < tooltippedBtn.offset().top + tooltippedBtn.height()) - .toBeFalsy(); - done(); - }, 300); - }); - - - it('Removes tooltip event handlers and tooltip dom object', function() { - tooltippedBtn = $('#test1'); - tooltippedBtn.tooltip('remove'); - - // Check that event handlers are removed - var enterHandler = $._data(tooltippedBtn[0], 'events'); - expect(!!enterHandler).toBeFalsy('because all events should be removed'); - - // Check DOM element is removed - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')); - expect(tooltip.length).toBe(0); - }); - - - it('Changes position attribute dynamically and positions tooltips on the right correctly', - function(done) { - tooltippedBtn = $('#test'); - tooltippedBtn.attr('data-position', 'right'); - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')); - // Mouse enter - tooltippedBtn.trigger('mouseenter'); - setTimeout(function() { - var offset = tooltip.offset(); - expect(offset.left > tooltippedBtn.offset().left + tooltippedBtn.width()) - .toBeTruthy(); - done(); - }, 300); - }); - - - it('Accepts delay option from javascript initialization', function(done) { - tooltippedBtn = $('#test'); - tooltippedBtn.removeAttr('data-delay'); - tooltippedBtn.tooltip({delay: 200}); - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')); - tooltippedBtn.trigger('mouseenter'); - setTimeout(function() { - expect(tooltip.css('display')).toBe('none', 'because the delay is 200 seconds'); - }, 150); - - setTimeout(function() { - expect(tooltip).toBeVisible('because 200 seconds has passed'); - done(); - }, 250); - - }); - }); - -}); diff --git a/production/bower_components/jquery/.bower.json b/production/bower_components/jquery/.bower.json deleted file mode 100644 index 0af4781..0000000 --- a/production/bower_components/jquery/.bower.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "jquery", - "main": "dist/jquery.js", - "license": "MIT", - "ignore": [ - "package.json" - ], - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "homepage": "https://github.com/jquery/jquery-dist", - "version": "3.1.0", - "_release": "3.1.0", - "_resolution": { - "type": "version", - "tag": "3.1.0", - "commit": "6f02bc382c0529d3b4f68f6b2ad21876642dbbfe" - }, - "_source": "https://github.com/jquery/jquery-dist.git", - "_target": ">=2.1.1", - "_originalSource": "jquery" -} \ No newline at end of file diff --git a/production/bower_components/jquery/AUTHORS.txt b/production/bower_components/jquery/AUTHORS.txt deleted file mode 100644 index 0e22886..0000000 --- a/production/bower_components/jquery/AUTHORS.txt +++ /dev/null @@ -1,295 +0,0 @@ -Authors ordered by first contribution. - -John Resig -Gilles van den Hoven -Michael Geary -Stefan Petre -Yehuda Katz -Corey Jewett -Klaus Hartl -Franck Marcia -Jörn Zaefferer -Paul Bakaus -Brandon Aaron -Mike Alsup -Dave Methvin -Ed Engelhardt -Sean Catchpole -Paul Mclanahan -David Serduke -Richard D. Worth -Scott González -Ariel Flesler -Jon Evans -TJ Holowaychuk -Michael Bensoussan -Robert Katić -Louis-Rémi Babé -Earle Castledine -Damian Janowski -Rich Dougherty -Kim Dalsgaard -Andrea Giammarchi -Mark Gibson -Karl Swedberg -Justin Meyer -Ben Alman -James Padolsey -David Petersen -Batiste Bieler -Alexander Farkas -Rick Waldron -Filipe Fortes -Neeraj Singh -Paul Irish -Iraê Carvalho -Matt Curry -Michael Monteleone -Noah Sloan -Tom Viner -Douglas Neiner -Adam J. Sontag -Dave Reed -Ralph Whitbeck -Carl Fürstenberg -Jacob Wright -J. Ryan Stinnett -unknown -temp01 -Heungsub Lee -Colin Snover -Ryan W Tenney -Pinhook -Ron Otten -Jephte Clain -Anton Matzneller -Alex Sexton -Dan Heberden -Henri Wiechers -Russell Holbrook -Julian Aubourg -Gianni Alessandro Chiappetta -Scott Jehl -James Burke -Jonas Pfenniger -Xavi Ramirez -Jared Grippe -Sylvester Keil -Brandon Sterne -Mathias Bynens -Timmy Willison -Corey Frang -Digitalxero -Anton Kovalyov -David Murdoch -Josh Varner -Charles McNulty -Jordan Boesch -Jess Thrysoee -Michael Murray -Lee Carpenter -Alexis Abril -Rob Morgan -John Firebaugh -Sam Bisbee -Gilmore Davidson -Brian Brennan -Xavier Montillet -Daniel Pihlstrom -Sahab Yazdani -avaly -Scott Hughes -Mike Sherov -Greg Hazel -Schalk Neethling -Denis Knauf -Timo Tijhof -Steen Nielsen -Anton Ryzhov -Shi Chuan -Berker Peksag -Toby Brain -Matt Mueller -Justin -Daniel Herman -Oleg Gaidarenko -Richard Gibson -Rafaël Blais Masson -cmc3cn <59194618@qq.com> -Joe Presbrey -Sindre Sorhus -Arne de Bree -Vladislav Zarakovsky -Andrew E Monat -Oskari -Joao Henrique de Andrade Bruni -tsinha -Matt Farmer -Trey Hunner -Jason Moon -Jeffery To -Kris Borchers -Vladimir Zhuravlev -Jacob Thornton -Chad Killingsworth -Nowres Rafid -David Benjamin -Uri Gilad -Chris Faulkner -Elijah Manor -Daniel Chatfield -Nikita Govorov -Wesley Walser -Mike Pennisi -Markus Staab -Dave Riddle -Callum Macrae -Benjamin Truyman -James Huston -Erick Ruiz de Chávez -David Bonner -Akintayo Akinwunmi -MORGAN -Ismail Khair -Carl Danley -Mike Petrovich -Greg Lavallee -Daniel Gálvez -Sai Lung Wong -Tom H Fuertes -Roland Eckl -Jay Merrifield -Allen J Schmidt Jr -Jonathan Sampson -Marcel Greter -Matthias Jäggli -David Fox -Yiming He -Devin Cooper -Paul Ramos -Rod Vagg -Bennett Sorbo -Sebastian Burkhard -Zachary Adam Kaplan -nanto_vi -nanto -Danil Somsikov -Ryunosuke SATO -Jean Boussier -Adam Coulombe -Andrew Plummer -Mark Raddatz -Isaac Z. Schlueter -Karl Sieburg -Pascal Borreli -Nguyen Phuc Lam -Dmitry Gusev -Michał Gołębiowski -Li Xudong -Steven Benner -Tom H Fuertes -Renato Oliveira dos Santos -ros3cin -Jason Bedard -Kyle Robinson Young -Chris Talkington -Eddie Monge -Terry Jones -Jason Merino -Jeremy Dunck -Chris Price -Guy Bedford -Amey Sakhadeo -Mike Sidorov -Anthony Ryan -Dominik D. Geyer -George Kats -Lihan Li -Ronny Springer -Chris Antaki -Marian Sollmann -njhamann -Ilya Kantor -David Hong -John Paul -Jakob Stoeck -Christopher Jones -Forbes Lindesay -S. Andrew Sheppard -Leonardo Balter -Roman Reiß -Benjy Cui -Rodrigo Rosenfeld Rosas -John Hoven -Philip Jägenstedt -Christian Kosmowski -Liang Peng -TJ VanToll -Senya Pugach -Aurelio De Rosa -Nazar Mokrynskyi -Amit Merchant -Jason Bedard -Arthur Verschaeve -Dan Hart -Bin Xin -David Corbacho -Veaceslav Grimalschi -Daniel Husar -Frederic Hemberger -Ben Toews -Aditya Raghavan -Victor Homyakov -Shivaji Varma -Nicolas HENRY -Anne-Gaelle Colom -George Mauer -Leonardo Braga -Stephen Edgar -Thomas Tortorini -Winston Howes -Jon Hester -Alexander O'Mara -Bastian Buchholz -Arthur Stolyar -Calvin Metcalf -Mu Haibao -Richard McDaniel -Chris Rebert -Gabriel Schulhof -Gilad Peleg -Martin Naumann -Marek Lewandowski -Bruno Pérel -Reed Loden -Daniel Nill -Yongwoo Jeon -Sean Henderson -Richard Kraaijenhagen -Connor Atherton -Gary Ye -Christian Grete -Liza Ramo -Julian Alexander Murillo -Joelle Fleurantin -Jae Sung Park -Jun Sun -Josh Soref -Henry Wong -Jon Dufresne -Martijn W. van der Lee -Devin Wilson -Steve Mao -Zack Hall -Bernhard M. Wiedemann -Todor Prikumov -Jha Naman -William Robinet -Alexander Lisianoi -Vitaliy Terziev -Joe Trumbull -Alexander K -Damian Senn -Ralin Chimev -Felipe Sateler -Christophe Tafani-Dereeper diff --git a/production/bower_components/jquery/LICENSE.txt b/production/bower_components/jquery/LICENSE.txt deleted file mode 100644 index 5312a4c..0000000 --- a/production/bower_components/jquery/LICENSE.txt +++ /dev/null @@ -1,36 +0,0 @@ -Copyright jQuery Foundation and other contributors, https://jquery.org/ - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/jquery/jquery - -The following license applies to all parts of this software except as -documented below: - -==== - -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. - -==== - -All files located in the node_modules and external directories are -externally maintained libraries used by this software which have their -own licenses; we recommend you read them, as their terms may differ from -the terms above. diff --git a/production/bower_components/jquery/README.md b/production/bower_components/jquery/README.md deleted file mode 100644 index ba3174a..0000000 --- a/production/bower_components/jquery/README.md +++ /dev/null @@ -1,65 +0,0 @@ -# jQuery - -> jQuery is a fast, small, and feature-rich JavaScript library. - -For information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/). -For source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery). - -## Including jQuery - -Below are some of the most common ways to include jQuery. - -### Browser - -#### Script tag - -```html - -``` - -#### Babel - -[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively. - -```js -import $ from "jquery"; -``` - -#### Browserify/Webpack - -There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this... - -```js -var $ = require("jquery"); -``` - -#### AMD (Asynchronous Module Definition) - -AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html). - -```js -define(["jquery"], function($) { - -}); -``` - -### Node - -To include jQuery in [Node](nodejs.org), first install with npm. - -```sh -npm install jquery -``` - -For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes. - -```js -require("jsdom").env("", function(err, window) { - if (err) { - console.error(err); - return; - } - - var $ = require("jquery")(window); -}); -``` diff --git a/production/bower_components/jquery/bower.json b/production/bower_components/jquery/bower.json deleted file mode 100644 index 95798d5..0000000 --- a/production/bower_components/jquery/bower.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "jquery", - "main": "dist/jquery.js", - "license": "MIT", - "ignore": [ - "package.json" - ], - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ] -} \ No newline at end of file diff --git a/production/bower_components/jquery/dist/core.js b/production/bower_components/jquery/dist/core.js deleted file mode 100644 index c93c2d9..0000000 --- a/production/bower_components/jquery/dist/core.js +++ /dev/null @@ -1,481 +0,0 @@ -/* global Symbol */ -// Defining this global in .eslintrc would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - -define( [ - "./var/arr", - "./var/document", - "./var/getProto", - "./var/slice", - "./var/concat", - "./var/push", - "./var/indexOf", - "./var/class2type", - "./var/toString", - "./var/hasOwn", - "./var/fnToString", - "./var/ObjectFunctionString", - "./var/support", - "./core/DOMEval" -], function( arr, document, getProto, slice, concat, push, indexOf, - class2type, toString, hasOwn, fnToString, ObjectFunctionString, - support, DOMEval ) { - -"use strict"; - -var - version = "3.1.0", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num != null ? - - // Return just the one element from the set - ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - - // Return all the elements in a clean array - slice.call( this ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = jQuery.isArray( copy ) ) ) ) { - - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray( src ) ? src : []; - - } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isFunction: function( obj ) { - return jQuery.type( obj ) === "function"; - }, - - isArray: Array.isArray, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - - // As of jQuery 3.0, isNumeric is limited to - // strings and numbers (primitives or objects) - // that can be coerced to finite numbers (gh-2662) - var type = jQuery.type( obj ); - return ( type === "number" || type === "string" ) && - - // parseFloat NaNs numeric-cast false positives ("") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - !isNaN( obj - parseFloat( obj ) ); - }, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); - }, - - // Convert dashed to camelCase; used by the css and data modules - // Support: IE <=9 - 11, Edge 12 - 13 - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} - -return jQuery; -} ); diff --git a/production/bower_components/jquery/dist/jquery.js b/production/bower_components/jquery/dist/jquery.js deleted file mode 100644 index f2fc274..0000000 --- a/production/bower_components/jquery/dist/jquery.js +++ /dev/null @@ -1,10074 +0,0 @@ -/*eslint-disable no-unused-vars*/ -/*! - * jQuery JavaScript Library v3.1.0 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2016-07-07T21:44Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var document = window.document; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - - - - function DOMEval( code, doc ) { - doc = doc || document; - - var script = doc.createElement( "script" ); - - script.text = code; - doc.head.appendChild( script ).parentNode.removeChild( script ); - } -/* global Symbol */ -// Defining this global in .eslintrc would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.1.0", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num != null ? - - // Return just the one element from the set - ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - - // Return all the elements in a clean array - slice.call( this ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = jQuery.isArray( copy ) ) ) ) { - - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray( src ) ? src : []; - - } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isFunction: function( obj ) { - return jQuery.type( obj ) === "function"; - }, - - isArray: Array.isArray, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - - // As of jQuery 3.0, isNumeric is limited to - // strings and numbers (primitives or objects) - // that can be coerced to finite numbers (gh-2662) - var type = jQuery.type( obj ); - return ( type === "number" || type === "string" ) && - - // parseFloat NaNs numeric-cast false positives ("") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - !isNaN( obj - parseFloat( obj ) ); - }, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); - }, - - // Convert dashed to camelCase; used by the css and data modules - // Support: IE <=9 - 11, Edge 12 - 13 - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.0 - * https://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2016-01-04 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - disabledAncestor = addCombinator( - function( elem ) { - return elem.disabled === true; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; - - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 - // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { - - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement("fieldset"); - - try { - return !!fn( el ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - // Known :disabled false positives: - // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset) - // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Check form elements and option elements for explicit disabling - return "label" in elem && elem.disabled === disabled || - "form" in elem && elem.disabled === disabled || - - // Check non-disabled form elements for fieldset[disabled] ancestors - "form" in elem && elem.disabled === false && ( - // Support: IE6-11+ - // Ancestry is covered for us - elem.isDisabled === disabled || - - // Otherwise, assume any non-