diff --git a/css/index.css b/css/index.css index 6150826..3a0eb60 100644 --- a/css/index.css +++ b/css/index.css @@ -11,7 +11,7 @@ /* COLORS - default body text #000 - - primary color #372c4b + - primary color #9068dd - accent color TBD */ @@ -21,28 +21,27 @@ */ :root { - --primary-color: #4e406a; + --primary-color: #9068dd; --default-text-color: #000; --background-color: #fff; --role-logo-border-color: #fff; --role-logo-size: 100px; --standard-border-radius: 50px; --role-logo-background-color: #fff; - --emphasis-text-color: #b3b3b3; - --subtle-text-color: #767676; - --link-underline-color: #acacac; - --link-hover-color: #816cab; - --avatar-size: 100px; + --emphasis-text-color: #000; + --subtle-text-color: #4d4d4d; } -@media screen and (max-width: 992px) { +@media only screen and (max-width: 869px) { :root { + --section-margin: 64px; --font-size: 17px; } } -@media screen and (min-width: 993px) { +@media only screen and (min-width: 870px) { :root { + --section-margin: 150px; --font-size: 20px; } } @@ -54,6 +53,14 @@ html { line-height: 1.15; } +input { + font-family: inherit; + font-size: 100%; + line-height: 1.15; + margin: 0; + overflow: visible; +} + body { font-family: 'Roboto', sans-serif; font-weight: 400; @@ -68,28 +75,42 @@ body { /* 3. COMPONENTS ============================================================== */ +header, +section { + margin-bottom: var(--section-margin); +} + header { display: flex; align-items: center; } -footer .skills i { - display: block; +h1 { + font-weight: 500; + margin: 0; } -.education ul, -.experience ul { - padding: 0; - margin: 0; +h1 { + font-size: 2em; + margin: .67em 0 +} + +h2 { + font-size: 1.5em; + font-weight: 500; + text-transform: uppercase; +} + +nav { + flex: 1; + display: flex; + align-items: center; } -.role ul li:not(.role-tenure)::before { - content: "\2022"; - color: var(--primary-color); - font-weight: bold; - display: inline-block; - width: 1em; - margin-left: -1em; +ul { + list-style-type: none; + padding: 0; + margin: 0; } .role-logo { @@ -127,10 +148,6 @@ footer .skills i { color: var(--emphasis-text-color); } -ul.role-key-points { - padding: 0 1em; -} - .role-key-points li { margin-bottom: 10px; } @@ -140,22 +157,38 @@ ul.role-key-points { text-transform: uppercase; color: var(--subtle-text-color); padding-top: 4px; - list-style-type: none; -} - -.welcome { - text-align: center; - position: relative; - display: flex; - flex-direction: column; - justify-content: center; - padding: 0 10rem; } /* 4. MEDIA QUERIES ============================================================== */ @media only screen and (min-width: 993px) { + .container { + padding: 2%; + } + + nav { + flex-direction: row-reverse; + } + + nav { + flex-wrap: wrap; + justify-content: space-between; + margin-bottom: 32px; + width: 100%; + } + + nav a { + display: block; + padding: 6px 0; + } + + nav ul { + width: 100%; + max-height: 250px; + overflow: hidden; + } + .role:not(:last-child) { padding-bottom: 64px; } @@ -176,14 +209,44 @@ ul.role-key-points { } @media only screen and (max-width: 992px) { + .container { + margin: 0 auto; + max-width: 1140px; + padding: 1%; + } + .experience { margin-bottom: calc(var(--section-spacing) - 40px); } + h1 { + font-size: 20px; + } + + h2 { + margin-bottom: 15px; + } + + header { + flex-direction: column-reverse; + } + header .subtitle { display: none; } + nav a { + padding: 8px 16px; + } + + nav a:focus-visible { + outline-offset: -8px; + } + + nav ul { + display: flex; + } + .role:not(:last-child) { padding-bottom: 32px; } @@ -195,29 +258,4 @@ ul.role-key-points { .role-key-points { padding-left: calc(var(--role-logo-size) + var(--role-logo-right-margin)); } -} - -a { - color: inherit; - text-decoration-style: dotted; - text-decoration-line: underline; - text-underline-position: under; - text-underline-offset: 2px; - text-decoration-thickness: 1px; - text-decoration-color: var(--link-underline-color); -} - -.avatar { - width: var(--avatar-size); - height: var(--avatar-size); - border-radius: calc(var(--avatar-size) / 2.0); - margin: 0 auto; -} - -.primary-color { - background-color: var(--primary-color); -} - -.primary-color-text { - color: var(--primary-color); } \ No newline at end of file diff --git a/css/materialize-src/LICENSE b/css/materialize-src/LICENSE deleted file mode 100644 index fcff17e..0000000 --- a/css/materialize-src/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2018 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/css/materialize-src/README.md b/css/materialize-src/README.md deleted file mode 100644 index d8cca9c..0000000 --- a/css/materialize-src/README.md +++ /dev/null @@ -1,91 +0,0 @@ -

- - - -

- -

MaterializeCSS

- -

- Materialize, a CSS Framework based on material design. -
- -- Browse the docs -- -
-
- - Travis CI badge - - - npm version badge - - - CDNJS version badge - - - dependencies Status badge - - - devDependency Status badge - - - Gitter badge - -

- -## Table of Contents -- [Quickstart](#quickstart) -- [Documentation](#documentation) -- [Supported Browsers](#supported-browsers) -- [Changelog](#changelog) -- [Testing](#testing) -- [Contributing](#contributing) -- [Copyright and license](#copyright-and-license) - -## Quickstart: -Read the [getting started guide](http://materializecss.com/getting-started.html) for more information on how to use materialize. - -- [Download the latest release](https://github.com/Dogfalo/materialize/releases/latest) of materialize directly from GitHub. ([Beta](https://github.com/Dogfalo/materialize/releases/)) -- Clone the repo: `git clone https://github.com/Dogfalo/materialize.git` (Beta: `git clone -b v1-dev https://github.com/Dogfalo/materialize.git`) -- Include the files via [cdnjs](https://cdnjs.com/libraries/materialize). More [here](http://materializecss.com/getting-started.html). ([Beta](https://cdnjs.com/libraries/materialize/1.0.0-beta)) -- Install with [npm](https://www.npmjs.com): `npm install materialize-css` (Beta: `npm install materialize-css@next`) -- Install with [Bower](https://bower.io): `bower install materialize` ([DEPRECATED](https://bower.io/blog/2017/how-to-migrate-away-from-bower/)) -- Install with [Atmosphere](https://atmospherejs.com): `meteor add materialize:materialize` (Beta: `meteor add materialize:materialize@=1.0.0-beta`) - -## Documentation -The documentation can be found at . To run the documentation locally on your machine, you need [Node.js](https://nodejs.org/en/) installed on your computer. - -### Running documentation locally -Run these commands to set up the documentation: - -```bash -git clone https://github.com/Dogfalo/materialize -cd materialize -npm install -``` - -Then run `grunt monitor` to compile the documentation. When it finishes, open a new browser window and navigate to `localhost:8000`. We use [BrowserSync](https://www.browsersync.io/) to display the documentation. - -### Documentation for previous releases -Previous releases and their documentation are available for [download](https://github.com/Dogfalo/materialize/releases). - -## Supported Browsers: -Materialize is compatible with: - -- Chrome 35+ -- Firefox 31+ -- Safari 9+ -- Opera -- Edge -- IE 11+ - -## Changelog -For changelogs, check out [the Releases section of materialize](https://github.com/Dogfalo/materialize/releases) or the [CHANGELOG.md](CHANGELOG.md). - -## Testing -We use Jasmine as our testing framework and we're trying to write a robust test suite for our components. If you want to help, [here's a starting guide on how to write tests in Jasmine](CONTRIBUTING.md#jasmine-testing-guide). - -## Contributing -Check out the [CONTRIBUTING document](CONTRIBUTING.md) in the root of the repository to learn how you can contribute. You can also browse the [help-wanted](https://github.com/Dogfalo/materialize/labels/help-wanted) tag in our issue tracker to find things to do. - -## Copyright and license -Code Copyright 2018 Materialize. Code released under the MIT license. diff --git a/css/materialize-src/js/anime.min.js b/css/materialize-src/js/anime.min.js deleted file mode 100644 index fb57858..0000000 --- a/css/materialize-src/js/anime.min.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - v2.2.0 - 2017 Julian Garnier - Released under the MIT license -*/ -var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(e,r,p){if(p.get||p.set)throw new TypeError("ES3 does not support getters and setters.");e!=Array.prototype&&e!=Object.prototype&&(e[r]=p.value)};$jscomp.getGlobal=function(e){return"undefined"!=typeof window&&window===e?e:"undefined"!=typeof global&&null!=global?global:e};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_"; -$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(e){return $jscomp.SYMBOL_PREFIX+(e||"")+$jscomp.symbolCounter_++}; -$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var e=$jscomp.global.Symbol.iterator;e||(e=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[e]&&$jscomp.defineProperty(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(e){var r=0;return $jscomp.iteratorPrototype(function(){return rb&&(b+=1);1b?c:b<2/3?a+(c-a)*(2/3-b)*6:a}var d=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(a)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(a);a=parseInt(d[1])/360;var b=parseInt(d[2])/100,f=parseInt(d[3])/100,d=d[4]||1;if(0==b)f=b=a=f;else{var n=.5>f?f*(1+b):f+b-f*b,k=2*f-n,f=c(k,n,a+1/3),b=c(k,n,a);a=c(k,n,a-1/3)}return"rgba("+ -255*f+","+255*b+","+255*a+","+d+")"}function y(a){if(a=/([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a))return a[2]}function V(a){if(-1=g.currentTime)for(var G=0;G=w||!k)g.began||(g.began=!0,f("begin")),f("run");if(q>n&&q=k&&r!==k||!k)b(k),x||e();f("update");a>=k&&(g.remaining?(t=h,"alternate"===g.direction&&(g.reversed=!g.reversed)):(g.pause(),g.completed||(g.completed=!0,f("complete"),"Promise"in window&&(p(),m=c()))),l=0)}a=void 0===a?{}:a;var h,t,l=0,p=null,m=c(),g=fa(a);g.reset=function(){var a=g.direction,c=g.loop;g.currentTime= -0;g.progress=0;g.paused=!0;g.began=!1;g.completed=!1;g.reversed="reverse"===a;g.remaining="alternate"===a&&1===c?2:c;b(0);for(a=g.children.length;a--;)g.children[a].reset()};g.tick=function(a){h=a;t||(t=h);k((l+h-t)*q.speed)};g.seek=function(a){k(d(a))};g.pause=function(){var a=v.indexOf(g);-1=c&&0<=b&&1>=b){var e=new Float32Array(11);if(c!==d||b!==f)for(var k=0;11>k;++k)e[k]=a(.1*k,c,b);return function(k){if(c===d&&b===f)return k;if(0===k)return 0;if(1===k)return 1;for(var h=0,l=1;10!==l&&e[l]<=k;++l)h+=.1;--l;var l=h+(k-e[l])/(e[l+1]-e[l])*.1,n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(.001<=n){for(h=0;4>h;++h){n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(0===n)break;var m=a(l,c,b)-k,l=l-m/n}k=l}else if(0=== -n)k=l;else{var l=h,h=h+.1,g=0;do m=l+(h-l)/2,n=a(m,c,b)-k,0++g);k=m}return a(k,d,f)}}}}(),Q=function(){function a(a,b){return 0===a||1===a?a:-Math.pow(2,10*(a-1))*Math.sin(2*(a-1-b/(2*Math.PI)*Math.asin(1))*Math.PI/b)}var c="Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "),d={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],a],Out:[[.25, -.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(b,c){return 1-a(1-b,c)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(b,c){return.5>b?a(2*b,c)/2:1-a(-2*b+2,c)/2}]},b={linear:A(.25,.25,.75,.75)},f={},e;for(e in d)f.type=e,d[f.type].forEach(function(a){return function(d,f){b["ease"+a.type+c[f]]=h.fnc(d)? -d:A.apply($jscomp$this,d)}}(f)),f={type:f.type};return b}(),ha={css:function(a,c,d){return a.style[c]=d},attribute:function(a,c,d){return a.setAttribute(c,d)},object:function(a,c,d){return a[c]=d},transform:function(a,c,d,b,f){b[f]||(b[f]=[]);b[f].push(c+"("+d+")")}},v=[],B=0,ia=function(){function a(){B=requestAnimationFrame(c)}function c(c){var b=v.length;if(b){for(var d=0;db&&(c.duration=d.duration);c.children.push(d)});c.seek(0);c.reset();c.autoplay&&c.restart();return c};return c};q.random=function(a,c){return Math.floor(Math.random()*(c-a+1))+a};return q}); diff --git a/css/materialize-src/js/autocomplete.js b/css/materialize-src/js/autocomplete.js deleted file mode 100644 index 6366736..0000000 --- a/css/materialize-src/js/autocomplete.js +++ /dev/null @@ -1,450 +0,0 @@ -(function($) { - 'use strict'; - - let _defaults = { - data: {}, // Autocomplete data set - limit: Infinity, // Limit of results the autocomplete shows - onAutocomplete: null, // Callback for when autocompleted - minLength: 1, // Min characters before autocomplete starts - sortFunction: function(a, b, inputString) { - // Sort function for sorting autocomplete results - return a.indexOf(inputString) - b.indexOf(inputString); - } - }; - - /** - * @class - * - */ - class Autocomplete extends Component { - /** - * Construct Autocomplete instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - constructor(el, options) { - super(Autocomplete, el, options); - - this.el.M_Autocomplete = this; - - /** - * Options for the autocomplete - * @member Autocomplete#options - * @prop {Number} duration - * @prop {Number} dist - * @prop {number} shift - * @prop {number} padding - * @prop {Boolean} fullWidth - * @prop {Boolean} indicators - * @prop {Boolean} noWrap - * @prop {Function} onCycleTo - */ - this.options = $.extend({}, Autocomplete.defaults, options); - - // Setup - this.isOpen = false; - this.count = 0; - this.activeIndex = -1; - this.oldVal; - this.$inputField = this.$el.closest('.input-field'); - this.$active = $(); - this._mousedown = false; - this._setupDropdown(); - - this._setupEventHandlers(); - } - - static get defaults() { - return _defaults; - } - - static init(els, options) { - return super.init(this, els, options); - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_Autocomplete; - } - - /** - * Teardown component - */ - destroy() { - this._removeEventHandlers(); - this._removeDropdown(); - this.el.M_Autocomplete = undefined; - } - - /** - * Setup Event Handlers - */ - _setupEventHandlers() { - this._handleInputBlurBound = this._handleInputBlur.bind(this); - this._handleInputKeyupAndFocusBound = this._handleInputKeyupAndFocus.bind(this); - this._handleInputKeydownBound = this._handleInputKeydown.bind(this); - this._handleInputClickBound = this._handleInputClick.bind(this); - this._handleContainerMousedownAndTouchstartBound = this._handleContainerMousedownAndTouchstart.bind( - this - ); - this._handleContainerMouseupAndTouchendBound = this._handleContainerMouseupAndTouchend.bind( - this - ); - - this.el.addEventListener('blur', this._handleInputBlurBound); - this.el.addEventListener('keyup', this._handleInputKeyupAndFocusBound); - this.el.addEventListener('focus', this._handleInputKeyupAndFocusBound); - this.el.addEventListener('keydown', this._handleInputKeydownBound); - this.el.addEventListener('click', this._handleInputClickBound); - this.container.addEventListener( - 'mousedown', - this._handleContainerMousedownAndTouchstartBound - ); - this.container.addEventListener('mouseup', this._handleContainerMouseupAndTouchendBound); - - if (typeof window.ontouchstart !== 'undefined') { - this.container.addEventListener( - 'touchstart', - this._handleContainerMousedownAndTouchstartBound - ); - this.container.addEventListener('touchend', this._handleContainerMouseupAndTouchendBound); - } - } - - /** - * Remove Event Handlers - */ - _removeEventHandlers() { - this.el.removeEventListener('blur', this._handleInputBlurBound); - this.el.removeEventListener('keyup', this._handleInputKeyupAndFocusBound); - this.el.removeEventListener('focus', this._handleInputKeyupAndFocusBound); - this.el.removeEventListener('keydown', this._handleInputKeydownBound); - this.el.removeEventListener('click', this._handleInputClickBound); - this.container.removeEventListener( - 'mousedown', - this._handleContainerMousedownAndTouchstartBound - ); - this.container.removeEventListener('mouseup', this._handleContainerMouseupAndTouchendBound); - - if (typeof window.ontouchstart !== 'undefined') { - this.container.removeEventListener( - 'touchstart', - this._handleContainerMousedownAndTouchstartBound - ); - this.container.removeEventListener( - 'touchend', - this._handleContainerMouseupAndTouchendBound - ); - } - } - - /** - * Setup dropdown - */ - _setupDropdown() { - this.container = document.createElement('ul'); - this.container.id = `autocomplete-options-${M.guid()}`; - $(this.container).addClass('autocomplete-content dropdown-content'); - this.$inputField.append(this.container); - this.el.setAttribute('data-target', this.container.id); - - this.dropdown = M.Dropdown.init(this.el, { - autoFocus: false, - closeOnClick: false, - coverTrigger: false, - onItemClick: (itemEl) => { - this.selectOption($(itemEl)); - } - }); - - // Sketchy removal of dropdown click handler - this.el.removeEventListener('click', this.dropdown._handleClickBound); - } - - /** - * Remove dropdown - */ - _removeDropdown() { - this.container.parentNode.removeChild(this.container); - } - - /** - * Handle Input Blur - */ - _handleInputBlur() { - if (!this._mousedown) { - this.close(); - this._resetAutocomplete(); - } - } - - /** - * Handle Input Keyup and Focus - * @param {Event} e - */ - _handleInputKeyupAndFocus(e) { - if (e.type === 'keyup') { - Autocomplete._keydown = false; - } - - this.count = 0; - let val = this.el.value.toLowerCase(); - - // Don't capture enter or arrow key usage. - if (e.keyCode === 13 || e.keyCode === 38 || e.keyCode === 40) { - return; - } - - // Check if the input isn't empty - // Check if focus triggered by tab - if (this.oldVal !== val && (M.tabPressed || e.type !== 'focus')) { - this.open(); - } - - // Update oldVal - this.oldVal = val; - } - - /** - * Handle Input Keydown - * @param {Event} e - */ - _handleInputKeydown(e) { - Autocomplete._keydown = true; - - // Arrow keys and enter key usage - let keyCode = e.keyCode, - liElement, - numItems = $(this.container).children('li').length; - - // select element on Enter - if (keyCode === M.keys.ENTER && this.activeIndex >= 0) { - liElement = $(this.container) - .children('li') - .eq(this.activeIndex); - if (liElement.length) { - this.selectOption(liElement); - e.preventDefault(); - } - return; - } - - // Capture up and down key - if (keyCode === M.keys.ARROW_UP || keyCode === M.keys.ARROW_DOWN) { - e.preventDefault(); - - if (keyCode === M.keys.ARROW_UP && this.activeIndex > 0) { - this.activeIndex--; - } - - if (keyCode === M.keys.ARROW_DOWN && this.activeIndex < numItems - 1) { - this.activeIndex++; - } - - this.$active.removeClass('active'); - if (this.activeIndex >= 0) { - this.$active = $(this.container) - .children('li') - .eq(this.activeIndex); - this.$active.addClass('active'); - } - } - } - - /** - * Handle Input Click - * @param {Event} e - */ - _handleInputClick(e) { - this.open(); - } - - /** - * Handle Container Mousedown and Touchstart - * @param {Event} e - */ - _handleContainerMousedownAndTouchstart(e) { - this._mousedown = true; - } - - /** - * Handle Container Mouseup and Touchend - * @param {Event} e - */ - _handleContainerMouseupAndTouchend(e) { - this._mousedown = false; - } - - /** - * Highlight partial match - */ - _highlight(string, $el) { - let img = $el.find('img'); - let 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); - } - } - - /** - * Reset current element position - */ - _resetCurrentElement() { - this.activeIndex = -1; - this.$active.removeClass('active'); - } - - /** - * Reset autocomplete elements - */ - _resetAutocomplete() { - $(this.container).empty(); - this._resetCurrentElement(); - this.oldVal = null; - this.isOpen = false; - this._mousedown = false; - } - - /** - * Select autocomplete option - * @param {Element} el Autocomplete option list item element - */ - selectOption(el) { - let text = el.text().trim(); - this.el.value = text; - this.$el.trigger('change'); - this._resetAutocomplete(); - this.close(); - - // Handle onAutocomplete callback. - if (typeof this.options.onAutocomplete === 'function') { - this.options.onAutocomplete.call(this, text); - } - } - - /** - * Render dropdown content - * @param {Object} data data set - * @param {String} val current input value - */ - _renderDropdown(data, val) { - this._resetAutocomplete(); - - let matchingData = []; - - // Gather all matching data - for (let key in data) { - if (data.hasOwnProperty(key) && key.toLowerCase().indexOf(val) !== -1) { - // Break if past limit - if (this.count >= this.options.limit) { - break; - } - - let entry = { - data: data[key], - key: key - }; - matchingData.push(entry); - - this.count++; - } - } - - // Sort - if (this.options.sortFunction) { - let sortFunctionBound = (a, b) => { - return this.options.sortFunction( - a.key.toLowerCase(), - b.key.toLowerCase(), - val.toLowerCase() - ); - }; - matchingData.sort(sortFunctionBound); - } - - // Render - for (let i = 0; i < matchingData.length; i++) { - let entry = matchingData[i]; - let $autocompleteOption = $('
  • '); - if (!!entry.data) { - $autocompleteOption.append( - `${entry.key}` - ); - } else { - $autocompleteOption.append('' + entry.key + ''); - } - - $(this.container).append($autocompleteOption); - this._highlight(val, $autocompleteOption); - } - } - - /** - * Open Autocomplete Dropdown - */ - open() { - let val = this.el.value.toLowerCase(); - - this._resetAutocomplete(); - - if (val.length >= this.options.minLength) { - this.isOpen = true; - this._renderDropdown(this.options.data, val); - } - - // Open dropdown - if (!this.dropdown.isOpen) { - this.dropdown.open(); - } else { - // Recalculate dropdown when its already open - this.dropdown.recalculateDimensions(); - } - } - - /** - * Close Autocomplete Dropdown - */ - close() { - this.dropdown.close(); - } - - /** - * Update Data - * @param {Object} data - */ - updateData(data) { - let val = this.el.value.toLowerCase(); - this.options.data = data; - - if (this.isOpen) { - this._renderDropdown(data, val); - } - } - } - - /** - * @static - * @memberof Autocomplete - */ - Autocomplete._keydown = false; - - M.Autocomplete = Autocomplete; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Autocomplete, 'autocomplete', 'M_Autocomplete'); - } -})(cash); diff --git a/css/materialize-src/js/bin/materialize.js b/css/materialize-src/js/bin/materialize.js deleted file mode 100644 index b15d3f2..0000000 --- a/css/materialize-src/js/bin/materialize.js +++ /dev/null @@ -1,12374 +0,0 @@ -/*! - * Materialize v1.0.0 (http://materializecss.com) - * Copyright 2014-2017 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/*! cash-dom 1.3.5, https://github.com/kenwheeler/cash @license MIT */ -(function (factory) { - window.cash = factory(); -})(function () { - var doc = document, - win = window, - ArrayProto = Array.prototype, - slice = ArrayProto.slice, - filter = ArrayProto.filter, - push = ArrayProto.push; - - var noop = function () {}, - isFunction = function (item) { - // @see https://crbug.com/568448 - return typeof item === typeof noop && item.call; - }, - isString = function (item) { - return typeof item === typeof ""; - }; - - var idMatch = /^#[\w-]*$/, - classMatch = /^\.[\w-]*$/, - htmlMatch = /<.+>/, - singlet = /^\w+$/; - - function find(selector, context) { - context = context || doc; - var elems = classMatch.test(selector) ? context.getElementsByClassName(selector.slice(1)) : singlet.test(selector) ? context.getElementsByTagName(selector) : context.querySelectorAll(selector); - return elems; - } - - var frag; - function parseHTML(str) { - if (!frag) { - frag = doc.implementation.createHTMLDocument(null); - var base = frag.createElement("base"); - base.href = doc.location.href; - frag.head.appendChild(base); - } - - frag.body.innerHTML = str; - - return frag.body.childNodes; - } - - function onReady(fn) { - if (doc.readyState !== "loading") { - fn(); - } else { - doc.addEventListener("DOMContentLoaded", fn); - } - } - - function Init(selector, context) { - if (!selector) { - return this; - } - - // If already a cash collection, don't do any further processing - if (selector.cash && selector !== win) { - return selector; - } - - var elems = selector, - i = 0, - length; - - if (isString(selector)) { - elems = idMatch.test(selector) ? - // If an ID use the faster getElementById check - doc.getElementById(selector.slice(1)) : htmlMatch.test(selector) ? - // If HTML, parse it into real elements - parseHTML(selector) : - // else use `find` - find(selector, context); - - // If function, use as shortcut for DOM ready - } else if (isFunction(selector)) { - onReady(selector);return this; - } - - if (!elems) { - return this; - } - - // If a single DOM element is passed in or received via ID, return the single element - if (elems.nodeType || elems === win) { - this[0] = elems; - this.length = 1; - } else { - // Treat like an array and loop through each item. - length = this.length = elems.length; - for (; i < length; i++) { - this[i] = elems[i]; - } - } - - return this; - } - - function cash(selector, context) { - return new Init(selector, context); - } - - var fn = cash.fn = cash.prototype = Init.prototype = { // jshint ignore:line - cash: true, - length: 0, - push: push, - splice: ArrayProto.splice, - map: ArrayProto.map, - init: Init - }; - - Object.defineProperty(fn, "constructor", { value: cash }); - - cash.parseHTML = parseHTML; - cash.noop = noop; - cash.isFunction = isFunction; - cash.isString = isString; - - cash.extend = fn.extend = function (target) { - target = target || {}; - - var args = slice.call(arguments), - length = args.length, - i = 1; - - if (args.length === 1) { - target = this; - i = 0; - } - - for (; i < length; i++) { - if (!args[i]) { - continue; - } - for (var key in args[i]) { - if (args[i].hasOwnProperty(key)) { - target[key] = args[i][key]; - } - } - } - - return target; - }; - - function each(collection, callback) { - var l = collection.length, - i = 0; - - for (; i < l; i++) { - if (callback.call(collection[i], collection[i], i, collection) === false) { - break; - } - } - } - - function matches(el, selector) { - var m = el && (el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector || el.oMatchesSelector); - return !!m && m.call(el, selector); - } - - function getCompareFunction(selector) { - return ( - /* Use browser's `matches` function if string */ - isString(selector) ? matches : - /* Match a cash element */ - selector.cash ? function (el) { - return selector.is(el); - } : - /* Direct comparison */ - function (el, selector) { - return el === selector; - } - ); - } - - function unique(collection) { - return cash(slice.call(collection).filter(function (item, index, self) { - return self.indexOf(item) === index; - })); - } - - cash.extend({ - merge: function (first, second) { - var len = +second.length, - i = first.length, - j = 0; - - for (; j < len; i++, j++) { - first[i] = second[j]; - } - - first.length = i; - return first; - }, - - each: each, - matches: matches, - unique: unique, - isArray: Array.isArray, - isNumeric: function (n) { - return !isNaN(parseFloat(n)) && isFinite(n); - } - - }); - - var uid = cash.uid = "_cash" + Date.now(); - - function getDataCache(node) { - return node[uid] = node[uid] || {}; - } - - function setData(node, key, value) { - return getDataCache(node)[key] = value; - } - - function getData(node, key) { - var c = getDataCache(node); - if (c[key] === undefined) { - c[key] = node.dataset ? node.dataset[key] : cash(node).attr("data-" + key); - } - return c[key]; - } - - function removeData(node, key) { - var c = getDataCache(node); - if (c) { - delete c[key]; - } else if (node.dataset) { - delete node.dataset[key]; - } else { - cash(node).removeAttr("data-" + name); - } - } - - fn.extend({ - data: function (name, value) { - if (isString(name)) { - return value === undefined ? getData(this[0], name) : this.each(function (v) { - return setData(v, name, value); - }); - } - - for (var key in name) { - this.data(key, name[key]); - } - - return this; - }, - - removeData: function (key) { - return this.each(function (v) { - return removeData(v, key); - }); - } - - }); - - var notWhiteMatch = /\S+/g; - - function getClasses(c) { - return isString(c) && c.match(notWhiteMatch); - } - - function hasClass(v, c) { - return v.classList ? v.classList.contains(c) : new RegExp("(^| )" + c + "( |$)", "gi").test(v.className); - } - - function addClass(v, c, spacedName) { - if (v.classList) { - v.classList.add(c); - } else if (spacedName.indexOf(" " + c + " ")) { - v.className += " " + c; - } - } - - function removeClass(v, c) { - if (v.classList) { - v.classList.remove(c); - } else { - v.className = v.className.replace(c, ""); - } - } - - fn.extend({ - addClass: function (c) { - var classes = getClasses(c); - - return classes ? this.each(function (v) { - var spacedName = " " + v.className + " "; - each(classes, function (c) { - addClass(v, c, spacedName); - }); - }) : this; - }, - - attr: function (name, value) { - if (!name) { - return undefined; - } - - if (isString(name)) { - if (value === undefined) { - return this[0] ? this[0].getAttribute ? this[0].getAttribute(name) : this[0][name] : undefined; - } - - return this.each(function (v) { - if (v.setAttribute) { - v.setAttribute(name, value); - } else { - v[name] = value; - } - }); - } - - for (var key in name) { - this.attr(key, name[key]); - } - - return this; - }, - - hasClass: function (c) { - var check = false, - classes = getClasses(c); - if (classes && classes.length) { - this.each(function (v) { - check = hasClass(v, classes[0]); - return !check; - }); - } - return check; - }, - - prop: function (name, value) { - if (isString(name)) { - return value === undefined ? this[0][name] : this.each(function (v) { - v[name] = value; - }); - } - - for (var key in name) { - this.prop(key, name[key]); - } - - return this; - }, - - removeAttr: function (name) { - return this.each(function (v) { - if (v.removeAttribute) { - v.removeAttribute(name); - } else { - delete v[name]; - } - }); - }, - - removeClass: function (c) { - if (!arguments.length) { - return this.attr("class", ""); - } - var classes = getClasses(c); - return classes ? this.each(function (v) { - each(classes, function (c) { - removeClass(v, c); - }); - }) : this; - }, - - removeProp: function (name) { - return this.each(function (v) { - delete v[name]; - }); - }, - - toggleClass: function (c, state) { - if (state !== undefined) { - return this[state ? "addClass" : "removeClass"](c); - } - var classes = getClasses(c); - return classes ? this.each(function (v) { - var spacedName = " " + v.className + " "; - each(classes, function (c) { - if (hasClass(v, c)) { - removeClass(v, c); - } else { - addClass(v, c, spacedName); - } - }); - }) : this; - } }); - - fn.extend({ - add: function (selector, context) { - return unique(cash.merge(this, cash(selector, context))); - }, - - each: function (callback) { - each(this, callback); - return this; - }, - - eq: function (index) { - return cash(this.get(index)); - }, - - filter: function (selector) { - if (!selector) { - return this; - } - - var comparator = isFunction(selector) ? selector : getCompareFunction(selector); - - return cash(filter.call(this, function (e) { - return comparator(e, selector); - })); - }, - - first: function () { - return this.eq(0); - }, - - get: function (index) { - if (index === undefined) { - return slice.call(this); - } - return index < 0 ? this[index + this.length] : this[index]; - }, - - index: function (elem) { - var child = elem ? cash(elem)[0] : this[0], - collection = elem ? this : cash(child).parent().children(); - return slice.call(collection).indexOf(child); - }, - - last: function () { - return this.eq(-1); - } - - }); - - var camelCase = function () { - var camelRegex = /(?:^\w|[A-Z]|\b\w)/g, - whiteSpace = /[\s-_]+/g; - return function (str) { - return str.replace(camelRegex, function (letter, index) { - return letter[index === 0 ? "toLowerCase" : "toUpperCase"](); - }).replace(whiteSpace, ""); - }; - }(); - - var getPrefixedProp = function () { - var cache = {}, - doc = document, - div = doc.createElement("div"), - style = div.style; - - return function (prop) { - prop = camelCase(prop); - if (cache[prop]) { - return cache[prop]; - } - - var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), - prefixes = ["webkit", "moz", "ms", "o"], - props = (prop + " " + prefixes.join(ucProp + " ") + ucProp).split(" "); - - each(props, function (p) { - if (p in style) { - cache[p] = prop = cache[prop] = p; - return false; - } - }); - - return cache[prop]; - }; - }(); - - cash.prefixedProp = getPrefixedProp; - cash.camelCase = camelCase; - - fn.extend({ - css: function (prop, value) { - if (isString(prop)) { - prop = getPrefixedProp(prop); - return arguments.length > 1 ? this.each(function (v) { - return v.style[prop] = value; - }) : win.getComputedStyle(this[0])[prop]; - } - - for (var key in prop) { - this.css(key, prop[key]); - } - - return this; - } - - }); - - function compute(el, prop) { - return parseInt(win.getComputedStyle(el[0], null)[prop], 10) || 0; - } - - each(["Width", "Height"], function (v) { - var lower = v.toLowerCase(); - - fn[lower] = function () { - return this[0].getBoundingClientRect()[lower]; - }; - - fn["inner" + v] = function () { - return this[0]["client" + v]; - }; - - fn["outer" + v] = function (margins) { - return this[0]["offset" + v] + (margins ? compute(this, "margin" + (v === "Width" ? "Left" : "Top")) + compute(this, "margin" + (v === "Width" ? "Right" : "Bottom")) : 0); - }; - }); - - function registerEvent(node, eventName, callback) { - var eventCache = getData(node, "_cashEvents") || setData(node, "_cashEvents", {}); - eventCache[eventName] = eventCache[eventName] || []; - eventCache[eventName].push(callback); - node.addEventListener(eventName, callback); - } - - function removeEvent(node, eventName, callback) { - var events = getData(node, "_cashEvents"), - eventCache = events && events[eventName], - index; - - if (!eventCache) { - return; - } - - if (callback) { - node.removeEventListener(eventName, callback); - index = eventCache.indexOf(callback); - if (index >= 0) { - eventCache.splice(index, 1); - } - } else { - each(eventCache, function (event) { - node.removeEventListener(eventName, event); - }); - eventCache = []; - } - } - - fn.extend({ - off: function (eventName, callback) { - return this.each(function (v) { - return removeEvent(v, eventName, callback); - }); - }, - - on: function (eventName, delegate, callback, runOnce) { - // jshint ignore:line - var originalCallback; - if (!isString(eventName)) { - for (var key in eventName) { - this.on(key, delegate, eventName[key]); - } - return this; - } - - if (isFunction(delegate)) { - callback = delegate; - delegate = null; - } - - if (eventName === "ready") { - onReady(callback); - return this; - } - - if (delegate) { - originalCallback = callback; - callback = function (e) { - var t = e.target; - while (!matches(t, delegate)) { - if (t === this || t === null) { - return t = false; - } - - t = t.parentNode; - } - - if (t) { - originalCallback.call(t, e); - } - }; - } - - return this.each(function (v) { - var finalCallback = callback; - if (runOnce) { - finalCallback = function () { - callback.apply(this, arguments); - removeEvent(v, eventName, finalCallback); - }; - } - registerEvent(v, eventName, finalCallback); - }); - }, - - one: function (eventName, delegate, callback) { - return this.on(eventName, delegate, callback, true); - }, - - ready: onReady, - - /** - * Modified - * Triggers browser event - * @param String eventName - * @param Object data - Add properties to event object - */ - trigger: function (eventName, data) { - if (document.createEvent) { - var evt = document.createEvent('HTMLEvents'); - evt.initEvent(eventName, true, false); - evt = this.extend(evt, data); - return this.each(function (v) { - return v.dispatchEvent(evt); - }); - } - } - - }); - - function encode(name, value) { - return "&" + encodeURIComponent(name) + "=" + encodeURIComponent(value).replace(/%20/g, "+"); - } - - function getSelectMultiple_(el) { - var values = []; - each(el.options, function (o) { - if (o.selected) { - values.push(o.value); - } - }); - return values.length ? values : null; - } - - function getSelectSingle_(el) { - var selectedIndex = el.selectedIndex; - return selectedIndex >= 0 ? el.options[selectedIndex].value : null; - } - - function getValue(el) { - var type = el.type; - if (!type) { - return null; - } - switch (type.toLowerCase()) { - case "select-one": - return getSelectSingle_(el); - case "select-multiple": - return getSelectMultiple_(el); - case "radio": - return el.checked ? el.value : null; - case "checkbox": - return el.checked ? el.value : null; - default: - return el.value ? el.value : null; - } - } - - fn.extend({ - serialize: function () { - var query = ""; - - each(this[0].elements || this, function (el) { - if (el.disabled || el.tagName === "FIELDSET") { - return; - } - var name = el.name; - switch (el.type.toLowerCase()) { - case "file": - case "reset": - case "submit": - case "button": - break; - case "select-multiple": - var values = getValue(el); - if (values !== null) { - each(values, function (value) { - query += encode(name, value); - }); - } - break; - default: - var value = getValue(el); - if (value !== null) { - query += encode(name, value); - } - } - }); - - return query.substr(1); - }, - - val: function (value) { - if (value === undefined) { - return getValue(this[0]); - } - - return this.each(function (v) { - return v.value = value; - }); - } - - }); - - function insertElement(el, child, prepend) { - if (prepend) { - var first = el.childNodes[0]; - el.insertBefore(child, first); - } else { - el.appendChild(child); - } - } - - function insertContent(parent, child, prepend) { - var str = isString(child); - - if (!str && child.length) { - each(child, function (v) { - return insertContent(parent, v, prepend); - }); - return; - } - - each(parent, str ? function (v) { - return v.insertAdjacentHTML(prepend ? "afterbegin" : "beforeend", child); - } : function (v, i) { - return insertElement(v, i === 0 ? child : child.cloneNode(true), prepend); - }); - } - - fn.extend({ - after: function (selector) { - cash(selector).insertAfter(this); - return this; - }, - - append: function (content) { - insertContent(this, content); - return this; - }, - - appendTo: function (parent) { - insertContent(cash(parent), this); - return this; - }, - - before: function (selector) { - cash(selector).insertBefore(this); - return this; - }, - - clone: function () { - return cash(this.map(function (v) { - return v.cloneNode(true); - })); - }, - - empty: function () { - this.html(""); - return this; - }, - - html: function (content) { - if (content === undefined) { - return this[0].innerHTML; - } - var source = content.nodeType ? content[0].outerHTML : content; - return this.each(function (v) { - return v.innerHTML = source; - }); - }, - - insertAfter: function (selector) { - var _this = this; - - cash(selector).each(function (el, i) { - var parent = el.parentNode, - sibling = el.nextSibling; - _this.each(function (v) { - parent.insertBefore(i === 0 ? v : v.cloneNode(true), sibling); - }); - }); - - return this; - }, - - insertBefore: function (selector) { - var _this2 = this; - cash(selector).each(function (el, i) { - var parent = el.parentNode; - _this2.each(function (v) { - parent.insertBefore(i === 0 ? v : v.cloneNode(true), el); - }); - }); - return this; - }, - - prepend: function (content) { - insertContent(this, content, true); - return this; - }, - - prependTo: function (parent) { - insertContent(cash(parent), this, true); - return this; - }, - - remove: function () { - return this.each(function (v) { - if (!!v.parentNode) { - return v.parentNode.removeChild(v); - } - }); - }, - - text: function (content) { - if (content === undefined) { - return this[0].textContent; - } - return this.each(function (v) { - return v.textContent = content; - }); - } - - }); - - var docEl = doc.documentElement; - - fn.extend({ - position: function () { - var el = this[0]; - return { - left: el.offsetLeft, - top: el.offsetTop - }; - }, - - offset: function () { - var rect = this[0].getBoundingClientRect(); - return { - top: rect.top + win.pageYOffset - docEl.clientTop, - left: rect.left + win.pageXOffset - docEl.clientLeft - }; - }, - - offsetParent: function () { - return cash(this[0].offsetParent); - } - - }); - - fn.extend({ - children: function (selector) { - var elems = []; - this.each(function (el) { - push.apply(elems, el.children); - }); - elems = unique(elems); - - return !selector ? elems : elems.filter(function (v) { - return matches(v, selector); - }); - }, - - closest: function (selector) { - if (!selector || this.length < 1) { - return cash(); - } - if (this.is(selector)) { - return this.filter(selector); - } - return this.parent().closest(selector); - }, - - is: function (selector) { - if (!selector) { - return false; - } - - var match = false, - comparator = getCompareFunction(selector); - - this.each(function (el) { - match = comparator(el, selector); - return !match; - }); - - return match; - }, - - find: function (selector) { - if (!selector || selector.nodeType) { - return cash(selector && this.has(selector).length ? selector : null); - } - - var elems = []; - this.each(function (el) { - push.apply(elems, find(selector, el)); - }); - - return unique(elems); - }, - - has: function (selector) { - var comparator = isString(selector) ? function (el) { - return find(selector, el).length !== 0; - } : function (el) { - return el.contains(selector); - }; - - return this.filter(comparator); - }, - - next: function () { - return cash(this[0].nextElementSibling); - }, - - not: function (selector) { - if (!selector) { - return this; - } - - var comparator = getCompareFunction(selector); - - return this.filter(function (el) { - return !comparator(el, selector); - }); - }, - - parent: function () { - var result = []; - - this.each(function (item) { - if (item && item.parentNode) { - result.push(item.parentNode); - } - }); - - return unique(result); - }, - - parents: function (selector) { - var last, - result = []; - - this.each(function (item) { - last = item; - - while (last && last.parentNode && last !== doc.body.parentNode) { - last = last.parentNode; - - if (!selector || selector && matches(last, selector)) { - result.push(last); - } - } - }); - - return unique(result); - }, - - prev: function () { - return cash(this[0].previousElementSibling); - }, - - siblings: function (selector) { - var collection = this.parent().children(selector), - el = this[0]; - - return collection.filter(function (i) { - return i !== el; - }); - } - - }); - - return cash; -}); -; -var Component = function () { - /** - * Generic constructor for all components - * @constructor - * @param {Element} el - * @param {Object} options - */ - function Component(classDef, el, options) { - _classCallCheck(this, Component); - - // Display error if el is valid HTML Element - if (!(el instanceof Element)) { - console.error(Error(el + ' is not an HTML Element')); - } - - // If exists, destroy and reinitialize in child - var ins = classDef.getInstance(el); - if (!!ins) { - ins.destroy(); - } - - this.el = el; - this.$el = cash(el); - } - - /** - * Initializes components - * @param {class} classDef - * @param {Element | NodeList | jQuery} els - * @param {Object} options - */ - - - _createClass(Component, null, [{ - key: "init", - value: function init(classDef, els, options) { - var instances = null; - if (els instanceof Element) { - instances = new classDef(els, options); - } else if (!!els && (els.jquery || els.cash || els instanceof NodeList)) { - var instancesArr = []; - for (var i = 0; i < els.length; i++) { - instancesArr.push(new classDef(els[i], options)); - } - instances = instancesArr; - } - - return instances; - } - }]); - - return Component; -}(); - -; // Required for Meteor package, the use of window prevents export by Meteor -(function (window) { - if (window.Package) { - M = {}; - } else { - window.M = {}; - } - - // Check for jQuery - M.jQueryLoaded = !!window.jQuery; -})(window); - -// AMD -if (typeof define === 'function' && define.amd) { - define('M', [], function () { - return M; - }); - - // Common JS -} else if (typeof exports !== 'undefined' && !exports.nodeType) { - if (typeof module !== 'undefined' && !module.nodeType && module.exports) { - exports = module.exports = M; - } - exports.default = M; -} - -M.version = '1.0.0'; - -M.keys = { - TAB: 9, - ENTER: 13, - ESC: 27, - ARROW_UP: 38, - ARROW_DOWN: 40 -}; - -/** - * TabPress Keydown handler - */ -M.tabPressed = false; -M.keyDown = false; -var docHandleKeydown = function (e) { - M.keyDown = true; - if (e.which === M.keys.TAB || e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) { - M.tabPressed = true; - } -}; -var docHandleKeyup = function (e) { - M.keyDown = false; - if (e.which === M.keys.TAB || e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) { - M.tabPressed = false; - } -}; -var docHandleFocus = function (e) { - if (M.keyDown) { - document.body.classList.add('keyboard-focused'); - } -}; -var docHandleBlur = function (e) { - document.body.classList.remove('keyboard-focused'); -}; -document.addEventListener('keydown', docHandleKeydown, true); -document.addEventListener('keyup', docHandleKeyup, true); -document.addEventListener('focus', docHandleFocus, true); -document.addEventListener('blur', docHandleBlur, true); - -/** - * Initialize jQuery wrapper for plugin - * @param {Class} plugin javascript class - * @param {string} pluginName jQuery plugin name - * @param {string} classRef Class reference name - */ -M.initializeJqueryWrapper = function (plugin, pluginName, classRef) { - jQuery.fn[pluginName] = function (methodOrOptions) { - // Call plugin method if valid method name is passed in - if (plugin.prototype[methodOrOptions]) { - var params = Array.prototype.slice.call(arguments, 1); - - // Getter methods - if (methodOrOptions.slice(0, 3) === 'get') { - var instance = this.first()[0][classRef]; - return instance[methodOrOptions].apply(instance, params); - } - - // Void methods - return this.each(function () { - var instance = this[classRef]; - instance[methodOrOptions].apply(instance, params); - }); - - // Initialize plugin if options or no argument is passed in - } else if (typeof methodOrOptions === 'object' || !methodOrOptions) { - plugin.init(this, arguments[0]); - return this; - } - - // Return error if an unrecognized method name is passed in - jQuery.error("Method " + methodOrOptions + " does not exist on jQuery." + pluginName); - }; -}; - -/** - * Automatically initialize components - * @param {Element} context DOM Element to search within for components - */ -M.AutoInit = function (context) { - // Use document.body if no context is given - var root = !!context ? context : document.body; - - var registry = { - Autocomplete: root.querySelectorAll('.autocomplete:not(.no-autoinit)'), - Carousel: root.querySelectorAll('.carousel:not(.no-autoinit)'), - Chips: root.querySelectorAll('.chips:not(.no-autoinit)'), - Collapsible: root.querySelectorAll('.collapsible:not(.no-autoinit)'), - Datepicker: root.querySelectorAll('.datepicker:not(.no-autoinit)'), - Dropdown: root.querySelectorAll('.dropdown-trigger:not(.no-autoinit)'), - Materialbox: root.querySelectorAll('.materialboxed:not(.no-autoinit)'), - Modal: root.querySelectorAll('.modal:not(.no-autoinit)'), - Parallax: root.querySelectorAll('.parallax:not(.no-autoinit)'), - Pushpin: root.querySelectorAll('.pushpin:not(.no-autoinit)'), - ScrollSpy: root.querySelectorAll('.scrollspy:not(.no-autoinit)'), - FormSelect: root.querySelectorAll('select:not(.no-autoinit)'), - Sidenav: root.querySelectorAll('.sidenav:not(.no-autoinit)'), - Tabs: root.querySelectorAll('.tabs:not(.no-autoinit)'), - TapTarget: root.querySelectorAll('.tap-target:not(.no-autoinit)'), - Timepicker: root.querySelectorAll('.timepicker:not(.no-autoinit)'), - Tooltip: root.querySelectorAll('.tooltipped:not(.no-autoinit)'), - FloatingActionButton: root.querySelectorAll('.fixed-action-btn:not(.no-autoinit)') - }; - - for (var pluginName in registry) { - var plugin = M[pluginName]; - plugin.init(registry[pluginName]); - } -}; - -/** - * Generate approximated selector string for a jQuery object - * @param {jQuery} obj jQuery object to be parsed - * @returns {string} - */ -M.objectSelectorString = function (obj) { - var tagStr = obj.prop('tagName') || ''; - var idStr = obj.attr('id') || ''; - var classStr = obj.attr('class') || ''; - return (tagStr + idStr + classStr).replace(/\s/g, ''); -}; - -// Unique Random ID -M.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(); - }; -}(); - -/** - * Escapes hash from special characters - * @param {string} hash String returned from this.hash - * @returns {string} - */ -M.escapeHash = function (hash) { - return hash.replace(/(:|\.|\[|\]|,|=|\/)/g, '\\$1'); -}; - -M.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; -}; - -/** - * @typedef {Object} Edges - * @property {Boolean} top If the top edge was exceeded - * @property {Boolean} right If the right edge was exceeded - * @property {Boolean} bottom If the bottom edge was exceeded - * @property {Boolean} left If the left edge was exceeded - */ - -/** - * @typedef {Object} Bounding - * @property {Number} left left offset coordinate - * @property {Number} top top offset coordinate - * @property {Number} width - * @property {Number} height - */ - -/** - * Escapes hash from special characters - * @param {Element} container Container element that acts as the boundary - * @param {Bounding} bounding element bounding that is being checked - * @param {Number} offset offset from edge that counts as exceeding - * @returns {Edges} - */ -M.checkWithinContainer = function (container, bounding, offset) { - var edges = { - top: false, - right: false, - bottom: false, - left: false - }; - - var containerRect = container.getBoundingClientRect(); - // If body element is smaller than viewport, use viewport height instead. - var containerBottom = container === document.body ? Math.max(containerRect.bottom, window.innerHeight) : containerRect.bottom; - - var scrollLeft = container.scrollLeft; - var scrollTop = container.scrollTop; - - var scrolledX = bounding.left - scrollLeft; - var scrolledY = bounding.top - scrollTop; - - // Check for container and viewport for each edge - if (scrolledX < containerRect.left + offset || scrolledX < offset) { - edges.left = true; - } - - if (scrolledX + bounding.width > containerRect.right - offset || scrolledX + bounding.width > window.innerWidth - offset) { - edges.right = true; - } - - if (scrolledY < containerRect.top + offset || scrolledY < offset) { - edges.top = true; - } - - if (scrolledY + bounding.height > containerBottom - offset || scrolledY + bounding.height > window.innerHeight - offset) { - edges.bottom = true; - } - - return edges; -}; - -M.checkPossibleAlignments = function (el, container, bounding, offset) { - var canAlign = { - top: true, - right: true, - bottom: true, - left: true, - spaceOnTop: null, - spaceOnRight: null, - spaceOnBottom: null, - spaceOnLeft: null - }; - - var containerAllowsOverflow = getComputedStyle(container).overflow === 'visible'; - var containerRect = container.getBoundingClientRect(); - var containerHeight = Math.min(containerRect.height, window.innerHeight); - var containerWidth = Math.min(containerRect.width, window.innerWidth); - var elOffsetRect = el.getBoundingClientRect(); - - var scrollLeft = container.scrollLeft; - var scrollTop = container.scrollTop; - - var scrolledX = bounding.left - scrollLeft; - var scrolledYTopEdge = bounding.top - scrollTop; - var scrolledYBottomEdge = bounding.top + elOffsetRect.height - scrollTop; - - // Check for container and viewport for left - canAlign.spaceOnRight = !containerAllowsOverflow ? containerWidth - (scrolledX + bounding.width) : window.innerWidth - (elOffsetRect.left + bounding.width); - if (canAlign.spaceOnRight < 0) { - canAlign.left = false; - } - - // Check for container and viewport for Right - canAlign.spaceOnLeft = !containerAllowsOverflow ? scrolledX - bounding.width + elOffsetRect.width : elOffsetRect.right - bounding.width; - if (canAlign.spaceOnLeft < 0) { - canAlign.right = false; - } - - // Check for container and viewport for Top - canAlign.spaceOnBottom = !containerAllowsOverflow ? containerHeight - (scrolledYTopEdge + bounding.height + offset) : window.innerHeight - (elOffsetRect.top + bounding.height + offset); - if (canAlign.spaceOnBottom < 0) { - canAlign.top = false; - } - - // Check for container and viewport for Bottom - canAlign.spaceOnTop = !containerAllowsOverflow ? scrolledYBottomEdge - (bounding.height - offset) : elOffsetRect.bottom - (bounding.height + offset); - if (canAlign.spaceOnTop < 0) { - canAlign.bottom = false; - } - - return canAlign; -}; - -M.getOverflowParent = function (element) { - if (element == null) { - return null; - } - - if (element === document.body || getComputedStyle(element).overflow !== 'visible') { - return element; - } - - return M.getOverflowParent(element.parentElement); -}; - -/** - * Gets id of component from a trigger - * @param {Element} trigger trigger - * @returns {string} - */ -M.getIdFromTrigger = function (trigger) { - var id = trigger.getAttribute('data-target'); - if (!id) { - id = trigger.getAttribute('href'); - if (id) { - id = id.slice(1); - } else { - id = ''; - } - } - return id; -}; - -/** - * Multi browser support for document scroll top - * @returns {Number} - */ -M.getDocumentScrollTop = function () { - return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; -}; - -/** - * Multi browser support for document scroll left - * @returns {Number} - */ -M.getDocumentScrollLeft = function () { - return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; -}; - -/** - * @typedef {Object} Edges - * @property {Boolean} top If the top edge was exceeded - * @property {Boolean} right If the right edge was exceeded - * @property {Boolean} bottom If the bottom edge was exceeded - * @property {Boolean} left If the left edge was exceeded - */ - -/** - * @typedef {Object} Bounding - * @property {Number} left left offset coordinate - * @property {Number} top top offset coordinate - * @property {Number} width - * @property {Number} height - */ - -/** - * 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} - */ -M.throttle = function (func, wait, options) { - var context = void 0, - args = void 0, - result = void 0; - 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; - }; -}; -; /* - v2.2.0 - 2017 Julian Garnier - Released under the MIT license - */ -var $jscomp = { scope: {} };$jscomp.defineProperty = "function" == typeof Object.defineProperties ? Object.defineProperty : function (e, r, p) { - if (p.get || p.set) throw new TypeError("ES3 does not support getters and setters.");e != Array.prototype && e != Object.prototype && (e[r] = p.value); -};$jscomp.getGlobal = function (e) { - return "undefined" != typeof window && window === e ? e : "undefined" != typeof global && null != global ? global : e; -};$jscomp.global = $jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX = "jscomp_symbol_"; -$jscomp.initSymbol = function () { - $jscomp.initSymbol = function () {};$jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol); -};$jscomp.symbolCounter_ = 0;$jscomp.Symbol = function (e) { - return $jscomp.SYMBOL_PREFIX + (e || "") + $jscomp.symbolCounter_++; -}; -$jscomp.initSymbolIterator = function () { - $jscomp.initSymbol();var e = $jscomp.global.Symbol.iterator;e || (e = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("iterator"));"function" != typeof Array.prototype[e] && $jscomp.defineProperty(Array.prototype, e, { configurable: !0, writable: !0, value: function () { - return $jscomp.arrayIterator(this); - } });$jscomp.initSymbolIterator = function () {}; -};$jscomp.arrayIterator = function (e) { - var r = 0;return $jscomp.iteratorPrototype(function () { - return r < e.length ? { done: !1, value: e[r++] } : { done: !0 }; - }); -}; -$jscomp.iteratorPrototype = function (e) { - $jscomp.initSymbolIterator();e = { next: e };e[$jscomp.global.Symbol.iterator] = function () { - return this; - };return e; -};$jscomp.array = $jscomp.array || {};$jscomp.iteratorFromArray = function (e, r) { - $jscomp.initSymbolIterator();e instanceof String && (e += "");var p = 0, - m = { next: function () { - if (p < e.length) { - var u = p++;return { value: r(u, e[u]), done: !1 }; - }m.next = function () { - return { done: !0, value: void 0 }; - };return m.next(); - } };m[Symbol.iterator] = function () { - return m; - };return m; -}; -$jscomp.polyfill = function (e, r, p, m) { - if (r) { - p = $jscomp.global;e = e.split(".");for (m = 0; m < e.length - 1; m++) { - var u = e[m];u in p || (p[u] = {});p = p[u]; - }e = e[e.length - 1];m = p[e];r = r(m);r != m && null != r && $jscomp.defineProperty(p, e, { configurable: !0, writable: !0, value: r }); - } -};$jscomp.polyfill("Array.prototype.keys", function (e) { - return e ? e : function () { - return $jscomp.iteratorFromArray(this, function (e) { - return e; - }); - }; -}, "es6-impl", "es3");var $jscomp$this = this; -(function (r) { - M.anime = r(); -})(function () { - function e(a) { - if (!h.col(a)) try { - return document.querySelectorAll(a); - } catch (c) {} - }function r(a, c) { - for (var d = a.length, b = 2 <= arguments.length ? arguments[1] : void 0, f = [], n = 0; n < d; n++) { - if (n in a) { - var k = a[n];c.call(b, k, n, a) && f.push(k); - } - }return f; - }function p(a) { - return a.reduce(function (a, d) { - return a.concat(h.arr(d) ? p(d) : d); - }, []); - }function m(a) { - if (h.arr(a)) return a; - h.str(a) && (a = e(a) || a);return a instanceof NodeList || a instanceof HTMLCollection ? [].slice.call(a) : [a]; - }function u(a, c) { - return a.some(function (a) { - return a === c; - }); - }function C(a) { - var c = {}, - d;for (d in a) { - c[d] = a[d]; - }return c; - }function D(a, c) { - var d = C(a), - b;for (b in a) { - d[b] = c.hasOwnProperty(b) ? c[b] : a[b]; - }return d; - }function z(a, c) { - var d = C(a), - b;for (b in c) { - d[b] = h.und(a[b]) ? c[b] : a[b]; - }return d; - }function T(a) { - a = a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (a, c, d, k) { - return c + c + d + d + k + k; - });var c = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a); - a = parseInt(c[1], 16);var d = parseInt(c[2], 16), - c = parseInt(c[3], 16);return "rgba(" + a + "," + d + "," + c + ",1)"; - }function U(a) { - function c(a, c, b) { - 0 > b && (b += 1);1 < b && --b;return b < 1 / 6 ? a + 6 * (c - a) * b : .5 > b ? c : b < 2 / 3 ? a + (c - a) * (2 / 3 - b) * 6 : a; - }var d = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(a) || /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(a);a = parseInt(d[1]) / 360;var b = parseInt(d[2]) / 100, - f = parseInt(d[3]) / 100, - d = d[4] || 1;if (0 == b) f = b = a = f;else { - var n = .5 > f ? f * (1 + b) : f + b - f * b, - k = 2 * f - n, - f = c(k, n, a + 1 / 3), - b = c(k, n, a);a = c(k, n, a - 1 / 3); - }return "rgba(" + 255 * f + "," + 255 * b + "," + 255 * a + "," + d + ")"; - }function y(a) { - if (a = /([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a)) return a[2]; - }function V(a) { - if (-1 < a.indexOf("translate") || "perspective" === a) return "px";if (-1 < a.indexOf("rotate") || -1 < a.indexOf("skew")) return "deg"; - }function I(a, c) { - return h.fnc(a) ? a(c.target, c.id, c.total) : a; - }function E(a, c) { - if (c in a.style) return getComputedStyle(a).getPropertyValue(c.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()) || "0"; - }function J(a, c) { - if (h.dom(a) && u(W, c)) return "transform";if (h.dom(a) && (a.getAttribute(c) || h.svg(a) && a[c])) return "attribute";if (h.dom(a) && "transform" !== c && E(a, c)) return "css";if (null != a[c]) return "object"; - }function X(a, c) { - var d = V(c), - d = -1 < c.indexOf("scale") ? 1 : 0 + d;a = a.style.transform;if (!a) return d;for (var b = [], f = [], n = [], k = /(\w+)\((.+?)\)/g; b = k.exec(a);) { - f.push(b[1]), n.push(b[2]); - }a = r(n, function (a, b) { - return f[b] === c; - });return a.length ? a[0] : d; - }function K(a, c) { - switch (J(a, c)) {case "transform": - return X(a, c);case "css": - return E(a, c);case "attribute": - return a.getAttribute(c);}return a[c] || 0; - }function L(a, c) { - var d = /^(\*=|\+=|-=)/.exec(a);if (!d) return a;var b = y(a) || 0;c = parseFloat(c);a = parseFloat(a.replace(d[0], ""));switch (d[0][0]) {case "+": - return c + a + b;case "-": - return c - a + b;case "*": - return c * a + b;} - }function F(a, c) { - return Math.sqrt(Math.pow(c.x - a.x, 2) + Math.pow(c.y - a.y, 2)); - }function M(a) { - a = a.points;for (var c = 0, d, b = 0; b < a.numberOfItems; b++) { - var f = a.getItem(b);0 < b && (c += F(d, f));d = f; - }return c; - }function N(a) { - if (a.getTotalLength) return a.getTotalLength();switch (a.tagName.toLowerCase()) {case "circle": - return 2 * Math.PI * a.getAttribute("r");case "rect": - return 2 * a.getAttribute("width") + 2 * a.getAttribute("height");case "line": - return F({ x: a.getAttribute("x1"), y: a.getAttribute("y1") }, { x: a.getAttribute("x2"), y: a.getAttribute("y2") });case "polyline": - return M(a);case "polygon": - var c = a.points;return M(a) + F(c.getItem(c.numberOfItems - 1), c.getItem(0));} - }function Y(a, c) { - function d(b) { - b = void 0 === b ? 0 : b;return a.el.getPointAtLength(1 <= c + b ? c + b : 0); - }var b = d(), - f = d(-1), - n = d(1);switch (a.property) {case "x": - return b.x;case "y": - return b.y; - case "angle": - return 180 * Math.atan2(n.y - f.y, n.x - f.x) / Math.PI;} - }function O(a, c) { - var d = /-?\d*\.?\d+/g, - b;b = h.pth(a) ? a.totalLength : a;if (h.col(b)) { - if (h.rgb(b)) { - var f = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(b);b = f ? "rgba(" + f[1] + ",1)" : b; - } else b = h.hex(b) ? T(b) : h.hsl(b) ? U(b) : void 0; - } else f = (f = y(b)) ? b.substr(0, b.length - f.length) : b, b = c && !/\s/g.test(b) ? f + c : f;b += "";return { original: b, numbers: b.match(d) ? b.match(d).map(Number) : [0], strings: h.str(a) || c ? b.split(d) : [] }; - }function P(a) { - a = a ? p(h.arr(a) ? a.map(m) : m(a)) : [];return r(a, function (a, d, b) { - return b.indexOf(a) === d; - }); - }function Z(a) { - var c = P(a);return c.map(function (a, b) { - return { target: a, id: b, total: c.length }; - }); - }function aa(a, c) { - var d = C(c);if (h.arr(a)) { - var b = a.length;2 !== b || h.obj(a[0]) ? h.fnc(c.duration) || (d.duration = c.duration / b) : a = { value: a }; - }return m(a).map(function (a, b) { - b = b ? 0 : c.delay;a = h.obj(a) && !h.pth(a) ? a : { value: a };h.und(a.delay) && (a.delay = b);return a; - }).map(function (a) { - return z(a, d); - }); - }function ba(a, c) { - var d = {}, - b;for (b in a) { - var f = I(a[b], c);h.arr(f) && (f = f.map(function (a) { - return I(a, c); - }), 1 === f.length && (f = f[0]));d[b] = f; - }d.duration = parseFloat(d.duration);d.delay = parseFloat(d.delay);return d; - }function ca(a) { - return h.arr(a) ? A.apply(this, a) : Q[a]; - }function da(a, c) { - var d;return a.tweens.map(function (b) { - b = ba(b, c);var f = b.value, - e = K(c.target, a.name), - k = d ? d.to.original : e, - k = h.arr(f) ? f[0] : k, - w = L(h.arr(f) ? f[1] : f, k), - e = y(w) || y(k) || y(e);b.from = O(k, e);b.to = O(w, e);b.start = d ? d.end : a.offset;b.end = b.start + b.delay + b.duration;b.easing = ca(b.easing);b.elasticity = (1E3 - Math.min(Math.max(b.elasticity, 1), 999)) / 1E3;b.isPath = h.pth(f);b.isColor = h.col(b.from.original);b.isColor && (b.round = 1);return d = b; - }); - }function ea(a, c) { - return r(p(a.map(function (a) { - return c.map(function (b) { - var c = J(a.target, b.name);if (c) { - var d = da(b, a);b = { type: c, property: b.name, animatable: a, tweens: d, duration: d[d.length - 1].end, delay: d[0].delay }; - } else b = void 0;return b; - }); - })), function (a) { - return !h.und(a); - }); - }function R(a, c, d, b) { - var f = "delay" === a;return c.length ? (f ? Math.min : Math.max).apply(Math, c.map(function (b) { - return b[a]; - })) : f ? b.delay : d.offset + b.delay + b.duration; - }function fa(a) { - var c = D(ga, a), - d = D(S, a), - b = Z(a.targets), - f = [], - e = z(c, d), - k;for (k in a) { - e.hasOwnProperty(k) || "targets" === k || f.push({ name: k, offset: e.offset, tweens: aa(a[k], d) }); - }a = ea(b, f);return z(c, { children: [], animatables: b, animations: a, duration: R("duration", a, c, d), delay: R("delay", a, c, d) }); - }function q(a) { - function c() { - return window.Promise && new Promise(function (a) { - return p = a; - }); - }function d(a) { - return g.reversed ? g.duration - a : a; - }function b(a) { - for (var b = 0, c = {}, d = g.animations, f = d.length; b < f;) { - var e = d[b], - k = e.animatable, - h = e.tweens, - n = h.length - 1, - l = h[n];n && (l = r(h, function (b) { - return a < b.end; - })[0] || l);for (var h = Math.min(Math.max(a - l.start - l.delay, 0), l.duration) / l.duration, w = isNaN(h) ? 1 : l.easing(h, l.elasticity), h = l.to.strings, p = l.round, n = [], m = void 0, m = l.to.numbers.length, t = 0; t < m; t++) { - var x = void 0, - x = l.to.numbers[t], - q = l.from.numbers[t], - x = l.isPath ? Y(l.value, w * x) : q + w * (x - q);p && (l.isColor && 2 < t || (x = Math.round(x * p) / p));n.push(x); - }if (l = h.length) for (m = h[0], w = 0; w < l; w++) { - p = h[w + 1], t = n[w], isNaN(t) || (m = p ? m + (t + p) : m + (t + " ")); - } else m = n[0];ha[e.type](k.target, e.property, m, c, k.id);e.currentValue = m;b++; - }if (b = Object.keys(c).length) for (d = 0; d < b; d++) { - H || (H = E(document.body, "transform") ? "transform" : "-webkit-transform"), g.animatables[d].target.style[H] = c[d].join(" "); - }g.currentTime = a;g.progress = a / g.duration * 100; - }function f(a) { - if (g[a]) g[a](g); - }function e() { - g.remaining && !0 !== g.remaining && g.remaining--; - }function k(a) { - var k = g.duration, - n = g.offset, - w = n + g.delay, - r = g.currentTime, - x = g.reversed, - q = d(a);if (g.children.length) { - var u = g.children, - v = u.length; - if (q >= g.currentTime) for (var G = 0; G < v; G++) { - u[G].seek(q); - } else for (; v--;) { - u[v].seek(q); - } - }if (q >= w || !k) g.began || (g.began = !0, f("begin")), f("run");if (q > n && q < k) b(q);else if (q <= n && 0 !== r && (b(0), x && e()), q >= k && r !== k || !k) b(k), x || e();f("update");a >= k && (g.remaining ? (t = h, "alternate" === g.direction && (g.reversed = !g.reversed)) : (g.pause(), g.completed || (g.completed = !0, f("complete"), "Promise" in window && (p(), m = c()))), l = 0); - }a = void 0 === a ? {} : a;var h, - t, - l = 0, - p = null, - m = c(), - g = fa(a);g.reset = function () { - var a = g.direction, - c = g.loop;g.currentTime = 0;g.progress = 0;g.paused = !0;g.began = !1;g.completed = !1;g.reversed = "reverse" === a;g.remaining = "alternate" === a && 1 === c ? 2 : c;b(0);for (a = g.children.length; a--;) { - g.children[a].reset(); - } - };g.tick = function (a) { - h = a;t || (t = h);k((l + h - t) * q.speed); - };g.seek = function (a) { - k(d(a)); - };g.pause = function () { - var a = v.indexOf(g);-1 < a && v.splice(a, 1);g.paused = !0; - };g.play = function () { - g.paused && (g.paused = !1, t = 0, l = d(g.currentTime), v.push(g), B || ia()); - };g.reverse = function () { - g.reversed = !g.reversed;t = 0;l = d(g.currentTime); - };g.restart = function () { - g.pause(); - g.reset();g.play(); - };g.finished = m;g.reset();g.autoplay && g.play();return g; - }var ga = { update: void 0, begin: void 0, run: void 0, complete: void 0, loop: 1, direction: "normal", autoplay: !0, offset: 0 }, - S = { duration: 1E3, delay: 0, easing: "easeOutElastic", elasticity: 500, round: 0 }, - W = "translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective".split(" "), - H, - h = { arr: function (a) { - return Array.isArray(a); - }, obj: function (a) { - return -1 < Object.prototype.toString.call(a).indexOf("Object"); - }, - pth: function (a) { - return h.obj(a) && a.hasOwnProperty("totalLength"); - }, svg: function (a) { - return a instanceof SVGElement; - }, dom: function (a) { - return a.nodeType || h.svg(a); - }, str: function (a) { - return "string" === typeof a; - }, fnc: function (a) { - return "function" === typeof a; - }, und: function (a) { - return "undefined" === typeof a; - }, hex: function (a) { - return (/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a) - ); - }, rgb: function (a) { - return (/^rgb/.test(a) - ); - }, hsl: function (a) { - return (/^hsl/.test(a) - ); - }, col: function (a) { - return h.hex(a) || h.rgb(a) || h.hsl(a); - } }, - A = function () { - function a(a, d, b) { - return (((1 - 3 * b + 3 * d) * a + (3 * b - 6 * d)) * a + 3 * d) * a; - }return function (c, d, b, f) { - if (0 <= c && 1 >= c && 0 <= b && 1 >= b) { - var e = new Float32Array(11);if (c !== d || b !== f) for (var k = 0; 11 > k; ++k) { - e[k] = a(.1 * k, c, b); - }return function (k) { - if (c === d && b === f) return k;if (0 === k) return 0;if (1 === k) return 1;for (var h = 0, l = 1; 10 !== l && e[l] <= k; ++l) { - h += .1; - }--l;var l = h + (k - e[l]) / (e[l + 1] - e[l]) * .1, - n = 3 * (1 - 3 * b + 3 * c) * l * l + 2 * (3 * b - 6 * c) * l + 3 * c;if (.001 <= n) { - for (h = 0; 4 > h; ++h) { - n = 3 * (1 - 3 * b + 3 * c) * l * l + 2 * (3 * b - 6 * c) * l + 3 * c;if (0 === n) break;var m = a(l, c, b) - k, - l = l - m / n; - }k = l; - } else if (0 === n) k = l;else { - var l = h, - h = h + .1, - g = 0;do { - m = l + (h - l) / 2, n = a(m, c, b) - k, 0 < n ? h = m : l = m; - } while (1e-7 < Math.abs(n) && 10 > ++g);k = m; - }return a(k, d, f); - }; - } - }; - }(), - Q = function () { - function a(a, b) { - return 0 === a || 1 === a ? a : -Math.pow(2, 10 * (a - 1)) * Math.sin(2 * (a - 1 - b / (2 * Math.PI) * Math.asin(1)) * Math.PI / b); - }var c = "Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "), - d = { In: [[.55, .085, .68, .53], [.55, .055, .675, .19], [.895, .03, .685, .22], [.755, .05, .855, .06], [.47, 0, .745, .715], [.95, .05, .795, .035], [.6, .04, .98, .335], [.6, -.28, .735, .045], a], Out: [[.25, .46, .45, .94], [.215, .61, .355, 1], [.165, .84, .44, 1], [.23, 1, .32, 1], [.39, .575, .565, 1], [.19, 1, .22, 1], [.075, .82, .165, 1], [.175, .885, .32, 1.275], function (b, c) { - return 1 - a(1 - b, c); - }], InOut: [[.455, .03, .515, .955], [.645, .045, .355, 1], [.77, 0, .175, 1], [.86, 0, .07, 1], [.445, .05, .55, .95], [1, 0, 0, 1], [.785, .135, .15, .86], [.68, -.55, .265, 1.55], function (b, c) { - return .5 > b ? a(2 * b, c) / 2 : 1 - a(-2 * b + 2, c) / 2; - }] }, - b = { linear: A(.25, .25, .75, .75) }, - f = {}, - e;for (e in d) { - f.type = e, d[f.type].forEach(function (a) { - return function (d, f) { - b["ease" + a.type + c[f]] = h.fnc(d) ? d : A.apply($jscomp$this, d); - }; - }(f)), f = { type: f.type }; - }return b; - }(), - ha = { css: function (a, c, d) { - return a.style[c] = d; - }, attribute: function (a, c, d) { - return a.setAttribute(c, d); - }, object: function (a, c, d) { - return a[c] = d; - }, transform: function (a, c, d, b, f) { - b[f] || (b[f] = []);b[f].push(c + "(" + d + ")"); - } }, - v = [], - B = 0, - ia = function () { - function a() { - B = requestAnimationFrame(c); - }function c(c) { - var b = v.length;if (b) { - for (var d = 0; d < b;) { - v[d] && v[d].tick(c), d++; - }a(); - } else cancelAnimationFrame(B), B = 0; - }return a; - }();q.version = "2.2.0";q.speed = 1;q.running = v;q.remove = function (a) { - a = P(a);for (var c = v.length; c--;) { - for (var d = v[c], b = d.animations, f = b.length; f--;) { - u(a, b[f].animatable.target) && (b.splice(f, 1), b.length || d.pause()); - } - } - };q.getValue = K;q.path = function (a, c) { - var d = h.str(a) ? e(a)[0] : a, - b = c || 100;return function (a) { - return { el: d, property: a, totalLength: N(d) * (b / 100) }; - }; - };q.setDashoffset = function (a) { - var c = N(a);a.setAttribute("stroke-dasharray", c);return c; - };q.bezier = A;q.easings = Q;q.timeline = function (a) { - var c = q(a);c.pause();c.duration = 0;c.add = function (d) { - c.children.forEach(function (a) { - a.began = !0;a.completed = !0; - });m(d).forEach(function (b) { - var d = z(b, D(S, a || {}));d.targets = d.targets || a.targets;b = c.duration;var e = d.offset;d.autoplay = !1;d.direction = c.direction;d.offset = h.und(e) ? b : L(e, b);c.began = !0;c.completed = !0;c.seek(d.offset);d = q(d);d.began = !0;d.completed = !0;d.duration > b && (c.duration = d.duration);c.children.push(d); - });c.seek(0);c.reset();c.autoplay && c.restart();return c; - };return c; - };q.random = function (a, c) { - return Math.floor(Math.random() * (c - a + 1)) + a; - };return q; -}); -;(function ($, anim) { - 'use strict'; - - var _defaults = { - accordion: true, - onOpenStart: undefined, - onOpenEnd: undefined, - onCloseStart: undefined, - onCloseEnd: undefined, - inDuration: 300, - outDuration: 300 - }; - - /** - * @class - * - */ - - var Collapsible = function (_Component) { - _inherits(Collapsible, _Component); - - /** - * Construct Collapsible instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - function Collapsible(el, options) { - _classCallCheck(this, Collapsible); - - var _this3 = _possibleConstructorReturn(this, (Collapsible.__proto__ || Object.getPrototypeOf(Collapsible)).call(this, Collapsible, el, options)); - - _this3.el.M_Collapsible = _this3; - - /** - * Options for the collapsible - * @member Collapsible#options - * @prop {Boolean} [accordion=false] - Type of the collapsible - * @prop {Function} onOpenStart - Callback function called before collapsible is opened - * @prop {Function} onOpenEnd - Callback function called after collapsible is opened - * @prop {Function} onCloseStart - Callback function called before collapsible is closed - * @prop {Function} onCloseEnd - Callback function called after collapsible is closed - * @prop {Number} inDuration - Transition in duration in milliseconds. - * @prop {Number} outDuration - Transition duration in milliseconds. - */ - _this3.options = $.extend({}, Collapsible.defaults, options); - - // Setup tab indices - _this3.$headers = _this3.$el.children('li').children('.collapsible-header'); - _this3.$headers.attr('tabindex', 0); - - _this3._setupEventHandlers(); - - // Open first active - var $activeBodies = _this3.$el.children('li.active').children('.collapsible-body'); - if (_this3.options.accordion) { - // Handle Accordion - $activeBodies.first().css('display', 'block'); - } else { - // Handle Expandables - $activeBodies.css('display', 'block'); - } - return _this3; - } - - _createClass(Collapsible, [{ - key: "destroy", - - - /** - * Teardown component - */ - value: function destroy() { - this._removeEventHandlers(); - this.el.M_Collapsible = undefined; - } - - /** - * Setup Event Handlers - */ - - }, { - key: "_setupEventHandlers", - value: function _setupEventHandlers() { - var _this4 = this; - - this._handleCollapsibleClickBound = this._handleCollapsibleClick.bind(this); - this._handleCollapsibleKeydownBound = this._handleCollapsibleKeydown.bind(this); - this.el.addEventListener('click', this._handleCollapsibleClickBound); - this.$headers.each(function (header) { - header.addEventListener('keydown', _this4._handleCollapsibleKeydownBound); - }); - } - - /** - * Remove Event Handlers - */ - - }, { - key: "_removeEventHandlers", - value: function _removeEventHandlers() { - var _this5 = this; - - this.el.removeEventListener('click', this._handleCollapsibleClickBound); - this.$headers.each(function (header) { - header.removeEventListener('keydown', _this5._handleCollapsibleKeydownBound); - }); - } - - /** - * Handle Collapsible Click - * @param {Event} e - */ - - }, { - key: "_handleCollapsibleClick", - value: function _handleCollapsibleClick(e) { - var $header = $(e.target).closest('.collapsible-header'); - if (e.target && $header.length) { - var $collapsible = $header.closest('.collapsible'); - if ($collapsible[0] === this.el) { - var $collapsibleLi = $header.closest('li'); - var $collapsibleLis = $collapsible.children('li'); - var isActive = $collapsibleLi[0].classList.contains('active'); - var index = $collapsibleLis.index($collapsibleLi); - - if (isActive) { - this.close(index); - } else { - this.open(index); - } - } - } - } - - /** - * Handle Collapsible Keydown - * @param {Event} e - */ - - }, { - key: "_handleCollapsibleKeydown", - value: function _handleCollapsibleKeydown(e) { - if (e.keyCode === 13) { - this._handleCollapsibleClickBound(e); - } - } - - /** - * Animate in collapsible slide - * @param {Number} index - 0th index of slide - */ - - }, { - key: "_animateIn", - value: function _animateIn(index) { - var _this6 = this; - - var $collapsibleLi = this.$el.children('li').eq(index); - if ($collapsibleLi.length) { - var $body = $collapsibleLi.children('.collapsible-body'); - - anim.remove($body[0]); - $body.css({ - display: 'block', - overflow: 'hidden', - height: 0, - paddingTop: '', - paddingBottom: '' - }); - - var pTop = $body.css('padding-top'); - var pBottom = $body.css('padding-bottom'); - var finalHeight = $body[0].scrollHeight; - $body.css({ - paddingTop: 0, - paddingBottom: 0 - }); - - anim({ - targets: $body[0], - height: finalHeight, - paddingTop: pTop, - paddingBottom: pBottom, - duration: this.options.inDuration, - easing: 'easeInOutCubic', - complete: function (anim) { - $body.css({ - overflow: '', - paddingTop: '', - paddingBottom: '', - height: '' - }); - - // onOpenEnd callback - if (typeof _this6.options.onOpenEnd === 'function') { - _this6.options.onOpenEnd.call(_this6, $collapsibleLi[0]); - } - } - }); - } - } - - /** - * Animate out collapsible slide - * @param {Number} index - 0th index of slide to open - */ - - }, { - key: "_animateOut", - value: function _animateOut(index) { - var _this7 = this; - - var $collapsibleLi = this.$el.children('li').eq(index); - if ($collapsibleLi.length) { - var $body = $collapsibleLi.children('.collapsible-body'); - anim.remove($body[0]); - $body.css('overflow', 'hidden'); - anim({ - targets: $body[0], - height: 0, - paddingTop: 0, - paddingBottom: 0, - duration: this.options.outDuration, - easing: 'easeInOutCubic', - complete: function () { - $body.css({ - height: '', - overflow: '', - padding: '', - display: '' - }); - - // onCloseEnd callback - if (typeof _this7.options.onCloseEnd === 'function') { - _this7.options.onCloseEnd.call(_this7, $collapsibleLi[0]); - } - } - }); - } - } - - /** - * Open Collapsible - * @param {Number} index - 0th index of slide - */ - - }, { - key: "open", - value: function open(index) { - var _this8 = this; - - var $collapsibleLi = this.$el.children('li').eq(index); - if ($collapsibleLi.length && !$collapsibleLi[0].classList.contains('active')) { - // onOpenStart callback - if (typeof this.options.onOpenStart === 'function') { - this.options.onOpenStart.call(this, $collapsibleLi[0]); - } - - // Handle accordion behavior - if (this.options.accordion) { - var $collapsibleLis = this.$el.children('li'); - var $activeLis = this.$el.children('li.active'); - $activeLis.each(function (el) { - var index = $collapsibleLis.index($(el)); - _this8.close(index); - }); - } - - // Animate in - $collapsibleLi[0].classList.add('active'); - this._animateIn(index); - } - } - - /** - * Close Collapsible - * @param {Number} index - 0th index of slide - */ - - }, { - key: "close", - value: function close(index) { - var $collapsibleLi = this.$el.children('li').eq(index); - if ($collapsibleLi.length && $collapsibleLi[0].classList.contains('active')) { - // onCloseStart callback - if (typeof this.options.onCloseStart === 'function') { - this.options.onCloseStart.call(this, $collapsibleLi[0]); - } - - // Animate out - $collapsibleLi[0].classList.remove('active'); - this._animateOut(index); - } - } - }], [{ - key: "init", - value: function init(els, options) { - return _get(Collapsible.__proto__ || Object.getPrototypeOf(Collapsible), "init", this).call(this, this, els, options); - } - - /** - * Get Instance - */ - - }, { - key: "getInstance", - value: function getInstance(el) { - var domElem = !!el.jquery ? el[0] : el; - return domElem.M_Collapsible; - } - }, { - key: "defaults", - get: function () { - return _defaults; - } - }]); - - return Collapsible; - }(Component); - - M.Collapsible = Collapsible; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Collapsible, 'collapsible', 'M_Collapsible'); - } -})(cash, M.anime); -;(function ($, anim) { - 'use strict'; - - var _defaults = { - alignment: 'left', - autoFocus: true, - constrainWidth: true, - container: null, - coverTrigger: true, - closeOnClick: true, - hover: false, - inDuration: 150, - outDuration: 250, - onOpenStart: null, - onOpenEnd: null, - onCloseStart: null, - onCloseEnd: null, - onItemClick: null - }; - - /** - * @class - */ - - var Dropdown = function (_Component2) { - _inherits(Dropdown, _Component2); - - function Dropdown(el, options) { - _classCallCheck(this, Dropdown); - - var _this9 = _possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).call(this, Dropdown, el, options)); - - _this9.el.M_Dropdown = _this9; - Dropdown._dropdowns.push(_this9); - - _this9.id = M.getIdFromTrigger(el); - _this9.dropdownEl = document.getElementById(_this9.id); - _this9.$dropdownEl = $(_this9.dropdownEl); - - /** - * Options for the dropdown - * @member Dropdown#options - * @prop {String} [alignment='left'] - Edge which the dropdown is aligned to - * @prop {Boolean} [autoFocus=true] - Automatically focus dropdown el for keyboard - * @prop {Boolean} [constrainWidth=true] - Constrain width to width of the button - * @prop {Element} container - Container element to attach dropdown to (optional) - * @prop {Boolean} [coverTrigger=true] - Place dropdown over trigger - * @prop {Boolean} [closeOnClick=true] - Close on click of dropdown item - * @prop {Boolean} [hover=false] - Open dropdown on hover - * @prop {Number} [inDuration=150] - Duration of open animation in ms - * @prop {Number} [outDuration=250] - Duration of close animation in ms - * @prop {Function} onOpenStart - Function called when dropdown starts opening - * @prop {Function} onOpenEnd - Function called when dropdown finishes opening - * @prop {Function} onCloseStart - Function called when dropdown starts closing - * @prop {Function} onCloseEnd - Function called when dropdown finishes closing - */ - _this9.options = $.extend({}, Dropdown.defaults, options); - - /** - * Describes open/close state of dropdown - * @type {Boolean} - */ - _this9.isOpen = false; - - /** - * Describes if dropdown content is scrollable - * @type {Boolean} - */ - _this9.isScrollable = false; - - /** - * Describes if touch moving on dropdown content - * @type {Boolean} - */ - _this9.isTouchMoving = false; - - _this9.focusedIndex = -1; - _this9.filterQuery = []; - - // Move dropdown-content after dropdown-trigger - if (!!_this9.options.container) { - $(_this9.options.container).append(_this9.dropdownEl); - } else { - _this9.$el.after(_this9.dropdownEl); - } - - _this9._makeDropdownFocusable(); - _this9._resetFilterQueryBound = _this9._resetFilterQuery.bind(_this9); - _this9._handleDocumentClickBound = _this9._handleDocumentClick.bind(_this9); - _this9._handleDocumentTouchmoveBound = _this9._handleDocumentTouchmove.bind(_this9); - _this9._handleDropdownClickBound = _this9._handleDropdownClick.bind(_this9); - _this9._handleDropdownKeydownBound = _this9._handleDropdownKeydown.bind(_this9); - _this9._handleTriggerKeydownBound = _this9._handleTriggerKeydown.bind(_this9); - _this9._setupEventHandlers(); - return _this9; - } - - _createClass(Dropdown, [{ - key: "destroy", - - - /** - * Teardown component - */ - value: function destroy() { - this._resetDropdownStyles(); - this._removeEventHandlers(); - Dropdown._dropdowns.splice(Dropdown._dropdowns.indexOf(this), 1); - this.el.M_Dropdown = undefined; - } - - /** - * Setup Event Handlers - */ - - }, { - key: "_setupEventHandlers", - value: function _setupEventHandlers() { - // Trigger keydown handler - this.el.addEventListener('keydown', this._handleTriggerKeydownBound); - - // Item click handler - this.dropdownEl.addEventListener('click', this._handleDropdownClickBound); - - // Hover event handlers - if (this.options.hover) { - this._handleMouseEnterBound = this._handleMouseEnter.bind(this); - this.el.addEventListener('mouseenter', this._handleMouseEnterBound); - this._handleMouseLeaveBound = this._handleMouseLeave.bind(this); - this.el.addEventListener('mouseleave', this._handleMouseLeaveBound); - this.dropdownEl.addEventListener('mouseleave', this._handleMouseLeaveBound); - - // Click event handlers - } else { - this._handleClickBound = this._handleClick.bind(this); - this.el.addEventListener('click', this._handleClickBound); - } - } - - /** - * Remove Event Handlers - */ - - }, { - key: "_removeEventHandlers", - value: function _removeEventHandlers() { - this.el.removeEventListener('keydown', this._handleTriggerKeydownBound); - this.dropdownEl.removeEventListener('click', this._handleDropdownClickBound); - - if (this.options.hover) { - this.el.removeEventListener('mouseenter', this._handleMouseEnterBound); - this.el.removeEventListener('mouseleave', this._handleMouseLeaveBound); - this.dropdownEl.removeEventListener('mouseleave', this._handleMouseLeaveBound); - } else { - this.el.removeEventListener('click', this._handleClickBound); - } - } - }, { - key: "_setupTemporaryEventHandlers", - value: function _setupTemporaryEventHandlers() { - // Use capture phase event handler to prevent click - document.body.addEventListener('click', this._handleDocumentClickBound, true); - document.body.addEventListener('touchend', this._handleDocumentClickBound); - document.body.addEventListener('touchmove', this._handleDocumentTouchmoveBound); - this.dropdownEl.addEventListener('keydown', this._handleDropdownKeydownBound); - } - }, { - key: "_removeTemporaryEventHandlers", - value: function _removeTemporaryEventHandlers() { - // Use capture phase event handler to prevent click - document.body.removeEventListener('click', this._handleDocumentClickBound, true); - document.body.removeEventListener('touchend', this._handleDocumentClickBound); - document.body.removeEventListener('touchmove', this._handleDocumentTouchmoveBound); - this.dropdownEl.removeEventListener('keydown', this._handleDropdownKeydownBound); - } - }, { - key: "_handleClick", - value: function _handleClick(e) { - e.preventDefault(); - this.open(); - } - }, { - key: "_handleMouseEnter", - value: function _handleMouseEnter() { - this.open(); - } - }, { - key: "_handleMouseLeave", - value: function _handleMouseLeave(e) { - var toEl = e.toElement || e.relatedTarget; - var leaveToDropdownContent = !!$(toEl).closest('.dropdown-content').length; - var leaveToActiveDropdownTrigger = false; - - var $closestTrigger = $(toEl).closest('.dropdown-trigger'); - if ($closestTrigger.length && !!$closestTrigger[0].M_Dropdown && $closestTrigger[0].M_Dropdown.isOpen) { - leaveToActiveDropdownTrigger = true; - } - - // Close hover dropdown if mouse did not leave to either active dropdown-trigger or dropdown-content - if (!leaveToActiveDropdownTrigger && !leaveToDropdownContent) { - this.close(); - } - } - }, { - key: "_handleDocumentClick", - value: function _handleDocumentClick(e) { - var _this10 = this; - - var $target = $(e.target); - if (this.options.closeOnClick && $target.closest('.dropdown-content').length && !this.isTouchMoving) { - // isTouchMoving to check if scrolling on mobile. - setTimeout(function () { - _this10.close(); - }, 0); - } else if ($target.closest('.dropdown-trigger').length || !$target.closest('.dropdown-content').length) { - setTimeout(function () { - _this10.close(); - }, 0); - } - this.isTouchMoving = false; - } - }, { - key: "_handleTriggerKeydown", - value: function _handleTriggerKeydown(e) { - // ARROW DOWN OR ENTER WHEN SELECT IS CLOSED - open Dropdown - if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ENTER) && !this.isOpen) { - e.preventDefault(); - this.open(); - } - } - - /** - * Handle Document Touchmove - * @param {Event} e - */ - - }, { - key: "_handleDocumentTouchmove", - value: function _handleDocumentTouchmove(e) { - var $target = $(e.target); - if ($target.closest('.dropdown-content').length) { - this.isTouchMoving = true; - } - } - - /** - * Handle Dropdown Click - * @param {Event} e - */ - - }, { - key: "_handleDropdownClick", - value: function _handleDropdownClick(e) { - // onItemClick callback - if (typeof this.options.onItemClick === 'function') { - var itemEl = $(e.target).closest('li')[0]; - this.options.onItemClick.call(this, itemEl); - } - } - - /** - * Handle Dropdown Keydown - * @param {Event} e - */ - - }, { - key: "_handleDropdownKeydown", - value: function _handleDropdownKeydown(e) { - if (e.which === M.keys.TAB) { - e.preventDefault(); - this.close(); - - // Navigate down dropdown list - } else if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) && this.isOpen) { - e.preventDefault(); - var direction = e.which === M.keys.ARROW_DOWN ? 1 : -1; - var newFocusedIndex = this.focusedIndex; - var foundNewIndex = false; - do { - newFocusedIndex = newFocusedIndex + direction; - - if (!!this.dropdownEl.children[newFocusedIndex] && this.dropdownEl.children[newFocusedIndex].tabIndex !== -1) { - foundNewIndex = true; - break; - } - } while (newFocusedIndex < this.dropdownEl.children.length && newFocusedIndex >= 0); - - if (foundNewIndex) { - this.focusedIndex = newFocusedIndex; - this._focusFocusedItem(); - } - - // ENTER selects choice on focused item - } else if (e.which === M.keys.ENTER && this.isOpen) { - // Search for and ") + ''; - } - }, { - key: "renderRow", - value: function renderRow(days, isRTL, isRowSelected) { - return '' + (isRTL ? days.reverse() : days).join('') + ''; - } - }, { - key: "renderTable", - value: function renderTable(opts, data, randId) { - return '
    ' + this.renderHead(opts) + this.renderBody(data) + '
    '; - } - }, { - key: "renderHead", - value: function renderHead(opts) { - var i = void 0, - arr = []; - for (i = 0; i < 7; i++) { - arr.push("" + this.renderDayName(opts, i, true) + ""); - } - return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ''; - } - }, { - key: "renderBody", - value: function renderBody(rows) { - return '' + rows.join('') + ''; - } - }, { - key: "renderTitle", - value: function renderTitle(instance, c, year, month, refYear, randId) { - var i = void 0, - j = void 0, - arr = void 0, - opts = this.options, - isMinYear = year === opts.minYear, - isMaxYear = year === opts.maxYear, - html = '
    ', - monthHtml = void 0, - yearHtml = void 0, - prev = true, - next = true; - - for (arr = [], i = 0; i < 12; i++) { - arr.push(''); - } - - monthHtml = ''; - - if ($.isArray(opts.yearRange)) { - i = opts.yearRange[0]; - j = opts.yearRange[1] + 1; - } else { - i = year - opts.yearRange; - j = 1 + year + opts.yearRange; - } - - for (arr = []; i < j && i <= opts.maxYear; i++) { - if (i >= opts.minYear) { - arr.push(""); - } - } - - yearHtml = ""; - - var leftArrow = ''; - html += ""; - - html += '
    '; - if (opts.showMonthAfterYear) { - html += yearHtml + monthHtml; - } else { - html += monthHtml + yearHtml; - } - html += '
    '; - - if (isMinYear && (month === 0 || opts.minMonth >= month)) { - prev = false; - } - - if (isMaxYear && (month === 11 || opts.maxMonth <= month)) { - next = false; - } - - var rightArrow = ''; - html += ""; - - return html += '
    '; - } - - /** - * refresh the HTML - */ - - }, { - key: "draw", - value: function draw(force) { - if (!this.isOpen && !force) { - return; - } - var opts = this.options, - minYear = opts.minYear, - maxYear = opts.maxYear, - minMonth = opts.minMonth, - maxMonth = opts.maxMonth, - html = '', - randId = void 0; - - if (this._y <= minYear) { - this._y = minYear; - if (!isNaN(minMonth) && this._m < minMonth) { - this._m = minMonth; - } - } - if (this._y >= maxYear) { - this._y = maxYear; - if (!isNaN(maxMonth) && this._m > maxMonth) { - this._m = maxMonth; - } - } - - randId = 'datepicker-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2); - - for (var c = 0; c < 1; c++) { - this._renderDateDisplay(); - html += this.renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId); - } - - this.destroySelects(); - - this.calendarEl.innerHTML = html; - - // Init Materialize Select - var yearSelect = this.calendarEl.querySelector('.orig-select-year'); - var monthSelect = this.calendarEl.querySelector('.orig-select-month'); - M.FormSelect.init(yearSelect, { - classes: 'select-year', - dropdownOptions: { container: document.body, constrainWidth: false } - }); - M.FormSelect.init(monthSelect, { - classes: 'select-month', - dropdownOptions: { container: document.body, constrainWidth: false } - }); - - // Add change handlers for select - yearSelect.addEventListener('change', this._handleYearChange.bind(this)); - monthSelect.addEventListener('change', this._handleMonthChange.bind(this)); - - if (typeof this.options.onDraw === 'function') { - this.options.onDraw(this); - } - } - - /** - * Setup Event Handlers - */ - - }, { - key: "_setupEventHandlers", - value: function _setupEventHandlers() { - this._handleInputKeydownBound = this._handleInputKeydown.bind(this); - this._handleInputClickBound = this._handleInputClick.bind(this); - this._handleInputChangeBound = this._handleInputChange.bind(this); - this._handleCalendarClickBound = this._handleCalendarClick.bind(this); - this._finishSelectionBound = this._finishSelection.bind(this); - this._handleMonthChange = this._handleMonthChange.bind(this); - this._closeBound = this.close.bind(this); - - this.el.addEventListener('click', this._handleInputClickBound); - this.el.addEventListener('keydown', this._handleInputKeydownBound); - this.el.addEventListener('change', this._handleInputChangeBound); - this.calendarEl.addEventListener('click', this._handleCalendarClickBound); - this.doneBtn.addEventListener('click', this._finishSelectionBound); - this.cancelBtn.addEventListener('click', this._closeBound); - - if (this.options.showClearBtn) { - this._handleClearClickBound = this._handleClearClick.bind(this); - this.clearBtn.addEventListener('click', this._handleClearClickBound); - } - } - }, { - key: "_setupVariables", - value: function _setupVariables() { - var _this56 = this; - - this.$modalEl = $(Datepicker._template); - this.modalEl = this.$modalEl[0]; - - this.calendarEl = this.modalEl.querySelector('.datepicker-calendar'); - - this.yearTextEl = this.modalEl.querySelector('.year-text'); - this.dateTextEl = this.modalEl.querySelector('.date-text'); - if (this.options.showClearBtn) { - this.clearBtn = this.modalEl.querySelector('.datepicker-clear'); - } - this.doneBtn = this.modalEl.querySelector('.datepicker-done'); - this.cancelBtn = this.modalEl.querySelector('.datepicker-cancel'); - - this.formats = { - d: function () { - return _this56.date.getDate(); - }, - dd: function () { - var d = _this56.date.getDate(); - return (d < 10 ? '0' : '') + d; - }, - ddd: function () { - return _this56.options.i18n.weekdaysShort[_this56.date.getDay()]; - }, - dddd: function () { - return _this56.options.i18n.weekdays[_this56.date.getDay()]; - }, - m: function () { - return _this56.date.getMonth() + 1; - }, - mm: function () { - var m = _this56.date.getMonth() + 1; - return (m < 10 ? '0' : '') + m; - }, - mmm: function () { - return _this56.options.i18n.monthsShort[_this56.date.getMonth()]; - }, - mmmm: function () { - return _this56.options.i18n.months[_this56.date.getMonth()]; - }, - yy: function () { - return ('' + _this56.date.getFullYear()).slice(2); - }, - yyyy: function () { - return _this56.date.getFullYear(); - } - }; - } - - /** - * Remove Event Handlers - */ - - }, { - key: "_removeEventHandlers", - value: function _removeEventHandlers() { - this.el.removeEventListener('click', this._handleInputClickBound); - this.el.removeEventListener('keydown', this._handleInputKeydownBound); - this.el.removeEventListener('change', this._handleInputChangeBound); - this.calendarEl.removeEventListener('click', this._handleCalendarClickBound); - } - }, { - key: "_handleInputClick", - value: function _handleInputClick() { - this.open(); - } - }, { - key: "_handleInputKeydown", - value: function _handleInputKeydown(e) { - if (e.which === M.keys.ENTER) { - e.preventDefault(); - this.open(); - } - } - }, { - key: "_handleCalendarClick", - value: function _handleCalendarClick(e) { - if (!this.isOpen) { - return; - } - - var $target = $(e.target); - if (!$target.hasClass('is-disabled')) { - if ($target.hasClass('datepicker-day-button') && !$target.hasClass('is-empty') && !$target.parent().hasClass('is-disabled')) { - this.setDate(new Date(e.target.getAttribute('data-year'), e.target.getAttribute('data-month'), e.target.getAttribute('data-day'))); - if (this.options.autoClose) { - this._finishSelection(); - } - } else if ($target.closest('.month-prev').length) { - this.prevMonth(); - } else if ($target.closest('.month-next').length) { - this.nextMonth(); - } - } - } - }, { - key: "_handleClearClick", - value: function _handleClearClick() { - this.date = null; - this.setInputValue(); - this.close(); - } - }, { - key: "_handleMonthChange", - value: function _handleMonthChange(e) { - this.gotoMonth(e.target.value); - } - }, { - key: "_handleYearChange", - value: function _handleYearChange(e) { - this.gotoYear(e.target.value); - } - - /** - * change view to a specific month (zero-index, e.g. 0: January) - */ - - }, { - key: "gotoMonth", - value: function gotoMonth(month) { - if (!isNaN(month)) { - this.calendars[0].month = parseInt(month, 10); - this.adjustCalendars(); - } - } - - /** - * change view to a specific full year (e.g. "2012") - */ - - }, { - key: "gotoYear", - value: function gotoYear(year) { - if (!isNaN(year)) { - this.calendars[0].year = parseInt(year, 10); - this.adjustCalendars(); - } - } - }, { - key: "_handleInputChange", - value: function _handleInputChange(e) { - var date = void 0; - - // Prevent change event from being fired when triggered by the plugin - if (e.firedBy === this) { - return; - } - if (this.options.parse) { - date = this.options.parse(this.el.value, this.options.format); - } else { - date = new Date(Date.parse(this.el.value)); - } - - if (Datepicker._isDate(date)) { - this.setDate(date); - } - } - }, { - key: "renderDayName", - value: function renderDayName(opts, day, abbr) { - day += opts.firstDay; - while (day >= 7) { - day -= 7; - } - return abbr ? opts.i18n.weekdaysAbbrev[day] : opts.i18n.weekdays[day]; - } - - /** - * Set input value to the selected date and close Datepicker - */ - - }, { - key: "_finishSelection", - value: function _finishSelection() { - this.setInputValue(); - this.close(); - } - - /** - * Open Datepicker - */ - - }, { - key: "open", - value: function open() { - if (this.isOpen) { - return; - } - - this.isOpen = true; - if (typeof this.options.onOpen === 'function') { - this.options.onOpen.call(this); - } - this.draw(); - this.modal.open(); - return this; - } - - /** - * Close Datepicker - */ - - }, { - key: "close", - value: function close() { - if (!this.isOpen) { - return; - } - - this.isOpen = false; - if (typeof this.options.onClose === 'function') { - this.options.onClose.call(this); - } - this.modal.close(); - return this; - } - }], [{ - key: "init", - value: function init(els, options) { - return _get(Datepicker.__proto__ || Object.getPrototypeOf(Datepicker), "init", this).call(this, this, els, options); - } - }, { - key: "_isDate", - value: function _isDate(obj) { - return (/Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime()) - ); - } - }, { - key: "_isWeekend", - value: function _isWeekend(date) { - var day = date.getDay(); - return day === 0 || day === 6; - } - }, { - key: "_setToStartOfDay", - value: function _setToStartOfDay(date) { - if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0); - } - }, { - key: "_getDaysInMonth", - value: function _getDaysInMonth(year, month) { - return [31, Datepicker._isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; - } - }, { - key: "_isLeapYear", - value: function _isLeapYear(year) { - // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951 - return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; - } - }, { - key: "_compareDates", - value: function _compareDates(a, b) { - // weak date comparison (use setToStartOfDay(date) to ensure correct result) - return a.getTime() === b.getTime(); - } - }, { - key: "_setToStartOfDay", - value: function _setToStartOfDay(date) { - if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0); - } - - /** - * Get Instance - */ - - }, { - key: "getInstance", - value: function getInstance(el) { - var domElem = !!el.jquery ? el[0] : el; - return domElem.M_Datepicker; - } - }, { - key: "defaults", - get: function () { - return _defaults; - } - }]); - - return Datepicker; - }(Component); - - Datepicker._template = [''].join(''); - - M.Datepicker = Datepicker; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Datepicker, 'datepicker', 'M_Datepicker'); - } -})(cash); -;(function ($) { - 'use strict'; - - var _defaults = { - dialRadius: 135, - outerRadius: 105, - innerRadius: 70, - tickRadius: 20, - duration: 350, - container: null, - defaultTime: 'now', // default time, 'now' or '13:14' e.g. - fromNow: 0, // Millisecond offset from the defaultTime - showClearBtn: false, - - // internationalization - i18n: { - cancel: 'Cancel', - clear: 'Clear', - done: 'Ok' - }, - - autoClose: false, // auto close when minute is selected - twelveHour: true, // change to 12 hour AM/PM clock from 24 hour - vibrate: true, // vibrate the device when dragging clock hand - - // Callbacks - onOpenStart: null, - onOpenEnd: null, - onCloseStart: null, - onCloseEnd: null, - onSelect: null - }; - - /** - * @class - * - */ - - var Timepicker = function (_Component16) { - _inherits(Timepicker, _Component16); - - function Timepicker(el, options) { - _classCallCheck(this, Timepicker); - - var _this57 = _possibleConstructorReturn(this, (Timepicker.__proto__ || Object.getPrototypeOf(Timepicker)).call(this, Timepicker, el, options)); - - _this57.el.M_Timepicker = _this57; - - _this57.options = $.extend({}, Timepicker.defaults, options); - - _this57.id = M.guid(); - _this57._insertHTMLIntoDOM(); - _this57._setupModal(); - _this57._setupVariables(); - _this57._setupEventHandlers(); - - _this57._clockSetup(); - _this57._pickerSetup(); - return _this57; - } - - _createClass(Timepicker, [{ - key: "destroy", - - - /** - * Teardown component - */ - value: function destroy() { - this._removeEventHandlers(); - this.modal.destroy(); - $(this.modalEl).remove(); - this.el.M_Timepicker = undefined; - } - - /** - * Setup Event Handlers - */ - - }, { - key: "_setupEventHandlers", - value: function _setupEventHandlers() { - this._handleInputKeydownBound = this._handleInputKeydown.bind(this); - this._handleInputClickBound = this._handleInputClick.bind(this); - this._handleClockClickStartBound = this._handleClockClickStart.bind(this); - this._handleDocumentClickMoveBound = this._handleDocumentClickMove.bind(this); - this._handleDocumentClickEndBound = this._handleDocumentClickEnd.bind(this); - - this.el.addEventListener('click', this._handleInputClickBound); - this.el.addEventListener('keydown', this._handleInputKeydownBound); - this.plate.addEventListener('mousedown', this._handleClockClickStartBound); - this.plate.addEventListener('touchstart', this._handleClockClickStartBound); - - $(this.spanHours).on('click', this.showView.bind(this, 'hours')); - $(this.spanMinutes).on('click', this.showView.bind(this, 'minutes')); - } - }, { - key: "_removeEventHandlers", - value: function _removeEventHandlers() { - this.el.removeEventListener('click', this._handleInputClickBound); - this.el.removeEventListener('keydown', this._handleInputKeydownBound); - } - }, { - key: "_handleInputClick", - value: function _handleInputClick() { - this.open(); - } - }, { - key: "_handleInputKeydown", - value: function _handleInputKeydown(e) { - if (e.which === M.keys.ENTER) { - e.preventDefault(); - this.open(); - } - } - }, { - key: "_handleClockClickStart", - value: function _handleClockClickStart(e) { - e.preventDefault(); - var clockPlateBR = this.plate.getBoundingClientRect(); - var offset = { x: clockPlateBR.left, y: clockPlateBR.top }; - - this.x0 = offset.x + this.options.dialRadius; - this.y0 = offset.y + this.options.dialRadius; - this.moved = false; - var clickPos = Timepicker._Pos(e); - this.dx = clickPos.x - this.x0; - this.dy = clickPos.y - this.y0; - - // Set clock hands - this.setHand(this.dx, this.dy, false); - - // Mousemove on document - document.addEventListener('mousemove', this._handleDocumentClickMoveBound); - document.addEventListener('touchmove', this._handleDocumentClickMoveBound); - - // Mouseup on document - document.addEventListener('mouseup', this._handleDocumentClickEndBound); - document.addEventListener('touchend', this._handleDocumentClickEndBound); - } - }, { - key: "_handleDocumentClickMove", - value: function _handleDocumentClickMove(e) { - e.preventDefault(); - var clickPos = Timepicker._Pos(e); - var x = clickPos.x - this.x0; - var y = clickPos.y - this.y0; - this.moved = true; - this.setHand(x, y, false, true); - } - }, { - key: "_handleDocumentClickEnd", - value: function _handleDocumentClickEnd(e) { - var _this58 = this; - - e.preventDefault(); - document.removeEventListener('mouseup', this._handleDocumentClickEndBound); - document.removeEventListener('touchend', this._handleDocumentClickEndBound); - var clickPos = Timepicker._Pos(e); - var x = clickPos.x - this.x0; - var y = clickPos.y - this.y0; - if (this.moved && x === this.dx && y === this.dy) { - this.setHand(x, y); - } - - if (this.currentView === 'hours') { - this.showView('minutes', this.options.duration / 2); - } else if (this.options.autoClose) { - $(this.minutesView).addClass('timepicker-dial-out'); - setTimeout(function () { - _this58.done(); - }, this.options.duration / 2); - } - - if (typeof this.options.onSelect === 'function') { - this.options.onSelect.call(this, this.hours, this.minutes); - } - - // Unbind mousemove event - document.removeEventListener('mousemove', this._handleDocumentClickMoveBound); - document.removeEventListener('touchmove', this._handleDocumentClickMoveBound); - } - }, { - key: "_insertHTMLIntoDOM", - value: function _insertHTMLIntoDOM() { - this.$modalEl = $(Timepicker._template); - this.modalEl = this.$modalEl[0]; - this.modalEl.id = 'modal-' + this.id; - - // Append popover to input by default - var containerEl = document.querySelector(this.options.container); - if (this.options.container && !!containerEl) { - this.$modalEl.appendTo(containerEl); - } else { - this.$modalEl.insertBefore(this.el); - } - } - }, { - key: "_setupModal", - value: function _setupModal() { - var _this59 = this; - - this.modal = M.Modal.init(this.modalEl, { - onOpenStart: this.options.onOpenStart, - onOpenEnd: this.options.onOpenEnd, - onCloseStart: this.options.onCloseStart, - onCloseEnd: function () { - if (typeof _this59.options.onCloseEnd === 'function') { - _this59.options.onCloseEnd.call(_this59); - } - _this59.isOpen = false; - } - }); - } - }, { - key: "_setupVariables", - value: function _setupVariables() { - this.currentView = 'hours'; - this.vibrate = navigator.vibrate ? 'vibrate' : navigator.webkitVibrate ? 'webkitVibrate' : null; - - this._canvas = this.modalEl.querySelector('.timepicker-canvas'); - this.plate = this.modalEl.querySelector('.timepicker-plate'); - - this.hoursView = this.modalEl.querySelector('.timepicker-hours'); - this.minutesView = this.modalEl.querySelector('.timepicker-minutes'); - this.spanHours = this.modalEl.querySelector('.timepicker-span-hours'); - this.spanMinutes = this.modalEl.querySelector('.timepicker-span-minutes'); - this.spanAmPm = this.modalEl.querySelector('.timepicker-span-am-pm'); - this.footer = this.modalEl.querySelector('.timepicker-footer'); - this.amOrPm = 'PM'; - } - }, { - key: "_pickerSetup", - value: function _pickerSetup() { - var $clearBtn = $("").appendTo(this.footer).on('click', this.clear.bind(this)); - if (this.options.showClearBtn) { - $clearBtn.css({ visibility: '' }); - } - - var confirmationBtnsContainer = $('
    '); - $('').appendTo(confirmationBtnsContainer).on('click', this.close.bind(this)); - $('').appendTo(confirmationBtnsContainer).on('click', this.done.bind(this)); - confirmationBtnsContainer.appendTo(this.footer); - } - }, { - key: "_clockSetup", - value: function _clockSetup() { - if (this.options.twelveHour) { - this.$amBtn = $('
    AM
    '); - this.$pmBtn = $('
    PM
    '); - this.$amBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm); - this.$pmBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm); - } - - this._buildHoursView(); - this._buildMinutesView(); - this._buildSVGClock(); - } - }, { - key: "_buildSVGClock", - value: function _buildSVGClock() { - // Draw clock hands and others - var dialRadius = this.options.dialRadius; - var tickRadius = this.options.tickRadius; - var diameter = dialRadius * 2; - - var svg = Timepicker._createSVGEl('svg'); - svg.setAttribute('class', 'timepicker-svg'); - svg.setAttribute('width', diameter); - svg.setAttribute('height', diameter); - var g = Timepicker._createSVGEl('g'); - g.setAttribute('transform', 'translate(' + dialRadius + ',' + dialRadius + ')'); - var bearing = Timepicker._createSVGEl('circle'); - bearing.setAttribute('class', 'timepicker-canvas-bearing'); - bearing.setAttribute('cx', 0); - bearing.setAttribute('cy', 0); - bearing.setAttribute('r', 4); - var hand = Timepicker._createSVGEl('line'); - hand.setAttribute('x1', 0); - hand.setAttribute('y1', 0); - var bg = Timepicker._createSVGEl('circle'); - bg.setAttribute('class', 'timepicker-canvas-bg'); - bg.setAttribute('r', tickRadius); - g.appendChild(hand); - g.appendChild(bg); - g.appendChild(bearing); - svg.appendChild(g); - this._canvas.appendChild(svg); - - this.hand = hand; - this.bg = bg; - this.bearing = bearing; - this.g = g; - } - }, { - key: "_buildHoursView", - value: function _buildHoursView() { - var $tick = $('
    '); - // Hours view - if (this.options.twelveHour) { - for (var i = 1; i < 13; i += 1) { - var tick = $tick.clone(); - var radian = i / 6 * Math.PI; - var radius = this.options.outerRadius; - tick.css({ - left: this.options.dialRadius + Math.sin(radian) * radius - this.options.tickRadius + 'px', - top: this.options.dialRadius - Math.cos(radian) * radius - this.options.tickRadius + 'px' - }); - tick.html(i === 0 ? '00' : i); - this.hoursView.appendChild(tick[0]); - // tick.on(mousedownEvent, mousedown); - } - } else { - for (var _i2 = 0; _i2 < 24; _i2 += 1) { - var _tick = $tick.clone(); - var _radian = _i2 / 6 * Math.PI; - var inner = _i2 > 0 && _i2 < 13; - var _radius = inner ? this.options.innerRadius : this.options.outerRadius; - _tick.css({ - left: this.options.dialRadius + Math.sin(_radian) * _radius - this.options.tickRadius + 'px', - top: this.options.dialRadius - Math.cos(_radian) * _radius - this.options.tickRadius + 'px' - }); - _tick.html(_i2 === 0 ? '00' : _i2); - this.hoursView.appendChild(_tick[0]); - // tick.on(mousedownEvent, mousedown); - } - } - } - }, { - key: "_buildMinutesView", - value: function _buildMinutesView() { - var $tick = $('
    '); - // Minutes view - for (var i = 0; i < 60; i += 5) { - var tick = $tick.clone(); - var radian = i / 30 * Math.PI; - tick.css({ - left: this.options.dialRadius + Math.sin(radian) * this.options.outerRadius - this.options.tickRadius + 'px', - top: this.options.dialRadius - Math.cos(radian) * this.options.outerRadius - this.options.tickRadius + 'px' - }); - tick.html(Timepicker._addLeadingZero(i)); - this.minutesView.appendChild(tick[0]); - } - } - }, { - key: "_handleAmPmClick", - value: function _handleAmPmClick(e) { - var $btnClicked = $(e.target); - this.amOrPm = $btnClicked.hasClass('am-btn') ? 'AM' : 'PM'; - this._updateAmPmView(); - } - }, { - key: "_updateAmPmView", - value: function _updateAmPmView() { - if (this.options.twelveHour) { - this.$amBtn.toggleClass('text-primary', this.amOrPm === 'AM'); - this.$pmBtn.toggleClass('text-primary', this.amOrPm === 'PM'); - } - } - }, { - key: "_updateTimeFromInput", - value: function _updateTimeFromInput() { - // Get the time - var value = ((this.el.value || this.options.defaultTime || '') + '').split(':'); - if (this.options.twelveHour && !(typeof value[1] === 'undefined')) { - if (value[1].toUpperCase().indexOf('AM') > 0) { - this.amOrPm = 'AM'; - } else { - this.amOrPm = 'PM'; - } - value[1] = value[1].replace('AM', '').replace('PM', ''); - } - if (value[0] === 'now') { - var now = new Date(+new Date() + this.options.fromNow); - value = [now.getHours(), now.getMinutes()]; - if (this.options.twelveHour) { - this.amOrPm = value[0] >= 12 && value[0] < 24 ? 'PM' : 'AM'; - } - } - this.hours = +value[0] || 0; - this.minutes = +value[1] || 0; - this.spanHours.innerHTML = this.hours; - this.spanMinutes.innerHTML = Timepicker._addLeadingZero(this.minutes); - - this._updateAmPmView(); - } - }, { - key: "showView", - value: function showView(view, delay) { - if (view === 'minutes' && $(this.hoursView).css('visibility') === 'visible') { - // raiseCallback(this.options.beforeHourSelect); - } - var isHours = view === 'hours', - nextView = isHours ? this.hoursView : this.minutesView, - hideView = isHours ? this.minutesView : this.hoursView; - this.currentView = view; - - $(this.spanHours).toggleClass('text-primary', isHours); - $(this.spanMinutes).toggleClass('text-primary', !isHours); - - // Transition view - hideView.classList.add('timepicker-dial-out'); - $(nextView).css('visibility', 'visible').removeClass('timepicker-dial-out'); - - // Reset clock hand - this.resetClock(delay); - - // After transitions ended - clearTimeout(this.toggleViewTimer); - this.toggleViewTimer = setTimeout(function () { - $(hideView).css('visibility', 'hidden'); - }, this.options.duration); - } - }, { - key: "resetClock", - value: function resetClock(delay) { - var view = this.currentView, - value = this[view], - isHours = view === 'hours', - unit = Math.PI / (isHours ? 6 : 30), - radian = value * unit, - radius = isHours && value > 0 && value < 13 ? this.options.innerRadius : this.options.outerRadius, - x = Math.sin(radian) * radius, - y = -Math.cos(radian) * radius, - self = this; - - if (delay) { - $(this.canvas).addClass('timepicker-canvas-out'); - setTimeout(function () { - $(self.canvas).removeClass('timepicker-canvas-out'); - self.setHand(x, y); - }, delay); - } else { - this.setHand(x, y); - } - } - }, { - key: "setHand", - value: function setHand(x, y, roundBy5) { - var _this60 = this; - - var radian = Math.atan2(x, -y), - isHours = this.currentView === 'hours', - unit = Math.PI / (isHours || roundBy5 ? 6 : 30), - z = Math.sqrt(x * x + y * y), - inner = isHours && z < (this.options.outerRadius + this.options.innerRadius) / 2, - radius = inner ? this.options.innerRadius : this.options.outerRadius; - - if (this.options.twelveHour) { - radius = this.options.outerRadius; - } - - // Radian should in range [0, 2PI] - if (radian < 0) { - radian = Math.PI * 2 + radian; - } - - // Get the round value - var value = Math.round(radian / unit); - - // Get the round radian - radian = value * unit; - - // Correct the hours or minutes - if (this.options.twelveHour) { - if (isHours) { - if (value === 0) value = 12; - } else { - if (roundBy5) value *= 5; - if (value === 60) value = 0; - } - } else { - if (isHours) { - if (value === 12) { - value = 0; - } - value = inner ? value === 0 ? 12 : value : value === 0 ? 0 : value + 12; - } else { - if (roundBy5) { - value *= 5; - } - if (value === 60) { - value = 0; - } - } - } - - // Once hours or minutes changed, vibrate the device - if (this[this.currentView] !== value) { - if (this.vibrate && this.options.vibrate) { - // Do not vibrate too frequently - if (!this.vibrateTimer) { - navigator[this.vibrate](10); - this.vibrateTimer = setTimeout(function () { - _this60.vibrateTimer = null; - }, 100); - } - } - } - - this[this.currentView] = value; - if (isHours) { - this['spanHours'].innerHTML = value; - } else { - this['spanMinutes'].innerHTML = Timepicker._addLeadingZero(value); - } - - // Set clock hand and others' position - var cx1 = Math.sin(radian) * (radius - this.options.tickRadius), - cy1 = -Math.cos(radian) * (radius - this.options.tickRadius), - cx2 = Math.sin(radian) * radius, - cy2 = -Math.cos(radian) * radius; - this.hand.setAttribute('x2', cx1); - this.hand.setAttribute('y2', cy1); - this.bg.setAttribute('cx', cx2); - this.bg.setAttribute('cy', cy2); - } - }, { - key: "open", - value: function open() { - if (this.isOpen) { - return; - } - - this.isOpen = true; - this._updateTimeFromInput(); - this.showView('hours'); - - this.modal.open(); - } - }, { - key: "close", - value: function close() { - if (!this.isOpen) { - return; - } - - this.isOpen = false; - this.modal.close(); - } - - /** - * Finish timepicker selection. - */ - - }, { - key: "done", - value: function done(e, clearValue) { - // Set input value - var last = this.el.value; - var value = clearValue ? '' : Timepicker._addLeadingZero(this.hours) + ':' + Timepicker._addLeadingZero(this.minutes); - this.time = value; - if (!clearValue && this.options.twelveHour) { - value = value + " " + this.amOrPm; - } - this.el.value = value; - - // Trigger change event - if (value !== last) { - this.$el.trigger('change'); - } - - this.close(); - this.el.focus(); - } - }, { - key: "clear", - value: function clear() { - this.done(null, true); - } - }], [{ - key: "init", - value: function init(els, options) { - return _get(Timepicker.__proto__ || Object.getPrototypeOf(Timepicker), "init", this).call(this, this, els, options); - } - }, { - key: "_addLeadingZero", - value: function _addLeadingZero(num) { - return (num < 10 ? '0' : '') + num; - } - }, { - key: "_createSVGEl", - value: function _createSVGEl(name) { - var svgNS = 'http://www.w3.org/2000/svg'; - return document.createElementNS(svgNS, name); - } - - /** - * @typedef {Object} Point - * @property {number} x The X Coordinate - * @property {number} y The Y Coordinate - */ - - /** - * Get x position of mouse or touch event - * @param {Event} e - * @return {Point} x and y location - */ - - }, { - key: "_Pos", - value: function _Pos(e) { - if (e.targetTouches && e.targetTouches.length >= 1) { - return { x: e.targetTouches[0].clientX, y: e.targetTouches[0].clientY }; - } - // mouse event - return { x: e.clientX, y: e.clientY }; - } - - /** - * Get Instance - */ - - }, { - key: "getInstance", - value: function getInstance(el) { - var domElem = !!el.jquery ? el[0] : el; - return domElem.M_Timepicker; - } - }, { - key: "defaults", - get: function () { - return _defaults; - } - }]); - - return Timepicker; - }(Component); - - Timepicker._template = [''].join(''); - - M.Timepicker = Timepicker; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Timepicker, 'timepicker', 'M_Timepicker'); - } -})(cash); -;(function ($) { - 'use strict'; - - var _defaults = {}; - - /** - * @class - * - */ - - var CharacterCounter = function (_Component17) { - _inherits(CharacterCounter, _Component17); - - /** - * Construct CharacterCounter instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - function CharacterCounter(el, options) { - _classCallCheck(this, CharacterCounter); - - var _this61 = _possibleConstructorReturn(this, (CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter)).call(this, CharacterCounter, el, options)); - - _this61.el.M_CharacterCounter = _this61; - - /** - * Options for the character counter - */ - _this61.options = $.extend({}, CharacterCounter.defaults, options); - - _this61.isInvalid = false; - _this61.isValidLength = false; - _this61._setupCounter(); - _this61._setupEventHandlers(); - return _this61; - } - - _createClass(CharacterCounter, [{ - key: "destroy", - - - /** - * Teardown component - */ - value: function destroy() { - this._removeEventHandlers(); - this.el.CharacterCounter = undefined; - this._removeCounter(); - } - - /** - * Setup Event Handlers - */ - - }, { - key: "_setupEventHandlers", - value: function _setupEventHandlers() { - this._handleUpdateCounterBound = this.updateCounter.bind(this); - - this.el.addEventListener('focus', this._handleUpdateCounterBound, true); - this.el.addEventListener('input', this._handleUpdateCounterBound, true); - } - - /** - * Remove Event Handlers - */ - - }, { - key: "_removeEventHandlers", - value: function _removeEventHandlers() { - this.el.removeEventListener('focus', this._handleUpdateCounterBound, true); - this.el.removeEventListener('input', this._handleUpdateCounterBound, true); - } - - /** - * Setup counter element - */ - - }, { - key: "_setupCounter", - value: function _setupCounter() { - this.counterEl = document.createElement('span'); - $(this.counterEl).addClass('character-counter').css({ - float: 'right', - 'font-size': '12px', - height: 1 - }); - - this.$el.parent().append(this.counterEl); - } - - /** - * Remove counter element - */ - - }, { - key: "_removeCounter", - value: function _removeCounter() { - $(this.counterEl).remove(); - } - - /** - * Update counter - */ - - }, { - key: "updateCounter", - value: function updateCounter() { - var maxLength = +this.$el.attr('data-length'), - actualLength = this.el.value.length; - this.isValidLength = actualLength <= maxLength; - var counterString = actualLength; - - if (maxLength) { - counterString += '/' + maxLength; - this._validateInput(); - } - - $(this.counterEl).html(counterString); - } - - /** - * Add validation classes - */ - - }, { - key: "_validateInput", - value: function _validateInput() { - if (this.isValidLength && this.isInvalid) { - this.isInvalid = false; - this.$el.removeClass('invalid'); - } else if (!this.isValidLength && !this.isInvalid) { - this.isInvalid = true; - this.$el.removeClass('valid'); - this.$el.addClass('invalid'); - } - } - }], [{ - key: "init", - value: function init(els, options) { - return _get(CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter), "init", this).call(this, this, els, options); - } - - /** - * Get Instance - */ - - }, { - key: "getInstance", - value: function getInstance(el) { - var domElem = !!el.jquery ? el[0] : el; - return domElem.M_CharacterCounter; - } - }, { - key: "defaults", - get: function () { - return _defaults; - } - }]); - - return CharacterCounter; - }(Component); - - M.CharacterCounter = CharacterCounter; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(CharacterCounter, 'characterCounter', 'M_CharacterCounter'); - } -})(cash); -;(function ($) { - 'use strict'; - - var _defaults = { - duration: 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 - numVisible: 5, // Number of visible items in carousel - fullWidth: false, // Change to full width styles - indicators: false, // Toggle indicators - noWrap: false, // Don't wrap around and cycle through items. - onCycleTo: null // Callback for when a new slide is cycled to. - }; - - /** - * @class - * - */ - - var Carousel = function (_Component18) { - _inherits(Carousel, _Component18); - - /** - * Construct Carousel instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - function Carousel(el, options) { - _classCallCheck(this, Carousel); - - var _this62 = _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, Carousel, el, options)); - - _this62.el.M_Carousel = _this62; - - /** - * Options for the carousel - * @member Carousel#options - * @prop {Number} duration - * @prop {Number} dist - * @prop {Number} shift - * @prop {Number} padding - * @prop {Number} numVisible - * @prop {Boolean} fullWidth - * @prop {Boolean} indicators - * @prop {Boolean} noWrap - * @prop {Function} onCycleTo - */ - _this62.options = $.extend({}, Carousel.defaults, options); - - // Setup - _this62.hasMultipleSlides = _this62.$el.find('.carousel-item').length > 1; - _this62.showIndicators = _this62.options.indicators && _this62.hasMultipleSlides; - _this62.noWrap = _this62.options.noWrap || !_this62.hasMultipleSlides; - _this62.pressed = false; - _this62.dragged = false; - _this62.offset = _this62.target = 0; - _this62.images = []; - _this62.itemWidth = _this62.$el.find('.carousel-item').first().innerWidth(); - _this62.itemHeight = _this62.$el.find('.carousel-item').first().innerHeight(); - _this62.dim = _this62.itemWidth * 2 + _this62.options.padding || 1; // Make sure dim is non zero for divisions. - _this62._autoScrollBound = _this62._autoScroll.bind(_this62); - _this62._trackBound = _this62._track.bind(_this62); - - // Full Width carousel setup - if (_this62.options.fullWidth) { - _this62.options.dist = 0; - _this62._setCarouselHeight(); - - // Offset fixed items when indicators. - if (_this62.showIndicators) { - _this62.$el.find('.carousel-fixed-item').addClass('with-indicators'); - } - } - - // Iterate through slides - _this62.$indicators = $('
      '); - _this62.$el.find('.carousel-item').each(function (el, i) { - _this62.images.push(el); - if (_this62.showIndicators) { - var $indicator = $('
    • '); - - // Add active to first by default. - if (i === 0) { - $indicator[0].classList.add('active'); - } - - _this62.$indicators.append($indicator); - } - }); - if (_this62.showIndicators) { - _this62.$el.append(_this62.$indicators); - } - _this62.count = _this62.images.length; - - // Cap numVisible at count - _this62.options.numVisible = Math.min(_this62.count, _this62.options.numVisible); - - // Setup cross browser string - _this62.xform = 'transform'; - ['webkit', 'Moz', 'O', 'ms'].every(function (prefix) { - var e = prefix + 'Transform'; - if (typeof document.body.style[e] !== 'undefined') { - _this62.xform = e; - return false; - } - return true; - }); - - _this62._setupEventHandlers(); - _this62._scroll(_this62.offset); - return _this62; - } - - _createClass(Carousel, [{ - key: "destroy", - - - /** - * Teardown component - */ - value: function destroy() { - this._removeEventHandlers(); - this.el.M_Carousel = undefined; - } - - /** - * Setup Event Handlers - */ - - }, { - key: "_setupEventHandlers", - value: function _setupEventHandlers() { - var _this63 = this; - - this._handleCarouselTapBound = this._handleCarouselTap.bind(this); - this._handleCarouselDragBound = this._handleCarouselDrag.bind(this); - this._handleCarouselReleaseBound = this._handleCarouselRelease.bind(this); - this._handleCarouselClickBound = this._handleCarouselClick.bind(this); - - if (typeof window.ontouchstart !== 'undefined') { - this.el.addEventListener('touchstart', this._handleCarouselTapBound); - this.el.addEventListener('touchmove', this._handleCarouselDragBound); - this.el.addEventListener('touchend', this._handleCarouselReleaseBound); - } - - this.el.addEventListener('mousedown', this._handleCarouselTapBound); - this.el.addEventListener('mousemove', this._handleCarouselDragBound); - this.el.addEventListener('mouseup', this._handleCarouselReleaseBound); - this.el.addEventListener('mouseleave', this._handleCarouselReleaseBound); - this.el.addEventListener('click', this._handleCarouselClickBound); - - if (this.showIndicators && this.$indicators) { - this._handleIndicatorClickBound = this._handleIndicatorClick.bind(this); - this.$indicators.find('.indicator-item').each(function (el, i) { - el.addEventListener('click', _this63._handleIndicatorClickBound); - }); - } - - // Resize - var throttledResize = M.throttle(this._handleResize, 200); - this._handleThrottledResizeBound = throttledResize.bind(this); - - window.addEventListener('resize', this._handleThrottledResizeBound); - } - - /** - * Remove Event Handlers - */ - - }, { - key: "_removeEventHandlers", - value: function _removeEventHandlers() { - var _this64 = this; - - if (typeof window.ontouchstart !== 'undefined') { - this.el.removeEventListener('touchstart', this._handleCarouselTapBound); - this.el.removeEventListener('touchmove', this._handleCarouselDragBound); - this.el.removeEventListener('touchend', this._handleCarouselReleaseBound); - } - this.el.removeEventListener('mousedown', this._handleCarouselTapBound); - this.el.removeEventListener('mousemove', this._handleCarouselDragBound); - this.el.removeEventListener('mouseup', this._handleCarouselReleaseBound); - this.el.removeEventListener('mouseleave', this._handleCarouselReleaseBound); - this.el.removeEventListener('click', this._handleCarouselClickBound); - - if (this.showIndicators && this.$indicators) { - this.$indicators.find('.indicator-item').each(function (el, i) { - el.removeEventListener('click', _this64._handleIndicatorClickBound); - }); - } - - window.removeEventListener('resize', this._handleThrottledResizeBound); - } - - /** - * Handle Carousel Tap - * @param {Event} e - */ - - }, { - key: "_handleCarouselTap", - value: function _handleCarouselTap(e) { - // Fixes firefox draggable image bug - if (e.type === 'mousedown' && $(e.target).is('img')) { - e.preventDefault(); - } - this.pressed = true; - this.dragged = false; - this.verticalDragged = false; - this.reference = this._xpos(e); - this.referenceY = this._ypos(e); - - this.velocity = this.amplitude = 0; - this.frame = this.offset; - this.timestamp = Date.now(); - clearInterval(this.ticker); - this.ticker = setInterval(this._trackBound, 100); - } - - /** - * Handle Carousel Drag - * @param {Event} e - */ - - }, { - key: "_handleCarouselDrag", - value: function _handleCarouselDrag(e) { - var x = void 0, - y = void 0, - delta = void 0, - deltaY = void 0; - if (this.pressed) { - x = this._xpos(e); - y = this._ypos(e); - delta = this.reference - x; - deltaY = Math.abs(this.referenceY - y); - if (deltaY < 30 && !this.verticalDragged) { - // If vertical scrolling don't allow dragging. - if (delta > 2 || delta < -2) { - this.dragged = true; - this.reference = x; - this._scroll(this.offset + delta); - } - } else if (this.dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - } else { - // Vertical scrolling. - this.verticalDragged = true; - } - } - - if (this.dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - } - } - - /** - * Handle Carousel Release - * @param {Event} e - */ - - }, { - key: "_handleCarouselRelease", - value: function _handleCarouselRelease(e) { - if (this.pressed) { - this.pressed = false; - } else { - return; - } - - clearInterval(this.ticker); - this.target = this.offset; - if (this.velocity > 10 || this.velocity < -10) { - this.amplitude = 0.9 * this.velocity; - this.target = this.offset + this.amplitude; - } - this.target = Math.round(this.target / this.dim) * this.dim; - - // No wrap of items. - if (this.noWrap) { - if (this.target >= this.dim * (this.count - 1)) { - this.target = this.dim * (this.count - 1); - } else if (this.target < 0) { - this.target = 0; - } - } - this.amplitude = this.target - this.offset; - this.timestamp = Date.now(); - requestAnimationFrame(this._autoScrollBound); - - if (this.dragged) { - e.preventDefault(); - e.stopPropagation(); - } - return false; - } - - /** - * Handle Carousel CLick - * @param {Event} e - */ - - }, { - key: "_handleCarouselClick", - value: function _handleCarouselClick(e) { - // Disable clicks if carousel was dragged. - if (this.dragged) { - e.preventDefault(); - e.stopPropagation(); - return false; - } else if (!this.options.fullWidth) { - var clickedIndex = $(e.target).closest('.carousel-item').index(); - var diff = this._wrap(this.center) - clickedIndex; - - // Disable clicks if carousel was shifted by click - if (diff !== 0) { - e.preventDefault(); - e.stopPropagation(); - } - this._cycleTo(clickedIndex); - } - } - - /** - * Handle Indicator CLick - * @param {Event} e - */ - - }, { - key: "_handleIndicatorClick", - value: function _handleIndicatorClick(e) { - e.stopPropagation(); - - var indicator = $(e.target).closest('.indicator-item'); - if (indicator.length) { - this._cycleTo(indicator.index()); - } - } - - /** - * Handle Throttle Resize - * @param {Event} e - */ - - }, { - key: "_handleResize", - value: function _handleResize(e) { - if (this.options.fullWidth) { - this.itemWidth = this.$el.find('.carousel-item').first().innerWidth(); - this.imageHeight = this.$el.find('.carousel-item.active').height(); - this.dim = this.itemWidth * 2 + this.options.padding; - this.offset = this.center * 2 * this.itemWidth; - this.target = this.offset; - this._setCarouselHeight(true); - } else { - this._scroll(); - } - } - - /** - * Set carousel height based on first slide - * @param {Booleam} imageOnly - true for image slides - */ - - }, { - key: "_setCarouselHeight", - value: function _setCarouselHeight(imageOnly) { - var _this65 = this; - - var firstSlide = this.$el.find('.carousel-item.active').length ? this.$el.find('.carousel-item.active').first() : this.$el.find('.carousel-item').first(); - var firstImage = firstSlide.find('img').first(); - if (firstImage.length) { - if (firstImage[0].complete) { - // If image won't trigger the load event - var imageHeight = firstImage.height(); - if (imageHeight > 0) { - this.$el.css('height', imageHeight + 'px'); - } else { - // If image still has no height, use the natural dimensions to calculate - var naturalWidth = firstImage[0].naturalWidth; - var naturalHeight = firstImage[0].naturalHeight; - var adjustedHeight = this.$el.width() / naturalWidth * naturalHeight; - this.$el.css('height', adjustedHeight + 'px'); - } - } else { - // Get height when image is loaded normally - firstImage.one('load', function (el, i) { - _this65.$el.css('height', el.offsetHeight + 'px'); - }); - } - } else if (!imageOnly) { - var slideHeight = firstSlide.height(); - this.$el.css('height', slideHeight + 'px'); - } - } - - /** - * Get x position from event - * @param {Event} e - */ - - }, { - key: "_xpos", - value: function _xpos(e) { - // touch event - if (e.targetTouches && e.targetTouches.length >= 1) { - return e.targetTouches[0].clientX; - } - - // mouse event - return e.clientX; - } - - /** - * Get y position from event - * @param {Event} e - */ - - }, { - key: "_ypos", - value: function _ypos(e) { - // touch event - if (e.targetTouches && e.targetTouches.length >= 1) { - return e.targetTouches[0].clientY; - } - - // mouse event - return e.clientY; - } - - /** - * Wrap index - * @param {Number} x - */ - - }, { - key: "_wrap", - value: function _wrap(x) { - return x >= this.count ? x % this.count : x < 0 ? this._wrap(this.count + x % this.count) : x; - } - - /** - * Tracks scrolling information - */ - - }, { - key: "_track", - value: function _track() { - var now = void 0, - elapsed = void 0, - delta = void 0, - v = void 0; - - now = Date.now(); - elapsed = now - this.timestamp; - this.timestamp = now; - delta = this.offset - this.frame; - this.frame = this.offset; - - v = 1000 * delta / (1 + elapsed); - this.velocity = 0.8 * v + 0.2 * this.velocity; - } - - /** - * Auto scrolls to nearest carousel item. - */ - - }, { - key: "_autoScroll", - value: function _autoScroll() { - var elapsed = void 0, - delta = void 0; - - if (this.amplitude) { - elapsed = Date.now() - this.timestamp; - delta = this.amplitude * Math.exp(-elapsed / this.options.duration); - if (delta > 2 || delta < -2) { - this._scroll(this.target - delta); - requestAnimationFrame(this._autoScrollBound); - } else { - this._scroll(this.target); - } - } - } - - /** - * Scroll to target - * @param {Number} x - */ - - }, { - key: "_scroll", - value: function _scroll(x) { - var _this66 = this; - - // Track scrolling state - if (!this.$el.hasClass('scrolling')) { - this.el.classList.add('scrolling'); - } - if (this.scrollingTimeout != null) { - window.clearTimeout(this.scrollingTimeout); - } - this.scrollingTimeout = window.setTimeout(function () { - _this66.$el.removeClass('scrolling'); - }, this.options.duration); - - // Start actual scroll - var i = void 0, - half = void 0, - delta = void 0, - dir = void 0, - tween = void 0, - el = void 0, - alignment = void 0, - zTranslation = void 0, - tweenedOpacity = void 0, - centerTweenedOpacity = void 0; - var lastCenter = this.center; - var numVisibleOffset = 1 / this.options.numVisible; - - this.offset = typeof x === 'number' ? x : this.offset; - this.center = Math.floor((this.offset + this.dim / 2) / this.dim); - delta = this.offset - this.center * this.dim; - dir = delta < 0 ? 1 : -1; - tween = -dir * delta * 2 / this.dim; - half = this.count >> 1; - - if (this.options.fullWidth) { - alignment = 'translateX(0)'; - centerTweenedOpacity = 1; - } else { - alignment = 'translateX(' + (this.el.clientWidth - this.itemWidth) / 2 + 'px) '; - alignment += 'translateY(' + (this.el.clientHeight - this.itemHeight) / 2 + 'px)'; - centerTweenedOpacity = 1 - numVisibleOffset * tween; - } - - // Set indicator active - if (this.showIndicators) { - var diff = this.center % this.count; - var activeIndicator = this.$indicators.find('.indicator-item.active'); - if (activeIndicator.index() !== diff) { - activeIndicator.removeClass('active'); - this.$indicators.find('.indicator-item').eq(diff)[0].classList.add('active'); - } - } - - // center - // Don't show wrapped items. - if (!this.noWrap || this.center >= 0 && this.center < this.count) { - el = this.images[this._wrap(this.center)]; - - // Add active class to center item. - if (!$(el).hasClass('active')) { - this.$el.find('.carousel-item').removeClass('active'); - el.classList.add('active'); - } - var transformString = alignment + " translateX(" + -delta / 2 + "px) translateX(" + dir * this.options.shift * tween * i + "px) translateZ(" + this.options.dist * tween + "px)"; - this._updateItemStyle(el, centerTweenedOpacity, 0, transformString); - } - - for (i = 1; i <= half; ++i) { - // right side - if (this.options.fullWidth) { - zTranslation = this.options.dist; - tweenedOpacity = i === half && delta < 0 ? 1 - tween : 1; - } else { - zTranslation = this.options.dist * (i * 2 + tween * dir); - tweenedOpacity = 1 - numVisibleOffset * (i * 2 + tween * dir); - } - // Don't show wrapped items. - if (!this.noWrap || this.center + i < this.count) { - el = this.images[this._wrap(this.center + i)]; - var _transformString = alignment + " translateX(" + (this.options.shift + (this.dim * i - delta) / 2) + "px) translateZ(" + zTranslation + "px)"; - this._updateItemStyle(el, tweenedOpacity, -i, _transformString); - } - - // left side - if (this.options.fullWidth) { - zTranslation = this.options.dist; - tweenedOpacity = i === half && delta > 0 ? 1 - tween : 1; - } else { - zTranslation = this.options.dist * (i * 2 - tween * dir); - tweenedOpacity = 1 - numVisibleOffset * (i * 2 - tween * dir); - } - // Don't show wrapped items. - if (!this.noWrap || this.center - i >= 0) { - el = this.images[this._wrap(this.center - i)]; - var _transformString2 = alignment + " translateX(" + (-this.options.shift + (-this.dim * i - delta) / 2) + "px) translateZ(" + zTranslation + "px)"; - this._updateItemStyle(el, tweenedOpacity, -i, _transformString2); - } - } - - // center - // Don't show wrapped items. - if (!this.noWrap || this.center >= 0 && this.center < this.count) { - el = this.images[this._wrap(this.center)]; - var _transformString3 = alignment + " translateX(" + -delta / 2 + "px) translateX(" + dir * this.options.shift * tween + "px) translateZ(" + this.options.dist * tween + "px)"; - this._updateItemStyle(el, centerTweenedOpacity, 0, _transformString3); - } - - // onCycleTo callback - var $currItem = this.$el.find('.carousel-item').eq(this._wrap(this.center)); - if (lastCenter !== this.center && typeof this.options.onCycleTo === 'function') { - this.options.onCycleTo.call(this, $currItem[0], this.dragged); - } - - // One time callback - if (typeof this.oneTimeCallback === 'function') { - this.oneTimeCallback.call(this, $currItem[0], this.dragged); - this.oneTimeCallback = null; - } - } - - /** - * Cycle to target - * @param {Element} el - * @param {Number} opacity - * @param {Number} zIndex - * @param {String} transform - */ - - }, { - key: "_updateItemStyle", - value: function _updateItemStyle(el, opacity, zIndex, transform) { - el.style[this.xform] = transform; - el.style.zIndex = zIndex; - el.style.opacity = opacity; - el.style.visibility = 'visible'; - } - - /** - * Cycle to target - * @param {Number} n - * @param {Function} callback - */ - - }, { - key: "_cycleTo", - value: function _cycleTo(n, callback) { - var diff = this.center % this.count - n; - - // Account for wraparound. - if (!this.noWrap) { - if (diff < 0) { - if (Math.abs(diff + this.count) < Math.abs(diff)) { - diff += this.count; - } - } else if (diff > 0) { - if (Math.abs(diff - this.count) < diff) { - diff -= this.count; - } - } - } - - this.target = this.dim * Math.round(this.offset / this.dim); - // Next - if (diff < 0) { - this.target += this.dim * Math.abs(diff); - - // Prev - } else if (diff > 0) { - this.target -= this.dim * diff; - } - - // Set one time callback - if (typeof callback === 'function') { - this.oneTimeCallback = callback; - } - - // Scroll - if (this.offset !== this.target) { - this.amplitude = this.target - this.offset; - this.timestamp = Date.now(); - requestAnimationFrame(this._autoScrollBound); - } - } - - /** - * Cycle to next item - * @param {Number} [n] - */ - - }, { - key: "next", - value: function next(n) { - if (n === undefined || isNaN(n)) { - n = 1; - } - - var index = this.center + n; - if (index >= this.count || index < 0) { - if (this.noWrap) { - return; - } - - index = this._wrap(index); - } - this._cycleTo(index); - } - - /** - * Cycle to previous item - * @param {Number} [n] - */ - - }, { - key: "prev", - value: function prev(n) { - if (n === undefined || isNaN(n)) { - n = 1; - } - - var index = this.center - n; - if (index >= this.count || index < 0) { - if (this.noWrap) { - return; - } - - index = this._wrap(index); - } - - this._cycleTo(index); - } - - /** - * Cycle to nth item - * @param {Number} [n] - * @param {Function} callback - */ - - }, { - key: "set", - value: function set(n, callback) { - if (n === undefined || isNaN(n)) { - n = 0; - } - - if (n > this.count || n < 0) { - if (this.noWrap) { - return; - } - - n = this._wrap(n); - } - - this._cycleTo(n, callback); - } - }], [{ - key: "init", - value: function init(els, options) { - return _get(Carousel.__proto__ || Object.getPrototypeOf(Carousel), "init", this).call(this, this, els, options); - } - - /** - * Get Instance - */ - - }, { - key: "getInstance", - value: function getInstance(el) { - var domElem = !!el.jquery ? el[0] : el; - return domElem.M_Carousel; - } - }, { - key: "defaults", - get: function () { - return _defaults; - } - }]); - - return Carousel; - }(Component); - - M.Carousel = Carousel; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Carousel, 'carousel', 'M_Carousel'); - } -})(cash); -;(function ($) { - 'use strict'; - - var _defaults = { - onOpen: undefined, - onClose: undefined - }; - - /** - * @class - * - */ - - var TapTarget = function (_Component19) { - _inherits(TapTarget, _Component19); - - /** - * Construct TapTarget instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - function TapTarget(el, options) { - _classCallCheck(this, TapTarget); - - var _this67 = _possibleConstructorReturn(this, (TapTarget.__proto__ || Object.getPrototypeOf(TapTarget)).call(this, TapTarget, el, options)); - - _this67.el.M_TapTarget = _this67; - - /** - * Options for the select - * @member TapTarget#options - * @prop {Function} onOpen - Callback function called when feature discovery is opened - * @prop {Function} onClose - Callback function called when feature discovery is closed - */ - _this67.options = $.extend({}, TapTarget.defaults, options); - - _this67.isOpen = false; - - // setup - _this67.$origin = $('#' + _this67.$el.attr('data-target')); - _this67._setup(); - - _this67._calculatePositioning(); - _this67._setupEventHandlers(); - return _this67; - } - - _createClass(TapTarget, [{ - key: "destroy", - - - /** - * Teardown component - */ - value: function destroy() { - this._removeEventHandlers(); - this.el.TapTarget = undefined; - } - - /** - * Setup Event Handlers - */ - - }, { - key: "_setupEventHandlers", - value: function _setupEventHandlers() { - this._handleDocumentClickBound = this._handleDocumentClick.bind(this); - this._handleTargetClickBound = this._handleTargetClick.bind(this); - this._handleOriginClickBound = this._handleOriginClick.bind(this); - - this.el.addEventListener('click', this._handleTargetClickBound); - this.originEl.addEventListener('click', this._handleOriginClickBound); - - // Resize - var throttledResize = M.throttle(this._handleResize, 200); - this._handleThrottledResizeBound = throttledResize.bind(this); - - window.addEventListener('resize', this._handleThrottledResizeBound); - } - - /** - * Remove Event Handlers - */ - - }, { - key: "_removeEventHandlers", - value: function _removeEventHandlers() { - this.el.removeEventListener('click', this._handleTargetClickBound); - this.originEl.removeEventListener('click', this._handleOriginClickBound); - window.removeEventListener('resize', this._handleThrottledResizeBound); - } - - /** - * Handle Target Click - * @param {Event} e - */ - - }, { - key: "_handleTargetClick", - value: function _handleTargetClick(e) { - this.open(); - } - - /** - * Handle Origin Click - * @param {Event} e - */ - - }, { - key: "_handleOriginClick", - value: function _handleOriginClick(e) { - this.close(); - } - - /** - * Handle Resize - * @param {Event} e - */ - - }, { - key: "_handleResize", - value: function _handleResize(e) { - this._calculatePositioning(); - } - - /** - * Handle Resize - * @param {Event} e - */ - - }, { - key: "_handleDocumentClick", - value: function _handleDocumentClick(e) { - if (!$(e.target).closest('.tap-target-wrapper').length) { - this.close(); - e.preventDefault(); - e.stopPropagation(); - } - } - - /** - * Setup Tap Target - */ - - }, { - key: "_setup", - value: function _setup() { - // Creating tap target - this.wrapper = this.$el.parent()[0]; - this.waveEl = $(this.wrapper).find('.tap-target-wave')[0]; - this.originEl = $(this.wrapper).find('.tap-target-origin')[0]; - this.contentEl = this.$el.find('.tap-target-content')[0]; - - // Creating wrapper - if (!$(this.wrapper).hasClass('.tap-target-wrapper')) { - this.wrapper = document.createElement('div'); - this.wrapper.classList.add('tap-target-wrapper'); - this.$el.before($(this.wrapper)); - this.wrapper.append(this.el); - } - - // Creating content - if (!this.contentEl) { - this.contentEl = document.createElement('div'); - this.contentEl.classList.add('tap-target-content'); - this.$el.append(this.contentEl); - } - - // Creating foreground wave - if (!this.waveEl) { - this.waveEl = document.createElement('div'); - this.waveEl.classList.add('tap-target-wave'); - - // Creating origin - if (!this.originEl) { - this.originEl = this.$origin.clone(true, true); - this.originEl.addClass('tap-target-origin'); - this.originEl.removeAttr('id'); - this.originEl.removeAttr('style'); - this.originEl = this.originEl[0]; - this.waveEl.append(this.originEl); - } - - this.wrapper.append(this.waveEl); - } - } - - /** - * Calculate positioning - */ - - }, { - key: "_calculatePositioning", - value: function _calculatePositioning() { - // Element or parent is fixed position? - var isFixed = this.$origin.css('position') === 'fixed'; - if (!isFixed) { - var parents = this.$origin.parents(); - for (var i = 0; i < parents.length; i++) { - isFixed = $(parents[i]).css('position') == 'fixed'; - if (isFixed) { - break; - } - } - } - - // Calculating origin - var originWidth = this.$origin.outerWidth(); - var originHeight = this.$origin.outerHeight(); - var originTop = isFixed ? this.$origin.offset().top - M.getDocumentScrollTop() : this.$origin.offset().top; - var originLeft = isFixed ? this.$origin.offset().left - M.getDocumentScrollLeft() : this.$origin.offset().left; - - // Calculating screen - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var centerX = windowWidth / 2; - var centerY = windowHeight / 2; - var isLeft = originLeft <= centerX; - var isRight = originLeft > centerX; - var isTop = originTop <= centerY; - var isBottom = originTop > centerY; - var isCenterX = originLeft >= windowWidth * 0.25 && originLeft <= windowWidth * 0.75; - - // Calculating tap target - var tapTargetWidth = this.$el.outerWidth(); - var tapTargetHeight = this.$el.outerHeight(); - var tapTargetTop = originTop + originHeight / 2 - tapTargetHeight / 2; - var tapTargetLeft = originLeft + originWidth / 2 - tapTargetWidth / 2; - var tapTargetPosition = isFixed ? 'fixed' : 'absolute'; - - // Calculating content - var tapTargetTextWidth = isCenterX ? tapTargetWidth : tapTargetWidth / 2 + originWidth; - var tapTargetTextHeight = tapTargetHeight / 2; - var tapTargetTextTop = isTop ? tapTargetHeight / 2 : 0; - var tapTargetTextBottom = 0; - var tapTargetTextLeft = isLeft && !isCenterX ? tapTargetWidth / 2 - originWidth : 0; - var tapTargetTextRight = 0; - var tapTargetTextPadding = originWidth; - var tapTargetTextAlign = isBottom ? 'bottom' : 'top'; - - // Calculating wave - var tapTargetWaveWidth = originWidth > originHeight ? originWidth * 2 : originWidth * 2; - var tapTargetWaveHeight = tapTargetWaveWidth; - var tapTargetWaveTop = tapTargetHeight / 2 - tapTargetWaveHeight / 2; - var tapTargetWaveLeft = tapTargetWidth / 2 - tapTargetWaveWidth / 2; - - // Setting tap target - var tapTargetWrapperCssObj = {}; - tapTargetWrapperCssObj.top = isTop ? tapTargetTop + 'px' : ''; - tapTargetWrapperCssObj.right = isRight ? windowWidth - tapTargetLeft - tapTargetWidth + 'px' : ''; - tapTargetWrapperCssObj.bottom = isBottom ? windowHeight - tapTargetTop - tapTargetHeight + 'px' : ''; - tapTargetWrapperCssObj.left = isLeft ? tapTargetLeft + 'px' : ''; - tapTargetWrapperCssObj.position = tapTargetPosition; - $(this.wrapper).css(tapTargetWrapperCssObj); - - // Setting content - $(this.contentEl).css({ - width: tapTargetTextWidth + 'px', - height: tapTargetTextHeight + 'px', - top: tapTargetTextTop + 'px', - right: tapTargetTextRight + 'px', - bottom: tapTargetTextBottom + 'px', - left: tapTargetTextLeft + 'px', - padding: tapTargetTextPadding + 'px', - verticalAlign: tapTargetTextAlign - }); - - // Setting wave - $(this.waveEl).css({ - top: tapTargetWaveTop + 'px', - left: tapTargetWaveLeft + 'px', - width: tapTargetWaveWidth + 'px', - height: tapTargetWaveHeight + 'px' - }); - } - - /** - * Open TapTarget - */ - - }, { - key: "open", - value: function open() { - if (this.isOpen) { - return; - } - - // onOpen callback - if (typeof this.options.onOpen === 'function') { - this.options.onOpen.call(this, this.$origin[0]); - } - - this.isOpen = true; - this.wrapper.classList.add('open'); - - document.body.addEventListener('click', this._handleDocumentClickBound, true); - document.body.addEventListener('touchend', this._handleDocumentClickBound); - } - - /** - * Close Tap Target - */ - - }, { - key: "close", - value: function close() { - if (!this.isOpen) { - return; - } - - // onClose callback - if (typeof this.options.onClose === 'function') { - this.options.onClose.call(this, this.$origin[0]); - } - - this.isOpen = false; - this.wrapper.classList.remove('open'); - - document.body.removeEventListener('click', this._handleDocumentClickBound, true); - document.body.removeEventListener('touchend', this._handleDocumentClickBound); - } - }], [{ - key: "init", - value: function init(els, options) { - return _get(TapTarget.__proto__ || Object.getPrototypeOf(TapTarget), "init", this).call(this, this, els, options); - } - - /** - * Get Instance - */ - - }, { - key: "getInstance", - value: function getInstance(el) { - var domElem = !!el.jquery ? el[0] : el; - return domElem.M_TapTarget; - } - }, { - key: "defaults", - get: function () { - return _defaults; - } - }]); - - return TapTarget; - }(Component); - - M.TapTarget = TapTarget; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(TapTarget, 'tapTarget', 'M_TapTarget'); - } -})(cash); -;(function ($) { - 'use strict'; - - var _defaults = { - classes: '', - dropdownOptions: {} - }; - - /** - * @class - * - */ - - var FormSelect = function (_Component20) { - _inherits(FormSelect, _Component20); - - /** - * Construct FormSelect instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - function FormSelect(el, options) { - _classCallCheck(this, FormSelect); - - // Don't init if browser default version - var _this68 = _possibleConstructorReturn(this, (FormSelect.__proto__ || Object.getPrototypeOf(FormSelect)).call(this, FormSelect, el, options)); - - if (_this68.$el.hasClass('browser-default')) { - return _possibleConstructorReturn(_this68); - } - - _this68.el.M_FormSelect = _this68; - - /** - * Options for the select - * @member FormSelect#options - */ - _this68.options = $.extend({}, FormSelect.defaults, options); - - _this68.isMultiple = _this68.$el.prop('multiple'); - - // Setup - _this68.el.tabIndex = -1; - _this68._keysSelected = {}; - _this68._valueDict = {}; // Maps key to original and generated option element. - _this68._setupDropdown(); - - _this68._setupEventHandlers(); - return _this68; - } - - _createClass(FormSelect, [{ - key: "destroy", - - - /** - * Teardown component - */ - value: function destroy() { - this._removeEventHandlers(); - this._removeDropdown(); - this.el.M_FormSelect = undefined; - } - - /** - * Setup Event Handlers - */ - - }, { - key: "_setupEventHandlers", - value: function _setupEventHandlers() { - var _this69 = this; - - this._handleSelectChangeBound = this._handleSelectChange.bind(this); - this._handleOptionClickBound = this._handleOptionClick.bind(this); - this._handleInputClickBound = this._handleInputClick.bind(this); - - $(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) { - el.addEventListener('click', _this69._handleOptionClickBound); - }); - this.el.addEventListener('change', this._handleSelectChangeBound); - this.input.addEventListener('click', this._handleInputClickBound); - } - - /** - * Remove Event Handlers - */ - - }, { - key: "_removeEventHandlers", - value: function _removeEventHandlers() { - var _this70 = this; - - $(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) { - el.removeEventListener('click', _this70._handleOptionClickBound); - }); - this.el.removeEventListener('change', this._handleSelectChangeBound); - this.input.removeEventListener('click', this._handleInputClickBound); - } - - /** - * Handle Select Change - * @param {Event} e - */ - - }, { - key: "_handleSelectChange", - value: function _handleSelectChange(e) { - this._setValueToInput(); - } - - /** - * Handle Option Click - * @param {Event} e - */ - - }, { - key: "_handleOptionClick", - value: function _handleOptionClick(e) { - e.preventDefault(); - var option = $(e.target).closest('li')[0]; - var key = option.id; - if (!$(option).hasClass('disabled') && !$(option).hasClass('optgroup') && key.length) { - var selected = true; - - if (this.isMultiple) { - // Deselect placeholder option if still selected. - var placeholderOption = $(this.dropdownOptions).find('li.disabled.selected'); - if (placeholderOption.length) { - placeholderOption.removeClass('selected'); - placeholderOption.find('input[type="checkbox"]').prop('checked', false); - this._toggleEntryFromArray(placeholderOption[0].id); - } - selected = this._toggleEntryFromArray(key); - } else { - $(this.dropdownOptions).find('li').removeClass('selected'); - $(option).toggleClass('selected', selected); - } - - // Set selected on original select option - // Only trigger if selected state changed - var prevSelected = $(this._valueDict[key].el).prop('selected'); - if (prevSelected !== selected) { - $(this._valueDict[key].el).prop('selected', selected); - this.$el.trigger('change'); - } - } - - e.stopPropagation(); - } - - /** - * Handle Input Click - */ - - }, { - key: "_handleInputClick", - value: function _handleInputClick() { - if (this.dropdown && this.dropdown.isOpen) { - this._setValueToInput(); - this._setSelectedStates(); - } - } - - /** - * Setup dropdown - */ - - }, { - key: "_setupDropdown", - value: function _setupDropdown() { - var _this71 = this; - - this.wrapper = document.createElement('div'); - $(this.wrapper).addClass('select-wrapper ' + this.options.classes); - this.$el.before($(this.wrapper)); - this.wrapper.appendChild(this.el); - - if (this.el.disabled) { - this.wrapper.classList.add('disabled'); - } - - // Create dropdown - this.$selectOptions = this.$el.children('option, optgroup'); - this.dropdownOptions = document.createElement('ul'); - this.dropdownOptions.id = "select-options-" + M.guid(); - $(this.dropdownOptions).addClass('dropdown-content select-dropdown ' + (this.isMultiple ? 'multiple-select-dropdown' : '')); - - // Create dropdown structure. - if (this.$selectOptions.length) { - this.$selectOptions.each(function (el) { - if ($(el).is('option')) { - // Direct descendant option. - var optionEl = void 0; - if (_this71.isMultiple) { - optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'multiple'); - } else { - optionEl = _this71._appendOptionWithIcon(_this71.$el, el); - } - - _this71._addOptionToValueDict(el, optionEl); - } else if ($(el).is('optgroup')) { - // Optgroup. - var selectOptions = $(el).children('option'); - $(_this71.dropdownOptions).append($('
    • ' + el.getAttribute('label') + '
    • ')[0]); - - selectOptions.each(function (el) { - var optionEl = _this71._appendOptionWithIcon(_this71.$el, el, 'optgroup-option'); - _this71._addOptionToValueDict(el, optionEl); - }); - } - }); - } - - this.$el.after(this.dropdownOptions); - - // Add input dropdown - this.input = document.createElement('input'); - $(this.input).addClass('select-dropdown dropdown-trigger'); - this.input.setAttribute('type', 'text'); - this.input.setAttribute('readonly', 'true'); - this.input.setAttribute('data-target', this.dropdownOptions.id); - if (this.el.disabled) { - $(this.input).prop('disabled', 'true'); - } - - this.$el.before(this.input); - this._setValueToInput(); - - // Add caret - var dropdownIcon = $(''); - this.$el.before(dropdownIcon[0]); - - // Initialize dropdown - if (!this.el.disabled) { - var dropdownOptions = $.extend({}, this.options.dropdownOptions); - - // Add callback for centering selected option when dropdown content is scrollable - dropdownOptions.onOpenEnd = function (el) { - var selectedOption = $(_this71.dropdownOptions).find('.selected').first(); - - if (selectedOption.length) { - // Focus selected option in dropdown - M.keyDown = true; - _this71.dropdown.focusedIndex = selectedOption.index(); - _this71.dropdown._focusFocusedItem(); - M.keyDown = false; - - // Handle scrolling to selected option - if (_this71.dropdown.isScrollable) { - var scrollOffset = selectedOption[0].getBoundingClientRect().top - _this71.dropdownOptions.getBoundingClientRect().top; // scroll to selected option - scrollOffset -= _this71.dropdownOptions.clientHeight / 2; // center in dropdown - _this71.dropdownOptions.scrollTop = scrollOffset; - } - } - }; - - if (this.isMultiple) { - dropdownOptions.closeOnClick = false; - } - this.dropdown = M.Dropdown.init(this.input, dropdownOptions); - } - - // Add initial selections - this._setSelectedStates(); - } - - /** - * Add option to value dict - * @param {Element} el original option element - * @param {Element} optionEl generated option element - */ - - }, { - key: "_addOptionToValueDict", - value: function _addOptionToValueDict(el, optionEl) { - var index = Object.keys(this._valueDict).length; - var key = this.dropdownOptions.id + index; - var obj = {}; - optionEl.id = key; - - obj.el = el; - obj.optionEl = optionEl; - this._valueDict[key] = obj; - } - - /** - * Remove dropdown - */ - - }, { - key: "_removeDropdown", - value: function _removeDropdown() { - $(this.wrapper).find('.caret').remove(); - $(this.input).remove(); - $(this.dropdownOptions).remove(); - $(this.wrapper).before(this.$el); - $(this.wrapper).remove(); - } - - /** - * Setup dropdown - * @param {Element} select select element - * @param {Element} option option element from select - * @param {String} type - * @return {Element} option element added - */ - - }, { - key: "_appendOptionWithIcon", - value: function _appendOptionWithIcon(select, option, type) { - // Add disabled attr if disabled - var disabledClass = option.disabled ? 'disabled ' : ''; - var optgroupClass = type === 'optgroup-option' ? 'optgroup-option ' : ''; - var multipleCheckbox = this.isMultiple ? "" : option.innerHTML; - var liEl = $('
    • '); - var spanEl = $(''); - spanEl.html(multipleCheckbox); - liEl.addClass(disabledClass + " " + optgroupClass); - liEl.append(spanEl); - - // add icons - var iconUrl = option.getAttribute('data-icon'); - if (!!iconUrl) { - var imgEl = $("\"\""); - liEl.prepend(imgEl); - } - - // Check for multiple type. - $(this.dropdownOptions).append(liEl[0]); - return liEl[0]; - } - - /** - * Toggle entry from option - * @param {String} key Option key - * @return {Boolean} if entry was added or removed - */ - - }, { - key: "_toggleEntryFromArray", - value: function _toggleEntryFromArray(key) { - var notAdded = !this._keysSelected.hasOwnProperty(key); - var $optionLi = $(this._valueDict[key].optionEl); - - if (notAdded) { - this._keysSelected[key] = true; - } else { - delete this._keysSelected[key]; - } - - $optionLi.toggleClass('selected', notAdded); - - // Set checkbox checked value - $optionLi.find('input[type="checkbox"]').prop('checked', notAdded); - - // use notAdded instead of true (to detect if the option is selected or not) - $optionLi.prop('selected', notAdded); - - return notAdded; - } - - /** - * Set text value to input - */ - - }, { - key: "_setValueToInput", - value: function _setValueToInput() { - var values = []; - var options = this.$el.find('option'); - - options.each(function (el) { - if ($(el).prop('selected')) { - var text = $(el).text(); - values.push(text); - } - }); - - if (!values.length) { - var firstDisabled = this.$el.find('option:disabled').eq(0); - if (firstDisabled.length && firstDisabled[0].value === '') { - values.push(firstDisabled.text()); - } - } - - this.input.value = values.join(', '); - } - - /** - * Set selected state of dropdown to match actual select element - */ - - }, { - key: "_setSelectedStates", - value: function _setSelectedStates() { - this._keysSelected = {}; - - for (var key in this._valueDict) { - var option = this._valueDict[key]; - var optionIsSelected = $(option.el).prop('selected'); - $(option.optionEl).find('input[type="checkbox"]').prop('checked', optionIsSelected); - if (optionIsSelected) { - this._activateOption($(this.dropdownOptions), $(option.optionEl)); - this._keysSelected[key] = true; - } else { - $(option.optionEl).removeClass('selected'); - } - } - } - - /** - * Make option as selected and scroll to selected position - * @param {jQuery} collection Select options jQuery element - * @param {Element} newOption element of the new option - */ - - }, { - key: "_activateOption", - value: function _activateOption(collection, newOption) { - if (newOption) { - if (!this.isMultiple) { - collection.find('li.selected').removeClass('selected'); - } - var option = $(newOption); - option.addClass('selected'); - } - } - - /** - * Get Selected Values - * @return {Array} Array of selected values - */ - - }, { - key: "getSelectedValues", - value: function getSelectedValues() { - var selectedValues = []; - for (var key in this._keysSelected) { - selectedValues.push(this._valueDict[key].el.value); - } - return selectedValues; - } - }], [{ - key: "init", - value: function init(els, options) { - return _get(FormSelect.__proto__ || Object.getPrototypeOf(FormSelect), "init", this).call(this, this, els, options); - } - - /** - * Get Instance - */ - - }, { - key: "getInstance", - value: function getInstance(el) { - var domElem = !!el.jquery ? el[0] : el; - return domElem.M_FormSelect; - } - }, { - key: "defaults", - get: function () { - return _defaults; - } - }]); - - return FormSelect; - }(Component); - - M.FormSelect = FormSelect; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(FormSelect, 'formSelect', 'M_FormSelect'); - } -})(cash); -;(function ($, anim) { - 'use strict'; - - var _defaults = {}; - - /** - * @class - * - */ - - var Range = function (_Component21) { - _inherits(Range, _Component21); - - /** - * Construct Range instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - function Range(el, options) { - _classCallCheck(this, Range); - - var _this72 = _possibleConstructorReturn(this, (Range.__proto__ || Object.getPrototypeOf(Range)).call(this, Range, el, options)); - - _this72.el.M_Range = _this72; - - /** - * Options for the range - * @member Range#options - */ - _this72.options = $.extend({}, Range.defaults, options); - - _this72._mousedown = false; - - // Setup - _this72._setupThumb(); - - _this72._setupEventHandlers(); - return _this72; - } - - _createClass(Range, [{ - key: "destroy", - - - /** - * Teardown component - */ - value: function destroy() { - this._removeEventHandlers(); - this._removeThumb(); - this.el.M_Range = undefined; - } - - /** - * Setup Event Handlers - */ - - }, { - key: "_setupEventHandlers", - value: function _setupEventHandlers() { - this._handleRangeChangeBound = this._handleRangeChange.bind(this); - this._handleRangeMousedownTouchstartBound = this._handleRangeMousedownTouchstart.bind(this); - this._handleRangeInputMousemoveTouchmoveBound = this._handleRangeInputMousemoveTouchmove.bind(this); - this._handleRangeMouseupTouchendBound = this._handleRangeMouseupTouchend.bind(this); - this._handleRangeBlurMouseoutTouchleaveBound = this._handleRangeBlurMouseoutTouchleave.bind(this); - - this.el.addEventListener('change', this._handleRangeChangeBound); - - this.el.addEventListener('mousedown', this._handleRangeMousedownTouchstartBound); - this.el.addEventListener('touchstart', this._handleRangeMousedownTouchstartBound); - - this.el.addEventListener('input', this._handleRangeInputMousemoveTouchmoveBound); - this.el.addEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound); - this.el.addEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound); - - this.el.addEventListener('mouseup', this._handleRangeMouseupTouchendBound); - this.el.addEventListener('touchend', this._handleRangeMouseupTouchendBound); - - this.el.addEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound); - this.el.addEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound); - this.el.addEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound); - } - - /** - * Remove Event Handlers - */ - - }, { - key: "_removeEventHandlers", - value: function _removeEventHandlers() { - this.el.removeEventListener('change', this._handleRangeChangeBound); - - this.el.removeEventListener('mousedown', this._handleRangeMousedownTouchstartBound); - this.el.removeEventListener('touchstart', this._handleRangeMousedownTouchstartBound); - - this.el.removeEventListener('input', this._handleRangeInputMousemoveTouchmoveBound); - this.el.removeEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound); - this.el.removeEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound); - - this.el.removeEventListener('mouseup', this._handleRangeMouseupTouchendBound); - this.el.removeEventListener('touchend', this._handleRangeMouseupTouchendBound); - - this.el.removeEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound); - this.el.removeEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound); - this.el.removeEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound); - } - - /** - * Handle Range Change - * @param {Event} e - */ - - }, { - key: "_handleRangeChange", - value: function _handleRangeChange() { - $(this.value).html(this.$el.val()); - - if (!$(this.thumb).hasClass('active')) { - this._showRangeBubble(); - } - - var offsetLeft = this._calcRangeOffset(); - $(this.thumb).addClass('active').css('left', offsetLeft + 'px'); - } - - /** - * Handle Range Mousedown and Touchstart - * @param {Event} e - */ - - }, { - key: "_handleRangeMousedownTouchstart", - value: function _handleRangeMousedownTouchstart(e) { - // Set indicator value - $(this.value).html(this.$el.val()); - - this._mousedown = true; - this.$el.addClass('active'); - - if (!$(this.thumb).hasClass('active')) { - this._showRangeBubble(); - } - - if (e.type !== 'input') { - var offsetLeft = this._calcRangeOffset(); - $(this.thumb).addClass('active').css('left', offsetLeft + 'px'); - } - } - - /** - * Handle Range Input, Mousemove and Touchmove - */ - - }, { - key: "_handleRangeInputMousemoveTouchmove", - value: function _handleRangeInputMousemoveTouchmove() { - if (this._mousedown) { - if (!$(this.thumb).hasClass('active')) { - this._showRangeBubble(); - } - - var offsetLeft = this._calcRangeOffset(); - $(this.thumb).addClass('active').css('left', offsetLeft + 'px'); - $(this.value).html(this.$el.val()); - } - } - - /** - * Handle Range Mouseup and Touchend - */ - - }, { - key: "_handleRangeMouseupTouchend", - value: function _handleRangeMouseupTouchend() { - this._mousedown = false; - this.$el.removeClass('active'); - } - - /** - * Handle Range Blur, Mouseout and Touchleave - */ - - }, { - key: "_handleRangeBlurMouseoutTouchleave", - value: function _handleRangeBlurMouseoutTouchleave() { - if (!this._mousedown) { - var paddingLeft = parseInt(this.$el.css('padding-left')); - var marginLeft = 7 + paddingLeft + 'px'; - - if ($(this.thumb).hasClass('active')) { - anim.remove(this.thumb); - anim({ - targets: this.thumb, - height: 0, - width: 0, - top: 10, - easing: 'easeOutQuad', - marginLeft: marginLeft, - duration: 100 - }); - } - $(this.thumb).removeClass('active'); - } - } - - /** - * Setup dropdown - */ - - }, { - key: "_setupThumb", - value: function _setupThumb() { - this.thumb = document.createElement('span'); - this.value = document.createElement('span'); - $(this.thumb).addClass('thumb'); - $(this.value).addClass('value'); - $(this.thumb).append(this.value); - this.$el.after(this.thumb); - } - - /** - * Remove dropdown - */ - - }, { - key: "_removeThumb", - value: function _removeThumb() { - $(this.thumb).remove(); - } - - /** - * morph thumb into bubble - */ - - }, { - key: "_showRangeBubble", - value: function _showRangeBubble() { - var paddingLeft = parseInt($(this.thumb).parent().css('padding-left')); - var marginLeft = -7 + paddingLeft + 'px'; // TODO: fix magic number? - anim.remove(this.thumb); - anim({ - targets: this.thumb, - height: 30, - width: 30, - top: -30, - marginLeft: marginLeft, - duration: 300, - easing: 'easeOutQuint' - }); - } - - /** - * Calculate the offset of the thumb - * @return {Number} offset in pixels - */ - - }, { - key: "_calcRangeOffset", - value: function _calcRangeOffset() { - var width = this.$el.width() - 15; - var max = parseFloat(this.$el.attr('max')) || 100; // Range default max - var min = parseFloat(this.$el.attr('min')) || 0; // Range default min - var percent = (parseFloat(this.$el.val()) - min) / (max - min); - return percent * width; - } - }], [{ - key: "init", - value: function init(els, options) { - return _get(Range.__proto__ || Object.getPrototypeOf(Range), "init", this).call(this, this, els, options); - } - - /** - * Get Instance - */ - - }, { - key: "getInstance", - value: function getInstance(el) { - var domElem = !!el.jquery ? el[0] : el; - return domElem.M_Range; - } - }, { - key: "defaults", - get: function () { - return _defaults; - } - }]); - - return Range; - }(Component); - - M.Range = Range; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Range, 'range', 'M_Range'); - } - - Range.init($('input[type=range]')); -})(cash, M.anime); diff --git a/css/materialize-src/js/bin/materialize.min.js b/css/materialize-src/js/bin/materialize.min.js deleted file mode 100644 index 7d80c93..0000000 --- a/css/materialize-src/js/bin/materialize.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Materialize v1.0.0 (http://materializecss.com) - * Copyright 2014-2017 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -var _get=function t(e,i,n){null===e&&(e=Function.prototype);var s=Object.getOwnPropertyDescriptor(e,i);if(void 0===s){var o=Object.getPrototypeOf(e);return null===o?void 0:t(o,i,n)}if("value"in s)return s.value;var a=s.get;return void 0!==a?a.call(n):void 0},_createClass=function(){function n(t,e){for(var i=0;i/,p=/^\w+$/;function v(t,e){e=e||o;var i=u.test(t)?e.getElementsByClassName(t.slice(1)):p.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t);return i}function f(t){if(!i){var e=(i=o.implementation.createHTMLDocument(null)).createElement("base");e.href=o.location.href,i.head.appendChild(e)}return i.body.innerHTML=t,i.body.childNodes}function m(t){"loading"!==o.readyState?t():o.addEventListener("DOMContentLoaded",t)}function g(t,e){if(!t)return this;if(t.cash&&t!==a)return t;var i,n=t,s=0;if(d(t))n=l.test(t)?o.getElementById(t.slice(1)):c.test(t)?f(t):v(t,e);else if(h(t))return m(t),this;if(!n)return this;if(n.nodeType||n===a)this[0]=n,this.length=1;else for(i=this.length=n.length;ss.right-i||l+e.width>window.innerWidth-i)&&(n.right=!0),(ho-i||h+e.height>window.innerHeight-i)&&(n.bottom=!0),n},M.checkPossibleAlignments=function(t,e,i,n){var s={top:!0,right:!0,bottom:!0,left:!0,spaceOnTop:null,spaceOnRight:null,spaceOnBottom:null,spaceOnLeft:null},o="visible"===getComputedStyle(e).overflow,a=e.getBoundingClientRect(),r=Math.min(a.height,window.innerHeight),l=Math.min(a.width,window.innerWidth),h=t.getBoundingClientRect(),d=e.scrollLeft,u=e.scrollTop,c=i.left-d,p=i.top-u,v=i.top+h.height-u;return s.spaceOnRight=o?window.innerWidth-(h.left+i.width):l-(c+i.width),s.spaceOnRight<0&&(s.left=!1),s.spaceOnLeft=o?h.right-i.width:c-i.width+h.width,s.spaceOnLeft<0&&(s.right=!1),s.spaceOnBottom=o?window.innerHeight-(h.top+i.height+n):r-(p+i.height+n),s.spaceOnBottom<0&&(s.top=!1),s.spaceOnTop=o?h.bottom-(i.height+n):v-(i.height-n),s.spaceOnTop<0&&(s.bottom=!1),s},M.getOverflowParent=function(t){return null==t?null:t===document.body||"visible"!==getComputedStyle(t).overflow?t:M.getOverflowParent(t.parentElement)},M.getIdFromTrigger=function(t){var e=t.getAttribute("data-target");return e||(e=(e=t.getAttribute("href"))?e.slice(1):""),e},M.getDocumentScrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},M.getDocumentScrollLeft=function(){return window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0};var getTime=Date.now||function(){return(new Date).getTime()};M.throttle=function(i,n,s){var o=void 0,a=void 0,r=void 0,l=null,h=0;s||(s={});var d=function(){h=!1===s.leading?0:getTime(),l=null,r=i.apply(o,a),o=a=null};return function(){var t=getTime();h||!1!==s.leading||(h=t);var e=n-(t-h);return o=this,a=arguments,e<=0?(clearTimeout(l),l=null,h=t,r=i.apply(o,a),o=a=null):l||!1===s.trailing||(l=setTimeout(d,e)),r}};var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(t,e,i){if(i.get||i.set)throw new TypeError("ES3 does not support getters and setters.");t!=Array.prototype&&t!=Object.prototype&&(t[e]=i.value)},$jscomp.getGlobal=function(t){return"undefined"!=typeof window&&window===t?t:"undefined"!=typeof global&&null!=global?global:t},$jscomp.global=$jscomp.getGlobal(this),$jscomp.SYMBOL_PREFIX="jscomp_symbol_",$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){},$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)},$jscomp.symbolCounter_=0,$jscomp.Symbol=function(t){return $jscomp.SYMBOL_PREFIX+(t||"")+$jscomp.symbolCounter_++},$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var t=$jscomp.global.Symbol.iterator;t||(t=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator")),"function"!=typeof Array.prototype[t]&&$jscomp.defineProperty(Array.prototype,t,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}}),$jscomp.initSymbolIterator=function(){}},$jscomp.arrayIterator=function(t){var e=0;return $jscomp.iteratorPrototype(function(){return e=k.currentTime)for(var h=0;ht&&(s.duration=e.duration),s.children.push(e)}),s.seek(0),s.reset(),s.autoplay&&s.restart(),s},s},O.random=function(t,e){return Math.floor(Math.random()*(e-t+1))+t},O}(),function(r,l){"use strict";var e={accordion:!0,onOpenStart:void 0,onOpenEnd:void 0,onCloseStart:void 0,onCloseEnd:void 0,inDuration:300,outDuration:300},t=function(t){function s(t,e){_classCallCheck(this,s);var i=_possibleConstructorReturn(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,s,t,e));(i.el.M_Collapsible=i).options=r.extend({},s.defaults,e),i.$headers=i.$el.children("li").children(".collapsible-header"),i.$headers.attr("tabindex",0),i._setupEventHandlers();var n=i.$el.children("li.active").children(".collapsible-body");return i.options.accordion?n.first().css("display","block"):n.css("display","block"),i}return _inherits(s,Component),_createClass(s,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_Collapsible=void 0}},{key:"_setupEventHandlers",value:function(){var e=this;this._handleCollapsibleClickBound=this._handleCollapsibleClick.bind(this),this._handleCollapsibleKeydownBound=this._handleCollapsibleKeydown.bind(this),this.el.addEventListener("click",this._handleCollapsibleClickBound),this.$headers.each(function(t){t.addEventListener("keydown",e._handleCollapsibleKeydownBound)})}},{key:"_removeEventHandlers",value:function(){var e=this;this.el.removeEventListener("click",this._handleCollapsibleClickBound),this.$headers.each(function(t){t.removeEventListener("keydown",e._handleCollapsibleKeydownBound)})}},{key:"_handleCollapsibleClick",value:function(t){var e=r(t.target).closest(".collapsible-header");if(t.target&&e.length){var i=e.closest(".collapsible");if(i[0]===this.el){var n=e.closest("li"),s=i.children("li"),o=n[0].classList.contains("active"),a=s.index(n);o?this.close(a):this.open(a)}}}},{key:"_handleCollapsibleKeydown",value:function(t){13===t.keyCode&&this._handleCollapsibleClickBound(t)}},{key:"_animateIn",value:function(t){var e=this,i=this.$el.children("li").eq(t);if(i.length){var n=i.children(".collapsible-body");l.remove(n[0]),n.css({display:"block",overflow:"hidden",height:0,paddingTop:"",paddingBottom:""});var s=n.css("padding-top"),o=n.css("padding-bottom"),a=n[0].scrollHeight;n.css({paddingTop:0,paddingBottom:0}),l({targets:n[0],height:a,paddingTop:s,paddingBottom:o,duration:this.options.inDuration,easing:"easeInOutCubic",complete:function(t){n.css({overflow:"",paddingTop:"",paddingBottom:"",height:""}),"function"==typeof e.options.onOpenEnd&&e.options.onOpenEnd.call(e,i[0])}})}}},{key:"_animateOut",value:function(t){var e=this,i=this.$el.children("li").eq(t);if(i.length){var n=i.children(".collapsible-body");l.remove(n[0]),n.css("overflow","hidden"),l({targets:n[0],height:0,paddingTop:0,paddingBottom:0,duration:this.options.outDuration,easing:"easeInOutCubic",complete:function(){n.css({height:"",overflow:"",padding:"",display:""}),"function"==typeof e.options.onCloseEnd&&e.options.onCloseEnd.call(e,i[0])}})}}},{key:"open",value:function(t){var i=this,e=this.$el.children("li").eq(t);if(e.length&&!e[0].classList.contains("active")){if("function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,e[0]),this.options.accordion){var n=this.$el.children("li");this.$el.children("li.active").each(function(t){var e=n.index(r(t));i.close(e)})}e[0].classList.add("active"),this._animateIn(t)}}},{key:"close",value:function(t){var e=this.$el.children("li").eq(t);e.length&&e[0].classList.contains("active")&&("function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,e[0]),e[0].classList.remove("active"),this._animateOut(t))}}],[{key:"init",value:function(t,e){return _get(s.__proto__||Object.getPrototypeOf(s),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Collapsible}},{key:"defaults",get:function(){return e}}]),s}();M.Collapsible=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"collapsible","M_Collapsible")}(cash,M.anime),function(h,i){"use strict";var e={alignment:"left",autoFocus:!0,constrainWidth:!0,container:null,coverTrigger:!0,closeOnClick:!0,hover:!1,inDuration:150,outDuration:250,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,onItemClick:null},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return i.el.M_Dropdown=i,n._dropdowns.push(i),i.id=M.getIdFromTrigger(t),i.dropdownEl=document.getElementById(i.id),i.$dropdownEl=h(i.dropdownEl),i.options=h.extend({},n.defaults,e),i.isOpen=!1,i.isScrollable=!1,i.isTouchMoving=!1,i.focusedIndex=-1,i.filterQuery=[],i.options.container?h(i.options.container).append(i.dropdownEl):i.$el.after(i.dropdownEl),i._makeDropdownFocusable(),i._resetFilterQueryBound=i._resetFilterQuery.bind(i),i._handleDocumentClickBound=i._handleDocumentClick.bind(i),i._handleDocumentTouchmoveBound=i._handleDocumentTouchmove.bind(i),i._handleDropdownClickBound=i._handleDropdownClick.bind(i),i._handleDropdownKeydownBound=i._handleDropdownKeydown.bind(i),i._handleTriggerKeydownBound=i._handleTriggerKeydown.bind(i),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._resetDropdownStyles(),this._removeEventHandlers(),n._dropdowns.splice(n._dropdowns.indexOf(this),1),this.el.M_Dropdown=void 0}},{key:"_setupEventHandlers",value:function(){this.el.addEventListener("keydown",this._handleTriggerKeydownBound),this.dropdownEl.addEventListener("click",this._handleDropdownClickBound),this.options.hover?(this._handleMouseEnterBound=this._handleMouseEnter.bind(this),this.el.addEventListener("mouseenter",this._handleMouseEnterBound),this._handleMouseLeaveBound=this._handleMouseLeave.bind(this),this.el.addEventListener("mouseleave",this._handleMouseLeaveBound),this.dropdownEl.addEventListener("mouseleave",this._handleMouseLeaveBound)):(this._handleClickBound=this._handleClick.bind(this),this.el.addEventListener("click",this._handleClickBound))}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("keydown",this._handleTriggerKeydownBound),this.dropdownEl.removeEventListener("click",this._handleDropdownClickBound),this.options.hover?(this.el.removeEventListener("mouseenter",this._handleMouseEnterBound),this.el.removeEventListener("mouseleave",this._handleMouseLeaveBound),this.dropdownEl.removeEventListener("mouseleave",this._handleMouseLeaveBound)):this.el.removeEventListener("click",this._handleClickBound)}},{key:"_setupTemporaryEventHandlers",value:function(){document.body.addEventListener("click",this._handleDocumentClickBound,!0),document.body.addEventListener("touchend",this._handleDocumentClickBound),document.body.addEventListener("touchmove",this._handleDocumentTouchmoveBound),this.dropdownEl.addEventListener("keydown",this._handleDropdownKeydownBound)}},{key:"_removeTemporaryEventHandlers",value:function(){document.body.removeEventListener("click",this._handleDocumentClickBound,!0),document.body.removeEventListener("touchend",this._handleDocumentClickBound),document.body.removeEventListener("touchmove",this._handleDocumentTouchmoveBound),this.dropdownEl.removeEventListener("keydown",this._handleDropdownKeydownBound)}},{key:"_handleClick",value:function(t){t.preventDefault(),this.open()}},{key:"_handleMouseEnter",value:function(){this.open()}},{key:"_handleMouseLeave",value:function(t){var e=t.toElement||t.relatedTarget,i=!!h(e).closest(".dropdown-content").length,n=!1,s=h(e).closest(".dropdown-trigger");s.length&&s[0].M_Dropdown&&s[0].M_Dropdown.isOpen&&(n=!0),n||i||this.close()}},{key:"_handleDocumentClick",value:function(t){var e=this,i=h(t.target);this.options.closeOnClick&&i.closest(".dropdown-content").length&&!this.isTouchMoving?setTimeout(function(){e.close()},0):!i.closest(".dropdown-trigger").length&&i.closest(".dropdown-content").length||setTimeout(function(){e.close()},0),this.isTouchMoving=!1}},{key:"_handleTriggerKeydown",value:function(t){t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ENTER||this.isOpen||(t.preventDefault(),this.open())}},{key:"_handleDocumentTouchmove",value:function(t){h(t.target).closest(".dropdown-content").length&&(this.isTouchMoving=!0)}},{key:"_handleDropdownClick",value:function(t){if("function"==typeof this.options.onItemClick){var e=h(t.target).closest("li")[0];this.options.onItemClick.call(this,e)}}},{key:"_handleDropdownKeydown",value:function(t){if(t.which===M.keys.TAB)t.preventDefault(),this.close();else if(t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ARROW_UP||!this.isOpen)if(t.which===M.keys.ENTER&&this.isOpen){var e=this.dropdownEl.children[this.focusedIndex],i=h(e).find("a, button").first();i.length?i[0].click():e&&e.click()}else t.which===M.keys.ESC&&this.isOpen&&(t.preventDefault(),this.close());else{t.preventDefault();var n=t.which===M.keys.ARROW_DOWN?1:-1,s=this.focusedIndex,o=!1;do{if(s+=n,this.dropdownEl.children[s]&&-1!==this.dropdownEl.children[s].tabIndex){o=!0;break}}while(sl.spaceOnBottom?(h="bottom",i+=l.spaceOnTop,o-=l.spaceOnTop):i+=l.spaceOnBottom)),!l[d]){var u="left"===d?"right":"left";l[u]?d=u:l.spaceOnLeft>l.spaceOnRight?(d="right",n+=l.spaceOnLeft,s-=l.spaceOnLeft):(d="left",n+=l.spaceOnRight)}return"bottom"===h&&(o=o-e.height+(this.options.coverTrigger?t.height:0)),"right"===d&&(s=s-e.width+t.width),{x:s,y:o,verticalAlignment:h,horizontalAlignment:d,height:i,width:n}}},{key:"_animateIn",value:function(){var e=this;i.remove(this.dropdownEl),i({targets:this.dropdownEl,opacity:{value:[0,1],easing:"easeOutQuad"},scaleX:[.3,1],scaleY:[.3,1],duration:this.options.inDuration,easing:"easeOutQuint",complete:function(t){e.options.autoFocus&&e.dropdownEl.focus(),"function"==typeof e.options.onOpenEnd&&e.options.onOpenEnd.call(e,e.el)}})}},{key:"_animateOut",value:function(){var e=this;i.remove(this.dropdownEl),i({targets:this.dropdownEl,opacity:{value:0,easing:"easeOutQuint"},scaleX:.3,scaleY:.3,duration:this.options.outDuration,easing:"easeOutQuint",complete:function(t){e._resetDropdownStyles(),"function"==typeof e.options.onCloseEnd&&e.options.onCloseEnd.call(e,e.el)}})}},{key:"_placeDropdown",value:function(){var t=this.options.constrainWidth?this.el.getBoundingClientRect().width:this.dropdownEl.getBoundingClientRect().width;this.dropdownEl.style.width=t+"px";var e=this._getDropdownPosition();this.dropdownEl.style.left=e.x+"px",this.dropdownEl.style.top=e.y+"px",this.dropdownEl.style.height=e.height+"px",this.dropdownEl.style.width=e.width+"px",this.dropdownEl.style.transformOrigin=("left"===e.horizontalAlignment?"0":"100%")+" "+("top"===e.verticalAlignment?"0":"100%")}},{key:"open",value:function(){this.isOpen||(this.isOpen=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this._resetDropdownStyles(),this.dropdownEl.style.display="block",this._placeDropdown(),this._animateIn(),this._setupTemporaryEventHandlers())}},{key:"close",value:function(){this.isOpen&&(this.isOpen=!1,this.focusedIndex=-1,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this._animateOut(),this._removeTemporaryEventHandlers(),this.options.autoFocus&&this.el.focus())}},{key:"recalculateDimensions",value:function(){this.isOpen&&(this.$dropdownEl.css({width:"",height:"",left:"",top:"","transform-origin":""}),this._placeDropdown())}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Dropdown}},{key:"defaults",get:function(){return e}}]),n}();t._dropdowns=[],M.Dropdown=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"dropdown","M_Dropdown")}(cash,M.anime),function(s,i){"use strict";var e={opacity:.5,inDuration:250,outDuration:250,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,preventScrolling:!0,dismissible:!0,startingTop:"4%",endingTop:"10%"},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Modal=i).options=s.extend({},n.defaults,e),i.isOpen=!1,i.id=i.$el.attr("id"),i._openingTrigger=void 0,i.$overlay=s(''),i.el.tabIndex=0,i._nthModalOpened=0,n._count++,i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){n._count--,this._removeEventHandlers(),this.el.removeAttribute("style"),this.$overlay.remove(),this.el.M_Modal=void 0}},{key:"_setupEventHandlers",value:function(){this._handleOverlayClickBound=this._handleOverlayClick.bind(this),this._handleModalCloseClickBound=this._handleModalCloseClick.bind(this),1===n._count&&document.body.addEventListener("click",this._handleTriggerClick),this.$overlay[0].addEventListener("click",this._handleOverlayClickBound),this.el.addEventListener("click",this._handleModalCloseClickBound)}},{key:"_removeEventHandlers",value:function(){0===n._count&&document.body.removeEventListener("click",this._handleTriggerClick),this.$overlay[0].removeEventListener("click",this._handleOverlayClickBound),this.el.removeEventListener("click",this._handleModalCloseClickBound)}},{key:"_handleTriggerClick",value:function(t){var e=s(t.target).closest(".modal-trigger");if(e.length){var i=M.getIdFromTrigger(e[0]),n=document.getElementById(i).M_Modal;n&&n.open(e),t.preventDefault()}}},{key:"_handleOverlayClick",value:function(){this.options.dismissible&&this.close()}},{key:"_handleModalCloseClick",value:function(t){s(t.target).closest(".modal-close").length&&this.close()}},{key:"_handleKeydown",value:function(t){27===t.keyCode&&this.options.dismissible&&this.close()}},{key:"_handleFocus",value:function(t){this.el.contains(t.target)||this._nthModalOpened!==n._modalsOpen||this.el.focus()}},{key:"_animateIn",value:function(){var t=this;s.extend(this.el.style,{display:"block",opacity:0}),s.extend(this.$overlay[0].style,{display:"block",opacity:0}),i({targets:this.$overlay[0],opacity:this.options.opacity,duration:this.options.inDuration,easing:"easeOutQuad"});var e={targets:this.el,duration:this.options.inDuration,easing:"easeOutCubic",complete:function(){"function"==typeof t.options.onOpenEnd&&t.options.onOpenEnd.call(t,t.el,t._openingTrigger)}};this.el.classList.contains("bottom-sheet")?s.extend(e,{bottom:0,opacity:1}):s.extend(e,{top:[this.options.startingTop,this.options.endingTop],opacity:1,scaleX:[.8,1],scaleY:[.8,1]}),i(e)}},{key:"_animateOut",value:function(){var t=this;i({targets:this.$overlay[0],opacity:0,duration:this.options.outDuration,easing:"easeOutQuart"});var e={targets:this.el,duration:this.options.outDuration,easing:"easeOutCubic",complete:function(){t.el.style.display="none",t.$overlay.remove(),"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t,t.el)}};this.el.classList.contains("bottom-sheet")?s.extend(e,{bottom:"-100%",opacity:0}):s.extend(e,{top:[this.options.endingTop,this.options.startingTop],opacity:0,scaleX:.8,scaleY:.8}),i(e)}},{key:"open",value:function(t){if(!this.isOpen)return this.isOpen=!0,n._modalsOpen++,this._nthModalOpened=n._modalsOpen,this.$overlay[0].style.zIndex=1e3+2*n._modalsOpen,this.el.style.zIndex=1e3+2*n._modalsOpen+1,this._openingTrigger=t?t[0]:void 0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el,this._openingTrigger),this.options.preventScrolling&&(document.body.style.overflow="hidden"),this.el.classList.add("open"),this.el.insertAdjacentElement("afterend",this.$overlay[0]),this.options.dismissible&&(this._handleKeydownBound=this._handleKeydown.bind(this),this._handleFocusBound=this._handleFocus.bind(this),document.addEventListener("keydown",this._handleKeydownBound),document.addEventListener("focus",this._handleFocusBound,!0)),i.remove(this.el),i.remove(this.$overlay[0]),this._animateIn(),this.el.focus(),this}},{key:"close",value:function(){if(this.isOpen)return this.isOpen=!1,n._modalsOpen--,this._nthModalOpened=0,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this.el.classList.remove("open"),0===n._modalsOpen&&(document.body.style.overflow=""),this.options.dismissible&&(document.removeEventListener("keydown",this._handleKeydownBound),document.removeEventListener("focus",this._handleFocusBound,!0)),i.remove(this.el),i.remove(this.$overlay[0]),this._animateOut(),this}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Modal}},{key:"defaults",get:function(){return e}}]),n}();t._modalsOpen=0,t._count=0,M.Modal=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"modal","M_Modal")}(cash,M.anime),function(o,a){"use strict";var e={inDuration:275,outDuration:200,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Materialbox=i).options=o.extend({},n.defaults,e),i.overlayActive=!1,i.doneAnimating=!0,i.placeholder=o("
      ").addClass("material-placeholder"),i.originalWidth=0,i.originalHeight=0,i.originInlineStyles=i.$el.attr("style"),i.caption=i.el.getAttribute("data-caption")||"",i.$el.before(i.placeholder),i.placeholder.append(i.$el),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_Materialbox=void 0,o(this.placeholder).after(this.el).remove(),this.$el.removeAttr("style")}},{key:"_setupEventHandlers",value:function(){this._handleMaterialboxClickBound=this._handleMaterialboxClick.bind(this),this.el.addEventListener("click",this._handleMaterialboxClickBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleMaterialboxClickBound)}},{key:"_handleMaterialboxClick",value:function(t){!1===this.doneAnimating||this.overlayActive&&this.doneAnimating?this.close():this.open()}},{key:"_handleWindowScroll",value:function(){this.overlayActive&&this.close()}},{key:"_handleWindowResize",value:function(){this.overlayActive&&this.close()}},{key:"_handleWindowEscape",value:function(t){27===t.keyCode&&this.doneAnimating&&this.overlayActive&&this.close()}},{key:"_makeAncestorsOverflowVisible",value:function(){this.ancestorsChanged=o();for(var t=this.placeholder[0].parentNode;null!==t&&!o(t).is(document);){var e=o(t);"visible"!==e.css("overflow")&&(e.css("overflow","visible"),void 0===this.ancestorsChanged?this.ancestorsChanged=e:this.ancestorsChanged=this.ancestorsChanged.add(e)),t=t.parentNode}}},{key:"_animateImageIn",value:function(){var t=this,e={targets:this.el,height:[this.originalHeight,this.newHeight],width:[this.originalWidth,this.newWidth],left:M.getDocumentScrollLeft()+this.windowWidth/2-this.placeholder.offset().left-this.newWidth/2,top:M.getDocumentScrollTop()+this.windowHeight/2-this.placeholder.offset().top-this.newHeight/2,duration:this.options.inDuration,easing:"easeOutQuad",complete:function(){t.doneAnimating=!0,"function"==typeof t.options.onOpenEnd&&t.options.onOpenEnd.call(t,t.el)}};this.maxWidth=this.$el.css("max-width"),this.maxHeight=this.$el.css("max-height"),"none"!==this.maxWidth&&(e.maxWidth=this.newWidth),"none"!==this.maxHeight&&(e.maxHeight=this.newHeight),a(e)}},{key:"_animateImageOut",value:function(){var t=this,e={targets:this.el,width:this.originalWidth,height:this.originalHeight,left:0,top:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){t.placeholder.css({height:"",width:"",position:"",top:"",left:""}),t.attrWidth&&t.$el.attr("width",t.attrWidth),t.attrHeight&&t.$el.attr("height",t.attrHeight),t.$el.removeAttr("style"),t.originInlineStyles&&t.$el.attr("style",t.originInlineStyles),t.$el.removeClass("active"),t.doneAnimating=!0,t.ancestorsChanged.length&&t.ancestorsChanged.css("overflow",""),"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t,t.el)}};a(e)}},{key:"_updateVars",value:function(){this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight,this.caption=this.el.getAttribute("data-caption")||""}},{key:"open",value:function(){var t=this;this._updateVars(),this.originalWidth=this.el.getBoundingClientRect().width,this.originalHeight=this.el.getBoundingClientRect().height,this.doneAnimating=!1,this.$el.addClass("active"),this.overlayActive=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this.placeholder.css({width:this.placeholder[0].getBoundingClientRect().width+"px",height:this.placeholder[0].getBoundingClientRect().height+"px",position:"relative",top:0,left:0}),this._makeAncestorsOverflowVisible(),this.$el.css({position:"absolute","z-index":1e3,"will-change":"left, top, width, height"}),this.attrWidth=this.$el.attr("width"),this.attrHeight=this.$el.attr("height"),this.attrWidth&&(this.$el.css("width",this.attrWidth+"px"),this.$el.removeAttr("width")),this.attrHeight&&(this.$el.css("width",this.attrHeight+"px"),this.$el.removeAttr("height")),this.$overlay=o('
      ').css({opacity:0}).one("click",function(){t.doneAnimating&&t.close()}),this.$el.before(this.$overlay);var e=this.$overlay[0].getBoundingClientRect();this.$overlay.css({width:this.windowWidth+"px",height:this.windowHeight+"px",left:-1*e.left+"px",top:-1*e.top+"px"}),a.remove(this.el),a.remove(this.$overlay[0]),a({targets:this.$overlay[0],opacity:1,duration:this.options.inDuration,easing:"easeOutQuad"}),""!==this.caption&&(this.$photocaption&&a.remove(this.$photoCaption[0]),this.$photoCaption=o('
      '),this.$photoCaption.text(this.caption),o("body").append(this.$photoCaption),this.$photoCaption.css({display:"inline"}),a({targets:this.$photoCaption[0],opacity:1,duration:this.options.inDuration,easing:"easeOutQuad"}));var i=0,n=this.originalWidth/this.windowWidth,s=this.originalHeight/this.windowHeight;this.newWidth=0,this.newHeight=0,si.options.responsiveThreshold,i.$img=i.$el.find("img").first(),i.$img.each(function(){this.complete&&s(this).trigger("load")}),i._updateParallax(),i._setupEventHandlers(),i._setupStyles(),n._parallaxes.push(i),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){n._parallaxes.splice(n._parallaxes.indexOf(this),1),this.$img[0].style.transform="",this._removeEventHandlers(),this.$el[0].M_Parallax=void 0}},{key:"_setupEventHandlers",value:function(){this._handleImageLoadBound=this._handleImageLoad.bind(this),this.$img[0].addEventListener("load",this._handleImageLoadBound),0===n._parallaxes.length&&(n._handleScrollThrottled=M.throttle(n._handleScroll,5),window.addEventListener("scroll",n._handleScrollThrottled),n._handleWindowResizeThrottled=M.throttle(n._handleWindowResize,5),window.addEventListener("resize",n._handleWindowResizeThrottled))}},{key:"_removeEventHandlers",value:function(){this.$img[0].removeEventListener("load",this._handleImageLoadBound),0===n._parallaxes.length&&(window.removeEventListener("scroll",n._handleScrollThrottled),window.removeEventListener("resize",n._handleWindowResizeThrottled))}},{key:"_setupStyles",value:function(){this.$img[0].style.opacity=1}},{key:"_handleImageLoad",value:function(){this._updateParallax()}},{key:"_updateParallax",value:function(){var t=0e.options.responsiveThreshold}}},{key:"defaults",get:function(){return e}}]),n}();t._parallaxes=[],M.Parallax=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"parallax","M_Parallax")}(cash),function(a,s){"use strict";var e={duration:300,onShow:null,swipeable:!1,responsiveThreshold:1/0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Tabs=i).options=a.extend({},n.defaults,e),i.$tabLinks=i.$el.children("li.tab").children("a"),i.index=0,i._setupActiveTabLink(),i.options.swipeable?i._setupSwipeableTabs():i._setupNormalTabs(),i._setTabsAndTabWidth(),i._createIndicator(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._indicator.parentNode.removeChild(this._indicator),this.options.swipeable?this._teardownSwipeableTabs():this._teardownNormalTabs(),this.$el[0].M_Tabs=void 0}},{key:"_setupEventHandlers",value:function(){this._handleWindowResizeBound=this._handleWindowResize.bind(this),window.addEventListener("resize",this._handleWindowResizeBound),this._handleTabClickBound=this._handleTabClick.bind(this),this.el.addEventListener("click",this._handleTabClickBound)}},{key:"_removeEventHandlers",value:function(){window.removeEventListener("resize",this._handleWindowResizeBound),this.el.removeEventListener("click",this._handleTabClickBound)}},{key:"_handleWindowResize",value:function(){this._setTabsAndTabWidth(),0!==this.tabWidth&&0!==this.tabsWidth&&(this._indicator.style.left=this._calcLeftPos(this.$activeTabLink)+"px",this._indicator.style.right=this._calcRightPos(this.$activeTabLink)+"px")}},{key:"_handleTabClick",value:function(t){var e=this,i=a(t.target).closest("li.tab"),n=a(t.target).closest("a");if(n.length&&n.parent().hasClass("tab"))if(i.hasClass("disabled"))t.preventDefault();else if(!n.attr("target")){this.$activeTabLink.removeClass("active");var s=this.$content;this.$activeTabLink=n,this.$content=a(M.escapeHash(n[0].hash)),this.$tabLinks=this.$el.children("li.tab").children("a"),this.$activeTabLink.addClass("active");var o=this.index;this.index=Math.max(this.$tabLinks.index(n),0),this.options.swipeable?this._tabsCarousel&&this._tabsCarousel.set(this.index,function(){"function"==typeof e.options.onShow&&e.options.onShow.call(e,e.$content[0])}):this.$content.length&&(this.$content[0].style.display="block",this.$content.addClass("active"),"function"==typeof this.options.onShow&&this.options.onShow.call(this,this.$content[0]),s.length&&!s.is(this.$content)&&(s[0].style.display="none",s.removeClass("active"))),this._setTabsAndTabWidth(),this._animateIndicator(o),t.preventDefault()}}},{key:"_createIndicator",value:function(){var t=this,e=document.createElement("li");e.classList.add("indicator"),this.el.appendChild(e),this._indicator=e,setTimeout(function(){t._indicator.style.left=t._calcLeftPos(t.$activeTabLink)+"px",t._indicator.style.right=t._calcRightPos(t.$activeTabLink)+"px"},0)}},{key:"_setupActiveTabLink",value:function(){this.$activeTabLink=a(this.$tabLinks.filter('[href="'+location.hash+'"]')),0===this.$activeTabLink.length&&(this.$activeTabLink=this.$el.children("li.tab").children("a.active").first()),0===this.$activeTabLink.length&&(this.$activeTabLink=this.$el.children("li.tab").children("a").first()),this.$tabLinks.removeClass("active"),this.$activeTabLink[0].classList.add("active"),this.index=Math.max(this.$tabLinks.index(this.$activeTabLink),0),this.$activeTabLink.length&&(this.$content=a(M.escapeHash(this.$activeTabLink[0].hash)),this.$content.addClass("active"))}},{key:"_setupSwipeableTabs",value:function(){var i=this;window.innerWidth>this.options.responsiveThreshold&&(this.options.swipeable=!1);var n=a();this.$tabLinks.each(function(t){var e=a(M.escapeHash(t.hash));e.addClass("carousel-item"),n=n.add(e)});var t=a('');n.first().before(t),t.append(n),n[0].style.display="";var e=this.$activeTabLink.closest(".tab").index();this._tabsCarousel=M.Carousel.init(t[0],{fullWidth:!0,noWrap:!0,onCycleTo:function(t){var e=i.index;i.index=a(t).index(),i.$activeTabLink.removeClass("active"),i.$activeTabLink=i.$tabLinks.eq(i.index),i.$activeTabLink.addClass("active"),i._animateIndicator(e),"function"==typeof i.options.onShow&&i.options.onShow.call(i,i.$content[0])}}),this._tabsCarousel.set(e)}},{key:"_teardownSwipeableTabs",value:function(){var t=this._tabsCarousel.$el;this._tabsCarousel.destroy(),t.after(t.children()),t.remove()}},{key:"_setupNormalTabs",value:function(){this.$tabLinks.not(this.$activeTabLink).each(function(t){if(t.hash){var e=a(M.escapeHash(t.hash));e.length&&(e[0].style.display="none")}})}},{key:"_teardownNormalTabs",value:function(){this.$tabLinks.each(function(t){if(t.hash){var e=a(M.escapeHash(t.hash));e.length&&(e[0].style.display="")}})}},{key:"_setTabsAndTabWidth",value:function(){this.tabsWidth=this.$el.width(),this.tabWidth=Math.max(this.tabsWidth,this.el.scrollWidth)/this.$tabLinks.length}},{key:"_calcRightPos",value:function(t){return Math.ceil(this.tabsWidth-t.position().left-t[0].getBoundingClientRect().width)}},{key:"_calcLeftPos",value:function(t){return Math.floor(t.position().left)}},{key:"updateTabIndicator",value:function(){this._setTabsAndTabWidth(),this._animateIndicator(this.index)}},{key:"_animateIndicator",value:function(t){var e=0,i=0;0<=this.index-t?e=90:i=90;var n={targets:this._indicator,left:{value:this._calcLeftPos(this.$activeTabLink),delay:e},right:{value:this._calcRightPos(this.$activeTabLink),delay:i},duration:this.options.duration,easing:"easeOutQuad"};s.remove(this._indicator),s(n)}},{key:"select",value:function(t){var e=this.$tabLinks.filter('[href="#'+t+'"]');e.length&&e.trigger("click")}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Tabs}},{key:"defaults",get:function(){return e}}]),n}();M.Tabs=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"tabs","M_Tabs")}(cash,M.anime),function(d,e){"use strict";var i={exitDelay:200,enterDelay:0,html:null,margin:5,inDuration:250,outDuration:200,position:"bottom",transitionMovement:10},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Tooltip=i).options=d.extend({},n.defaults,e),i.isOpen=!1,i.isHovered=!1,i.isFocused=!1,i._appendTooltipEl(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){d(this.tooltipEl).remove(),this._removeEventHandlers(),this.el.M_Tooltip=void 0}},{key:"_appendTooltipEl",value:function(){var t=document.createElement("div");t.classList.add("material-tooltip"),this.tooltipEl=t;var e=document.createElement("div");e.classList.add("tooltip-content"),e.innerHTML=this.options.html,t.appendChild(e),document.body.appendChild(t)}},{key:"_updateTooltipContent",value:function(){this.tooltipEl.querySelector(".tooltip-content").innerHTML=this.options.html}},{key:"_setupEventHandlers",value:function(){this._handleMouseEnterBound=this._handleMouseEnter.bind(this),this._handleMouseLeaveBound=this._handleMouseLeave.bind(this),this._handleFocusBound=this._handleFocus.bind(this),this._handleBlurBound=this._handleBlur.bind(this),this.el.addEventListener("mouseenter",this._handleMouseEnterBound),this.el.addEventListener("mouseleave",this._handleMouseLeaveBound),this.el.addEventListener("focus",this._handleFocusBound,!0),this.el.addEventListener("blur",this._handleBlurBound,!0)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("mouseenter",this._handleMouseEnterBound),this.el.removeEventListener("mouseleave",this._handleMouseLeaveBound),this.el.removeEventListener("focus",this._handleFocusBound,!0),this.el.removeEventListener("blur",this._handleBlurBound,!0)}},{key:"open",value:function(t){this.isOpen||(t=void 0===t||void 0,this.isOpen=!0,this.options=d.extend({},this.options,this._getAttributeOptions()),this._updateTooltipContent(),this._setEnterDelayTimeout(t))}},{key:"close",value:function(){this.isOpen&&(this.isHovered=!1,this.isFocused=!1,this.isOpen=!1,this._setExitDelayTimeout())}},{key:"_setExitDelayTimeout",value:function(){var t=this;clearTimeout(this._exitDelayTimeout),this._exitDelayTimeout=setTimeout(function(){t.isHovered||t.isFocused||t._animateOut()},this.options.exitDelay)}},{key:"_setEnterDelayTimeout",value:function(t){var e=this;clearTimeout(this._enterDelayTimeout),this._enterDelayTimeout=setTimeout(function(){(e.isHovered||e.isFocused||t)&&e._animateIn()},this.options.enterDelay)}},{key:"_positionTooltip",value:function(){var t,e=this.el,i=this.tooltipEl,n=e.offsetHeight,s=e.offsetWidth,o=i.offsetHeight,a=i.offsetWidth,r=this.options.margin,l=void 0,h=void 0;this.xMovement=0,this.yMovement=0,l=e.getBoundingClientRect().top+M.getDocumentScrollTop(),h=e.getBoundingClientRect().left+M.getDocumentScrollLeft(),"top"===this.options.position?(l+=-o-r,h+=s/2-a/2,this.yMovement=-this.options.transitionMovement):"right"===this.options.position?(l+=n/2-o/2,h+=s+r,this.xMovement=this.options.transitionMovement):"left"===this.options.position?(l+=n/2-o/2,h+=-a-r,this.xMovement=-this.options.transitionMovement):(l+=n+r,h+=s/2-a/2,this.yMovement=this.options.transitionMovement),t=this._repositionWithinScreen(h,l,a,o),d(i).css({top:t.y+"px",left:t.x+"px"})}},{key:"_repositionWithinScreen",value:function(t,e,i,n){var s=M.getDocumentScrollLeft(),o=M.getDocumentScrollTop(),a=t-s,r=e-o,l={left:a,top:r,width:i,height:n},h=this.options.margin+this.options.transitionMovement,d=M.checkWithinContainer(document.body,l,h);return d.left?a=h:d.right&&(a-=a+i-window.innerWidth),d.top?r=h:d.bottom&&(r-=r+n-window.innerHeight),{x:a+s,y:r+o}}},{key:"_animateIn",value:function(){this._positionTooltip(),this.tooltipEl.style.visibility="visible",e.remove(this.tooltipEl),e({targets:this.tooltipEl,opacity:1,translateX:this.xMovement,translateY:this.yMovement,duration:this.options.inDuration,easing:"easeOutCubic"})}},{key:"_animateOut",value:function(){e.remove(this.tooltipEl),e({targets:this.tooltipEl,opacity:0,translateX:0,translateY:0,duration:this.options.outDuration,easing:"easeOutCubic"})}},{key:"_handleMouseEnter",value:function(){this.isHovered=!0,this.isFocused=!1,this.open(!1)}},{key:"_handleMouseLeave",value:function(){this.isHovered=!1,this.isFocused=!1,this.close()}},{key:"_handleFocus",value:function(){M.tabPressed&&(this.isFocused=!0,this.open(!1))}},{key:"_handleBlur",value:function(){this.isFocused=!1,this.close()}},{key:"_getAttributeOptions",value:function(){var t={},e=this.el.getAttribute("data-tooltip"),i=this.el.getAttribute("data-position");return e&&(t.html=e),i&&(t.position=i),t}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Tooltip}},{key:"defaults",get:function(){return i}}]),n}();M.Tooltip=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"tooltip","M_Tooltip")}(cash,M.anime),function(i){"use strict";var t=t||{},e=document.querySelectorAll.bind(document);function m(t){var e="";for(var i in t)t.hasOwnProperty(i)&&(e+=i+":"+t[i]+";");return e}var g={duration:750,show:function(t,e){if(2===t.button)return!1;var i=e||this,n=document.createElement("div");n.className="waves-ripple",i.appendChild(n);var s,o,a,r,l,h,d,u=(h={top:0,left:0},d=(s=i)&&s.ownerDocument,o=d.documentElement,void 0!==s.getBoundingClientRect&&(h=s.getBoundingClientRect()),a=null!==(l=r=d)&&l===l.window?r:9===r.nodeType&&r.defaultView,{top:h.top+a.pageYOffset-o.clientTop,left:h.left+a.pageXOffset-o.clientLeft}),c=t.pageY-u.top,p=t.pageX-u.left,v="scale("+i.clientWidth/100*10+")";"touches"in t&&(c=t.touches[0].pageY-u.top,p=t.touches[0].pageX-u.left),n.setAttribute("data-hold",Date.now()),n.setAttribute("data-scale",v),n.setAttribute("data-x",p),n.setAttribute("data-y",c);var f={top:c+"px",left:p+"px"};n.className=n.className+" waves-notransition",n.setAttribute("style",m(f)),n.className=n.className.replace("waves-notransition",""),f["-webkit-transform"]=v,f["-moz-transform"]=v,f["-ms-transform"]=v,f["-o-transform"]=v,f.transform=v,f.opacity="1",f["-webkit-transition-duration"]=g.duration+"ms",f["-moz-transition-duration"]=g.duration+"ms",f["-o-transition-duration"]=g.duration+"ms",f["transition-duration"]=g.duration+"ms",f["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",n.setAttribute("style",m(f))},hide:function(t){l.touchup(t);var e=this,i=(e.clientWidth,null),n=e.getElementsByClassName("waves-ripple");if(!(0i||1"+o+""+a+""+r+""),i.length&&e.prepend(i)}},{key:"_resetCurrentElement",value:function(){this.activeIndex=-1,this.$active.removeClass("active")}},{key:"_resetAutocomplete",value:function(){h(this.container).empty(),this._resetCurrentElement(),this.oldVal=null,this.isOpen=!1,this._mousedown=!1}},{key:"selectOption",value:function(t){var e=t.text().trim();this.el.value=e,this.$el.trigger("change"),this._resetAutocomplete(),this.close(),"function"==typeof this.options.onAutocomplete&&this.options.onAutocomplete.call(this,e)}},{key:"_renderDropdown",value:function(t,i){var n=this;this._resetAutocomplete();var e=[];for(var s in t)if(t.hasOwnProperty(s)&&-1!==s.toLowerCase().indexOf(i)){if(this.count>=this.options.limit)break;var o={data:t[s],key:s};e.push(o),this.count++}if(this.options.sortFunction){e.sort(function(t,e){return n.options.sortFunction(t.key.toLowerCase(),e.key.toLowerCase(),i.toLowerCase())})}for(var a=0;a");r.data?l.append(''+r.key+""):l.append(""+r.key+""),h(this.container).append(l),this._highlight(i,l)}}},{key:"open",value:function(){var t=this.el.value.toLowerCase();this._resetAutocomplete(),t.length>=this.options.minLength&&(this.isOpen=!0,this._renderDropdown(this.options.data,t)),this.dropdown.isOpen?this.dropdown.recalculateDimensions():this.dropdown.open()}},{key:"close",value:function(){this.dropdown.close()}},{key:"updateData",value:function(t){var e=this.el.value.toLowerCase();this.options.data=t,this.isOpen&&this._renderDropdown(t,e)}}],[{key:"init",value:function(t,e){return _get(s.__proto__||Object.getPrototypeOf(s),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Autocomplete}},{key:"defaults",get:function(){return e}}]),s}();t._keydown=!1,M.Autocomplete=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"autocomplete","M_Autocomplete")}(cash),function(d){M.updateTextFields=function(){d("input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea").each(function(t,e){var i=d(this);0'),d("body").append(e));var i=t.css("font-family"),n=t.css("font-size"),s=t.css("line-height"),o=t.css("padding-top"),a=t.css("padding-right"),r=t.css("padding-bottom"),l=t.css("padding-left");n&&e.css("font-size",n),i&&e.css("font-family",i),s&&e.css("line-height",s),o&&e.css("padding-top",o),a&&e.css("padding-right",a),r&&e.css("padding-bottom",r),l&&e.css("padding-left",l),t.data("original-height")||t.data("original-height",t.height()),"off"===t.attr("wrap")&&e.css("overflow-wrap","normal").css("white-space","pre"),e.text(t[0].value+"\n");var h=e.html().replace(/\n/g,"
      ");e.html(h),0'),this.$slides.each(function(t,e){var i=s('
    • ');n.$indicators.append(i[0])}),this.$el.append(this.$indicators[0]),this.$indicators=this.$indicators.children("li.indicator-item"))}},{key:"_removeIndicators",value:function(){this.$el.find("ul.indicators").remove()}},{key:"set",value:function(t){var e=this;if(t>=this.$slides.length?t=0:t<0&&(t=this.$slides.length-1),this.activeIndex!=t){this.$active=this.$slides.eq(this.activeIndex);var i=this.$active.find(".caption");this.$active.removeClass("active"),o({targets:this.$active[0],opacity:0,duration:this.options.duration,easing:"easeOutQuad",complete:function(){e.$slides.not(".active").each(function(t){o({targets:t,opacity:0,translateX:0,translateY:0,duration:0,easing:"easeOutQuad"})})}}),this._animateCaptionIn(i[0],this.options.duration),this.options.indicators&&(this.$indicators.eq(this.activeIndex).removeClass("active"),this.$indicators.eq(t).addClass("active")),o({targets:this.$slides.eq(t)[0],opacity:1,duration:this.options.duration,easing:"easeOutQuad"}),o({targets:this.$slides.eq(t).find(".caption")[0],opacity:1,translateX:0,translateY:0,duration:this.options.duration,delay:this.options.duration,easing:"easeOutQuad"}),this.$slides.eq(t).addClass("active"),this.activeIndex=t,this.start()}}},{key:"pause",value:function(){clearInterval(this.interval)}},{key:"start",value:function(){clearInterval(this.interval),this.interval=setInterval(this._handleIntervalBound,this.options.duration+this.options.interval)}},{key:"next",value:function(){var t=this.activeIndex+1;t>=this.$slides.length?t=0:t<0&&(t=this.$slides.length-1),this.set(t)}},{key:"prev",value:function(){var t=this.activeIndex-1;t>=this.$slides.length?t=0:t<0&&(t=this.$slides.length-1),this.set(t)}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Slider}},{key:"defaults",get:function(){return e}}]),n}();M.Slider=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"slider","M_Slider")}(cash,M.anime),function(n,s){n(document).on("click",".card",function(t){if(n(this).children(".card-reveal").length){var i=n(t.target).closest(".card");void 0===i.data("initialOverflow")&&i.data("initialOverflow",void 0===i.css("overflow")?"":i.css("overflow"));var e=n(this).find(".card-reveal");n(t.target).is(n(".card-reveal .card-title"))||n(t.target).is(n(".card-reveal .card-title i"))?s({targets:e[0],translateY:0,duration:225,easing:"easeInOutQuad",complete:function(t){var e=t.animatables[0].target;n(e).css({display:"none"}),i.css("overflow",i.data("initialOverflow"))}}):(n(t.target).is(n(".card .activator"))||n(t.target).is(n(".card .activator i")))&&(i.css("overflow","hidden"),e.css({display:"block"}),s({targets:e[0],translateY:"-100%",duration:300,easing:"easeInOutQuad"}))}})}(cash,M.anime),function(h){"use strict";var e={data:[],placeholder:"",secondaryPlaceholder:"",autocompleteOptions:{},limit:1/0,onChipAdd:null,onChipSelect:null,onChipDelete:null},t=function(t){function l(t,e){_classCallCheck(this,l);var i=_possibleConstructorReturn(this,(l.__proto__||Object.getPrototypeOf(l)).call(this,l,t,e));return(i.el.M_Chips=i).options=h.extend({},l.defaults,e),i.$el.addClass("chips input-field"),i.chipsData=[],i.$chips=h(),i._setupInput(),i.hasAutocomplete=0"),this.$el.append(this.$input)),this.$input.addClass("input")}},{key:"_setupLabel",value:function(){this.$label=this.$el.find("label"),this.$label.length&&this.$label.setAttribute("for",this.$input.attr("id"))}},{key:"_setPlaceholder",value:function(){void 0!==this.chipsData&&!this.chipsData.length&&this.options.placeholder?h(this.$input).prop("placeholder",this.options.placeholder):(void 0===this.chipsData||this.chipsData.length)&&this.options.secondaryPlaceholder&&h(this.$input).prop("placeholder",this.options.secondaryPlaceholder)}},{key:"_isValid",value:function(t){if(t.hasOwnProperty("tag")&&""!==t.tag){for(var e=!1,i=0;i=this.options.limit)){var e=this._renderChip(t);this.$chips.add(e),this.chipsData.push(t),h(this.$input).before(e),this._setPlaceholder(),"function"==typeof this.options.onChipAdd&&this.options.onChipAdd.call(this,this.$el,e)}}},{key:"deleteChip",value:function(t){var e=this.$chips.eq(t);this.$chips.eq(t).remove(),this.$chips=this.$chips.filter(function(t){return 0<=h(t).index()}),this.chipsData.splice(t,1),this._setPlaceholder(),"function"==typeof this.options.onChipDelete&&this.options.onChipDelete.call(this,this.$el,e[0])}},{key:"selectChip",value:function(t){var e=this.$chips.eq(t);(this._selectedChip=e)[0].focus(),"function"==typeof this.options.onChipSelect&&this.options.onChipSelect.call(this,this.$el,e[0])}}],[{key:"init",value:function(t,e){return _get(l.__proto__||Object.getPrototypeOf(l),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Chips}},{key:"_handleChipsKeydown",value:function(t){l._keydown=!0;var e=h(t.target).closest(".chips"),i=t.target&&e.length;if(!h(t.target).is("input, textarea")&&i){var n=e[0].M_Chips;if(8===t.keyCode||46===t.keyCode){t.preventDefault();var s=n.chipsData.length;if(n._selectedChip){var o=n._selectedChip.index();n.deleteChip(o),n._selectedChip=null,s=Math.max(o-1,0)}n.chipsData.length&&n.selectChip(s)}else if(37===t.keyCode){if(n._selectedChip){var a=n._selectedChip.index()-1;if(a<0)return;n.selectChip(a)}}else if(39===t.keyCode&&n._selectedChip){var r=n._selectedChip.index()+1;r>=n.chipsData.length?n.$input[0].focus():n.selectChip(r)}}}},{key:"_handleChipsKeyup",value:function(t){l._keydown=!1}},{key:"_handleChipsBlur",value:function(t){l._keydown||(h(t.target).closest(".chips")[0].M_Chips._selectedChip=null)}},{key:"defaults",get:function(){return e}}]),l}();t._keydown=!1,M.Chips=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"chips","M_Chips"),h(document).ready(function(){h(document.body).on("click",".chip .close",function(){var t=h(this).closest(".chips");t.length&&t[0].M_Chips||h(this).closest(".chip").remove()})})}(cash),function(s){"use strict";var e={top:0,bottom:1/0,offset:0,onPositionChange:null},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Pushpin=i).options=s.extend({},n.defaults,e),i.originalOffset=i.el.offsetTop,n._pushpins.push(i),i._setupEventHandlers(),i._updatePosition(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this.el.style.top=null,this._removePinClasses(),this._removeEventHandlers();var t=n._pushpins.indexOf(this);n._pushpins.splice(t,1)}},{key:"_setupEventHandlers",value:function(){document.addEventListener("scroll",n._updateElements)}},{key:"_removeEventHandlers",value:function(){document.removeEventListener("scroll",n._updateElements)}},{key:"_updatePosition",value:function(){var t=M.getDocumentScrollTop()+this.options.offset;this.options.top<=t&&this.options.bottom>=t&&!this.el.classList.contains("pinned")&&(this._removePinClasses(),this.el.style.top=this.options.offset+"px",this.el.classList.add("pinned"),"function"==typeof this.options.onPositionChange&&this.options.onPositionChange.call(this,"pinned")),tthis.options.bottom&&!this.el.classList.contains("pin-bottom")&&(this._removePinClasses(),this.el.classList.add("pin-bottom"),this.el.style.top=this.options.bottom-this.originalOffset+"px","function"==typeof this.options.onPositionChange&&this.options.onPositionChange.call(this,"pin-bottom"))}},{key:"_removePinClasses",value:function(){this.el.classList.remove("pin-top"),this.el.classList.remove("pinned"),this.el.classList.remove("pin-bottom")}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Pushpin}},{key:"_updateElements",value:function(){for(var t in n._pushpins){n._pushpins[t]._updatePosition()}}},{key:"defaults",get:function(){return e}}]),n}();t._pushpins=[],M.Pushpin=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"pushpin","M_Pushpin")}(cash),function(r,s){"use strict";var e={direction:"top",hoverEnabled:!0,toolbarEnabled:!1};r.fn.reverse=[].reverse;var t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_FloatingActionButton=i).options=r.extend({},n.defaults,e),i.isOpen=!1,i.$anchor=i.$el.children("a").first(),i.$menu=i.$el.children("ul").first(),i.$floatingBtns=i.$el.find("ul .btn-floating"),i.$floatingBtnsReverse=i.$el.find("ul .btn-floating").reverse(),i.offsetY=0,i.offsetX=0,i.$el.addClass("direction-"+i.options.direction),"top"===i.options.direction?i.offsetY=40:"right"===i.options.direction?i.offsetX=-40:"bottom"===i.options.direction?i.offsetY=-40:i.offsetX=40,i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_FloatingActionButton=void 0}},{key:"_setupEventHandlers",value:function(){this._handleFABClickBound=this._handleFABClick.bind(this),this._handleOpenBound=this.open.bind(this),this._handleCloseBound=this.close.bind(this),this.options.hoverEnabled&&!this.options.toolbarEnabled?(this.el.addEventListener("mouseenter",this._handleOpenBound),this.el.addEventListener("mouseleave",this._handleCloseBound)):this.el.addEventListener("click",this._handleFABClickBound)}},{key:"_removeEventHandlers",value:function(){this.options.hoverEnabled&&!this.options.toolbarEnabled?(this.el.removeEventListener("mouseenter",this._handleOpenBound),this.el.removeEventListener("mouseleave",this._handleCloseBound)):this.el.removeEventListener("click",this._handleFABClickBound)}},{key:"_handleFABClick",value:function(){this.isOpen?this.close():this.open()}},{key:"_handleDocumentClick",value:function(t){r(t.target).closest(this.$menu).length||this.close()}},{key:"open",value:function(){this.isOpen||(this.options.toolbarEnabled?this._animateInToolbar():this._animateInFAB(),this.isOpen=!0)}},{key:"close",value:function(){this.isOpen&&(this.options.toolbarEnabled?(window.removeEventListener("scroll",this._handleCloseBound,!0),document.body.removeEventListener("click",this._handleDocumentClickBound,!0),this._animateOutToolbar()):this._animateOutFAB(),this.isOpen=!1)}},{key:"_animateInFAB",value:function(){var e=this;this.$el.addClass("active");var i=0;this.$floatingBtnsReverse.each(function(t){s({targets:t,opacity:1,scale:[.4,1],translateY:[e.offsetY,0],translateX:[e.offsetX,0],duration:275,delay:i,easing:"easeInOutQuad"}),i+=40})}},{key:"_animateOutFAB",value:function(){var e=this;this.$floatingBtnsReverse.each(function(t){s.remove(t),s({targets:t,opacity:0,scale:.4,translateY:e.offsetY,translateX:e.offsetX,duration:175,easing:"easeOutQuad",complete:function(){e.$el.removeClass("active")}})})}},{key:"_animateInToolbar",value:function(){var t,e=this,i=window.innerWidth,n=window.innerHeight,s=this.el.getBoundingClientRect(),o=r('
      '),a=this.$anchor.css("background-color");this.$anchor.append(o),this.offsetX=s.left-i/2+s.width/2,this.offsetY=n-s.bottom,t=i/o[0].clientWidth,this.btnBottom=s.bottom,this.btnLeft=s.left,this.btnWidth=s.width,this.$el.addClass("active"),this.$el.css({"text-align":"center",width:"100%",bottom:0,left:0,transform:"translateX("+this.offsetX+"px)",transition:"none"}),this.$anchor.css({transform:"translateY("+-this.offsetY+"px)",transition:"none"}),o.css({"background-color":a}),setTimeout(function(){e.$el.css({transform:"",transition:"transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s"}),e.$anchor.css({overflow:"visible",transform:"",transition:"transform .2s"}),setTimeout(function(){e.$el.css({overflow:"hidden","background-color":a}),o.css({transform:"scale("+t+")",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"}),e.$menu.children("li").children("a").css({opacity:1}),e._handleDocumentClickBound=e._handleDocumentClick.bind(e),window.addEventListener("scroll",e._handleCloseBound,!0),document.body.addEventListener("click",e._handleDocumentClickBound,!0)},100)},0)}},{key:"_animateOutToolbar",value:function(){var t=this,e=window.innerWidth,i=window.innerHeight,n=this.$el.find(".fab-backdrop"),s=this.$anchor.css("background-color");this.offsetX=this.btnLeft-e/2+this.btnWidth/2,this.offsetY=i-this.btnBottom,this.$el.removeClass("active"),this.$el.css({"background-color":"transparent",transition:"none"}),this.$anchor.css({transition:"none"}),n.css({transform:"scale(0)","background-color":s}),this.$menu.children("li").children("a").css({opacity:""}),setTimeout(function(){n.remove(),t.$el.css({"text-align":"",width:"",bottom:"",left:"",overflow:"","background-color":"",transform:"translate3d("+-t.offsetX+"px,0,0)"}),t.$anchor.css({overflow:"",transform:"translate3d(0,"+t.offsetY+"px,0)"}),setTimeout(function(){t.$el.css({transform:"translate3d(0,0,0)",transition:"transform .2s"}),t.$anchor.css({transform:"translate3d(0,0,0)",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"})},20)},200)}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_FloatingActionButton}},{key:"defaults",get:function(){return e}}]),n}();M.FloatingActionButton=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"floatingActionButton","M_FloatingActionButton")}(cash,M.anime),function(g){"use strict";var e={autoClose:!1,format:"mmm dd, yyyy",parse:null,defaultDate:null,setDefaultDate:!1,disableWeekends:!1,disableDayFn:null,firstDay:0,minDate:null,maxDate:null,yearRange:10,minYear:0,maxYear:9999,minMonth:void 0,maxMonth:void 0,startRange:null,endRange:null,isRTL:!1,showMonthAfterYear:!1,showDaysInNextAndPreviousMonths:!1,container:null,showClearBtn:!1,i18n:{cancel:"Cancel",clear:"Clear",done:"Ok",previousMonth:"‹",nextMonth:"›",months:["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"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysAbbrev:["S","M","T","W","T","F","S"]},events:[],onSelect:null,onOpen:null,onClose:null,onDraw:null},t=function(t){function B(t,e){_classCallCheck(this,B);var i=_possibleConstructorReturn(this,(B.__proto__||Object.getPrototypeOf(B)).call(this,B,t,e));(i.el.M_Datepicker=i).options=g.extend({},B.defaults,e),e&&e.hasOwnProperty("i18n")&&"object"==typeof e.i18n&&(i.options.i18n=g.extend({},B.defaults.i18n,e.i18n)),i.options.minDate&&i.options.minDate.setHours(0,0,0,0),i.options.maxDate&&i.options.maxDate.setHours(0,0,0,0),i.id=M.guid(),i._setupVariables(),i._insertHTMLIntoDOM(),i._setupModal(),i._setupEventHandlers(),i.options.defaultDate||(i.options.defaultDate=new Date(Date.parse(i.el.value)));var n=i.options.defaultDate;return B._isDate(n)?i.options.setDefaultDate?(i.setDate(n,!0),i.setInputValue()):i.gotoDate(n):i.gotoDate(new Date),i.isOpen=!1,i}return _inherits(B,Component),_createClass(B,[{key:"destroy",value:function(){this._removeEventHandlers(),this.modal.destroy(),g(this.modalEl).remove(),this.destroySelects(),this.el.M_Datepicker=void 0}},{key:"destroySelects",value:function(){var t=this.calendarEl.querySelector(".orig-select-year");t&&M.FormSelect.getInstance(t).destroy();var e=this.calendarEl.querySelector(".orig-select-month");e&&M.FormSelect.getInstance(e).destroy()}},{key:"_insertHTMLIntoDOM",value:function(){this.options.showClearBtn&&(g(this.clearBtn).css({visibility:""}),this.clearBtn.innerHTML=this.options.i18n.clear),this.doneBtn.innerHTML=this.options.i18n.done,this.cancelBtn.innerHTML=this.options.i18n.cancel,this.options.container?this.$modalEl.appendTo(this.options.container):this.$modalEl.insertBefore(this.el)}},{key:"_setupModal",value:function(){var t=this;this.modalEl.id="modal-"+this.id,this.modal=M.Modal.init(this.modalEl,{onCloseEnd:function(){t.isOpen=!1}})}},{key:"toString",value:function(t){var e=this;return t=t||this.options.format,B._isDate(this.date)?t.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g).map(function(t){return e.formats[t]?e.formats[t]():t}).join(""):""}},{key:"setDate",value:function(t,e){if(!t)return this.date=null,this._renderDateDisplay(),this.draw();if("string"==typeof t&&(t=new Date(Date.parse(t))),B._isDate(t)){var i=this.options.minDate,n=this.options.maxDate;B._isDate(i)&&tn.maxDate||n.disableWeekends&&B._isWeekend(y)||n.disableDayFn&&n.disableDayFn(y),isEmpty:C,isStartRange:x,isEndRange:L,isInRange:T,showDaysInNextAndPreviousMonths:n.showDaysInNextAndPreviousMonths};l.push(this.renderDay($)),7==++_&&(r.push(this.renderRow(l,n.isRTL,m)),_=0,m=!(l=[]))}return this.renderTable(n,r,i)}},{key:"renderDay",value:function(t){var e=[],i="false";if(t.isEmpty){if(!t.showDaysInNextAndPreviousMonths)return'';e.push("is-outside-current-month"),e.push("is-selection-disabled")}return t.isDisabled&&e.push("is-disabled"),t.isToday&&e.push("is-today"),t.isSelected&&(e.push("is-selected"),i="true"),t.hasEvent&&e.push("has-event"),t.isInRange&&e.push("is-inrange"),t.isStartRange&&e.push("is-startrange"),t.isEndRange&&e.push("is-endrange"),'"}},{key:"renderRow",value:function(t,e,i){return''+(e?t.reverse():t).join("")+""}},{key:"renderTable",value:function(t,e,i){return'
      '+this.renderHead(t)+this.renderBody(e)+"
      "}},{key:"renderHead",value:function(t){var e=void 0,i=[];for(e=0;e<7;e++)i.push(''+this.renderDayName(t,e,!0)+"");return""+(t.isRTL?i.reverse():i).join("")+""}},{key:"renderBody",value:function(t){return""+t.join("")+""}},{key:"renderTitle",value:function(t,e,i,n,s,o){var a,r,l=void 0,h=void 0,d=void 0,u=this.options,c=i===u.minYear,p=i===u.maxYear,v='
      ',f=!0,m=!0;for(d=[],l=0;l<12;l++)d.push('");for(a='",g.isArray(u.yearRange)?(l=u.yearRange[0],h=u.yearRange[1]+1):(l=i-u.yearRange,h=1+i+u.yearRange),d=[];l=u.minYear&&d.push('");r='";v+='',v+='
      ',u.showMonthAfterYear?v+=r+a:v+=a+r,v+="
      ",c&&(0===n||u.minMonth>=n)&&(f=!1),p&&(11===n||u.maxMonth<=n)&&(m=!1);return(v+='')+"
      "}},{key:"draw",value:function(t){if(this.isOpen||t){var e,i=this.options,n=i.minYear,s=i.maxYear,o=i.minMonth,a=i.maxMonth,r="";this._y<=n&&(this._y=n,!isNaN(o)&&this._m=s&&(this._y=s,!isNaN(a)&&this._m>a&&(this._m=a)),e="datepicker-title-"+Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,2);for(var l=0;l<1;l++)this._renderDateDisplay(),r+=this.renderTitle(this,l,this.calendars[l].year,this.calendars[l].month,this.calendars[0].year,e)+this.render(this.calendars[l].year,this.calendars[l].month,e);this.destroySelects(),this.calendarEl.innerHTML=r;var h=this.calendarEl.querySelector(".orig-select-year"),d=this.calendarEl.querySelector(".orig-select-month");M.FormSelect.init(h,{classes:"select-year",dropdownOptions:{container:document.body,constrainWidth:!1}}),M.FormSelect.init(d,{classes:"select-month",dropdownOptions:{container:document.body,constrainWidth:!1}}),h.addEventListener("change",this._handleYearChange.bind(this)),d.addEventListener("change",this._handleMonthChange.bind(this)),"function"==typeof this.options.onDraw&&this.options.onDraw(this)}}},{key:"_setupEventHandlers",value:function(){this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),this._handleInputChangeBound=this._handleInputChange.bind(this),this._handleCalendarClickBound=this._handleCalendarClick.bind(this),this._finishSelectionBound=this._finishSelection.bind(this),this._handleMonthChange=this._handleMonthChange.bind(this),this._closeBound=this.close.bind(this),this.el.addEventListener("click",this._handleInputClickBound),this.el.addEventListener("keydown",this._handleInputKeydownBound),this.el.addEventListener("change",this._handleInputChangeBound),this.calendarEl.addEventListener("click",this._handleCalendarClickBound),this.doneBtn.addEventListener("click",this._finishSelectionBound),this.cancelBtn.addEventListener("click",this._closeBound),this.options.showClearBtn&&(this._handleClearClickBound=this._handleClearClick.bind(this),this.clearBtn.addEventListener("click",this._handleClearClickBound))}},{key:"_setupVariables",value:function(){var e=this;this.$modalEl=g(B._template),this.modalEl=this.$modalEl[0],this.calendarEl=this.modalEl.querySelector(".datepicker-calendar"),this.yearTextEl=this.modalEl.querySelector(".year-text"),this.dateTextEl=this.modalEl.querySelector(".date-text"),this.options.showClearBtn&&(this.clearBtn=this.modalEl.querySelector(".datepicker-clear")),this.doneBtn=this.modalEl.querySelector(".datepicker-done"),this.cancelBtn=this.modalEl.querySelector(".datepicker-cancel"),this.formats={d:function(){return e.date.getDate()},dd:function(){var t=e.date.getDate();return(t<10?"0":"")+t},ddd:function(){return e.options.i18n.weekdaysShort[e.date.getDay()]},dddd:function(){return e.options.i18n.weekdays[e.date.getDay()]},m:function(){return e.date.getMonth()+1},mm:function(){var t=e.date.getMonth()+1;return(t<10?"0":"")+t},mmm:function(){return e.options.i18n.monthsShort[e.date.getMonth()]},mmmm:function(){return e.options.i18n.months[e.date.getMonth()]},yy:function(){return(""+e.date.getFullYear()).slice(2)},yyyy:function(){return e.date.getFullYear()}}}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleInputClickBound),this.el.removeEventListener("keydown",this._handleInputKeydownBound),this.el.removeEventListener("change",this._handleInputChangeBound),this.calendarEl.removeEventListener("click",this._handleCalendarClickBound)}},{key:"_handleInputClick",value:function(){this.open()}},{key:"_handleInputKeydown",value:function(t){t.which===M.keys.ENTER&&(t.preventDefault(),this.open())}},{key:"_handleCalendarClick",value:function(t){if(this.isOpen){var e=g(t.target);e.hasClass("is-disabled")||(!e.hasClass("datepicker-day-button")||e.hasClass("is-empty")||e.parent().hasClass("is-disabled")?e.closest(".month-prev").length?this.prevMonth():e.closest(".month-next").length&&this.nextMonth():(this.setDate(new Date(t.target.getAttribute("data-year"),t.target.getAttribute("data-month"),t.target.getAttribute("data-day"))),this.options.autoClose&&this._finishSelection()))}}},{key:"_handleClearClick",value:function(){this.date=null,this.setInputValue(),this.close()}},{key:"_handleMonthChange",value:function(t){this.gotoMonth(t.target.value)}},{key:"_handleYearChange",value:function(t){this.gotoYear(t.target.value)}},{key:"gotoMonth",value:function(t){isNaN(t)||(this.calendars[0].month=parseInt(t,10),this.adjustCalendars())}},{key:"gotoYear",value:function(t){isNaN(t)||(this.calendars[0].year=parseInt(t,10),this.adjustCalendars())}},{key:"_handleInputChange",value:function(t){var e=void 0;t.firedBy!==this&&(e=this.options.parse?this.options.parse(this.el.value,this.options.format):new Date(Date.parse(this.el.value)),B._isDate(e)&&this.setDate(e))}},{key:"renderDayName",value:function(t,e,i){for(e+=t.firstDay;7<=e;)e-=7;return i?t.i18n.weekdaysAbbrev[e]:t.i18n.weekdays[e]}},{key:"_finishSelection",value:function(){this.setInputValue(),this.close()}},{key:"open",value:function(){if(!this.isOpen)return this.isOpen=!0,"function"==typeof this.options.onOpen&&this.options.onOpen.call(this),this.draw(),this.modal.open(),this}},{key:"close",value:function(){if(this.isOpen)return this.isOpen=!1,"function"==typeof this.options.onClose&&this.options.onClose.call(this),this.modal.close(),this}}],[{key:"init",value:function(t,e){return _get(B.__proto__||Object.getPrototypeOf(B),"init",this).call(this,this,t,e)}},{key:"_isDate",value:function(t){return/Date/.test(Object.prototype.toString.call(t))&&!isNaN(t.getTime())}},{key:"_isWeekend",value:function(t){var e=t.getDay();return 0===e||6===e}},{key:"_setToStartOfDay",value:function(t){B._isDate(t)&&t.setHours(0,0,0,0)}},{key:"_getDaysInMonth",value:function(t,e){return[31,B._isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]}},{key:"_isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"_compareDates",value:function(t,e){return t.getTime()===e.getTime()}},{key:"_setToStartOfDay",value:function(t){B._isDate(t)&&t.setHours(0,0,0,0)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Datepicker}},{key:"defaults",get:function(){return e}}]),B}();t._template=['"].join(""),M.Datepicker=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"datepicker","M_Datepicker")}(cash),function(h){"use strict";var e={dialRadius:135,outerRadius:105,innerRadius:70,tickRadius:20,duration:350,container:null,defaultTime:"now",fromNow:0,showClearBtn:!1,i18n:{cancel:"Cancel",clear:"Clear",done:"Ok"},autoClose:!1,twelveHour:!0,vibrate:!0,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,onSelect:null},t=function(t){function f(t,e){_classCallCheck(this,f);var i=_possibleConstructorReturn(this,(f.__proto__||Object.getPrototypeOf(f)).call(this,f,t,e));return(i.el.M_Timepicker=i).options=h.extend({},f.defaults,e),i.id=M.guid(),i._insertHTMLIntoDOM(),i._setupModal(),i._setupVariables(),i._setupEventHandlers(),i._clockSetup(),i._pickerSetup(),i}return _inherits(f,Component),_createClass(f,[{key:"destroy",value:function(){this._removeEventHandlers(),this.modal.destroy(),h(this.modalEl).remove(),this.el.M_Timepicker=void 0}},{key:"_setupEventHandlers",value:function(){this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),this._handleClockClickStartBound=this._handleClockClickStart.bind(this),this._handleDocumentClickMoveBound=this._handleDocumentClickMove.bind(this),this._handleDocumentClickEndBound=this._handleDocumentClickEnd.bind(this),this.el.addEventListener("click",this._handleInputClickBound),this.el.addEventListener("keydown",this._handleInputKeydownBound),this.plate.addEventListener("mousedown",this._handleClockClickStartBound),this.plate.addEventListener("touchstart",this._handleClockClickStartBound),h(this.spanHours).on("click",this.showView.bind(this,"hours")),h(this.spanMinutes).on("click",this.showView.bind(this,"minutes"))}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleInputClickBound),this.el.removeEventListener("keydown",this._handleInputKeydownBound)}},{key:"_handleInputClick",value:function(){this.open()}},{key:"_handleInputKeydown",value:function(t){t.which===M.keys.ENTER&&(t.preventDefault(),this.open())}},{key:"_handleClockClickStart",value:function(t){t.preventDefault();var e=this.plate.getBoundingClientRect(),i=e.left,n=e.top;this.x0=i+this.options.dialRadius,this.y0=n+this.options.dialRadius,this.moved=!1;var s=f._Pos(t);this.dx=s.x-this.x0,this.dy=s.y-this.y0,this.setHand(this.dx,this.dy,!1),document.addEventListener("mousemove",this._handleDocumentClickMoveBound),document.addEventListener("touchmove",this._handleDocumentClickMoveBound),document.addEventListener("mouseup",this._handleDocumentClickEndBound),document.addEventListener("touchend",this._handleDocumentClickEndBound)}},{key:"_handleDocumentClickMove",value:function(t){t.preventDefault();var e=f._Pos(t),i=e.x-this.x0,n=e.y-this.y0;this.moved=!0,this.setHand(i,n,!1,!0)}},{key:"_handleDocumentClickEnd",value:function(t){var e=this;t.preventDefault(),document.removeEventListener("mouseup",this._handleDocumentClickEndBound),document.removeEventListener("touchend",this._handleDocumentClickEndBound);var i=f._Pos(t),n=i.x-this.x0,s=i.y-this.y0;this.moved&&n===this.dx&&s===this.dy&&this.setHand(n,s),"hours"===this.currentView?this.showView("minutes",this.options.duration/2):this.options.autoClose&&(h(this.minutesView).addClass("timepicker-dial-out"),setTimeout(function(){e.done()},this.options.duration/2)),"function"==typeof this.options.onSelect&&this.options.onSelect.call(this,this.hours,this.minutes),document.removeEventListener("mousemove",this._handleDocumentClickMoveBound),document.removeEventListener("touchmove",this._handleDocumentClickMoveBound)}},{key:"_insertHTMLIntoDOM",value:function(){this.$modalEl=h(f._template),this.modalEl=this.$modalEl[0],this.modalEl.id="modal-"+this.id;var t=document.querySelector(this.options.container);this.options.container&&t?this.$modalEl.appendTo(t):this.$modalEl.insertBefore(this.el)}},{key:"_setupModal",value:function(){var t=this;this.modal=M.Modal.init(this.modalEl,{onOpenStart:this.options.onOpenStart,onOpenEnd:this.options.onOpenEnd,onCloseStart:this.options.onCloseStart,onCloseEnd:function(){"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t),t.isOpen=!1}})}},{key:"_setupVariables",value:function(){this.currentView="hours",this.vibrate=navigator.vibrate?"vibrate":navigator.webkitVibrate?"webkitVibrate":null,this._canvas=this.modalEl.querySelector(".timepicker-canvas"),this.plate=this.modalEl.querySelector(".timepicker-plate"),this.hoursView=this.modalEl.querySelector(".timepicker-hours"),this.minutesView=this.modalEl.querySelector(".timepicker-minutes"),this.spanHours=this.modalEl.querySelector(".timepicker-span-hours"),this.spanMinutes=this.modalEl.querySelector(".timepicker-span-minutes"),this.spanAmPm=this.modalEl.querySelector(".timepicker-span-am-pm"),this.footer=this.modalEl.querySelector(".timepicker-footer"),this.amOrPm="PM"}},{key:"_pickerSetup",value:function(){var t=h('").appendTo(this.footer).on("click",this.clear.bind(this));this.options.showClearBtn&&t.css({visibility:""});var e=h('
      ');h('").appendTo(e).on("click",this.close.bind(this)),h('").appendTo(e).on("click",this.done.bind(this)),e.appendTo(this.footer)}},{key:"_clockSetup",value:function(){this.options.twelveHour&&(this.$amBtn=h('
      AM
      '),this.$pmBtn=h('
      PM
      '),this.$amBtn.on("click",this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm),this.$pmBtn.on("click",this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm)),this._buildHoursView(),this._buildMinutesView(),this._buildSVGClock()}},{key:"_buildSVGClock",value:function(){var t=this.options.dialRadius,e=this.options.tickRadius,i=2*t,n=f._createSVGEl("svg");n.setAttribute("class","timepicker-svg"),n.setAttribute("width",i),n.setAttribute("height",i);var s=f._createSVGEl("g");s.setAttribute("transform","translate("+t+","+t+")");var o=f._createSVGEl("circle");o.setAttribute("class","timepicker-canvas-bearing"),o.setAttribute("cx",0),o.setAttribute("cy",0),o.setAttribute("r",4);var a=f._createSVGEl("line");a.setAttribute("x1",0),a.setAttribute("y1",0);var r=f._createSVGEl("circle");r.setAttribute("class","timepicker-canvas-bg"),r.setAttribute("r",e),s.appendChild(a),s.appendChild(r),s.appendChild(o),n.appendChild(s),this._canvas.appendChild(n),this.hand=a,this.bg=r,this.bearing=o,this.g=s}},{key:"_buildHoursView",value:function(){var t=h('
      ');if(this.options.twelveHour)for(var e=1;e<13;e+=1){var i=t.clone(),n=e/6*Math.PI,s=this.options.outerRadius;i.css({left:this.options.dialRadius+Math.sin(n)*s-this.options.tickRadius+"px",top:this.options.dialRadius-Math.cos(n)*s-this.options.tickRadius+"px"}),i.html(0===e?"00":e),this.hoursView.appendChild(i[0])}else for(var o=0;o<24;o+=1){var a=t.clone(),r=o/6*Math.PI,l=0'),e=0;e<60;e+=5){var i=t.clone(),n=e/30*Math.PI;i.css({left:this.options.dialRadius+Math.sin(n)*this.options.outerRadius-this.options.tickRadius+"px",top:this.options.dialRadius-Math.cos(n)*this.options.outerRadius-this.options.tickRadius+"px"}),i.html(f._addLeadingZero(e)),this.minutesView.appendChild(i[0])}}},{key:"_handleAmPmClick",value:function(t){var e=h(t.target);this.amOrPm=e.hasClass("am-btn")?"AM":"PM",this._updateAmPmView()}},{key:"_updateAmPmView",value:function(){this.options.twelveHour&&(this.$amBtn.toggleClass("text-primary","AM"===this.amOrPm),this.$pmBtn.toggleClass("text-primary","PM"===this.amOrPm))}},{key:"_updateTimeFromInput",value:function(){var t=((this.el.value||this.options.defaultTime||"")+"").split(":");if(this.options.twelveHour&&void 0!==t[1]&&(0','",""].join(""),M.Timepicker=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"timepicker","M_Timepicker")}(cash),function(s){"use strict";var e={},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_CharacterCounter=i).options=s.extend({},n.defaults,e),i.isInvalid=!1,i.isValidLength=!1,i._setupCounter(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.CharacterCounter=void 0,this._removeCounter()}},{key:"_setupEventHandlers",value:function(){this._handleUpdateCounterBound=this.updateCounter.bind(this),this.el.addEventListener("focus",this._handleUpdateCounterBound,!0),this.el.addEventListener("input",this._handleUpdateCounterBound,!0)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("focus",this._handleUpdateCounterBound,!0),this.el.removeEventListener("input",this._handleUpdateCounterBound,!0)}},{key:"_setupCounter",value:function(){this.counterEl=document.createElement("span"),s(this.counterEl).addClass("character-counter").css({float:"right","font-size":"12px",height:1}),this.$el.parent().append(this.counterEl)}},{key:"_removeCounter",value:function(){s(this.counterEl).remove()}},{key:"updateCounter",value:function(){var t=+this.$el.attr("data-length"),e=this.el.value.length;this.isValidLength=e<=t;var i=e;t&&(i+="/"+t,this._validateInput()),s(this.counterEl).html(i)}},{key:"_validateInput",value:function(){this.isValidLength&&this.isInvalid?(this.isInvalid=!1,this.$el.removeClass("invalid")):this.isValidLength||this.isInvalid||(this.isInvalid=!0,this.$el.removeClass("valid"),this.$el.addClass("invalid"))}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_CharacterCounter}},{key:"defaults",get:function(){return e}}]),n}();M.CharacterCounter=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"characterCounter","M_CharacterCounter")}(cash),function(b){"use strict";var e={duration:200,dist:-100,shift:0,padding:0,numVisible:5,fullWidth:!1,indicators:!1,noWrap:!1,onCycleTo:null},t=function(t){function i(t,e){_classCallCheck(this,i);var n=_possibleConstructorReturn(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,i,t,e));return(n.el.M_Carousel=n).options=b.extend({},i.defaults,e),n.hasMultipleSlides=1'),n.$el.find(".carousel-item").each(function(t,e){if(n.images.push(t),n.showIndicators){var i=b('
    • ');0===e&&i[0].classList.add("active"),n.$indicators.append(i)}}),n.showIndicators&&n.$el.append(n.$indicators),n.count=n.images.length,n.options.numVisible=Math.min(n.count,n.options.numVisible),n.xform="transform",["webkit","Moz","O","ms"].every(function(t){var e=t+"Transform";return void 0===document.body.style[e]||(n.xform=e,!1)}),n._setupEventHandlers(),n._scroll(n.offset),n}return _inherits(i,Component),_createClass(i,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_Carousel=void 0}},{key:"_setupEventHandlers",value:function(){var i=this;this._handleCarouselTapBound=this._handleCarouselTap.bind(this),this._handleCarouselDragBound=this._handleCarouselDrag.bind(this),this._handleCarouselReleaseBound=this._handleCarouselRelease.bind(this),this._handleCarouselClickBound=this._handleCarouselClick.bind(this),void 0!==window.ontouchstart&&(this.el.addEventListener("touchstart",this._handleCarouselTapBound),this.el.addEventListener("touchmove",this._handleCarouselDragBound),this.el.addEventListener("touchend",this._handleCarouselReleaseBound)),this.el.addEventListener("mousedown",this._handleCarouselTapBound),this.el.addEventListener("mousemove",this._handleCarouselDragBound),this.el.addEventListener("mouseup",this._handleCarouselReleaseBound),this.el.addEventListener("mouseleave",this._handleCarouselReleaseBound),this.el.addEventListener("click",this._handleCarouselClickBound),this.showIndicators&&this.$indicators&&(this._handleIndicatorClickBound=this._handleIndicatorClick.bind(this),this.$indicators.find(".indicator-item").each(function(t,e){t.addEventListener("click",i._handleIndicatorClickBound)}));var t=M.throttle(this._handleResize,200);this._handleThrottledResizeBound=t.bind(this),window.addEventListener("resize",this._handleThrottledResizeBound)}},{key:"_removeEventHandlers",value:function(){var i=this;void 0!==window.ontouchstart&&(this.el.removeEventListener("touchstart",this._handleCarouselTapBound),this.el.removeEventListener("touchmove",this._handleCarouselDragBound),this.el.removeEventListener("touchend",this._handleCarouselReleaseBound)),this.el.removeEventListener("mousedown",this._handleCarouselTapBound),this.el.removeEventListener("mousemove",this._handleCarouselDragBound),this.el.removeEventListener("mouseup",this._handleCarouselReleaseBound),this.el.removeEventListener("mouseleave",this._handleCarouselReleaseBound),this.el.removeEventListener("click",this._handleCarouselClickBound),this.showIndicators&&this.$indicators&&this.$indicators.find(".indicator-item").each(function(t,e){t.removeEventListener("click",i._handleIndicatorClickBound)}),window.removeEventListener("resize",this._handleThrottledResizeBound)}},{key:"_handleCarouselTap",value:function(t){"mousedown"===t.type&&b(t.target).is("img")&&t.preventDefault(),this.pressed=!0,this.dragged=!1,this.verticalDragged=!1,this.reference=this._xpos(t),this.referenceY=this._ypos(t),this.velocity=this.amplitude=0,this.frame=this.offset,this.timestamp=Date.now(),clearInterval(this.ticker),this.ticker=setInterval(this._trackBound,100)}},{key:"_handleCarouselDrag",value:function(t){var e=void 0,i=void 0,n=void 0;if(this.pressed)if(e=this._xpos(t),i=this._ypos(t),n=this.reference-e,Math.abs(this.referenceY-i)<30&&!this.verticalDragged)(2=this.dim*(this.count-1)?this.target=this.dim*(this.count-1):this.target<0&&(this.target=0)),this.amplitude=this.target-this.offset,this.timestamp=Date.now(),requestAnimationFrame(this._autoScrollBound),this.dragged&&(t.preventDefault(),t.stopPropagation()),!1}},{key:"_handleCarouselClick",value:function(t){if(this.dragged)return t.preventDefault(),t.stopPropagation(),!1;if(!this.options.fullWidth){var e=b(t.target).closest(".carousel-item").index();0!==this._wrap(this.center)-e&&(t.preventDefault(),t.stopPropagation()),this._cycleTo(e)}}},{key:"_handleIndicatorClick",value:function(t){t.stopPropagation();var e=b(t.target).closest(".indicator-item");e.length&&this._cycleTo(e.index())}},{key:"_handleResize",value:function(t){this.options.fullWidth?(this.itemWidth=this.$el.find(".carousel-item").first().innerWidth(),this.imageHeight=this.$el.find(".carousel-item.active").height(),this.dim=2*this.itemWidth+this.options.padding,this.offset=2*this.center*this.itemWidth,this.target=this.offset,this._setCarouselHeight(!0)):this._scroll()}},{key:"_setCarouselHeight",value:function(t){var i=this,e=this.$el.find(".carousel-item.active").length?this.$el.find(".carousel-item.active").first():this.$el.find(".carousel-item").first(),n=e.find("img").first();if(n.length)if(n[0].complete){var s=n.height();if(0=this.count?t%this.count:t<0?this._wrap(this.count+t%this.count):t}},{key:"_track",value:function(){var t,e,i,n;e=(t=Date.now())-this.timestamp,this.timestamp=t,i=this.offset-this.frame,this.frame=this.offset,n=1e3*i/(1+e),this.velocity=.8*n+.2*this.velocity}},{key:"_autoScroll",value:function(){var t=void 0,e=void 0;this.amplitude&&(t=Date.now()-this.timestamp,2<(e=this.amplitude*Math.exp(-t/this.options.duration))||e<-2?(this._scroll(this.target-e),requestAnimationFrame(this._autoScrollBound)):this._scroll(this.target))}},{key:"_scroll",value:function(t){var e=this;this.$el.hasClass("scrolling")||this.el.classList.add("scrolling"),null!=this.scrollingTimeout&&window.clearTimeout(this.scrollingTimeout),this.scrollingTimeout=window.setTimeout(function(){e.$el.removeClass("scrolling")},this.options.duration);var i,n,s,o,a=void 0,r=void 0,l=void 0,h=void 0,d=void 0,u=void 0,c=this.center,p=1/this.options.numVisible;if(this.offset="number"==typeof t?t:this.offset,this.center=Math.floor((this.offset+this.dim/2)/this.dim),o=-(s=(n=this.offset-this.center*this.dim)<0?1:-1)*n*2/this.dim,i=this.count>>1,this.options.fullWidth?(l="translateX(0)",u=1):(l="translateX("+(this.el.clientWidth-this.itemWidth)/2+"px) ",l+="translateY("+(this.el.clientHeight-this.itemHeight)/2+"px)",u=1-p*o),this.showIndicators){var v=this.center%this.count,f=this.$indicators.find(".indicator-item.active");f.index()!==v&&(f.removeClass("active"),this.$indicators.find(".indicator-item").eq(v)[0].classList.add("active"))}if(!this.noWrap||0<=this.center&&this.center=this.count||e<0){if(this.noWrap)return;e=this._wrap(e)}this._cycleTo(e)}},{key:"prev",value:function(t){(void 0===t||isNaN(t))&&(t=1);var e=this.center-t;if(e>=this.count||e<0){if(this.noWrap)return;e=this._wrap(e)}this._cycleTo(e)}},{key:"set",value:function(t,e){if((void 0===t||isNaN(t))&&(t=0),t>this.count||t<0){if(this.noWrap)return;t=this._wrap(t)}this._cycleTo(t,e)}}],[{key:"init",value:function(t,e){return _get(i.__proto__||Object.getPrototypeOf(i),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Carousel}},{key:"defaults",get:function(){return e}}]),i}();M.Carousel=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"carousel","M_Carousel")}(cash),function(S){"use strict";var e={onOpen:void 0,onClose:void 0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_TapTarget=i).options=S.extend({},n.defaults,e),i.isOpen=!1,i.$origin=S("#"+i.$el.attr("data-target")),i._setup(),i._calculatePositioning(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.TapTarget=void 0}},{key:"_setupEventHandlers",value:function(){this._handleDocumentClickBound=this._handleDocumentClick.bind(this),this._handleTargetClickBound=this._handleTargetClick.bind(this),this._handleOriginClickBound=this._handleOriginClick.bind(this),this.el.addEventListener("click",this._handleTargetClickBound),this.originEl.addEventListener("click",this._handleOriginClickBound);var t=M.throttle(this._handleResize,200);this._handleThrottledResizeBound=t.bind(this),window.addEventListener("resize",this._handleThrottledResizeBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleTargetClickBound),this.originEl.removeEventListener("click",this._handleOriginClickBound),window.removeEventListener("resize",this._handleThrottledResizeBound)}},{key:"_handleTargetClick",value:function(t){this.open()}},{key:"_handleOriginClick",value:function(t){this.close()}},{key:"_handleResize",value:function(t){this._calculatePositioning()}},{key:"_handleDocumentClick",value:function(t){S(t.target).closest(".tap-target-wrapper").length||(this.close(),t.preventDefault(),t.stopPropagation())}},{key:"_setup",value:function(){this.wrapper=this.$el.parent()[0],this.waveEl=S(this.wrapper).find(".tap-target-wave")[0],this.originEl=S(this.wrapper).find(".tap-target-origin")[0],this.contentEl=this.$el.find(".tap-target-content")[0],S(this.wrapper).hasClass(".tap-target-wrapper")||(this.wrapper=document.createElement("div"),this.wrapper.classList.add("tap-target-wrapper"),this.$el.before(S(this.wrapper)),this.wrapper.append(this.el)),this.contentEl||(this.contentEl=document.createElement("div"),this.contentEl.classList.add("tap-target-content"),this.$el.append(this.contentEl)),this.waveEl||(this.waveEl=document.createElement("div"),this.waveEl.classList.add("tap-target-wave"),this.originEl||(this.originEl=this.$origin.clone(!0,!0),this.originEl.addClass("tap-target-origin"),this.originEl.removeAttr("id"),this.originEl.removeAttr("style"),this.originEl=this.originEl[0],this.waveEl.append(this.originEl)),this.wrapper.append(this.waveEl))}},{key:"_calculatePositioning",value:function(){var t="fixed"===this.$origin.css("position");if(!t)for(var e=this.$origin.parents(),i=0;i'+t.getAttribute("label")+"")[0]),i.each(function(t){var e=n._appendOptionWithIcon(n.$el,t,"optgroup-option");n._addOptionToValueDict(t,e)})}}),this.$el.after(this.dropdownOptions),this.input=document.createElement("input"),d(this.input).addClass("select-dropdown dropdown-trigger"),this.input.setAttribute("type","text"),this.input.setAttribute("readonly","true"),this.input.setAttribute("data-target",this.dropdownOptions.id),this.el.disabled&&d(this.input).prop("disabled","true"),this.$el.before(this.input),this._setValueToInput();var t=d('');if(this.$el.before(t[0]),!this.el.disabled){var e=d.extend({},this.options.dropdownOptions);e.onOpenEnd=function(t){var e=d(n.dropdownOptions).find(".selected").first();if(e.length&&(M.keyDown=!0,n.dropdown.focusedIndex=e.index(),n.dropdown._focusFocusedItem(),M.keyDown=!1,n.dropdown.isScrollable)){var i=e[0].getBoundingClientRect().top-n.dropdownOptions.getBoundingClientRect().top;i-=n.dropdownOptions.clientHeight/2,n.dropdownOptions.scrollTop=i}},this.isMultiple&&(e.closeOnClick=!1),this.dropdown=M.Dropdown.init(this.input,e)}this._setSelectedStates()}},{key:"_addOptionToValueDict",value:function(t,e){var i=Object.keys(this._valueDict).length,n=this.dropdownOptions.id+i,s={};e.id=n,s.el=t,s.optionEl=e,this._valueDict[n]=s}},{key:"_removeDropdown",value:function(){d(this.wrapper).find(".caret").remove(),d(this.input).remove(),d(this.dropdownOptions).remove(),d(this.wrapper).before(this.$el),d(this.wrapper).remove()}},{key:"_appendOptionWithIcon",value:function(t,e,i){var n=e.disabled?"disabled ":"",s="optgroup-option"===i?"optgroup-option ":"",o=this.isMultiple?'":e.innerHTML,a=d("
    • "),r=d("");r.html(o),a.addClass(n+" "+s),a.append(r);var l=e.getAttribute("data-icon");if(l){var h=d('');a.prepend(h)}return d(this.dropdownOptions).append(a[0]),a[0]}},{key:"_toggleEntryFromArray",value:function(t){var e=!this._keysSelected.hasOwnProperty(t),i=d(this._valueDict[t].optionEl);return e?this._keysSelected[t]=!0:delete this._keysSelected[t],i.toggleClass("selected",e),i.find('input[type="checkbox"]').prop("checked",e),i.prop("selected",e),e}},{key:"_setValueToInput",value:function(){var i=[];if(this.$el.find("option").each(function(t){if(d(t).prop("selected")){var e=d(t).text();i.push(e)}}),!i.length){var t=this.$el.find("option:disabled").eq(0);t.length&&""===t[0].value&&i.push(t.text())}this.input.value=i.join(", ")}},{key:"_setSelectedStates",value:function(){for(var t in this._keysSelected={},this._valueDict){var e=this._valueDict[t],i=d(e.el).prop("selected");d(e.optionEl).find('input[type="checkbox"]').prop("checked",i),i?(this._activateOption(d(this.dropdownOptions),d(e.optionEl)),this._keysSelected[t]=!0):d(e.optionEl).removeClass("selected")}}},{key:"_activateOption",value:function(t,e){e&&(this.isMultiple||t.find("li.selected").removeClass("selected"),d(e).addClass("selected"))}},{key:"getSelectedValues",value:function(){var t=[];for(var e in this._keysSelected)t.push(this._valueDict[e].el.value);return t}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_FormSelect}},{key:"defaults",get:function(){return e}}]),n}();M.FormSelect=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"formSelect","M_FormSelect")}(cash),function(s,e){"use strict";var i={},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Range=i).options=s.extend({},n.defaults,e),i._mousedown=!1,i._setupThumb(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._removeThumb(),this.el.M_Range=void 0}},{key:"_setupEventHandlers",value:function(){this._handleRangeChangeBound=this._handleRangeChange.bind(this),this._handleRangeMousedownTouchstartBound=this._handleRangeMousedownTouchstart.bind(this),this._handleRangeInputMousemoveTouchmoveBound=this._handleRangeInputMousemoveTouchmove.bind(this),this._handleRangeMouseupTouchendBound=this._handleRangeMouseupTouchend.bind(this),this._handleRangeBlurMouseoutTouchleaveBound=this._handleRangeBlurMouseoutTouchleave.bind(this),this.el.addEventListener("change",this._handleRangeChangeBound),this.el.addEventListener("mousedown",this._handleRangeMousedownTouchstartBound),this.el.addEventListener("touchstart",this._handleRangeMousedownTouchstartBound),this.el.addEventListener("input",this._handleRangeInputMousemoveTouchmoveBound),this.el.addEventListener("mousemove",this._handleRangeInputMousemoveTouchmoveBound),this.el.addEventListener("touchmove",this._handleRangeInputMousemoveTouchmoveBound),this.el.addEventListener("mouseup",this._handleRangeMouseupTouchendBound),this.el.addEventListener("touchend",this._handleRangeMouseupTouchendBound),this.el.addEventListener("blur",this._handleRangeBlurMouseoutTouchleaveBound),this.el.addEventListener("mouseout",this._handleRangeBlurMouseoutTouchleaveBound),this.el.addEventListener("touchleave",this._handleRangeBlurMouseoutTouchleaveBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("change",this._handleRangeChangeBound),this.el.removeEventListener("mousedown",this._handleRangeMousedownTouchstartBound),this.el.removeEventListener("touchstart",this._handleRangeMousedownTouchstartBound),this.el.removeEventListener("input",this._handleRangeInputMousemoveTouchmoveBound),this.el.removeEventListener("mousemove",this._handleRangeInputMousemoveTouchmoveBound),this.el.removeEventListener("touchmove",this._handleRangeInputMousemoveTouchmoveBound),this.el.removeEventListener("mouseup",this._handleRangeMouseupTouchendBound),this.el.removeEventListener("touchend",this._handleRangeMouseupTouchendBound),this.el.removeEventListener("blur",this._handleRangeBlurMouseoutTouchleaveBound),this.el.removeEventListener("mouseout",this._handleRangeBlurMouseoutTouchleaveBound),this.el.removeEventListener("touchleave",this._handleRangeBlurMouseoutTouchleaveBound)}},{key:"_handleRangeChange",value:function(){s(this.value).html(this.$el.val()),s(this.thumb).hasClass("active")||this._showRangeBubble();var t=this._calcRangeOffset();s(this.thumb).addClass("active").css("left",t+"px")}},{key:"_handleRangeMousedownTouchstart",value:function(t){if(s(this.value).html(this.$el.val()),this._mousedown=!0,this.$el.addClass("active"),s(this.thumb).hasClass("active")||this._showRangeBubble(),"input"!==t.type){var e=this._calcRangeOffset();s(this.thumb).addClass("active").css("left",e+"px")}}},{key:"_handleRangeInputMousemoveTouchmove",value:function(){if(this._mousedown){s(this.thumb).hasClass("active")||this._showRangeBubble();var t=this._calcRangeOffset();s(this.thumb).addClass("active").css("left",t+"px"),s(this.value).html(this.$el.val())}}},{key:"_handleRangeMouseupTouchend",value:function(){this._mousedown=!1,this.$el.removeClass("active")}},{key:"_handleRangeBlurMouseoutTouchleave",value:function(){if(!this._mousedown){var t=7+parseInt(this.$el.css("padding-left"))+"px";s(this.thumb).hasClass("active")&&(e.remove(this.thumb),e({targets:this.thumb,height:0,width:0,top:10,easing:"easeOutQuad",marginLeft:t,duration:100})),s(this.thumb).removeClass("active")}}},{key:"_setupThumb",value:function(){this.thumb=document.createElement("span"),this.value=document.createElement("span"),s(this.thumb).addClass("thumb"),s(this.value).addClass("value"),s(this.thumb).append(this.value),this.$el.after(this.thumb)}},{key:"_removeThumb",value:function(){s(this.thumb).remove()}},{key:"_showRangeBubble",value:function(){var t=-7+parseInt(s(this.thumb).parent().css("padding-left"))+"px";e.remove(this.thumb),e({targets:this.thumb,height:30,width:30,top:-30,marginLeft:t,duration:300,easing:"easeOutQuint"})}},{key:"_calcRangeOffset",value:function(){var t=this.$el.width()-15,e=parseFloat(this.$el.attr("max"))||100,i=parseFloat(this.$el.attr("min"))||0;return(parseFloat(this.$el.val())-i)/(e-i)*t}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Range}},{key:"defaults",get:function(){return i}}]),n}();M.Range=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"range","M_Range"),t.init(s("input[type=range]"))}(cash,M.anime); \ No newline at end of file diff --git a/css/materialize-src/js/buttons.js b/css/materialize-src/js/buttons.js deleted file mode 100644 index fb2ba28..0000000 --- a/css/materialize-src/js/buttons.js +++ /dev/null @@ -1,354 +0,0 @@ -(function($, anim) { - 'use strict'; - - let _defaults = { - direction: 'top', - hoverEnabled: true, - toolbarEnabled: false - }; - - $.fn.reverse = [].reverse; - - /** - * @class - * - */ - class FloatingActionButton extends Component { - /** - * Construct FloatingActionButton instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - constructor(el, options) { - super(FloatingActionButton, el, options); - - this.el.M_FloatingActionButton = this; - - /** - * Options for the fab - * @member FloatingActionButton#options - * @prop {Boolean} [direction] - Direction fab menu opens - * @prop {Boolean} [hoverEnabled=true] - Enable hover vs click - * @prop {Boolean} [toolbarEnabled=false] - Enable toolbar transition - */ - this.options = $.extend({}, FloatingActionButton.defaults, options); - - this.isOpen = false; - this.$anchor = this.$el.children('a').first(); - this.$menu = this.$el.children('ul').first(); - this.$floatingBtns = this.$el.find('ul .btn-floating'); - this.$floatingBtnsReverse = this.$el.find('ul .btn-floating').reverse(); - this.offsetY = 0; - this.offsetX = 0; - - this.$el.addClass(`direction-${this.options.direction}`); - if (this.options.direction === 'top') { - this.offsetY = 40; - } else if (this.options.direction === 'right') { - this.offsetX = -40; - } else if (this.options.direction === 'bottom') { - this.offsetY = -40; - } else { - this.offsetX = 40; - } - this._setupEventHandlers(); - } - - static get defaults() { - return _defaults; - } - - static init(els, options) { - return super.init(this, els, options); - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_FloatingActionButton; - } - - /** - * Teardown component - */ - destroy() { - this._removeEventHandlers(); - this.el.M_FloatingActionButton = undefined; - } - - /** - * Setup Event Handlers - */ - _setupEventHandlers() { - this._handleFABClickBound = this._handleFABClick.bind(this); - this._handleOpenBound = this.open.bind(this); - this._handleCloseBound = this.close.bind(this); - - if (this.options.hoverEnabled && !this.options.toolbarEnabled) { - this.el.addEventListener('mouseenter', this._handleOpenBound); - this.el.addEventListener('mouseleave', this._handleCloseBound); - } else { - this.el.addEventListener('click', this._handleFABClickBound); - } - } - - /** - * Remove Event Handlers - */ - _removeEventHandlers() { - if (this.options.hoverEnabled && !this.options.toolbarEnabled) { - this.el.removeEventListener('mouseenter', this._handleOpenBound); - this.el.removeEventListener('mouseleave', this._handleCloseBound); - } else { - this.el.removeEventListener('click', this._handleFABClickBound); - } - } - - /** - * Handle FAB Click - */ - _handleFABClick() { - if (this.isOpen) { - this.close(); - } else { - this.open(); - } - } - - /** - * Handle Document Click - * @param {Event} e - */ - _handleDocumentClick(e) { - if (!$(e.target).closest(this.$menu).length) { - this.close(); - } - } - - /** - * Open FAB - */ - open() { - if (this.isOpen) { - return; - } - - if (this.options.toolbarEnabled) { - this._animateInToolbar(); - } else { - this._animateInFAB(); - } - this.isOpen = true; - } - - /** - * Close FAB - */ - close() { - if (!this.isOpen) { - return; - } - - if (this.options.toolbarEnabled) { - window.removeEventListener('scroll', this._handleCloseBound, true); - document.body.removeEventListener('click', this._handleDocumentClickBound, true); - this._animateOutToolbar(); - } else { - this._animateOutFAB(); - } - this.isOpen = false; - } - - /** - * Classic FAB Menu open - */ - _animateInFAB() { - this.$el.addClass('active'); - - let time = 0; - this.$floatingBtnsReverse.each((el) => { - anim({ - targets: el, - opacity: 1, - scale: [0.4, 1], - translateY: [this.offsetY, 0], - translateX: [this.offsetX, 0], - duration: 275, - delay: time, - easing: 'easeInOutQuad' - }); - time += 40; - }); - } - - /** - * Classic FAB Menu close - */ - _animateOutFAB() { - this.$floatingBtnsReverse.each((el) => { - anim.remove(el); - anim({ - targets: el, - opacity: 0, - scale: 0.4, - translateY: this.offsetY, - translateX: this.offsetX, - duration: 175, - easing: 'easeOutQuad', - complete: () => { - this.$el.removeClass('active'); - } - }); - }); - } - - /** - * Toolbar transition Menu open - */ - _animateInToolbar() { - let scaleFactor; - let windowWidth = window.innerWidth; - let windowHeight = window.innerHeight; - let btnRect = this.el.getBoundingClientRect(); - let backdrop = $('
      '); - let fabColor = this.$anchor.css('background-color'); - this.$anchor.append(backdrop); - - this.offsetX = btnRect.left - windowWidth / 2 + btnRect.width / 2; - this.offsetY = windowHeight - btnRect.bottom; - scaleFactor = windowWidth / backdrop[0].clientWidth; - this.btnBottom = btnRect.bottom; - this.btnLeft = btnRect.left; - this.btnWidth = btnRect.width; - - // Set initial state - this.$el.addClass('active'); - this.$el.css({ - 'text-align': 'center', - width: '100%', - bottom: 0, - left: 0, - transform: 'translateX(' + this.offsetX + 'px)', - transition: 'none' - }); - this.$anchor.css({ - transform: 'translateY(' + -this.offsetY + 'px)', - transition: 'none' - }); - backdrop.css({ - 'background-color': fabColor - }); - - setTimeout(() => { - this.$el.css({ - transform: '', - transition: - 'transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s' - }); - this.$anchor.css({ - overflow: 'visible', - transform: '', - transition: 'transform .2s' - }); - - setTimeout(() => { - this.$el.css({ - overflow: 'hidden', - 'background-color': fabColor - }); - backdrop.css({ - transform: 'scale(' + scaleFactor + ')', - transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)' - }); - this.$menu - .children('li') - .children('a') - .css({ - opacity: 1 - }); - - // Scroll to close. - this._handleDocumentClickBound = this._handleDocumentClick.bind(this); - window.addEventListener('scroll', this._handleCloseBound, true); - document.body.addEventListener('click', this._handleDocumentClickBound, true); - }, 100); - }, 0); - } - - /** - * Toolbar transition Menu close - */ - _animateOutToolbar() { - let windowWidth = window.innerWidth; - let windowHeight = window.innerHeight; - let backdrop = this.$el.find('.fab-backdrop'); - let fabColor = this.$anchor.css('background-color'); - - this.offsetX = this.btnLeft - windowWidth / 2 + this.btnWidth / 2; - this.offsetY = windowHeight - this.btnBottom; - - // Hide backdrop - this.$el.removeClass('active'); - this.$el.css({ - 'background-color': 'transparent', - transition: 'none' - }); - this.$anchor.css({ - transition: 'none' - }); - backdrop.css({ - transform: 'scale(0)', - 'background-color': fabColor - }); - this.$menu - .children('li') - .children('a') - .css({ - opacity: '' - }); - - setTimeout(() => { - backdrop.remove(); - - // Set initial state. - this.$el.css({ - 'text-align': '', - width: '', - bottom: '', - left: '', - overflow: '', - 'background-color': '', - transform: 'translate3d(' + -this.offsetX + 'px,0,0)' - }); - this.$anchor.css({ - overflow: '', - transform: 'translate3d(0,' + this.offsetY + 'px,0)' - }); - - setTimeout(() => { - this.$el.css({ - transform: 'translate3d(0,0,0)', - transition: 'transform .2s' - }); - this.$anchor.css({ - transform: 'translate3d(0,0,0)', - transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)' - }); - }, 20); - }, 200); - } - } - - M.FloatingActionButton = FloatingActionButton; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper( - FloatingActionButton, - 'floatingActionButton', - 'M_FloatingActionButton' - ); - } -})(cash, M.anime); diff --git a/css/materialize-src/js/cards.js b/css/materialize-src/js/cards.js deleted file mode 100644 index 0c1ad73..0000000 --- a/css/materialize-src/js/cards.js +++ /dev/null @@ -1,40 +0,0 @@ -(function($, anim) { - $(document).on('click', '.card', function(e) { - if ($(this).children('.card-reveal').length) { - var $card = $(e.target).closest('.card'); - if ($card.data('initialOverflow') === undefined) { - $card.data( - 'initialOverflow', - $card.css('overflow') === undefined ? '' : $card.css('overflow') - ); - } - let $cardReveal = $(this).find('.card-reveal'); - if ( - $(e.target).is($('.card-reveal .card-title')) || - $(e.target).is($('.card-reveal .card-title i')) - ) { - // Make Reveal animate down and display none - anim({ - targets: $cardReveal[0], - translateY: 0, - duration: 225, - easing: 'easeInOutQuad', - complete: function(anim) { - let el = anim.animatables[0].target; - $(el).css({ display: 'none' }); - $card.css('overflow', $card.data('initialOverflow')); - } - }); - } else if ($(e.target).is($('.card .activator')) || $(e.target).is($('.card .activator i'))) { - $card.css('overflow', 'hidden'); - $cardReveal.css({ display: 'block' }); - anim({ - targets: $cardReveal[0], - translateY: '-100%', - duration: 300, - easing: 'easeInOutQuad' - }); - } - } - }); -})(cash, M.anime); diff --git a/css/materialize-src/js/carousel.js b/css/materialize-src/js/carousel.js deleted file mode 100644 index be98dc8..0000000 --- a/css/materialize-src/js/carousel.js +++ /dev/null @@ -1,717 +0,0 @@ -(function($) { - 'use strict'; - - let _defaults = { - duration: 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 - numVisible: 5, // Number of visible items in carousel - fullWidth: false, // Change to full width styles - indicators: false, // Toggle indicators - noWrap: false, // Don't wrap around and cycle through items. - onCycleTo: null // Callback for when a new slide is cycled to. - }; - - /** - * @class - * - */ - class Carousel extends Component { - /** - * Construct Carousel instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - constructor(el, options) { - super(Carousel, el, options); - - this.el.M_Carousel = this; - - /** - * Options for the carousel - * @member Carousel#options - * @prop {Number} duration - * @prop {Number} dist - * @prop {Number} shift - * @prop {Number} padding - * @prop {Number} numVisible - * @prop {Boolean} fullWidth - * @prop {Boolean} indicators - * @prop {Boolean} noWrap - * @prop {Function} onCycleTo - */ - this.options = $.extend({}, Carousel.defaults, options); - - // Setup - this.hasMultipleSlides = this.$el.find('.carousel-item').length > 1; - this.showIndicators = this.options.indicators && this.hasMultipleSlides; - this.noWrap = this.options.noWrap || !this.hasMultipleSlides; - this.pressed = false; - this.dragged = false; - this.offset = this.target = 0; - this.images = []; - this.itemWidth = this.$el - .find('.carousel-item') - .first() - .innerWidth(); - this.itemHeight = this.$el - .find('.carousel-item') - .first() - .innerHeight(); - this.dim = this.itemWidth * 2 + this.options.padding || 1; // Make sure dim is non zero for divisions. - this._autoScrollBound = this._autoScroll.bind(this); - this._trackBound = this._track.bind(this); - - // Full Width carousel setup - if (this.options.fullWidth) { - this.options.dist = 0; - this._setCarouselHeight(); - - // Offset fixed items when indicators. - if (this.showIndicators) { - this.$el.find('.carousel-fixed-item').addClass('with-indicators'); - } - } - - // Iterate through slides - this.$indicators = $('
        '); - this.$el.find('.carousel-item').each((el, i) => { - this.images.push(el); - if (this.showIndicators) { - let $indicator = $('
      • '); - - // Add active to first by default. - if (i === 0) { - $indicator[0].classList.add('active'); - } - - this.$indicators.append($indicator); - } - }); - if (this.showIndicators) { - this.$el.append(this.$indicators); - } - this.count = this.images.length; - - // Cap numVisible at count - this.options.numVisible = Math.min(this.count, this.options.numVisible); - - // Setup cross browser string - this.xform = 'transform'; - ['webkit', 'Moz', 'O', 'ms'].every((prefix) => { - var e = prefix + 'Transform'; - if (typeof document.body.style[e] !== 'undefined') { - this.xform = e; - return false; - } - return true; - }); - - this._setupEventHandlers(); - this._scroll(this.offset); - } - - static get defaults() { - return _defaults; - } - - static init(els, options) { - return super.init(this, els, options); - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_Carousel; - } - - /** - * Teardown component - */ - destroy() { - this._removeEventHandlers(); - this.el.M_Carousel = undefined; - } - - /** - * Setup Event Handlers - */ - _setupEventHandlers() { - this._handleCarouselTapBound = this._handleCarouselTap.bind(this); - this._handleCarouselDragBound = this._handleCarouselDrag.bind(this); - this._handleCarouselReleaseBound = this._handleCarouselRelease.bind(this); - this._handleCarouselClickBound = this._handleCarouselClick.bind(this); - - if (typeof window.ontouchstart !== 'undefined') { - this.el.addEventListener('touchstart', this._handleCarouselTapBound); - this.el.addEventListener('touchmove', this._handleCarouselDragBound); - this.el.addEventListener('touchend', this._handleCarouselReleaseBound); - } - - this.el.addEventListener('mousedown', this._handleCarouselTapBound); - this.el.addEventListener('mousemove', this._handleCarouselDragBound); - this.el.addEventListener('mouseup', this._handleCarouselReleaseBound); - this.el.addEventListener('mouseleave', this._handleCarouselReleaseBound); - this.el.addEventListener('click', this._handleCarouselClickBound); - - if (this.showIndicators && this.$indicators) { - this._handleIndicatorClickBound = this._handleIndicatorClick.bind(this); - this.$indicators.find('.indicator-item').each((el, i) => { - el.addEventListener('click', this._handleIndicatorClickBound); - }); - } - - // Resize - let throttledResize = M.throttle(this._handleResize, 200); - this._handleThrottledResizeBound = throttledResize.bind(this); - - window.addEventListener('resize', this._handleThrottledResizeBound); - } - - /** - * Remove Event Handlers - */ - _removeEventHandlers() { - if (typeof window.ontouchstart !== 'undefined') { - this.el.removeEventListener('touchstart', this._handleCarouselTapBound); - this.el.removeEventListener('touchmove', this._handleCarouselDragBound); - this.el.removeEventListener('touchend', this._handleCarouselReleaseBound); - } - this.el.removeEventListener('mousedown', this._handleCarouselTapBound); - this.el.removeEventListener('mousemove', this._handleCarouselDragBound); - this.el.removeEventListener('mouseup', this._handleCarouselReleaseBound); - this.el.removeEventListener('mouseleave', this._handleCarouselReleaseBound); - this.el.removeEventListener('click', this._handleCarouselClickBound); - - if (this.showIndicators && this.$indicators) { - this.$indicators.find('.indicator-item').each((el, i) => { - el.removeEventListener('click', this._handleIndicatorClickBound); - }); - } - - window.removeEventListener('resize', this._handleThrottledResizeBound); - } - - /** - * Handle Carousel Tap - * @param {Event} e - */ - _handleCarouselTap(e) { - // Fixes firefox draggable image bug - if (e.type === 'mousedown' && $(e.target).is('img')) { - e.preventDefault(); - } - this.pressed = true; - this.dragged = false; - this.verticalDragged = false; - this.reference = this._xpos(e); - this.referenceY = this._ypos(e); - - this.velocity = this.amplitude = 0; - this.frame = this.offset; - this.timestamp = Date.now(); - clearInterval(this.ticker); - this.ticker = setInterval(this._trackBound, 100); - } - - /** - * Handle Carousel Drag - * @param {Event} e - */ - _handleCarouselDrag(e) { - let x, y, delta, deltaY; - if (this.pressed) { - x = this._xpos(e); - y = this._ypos(e); - delta = this.reference - x; - deltaY = Math.abs(this.referenceY - y); - if (deltaY < 30 && !this.verticalDragged) { - // If vertical scrolling don't allow dragging. - if (delta > 2 || delta < -2) { - this.dragged = true; - this.reference = x; - this._scroll(this.offset + delta); - } - } else if (this.dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - } else { - // Vertical scrolling. - this.verticalDragged = true; - } - } - - if (this.dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - } - } - - /** - * Handle Carousel Release - * @param {Event} e - */ - _handleCarouselRelease(e) { - if (this.pressed) { - this.pressed = false; - } else { - return; - } - - clearInterval(this.ticker); - this.target = this.offset; - if (this.velocity > 10 || this.velocity < -10) { - this.amplitude = 0.9 * this.velocity; - this.target = this.offset + this.amplitude; - } - this.target = Math.round(this.target / this.dim) * this.dim; - - // No wrap of items. - if (this.noWrap) { - if (this.target >= this.dim * (this.count - 1)) { - this.target = this.dim * (this.count - 1); - } else if (this.target < 0) { - this.target = 0; - } - } - this.amplitude = this.target - this.offset; - this.timestamp = Date.now(); - requestAnimationFrame(this._autoScrollBound); - - if (this.dragged) { - e.preventDefault(); - e.stopPropagation(); - } - return false; - } - - /** - * Handle Carousel CLick - * @param {Event} e - */ - _handleCarouselClick(e) { - // Disable clicks if carousel was dragged. - if (this.dragged) { - e.preventDefault(); - e.stopPropagation(); - return false; - } else if (!this.options.fullWidth) { - let clickedIndex = $(e.target) - .closest('.carousel-item') - .index(); - let diff = this._wrap(this.center) - clickedIndex; - - // Disable clicks if carousel was shifted by click - if (diff !== 0) { - e.preventDefault(); - e.stopPropagation(); - } - this._cycleTo(clickedIndex); - } - } - - /** - * Handle Indicator CLick - * @param {Event} e - */ - _handleIndicatorClick(e) { - e.stopPropagation(); - - let indicator = $(e.target).closest('.indicator-item'); - if (indicator.length) { - this._cycleTo(indicator.index()); - } - } - - /** - * Handle Throttle Resize - * @param {Event} e - */ - _handleResize(e) { - if (this.options.fullWidth) { - this.itemWidth = this.$el - .find('.carousel-item') - .first() - .innerWidth(); - this.imageHeight = this.$el.find('.carousel-item.active').height(); - this.dim = this.itemWidth * 2 + this.options.padding; - this.offset = this.center * 2 * this.itemWidth; - this.target = this.offset; - this._setCarouselHeight(true); - } else { - this._scroll(); - } - } - - /** - * Set carousel height based on first slide - * @param {Booleam} imageOnly - true for image slides - */ - _setCarouselHeight(imageOnly) { - let firstSlide = this.$el.find('.carousel-item.active').length - ? this.$el.find('.carousel-item.active').first() - : this.$el.find('.carousel-item').first(); - let firstImage = firstSlide.find('img').first(); - if (firstImage.length) { - if (firstImage[0].complete) { - // If image won't trigger the load event - let imageHeight = firstImage.height(); - if (imageHeight > 0) { - this.$el.css('height', imageHeight + 'px'); - } else { - // If image still has no height, use the natural dimensions to calculate - let naturalWidth = firstImage[0].naturalWidth; - let naturalHeight = firstImage[0].naturalHeight; - let adjustedHeight = this.$el.width() / naturalWidth * naturalHeight; - this.$el.css('height', adjustedHeight + 'px'); - } - } else { - // Get height when image is loaded normally - firstImage.one('load', (el, i) => { - this.$el.css('height', el.offsetHeight + 'px'); - }); - } - } else if (!imageOnly) { - let slideHeight = firstSlide.height(); - this.$el.css('height', slideHeight + 'px'); - } - } - - /** - * Get x position from event - * @param {Event} e - */ - _xpos(e) { - // touch event - if (e.targetTouches && e.targetTouches.length >= 1) { - return e.targetTouches[0].clientX; - } - - // mouse event - return e.clientX; - } - - /** - * Get y position from event - * @param {Event} e - */ - _ypos(e) { - // touch event - if (e.targetTouches && e.targetTouches.length >= 1) { - return e.targetTouches[0].clientY; - } - - // mouse event - return e.clientY; - } - - /** - * Wrap index - * @param {Number} x - */ - _wrap(x) { - return x >= this.count ? x % this.count : x < 0 ? this._wrap(this.count + x % this.count) : x; - } - - /** - * Tracks scrolling information - */ - _track() { - let now, elapsed, delta, v; - - now = Date.now(); - elapsed = now - this.timestamp; - this.timestamp = now; - delta = this.offset - this.frame; - this.frame = this.offset; - - v = 1000 * delta / (1 + elapsed); - this.velocity = 0.8 * v + 0.2 * this.velocity; - } - - /** - * Auto scrolls to nearest carousel item. - */ - _autoScroll() { - let elapsed, delta; - - if (this.amplitude) { - elapsed = Date.now() - this.timestamp; - delta = this.amplitude * Math.exp(-elapsed / this.options.duration); - if (delta > 2 || delta < -2) { - this._scroll(this.target - delta); - requestAnimationFrame(this._autoScrollBound); - } else { - this._scroll(this.target); - } - } - } - - /** - * Scroll to target - * @param {Number} x - */ - _scroll(x) { - // Track scrolling state - if (!this.$el.hasClass('scrolling')) { - this.el.classList.add('scrolling'); - } - if (this.scrollingTimeout != null) { - window.clearTimeout(this.scrollingTimeout); - } - this.scrollingTimeout = window.setTimeout(() => { - this.$el.removeClass('scrolling'); - }, this.options.duration); - - // Start actual scroll - let i, - half, - delta, - dir, - tween, - el, - alignment, - zTranslation, - tweenedOpacity, - centerTweenedOpacity; - let lastCenter = this.center; - let numVisibleOffset = 1 / this.options.numVisible; - - this.offset = typeof x === 'number' ? x : this.offset; - this.center = Math.floor((this.offset + this.dim / 2) / this.dim); - delta = this.offset - this.center * this.dim; - dir = delta < 0 ? 1 : -1; - tween = -dir * delta * 2 / this.dim; - half = this.count >> 1; - - if (this.options.fullWidth) { - alignment = 'translateX(0)'; - centerTweenedOpacity = 1; - } else { - alignment = 'translateX(' + (this.el.clientWidth - this.itemWidth) / 2 + 'px) '; - alignment += 'translateY(' + (this.el.clientHeight - this.itemHeight) / 2 + 'px)'; - centerTweenedOpacity = 1 - numVisibleOffset * tween; - } - - // Set indicator active - if (this.showIndicators) { - let diff = this.center % this.count; - let activeIndicator = this.$indicators.find('.indicator-item.active'); - if (activeIndicator.index() !== diff) { - activeIndicator.removeClass('active'); - this.$indicators - .find('.indicator-item') - .eq(diff)[0] - .classList.add('active'); - } - } - - // center - // Don't show wrapped items. - if (!this.noWrap || (this.center >= 0 && this.center < this.count)) { - el = this.images[this._wrap(this.center)]; - - // Add active class to center item. - if (!$(el).hasClass('active')) { - this.$el.find('.carousel-item').removeClass('active'); - el.classList.add('active'); - } - let transformString = `${alignment} translateX(${-delta / 2}px) translateX(${dir * - this.options.shift * - tween * - i}px) translateZ(${this.options.dist * tween}px)`; - this._updateItemStyle(el, centerTweenedOpacity, 0, transformString); - } - - for (i = 1; i <= half; ++i) { - // right side - if (this.options.fullWidth) { - zTranslation = this.options.dist; - tweenedOpacity = i === half && delta < 0 ? 1 - tween : 1; - } else { - zTranslation = this.options.dist * (i * 2 + tween * dir); - tweenedOpacity = 1 - numVisibleOffset * (i * 2 + tween * dir); - } - // Don't show wrapped items. - if (!this.noWrap || this.center + i < this.count) { - el = this.images[this._wrap(this.center + i)]; - let transformString = `${alignment} translateX(${this.options.shift + - (this.dim * i - delta) / 2}px) translateZ(${zTranslation}px)`; - this._updateItemStyle(el, tweenedOpacity, -i, transformString); - } - - // left side - if (this.options.fullWidth) { - zTranslation = this.options.dist; - tweenedOpacity = i === half && delta > 0 ? 1 - tween : 1; - } else { - zTranslation = this.options.dist * (i * 2 - tween * dir); - tweenedOpacity = 1 - numVisibleOffset * (i * 2 - tween * dir); - } - // Don't show wrapped items. - if (!this.noWrap || this.center - i >= 0) { - el = this.images[this._wrap(this.center - i)]; - let transformString = `${alignment} translateX(${-this.options.shift + - (-this.dim * i - delta) / 2}px) translateZ(${zTranslation}px)`; - this._updateItemStyle(el, tweenedOpacity, -i, transformString); - } - } - - // center - // Don't show wrapped items. - if (!this.noWrap || (this.center >= 0 && this.center < this.count)) { - el = this.images[this._wrap(this.center)]; - let transformString = `${alignment} translateX(${-delta / 2}px) translateX(${dir * - this.options.shift * - tween}px) translateZ(${this.options.dist * tween}px)`; - this._updateItemStyle(el, centerTweenedOpacity, 0, transformString); - } - - // onCycleTo callback - let $currItem = this.$el.find('.carousel-item').eq(this._wrap(this.center)); - if (lastCenter !== this.center && typeof this.options.onCycleTo === 'function') { - this.options.onCycleTo.call(this, $currItem[0], this.dragged); - } - - // One time callback - if (typeof this.oneTimeCallback === 'function') { - this.oneTimeCallback.call(this, $currItem[0], this.dragged); - this.oneTimeCallback = null; - } - } - - /** - * Cycle to target - * @param {Element} el - * @param {Number} opacity - * @param {Number} zIndex - * @param {String} transform - */ - _updateItemStyle(el, opacity, zIndex, transform) { - el.style[this.xform] = transform; - el.style.zIndex = zIndex; - el.style.opacity = opacity; - el.style.visibility = 'visible'; - } - - /** - * Cycle to target - * @param {Number} n - * @param {Function} callback - */ - _cycleTo(n, callback) { - let diff = this.center % this.count - n; - - // Account for wraparound. - if (!this.noWrap) { - if (diff < 0) { - if (Math.abs(diff + this.count) < Math.abs(diff)) { - diff += this.count; - } - } else if (diff > 0) { - if (Math.abs(diff - this.count) < diff) { - diff -= this.count; - } - } - } - - this.target = this.dim * Math.round(this.offset / this.dim); - // Next - if (diff < 0) { - this.target += this.dim * Math.abs(diff); - - // Prev - } else if (diff > 0) { - this.target -= this.dim * diff; - } - - // Set one time callback - if (typeof callback === 'function') { - this.oneTimeCallback = callback; - } - - // Scroll - if (this.offset !== this.target) { - this.amplitude = this.target - this.offset; - this.timestamp = Date.now(); - requestAnimationFrame(this._autoScrollBound); - } - } - - /** - * Cycle to next item - * @param {Number} [n] - */ - next(n) { - if (n === undefined || isNaN(n)) { - n = 1; - } - - let index = this.center + n; - if (index >= this.count || index < 0) { - if (this.noWrap) { - return; - } - - index = this._wrap(index); - } - this._cycleTo(index); - } - - /** - * Cycle to previous item - * @param {Number} [n] - */ - prev(n) { - if (n === undefined || isNaN(n)) { - n = 1; - } - - let index = this.center - n; - if (index >= this.count || index < 0) { - if (this.noWrap) { - return; - } - - index = this._wrap(index); - } - - this._cycleTo(index); - } - - /** - * Cycle to nth item - * @param {Number} [n] - * @param {Function} callback - */ - set(n, callback) { - if (n === undefined || isNaN(n)) { - n = 0; - } - - if (n > this.count || n < 0) { - if (this.noWrap) { - return; - } - - n = this._wrap(n); - } - - this._cycleTo(n, callback); - } - } - - M.Carousel = Carousel; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Carousel, 'carousel', 'M_Carousel'); - } -})(cash); diff --git a/css/materialize-src/js/cash.js b/css/materialize-src/js/cash.js deleted file mode 100644 index 17d95ac..0000000 --- a/css/materialize-src/js/cash.js +++ /dev/null @@ -1,960 +0,0 @@ -/*! cash-dom 1.3.5, https://github.com/kenwheeler/cash @license MIT */ -(function (factory) { - window.cash = factory(); -})(function () { - var doc = document, win = window, ArrayProto = Array.prototype, slice = ArrayProto.slice, filter = ArrayProto.filter, push = ArrayProto.push; - - var noop = function () {}, isFunction = function (item) { - // @see https://crbug.com/568448 - return typeof item === typeof noop && item.call; - }, isString = function (item) { - return typeof item === typeof ""; - }; - - var idMatch = /^#[\w-]*$/, classMatch = /^\.[\w-]*$/, htmlMatch = /<.+>/, singlet = /^\w+$/; - - function find(selector, context) { - context = context || doc; - var elems = (classMatch.test(selector) ? context.getElementsByClassName(selector.slice(1)) : singlet.test(selector) ? context.getElementsByTagName(selector) : context.querySelectorAll(selector)); - return elems; - } - - var frag; - function parseHTML(str) { - if (!frag) { - frag = doc.implementation.createHTMLDocument(null); - var base = frag.createElement("base"); - base.href = doc.location.href; - frag.head.appendChild(base); - } - - frag.body.innerHTML = str; - - return frag.body.childNodes; - } - - function onReady(fn) { - if (doc.readyState !== "loading") { - fn(); - } else { - doc.addEventListener("DOMContentLoaded", fn); - } - } - - function Init(selector, context) { - if (!selector) { - return this; - } - - // If already a cash collection, don't do any further processing - if (selector.cash && selector !== win) { - return selector; - } - - var elems = selector, i = 0, length; - - if (isString(selector)) { - elems = (idMatch.test(selector) ? - // If an ID use the faster getElementById check - doc.getElementById(selector.slice(1)) : htmlMatch.test(selector) ? - // If HTML, parse it into real elements - parseHTML(selector) : - // else use `find` - find(selector, context)); - - // If function, use as shortcut for DOM ready - } else if (isFunction(selector)) { - onReady(selector);return this; - } - - if (!elems) { - return this; - } - - // If a single DOM element is passed in or received via ID, return the single element - if (elems.nodeType || elems === win) { - this[0] = elems; - this.length = 1; - } else { - // Treat like an array and loop through each item. - length = this.length = elems.length; - for (; i < length; i++) { - this[i] = elems[i]; - } - } - - return this; - } - - function cash(selector, context) { - return new Init(selector, context); - } - - var fn = cash.fn = cash.prototype = Init.prototype = { // jshint ignore:line - cash: true, - length: 0, - push: push, - splice: ArrayProto.splice, - map: ArrayProto.map, - init: Init - }; - - Object.defineProperty(fn, "constructor", { value: cash }); - - cash.parseHTML = parseHTML; - cash.noop = noop; - cash.isFunction = isFunction; - cash.isString = isString; - - cash.extend = fn.extend = function (target) { - target = target || {}; - - var args = slice.call(arguments), length = args.length, i = 1; - - if (args.length === 1) { - target = this; - i = 0; - } - - for (; i < length; i++) { - if (!args[i]) { - continue; - } - for (var key in args[i]) { - if (args[i].hasOwnProperty(key)) { - target[key] = args[i][key]; - } - } - } - - return target; - }; - - function each(collection, callback) { - var l = collection.length, i = 0; - - for (; i < l; i++) { - if (callback.call(collection[i], collection[i], i, collection) === false) { - break; - } - } - } - - function matches(el, selector) { - var m = el && (el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector || el.oMatchesSelector); - return !!m && m.call(el, selector); - } - - function getCompareFunction(selector) { - return ( - /* Use browser's `matches` function if string */ - isString(selector) ? matches : - /* Match a cash element */ - selector.cash ? function (el) { - return selector.is(el); - } : - /* Direct comparison */ - function (el, selector) { - return el === selector; - }); - } - - function unique(collection) { - return cash(slice.call(collection).filter(function (item, index, self) { - return self.indexOf(item) === index; - })); - } - - cash.extend({ - merge: function (first, second) { - var len = +second.length, i = first.length, j = 0; - - for (; j < len; i++, j++) { - first[i] = second[j]; - } - - first.length = i; - return first; - }, - - each: each, - matches: matches, - unique: unique, - isArray: Array.isArray, - isNumeric: function (n) { - return !isNaN(parseFloat(n)) && isFinite(n); - } - - }); - - var uid = cash.uid = "_cash" + Date.now(); - - function getDataCache(node) { - return (node[uid] = node[uid] || {}); - } - - function setData(node, key, value) { - return (getDataCache(node)[key] = value); - } - - function getData(node, key) { - var c = getDataCache(node); - if (c[key] === undefined) { - c[key] = node.dataset ? node.dataset[key] : cash(node).attr("data-" + key); - } - return c[key]; - } - - function removeData(node, key) { - var c = getDataCache(node); - if (c) { - delete c[key]; - } else if (node.dataset) { - delete node.dataset[key]; - } else { - cash(node).removeAttr("data-" + name); - } - } - - fn.extend({ - data: function (name, value) { - if (isString(name)) { - return (value === undefined ? getData(this[0], name) : this.each(function (v) { - return setData(v, name, value); - })); - } - - for (var key in name) { - this.data(key, name[key]); - } - - return this; - }, - - removeData: function (key) { - return this.each(function (v) { - return removeData(v, key); - }); - } - - }); - - var notWhiteMatch = /\S+/g; - - function getClasses(c) { - return isString(c) && c.match(notWhiteMatch); - } - - function hasClass(v, c) { - return (v.classList ? v.classList.contains(c) : new RegExp("(^| )" + c + "( |$)", "gi").test(v.className)); - } - - function addClass(v, c, spacedName) { - if (v.classList) { - v.classList.add(c); - } else if (spacedName.indexOf(" " + c + " ")) { - v.className += " " + c; - } - } - - function removeClass(v, c) { - if (v.classList) { - v.classList.remove(c); - } else { - v.className = v.className.replace(c, ""); - } - } - - fn.extend({ - addClass: function (c) { - var classes = getClasses(c); - - return (classes ? this.each(function (v) { - var spacedName = " " + v.className + " "; - each(classes, function (c) { - addClass(v, c, spacedName); - }); - }) : this); - }, - - attr: function (name, value) { - if (!name) { - return undefined; - } - - if (isString(name)) { - if (value === undefined) { - return this[0] ? this[0].getAttribute ? this[0].getAttribute(name) : this[0][name] : undefined; - } - - return this.each(function (v) { - if (v.setAttribute) { - v.setAttribute(name, value); - } else { - v[name] = value; - } - }); - } - - for (var key in name) { - this.attr(key, name[key]); - } - - return this; - }, - - hasClass: function (c) { - var check = false, classes = getClasses(c); - if (classes && classes.length) { - this.each(function (v) { - check = hasClass(v, classes[0]); - return !check; - }); - } - return check; - }, - - prop: function (name, value) { - if (isString(name)) { - return (value === undefined ? this[0][name] : this.each(function (v) { - v[name] = value; - })); - } - - for (var key in name) { - this.prop(key, name[key]); - } - - return this; - }, - - removeAttr: function (name) { - return this.each(function (v) { - if (v.removeAttribute) { - v.removeAttribute(name); - } else { - delete v[name]; - } - }); - }, - - removeClass: function (c) { - if (!arguments.length) { - return this.attr("class", ""); - } - var classes = getClasses(c); - return (classes ? this.each(function (v) { - each(classes, function (c) { - removeClass(v, c); - }); - }) : this); - }, - - removeProp: function (name) { - return this.each(function (v) { - delete v[name]; - }); - }, - - toggleClass: function (c, state) { - if (state !== undefined) { - return this[state ? "addClass" : "removeClass"](c); - } - var classes = getClasses(c); - return (classes ? this.each(function (v) { - var spacedName = " " + v.className + " "; - each(classes, function (c) { - if (hasClass(v, c)) { - removeClass(v, c); - } else { - addClass(v, c, spacedName); - } - }); - }) : this); - } }); - - fn.extend({ - add: function (selector, context) { - return unique(cash.merge(this, cash(selector, context))); - }, - - each: function (callback) { - each(this, callback); - return this; - }, - - eq: function (index) { - return cash(this.get(index)); - }, - - filter: function (selector) { - if (!selector) { - return this; - } - - var comparator = (isFunction(selector) ? selector : getCompareFunction(selector)); - - return cash(filter.call(this, function (e) { - return comparator(e, selector); - })); - }, - - first: function () { - return this.eq(0); - }, - - get: function (index) { - if (index === undefined) { - return slice.call(this); - } - return (index < 0 ? this[index + this.length] : this[index]); - }, - - index: function (elem) { - var child = elem ? cash(elem)[0] : this[0], collection = elem ? this : cash(child).parent().children(); - return slice.call(collection).indexOf(child); - }, - - last: function () { - return this.eq(-1); - } - - }); - - var camelCase = (function () { - var camelRegex = /(?:^\w|[A-Z]|\b\w)/g, whiteSpace = /[\s-_]+/g; - return function (str) { - return str.replace(camelRegex, function (letter, index) { - return letter[index === 0 ? "toLowerCase" : "toUpperCase"](); - }).replace(whiteSpace, ""); - }; - }()); - - var getPrefixedProp = (function () { - var cache = {}, doc = document, div = doc.createElement("div"), style = div.style; - - return function (prop) { - prop = camelCase(prop); - if (cache[prop]) { - return cache[prop]; - } - - var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), prefixes = ["webkit", "moz", "ms", "o"], props = (prop + " " + (prefixes).join(ucProp + " ") + ucProp).split(" "); - - each(props, function (p) { - if (p in style) { - cache[p] = prop = cache[prop] = p; - return false; - } - }); - - return cache[prop]; - }; - }()); - - cash.prefixedProp = getPrefixedProp; - cash.camelCase = camelCase; - - fn.extend({ - css: function (prop, value) { - if (isString(prop)) { - prop = getPrefixedProp(prop); - return (arguments.length > 1 ? this.each(function (v) { - return v.style[prop] = value; - }) : win.getComputedStyle(this[0])[prop]); - } - - for (var key in prop) { - this.css(key, prop[key]); - } - - return this; - } - - }); - - function compute(el, prop) { - return parseInt(win.getComputedStyle(el[0], null)[prop], 10) || 0; - } - - each(["Width", "Height"], function (v) { - var lower = v.toLowerCase(); - - fn[lower] = function () { - return this[0].getBoundingClientRect()[lower]; - }; - - fn["inner" + v] = function () { - return this[0]["client" + v]; - }; - - fn["outer" + v] = function (margins) { - return this[0]["offset" + v] + (margins ? compute(this, "margin" + (v === "Width" ? "Left" : "Top")) + compute(this, "margin" + (v === "Width" ? "Right" : "Bottom")) : 0); - }; - }); - - function registerEvent(node, eventName, callback) { - var eventCache = getData(node, "_cashEvents") || setData(node, "_cashEvents", {}); - eventCache[eventName] = eventCache[eventName] || []; - eventCache[eventName].push(callback); - node.addEventListener(eventName, callback); - } - - function removeEvent(node, eventName, callback) { - var events = getData(node, "_cashEvents"), eventCache = (events && events[eventName]), index; - - if (!eventCache) { - return; - } - - if (callback) { - node.removeEventListener(eventName, callback); - index = eventCache.indexOf(callback); - if (index >= 0) { - eventCache.splice(index, 1); - } - } else { - each(eventCache, function (event) { - node.removeEventListener(eventName, event); - }); - eventCache = []; - } - } - - fn.extend({ - off: function (eventName, callback) { - return this.each(function (v) { - return removeEvent(v, eventName, callback); - }); - }, - - on: function (eventName, delegate, callback, runOnce) { - // jshint ignore:line - var originalCallback; - if (!isString(eventName)) { - for (var key in eventName) { - this.on(key, delegate, eventName[key]); - } - return this; - } - - if (isFunction(delegate)) { - callback = delegate; - delegate = null; - } - - if (eventName === "ready") { - onReady(callback); - return this; - } - - if (delegate) { - originalCallback = callback; - callback = function (e) { - var t = e.target; - while (!matches(t, delegate)) { - if (t === this || t === null) { - return (t = false); - } - - t = t.parentNode; - } - - if (t) { - originalCallback.call(t, e); - } - }; - } - - return this.each(function (v) { - var finalCallback = callback; - if (runOnce) { - finalCallback = function () { - callback.apply(this, arguments); - removeEvent(v, eventName, finalCallback); - }; - } - registerEvent(v, eventName, finalCallback); - }); - }, - - one: function (eventName, delegate, callback) { - return this.on(eventName, delegate, callback, true); - }, - - ready: onReady, - - /** - * Modified - * Triggers browser event - * @param String eventName - * @param Object data - Add properties to event object - */ - trigger: function (eventName, data) { - if (document.createEvent) { - let evt = document.createEvent('HTMLEvents'); - evt.initEvent(eventName, true, false); - evt = this.extend(evt, data); - return this.each(function (v) { - return v.dispatchEvent(evt); - }); - } - } - - }); - - function encode(name, value) { - return "&" + encodeURIComponent(name) + "=" + encodeURIComponent(value).replace(/%20/g, "+"); - } - - function getSelectMultiple_(el) { - var values = []; - each(el.options, function (o) { - if (o.selected) { - values.push(o.value); - } - }); - return values.length ? values : null; - } - - function getSelectSingle_(el) { - var selectedIndex = el.selectedIndex; - return selectedIndex >= 0 ? el.options[selectedIndex].value : null; - } - - function getValue(el) { - var type = el.type; - if (!type) { - return null; - } - switch (type.toLowerCase()) { - case "select-one": - return getSelectSingle_(el); - case "select-multiple": - return getSelectMultiple_(el); - case "radio": - return (el.checked) ? el.value : null; - case "checkbox": - return (el.checked) ? el.value : null; - default: - return el.value ? el.value : null; - } - } - - fn.extend({ - serialize: function () { - var query = ""; - - each(this[0].elements || this, function (el) { - if (el.disabled || el.tagName === "FIELDSET") { - return; - } - var name = el.name; - switch (el.type.toLowerCase()) { - case "file": - case "reset": - case "submit": - case "button": - break; - case "select-multiple": - var values = getValue(el); - if (values !== null) { - each(values, function (value) { - query += encode(name, value); - }); - } - break; - default: - var value = getValue(el); - if (value !== null) { - query += encode(name, value); - } - } - }); - - return query.substr(1); - }, - - val: function (value) { - if (value === undefined) { - return getValue(this[0]); - } - - return this.each(function (v) { - return v.value = value; - }); - } - - }); - - function insertElement(el, child, prepend) { - if (prepend) { - var first = el.childNodes[0]; - el.insertBefore(child, first); - } else { - el.appendChild(child); - } - } - - function insertContent(parent, child, prepend) { - var str = isString(child); - - if (!str && child.length) { - each(child, function (v) { - return insertContent(parent, v, prepend); - }); - return; - } - - each(parent, str ? function (v) { - return v.insertAdjacentHTML(prepend ? "afterbegin" : "beforeend", child); - } : function (v, i) { - return insertElement(v, (i === 0 ? child : child.cloneNode(true)), prepend); - }); - } - - fn.extend({ - after: function (selector) { - cash(selector).insertAfter(this); - return this; - }, - - append: function (content) { - insertContent(this, content); - return this; - }, - - appendTo: function (parent) { - insertContent(cash(parent), this); - return this; - }, - - before: function (selector) { - cash(selector).insertBefore(this); - return this; - }, - - clone: function () { - return cash(this.map(function (v) { - return v.cloneNode(true); - })); - }, - - empty: function () { - this.html(""); - return this; - }, - - html: function (content) { - if (content === undefined) { - return this[0].innerHTML; - } - var source = (content.nodeType ? content[0].outerHTML : content); - return this.each(function (v) { - return v.innerHTML = source; - }); - }, - - insertAfter: function (selector) { - var _this = this; - - - cash(selector).each(function (el, i) { - var parent = el.parentNode, sibling = el.nextSibling; - _this.each(function (v) { - parent.insertBefore((i === 0 ? v : v.cloneNode(true)), sibling); - }); - }); - - return this; - }, - - insertBefore: function (selector) { - var _this2 = this; - cash(selector).each(function (el, i) { - var parent = el.parentNode; - _this2.each(function (v) { - parent.insertBefore((i === 0 ? v : v.cloneNode(true)), el); - }); - }); - return this; - }, - - prepend: function (content) { - insertContent(this, content, true); - return this; - }, - - prependTo: function (parent) { - insertContent(cash(parent), this, true); - return this; - }, - - remove: function () { - return this.each(function (v) { - if (!!v.parentNode) { - return v.parentNode.removeChild(v); - } - }); - }, - - text: function (content) { - if (content === undefined) { - return this[0].textContent; - } - return this.each(function (v) { - return v.textContent = content; - }); - } - - }); - - var docEl = doc.documentElement; - - fn.extend({ - position: function () { - var el = this[0]; - return { - left: el.offsetLeft, - top: el.offsetTop - }; - }, - - offset: function () { - var rect = this[0].getBoundingClientRect(); - return { - top: rect.top + win.pageYOffset - docEl.clientTop, - left: rect.left + win.pageXOffset - docEl.clientLeft - }; - }, - - offsetParent: function () { - return cash(this[0].offsetParent); - } - - }); - - fn.extend({ - children: function (selector) { - var elems = []; - this.each(function (el) { - push.apply(elems, el.children); - }); - elems = unique(elems); - - return (!selector ? elems : elems.filter(function (v) { - return matches(v, selector); - })); - }, - - closest: function (selector) { - if (!selector || this.length < 1) { - return cash(); - } - if (this.is(selector)) { - return this.filter(selector); - } - return this.parent().closest(selector); - }, - - is: function (selector) { - if (!selector) { - return false; - } - - var match = false, comparator = getCompareFunction(selector); - - this.each(function (el) { - match = comparator(el, selector); - return !match; - }); - - return match; - }, - - find: function (selector) { - if (!selector || selector.nodeType) { - return cash(selector && this.has(selector).length ? selector : null); - } - - var elems = []; - this.each(function (el) { - push.apply(elems, find(selector, el)); - }); - - return unique(elems); - }, - - has: function (selector) { - var comparator = (isString(selector) ? function (el) { - return find(selector, el).length !== 0; - } : function (el) { - return el.contains(selector); - }); - - return this.filter(comparator); - }, - - next: function () { - return cash(this[0].nextElementSibling); - }, - - not: function (selector) { - if (!selector) { - return this; - } - - var comparator = getCompareFunction(selector); - - return this.filter(function (el) { - return !comparator(el, selector); - }); - }, - - parent: function () { - var result = []; - - this.each(function (item) { - if (item && item.parentNode) { - result.push(item.parentNode); - } - }); - - return unique(result); - }, - - parents: function (selector) { - var last, result = []; - - this.each(function (item) { - last = item; - - while (last && last.parentNode && last !== doc.body.parentNode) { - last = last.parentNode; - - if (!selector || (selector && matches(last, selector))) { - result.push(last); - } - } - }); - - return unique(result); - }, - - prev: function () { - return cash(this[0].previousElementSibling); - }, - - siblings: function (selector) { - var collection = this.parent().children(selector), el = this[0]; - - return collection.filter(function (i) { - return i !== el; - }); - } - - }); - - - return cash; -}); diff --git a/css/materialize-src/js/characterCounter.js b/css/materialize-src/js/characterCounter.js deleted file mode 100644 index 761d1bf..0000000 --- a/css/materialize-src/js/characterCounter.js +++ /dev/null @@ -1,136 +0,0 @@ -(function($) { - 'use strict'; - - let _defaults = {}; - - /** - * @class - * - */ - class CharacterCounter extends Component { - /** - * Construct CharacterCounter instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - constructor(el, options) { - super(CharacterCounter, el, options); - - this.el.M_CharacterCounter = this; - - /** - * Options for the character counter - */ - this.options = $.extend({}, CharacterCounter.defaults, options); - - this.isInvalid = false; - this.isValidLength = false; - this._setupCounter(); - this._setupEventHandlers(); - } - - static get defaults() { - return _defaults; - } - - static init(els, options) { - return super.init(this, els, options); - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_CharacterCounter; - } - - /** - * Teardown component - */ - destroy() { - this._removeEventHandlers(); - this.el.CharacterCounter = undefined; - this._removeCounter(); - } - - /** - * Setup Event Handlers - */ - _setupEventHandlers() { - this._handleUpdateCounterBound = this.updateCounter.bind(this); - - this.el.addEventListener('focus', this._handleUpdateCounterBound, true); - this.el.addEventListener('input', this._handleUpdateCounterBound, true); - } - - /** - * Remove Event Handlers - */ - _removeEventHandlers() { - this.el.removeEventListener('focus', this._handleUpdateCounterBound, true); - this.el.removeEventListener('input', this._handleUpdateCounterBound, true); - } - - /** - * Setup counter element - */ - _setupCounter() { - this.counterEl = document.createElement('span'); - $(this.counterEl) - .addClass('character-counter') - .css({ - float: 'right', - 'font-size': '12px', - height: 1 - }); - - this.$el.parent().append(this.counterEl); - } - - /** - * Remove counter element - */ - _removeCounter() { - $(this.counterEl).remove(); - } - - /** - * Update counter - */ - updateCounter() { - let maxLength = +this.$el.attr('data-length'), - actualLength = this.el.value.length; - this.isValidLength = actualLength <= maxLength; - let counterString = actualLength; - - if (maxLength) { - counterString += '/' + maxLength; - this._validateInput(); - } - - $(this.counterEl).html(counterString); - } - - /** - * Add validation classes - */ - _validateInput() { - if (this.isValidLength && this.isInvalid) { - this.isInvalid = false; - this.$el.removeClass('invalid'); - } else if (!this.isValidLength && !this.isInvalid) { - this.isInvalid = true; - this.$el.removeClass('valid'); - this.$el.addClass('invalid'); - } - } - } - - M.CharacterCounter = CharacterCounter; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(CharacterCounter, 'characterCounter', 'M_CharacterCounter'); - } -})(cash); diff --git a/css/materialize-src/js/chips.js b/css/materialize-src/js/chips.js deleted file mode 100644 index 84fd934..0000000 --- a/css/materialize-src/js/chips.js +++ /dev/null @@ -1,481 +0,0 @@ -(function($) { - 'use strict'; - - let _defaults = { - data: [], - placeholder: '', - secondaryPlaceholder: '', - autocompleteOptions: {}, - limit: Infinity, - onChipAdd: null, - onChipSelect: null, - onChipDelete: null - }; - - /** - * @typedef {Object} chip - * @property {String} tag chip tag string - * @property {String} [image] chip avatar image string - */ - - /** - * @class - * - */ - class Chips extends Component { - /** - * Construct Chips instance and set up overlay - * @constructor - * @param {Element} el - * @param {Object} options - */ - constructor(el, options) { - super(Chips, el, options); - - this.el.M_Chips = this; - - /** - * Options for the modal - * @member Chips#options - * @prop {Array} data - * @prop {String} placeholder - * @prop {String} secondaryPlaceholder - * @prop {Object} autocompleteOptions - */ - this.options = $.extend({}, Chips.defaults, options); - - this.$el.addClass('chips input-field'); - this.chipsData = []; - this.$chips = $(); - this._setupInput(); - this.hasAutocomplete = Object.keys(this.options.autocompleteOptions).length > 0; - - // Set input id - if (!this.$input.attr('id')) { - this.$input.attr('id', M.guid()); - } - - // Render initial chips - if (this.options.data.length) { - this.chipsData = this.options.data; - this._renderChips(this.chipsData); - } - - // Setup autocomplete if needed - if (this.hasAutocomplete) { - this._setupAutocomplete(); - } - - this._setPlaceholder(); - this._setupLabel(); - this._setupEventHandlers(); - } - - static get defaults() { - return _defaults; - } - - static init(els, options) { - return super.init(this, els, options); - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_Chips; - } - - /** - * Get Chips Data - */ - getData() { - return this.chipsData; - } - - /** - * Teardown component - */ - destroy() { - this._removeEventHandlers(); - this.$chips.remove(); - this.el.M_Chips = undefined; - } - - /** - * Setup Event Handlers - */ - _setupEventHandlers() { - this._handleChipClickBound = this._handleChipClick.bind(this); - this._handleInputKeydownBound = this._handleInputKeydown.bind(this); - this._handleInputFocusBound = this._handleInputFocus.bind(this); - this._handleInputBlurBound = this._handleInputBlur.bind(this); - - this.el.addEventListener('click', this._handleChipClickBound); - document.addEventListener('keydown', Chips._handleChipsKeydown); - document.addEventListener('keyup', Chips._handleChipsKeyup); - this.el.addEventListener('blur', Chips._handleChipsBlur, true); - this.$input[0].addEventListener('focus', this._handleInputFocusBound); - this.$input[0].addEventListener('blur', this._handleInputBlurBound); - this.$input[0].addEventListener('keydown', this._handleInputKeydownBound); - } - - /** - * Remove Event Handlers - */ - _removeEventHandlers() { - this.el.removeEventListener('click', this._handleChipClickBound); - document.removeEventListener('keydown', Chips._handleChipsKeydown); - document.removeEventListener('keyup', Chips._handleChipsKeyup); - this.el.removeEventListener('blur', Chips._handleChipsBlur, true); - this.$input[0].removeEventListener('focus', this._handleInputFocusBound); - this.$input[0].removeEventListener('blur', this._handleInputBlurBound); - this.$input[0].removeEventListener('keydown', this._handleInputKeydownBound); - } - - /** - * Handle Chip Click - * @param {Event} e - */ - _handleChipClick(e) { - let $chip = $(e.target).closest('.chip'); - let clickedClose = $(e.target).is('.close'); - if ($chip.length) { - let index = $chip.index(); - if (clickedClose) { - // delete chip - this.deleteChip(index); - this.$input[0].focus(); - } else { - // select chip - this.selectChip(index); - } - - // Default handle click to focus on input - } else { - this.$input[0].focus(); - } - } - - /** - * Handle Chips Keydown - * @param {Event} e - */ - static _handleChipsKeydown(e) { - Chips._keydown = true; - - let $chips = $(e.target).closest('.chips'); - let chipsKeydown = e.target && $chips.length; - - // Don't handle keydown inputs on input and textarea - if ($(e.target).is('input, textarea') || !chipsKeydown) { - return; - } - - let currChips = $chips[0].M_Chips; - - // backspace and delete - if (e.keyCode === 8 || e.keyCode === 46) { - e.preventDefault(); - - let selectIndex = currChips.chipsData.length; - if (currChips._selectedChip) { - let index = currChips._selectedChip.index(); - currChips.deleteChip(index); - currChips._selectedChip = null; - - // Make sure selectIndex doesn't go negative - selectIndex = Math.max(index - 1, 0); - } - - if (currChips.chipsData.length) { - currChips.selectChip(selectIndex); - } - - // left arrow key - } else if (e.keyCode === 37) { - if (currChips._selectedChip) { - let selectIndex = currChips._selectedChip.index() - 1; - if (selectIndex < 0) { - return; - } - currChips.selectChip(selectIndex); - } - - // right arrow key - } else if (e.keyCode === 39) { - if (currChips._selectedChip) { - let selectIndex = currChips._selectedChip.index() + 1; - - if (selectIndex >= currChips.chipsData.length) { - currChips.$input[0].focus(); - } else { - currChips.selectChip(selectIndex); - } - } - } - } - - /** - * Handle Chips Keyup - * @param {Event} e - */ - static _handleChipsKeyup(e) { - Chips._keydown = false; - } - - /** - * Handle Chips Blur - * @param {Event} e - */ - static _handleChipsBlur(e) { - if (!Chips._keydown) { - let $chips = $(e.target).closest('.chips'); - let currChips = $chips[0].M_Chips; - - currChips._selectedChip = null; - } - } - - /** - * Handle Input Focus - */ - _handleInputFocus() { - this.$el.addClass('focus'); - } - - /** - * Handle Input Blur - */ - _handleInputBlur() { - this.$el.removeClass('focus'); - } - - /** - * Handle Input Keydown - * @param {Event} e - */ - _handleInputKeydown(e) { - Chips._keydown = true; - - // enter - if (e.keyCode === 13) { - // Override enter if autocompleting. - if (this.hasAutocomplete && this.autocomplete && this.autocomplete.isOpen) { - return; - } - - e.preventDefault(); - this.addChip({ - tag: this.$input[0].value - }); - this.$input[0].value = ''; - - // delete or left - } else if ( - (e.keyCode === 8 || e.keyCode === 37) && - this.$input[0].value === '' && - this.chipsData.length - ) { - e.preventDefault(); - this.selectChip(this.chipsData.length - 1); - } - } - - /** - * Render Chip - * @param {chip} chip - * @return {Element} - */ - _renderChip(chip) { - if (!chip.tag) { - return; - } - - let renderedChip = document.createElement('div'); - let closeIcon = document.createElement('i'); - renderedChip.classList.add('chip'); - renderedChip.textContent = chip.tag; - renderedChip.setAttribute('tabindex', 0); - $(closeIcon).addClass('material-icons close'); - closeIcon.textContent = 'close'; - - // attach image if needed - if (chip.image) { - let img = document.createElement('img'); - img.setAttribute('src', chip.image); - renderedChip.insertBefore(img, renderedChip.firstChild); - } - - renderedChip.appendChild(closeIcon); - return renderedChip; - } - - /** - * Render Chips - */ - _renderChips() { - this.$chips.remove(); - for (let i = 0; i < this.chipsData.length; i++) { - let chipEl = this._renderChip(this.chipsData[i]); - this.$el.append(chipEl); - this.$chips.add(chipEl); - } - - // move input to end - this.$el.append(this.$input[0]); - } - - /** - * Setup Autocomplete - */ - _setupAutocomplete() { - this.options.autocompleteOptions.onAutocomplete = (val) => { - this.addChip({ - tag: val - }); - this.$input[0].value = ''; - this.$input[0].focus(); - }; - - this.autocomplete = M.Autocomplete.init(this.$input[0], this.options.autocompleteOptions); - } - - /** - * Setup Input - */ - _setupInput() { - this.$input = this.$el.find('input'); - if (!this.$input.length) { - this.$input = $(''); - this.$el.append(this.$input); - } - - this.$input.addClass('input'); - } - - /** - * Setup Label - */ - _setupLabel() { - this.$label = this.$el.find('label'); - if (this.$label.length) { - this.$label.setAttribute('for', this.$input.attr('id')); - } - } - - /** - * Set placeholder - */ - _setPlaceholder() { - if (this.chipsData !== undefined && !this.chipsData.length && this.options.placeholder) { - $(this.$input).prop('placeholder', this.options.placeholder); - } else if ( - (this.chipsData === undefined || !!this.chipsData.length) && - this.options.secondaryPlaceholder - ) { - $(this.$input).prop('placeholder', this.options.secondaryPlaceholder); - } - } - - /** - * Check if chip is valid - * @param {chip} chip - */ - _isValid(chip) { - if (chip.hasOwnProperty('tag') && chip.tag !== '') { - let exists = false; - for (let i = 0; i < this.chipsData.length; i++) { - if (this.chipsData[i].tag === chip.tag) { - exists = true; - break; - } - } - return !exists; - } - - return false; - } - - /** - * Add chip - * @param {chip} chip - */ - addChip(chip) { - if (!this._isValid(chip) || this.chipsData.length >= this.options.limit) { - return; - } - - let renderedChip = this._renderChip(chip); - this.$chips.add(renderedChip); - this.chipsData.push(chip); - $(this.$input).before(renderedChip); - this._setPlaceholder(); - - // fire chipAdd callback - if (typeof this.options.onChipAdd === 'function') { - this.options.onChipAdd.call(this, this.$el, renderedChip); - } - } - - /** - * Delete chip - * @param {Number} chip - */ - deleteChip(chipIndex) { - let $chip = this.$chips.eq(chipIndex); - this.$chips.eq(chipIndex).remove(); - this.$chips = this.$chips.filter(function(el) { - return $(el).index() >= 0; - }); - this.chipsData.splice(chipIndex, 1); - this._setPlaceholder(); - - // fire chipDelete callback - if (typeof this.options.onChipDelete === 'function') { - this.options.onChipDelete.call(this, this.$el, $chip[0]); - } - } - - /** - * Select chip - * @param {Number} chip - */ - selectChip(chipIndex) { - let $chip = this.$chips.eq(chipIndex); - this._selectedChip = $chip; - $chip[0].focus(); - - // fire chipSelect callback - if (typeof this.options.onChipSelect === 'function') { - this.options.onChipSelect.call(this, this.$el, $chip[0]); - } - } - } - - /** - * @static - * @memberof Chips - */ - Chips._keydown = false; - - M.Chips = Chips; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Chips, 'chips', 'M_Chips'); - } - - $(document).ready(function() { - // Handle removal of static chips. - $(document.body).on('click', '.chip .close', function() { - let $chips = $(this).closest('.chips'); - if ($chips.length && $chips[0].M_Chips) { - return; - } - $(this) - .closest('.chip') - .remove(); - }); - }); -})(cash); diff --git a/css/materialize-src/js/collapsible.js b/css/materialize-src/js/collapsible.js deleted file mode 100644 index 6c49126..0000000 --- a/css/materialize-src/js/collapsible.js +++ /dev/null @@ -1,275 +0,0 @@ -(function($, anim) { - 'use strict'; - - let _defaults = { - accordion: true, - onOpenStart: undefined, - onOpenEnd: undefined, - onCloseStart: undefined, - onCloseEnd: undefined, - inDuration: 300, - outDuration: 300 - }; - - /** - * @class - * - */ - class Collapsible extends Component { - /** - * Construct Collapsible instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - constructor(el, options) { - super(Collapsible, el, options); - - this.el.M_Collapsible = this; - - /** - * Options for the collapsible - * @member Collapsible#options - * @prop {Boolean} [accordion=false] - Type of the collapsible - * @prop {Function} onOpenStart - Callback function called before collapsible is opened - * @prop {Function} onOpenEnd - Callback function called after collapsible is opened - * @prop {Function} onCloseStart - Callback function called before collapsible is closed - * @prop {Function} onCloseEnd - Callback function called after collapsible is closed - * @prop {Number} inDuration - Transition in duration in milliseconds. - * @prop {Number} outDuration - Transition duration in milliseconds. - */ - this.options = $.extend({}, Collapsible.defaults, options); - - // Setup tab indices - this.$headers = this.$el.children('li').children('.collapsible-header'); - this.$headers.attr('tabindex', 0); - - this._setupEventHandlers(); - - // Open first active - let $activeBodies = this.$el.children('li.active').children('.collapsible-body'); - if (this.options.accordion) { - // Handle Accordion - $activeBodies.first().css('display', 'block'); - } else { - // Handle Expandables - $activeBodies.css('display', 'block'); - } - } - - static get defaults() { - return _defaults; - } - - static init(els, options) { - return super.init(this, els, options); - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_Collapsible; - } - - /** - * Teardown component - */ - destroy() { - this._removeEventHandlers(); - this.el.M_Collapsible = undefined; - } - - /** - * Setup Event Handlers - */ - _setupEventHandlers() { - this._handleCollapsibleClickBound = this._handleCollapsibleClick.bind(this); - this._handleCollapsibleKeydownBound = this._handleCollapsibleKeydown.bind(this); - this.el.addEventListener('click', this._handleCollapsibleClickBound); - this.$headers.each((header) => { - header.addEventListener('keydown', this._handleCollapsibleKeydownBound); - }); - } - - /** - * Remove Event Handlers - */ - _removeEventHandlers() { - this.el.removeEventListener('click', this._handleCollapsibleClickBound); - this.$headers.each((header) => { - header.removeEventListener('keydown', this._handleCollapsibleKeydownBound); - }); - } - - /** - * Handle Collapsible Click - * @param {Event} e - */ - _handleCollapsibleClick(e) { - let $header = $(e.target).closest('.collapsible-header'); - if (e.target && $header.length) { - let $collapsible = $header.closest('.collapsible'); - if ($collapsible[0] === this.el) { - let $collapsibleLi = $header.closest('li'); - let $collapsibleLis = $collapsible.children('li'); - let isActive = $collapsibleLi[0].classList.contains('active'); - let index = $collapsibleLis.index($collapsibleLi); - - if (isActive) { - this.close(index); - } else { - this.open(index); - } - } - } - } - - /** - * Handle Collapsible Keydown - * @param {Event} e - */ - _handleCollapsibleKeydown(e) { - if (e.keyCode === 13) { - this._handleCollapsibleClickBound(e); - } - } - - /** - * Animate in collapsible slide - * @param {Number} index - 0th index of slide - */ - _animateIn(index) { - let $collapsibleLi = this.$el.children('li').eq(index); - if ($collapsibleLi.length) { - let $body = $collapsibleLi.children('.collapsible-body'); - - anim.remove($body[0]); - $body.css({ - display: 'block', - overflow: 'hidden', - height: 0, - paddingTop: '', - paddingBottom: '' - }); - - let pTop = $body.css('padding-top'); - let pBottom = $body.css('padding-bottom'); - let finalHeight = $body[0].scrollHeight; - $body.css({ - paddingTop: 0, - paddingBottom: 0 - }); - - anim({ - targets: $body[0], - height: finalHeight, - paddingTop: pTop, - paddingBottom: pBottom, - duration: this.options.inDuration, - easing: 'easeInOutCubic', - complete: (anim) => { - $body.css({ - overflow: '', - paddingTop: '', - paddingBottom: '', - height: '' - }); - - // onOpenEnd callback - if (typeof this.options.onOpenEnd === 'function') { - this.options.onOpenEnd.call(this, $collapsibleLi[0]); - } - } - }); - } - } - - /** - * Animate out collapsible slide - * @param {Number} index - 0th index of slide to open - */ - _animateOut(index) { - let $collapsibleLi = this.$el.children('li').eq(index); - if ($collapsibleLi.length) { - let $body = $collapsibleLi.children('.collapsible-body'); - anim.remove($body[0]); - $body.css('overflow', 'hidden'); - anim({ - targets: $body[0], - height: 0, - paddingTop: 0, - paddingBottom: 0, - duration: this.options.outDuration, - easing: 'easeInOutCubic', - complete: () => { - $body.css({ - height: '', - overflow: '', - padding: '', - display: '' - }); - - // onCloseEnd callback - if (typeof this.options.onCloseEnd === 'function') { - this.options.onCloseEnd.call(this, $collapsibleLi[0]); - } - } - }); - } - } - - /** - * Open Collapsible - * @param {Number} index - 0th index of slide - */ - open(index) { - let $collapsibleLi = this.$el.children('li').eq(index); - if ($collapsibleLi.length && !$collapsibleLi[0].classList.contains('active')) { - // onOpenStart callback - if (typeof this.options.onOpenStart === 'function') { - this.options.onOpenStart.call(this, $collapsibleLi[0]); - } - - // Handle accordion behavior - if (this.options.accordion) { - let $collapsibleLis = this.$el.children('li'); - let $activeLis = this.$el.children('li.active'); - $activeLis.each((el) => { - let index = $collapsibleLis.index($(el)); - this.close(index); - }); - } - - // Animate in - $collapsibleLi[0].classList.add('active'); - this._animateIn(index); - } - } - - /** - * Close Collapsible - * @param {Number} index - 0th index of slide - */ - close(index) { - let $collapsibleLi = this.$el.children('li').eq(index); - if ($collapsibleLi.length && $collapsibleLi[0].classList.contains('active')) { - // onCloseStart callback - if (typeof this.options.onCloseStart === 'function') { - this.options.onCloseStart.call(this, $collapsibleLi[0]); - } - - // Animate out - $collapsibleLi[0].classList.remove('active'); - this._animateOut(index); - } - } - } - - M.Collapsible = Collapsible; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Collapsible, 'collapsible', 'M_Collapsible'); - } -})(cash, M.anime); diff --git a/css/materialize-src/js/component.js b/css/materialize-src/js/component.js deleted file mode 100644 index 19eea9f..0000000 --- a/css/materialize-src/js/component.js +++ /dev/null @@ -1,44 +0,0 @@ -class Component { - /** - * Generic constructor for all components - * @constructor - * @param {Element} el - * @param {Object} options - */ - constructor(classDef, el, options) { - // Display error if el is valid HTML Element - if (!(el instanceof Element)) { - console.error(Error(el + ' is not an HTML Element')); - } - - // If exists, destroy and reinitialize in child - let ins = classDef.getInstance(el); - if (!!ins) { - ins.destroy(); - } - - this.el = el; - this.$el = cash(el); - } - - /** - * Initializes components - * @param {class} classDef - * @param {Element | NodeList | jQuery} els - * @param {Object} options - */ - static init(classDef, els, options) { - let instances = null; - if (els instanceof Element) { - instances = new classDef(els, options); - } else if (!!els && (els.jquery || els.cash || els instanceof NodeList)) { - let instancesArr = []; - for (let i = 0; i < els.length; i++) { - instancesArr.push(new classDef(els[i], options)); - } - instances = instancesArr; - } - - return instances; - } -} diff --git a/css/materialize-src/js/datepicker.js b/css/materialize-src/js/datepicker.js deleted file mode 100644 index 7199dd2..0000000 --- a/css/materialize-src/js/datepicker.js +++ /dev/null @@ -1,975 +0,0 @@ -(function($) { - 'use strict'; - - let _defaults = { - // Close when date is selected - autoClose: false, - - // the default output format for the input field value - format: 'mmm dd, yyyy', - - // Used to create date object from current input string - parse: null, - - // The initial date to view when first opened - defaultDate: null, - - // Make the `defaultDate` the initial selected value - setDefaultDate: false, - - disableWeekends: false, - - disableDayFn: null, - - // First day of week (0: Sunday, 1: Monday etc) - firstDay: 0, - - // The earliest date that can be selected - minDate: null, - // Thelatest date that can be selected - maxDate: null, - - // Number of years either side, or array of upper/lower range - yearRange: 10, - - // used internally (don't config outside) - minYear: 0, - maxYear: 9999, - minMonth: undefined, - maxMonth: undefined, - - startRange: null, - endRange: null, - - isRTL: false, - - // Render the month after year in the calendar title - showMonthAfterYear: false, - - // Render days of the calendar grid that fall in the next or previous month - showDaysInNextAndPreviousMonths: false, - - // Specify a DOM element to render the calendar in - container: null, - - // Show clear button - showClearBtn: false, - - // internationalization - i18n: { - cancel: 'Cancel', - clear: 'Clear', - done: 'Ok', - previousMonth: '‹', - nextMonth: '›', - months: [ - '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' - ], - weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], - weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], - weekdaysAbbrev: ['S', 'M', 'T', 'W', 'T', 'F', 'S'] - }, - - // events array - events: [], - - // callback function - onSelect: null, - onOpen: null, - onClose: null, - onDraw: null - }; - - /** - * @class - * - */ - class Datepicker extends Component { - /** - * Construct Datepicker instance and set up overlay - * @constructor - * @param {Element} el - * @param {Object} options - */ - constructor(el, options) { - super(Datepicker, el, options); - - this.el.M_Datepicker = this; - - this.options = $.extend({}, Datepicker.defaults, options); - - // make sure i18n defaults are not lost when only few i18n option properties are passed - if (!!options && options.hasOwnProperty('i18n') && typeof options.i18n === 'object') { - this.options.i18n = $.extend({}, Datepicker.defaults.i18n, options.i18n); - } - - // Remove time component from minDate and maxDate options - if (this.options.minDate) this.options.minDate.setHours(0, 0, 0, 0); - if (this.options.maxDate) this.options.maxDate.setHours(0, 0, 0, 0); - - this.id = M.guid(); - - this._setupVariables(); - this._insertHTMLIntoDOM(); - this._setupModal(); - - this._setupEventHandlers(); - - if (!this.options.defaultDate) { - this.options.defaultDate = new Date(Date.parse(this.el.value)); - } - - let defDate = this.options.defaultDate; - if (Datepicker._isDate(defDate)) { - if (this.options.setDefaultDate) { - this.setDate(defDate, true); - this.setInputValue(); - } else { - this.gotoDate(defDate); - } - } else { - this.gotoDate(new Date()); - } - - /** - * Describes open/close state of datepicker - * @type {Boolean} - */ - this.isOpen = false; - } - - static get defaults() { - return _defaults; - } - - static init(els, options) { - return super.init(this, els, options); - } - - static _isDate(obj) { - return /Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime()); - } - - static _isWeekend(date) { - let day = date.getDay(); - return day === 0 || day === 6; - } - - static _setToStartOfDay(date) { - if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0); - } - - static _getDaysInMonth(year, month) { - return [31, Datepicker._isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][ - month - ]; - } - - static _isLeapYear(year) { - // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951 - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - } - - static _compareDates(a, b) { - // weak date comparison (use setToStartOfDay(date) to ensure correct result) - return a.getTime() === b.getTime(); - } - - static _setToStartOfDay(date) { - if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0); - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_Datepicker; - } - - /** - * Teardown component - */ - destroy() { - this._removeEventHandlers(); - this.modal.destroy(); - $(this.modalEl).remove(); - this.destroySelects(); - this.el.M_Datepicker = undefined; - } - - destroySelects() { - let oldYearSelect = this.calendarEl.querySelector('.orig-select-year'); - if (oldYearSelect) { - M.FormSelect.getInstance(oldYearSelect).destroy(); - } - let oldMonthSelect = this.calendarEl.querySelector('.orig-select-month'); - if (oldMonthSelect) { - M.FormSelect.getInstance(oldMonthSelect).destroy(); - } - } - - _insertHTMLIntoDOM() { - if (this.options.showClearBtn) { - $(this.clearBtn).css({ visibility: '' }); - this.clearBtn.innerHTML = this.options.i18n.clear; - } - - this.doneBtn.innerHTML = this.options.i18n.done; - this.cancelBtn.innerHTML = this.options.i18n.cancel; - - if (this.options.container) { - this.$modalEl.appendTo(this.options.container); - } else { - this.$modalEl.insertBefore(this.el); - } - } - - _setupModal() { - this.modalEl.id = 'modal-' + this.id; - this.modal = M.Modal.init(this.modalEl, { - onCloseEnd: () => { - this.isOpen = false; - } - }); - } - - toString(format) { - format = format || this.options.format; - if (!Datepicker._isDate(this.date)) { - return ''; - } - - let formatArray = format.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g); - let formattedDate = formatArray - .map((label) => { - if (this.formats[label]) { - return this.formats[label](); - } - - return label; - }) - .join(''); - return formattedDate; - } - - setDate(date, preventOnSelect) { - if (!date) { - this.date = null; - this._renderDateDisplay(); - return this.draw(); - } - if (typeof date === 'string') { - date = new Date(Date.parse(date)); - } - if (!Datepicker._isDate(date)) { - return; - } - - let min = this.options.minDate, - max = this.options.maxDate; - - if (Datepicker._isDate(min) && date < min) { - date = min; - } else if (Datepicker._isDate(max) && date > max) { - date = max; - } - - this.date = new Date(date.getTime()); - - this._renderDateDisplay(); - - Datepicker._setToStartOfDay(this.date); - this.gotoDate(this.date); - - if (!preventOnSelect && typeof this.options.onSelect === 'function') { - this.options.onSelect.call(this, this.date); - } - } - - setInputValue() { - this.el.value = this.toString(); - this.$el.trigger('change', { firedBy: this }); - } - - _renderDateDisplay() { - let displayDate = Datepicker._isDate(this.date) ? this.date : new Date(); - let i18n = this.options.i18n; - let day = i18n.weekdaysShort[displayDate.getDay()]; - let month = i18n.monthsShort[displayDate.getMonth()]; - let date = displayDate.getDate(); - this.yearTextEl.innerHTML = displayDate.getFullYear(); - this.dateTextEl.innerHTML = `${day}, ${month} ${date}`; - } - - /** - * change view to a specific date - */ - gotoDate(date) { - let newCalendar = true; - - if (!Datepicker._isDate(date)) { - return; - } - - if (this.calendars) { - let firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1), - lastVisibleDate = new Date( - this.calendars[this.calendars.length - 1].year, - this.calendars[this.calendars.length - 1].month, - 1 - ), - visibleDate = date.getTime(); - // get the end of the month - lastVisibleDate.setMonth(lastVisibleDate.getMonth() + 1); - lastVisibleDate.setDate(lastVisibleDate.getDate() - 1); - newCalendar = - visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate; - } - - if (newCalendar) { - this.calendars = [ - { - month: date.getMonth(), - year: date.getFullYear() - } - ]; - } - - this.adjustCalendars(); - } - - adjustCalendars() { - this.calendars[0] = this.adjustCalendar(this.calendars[0]); - this.draw(); - } - - adjustCalendar(calendar) { - if (calendar.month < 0) { - calendar.year -= Math.ceil(Math.abs(calendar.month) / 12); - calendar.month += 12; - } - if (calendar.month > 11) { - calendar.year += Math.floor(Math.abs(calendar.month) / 12); - calendar.month -= 12; - } - return calendar; - } - - nextMonth() { - this.calendars[0].month++; - this.adjustCalendars(); - } - - prevMonth() { - this.calendars[0].month--; - this.adjustCalendars(); - } - - render(year, month, randId) { - let opts = this.options, - now = new Date(), - days = Datepicker._getDaysInMonth(year, month), - before = new Date(year, month, 1).getDay(), - data = [], - row = []; - Datepicker._setToStartOfDay(now); - if (opts.firstDay > 0) { - before -= opts.firstDay; - if (before < 0) { - before += 7; - } - } - let previousMonth = month === 0 ? 11 : month - 1, - nextMonth = month === 11 ? 0 : month + 1, - yearOfPreviousMonth = month === 0 ? year - 1 : year, - yearOfNextMonth = month === 11 ? year + 1 : year, - daysInPreviousMonth = Datepicker._getDaysInMonth(yearOfPreviousMonth, previousMonth); - let cells = days + before, - after = cells; - while (after > 7) { - after -= 7; - } - cells += 7 - after; - let isWeekSelected = false; - for (let i = 0, r = 0; i < cells; i++) { - let day = new Date(year, month, 1 + (i - before)), - isSelected = Datepicker._isDate(this.date) - ? Datepicker._compareDates(day, this.date) - : false, - isToday = Datepicker._compareDates(day, now), - hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false, - isEmpty = i < before || i >= days + before, - dayNumber = 1 + (i - before), - monthNumber = month, - yearNumber = year, - isStartRange = opts.startRange && Datepicker._compareDates(opts.startRange, day), - isEndRange = opts.endRange && Datepicker._compareDates(opts.endRange, day), - isInRange = - opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange, - isDisabled = - (opts.minDate && day < opts.minDate) || - (opts.maxDate && day > opts.maxDate) || - (opts.disableWeekends && Datepicker._isWeekend(day)) || - (opts.disableDayFn && opts.disableDayFn(day)); - - if (isEmpty) { - if (i < before) { - dayNumber = daysInPreviousMonth + dayNumber; - monthNumber = previousMonth; - yearNumber = yearOfPreviousMonth; - } else { - dayNumber = dayNumber - days; - monthNumber = nextMonth; - yearNumber = yearOfNextMonth; - } - } - - let dayConfig = { - day: dayNumber, - month: monthNumber, - year: yearNumber, - hasEvent: hasEvent, - isSelected: isSelected, - isToday: isToday, - isDisabled: isDisabled, - isEmpty: isEmpty, - isStartRange: isStartRange, - isEndRange: isEndRange, - isInRange: isInRange, - showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths - }; - - row.push(this.renderDay(dayConfig)); - - if (++r === 7) { - data.push(this.renderRow(row, opts.isRTL, isWeekSelected)); - row = []; - r = 0; - isWeekSelected = false; - } - } - return this.renderTable(opts, data, randId); - } - - renderDay(opts) { - let arr = []; - let ariaSelected = 'false'; - if (opts.isEmpty) { - if (opts.showDaysInNextAndPreviousMonths) { - arr.push('is-outside-current-month'); - arr.push('is-selection-disabled'); - } else { - return ''; - } - } - if (opts.isDisabled) { - arr.push('is-disabled'); - } - - if (opts.isToday) { - arr.push('is-today'); - } - if (opts.isSelected) { - arr.push('is-selected'); - ariaSelected = 'true'; - } - if (opts.hasEvent) { - arr.push('has-event'); - } - if (opts.isInRange) { - arr.push('is-inrange'); - } - if (opts.isStartRange) { - arr.push('is-startrange'); - } - if (opts.isEndRange) { - arr.push('is-endrange'); - } - return ( - `` + - `` + - '' - ); - } - - renderRow(days, isRTL, isRowSelected) { - return ( - '' + - (isRTL ? days.reverse() : days).join('') + - '' - ); - } - - renderTable(opts, data, randId) { - return ( - '
        ' + - this.renderHead(opts) + - this.renderBody(data) + - '
        ' - ); - } - - renderHead(opts) { - let i, - arr = []; - for (i = 0; i < 7; i++) { - arr.push( - `${this.renderDayName( - opts, - i, - true - )}` - ); - } - return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ''; - } - - renderBody(rows) { - return '' + rows.join('') + ''; - } - - renderTitle(instance, c, year, month, refYear, randId) { - let i, - j, - arr, - opts = this.options, - isMinYear = year === opts.minYear, - isMaxYear = year === opts.maxYear, - html = - '
        ', - monthHtml, - yearHtml, - prev = true, - next = true; - - for (arr = [], i = 0; i < 12; i++) { - arr.push( - '' - ); - } - - monthHtml = - ''; - - if ($.isArray(opts.yearRange)) { - i = opts.yearRange[0]; - j = opts.yearRange[1] + 1; - } else { - i = year - opts.yearRange; - j = 1 + year + opts.yearRange; - } - - for (arr = []; i < j && i <= opts.maxYear; i++) { - if (i >= opts.minYear) { - arr.push(``); - } - } - - yearHtml = ``; - - let leftArrow = - ''; - html += ``; - - html += '
        '; - if (opts.showMonthAfterYear) { - html += yearHtml + monthHtml; - } else { - html += monthHtml + yearHtml; - } - html += '
        '; - - if (isMinYear && (month === 0 || opts.minMonth >= month)) { - prev = false; - } - - if (isMaxYear && (month === 11 || opts.maxMonth <= month)) { - next = false; - } - - let rightArrow = - ''; - html += ``; - - return (html += '
        '); - } - - /** - * refresh the HTML - */ - draw(force) { - if (!this.isOpen && !force) { - return; - } - let opts = this.options, - minYear = opts.minYear, - maxYear = opts.maxYear, - minMonth = opts.minMonth, - maxMonth = opts.maxMonth, - html = '', - randId; - - if (this._y <= minYear) { - this._y = minYear; - if (!isNaN(minMonth) && this._m < minMonth) { - this._m = minMonth; - } - } - if (this._y >= maxYear) { - this._y = maxYear; - if (!isNaN(maxMonth) && this._m > maxMonth) { - this._m = maxMonth; - } - } - - randId = - 'datepicker-title-' + - Math.random() - .toString(36) - .replace(/[^a-z]+/g, '') - .substr(0, 2); - - for (let c = 0; c < 1; c++) { - this._renderDateDisplay(); - html += - this.renderTitle( - this, - c, - this.calendars[c].year, - this.calendars[c].month, - this.calendars[0].year, - randId - ) + this.render(this.calendars[c].year, this.calendars[c].month, randId); - } - - this.destroySelects(); - - this.calendarEl.innerHTML = html; - - // Init Materialize Select - let yearSelect = this.calendarEl.querySelector('.orig-select-year'); - let monthSelect = this.calendarEl.querySelector('.orig-select-month'); - M.FormSelect.init(yearSelect, { - classes: 'select-year', - dropdownOptions: { container: document.body, constrainWidth: false } - }); - M.FormSelect.init(monthSelect, { - classes: 'select-month', - dropdownOptions: { container: document.body, constrainWidth: false } - }); - - // Add change handlers for select - yearSelect.addEventListener('change', this._handleYearChange.bind(this)); - monthSelect.addEventListener('change', this._handleMonthChange.bind(this)); - - if (typeof this.options.onDraw === 'function') { - this.options.onDraw(this); - } - } - - /** - * Setup Event Handlers - */ - _setupEventHandlers() { - this._handleInputKeydownBound = this._handleInputKeydown.bind(this); - this._handleInputClickBound = this._handleInputClick.bind(this); - this._handleInputChangeBound = this._handleInputChange.bind(this); - this._handleCalendarClickBound = this._handleCalendarClick.bind(this); - this._finishSelectionBound = this._finishSelection.bind(this); - this._handleMonthChange = this._handleMonthChange.bind(this); - this._closeBound = this.close.bind(this); - - this.el.addEventListener('click', this._handleInputClickBound); - this.el.addEventListener('keydown', this._handleInputKeydownBound); - this.el.addEventListener('change', this._handleInputChangeBound); - this.calendarEl.addEventListener('click', this._handleCalendarClickBound); - this.doneBtn.addEventListener('click', this._finishSelectionBound); - this.cancelBtn.addEventListener('click', this._closeBound); - - if (this.options.showClearBtn) { - this._handleClearClickBound = this._handleClearClick.bind(this); - this.clearBtn.addEventListener('click', this._handleClearClickBound); - } - } - - _setupVariables() { - this.$modalEl = $(Datepicker._template); - this.modalEl = this.$modalEl[0]; - - this.calendarEl = this.modalEl.querySelector('.datepicker-calendar'); - - this.yearTextEl = this.modalEl.querySelector('.year-text'); - this.dateTextEl = this.modalEl.querySelector('.date-text'); - if (this.options.showClearBtn) { - this.clearBtn = this.modalEl.querySelector('.datepicker-clear'); - } - this.doneBtn = this.modalEl.querySelector('.datepicker-done'); - this.cancelBtn = this.modalEl.querySelector('.datepicker-cancel'); - - this.formats = { - d: () => { - return this.date.getDate(); - }, - dd: () => { - let d = this.date.getDate(); - return (d < 10 ? '0' : '') + d; - }, - ddd: () => { - return this.options.i18n.weekdaysShort[this.date.getDay()]; - }, - dddd: () => { - return this.options.i18n.weekdays[this.date.getDay()]; - }, - m: () => { - return this.date.getMonth() + 1; - }, - mm: () => { - let m = this.date.getMonth() + 1; - return (m < 10 ? '0' : '') + m; - }, - mmm: () => { - return this.options.i18n.monthsShort[this.date.getMonth()]; - }, - mmmm: () => { - return this.options.i18n.months[this.date.getMonth()]; - }, - yy: () => { - return ('' + this.date.getFullYear()).slice(2); - }, - yyyy: () => { - return this.date.getFullYear(); - } - }; - } - - /** - * Remove Event Handlers - */ - _removeEventHandlers() { - this.el.removeEventListener('click', this._handleInputClickBound); - this.el.removeEventListener('keydown', this._handleInputKeydownBound); - this.el.removeEventListener('change', this._handleInputChangeBound); - this.calendarEl.removeEventListener('click', this._handleCalendarClickBound); - } - - _handleInputClick() { - this.open(); - } - - _handleInputKeydown(e) { - if (e.which === M.keys.ENTER) { - e.preventDefault(); - this.open(); - } - } - - _handleCalendarClick(e) { - if (!this.isOpen) { - return; - } - - let $target = $(e.target); - if (!$target.hasClass('is-disabled')) { - if ( - $target.hasClass('datepicker-day-button') && - !$target.hasClass('is-empty') && - !$target.parent().hasClass('is-disabled') - ) { - this.setDate( - new Date( - e.target.getAttribute('data-year'), - e.target.getAttribute('data-month'), - e.target.getAttribute('data-day') - ) - ); - if (this.options.autoClose) { - this._finishSelection(); - } - } else if ($target.closest('.month-prev').length) { - this.prevMonth(); - } else if ($target.closest('.month-next').length) { - this.nextMonth(); - } - } - } - - _handleClearClick() { - this.date = null; - this.setInputValue(); - this.close(); - } - - _handleMonthChange(e) { - this.gotoMonth(e.target.value); - } - - _handleYearChange(e) { - this.gotoYear(e.target.value); - } - - /** - * change view to a specific month (zero-index, e.g. 0: January) - */ - gotoMonth(month) { - if (!isNaN(month)) { - this.calendars[0].month = parseInt(month, 10); - this.adjustCalendars(); - } - } - - /** - * change view to a specific full year (e.g. "2012") - */ - gotoYear(year) { - if (!isNaN(year)) { - this.calendars[0].year = parseInt(year, 10); - this.adjustCalendars(); - } - } - - _handleInputChange(e) { - let date; - - // Prevent change event from being fired when triggered by the plugin - if (e.firedBy === this) { - return; - } - if (this.options.parse) { - date = this.options.parse(this.el.value, this.options.format); - } else { - date = new Date(Date.parse(this.el.value)); - } - - if (Datepicker._isDate(date)) { - this.setDate(date); - } - } - - renderDayName(opts, day, abbr) { - day += opts.firstDay; - while (day >= 7) { - day -= 7; - } - return abbr ? opts.i18n.weekdaysAbbrev[day] : opts.i18n.weekdays[day]; - } - - /** - * Set input value to the selected date and close Datepicker - */ - _finishSelection() { - this.setInputValue(); - this.close(); - } - - /** - * Open Datepicker - */ - open() { - if (this.isOpen) { - return; - } - - this.isOpen = true; - if (typeof this.options.onOpen === 'function') { - this.options.onOpen.call(this); - } - this.draw(); - this.modal.open(); - return this; - } - - /** - * Close Datepicker - */ - close() { - if (!this.isOpen) { - return; - } - - this.isOpen = false; - if (typeof this.options.onClose === 'function') { - this.options.onClose.call(this); - } - this.modal.close(); - return this; - } - } - - Datepicker._template = [ - '' - ].join(''); - - M.Datepicker = Datepicker; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Datepicker, 'datepicker', 'M_Datepicker'); - } -})(cash); diff --git a/css/materialize-src/js/dropdown.js b/css/materialize-src/js/dropdown.js deleted file mode 100644 index 899bba3..0000000 --- a/css/materialize-src/js/dropdown.js +++ /dev/null @@ -1,617 +0,0 @@ -(function($, anim) { - 'use strict'; - - let _defaults = { - alignment: 'left', - autoFocus: true, - constrainWidth: true, - container: null, - coverTrigger: true, - closeOnClick: true, - hover: false, - inDuration: 150, - outDuration: 250, - onOpenStart: null, - onOpenEnd: null, - onCloseStart: null, - onCloseEnd: null, - onItemClick: null - }; - - /** - * @class - */ - class Dropdown extends Component { - constructor(el, options) { - super(Dropdown, el, options); - - this.el.M_Dropdown = this; - Dropdown._dropdowns.push(this); - - this.id = M.getIdFromTrigger(el); - this.dropdownEl = document.getElementById(this.id); - this.$dropdownEl = $(this.dropdownEl); - - /** - * Options for the dropdown - * @member Dropdown#options - * @prop {String} [alignment='left'] - Edge which the dropdown is aligned to - * @prop {Boolean} [autoFocus=true] - Automatically focus dropdown el for keyboard - * @prop {Boolean} [constrainWidth=true] - Constrain width to width of the button - * @prop {Element} container - Container element to attach dropdown to (optional) - * @prop {Boolean} [coverTrigger=true] - Place dropdown over trigger - * @prop {Boolean} [closeOnClick=true] - Close on click of dropdown item - * @prop {Boolean} [hover=false] - Open dropdown on hover - * @prop {Number} [inDuration=150] - Duration of open animation in ms - * @prop {Number} [outDuration=250] - Duration of close animation in ms - * @prop {Function} onOpenStart - Function called when dropdown starts opening - * @prop {Function} onOpenEnd - Function called when dropdown finishes opening - * @prop {Function} onCloseStart - Function called when dropdown starts closing - * @prop {Function} onCloseEnd - Function called when dropdown finishes closing - */ - this.options = $.extend({}, Dropdown.defaults, options); - - /** - * Describes open/close state of dropdown - * @type {Boolean} - */ - this.isOpen = false; - - /** - * Describes if dropdown content is scrollable - * @type {Boolean} - */ - this.isScrollable = false; - - /** - * Describes if touch moving on dropdown content - * @type {Boolean} - */ - this.isTouchMoving = false; - - this.focusedIndex = -1; - this.filterQuery = []; - - // Move dropdown-content after dropdown-trigger - if (!!this.options.container) { - $(this.options.container).append(this.dropdownEl); - } else { - this.$el.after(this.dropdownEl); - } - - this._makeDropdownFocusable(); - this._resetFilterQueryBound = this._resetFilterQuery.bind(this); - this._handleDocumentClickBound = this._handleDocumentClick.bind(this); - this._handleDocumentTouchmoveBound = this._handleDocumentTouchmove.bind(this); - this._handleDropdownClickBound = this._handleDropdownClick.bind(this); - this._handleDropdownKeydownBound = this._handleDropdownKeydown.bind(this); - this._handleTriggerKeydownBound = this._handleTriggerKeydown.bind(this); - this._setupEventHandlers(); - } - - static get defaults() { - return _defaults; - } - - static init(els, options) { - return super.init(this, els, options); - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_Dropdown; - } - - /** - * Teardown component - */ - destroy() { - this._resetDropdownStyles(); - this._removeEventHandlers(); - Dropdown._dropdowns.splice(Dropdown._dropdowns.indexOf(this), 1); - this.el.M_Dropdown = undefined; - } - - /** - * Setup Event Handlers - */ - _setupEventHandlers() { - // Trigger keydown handler - this.el.addEventListener('keydown', this._handleTriggerKeydownBound); - - // Item click handler - this.dropdownEl.addEventListener('click', this._handleDropdownClickBound); - - // Hover event handlers - if (this.options.hover) { - this._handleMouseEnterBound = this._handleMouseEnter.bind(this); - this.el.addEventListener('mouseenter', this._handleMouseEnterBound); - this._handleMouseLeaveBound = this._handleMouseLeave.bind(this); - this.el.addEventListener('mouseleave', this._handleMouseLeaveBound); - this.dropdownEl.addEventListener('mouseleave', this._handleMouseLeaveBound); - - // Click event handlers - } else { - this._handleClickBound = this._handleClick.bind(this); - this.el.addEventListener('click', this._handleClickBound); - } - } - - /** - * Remove Event Handlers - */ - _removeEventHandlers() { - this.el.removeEventListener('keydown', this._handleTriggerKeydownBound); - this.dropdownEl.removeEventListener('click', this._handleDropdownClickBound); - - if (this.options.hover) { - this.el.removeEventListener('mouseenter', this._handleMouseEnterBound); - this.el.removeEventListener('mouseleave', this._handleMouseLeaveBound); - this.dropdownEl.removeEventListener('mouseleave', this._handleMouseLeaveBound); - } else { - this.el.removeEventListener('click', this._handleClickBound); - } - } - - _setupTemporaryEventHandlers() { - // Use capture phase event handler to prevent click - document.body.addEventListener('click', this._handleDocumentClickBound, true); - document.body.addEventListener('touchend', this._handleDocumentClickBound); - document.body.addEventListener('touchmove', this._handleDocumentTouchmoveBound); - this.dropdownEl.addEventListener('keydown', this._handleDropdownKeydownBound); - } - - _removeTemporaryEventHandlers() { - // Use capture phase event handler to prevent click - document.body.removeEventListener('click', this._handleDocumentClickBound, true); - document.body.removeEventListener('touchend', this._handleDocumentClickBound); - document.body.removeEventListener('touchmove', this._handleDocumentTouchmoveBound); - this.dropdownEl.removeEventListener('keydown', this._handleDropdownKeydownBound); - } - - _handleClick(e) { - e.preventDefault(); - this.open(); - } - - _handleMouseEnter() { - this.open(); - } - - _handleMouseLeave(e) { - let toEl = e.toElement || e.relatedTarget; - let leaveToDropdownContent = !!$(toEl).closest('.dropdown-content').length; - let leaveToActiveDropdownTrigger = false; - - let $closestTrigger = $(toEl).closest('.dropdown-trigger'); - if ( - $closestTrigger.length && - !!$closestTrigger[0].M_Dropdown && - $closestTrigger[0].M_Dropdown.isOpen - ) { - leaveToActiveDropdownTrigger = true; - } - - // Close hover dropdown if mouse did not leave to either active dropdown-trigger or dropdown-content - if (!leaveToActiveDropdownTrigger && !leaveToDropdownContent) { - this.close(); - } - } - - _handleDocumentClick(e) { - let $target = $(e.target); - if ( - this.options.closeOnClick && - $target.closest('.dropdown-content').length && - !this.isTouchMoving - ) { - // isTouchMoving to check if scrolling on mobile. - setTimeout(() => { - this.close(); - }, 0); - } else if ( - $target.closest('.dropdown-trigger').length || - !$target.closest('.dropdown-content').length - ) { - setTimeout(() => { - this.close(); - }, 0); - } - this.isTouchMoving = false; - } - - _handleTriggerKeydown(e) { - // ARROW DOWN OR ENTER WHEN SELECT IS CLOSED - open Dropdown - if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ENTER) && !this.isOpen) { - e.preventDefault(); - this.open(); - } - } - - /** - * Handle Document Touchmove - * @param {Event} e - */ - _handleDocumentTouchmove(e) { - let $target = $(e.target); - if ($target.closest('.dropdown-content').length) { - this.isTouchMoving = true; - } - } - - /** - * Handle Dropdown Click - * @param {Event} e - */ - _handleDropdownClick(e) { - // onItemClick callback - if (typeof this.options.onItemClick === 'function') { - let itemEl = $(e.target).closest('li')[0]; - this.options.onItemClick.call(this, itemEl); - } - } - - /** - * Handle Dropdown Keydown - * @param {Event} e - */ - _handleDropdownKeydown(e) { - if (e.which === M.keys.TAB) { - e.preventDefault(); - this.close(); - - // Navigate down dropdown list - } else if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) && this.isOpen) { - e.preventDefault(); - let direction = e.which === M.keys.ARROW_DOWN ? 1 : -1; - let newFocusedIndex = this.focusedIndex; - let foundNewIndex = false; - do { - newFocusedIndex = newFocusedIndex + direction; - - if ( - !!this.dropdownEl.children[newFocusedIndex] && - this.dropdownEl.children[newFocusedIndex].tabIndex !== -1 - ) { - foundNewIndex = true; - break; - } - } while (newFocusedIndex < this.dropdownEl.children.length && newFocusedIndex >= 0); - - if (foundNewIndex) { - this.focusedIndex = newFocusedIndex; - this._focusFocusedItem(); - } - - // ENTER selects choice on focused item - } else if (e.which === M.keys.ENTER && this.isOpen) { - // Search for
        and ` - ) - .appendTo(this.footer) - .on('click', this.clear.bind(this)); - if (this.options.showClearBtn) { - $clearBtn.css({ visibility: '' }); - } - - let confirmationBtnsContainer = $('
        '); - $( - '' - ) - .appendTo(confirmationBtnsContainer) - .on('click', this.close.bind(this)); - $( - '' - ) - .appendTo(confirmationBtnsContainer) - .on('click', this.done.bind(this)); - confirmationBtnsContainer.appendTo(this.footer); - } - - _clockSetup() { - if (this.options.twelveHour) { - this.$amBtn = $('
        AM
        '); - this.$pmBtn = $('
        PM
        '); - this.$amBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm); - this.$pmBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm); - } - - this._buildHoursView(); - this._buildMinutesView(); - this._buildSVGClock(); - } - - _buildSVGClock() { - // Draw clock hands and others - let dialRadius = this.options.dialRadius; - let tickRadius = this.options.tickRadius; - let diameter = dialRadius * 2; - - let svg = Timepicker._createSVGEl('svg'); - svg.setAttribute('class', 'timepicker-svg'); - svg.setAttribute('width', diameter); - svg.setAttribute('height', diameter); - let g = Timepicker._createSVGEl('g'); - g.setAttribute('transform', 'translate(' + dialRadius + ',' + dialRadius + ')'); - let bearing = Timepicker._createSVGEl('circle'); - bearing.setAttribute('class', 'timepicker-canvas-bearing'); - bearing.setAttribute('cx', 0); - bearing.setAttribute('cy', 0); - bearing.setAttribute('r', 4); - let hand = Timepicker._createSVGEl('line'); - hand.setAttribute('x1', 0); - hand.setAttribute('y1', 0); - let bg = Timepicker._createSVGEl('circle'); - bg.setAttribute('class', 'timepicker-canvas-bg'); - bg.setAttribute('r', tickRadius); - g.appendChild(hand); - g.appendChild(bg); - g.appendChild(bearing); - svg.appendChild(g); - this._canvas.appendChild(svg); - - this.hand = hand; - this.bg = bg; - this.bearing = bearing; - this.g = g; - } - - _buildHoursView() { - let $tick = $('
        '); - // Hours view - if (this.options.twelveHour) { - for (let i = 1; i < 13; i += 1) { - let tick = $tick.clone(); - let radian = i / 6 * Math.PI; - let radius = this.options.outerRadius; - tick.css({ - left: - this.options.dialRadius + Math.sin(radian) * radius - this.options.tickRadius + 'px', - top: - this.options.dialRadius - Math.cos(radian) * radius - this.options.tickRadius + 'px' - }); - tick.html(i === 0 ? '00' : i); - this.hoursView.appendChild(tick[0]); - // tick.on(mousedownEvent, mousedown); - } - } else { - for (let i = 0; i < 24; i += 1) { - let tick = $tick.clone(); - let radian = i / 6 * Math.PI; - let inner = i > 0 && i < 13; - let radius = inner ? this.options.innerRadius : this.options.outerRadius; - tick.css({ - left: - this.options.dialRadius + Math.sin(radian) * radius - this.options.tickRadius + 'px', - top: - this.options.dialRadius - Math.cos(radian) * radius - this.options.tickRadius + 'px' - }); - tick.html(i === 0 ? '00' : i); - this.hoursView.appendChild(tick[0]); - // tick.on(mousedownEvent, mousedown); - } - } - } - - _buildMinutesView() { - let $tick = $('
        '); - // Minutes view - for (let i = 0; i < 60; i += 5) { - let tick = $tick.clone(); - let radian = i / 30 * Math.PI; - tick.css({ - left: - this.options.dialRadius + - Math.sin(radian) * this.options.outerRadius - - this.options.tickRadius + - 'px', - top: - this.options.dialRadius - - Math.cos(radian) * this.options.outerRadius - - this.options.tickRadius + - 'px' - }); - tick.html(Timepicker._addLeadingZero(i)); - this.minutesView.appendChild(tick[0]); - } - } - - _handleAmPmClick(e) { - let $btnClicked = $(e.target); - this.amOrPm = $btnClicked.hasClass('am-btn') ? 'AM' : 'PM'; - this._updateAmPmView(); - } - - _updateAmPmView() { - if (this.options.twelveHour) { - this.$amBtn.toggleClass('text-primary', this.amOrPm === 'AM'); - this.$pmBtn.toggleClass('text-primary', this.amOrPm === 'PM'); - } - } - - _updateTimeFromInput() { - // Get the time - let value = ((this.el.value || this.options.defaultTime || '') + '').split(':'); - if (this.options.twelveHour && !(typeof value[1] === 'undefined')) { - if (value[1].toUpperCase().indexOf('AM') > 0) { - this.amOrPm = 'AM'; - } else { - this.amOrPm = 'PM'; - } - value[1] = value[1].replace('AM', '').replace('PM', ''); - } - if (value[0] === 'now') { - let now = new Date(+new Date() + this.options.fromNow); - value = [now.getHours(), now.getMinutes()]; - if (this.options.twelveHour) { - this.amOrPm = value[0] >= 12 && value[0] < 24 ? 'PM' : 'AM'; - } - } - this.hours = +value[0] || 0; - this.minutes = +value[1] || 0; - this.spanHours.innerHTML = this.hours; - this.spanMinutes.innerHTML = Timepicker._addLeadingZero(this.minutes); - - this._updateAmPmView(); - } - - showView(view, delay) { - if (view === 'minutes' && $(this.hoursView).css('visibility') === 'visible') { - // raiseCallback(this.options.beforeHourSelect); - } - let isHours = view === 'hours', - nextView = isHours ? this.hoursView : this.minutesView, - hideView = isHours ? this.minutesView : this.hoursView; - this.currentView = view; - - $(this.spanHours).toggleClass('text-primary', isHours); - $(this.spanMinutes).toggleClass('text-primary', !isHours); - - // Transition view - hideView.classList.add('timepicker-dial-out'); - $(nextView) - .css('visibility', 'visible') - .removeClass('timepicker-dial-out'); - - // Reset clock hand - this.resetClock(delay); - - // After transitions ended - clearTimeout(this.toggleViewTimer); - this.toggleViewTimer = setTimeout(() => { - $(hideView).css('visibility', 'hidden'); - }, this.options.duration); - } - - resetClock(delay) { - let view = this.currentView, - value = this[view], - isHours = view === 'hours', - unit = Math.PI / (isHours ? 6 : 30), - radian = value * unit, - radius = - isHours && value > 0 && value < 13 ? this.options.innerRadius : this.options.outerRadius, - x = Math.sin(radian) * radius, - y = -Math.cos(radian) * radius, - self = this; - - if (delay) { - $(this.canvas).addClass('timepicker-canvas-out'); - setTimeout(() => { - $(self.canvas).removeClass('timepicker-canvas-out'); - self.setHand(x, y); - }, delay); - } else { - this.setHand(x, y); - } - } - - setHand(x, y, roundBy5) { - let radian = Math.atan2(x, -y), - isHours = this.currentView === 'hours', - unit = Math.PI / (isHours || roundBy5 ? 6 : 30), - z = Math.sqrt(x * x + y * y), - inner = isHours && z < (this.options.outerRadius + this.options.innerRadius) / 2, - radius = inner ? this.options.innerRadius : this.options.outerRadius; - - if (this.options.twelveHour) { - radius = this.options.outerRadius; - } - - // Radian should in range [0, 2PI] - if (radian < 0) { - radian = Math.PI * 2 + radian; - } - - // Get the round value - let value = Math.round(radian / unit); - - // Get the round radian - radian = value * unit; - - // Correct the hours or minutes - if (this.options.twelveHour) { - if (isHours) { - if (value === 0) value = 12; - } else { - if (roundBy5) value *= 5; - if (value === 60) value = 0; - } - } else { - if (isHours) { - if (value === 12) { - value = 0; - } - value = inner ? (value === 0 ? 12 : value) : value === 0 ? 0 : value + 12; - } else { - if (roundBy5) { - value *= 5; - } - if (value === 60) { - value = 0; - } - } - } - - // Once hours or minutes changed, vibrate the device - if (this[this.currentView] !== value) { - if (this.vibrate && this.options.vibrate) { - // Do not vibrate too frequently - if (!this.vibrateTimer) { - navigator[this.vibrate](10); - this.vibrateTimer = setTimeout(() => { - this.vibrateTimer = null; - }, 100); - } - } - } - - this[this.currentView] = value; - if (isHours) { - this['spanHours'].innerHTML = value; - } else { - this['spanMinutes'].innerHTML = Timepicker._addLeadingZero(value); - } - - // Set clock hand and others' position - let cx1 = Math.sin(radian) * (radius - this.options.tickRadius), - cy1 = -Math.cos(radian) * (radius - this.options.tickRadius), - cx2 = Math.sin(radian) * radius, - cy2 = -Math.cos(radian) * radius; - this.hand.setAttribute('x2', cx1); - this.hand.setAttribute('y2', cy1); - this.bg.setAttribute('cx', cx2); - this.bg.setAttribute('cy', cy2); - } - - open() { - if (this.isOpen) { - return; - } - - this.isOpen = true; - this._updateTimeFromInput(); - this.showView('hours'); - - this.modal.open(); - } - - close() { - if (!this.isOpen) { - return; - } - - this.isOpen = false; - this.modal.close(); - } - - /** - * Finish timepicker selection. - */ - done(e, clearValue) { - // Set input value - let last = this.el.value; - let value = clearValue - ? '' - : Timepicker._addLeadingZero(this.hours) + ':' + Timepicker._addLeadingZero(this.minutes); - this.time = value; - if (!clearValue && this.options.twelveHour) { - value = `${value} ${this.amOrPm}`; - } - this.el.value = value; - - // Trigger change event - if (value !== last) { - this.$el.trigger('change'); - } - - this.close(); - this.el.focus(); - } - - clear() { - this.done(null, true); - } - } - - Timepicker._template = [ - '' - ].join(''); - - M.Timepicker = Timepicker; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Timepicker, 'timepicker', 'M_Timepicker'); - } -})(cash); diff --git a/css/materialize-src/js/toasts.js b/css/materialize-src/js/toasts.js deleted file mode 100644 index b0e4b83..0000000 --- a/css/materialize-src/js/toasts.js +++ /dev/null @@ -1,310 +0,0 @@ -(function($, anim) { - 'use strict'; - - let _defaults = { - html: '', - displayLength: 4000, - inDuration: 300, - outDuration: 375, - classes: '', - completeCallback: null, - activationPercent: 0.8 - }; - - class Toast { - constructor(options) { - /** - * Options for the toast - * @member Toast#options - */ - this.options = $.extend({}, Toast.defaults, options); - this.message = this.options.html; - - /** - * Describes current pan state toast - * @type {Boolean} - */ - this.panning = false; - - /** - * Time remaining until toast is removed - */ - this.timeRemaining = this.options.displayLength; - - if (Toast._toasts.length === 0) { - Toast._createContainer(); - } - - // Create new toast - Toast._toasts.push(this); - let toastElement = this._createToast(); - toastElement.M_Toast = this; - this.el = toastElement; - this.$el = $(toastElement); - this._animateIn(); - this._setTimer(); - } - - static get defaults() { - return _defaults; - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_Toast; - } - - /** - * Append toast container and add event handlers - */ - static _createContainer() { - let container = document.createElement('div'); - container.setAttribute('id', 'toast-container'); - - // Add event handler - container.addEventListener('touchstart', Toast._onDragStart); - container.addEventListener('touchmove', Toast._onDragMove); - container.addEventListener('touchend', Toast._onDragEnd); - - container.addEventListener('mousedown', Toast._onDragStart); - document.addEventListener('mousemove', Toast._onDragMove); - document.addEventListener('mouseup', Toast._onDragEnd); - - document.body.appendChild(container); - Toast._container = container; - } - - /** - * Remove toast container and event handlers - */ - static _removeContainer() { - // Add event handler - document.removeEventListener('mousemove', Toast._onDragMove); - document.removeEventListener('mouseup', Toast._onDragEnd); - - $(Toast._container).remove(); - Toast._container = null; - } - - /** - * Begin drag handler - * @param {Event} e - */ - static _onDragStart(e) { - if (e.target && $(e.target).closest('.toast').length) { - let $toast = $(e.target).closest('.toast'); - let toast = $toast[0].M_Toast; - toast.panning = true; - Toast._draggedToast = toast; - toast.el.classList.add('panning'); - toast.el.style.transition = ''; - toast.startingXPos = Toast._xPos(e); - toast.time = Date.now(); - toast.xPos = Toast._xPos(e); - } - } - - /** - * Drag move handler - * @param {Event} e - */ - static _onDragMove(e) { - if (!!Toast._draggedToast) { - e.preventDefault(); - let toast = Toast._draggedToast; - toast.deltaX = Math.abs(toast.xPos - Toast._xPos(e)); - toast.xPos = Toast._xPos(e); - toast.velocityX = toast.deltaX / (Date.now() - toast.time); - toast.time = Date.now(); - - let totalDeltaX = toast.xPos - toast.startingXPos; - let activationDistance = toast.el.offsetWidth * toast.options.activationPercent; - toast.el.style.transform = `translateX(${totalDeltaX}px)`; - toast.el.style.opacity = 1 - Math.abs(totalDeltaX / activationDistance); - } - } - - /** - * End drag handler - */ - static _onDragEnd() { - if (!!Toast._draggedToast) { - let toast = Toast._draggedToast; - toast.panning = false; - toast.el.classList.remove('panning'); - - let totalDeltaX = toast.xPos - toast.startingXPos; - let activationDistance = toast.el.offsetWidth * toast.options.activationPercent; - let shouldBeDismissed = Math.abs(totalDeltaX) > activationDistance || toast.velocityX > 1; - - // Remove toast - if (shouldBeDismissed) { - toast.wasSwiped = true; - toast.dismiss(); - - // Animate toast back to original position - } else { - toast.el.style.transition = 'transform .2s, opacity .2s'; - toast.el.style.transform = ''; - toast.el.style.opacity = ''; - } - Toast._draggedToast = null; - } - } - - /** - * Get x position of mouse or touch event - * @param {Event} e - */ - static _xPos(e) { - if (e.targetTouches && e.targetTouches.length >= 1) { - return e.targetTouches[0].clientX; - } - // mouse event - return e.clientX; - } - - /** - * Remove all toasts - */ - static dismissAll() { - for (let toastIndex in Toast._toasts) { - Toast._toasts[toastIndex].dismiss(); - } - } - - /** - * Create toast and append it to toast container - */ - _createToast() { - let toast = document.createElement('div'); - toast.classList.add('toast'); - - // Add custom classes onto toast - if (!!this.options.classes.length) { - $(toast).addClass(this.options.classes); - } - - // Set content - if ( - typeof HTMLElement === 'object' - ? this.message instanceof HTMLElement - : this.message && - typeof this.message === 'object' && - this.message !== null && - this.message.nodeType === 1 && - typeof this.message.nodeName === 'string' - ) { - toast.appendChild(this.message); - - // Check if it is jQuery object - } else if (!!this.message.jquery) { - $(toast).append(this.message[0]); - - // Insert as html; - } else { - toast.innerHTML = this.message; - } - - // Append toasft - Toast._container.appendChild(toast); - return toast; - } - - /** - * Animate in toast - */ - _animateIn() { - // Animate toast in - anim({ - targets: this.el, - top: 0, - opacity: 1, - duration: this.options.inDuration, - easing: 'easeOutCubic' - }); - } - - /** - * Create setInterval which automatically removes toast when timeRemaining >= 0 - * has been reached - */ - _setTimer() { - if (this.timeRemaining !== Infinity) { - this.counterInterval = setInterval(() => { - // If toast is not being dragged, decrease its time remaining - if (!this.panning) { - this.timeRemaining -= 20; - } - - // Animate toast out - if (this.timeRemaining <= 0) { - this.dismiss(); - } - }, 20); - } - } - - /** - * Dismiss toast with animation - */ - dismiss() { - window.clearInterval(this.counterInterval); - let activationDistance = this.el.offsetWidth * this.options.activationPercent; - - if (this.wasSwiped) { - this.el.style.transition = 'transform .05s, opacity .05s'; - this.el.style.transform = `translateX(${activationDistance}px)`; - this.el.style.opacity = 0; - } - - anim({ - targets: this.el, - opacity: 0, - marginTop: -40, - duration: this.options.outDuration, - easing: 'easeOutExpo', - complete: () => { - // Call the optional callback - if (typeof this.options.completeCallback === 'function') { - this.options.completeCallback(); - } - // Remove toast from DOM - this.$el.remove(); - Toast._toasts.splice(Toast._toasts.indexOf(this), 1); - if (Toast._toasts.length === 0) { - Toast._removeContainer(); - } - } - }); - } - } - - /** - * @static - * @memberof Toast - * @type {Array.} - */ - Toast._toasts = []; - - /** - * @static - * @memberof Toast - */ - Toast._container = null; - - /** - * @static - * @memberof Toast - * @type {Toast} - */ - Toast._draggedToast = null; - - M.Toast = Toast; - M.toast = function(options) { - return new Toast(options); - }; -})(cash, M.anime); diff --git a/css/materialize-src/js/tooltip.js b/css/materialize-src/js/tooltip.js deleted file mode 100644 index b30dce2..0000000 --- a/css/materialize-src/js/tooltip.js +++ /dev/null @@ -1,303 +0,0 @@ -(function($, anim) { - 'use strict'; - - let _defaults = { - exitDelay: 200, - enterDelay: 0, - html: null, - margin: 5, - inDuration: 250, - outDuration: 200, - position: 'bottom', - transitionMovement: 10 - }; - - /** - * @class - * - */ - class Tooltip extends Component { - /** - * Construct Tooltip instance - * @constructor - * @param {Element} el - * @param {Object} options - */ - constructor(el, options) { - super(Tooltip, el, options); - - this.el.M_Tooltip = this; - this.options = $.extend({}, Tooltip.defaults, options); - - this.isOpen = false; - this.isHovered = false; - this.isFocused = false; - this._appendTooltipEl(); - this._setupEventHandlers(); - } - - static get defaults() { - return _defaults; - } - - static init(els, options) { - return super.init(this, els, options); - } - - /** - * Get Instance - */ - static getInstance(el) { - let domElem = !!el.jquery ? el[0] : el; - return domElem.M_Tooltip; - } - - /** - * Teardown component - */ - destroy() { - $(this.tooltipEl).remove(); - this._removeEventHandlers(); - this.el.M_Tooltip = undefined; - } - - _appendTooltipEl() { - let tooltipEl = document.createElement('div'); - tooltipEl.classList.add('material-tooltip'); - this.tooltipEl = tooltipEl; - - let tooltipContentEl = document.createElement('div'); - tooltipContentEl.classList.add('tooltip-content'); - tooltipContentEl.innerHTML = this.options.html; - tooltipEl.appendChild(tooltipContentEl); - document.body.appendChild(tooltipEl); - } - - _updateTooltipContent() { - this.tooltipEl.querySelector('.tooltip-content').innerHTML = this.options.html; - } - - _setupEventHandlers() { - this._handleMouseEnterBound = this._handleMouseEnter.bind(this); - this._handleMouseLeaveBound = this._handleMouseLeave.bind(this); - this._handleFocusBound = this._handleFocus.bind(this); - this._handleBlurBound = this._handleBlur.bind(this); - this.el.addEventListener('mouseenter', this._handleMouseEnterBound); - this.el.addEventListener('mouseleave', this._handleMouseLeaveBound); - this.el.addEventListener('focus', this._handleFocusBound, true); - this.el.addEventListener('blur', this._handleBlurBound, true); - } - - _removeEventHandlers() { - this.el.removeEventListener('mouseenter', this._handleMouseEnterBound); - this.el.removeEventListener('mouseleave', this._handleMouseLeaveBound); - this.el.removeEventListener('focus', this._handleFocusBound, true); - this.el.removeEventListener('blur', this._handleBlurBound, true); - } - - open(isManual) { - if (this.isOpen) { - return; - } - isManual = isManual === undefined ? true : undefined; // Default value true - this.isOpen = true; - // Update tooltip content with HTML attribute options - this.options = $.extend({}, this.options, this._getAttributeOptions()); - this._updateTooltipContent(); - this._setEnterDelayTimeout(isManual); - } - - close() { - if (!this.isOpen) { - return; - } - - this.isHovered = false; - this.isFocused = false; - this.isOpen = false; - this._setExitDelayTimeout(); - } - - /** - * Create timeout which delays when the tooltip closes - */ - _setExitDelayTimeout() { - clearTimeout(this._exitDelayTimeout); - - this._exitDelayTimeout = setTimeout(() => { - if (this.isHovered || this.isFocused) { - return; - } - - this._animateOut(); - }, this.options.exitDelay); - } - - /** - * Create timeout which delays when the toast closes - */ - _setEnterDelayTimeout(isManual) { - clearTimeout(this._enterDelayTimeout); - - this._enterDelayTimeout = setTimeout(() => { - if (!this.isHovered && !this.isFocused && !isManual) { - return; - } - - this._animateIn(); - }, this.options.enterDelay); - } - - _positionTooltip() { - let origin = this.el, - tooltip = this.tooltipEl, - originHeight = origin.offsetHeight, - originWidth = origin.offsetWidth, - tooltipHeight = tooltip.offsetHeight, - tooltipWidth = tooltip.offsetWidth, - newCoordinates, - margin = this.options.margin, - targetTop, - targetLeft; - - (this.xMovement = 0), (this.yMovement = 0); - - targetTop = origin.getBoundingClientRect().top + M.getDocumentScrollTop(); - targetLeft = origin.getBoundingClientRect().left + M.getDocumentScrollLeft(); - - if (this.options.position === 'top') { - targetTop += -tooltipHeight - margin; - targetLeft += originWidth / 2 - tooltipWidth / 2; - this.yMovement = -this.options.transitionMovement; - } else if (this.options.position === 'right') { - targetTop += originHeight / 2 - tooltipHeight / 2; - targetLeft += originWidth + margin; - this.xMovement = this.options.transitionMovement; - } else if (this.options.position === 'left') { - targetTop += originHeight / 2 - tooltipHeight / 2; - targetLeft += -tooltipWidth - margin; - this.xMovement = -this.options.transitionMovement; - } else { - targetTop += originHeight + margin; - targetLeft += originWidth / 2 - tooltipWidth / 2; - this.yMovement = this.options.transitionMovement; - } - - newCoordinates = this._repositionWithinScreen( - targetLeft, - targetTop, - tooltipWidth, - tooltipHeight - ); - $(tooltip).css({ - top: newCoordinates.y + 'px', - left: newCoordinates.x + 'px' - }); - } - - _repositionWithinScreen(x, y, width, height) { - let scrollLeft = M.getDocumentScrollLeft(); - let scrollTop = M.getDocumentScrollTop(); - let newX = x - scrollLeft; - let newY = y - scrollTop; - - let bounding = { - left: newX, - top: newY, - width: width, - height: height - }; - - let offset = this.options.margin + this.options.transitionMovement; - let edges = M.checkWithinContainer(document.body, bounding, offset); - - if (edges.left) { - newX = offset; - } else if (edges.right) { - newX -= newX + width - window.innerWidth; - } - - if (edges.top) { - newY = offset; - } else if (edges.bottom) { - newY -= newY + height - window.innerHeight; - } - - return { - x: newX + scrollLeft, - y: newY + scrollTop - }; - } - - _animateIn() { - this._positionTooltip(); - this.tooltipEl.style.visibility = 'visible'; - anim.remove(this.tooltipEl); - anim({ - targets: this.tooltipEl, - opacity: 1, - translateX: this.xMovement, - translateY: this.yMovement, - duration: this.options.inDuration, - easing: 'easeOutCubic' - }); - } - - _animateOut() { - anim.remove(this.tooltipEl); - anim({ - targets: this.tooltipEl, - opacity: 0, - translateX: 0, - translateY: 0, - duration: this.options.outDuration, - easing: 'easeOutCubic' - }); - } - - _handleMouseEnter() { - this.isHovered = true; - this.isFocused = false; // Allows close of tooltip when opened by focus. - this.open(false); - } - - _handleMouseLeave() { - this.isHovered = false; - this.isFocused = false; // Allows close of tooltip when opened by focus. - this.close(); - } - - _handleFocus() { - if (M.tabPressed) { - this.isFocused = true; - this.open(false); - } - } - - _handleBlur() { - this.isFocused = false; - this.close(); - } - - _getAttributeOptions() { - let attributeOptions = {}; - let tooltipTextOption = this.el.getAttribute('data-tooltip'); - let positionOption = this.el.getAttribute('data-position'); - - if (tooltipTextOption) { - attributeOptions.html = tooltipTextOption; - } - - if (positionOption) { - attributeOptions.position = positionOption; - } - return attributeOptions; - } - } - - M.Tooltip = Tooltip; - - if (M.jQueryLoaded) { - M.initializeJqueryWrapper(Tooltip, 'tooltip', 'M_Tooltip'); - } -})(cash, M.anime); diff --git a/css/materialize-src/js/waves.js b/css/materialize-src/js/waves.js deleted file mode 100644 index ae2cdcb..0000000 --- a/css/materialize-src/js/waves.js +++ /dev/null @@ -1,335 +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.parentNode !== null) { - if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) { - element = target; - break; - } - target = target.parentNode; - } - 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); - element.addEventListener('dragend', 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.parentNode; - } - - 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/css/materialize-src/sass/components/_badges.scss b/css/materialize-src/sass/components/_badges.scss deleted file mode 100644 index ffed87d..0000000 --- a/css/materialize-src/sass/components/_badges.scss +++ /dev/null @@ -1,55 +0,0 @@ -// Badges -span.badge { - min-width: 3rem; - padding: 0 6px; - margin-left: 14px; - text-align: center; - font-size: 1rem; - line-height: $badge-height; - height: $badge-height; - color: color('grey', 'darken-1'); - float: right; - 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); - } -} - -// Special cases -nav ul a span.badge { - display: inline-block; - float: none; - margin-left: 4px; - line-height: $badge-height; - height: $badge-height; - -webkit-font-smoothing: auto; -} - -// Line height centering -.collection-item span.badge { - margin-top: calc(#{$collection-line-height / 2} - #{$badge-height / 2}); -} -.collapsible span.badge { - margin-left: auto; -} -.sidenav span.badge { - margin-top: calc(#{$sidenav-line-height / 2} - #{$badge-height / 2}); -} - -table span.badge { - display: inline-block; - float: none; - margin-left: auto; -} diff --git a/css/materialize-src/sass/components/_buttons.scss b/css/materialize-src/sass/components/_buttons.scss deleted file mode 100644 index 44b80c8..0000000 --- a/css/materialize-src/sass/components/_buttons.scss +++ /dev/null @@ -1,322 +0,0 @@ -// shared styles -.btn, -.btn-flat { - border: $button-border; - border-radius: $button-radius; - display: inline-block; - height: $button-height; - line-height: $button-height; - padding: $button-padding; - text-transform: uppercase; - vertical-align: middle; - -webkit-tap-highlight-color: transparent; // Gets rid of tap active state -} - -// Disabled shared style -.btn.disabled, -.btn-floating.disabled, -.btn-large.disabled, -.btn-small.disabled, -.btn-flat.disabled, -.btn:disabled, -.btn-floating:disabled, -.btn-large:disabled, -.btn-small:disabled, -.btn-flat:disabled, -.btn[disabled], -.btn-floating[disabled], -.btn-large[disabled], -.btn-small[disabled], -.btn-flat[disabled] { - pointer-events: none; - background-color: $button-disabled-background !important; - box-shadow: none; - color: $button-disabled-color !important; - cursor: default; - &:hover { - background-color: $button-disabled-background !important; - color: $button-disabled-color !important; - } -} - -// Shared icon styles -.btn, -.btn-floating, -.btn-large, -.btn-small, -.btn-flat { - font-size: $button-font-size; - outline: 0; - i { - font-size: $button-icon-font-size; - line-height: inherit; - } -} - -// Shared focus button style -.btn, -.btn-floating { - &:focus { - background-color: darken($button-raised-background, 10%); - } -} - -// 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: background-color .2s ease-out; - cursor: pointer; - &:hover { - background-color: $button-raised-background-hover; - @extend .z-depth-1-half; - } -} - -// Floating button -.btn-floating { - &:hover { - background-color: $button-floating-background-hover; - @extend .z-depth-1-half; - } - &:before { - border-radius: 0; - } - &.btn-large { - &.halfway-fab { - bottom: -$button-floating-large-size / 2; - } - width: $button-floating-large-size; - height: $button-floating-large-size; - padding: 0; - i { - line-height: $button-floating-large-size; - } - } - - &.btn-small { - &.halfway-fab { - bottom: -$button-floating-small-size / 2; - } - width: $button-floating-small-size; - height: $button-floating-small-size; - i { - line-height: $button-floating-small-size; - } - } - - &.halfway-fab { - &.left { - right: auto; - left: 24px; - } - position: absolute; - right: 24px; - bottom: -$button-floating-size / 2; - } - 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: background-color .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; - } -} - -// button fix -button.btn-floating { - border: $button-border; -} - -// Fixed Action Button -.fixed-action-btn { - &.active { - ul { - visibility: visible; - } - } - - // Directions - &.direction-left, - &.direction-right { - padding: 0 0 0 15px; - ul { - text-align: right; - right: 64px; - top: 50%; - transform: translateY(-50%); - height: 100%; - left: auto; - /*width 100% only goes to width of button container */ - width: 500px; - li { - display: inline-block; - margin: 7.5px 15px 0 0; - } - } - } - &.direction-right { - padding: 0 15px 0 0; - ul { - text-align: left; - direction: rtl; - left: 64px; - right: auto; - li { - margin: 7.5px 0 0 15px; - } - } - } - &.direction-bottom { - padding: 0 0 15px 0; - ul { - top: 64px; - bottom: auto; - display: flex; - flex-direction: column-reverse; - li { - margin: 15px 0 0 0; - } - } - } - &.toolbar { - &.active { - &>a i { - opacity: 0; - } - } - padding: 0; - height: $button-floating-large-size; - ul { - display: flex; - top: 0; - bottom: 0; - z-index: 1; - li { - flex: 1; - display: inline-block; - margin: 0; - height: 100%; - transition: none; - a { - display: block; - overflow: hidden; - position: relative; - width: 100%; - height: 100%; - background-color: transparent; - box-shadow: none; - color: #fff; - line-height: $button-floating-large-size; - z-index: 1; - i { - line-height: inherit; - } - } - } - } - } - position: fixed; - right: 23px; - bottom: 23px; - padding-top: 15px; - margin-bottom: 0; - z-index: 997; - 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; - } - } - .fab-backdrop { - position: absolute; - top: 0; - left: 0; - z-index: -1; - width: $button-floating-size; - height: $button-floating-size; - background-color: $button-floating-background; - border-radius: $button-floating-radius; - transform: scale(0); - } -} - -// Flat button -.btn-flat { - box-shadow: none; - background-color: transparent; - color: $button-flat-color; - cursor: pointer; - transition: background-color .2s; - &:focus, - &:hover { - box-shadow: none; - } - &:focus { - background-color: rgba(0, 0, 0, .1); - } - &.disabled, - &.btn-flat[disabled] { - background-color: transparent !important; - color: $button-flat-disabled-color !important; - cursor: default; - } -} - -// Large button -.btn-large { - @extend .btn; - height: $button-large-height; - line-height: $button-large-height; - font-size: $button-large-font-size; - padding: 0 28px; - - i { - font-size: $button-large-icon-font-size; - } -} - -// Small button -.btn-small { - @extend .btn; - height: $button-small-height; - line-height: $button-small-height; - font-size: $button-small-font-size; - i { - font-size: $button-small-icon-font-size; - } -} - -// Block button -.btn-block { - display: block; -} diff --git a/css/materialize-src/sass/components/_cards.scss b/css/materialize-src/sass/components/_cards.scss deleted file mode 100644 index fcbf28e..0000000 --- a/css/materialize-src/sass/components/_cards.scss +++ /dev/null @@ -1,195 +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 { - border-radius: 2px 0 0 2px; - 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; - max-width: 100%; - padding: $card-padding; - } - } - - .card-content { - padding: $card-padding; - border-radius: 0 0 2px 2px; - - p { - margin: 0; - } - .card-title { - display: block; - line-height: 32px; - margin-bottom: 8px; - - i { - line-height: 32px; - } - } - } - - .card-action { - &:last-child { - border-radius: 0 0 2px 2px; - } - background-color: inherit; // Use inherit to inherit color classes - border-top: 1px solid rgba(160,160,160,.2); - position: relative; - padding: 16px $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; - left: 0; - top: 100%; - height: 100%; - z-index: 3; - display: none; - - .card-title { - cursor: pointer; - display: block; - } - } -} diff --git a/css/materialize-src/sass/components/_carousel.scss b/css/materialize-src/sass/components/_carousel.scss deleted file mode 100644 index cc36d4b..0000000 --- a/css/materialize-src/sass/components/_carousel.scss +++ /dev/null @@ -1,90 +0,0 @@ -.carousel { - &.carousel-slider { - top: 0; - left: 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: $carousel-height; - 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: $carousel-height; - perspective: 500px; - transform-style: preserve-3d; - transform-origin: 0% 50%; - - .carousel-item { - visibility: hidden; - width: $carousel-item-width; - height: $carousel-item-height; - 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%; - } - } - - // Materialbox compatibility - &.scrolling .carousel-item .materialboxed, - .carousel-item:not(.active) .materialboxed { - pointer-events: none; - } -} diff --git a/css/materialize-src/sass/components/_chips.scss b/css/materialize-src/sass/components/_chips.scss deleted file mode 100644 index 27744a8..0000000 --- a/css/materialize-src/sass/components/_chips.scss +++ /dev/null @@ -1,90 +0,0 @@ -.chip { - &:focus { - outline: none; - background-color: $chip-selected-color; - color: #fff; - } - - 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: $input-margin; - min-height: 45px; - outline: none; - transition: all .3s; - - &.focus { - border-bottom: 1px solid $chip-selected-color; - box-shadow: 0 1px 0 0 $chip-selected-color; - } - - &:hover { - cursor: text; - } - - .input { - background: none; - border: 0; - color: rgba(0,0,0,.6); - display: inline-block; - font-size: $input-font-size; - height: $input-height; - line-height: 32px; - outline: 0; - margin: 0; - padding: 0 !important; - width: 120px !important; - } - - .input:focus { - border: 0 !important; - box-shadow: none !important; - } - - // Autocomplete - .autocomplete-content { - margin-top: 0; - margin-bottom: 0; - } -} - -// Form prefix -.prefix ~ .chips { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} -.chips:empty ~ label { - font-size: 0.8rem; - transform: translateY(-140%); -} diff --git a/css/materialize-src/sass/components/_collapsible.scss b/css/materialize-src/sass/components/_collapsible.scss deleted file mode 100644 index 024324f..0000000 --- a/css/materialize-src/sass/components/_collapsible.scss +++ /dev/null @@ -1,91 +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 { - &:focus { - outline: 0 - } - - display: flex; - cursor: pointer; - -webkit-tap-highlight-color: transparent; - line-height: 1.5; - padding: 1rem; - background-color: $collapsible-header-color; - border-bottom: 1px solid $collapsible-border-color; - - i { - width: 2rem; - font-size: 1.6rem; - display: inline-block; - text-align: center; - margin-right: 1rem; - } -} -.keyboard-focused .collapsible-header:focus { - background-color: #eee; -} - -.collapsible-body { - display: none; - border-bottom: 1px solid $collapsible-border-color; - box-sizing: border-box; - padding: 2rem; -} - -// Sidenav collapsible styling -.sidenav, -.sidenav.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/css/materialize-src/sass/components/_color-classes.scss b/css/materialize-src/sass/components/_color-classes.scss deleted file mode 100644 index 155cecd..0000000 --- a/css/materialize-src/sass/components/_color-classes.scss +++ /dev/null @@ -1,32 +0,0 @@ -// 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; - } -} diff --git a/css/materialize-src/sass/components/_color-variables.scss b/css/materialize-src/sass/components/_color-variables.scss deleted file mode 100644 index 062f6a5..0000000 --- a/css/materialize-src/sass/components/_color-variables.scss +++ /dev/null @@ -1,370 +0,0 @@ -// 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 -) !default; - - -// 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 `#{$color}` - `#{$type}` in $colors."; - @return null; -} diff --git a/css/materialize-src/sass/components/_datepicker.scss b/css/materialize-src/sass/components/_datepicker.scss deleted file mode 100644 index d2c920b..0000000 --- a/css/materialize-src/sass/components/_datepicker.scss +++ /dev/null @@ -1,191 +0,0 @@ -/* Modal */ -.datepicker-modal { - max-width: 325px; - min-width: 300px; - max-height: none; -} - -.datepicker-container.modal-content { - display: flex; - flex-direction: column; - padding: 0; -} - -.datepicker-controls { - display: flex; - justify-content: space-between; - width: 280px; - margin: 0 auto; - - .selects-container { - display: flex; - } - - .select-wrapper { - input { - &:focus { - border-bottom: none; - } - border-bottom: none; - text-align: center; - margin: 0; - } - - .caret { - display: none; - } - } - - .select-year input { - width: 50px; - } - - .select-month input { - width: 70px; - } -} - -.month-prev, .month-next { - margin-top: 4px; - cursor: pointer; - background-color: transparent; - border: none; -} - - -/* Date Display */ -.datepicker-date-display { - flex: 1 auto; - background-color: $secondary-color; - color: #fff; - padding: 20px 22px; - font-weight: 500; - - .year-text { - display: block; - font-size: 1.5rem; - line-height: 25px; - color: $datepicker-year; - } - - .date-text { - display: block; - font-size: 2.8rem; - line-height: 47px; - font-weight: 500; - } -} - - -/* Calendar */ -.datepicker-calendar-container { - flex: 2.5 auto; -} - -.datepicker-table { - width: 280px; - font-size: 1rem; - margin: 0 auto; - - thead { - border-bottom: none; - } - - th { - padding: 10px 5px; - text-align: center; - } - - tr { - border: none; - } - - abbr { - text-decoration: none; - color: $datepicker-calendar-header-color; - } - - td { - &.is-today { - color: $secondary-color; - } - - &.is-selected { - background-color: $secondary-color; - color: #fff; - } - - &.is-outside-current-month, - &.is-disabled { - color: $datepicker-disabled-day-color; - pointer-events: none; - } - - border-radius: 50%; - padding: 0; - } -} - -.datepicker-day-button { - &:focus { - background-color: $datepicker-day-focus; - } - - background-color: transparent; - border: none; - line-height: 38px; - display: block; - width: 100%; - border-radius: 50%; - padding: 0 5px; - cursor: pointer; - color: inherit; -} - - -/* Footer */ -.datepicker-footer { - width: 280px; - margin: 0 auto; - padding-bottom: 5px; - display: flex; - justify-content: space-between; -} - -.datepicker-cancel, -.datepicker-clear, -.datepicker-today, -.datepicker-done { - color: $secondary-color; - padding: 0 1rem; -} - -.datepicker-clear { - color: $error-color; -} - - -/* Media Queries */ -@media #{$medium-and-up} { - .datepicker-modal { - max-width: 625px; - } - - .datepicker-container.modal-content { - flex-direction: row; - } - - .datepicker-date-display { - flex: 0 1 270px; - } - - .datepicker-controls, - .datepicker-table, - .datepicker-footer { - width: 320px; - } - - .datepicker-day-button { - line-height: 44px; - } -} diff --git a/css/materialize-src/sass/components/_dropdown.scss b/css/materialize-src/sass/components/_dropdown.scss deleted file mode 100644 index 0caae65..0000000 --- a/css/materialize-src/sass/components/_dropdown.scss +++ /dev/null @@ -1,85 +0,0 @@ -.dropdown-content { - &:focus { - outline: 0; - } - - - @extend .z-depth-1; - background-color: $dropdown-bg-color; - margin: 0; - display: none; - min-width: 100px; - overflow-y: auto; - opacity: 0; - position: absolute; - left: 0; - top: 0; - z-index: 9999; // TODO: Check if this doesn't break other things - transform-origin: 0 0; - - - li { - &:hover, &.active { - background-color: $dropdown-hover-bg-color; - } - - &:focus { - outline: none; - } - - &.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: 0; - height: 18px; - } - - // Icon alignment override - & > a > i { - height: inherit; - line-height: inherit; - float: left; - margin: 0 24px 0 0; - width: 24px; - } - - - clear: both; - color: $off-black; - cursor: pointer; - min-height: $dropdown-item-height; - line-height: 1.5rem; - width: 100%; - text-align: left; - } -} - -body.keyboard-focused { - .dropdown-content li:focus { - background-color: darken($dropdown-hover-bg-color, 8%); - } -} - -// Input field specificity bugfix -.input-field.col .dropdown-content [type="checkbox"] + label { - top: 1px; - left: 0; - height: 18px; - transform: none; -} - -.dropdown-trigger { - cursor: pointer; -} \ No newline at end of file diff --git a/css/materialize-src/sass/components/_global.scss b/css/materialize-src/sass/components/_global.scss deleted file mode 100644 index 39f33db..0000000 --- a/css/materialize-src/sass/components/_global.scss +++ /dev/null @@ -1,769 +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; -} - -button, -input, -optgroup, -select, -textarea { - font-family: $font-stack; -} - -ul { - &:not(.browser-default) { - padding-left: 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; -} - - -// classic clearfix -.clearfix { - clear: both; -} - - -// Z-levels -.z-depth-0 { - box-shadow: none !important; -} - -/* 2dp elevation modified*/ -.z-depth-1 { - box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), - 0 3px 1px -2px rgba(0,0,0,0.12), - 0 1px 5px 0 rgba(0,0,0,0.2); -} -.z-depth-1-half { - box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); -} - -/* 6dp elevation modified*/ -.z-depth-2 { - box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), - 0 1px 10px 0 rgba(0,0,0,0.12), - 0 2px 4px -1px rgba(0,0,0,0.3); -} - -/* 12dp elevation modified*/ -.z-depth-3 { - box-shadow: 0 8px 17px 2px rgba(0,0,0,0.14), - 0 3px 14px 2px rgba(0,0,0,0.12), - 0 5px 5px -3px rgba(0, 0, 0, 0.2); -} - -/* 16dp elevation */ -.z-depth-4 { - box-shadow: 0 16px 24px 2px rgba(0,0,0,0.14), - 0 6px 30px 5px rgba(0,0,0,0.12), - 0 8px 10px -7px rgba(0,0,0,0.2); -} - -/* 24dp elevation */ -.z-depth-5 { - box-shadow: 0 24px 38px 3px rgba(0,0,0,0.14), - 0 9px 46px 8px rgba(0,0,0,0.12), - 0 11px 15px -7px rgba(0,0,0,0.2); -} - -.hoverable { - transition: box-shadow .25s; - - &:hover { - 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 { - opacity: 0; - position: absolute; - left: 50%; - bottom: 0; - min-width: 100%; - min-height: 100%; - 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; - } -} -.hide-on-extra-large-only { - @media #{$extra-large-and-up} { - display: none !important; - } -} -.show-on-extra-large { - @media #{$extra-large-and-up} { - display: block !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 -.page-footer { - padding-top: 20px; - color: $footer-font-color; - background-color: $footer-bg-color; - - .footer-copyright { - overflow: hidden; - min-height: 50px; - display: flex; - align-items: center; - justify-content: space-between; - padding: 10px 0px; - color: $footer-copyright-font-color; - background-color: $footer-copyright-bg-color; - } -} - -// Tables -table, th, td { - border: none; -} - -table { - width:100%; - display: table; - border-collapse: collapse; - border-spacing: 0; - - &.striped { - tr { - border-bottom: none; - } - - > 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; - } - } -} - -tr { - 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 { - border-bottom: none; - padding: 0 10px; - } - - /* sort out borders */ - thead { - border: 0; - 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: $collection-line-height; - padding: 10px 20px; - margin: 0; - border-bottom: 1px solid $collection-border-color; - - // Avatar Collection - &.avatar { - min-height: 84px; - padding-left: 72px; - position: relative; - - // Don't style circles inside preloader classes. - &:not(.circle-clipper) > .circle, - :not(.circle-clipper) > .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; -} - - - -// 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 { - 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/css/materialize-src/sass/components/_grid.scss b/css/materialize-src/sass/components/_grid.scss deleted file mode 100644 index 8892f05..0000000 --- a/css/materialize-src/sass/components/_grid.scss +++ /dev/null @@ -1,156 +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%; - } -} -.col .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; - } -} - - -// Mixins to eliminate code repitition -@mixin reset-offset { - margin-left: auto; - left: auto; - right: auto; -} -@mixin grid-classes($size, $i, $perc) { - &.offset-#{$size}#{$i} { - margin-left: $perc; - } - &.pull-#{$size}#{$i} { - right: $perc; - } - &.push-#{$size}#{$i} { - left: $perc; - } -} - - -.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; - @include reset-offset; - } - $i: $i + 1; - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - @include grid-classes("s", $i, $perc); - $i: $i + 1; - } - - @media #{$medium-and-up} { - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.m#{$i} { - width: $perc; - @include reset-offset; - } - $i: $i + 1 - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - @include grid-classes("m", $i, $perc); - $i: $i + 1; - } - } - - @media #{$large-and-up} { - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.l#{$i} { - width: $perc; - @include reset-offset; - } - $i: $i + 1; - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - @include grid-classes("l", $i, $perc); - $i: $i + 1; - } - } - - @media #{$extra-large-and-up} { - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.xl#{$i} { - width: $perc; - @include reset-offset; - } - $i: $i + 1; - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - @include grid-classes("xl", $i, $perc); - $i: $i + 1; - } - } - } -} diff --git a/css/materialize-src/sass/components/_icons-material-design.scss b/css/materialize-src/sass/components/_icons-material-design.scss deleted file mode 100644 index d8d91c1..0000000 --- a/css/materialize-src/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/css/materialize-src/sass/components/_materialbox.scss b/css/materialize-src/sass/components/_materialbox.scss deleted file mode 100644 index 0ebd63f..0000000 --- a/css/materialize-src/sass/components/_materialbox.scss +++ /dev/null @@ -1,43 +0,0 @@ -.materialboxed { - &:hover { - &:not(.active) { - opacity: .8; - } - } - - display: block; - cursor: zoom-in; - position: relative; - transition: opacity .4s; - -webkit-backface-visibility: hidden; - - &.active { - cursor: zoom-out; - } -} - -#materialbox-overlay { - position:fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #292929; - z-index: 1000; - will-change: opacity; -} - -.materialbox-caption { - position: fixed; - display: none; - color: #fff; - line-height: 50px; - bottom: 0; - left: 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/css/materialize-src/sass/components/_modal.scss b/css/materialize-src/sass/components/_modal.scss deleted file mode 100644 index 38cf3ce..0000000 --- a/css/materialize-src/sass/components/_modal.scss +++ /dev/null @@ -1,94 +0,0 @@ -.modal { - &:focus { - outline: none; - } - - @extend .z-depth-5; - - 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%; - text-align: right; - - .btn, .btn-flat { - margin: 6px 0; - } - } -} -.modal-overlay { - position: fixed; - z-index: 999; - top: -25%; - 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/css/materialize-src/sass/components/_navbar.scss b/css/materialize-src/sass/components/_navbar.scss deleted file mode 100644 index 0317bb2..0000000 --- a/css/materialize-src/sass/components/_navbar.scss +++ /dev/null @@ -1,208 +0,0 @@ -nav { - &.nav-extended { - height: auto; - - .nav-wrapper { - min-height: $navbar-height-mobile; - height: auto; - } - - .nav-content { - position: relative; - line-height: normal; - } - } - - color: $navbar-font-color; - @extend .z-depth-1; - background-color: $primary-color; - width: 100%; - height: $navbar-height-mobile; - line-height: $navbar-line-height-mobile; - - a { color: $navbar-font-color; } - - i, - [class^="mdi-"], [class*="mdi-"], - i.material-icons { - display: block; - font-size: 24px; - height: $navbar-height-mobile; - line-height: $navbar-line-height-mobile; - } - - .nav-wrapper { - position: relative; - height: 100%; - } - - @media #{$large-and-up} { - a.sidenav-trigger { display: none; } - } - - - // Collapse button - .sidenav-trigger { - float: left; - position: relative; - z-index: 1; - height: $navbar-height-mobile; - margin: 0 18px; - - i { - height: $navbar-height-mobile; - line-height: $navbar-line-height-mobile; - } - } - - - // Logo - .brand-logo { - position: absolute; - color: $navbar-font-color; - display: inline-block; - font-size: $navbar-brand-font-size; - padding: 0; - - &.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; - } - } - - - // Title - .nav-title { - display: inline-block; - font-size: 32px; - padding: 28px 0; - } - - - // 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; - - & > .material-icons { - height: inherit; - line-height: inherit; - } - } - - &: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; } - } - } -} - -// Fixed Navbar -.navbar-fixed { - position: relative; - height: $navbar-height-mobile; - z-index: 997; - - nav { - position: fixed; - } -} -@media #{$medium-and-up} { - nav.nav-extended .nav-wrapper { - min-height: $navbar-height; - } - nav, nav .nav-wrapper i, nav a.sidenav-trigger, nav a.sidenav-trigger i { - height: $navbar-height; - line-height: $navbar-line-height; - } - .navbar-fixed { - height: $navbar-height; - } -} diff --git a/css/materialize-src/sass/components/_normalize.scss b/css/materialize-src/sass/components/_normalize.scss deleted file mode 100644 index fa4e73d..0000000 --- a/css/materialize-src/sass/components/_normalize.scss +++ /dev/null @@ -1,447 +0,0 @@ -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in - * IE on Windows Phone and in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers (opinionated). - */ - -body { - margin: 0; -} - -/** - * Add the correct display in IE 9-. - */ - -article, -aside, -footer, -header, -nav, -section { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - * 1. Add the correct display in IE. - */ - -figcaption, -figure, -main { /* 1 */ - display: block; -} - -/** - * Add the correct margin in IE 8. - */ - -figure { - margin: 1em 40px; -} - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * 1. Remove the gray background on active links in IE 10. - * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. - */ - -a { - background-color: transparent; /* 1 */ - -webkit-text-decoration-skip: objects; /* 2 */ -} - -/** - * 1. Remove the bottom border in Chrome 57- and Firefox 39-. - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Prevent the duplicate application of `bolder` by the next rule in Safari 6. - */ - -b, -strong { - font-weight: inherit; -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font style in Android 4.3-. - */ - -dfn { - font-style: italic; -} - -/** - * Add the correct background and color in IE 9-. - */ - -mark { - background-color: #ff0; - color: #000; -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -audio, -video { - display: inline-block; -} - -/** - * Add the correct display in iOS 4-7. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Remove the border on images inside links in IE 10-. - */ - -img { - border-style: none; -} - -/** - * Hide the overflow in IE. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers (opinionated). - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: sans-serif; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` - * controls in Android 4. - * 2. Correct the inability to style clickable types in iOS and Safari. - */ - -button, -html [type="button"], /* 1 */ -[type="reset"], -[type="submit"] { - -webkit-appearance: button; /* 2 */ -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * 1. Add the correct display in IE 9-. - * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Remove the default vertical scrollbar in IE. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10-. - * 2. Remove the padding in IE 10-. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-cancel-button, -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in IE 9-. - * 1. Add the correct display in Edge, IE, and Firefox. - */ - -details, /* 1 */ -menu { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Scripting - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -canvas { - display: inline-block; -} - -/** - * Add the correct display in IE. - */ - -template { - display: none; -} - -/* Hidden - ========================================================================== */ - -/** - * Add the correct display in IE 10-. - */ - -[hidden] { - display: none; -} diff --git a/css/materialize-src/sass/components/_preloader.scss b/css/materialize-src/sass/components/_preloader.scss deleted file mode 100644 index fbe862d..0000000 --- a/css/materialize-src/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: 50px; - height: 50px; - - &.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; } -} diff --git a/css/materialize-src/sass/components/_pulse.scss b/css/materialize-src/sass/components/_pulse.scss deleted file mode 100644 index a690f36..0000000 --- a/css/materialize-src/sass/components/_pulse.scss +++ /dev/null @@ -1,34 +0,0 @@ -.pulse { - &::before { - content: ''; - display: block; - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - background-color: inherit; - border-radius: inherit; - transition: opacity .3s, transform .3s; - animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite; - z-index: -1; - } - - overflow: visible; - position: relative; -} - -@keyframes pulse-animation { - 0% { - opacity: 1; - transform: scale(1); - } - 50% { - opacity: 0; - transform: scale(1.5); - } - 100% { - opacity: 0; - transform: scale(1.5); - } -} diff --git a/css/materialize-src/sass/components/_sidenav.scss b/css/materialize-src/sass/components/_sidenav.scss deleted file mode 100644 index 98a71d8..0000000 --- a/css/materialize-src/sass/components/_sidenav.scss +++ /dev/null @@ -1,216 +0,0 @@ -.sidenav { - position: fixed; - width: $sidenav-width; - 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; - 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-line-height; - - &.active { background-color: rgba(0,0,0,.05); } - } - - li > a { - color: $sidenav-font-color; - display: block; - font-size: $sidenav-font-size; - font-weight: 500; - height: $sidenav-item-height; - line-height: $sidenav-line-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; } - - & > i, - & > [class^="mdi-"], li > a > [class*="mdi-"], - & > i.material-icons { - float: left; - height: $sidenav-item-height; - line-height: $sidenav-line-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-line-height; - } - - .user-view { - 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 { - overflow: hidden; - 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-size: $sidenav-font-size; - line-height: $sidenav-line-height / 2; - } - - .name { - margin-top: 16px; - font-weight: 500; - } - - .email { - padding-bottom: 16px; - font-weight: 400; - } - } -} - - -// Touch interaction -.drag-target { - // Right Align - &.right-aligned { - right: 0; - } - - height: 100%; - width: 10px; - position: fixed; - top: 0; - z-index: 998; -} - - -// Fixed Sidenav shown -.sidenav.sidenav-fixed { - // Right Align - &.right-aligned { - right: 0; - left: auto; - } - - left: 0; - transform: translateX(0); - position: fixed; -} - -// Fixed Sidenav hide on smaller -@media #{$medium-and-down} { - .sidenav { - &.sidenav-fixed { - transform: translateX(-105%); - - &.right-aligned { - transform: translateX(105%); - } - } - - > a { - padding: 0 $sidenav-padding; - } - - .user-view { - padding: $sidenav-padding $sidenav-padding 0; - } - } -} - - -.sidenav .collapsible-body > ul:not(.collapsible) > li.active, -.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active { - background-color: $primary-color; - a { - color: $sidenav-bg-color; - } -} -.sidenav .collapsible-body { - padding: 0; -} - - -.sidenav-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - opacity: 0; - height: 120vh; - background-color: rgba(0,0,0,.5); - z-index: 997; - display: none; -} diff --git a/css/materialize-src/sass/components/_slider.scss b/css/materialize-src/sass/components/_slider.scss deleted file mode 100644 index 2265cdb..0000000 --- a/css/materialize-src/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/css/materialize-src/sass/components/_table_of_contents.scss b/css/materialize-src/sass/components/_table_of_contents.scss deleted file mode 100644 index 638009d..0000000 --- a/css/materialize-src/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: 16px; - height: 1.5rem; - line-height: 1.5rem; - letter-spacing: .4; - display: inline-block; - - &:hover { - color: lighten(#757575, 20%); - padding-left: 15px; - border-left: 1px solid $primary-color; - } - &.active { - font-weight: 500; - padding-left: 14px; - border-left: 2px solid $primary-color; - } - } -} diff --git a/css/materialize-src/sass/components/_tabs.scss b/css/materialize-src/sass/components/_tabs.scss deleted file mode 100644 index 072d4b6..0000000 --- a/css/materialize-src/sass/components/_tabs.scss +++ /dev/null @@ -1,99 +0,0 @@ -.tabs { - &.tabs-transparent { - background-color: transparent; - - .tab a, - .tab.disabled a, - .tab.disabled a:hover { - color: rgba(255,255,255,0.7); - } - - .tab a:hover, - .tab a.active { - color: #fff; - } - - .indicator { - background-color: #fff; - } - } - - &.tabs-fixed-width { - display: flex; - - .tab { - flex-grow: 1; - } - } - - position: relative; - overflow-x: auto; - overflow-y: hidden; - height: 48px; - width: 100%; - background-color: $tabs-bg-color; - margin: 0 auto; - white-space: nowrap; - - .tab { - display: inline-block; - text-align: center; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: uppercase; - - a { - &:focus, - &:focus.active { - background-color: transparentize($tabs-underline-color, .8); - outline: none; - } - - &:hover, - &.active { - background-color: transparent; - color: $tabs-text-color; - } - - color: rgba($tabs-text-color, .7); - display: block; - width: 100%; - height: 100%; - padding: 0 24px; - font-size: 14px; - text-overflow: ellipsis; - overflow: hidden; - transition: color .28s ease, background-color .28s ease; - } - - &.disabled a, - &.disabled a:hover { - color: rgba($tabs-text-color, .4); - cursor: default; - } - } - .indicator { - position: absolute; - bottom: 0; - height: 2px; - background-color: $tabs-underline-color; - will-change: left, right; - } -} - -// Fixed Sidenav hide on smaller -@media #{$medium-and-down} { - .tabs { - display: flex; - - .tab { - flex-grow: 1; - - a { - padding: 0 12px; - } - } - } -} diff --git a/css/materialize-src/sass/components/_tapTarget.scss b/css/materialize-src/sass/components/_tapTarget.scss deleted file mode 100644 index c015f34..0000000 --- a/css/materialize-src/sass/components/_tapTarget.scss +++ /dev/null @@ -1,103 +0,0 @@ -.tap-target-wrapper { - width: 800px; - height: 800px; - position: fixed; - z-index: 1000; - visibility: hidden; - transition: visibility 0s .3s; -} - -.tap-target-wrapper.open { - visibility: visible; - transition: visibility 0s; - - .tap-target { - transform: scale(1); - opacity: .95; - transition: - transform .3s cubic-bezier(.42,0,.58,1), - opacity .3s cubic-bezier(.42,0,.58,1); - } - - .tap-target-wave::before { - transform: scale(1); - } - .tap-target-wave::after { - visibility: visible; - animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite; - transition: - opacity .3s, - transform .3s, - visibility 0s 1s; - } -} - -.tap-target { - position: absolute; - font-size: 1rem; - border-radius: 50%; - background-color: $primary-color; - box-shadow: 0 20px 20px 0 rgba(0,0,0,0.14), 0 10px 50px 0 rgba(0,0,0,0.12), 0 30px 10px -20px rgba(0,0,0,0.2); - width: 100%; - height: 100%; - opacity: 0; - transform: scale(0); - transition: - transform .3s cubic-bezier(.42,0,.58,1), - opacity .3s cubic-bezier(.42,0,.58,1); -} - -.tap-target-content { - position: relative; - display: table-cell; -} - -.tap-target-wave { - &::before, - &::after { - content: ''; - display: block; - position: absolute; - width: 100%; - height: 100%; - border-radius: 50%; - background-color: #ffffff; - } - &::before { - transform: scale(0); - transition: transform .3s; - } - &::after { - visibility: hidden; - transition: - opacity .3s, - transform .3s, - visibility 0s; - z-index: -1; - } - - position: absolute; - border-radius: 50%; - z-index: 10001; -} - -.tap-target-origin { - &:not(.btn), - &:not(.btn):hover { - background: none; - } - - top: 50%; - left: 50%; - transform: translate(-50%,-50%); - - z-index: 10002; - position: absolute !important; -} - -@media only screen and (max-width: 600px) { - .tap-target, .tap-target-wrapper { - width: 600px; - height: 600px; - } -} diff --git a/css/materialize-src/sass/components/_timepicker.scss b/css/materialize-src/sass/components/_timepicker.scss deleted file mode 100644 index fa602fb..0000000 --- a/css/materialize-src/sass/components/_timepicker.scss +++ /dev/null @@ -1,183 +0,0 @@ -/* Timepicker Containers */ -.timepicker-modal { - max-width: 325px; - max-height: none; -} - -.timepicker-container.modal-content { - display: flex; - flex-direction: column; - padding: 0; -} - -.text-primary { - color: rgba(255, 255, 255, 1); -} - - -/* Clock Digital Display */ -.timepicker-digital-display { - flex: 1 auto; - background-color: $secondary-color; - padding: 10px; - font-weight: 300; -} - -.timepicker-text-container { - font-size: 4rem; - font-weight: bold; - text-align: center; - color: rgba(255, 255, 255, 0.6); - font-weight: 400; - position: relative; - user-select: none; -} - -.timepicker-span-hours, -.timepicker-span-minutes, -.timepicker-span-am-pm div { - cursor: pointer; -} - -.timepicker-span-hours { - margin-right: 3px; -} - -.timepicker-span-minutes { - margin-left: 3px; -} - -.timepicker-display-am-pm { - font-size: 1.3rem; - position: absolute; - right: 1rem; - bottom: 1rem; - font-weight: 400; -} - - -/* Analog Clock Display */ -.timepicker-analog-display { - flex: 2.5 auto; -} - -.timepicker-plate { - background-color: $timepicker-clock-plate-bg; - border-radius: 50%; - width: 270px; - height: 270px; - overflow: visible; - position: relative; - margin: auto; - margin-top: 25px; - margin-bottom: 5px; - user-select: none; -} - -.timepicker-canvas, -.timepicker-dial { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; -} -.timepicker-minutes { - visibility: hidden; -} - -.timepicker-tick { - border-radius: 50%; - color: $timepicker-clock-color; - line-height: 40px; - text-align: center; - width: 40px; - height: 40px; - position: absolute; - cursor: pointer; - font-size: 15px; -} - -.timepicker-tick.active, -.timepicker-tick:hover { - background-color: transparentize($secondary-color, .75); -} -.timepicker-dial { - transition: transform 350ms, opacity 350ms; -} -.timepicker-dial-out { - &.timepicker-hours { - transform: scale(1.1, 1.1); - } - - &.timepicker-minutes { - transform: scale(.8, .8); - } - - opacity: 0; -} -.timepicker-canvas { - transition: opacity 175ms; - - line { - stroke: $secondary-color; - stroke-width: 4; - stroke-linecap: round; - } -} -.timepicker-canvas-out { - opacity: 0.25; -} -.timepicker-canvas-bearing { - stroke: none; - fill: $secondary-color; -} -.timepicker-canvas-bg { - stroke: none; - fill: $secondary-color; -} - - -/* Footer */ -.timepicker-footer { - margin: 0 auto; - padding: 5px 1rem; - display: flex; - justify-content: space-between; -} - -.timepicker-clear { - color: $error-color; -} - -.timepicker-close { - color: $secondary-color; -} - -.timepicker-clear, -.timepicker-close { - padding: 0 20px; -} - -/* Media Queries */ -@media #{$medium-and-up} { - .timepicker-modal { - max-width: 600px; - } - - .timepicker-container.modal-content { - flex-direction: row; - } - - .timepicker-text-container { - top: 32%; - } - - .timepicker-display-am-pm { - position: relative; - right: auto; - bottom: auto; - text-align: center; - margin-top: 1.2rem; - } -} diff --git a/css/materialize-src/sass/components/_toast.scss b/css/materialize-src/sass/components/_toast.scss deleted file mode 100644 index 412400f..0000000 --- a/css/materialize-src/sass/components/_toast.scss +++ /dev/null @@ -1,58 +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: 35px; - width: auto; - margin-top: 10px; - position: relative; - max-width:100%; - height: auto; - min-height: $toast-height; - line-height: 1.5em; - 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; - cursor: default; - - .toast-action { - color: $toast-action-color; - font-weight: 500; - margin-right: -25px; - margin-left: 3rem; - } - - &.rounded{ - border-radius: 24px; - } - - @media #{$small-and-down} { - width: 100%; - border-radius: 0; - } -} diff --git a/css/materialize-src/sass/components/_tooltip.scss b/css/materialize-src/sass/components/_tooltip.scss deleted file mode 100644 index 5ec4299..0000000 --- a/css/materialize-src/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; - position: absolute; - text-align: center; - max-width: calc(100% - 4px); - overflow: hidden; - left: 0; - top: 0; - pointer-events: none; - visibility: hidden; - background-color: #323232; -} - -.backdrop { - position: absolute; - opacity: 0; - height: 7px; - width: 14px; - border-radius: 0 0 50% 50%; - background-color: #323232; - z-index: -1; - transform-origin: 50% 0%; - visibility: hidden; -} diff --git a/css/materialize-src/sass/components/_transitions.scss b/css/materialize-src/sass/components/_transitions.scss deleted file mode 100644 index 9c3660a..0000000 --- a/css/materialize-src/sass/components/_transitions.scss +++ /dev/null @@ -1,13 +0,0 @@ -// Scale transition -.scale-transition { - &.scale-out { - transform: scale(0); - transition: transform .2s !important; - } - - &.scale-in { - transform: scale(1); - } - - transition: transform .3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important; -} \ No newline at end of file diff --git a/css/materialize-src/sass/components/_typography.scss b/css/materialize-src/sass/components/_typography.scss deleted file mode 100644 index b9b93b3..0000000 --- a/css/materialize-src/sass/components/_typography.scss +++ /dev/null @@ -1,60 +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: $font-stack; - font-weight: normal; - color: $off-black; -} -h1, h2, h3, h4, h5, h6 { - font-weight: 400; - line-height: 1.3; -} - -// 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 / 1.5) 0 ($h1-fontsize / 2.5) 0;} -h2 { font-size: $h2-fontsize; line-height: 110%; margin: ($h2-fontsize / 1.5) 0 ($h2-fontsize / 2.5) 0;} -h3 { font-size: $h3-fontsize; line-height: 110%; margin: ($h3-fontsize / 1.5) 0 ($h3-fontsize / 2.5) 0;} -h4 { font-size: $h4-fontsize; line-height: 110%; margin: ($h4-fontsize / 1.5) 0 ($h4-fontsize / 2.5) 0;} -h5 { font-size: $h5-fontsize; line-height: 110%; margin: ($h5-fontsize / 1.5) 0 ($h5-fontsize / 2.5) 0;} -h6 { font-size: $h6-fontsize; line-height: 110%; margin: ($h6-fontsize / 1.5) 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{ - $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; - } -} diff --git a/css/materialize-src/sass/components/_variables.scss b/css/materialize-src/sass/components/_variables.scss deleted file mode 100644 index 4c59c12..0000000 --- a/css/materialize-src/sass/components/_variables.scss +++ /dev/null @@ -1,349 +0,0 @@ -// ========================================================================== -// Materialize variables -// ========================================================================== -// -// Table of Contents: -// -// 1. Colors -// 2. Badges -// 3. Buttons -// 4. Cards -// 5. Carousel -// 6. Collapsible -// 7. Chips -// 8. Date + Time Picker -// 9. 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; -$badge-height: 22px !default; - - -// 3. Buttons -// ========================================================================== - -// Shared styles -$button-border: none !default; -$button-background-focus: lighten($secondary-color, 4%) !default; -$button-font-size: 14px !default; -$button-icon-font-size: 1.3rem !default; -$button-height: 36px !default; -$button-padding: 0 16px !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-font-size: 15px !default; -$button-large-icon-font-size: 1.6rem !default; -$button-large-height: $button-height * 1.5 !default; -$button-floating-large-size: 56px !default; - -// Small buttons -$button-small-font-size: 13px !default; -$button-small-icon-font-size: 1.2rem !default; -$button-small-height: $button-height * .9 !default; -$button-floating-small-size: $button-height * .9 !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: 40px !default; -$button-floating-radius: 50% !default; - - -// 4. Cards -// ========================================================================== - -$card-padding: 24px !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. Carousel -// ========================================================================== - -$carousel-height: 400px !default; -$carousel-item-height: $carousel-height / 2 !default; -$carousel-item-width: $carousel-item-height !default; - - -// 6. Collapsible -// ========================================================================== - -$collapsible-height: 3rem !default; -$collapsible-line-height: $collapsible-height !default; -$collapsible-header-color: #fff !default; -$collapsible-border-color: #ddd !default; - - -// 7. Chips -// ========================================================================== - -$chip-bg-color: #e4e4e4 !default; -$chip-border-color: #9e9e9e !default; -$chip-selected-color: #26a69a !default; -$chip-margin: 5px !default; - - -// 8. Date + Time Picker -// ========================================================================== - -$datepicker-display-font-size: 2.8rem; -$datepicker-calendar-header-color: #999; -$datepicker-weekday-color: rgba(0, 0, 0, .87) !default; -$datepicker-weekday-bg: darken($secondary-color, 7%) !default; -$datepicker-date-bg: $secondary-color !default; -$datepicker-year: rgba(255, 255, 255, .7) !default; -$datepicker-focus: rgba(0,0,0, .05) !default; -$datepicker-selected: $secondary-color !default; -$datepicker-selected-outfocus: desaturate(lighten($secondary-color, 35%), 15%) !default; -$datepicker-day-focus: transparentize(desaturate($secondary-color, 5%), .75) !default; -$datepicker-disabled-day-color: rgba(0, 0, 0, .3) !default; - -$timepicker-clock-color: rgba(0, 0, 0, .87) !default; -$timepicker-clock-plate-bg: #eee !default; - - -// 9. Dropdown -// ========================================================================== - -$dropdown-bg-color: #fff !default; -$dropdown-hover-bg-color: #eee !default; -$dropdown-color: $secondary-color !default; -$dropdown-item-height: 50px !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: 16px !default; -$input-margin-bottom: 8px; -$input-margin: 0 0 $input-margin-bottom 0 !default; -$input-padding: 0 !default; -$label-font-size: .8rem !default; -$input-disabled-color: rgba(0,0,0, .42) !default; -$input-disabled-solid-color: #949494 !default; -$input-disabled-border: 1px dotted $input-disabled-color !default; -$input-invalid-border: 1px solid $input-error-color !default; -$input-icon-size: 2rem; -$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-option-hover: rgba(0,0,0,.08) !default; -$select-option-focus: rgba(0,0,0,.08) !default; -$select-option-selected: rgba(0,0,0,.03) !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($switch-bg-color, 25%), 25%) !default; -$switch-unchecked-bg: #F1F1F1 !default; -$switch-unchecked-lever-bg: rgba(0,0,0,.38) !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; -$extra-large-and-up: "only screen and (min-width : #{$large-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-line-height: $navbar-height !default; -$navbar-height-mobile: 56px !default; -$navbar-line-height-mobile: $navbar-height-mobile !default; -$navbar-font-size: 1rem !default; -$navbar-font-color: #fff !default; -$navbar-brand-font-size: 2.1rem !default; - -// 14. Side Navigation -// ========================================================================== - -$sidenav-width: 300px !default; -$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; -$sidenav-line-height: $sidenav-item-height !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: rgba(0,0,0,.12) !default; -$table-striped-color: rgba(242, 242, 242, 0.5) !default; - - -// 19. Toasts -// ========================================================================== - -$toast-height: 48px !default; -$toast-color: #323232 !default; -$toast-text-color: #fff !default; -$toast-action-color: #eeff41; - - -// 20. Typography -// ========================================================================== - -$font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !default; -$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: 1.15rem !default; - - -// 21. Footer -// ========================================================================== - -$footer-font-color: #fff !default; -$footer-bg-color: $primary-color !default; -$footer-copyright-font-color: rgba(255,255,255,.8) !default; -$footer-copyright-bg-color: rgba(51,51,51,.08) !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; -$collection-line-height: 1.5rem !default; - - -// 24. Progress Bar -// ========================================================================== - -$progress-bar-color: $secondary-color !default; diff --git a/css/materialize-src/sass/components/_waves.scss b/css/materialize-src/sass/components/_waves.scss deleted file mode 100644 index 5a3229b..0000000 --- a/css/materialize-src/sass/components/_waves.scss +++ /dev/null @@ -1,114 +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; - user-select: none; - -webkit-tap-highlight-color: transparent; - vertical-align: middle; - z-index: 1; - transition: .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); - 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-input-wrapper { - border-radius: 0.2em; - vertical-align: bottom; - - .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; -} \ No newline at end of file diff --git a/css/materialize-src/sass/components/forms/_checkboxes.scss b/css/materialize-src/sass/components/forms/_checkboxes.scss deleted file mode 100644 index ddc7d96..0000000 --- a/css/materialize-src/sass/components/forms/_checkboxes.scss +++ /dev/null @@ -1,200 +0,0 @@ -/* Checkboxes - ========================================================================== */ - -/* Remove default checkbox */ -[type="checkbox"]:not(:checked), -[type="checkbox"]:checked { - position: absolute; - opacity: 0; - pointer-events: none; -} - -// Checkbox Styles -[type="checkbox"] { - // Text Label Style - + span:not(.lever) { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - user-select: none; - } - - /* checkbox aspect */ - + span:not(.lever):before, - &:not(.filled-in) + span:not(.lever):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: 3px; - transition: .2s; - } - - &:not(.filled-in) + span:not(.lever):after { - border: 0; - transform: scale(0); - } - - &:not(:checked):disabled + span:not(.lever):before { - border: none; - background-color: $input-disabled-color; - } - - // Focused styles - &.tabbed:focus + span:not(.lever):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 { - + span:not(.lever):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 + span:before { - border-right: 2px solid $input-disabled-color; - border-bottom: 2px solid $input-disabled-color; - } -} - -/* Indeterminate checkbox */ -[type="checkbox"]:indeterminate { - + span:not(.lever):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 + span:not(.lever):before { - border-right: 2px solid $input-disabled-color; - background-color: transparent; - } -} - -// Filled in Style -[type="checkbox"].filled-in { - // General - + span:not(.lever):after { - border-radius: 2px; - } - - + span:not(.lever):before, - + span:not(.lever):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) + span:not(.lever):before { - width: 0; - height: 0; - border: 3px solid transparent; - left: 6px; - top: 10px; - transform: rotateZ(37deg); - transform-origin: 100% 100%; - } - - &:not(:checked) + span:not(.lever):after { - height: 20px; - width: 20px; - background-color: transparent; - border: 2px solid $radio-empty-color; - top: 0px; - z-index: 0; - } - - // Checked style - &:checked { - + span:not(.lever):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; - transform: rotateZ(37deg); - transform-origin: 100% 100%; - } - - + span:not(.lever):after { - top: 0; - width: 20px; - height: 20px; - border: 2px solid $secondary-color; - background-color: $secondary-color; - z-index: 0; - } - } - - // Focused styles - &.tabbed:focus + span:not(.lever):after { - border-radius: 2px; - border-color: $radio-empty-color; - background-color: rgba(0,0,0,.1); - } - - &.tabbed:checked:focus + span:not(.lever):after { - border-radius: 2px; - background-color: $secondary-color; - border-color: $secondary-color; - } - - // Disabled style - &:disabled:not(:checked) + span:not(.lever):before { - background-color: transparent; - border: 2px solid transparent; - } - - &:disabled:not(:checked) + span:not(.lever):after { - border-color: transparent; - background-color: $input-disabled-solid-color; - } - - &:disabled:checked + span:not(.lever):before { - background-color: transparent; - } - - &:disabled:checked + span:not(.lever):after { - background-color: $input-disabled-solid-color; - border-color: $input-disabled-solid-color; - } -} diff --git a/css/materialize-src/sass/components/forms/_file-input.scss b/css/materialize-src/sass/components/forms/_file-input.scss deleted file mode 100644 index e2becc9..0000000 --- a/css/materialize-src/sass/components/forms/_file-input.scss +++ /dev/null @@ -1,44 +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] { - - // Needed to override webkit button - &::-webkit-file-upload-button { - display: none; - } - - 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/css/materialize-src/sass/components/forms/_forms.scss b/css/materialize-src/sass/components/forms/_forms.scss deleted file mode 100644 index e9b65b4..0000000 --- a/css/materialize-src/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/css/materialize-src/sass/components/forms/_input-fields.scss b/css/materialize-src/sass/components/forms/_input-fields.scss deleted file mode 100644 index f18c2f8..0000000 --- a/css/materialize-src/sass/components/forms/_input-fields.scss +++ /dev/null @@ -1,354 +0,0 @@ -/* Text Inputs + Textarea - ========================================================================== */ - -/* Style Placeholders */ - -::placeholder { - color: $placeholder-text-color; -} - -/* Text inputs */ - -input:not([type]), -input[type=text]:not(.browser-default), -input[type=password]:not(.browser-default), -input[type=email]:not(.browser-default), -input[type=url]:not(.browser-default), -input[type=time]:not(.browser-default), -input[type=date]:not(.browser-default), -input[type=datetime]:not(.browser-default), -input[type=datetime-local]:not(.browser-default), -input[type=tel]:not(.browser-default), -input[type=number]:not(.browser-default), -input[type=search]:not(.browser-default), -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: box-shadow .3s, border .3s; - - // 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; - } - - // Hide helper text on data message - &.valid ~ .helper-text[data-success], - &:focus.valid ~ .helper-text[data-success], - &.invalid ~ .helper-text[data-error], - &:focus.invalid ~ .helper-text[data-error] { - @extend %hidden-text; - } - - // Valid Input Style - &.valid, - &:focus.valid { - @extend %valid-input-style; - } - - // Custom Success Message - &.valid ~ .helper-text:after, - &:focus.valid ~ .helper-text:after { - @extend %custom-success-message; - } - &:focus.valid ~ label { - color: $input-success-color; - } - - // Invalid Input Style - &.invalid, - &:focus.invalid { - @extend %invalid-input-style; - } - - // Custom Error message - &.invalid ~ .helper-text:after, - &:focus.invalid ~ .helper-text:after { - @extend %custom-error-message; - } - &:focus.invalid ~ label { - color: $input-error-color; - } - - // Full width label when using validate for error messages - &.validate + label { - width: 100%; - } - - // Form Message Shared Styles - & + label:after { - @extend %input-after-style; - } -} - - -/* Validation Sass Placeholders */ -%valid-input-style { - border-bottom: 1px solid $input-success-color; - box-shadow: 0 1px 0 0 $input-success-color; -} -%invalid-input-style { - border-bottom: $input-invalid-border; - box-shadow: 0 1px 0 0 $input-error-color; -} -%hidden-text { - color: transparent; - user-select: none; - pointer-events: none; -} -%custom-success-message { - content: attr(data-success); - color: $input-success-color; -} -%custom-error-message { - content: attr(data-error); - color: $input-error-color; -} -%input-after-style { - display: block; - content: ""; - position: absolute; - top: 100%; - left: 0; - opacity: 0; - transition: .2s opacity ease-out, .2s color ease-out; -} - - -// Styling for input field wrapper -.input-field { - // Inline styles - &.inline { - display: inline-block; - vertical-align: middle; - margin-left: 5px; - - input, - .select-dropdown { - margin-bottom: 1rem; - } - } - - // Gutter spacing - &.col { - label { - left: $gutter-width / 2; - } - - .prefix ~ label, - .prefix ~ .validate ~ label { - width: calc(100% - 3rem - #{$gutter-width}); - } - } - - position: relative; - margin-top: 1rem; - margin-bottom: 1rem; - - & > label { - color: $input-border-color; - position: absolute; - top: 0; - left: 0; - font-size: 1rem; - cursor: text; - transition: transform .2s ease-out, color .2s ease-out; - transform-origin: 0% 100%; - text-align: initial; - transform: translateY(12px); - - &:not(.label-icon).active { - transform: translateY(-14px) scale(.8); - transform-origin: 0 0; - } - } - - // Autofill + date + time inputs - & > input[type]:-webkit-autofill:not(.browser-default):not([type="search"]) + label, - & > input[type=date]:not(.browser-default) + label, - & > input[type=time]:not(.browser-default) + label { - transform: translateY(-14px) scale(.8); - transform-origin: 0 0; - } - - .helper-text { - &::after { - opacity: 1; - position: absolute; - top: 0; - left: 0; - } - - position: relative; - min-height: 18px; - display: block; - font-size: 12px; - color: rgba(0,0,0,.54); - } - - // Prefix Icons - .prefix { - position: absolute; - width: $input-height; - font-size: $input-icon-size; - transition: color .2s; - top: ($input-height - $input-icon-size) / 2; - - &.active { color: $input-focus-color; } - } - - .prefix ~ input, - .prefix ~ textarea, - .prefix ~ label, - .prefix ~ .validate ~ label, - .prefix ~ .helper-text, - .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; - transition: .3s background-color; - - .nav-wrapper & { - height: inherit; - padding-left: 4rem; - width: calc(100% - 4rem); - border: 0; - box-shadow: none; - } - - &:focus:not(.browser-default) { - background-color: $input-background; - border: 0; - box-shadow: none; - color: #444; - - & + label i, - & ~ .mdi-navigation-close, - & ~ .material-icons { - color: #444; - } - } - - & + .label-icon { - transform: none; - left: 1rem; - } - - & ~ .mdi-navigation-close, - & ~ .material-icons { - position: absolute; - top: 0; - right: 1rem; - color: transparent; - cursor: pointer; - font-size: $input-icon-size; - transition: .3s color; - } -} - - -/* Textarea */ - -// Default textarea -textarea { - width: 100%; - height: $input-height; - background-color: transparent; - - &.materialize-textarea { - line-height: normal; - overflow-y: hidden; /* prevents scroll bar flash */ - padding: .8rem 0 .8rem 0; /* prevents text jump on Enter keypress */ - resize: none; - min-height: $input-height; - box-sizing: border-box; - } -} - -// For textarea autoresize -.hiddendiv { - visibility: hidden; - 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 */ - - // Reduces repaints - position: absolute; - top: 0; - z-index: -1; -} - - -/* Autocomplete */ -.autocomplete-content { - li { - .highlight { color: #444; } - - img { - height: $dropdown-item-height - 10; - width: $dropdown-item-height - 10; - margin: 5px 15px; - } - } -} - -/* Character Counter */ -.character-counter { - min-height: 18px; -} diff --git a/css/materialize-src/sass/components/forms/_radio-buttons.scss b/css/materialize-src/sass/components/forms/_radio-buttons.scss deleted file mode 100644 index c9f7296..0000000 --- a/css/materialize-src/sass/components/forms/_radio-buttons.scss +++ /dev/null @@ -1,115 +0,0 @@ -/* Radio Buttons - ========================================================================== */ - -// Remove default Radio Buttons -[type="radio"]:not(:checked), -[type="radio"]:checked { - position: absolute; - opacity: 0; - pointer-events: none; -} - -[type="radio"]:not(:checked) + span, -[type="radio"]:checked + span { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - transition: .28s ease; - user-select: none; -} - -[type="radio"] + span:before, -[type="radio"] + span: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) + span:before, -[type="radio"]:not(:checked) + span:after, -[type="radio"]:checked + span:before, -[type="radio"]:checked + span:after, -[type="radio"].with-gap:checked + span:before, -[type="radio"].with-gap:checked + span:after { - border-radius: 50%; -} - -[type="radio"]:not(:checked) + span:before, -[type="radio"]:not(:checked) + span:after { - border: 2px solid $radio-empty-color; -} - -[type="radio"]:not(:checked) + span:after { - transform: scale(0); -} - -/* Checked styles */ -[type="radio"]:checked + span:before { - border: 2px solid transparent; -} - -[type="radio"]:checked + span:after, -[type="radio"].with-gap:checked + span:before, -[type="radio"].with-gap:checked + span:after { - border: $radio-border; -} - -[type="radio"]:checked + span:after, -[type="radio"].with-gap:checked + span:after { - background-color: $radio-fill-color; -} - -[type="radio"]:checked + span:after { - transform: scale(1.02); -} - -/* Radio With gap */ -[type="radio"].with-gap:checked + span:after { - transform: scale(.5); -} - -/* Focused styles */ -[type="radio"].tabbed:focus + span:before { - box-shadow: 0 0 0 10px rgba(0,0,0,.1); -} - -/* Disabled Radio With gap */ -[type="radio"].with-gap:disabled:checked + span:before { - border: 2px solid $input-disabled-color; -} - -[type="radio"].with-gap:disabled:checked + span:after { - border: none; - background-color: $input-disabled-color; -} - -/* Disabled style */ -[type="radio"]:disabled:not(:checked) + span:before, -[type="radio"]:disabled:checked + span:before { - background-color: transparent; - border-color: $input-disabled-color; -} - -[type="radio"]:disabled + span { - color: $input-disabled-color; -} - -[type="radio"]:disabled:not(:checked) + span:before { - border-color: $input-disabled-color; -} - -[type="radio"]:disabled:checked + span:after { - background-color: $input-disabled-color; - border-color: $input-disabled-solid-color; -} diff --git a/css/materialize-src/sass/components/forms/_range.scss b/css/materialize-src/sass/components/forms/_range.scss deleted file mode 100644 index 18607f5..0000000 --- a/css/materialize-src/sass/components/forms/_range.scss +++ /dev/null @@ -1,161 +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; - top: 10px; - left: 0; - border: none; - height: 0; - width: 0; - border-radius: 50%; - background-color: $radio-fill-color; - margin-left: 7px; - - 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; - } - } -} - -// Shared -@mixin range-track { - height: $track-height; - background: #c2c0c2; - border: none; -} - -@mixin range-thumb { - border: none; - height: $range-height; - width: $range-width; - border-radius: 50%; - background: $radio-fill-color; - transition: box-shadow .3s; -} - -// WebKit -input[type=range] { - -webkit-appearance: none; -} - -input[type=range]::-webkit-slider-runnable-track { - @include range-track; -} - -input[type=range]::-webkit-slider-thumb { - @include range-thumb; - -webkit-appearance: none; - background-color: $radio-fill-color; - transform-origin: 50% 50%; - margin: -5px 0 0 0; - -} - -.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb { - box-shadow: 0 0 0 10px rgba($radio-fill-color, .26); -} - -// 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 { - @include range-track; -} - -input[type=range]::-moz-focus-inner { - border: 0; -} - -input[type=range]::-moz-range-thumb { - @include range-thumb; - margin-top: -5px; -} - -// hide the outline behind the border -input[type=range]:-moz-focusring { - outline: 1px solid #fff; - outline-offset: -1px; -} - -.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb { - box-shadow: 0 0 0 10px rgba($radio-fill-color, .26); -} - -// 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 { - @include range-thumb; -} - -.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb { - box-shadow: 0 0 0 10px rgba($radio-fill-color, .26); -} diff --git a/css/materialize-src/sass/components/forms/_select.scss b/css/materialize-src/sass/components/forms/_select.scss deleted file mode 100644 index 2fd04d3..0000000 --- a/css/materialize-src/sass/components/forms/_select.scss +++ /dev/null @@ -1,180 +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 { - &.valid .helper-text[data-success], - &.invalid ~ .helper-text[data-error] { - @extend %hidden-text; - } - - &.valid { - & > input.select-dropdown { - @extend %valid-input-style; - } - - & ~ .helper-text:after { - @extend %custom-success-message; - } - } - - &.invalid { - & > input.select-dropdown, - & > input.select-dropdown:focus { - @extend %invalid-input-style; - } - - & ~ .helper-text:after { - @extend %custom-error-message; - } - } - - &.valid + label, - &.invalid + label { - width: 100%; - pointer-events: none; - } - - & + label:after { - @extend %input-after-style; - } - - position: relative; - - input.select-dropdown { - &:focus { - border-bottom: 1px solid $input-focus-color; - } - 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; - user-select:none; - z-index: 1; - } - - .caret { - position: absolute; - right: 0; - top: 0; - bottom: 0; - margin: auto 0; - z-index: 0; - fill: rgba(0,0,0,.87); - } - - & + label { - position: absolute; - top: -26px; - font-size: $label-font-size; - } -} - -// Disabled styles -select:disabled { - color: $input-disabled-color; -} - -.select-wrapper.disabled { - + label { - color: $input-disabled-color; - } - .caret { - fill: $input-disabled-color; - } -} - -.select-wrapper input.select-dropdown:disabled { - color: $input-disabled-color; - cursor: default; - user-select: none; -} - -.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; -} - -body.keyboard-focused { - .select-dropdown.dropdown-content li:focus { - background-color: $select-option-focus; - } -} - -.select-dropdown.dropdown-content { - li { - &:hover { - background-color: $select-option-hover; - } - - &.selected { - background-color: $select-option-selected; - } - } -} - -// 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/css/materialize-src/sass/components/forms/_switches.scss b/css/materialize-src/sass/components/forms/_switches.scss deleted file mode 100644 index 5976779..0000000 --- a/css/materialize-src/sass/components/forms/_switches.scss +++ /dev/null @@ -1,89 +0,0 @@ -/* Switch - ========================================================================== */ - -.switch, -.switch * { - -webkit-tap-highlight-color: transparent; - 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; - - &:before, &:after { - left: 18px; - } - - &:after { - background-color: $switch-bg-color; - } - } -} - -.switch label .lever { - content: ""; - display: inline-block; - position: relative; - width: 36px; - height: 14px; - background-color: $switch-unchecked-lever-bg; - border-radius: $switch-radius; - margin-right: 10px; - transition: background 0.3s ease; - vertical-align: middle; - margin: 0 16px; - - &:before, &:after { - content: ""; - position: absolute; - display: inline-block; - width: 20px; - height: 20px; - border-radius: 50%; - left: 0; - top: -3px; - transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease; - } - - &:before { - background-color: transparentize($switch-bg-color, .85); - } - - &:after { - background-color: $switch-unchecked-bg; - box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); - } -} - -// Switch active style -input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before, -input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before { - transform: scale(2.4); - background-color: transparentize($switch-bg-color, .85); -} - -input[type=checkbox]:not(:disabled) ~ .lever:active:before, -input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before { - transform: scale(2.4); - background-color: rgba(0,0,0,.08); -} - -// Disabled Styles -.switch input[type=checkbox][disabled] + .lever { - cursor: default; - background-color: rgba(0,0,0,.12); -} - -.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/css/materialize-src/sass/materialize.scss b/css/materialize-src/sass/materialize.scss deleted file mode 100644 index 2e694ad..0000000 --- a/css/materialize-src/sass/materialize.scss +++ /dev/null @@ -1,44 +0,0 @@ -@charset "UTF-8"; - -// Color -@import "components/color-variables"; -@import "components/color-classes"; - -// Overrides -@import "overrides"; - -// Variables; -@import "components/variables"; - -// Reset -@import "components/normalize"; - -// components -@import "components/global"; -@import "components/badges"; -@import "components/icons-material-design"; -@import "components/grid"; -@import "components/navbar"; -@import "components/typography"; -@import "components/transitions"; -@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/tapTarget"; -@import "components/pulse"; -@import "components/datepicker"; -@import "components/timepicker"; \ No newline at end of file diff --git a/css/materialize-src/sass/overrides.scss b/css/materialize-src/sass/overrides.scss deleted file mode 100644 index c9b7a20..0000000 --- a/css/materialize-src/sass/overrides.scss +++ /dev/null @@ -1,18 +0,0 @@ -$primary-color: #372c4b !default; -$primary-color-light: #e0dde5 !default; - -.primary-color-text { - color: $primary-color; -} - -.primary-color { - background-color: $primary-color; -} - -.primary-color-light-text { - color: $primary-color-light; -} - -.primary-color-light { - background-color: $primary-color-light; -} \ No newline at end of file diff --git a/css/materialize.css b/css/materialize.css deleted file mode 100644 index b2e46b7..0000000 --- a/css/materialize.css +++ /dev/null @@ -1,8111 +0,0 @@ -@charset "UTF-8"; -.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; -} - -.primary-color-text { - color: #372c4b; -} - -.primary-color { - background-color: #372c4b; -} - -.primary-color-light-text { - color: #e0dde5; -} - -.primary-color-light { - background-color: #e0dde5; -} - -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ -/* Document - ========================================================================== */ -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in - * IE on Windows Phone and in iOS. - */ -html { - line-height: 1.15; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ -} - -/* Sections - ========================================================================== */ -/** - * Remove the margin in all browsers (opinionated). - */ -body { - margin: 0; -} - -/** - * Add the correct display in IE 9-. - */ -article, -aside, -footer, -header, -nav, -section { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ -/** - * Add the correct display in IE 9-. - * 1. Add the correct display in IE. - */ -figcaption, -figure, -main { - /* 1 */ - display: block; -} - -/** - * Add the correct margin in IE 8. - */ -figure { - margin: 1em 40px; -} - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ -hr { - box-sizing: content-box; - /* 1 */ - height: 0; - /* 1 */ - overflow: visible; - /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ -pre { - font-family: monospace, monospace; - /* 1 */ - font-size: 1em; - /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ -/** - * 1. Remove the gray background on active links in IE 10. - * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. - */ -a { - background-color: transparent; - /* 1 */ - -webkit-text-decoration-skip: objects; - /* 2 */ -} - -/** - * 1. Remove the bottom border in Chrome 57- and Firefox 39-. - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ -abbr[title] { - border-bottom: none; - /* 1 */ - text-decoration: underline; - /* 2 */ - text-decoration: underline dotted; - /* 2 */ -} - -/** - * Prevent the duplicate application of `bolder` by the next rule in Safari 6. - */ -b, -strong { - font-weight: inherit; -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ -code, -kbd, -samp { - font-family: monospace, monospace; - /* 1 */ - font-size: 1em; - /* 2 */ -} - -/** - * Add the correct font style in Android 4.3-. - */ -dfn { - font-style: italic; -} - -/** - * Add the correct background and color in IE 9-. - */ -mark { - background-color: #ff0; - color: #000; -} - -/** - * Add the correct font size in all browsers. - */ -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ -/** - * Add the correct display in IE 9-. - */ -audio, -video { - display: inline-block; -} - -/** - * Add the correct display in iOS 4-7. - */ -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Remove the border on images inside links in IE 10-. - */ -img { - border-style: none; -} - -/** - * Hide the overflow in IE. - */ -svg:not(:root) { - overflow: hidden; -} - -/* Forms - ========================================================================== */ -/** - * 1. Change the font styles in all browsers (opinionated). - * 2. Remove the margin in Firefox and Safari. - */ -button, -input, -optgroup, -select, -textarea { - font-family: sans-serif; - /* 1 */ - font-size: 100%; - /* 1 */ - line-height: 1.15; - /* 1 */ - margin: 0; - /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ -button, -input { - /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ -button, -select { - /* 1 */ - text-transform: none; -} - -/** - * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` - * controls in Android 4. - * 2. Correct the inability to style clickable types in iOS and Safari. - */ -button, -html [type=button], -[type=reset], -[type=submit] { - -webkit-appearance: button; - /* 2 */ -} - -/** - * Remove the inner border and padding in Firefox. - */ -button::-moz-focus-inner, -[type=button]::-moz-focus-inner, -[type=reset]::-moz-focus-inner, -[type=submit]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ -button:-moz-focusring, -[type=button]:-moz-focusring, -[type=reset]:-moz-focusring, -[type=submit]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ -legend { - box-sizing: border-box; - /* 1 */ - color: inherit; - /* 2 */ - display: table; - /* 1 */ - max-width: 100%; - /* 1 */ - padding: 0; - /* 3 */ - white-space: normal; - /* 1 */ -} - -/** - * 1. Add the correct display in IE 9-. - * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ -progress { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ -} - -/** - * Remove the default vertical scrollbar in IE. - */ -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10-. - * 2. Remove the padding in IE 10-. - */ -[type=checkbox], -[type=radio] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ -[type=number]::-webkit-inner-spin-button, -[type=number]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ -[type=search] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/** - * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. - */ -[type=search]::-webkit-search-cancel-button, -[type=search]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* Interactive - ========================================================================== */ -/* - * Add the correct display in IE 9-. - * 1. Add the correct display in Edge, IE, and Firefox. - */ -details, -menu { - display: block; -} - -/* - * Add the correct display in all browsers. - */ -summary { - display: list-item; -} - -/* Scripting - ========================================================================== */ -/** - * Add the correct display in IE 9-. - */ -canvas { - display: inline-block; -} - -/** - * Add the correct display in IE. - */ -template { - display: none; -} - -/* Hidden - ========================================================================== */ -/** - * Add the correct display in IE 10-. - */ -[hidden] { - display: none; -} - -html { - box-sizing: border-box; -} - -*, *:before, *:after { - box-sizing: inherit; -} - -button, -input, -optgroup, -select, -textarea { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; -} - -ul:not(.browser-default) { - padding-left: 0; - list-style-type: none; -} -ul:not(.browser-default) > li { - list-style-type: none; -} - -a { - color: #039be5; - text-decoration: none; - -webkit-tap-highlight-color: transparent; -} - -.valign-wrapper { - display: flex; - align-items: center; -} - -.clearfix { - clear: both; -} - -.z-depth-0 { - box-shadow: none !important; -} - -/* 2dp elevation modified*/ -.z-depth-1, .sidenav, .collapsible, .dropdown-content, .btn-floating, .btn, .btn-small, .btn-large, .toast, .card, .card-panel, nav { - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); -} - -.z-depth-1-half, .btn-floating:hover, .btn:hover, .btn-small:hover, .btn-large:hover { - box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); -} - -/* 6dp elevation modified*/ -.z-depth-2 { - box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3); -} - -/* 12dp elevation modified*/ -.z-depth-3 { - box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2); -} - -/* 16dp elevation */ -.z-depth-4 { - box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -7px rgba(0, 0, 0, 0.2); -} - -/* 24dp elevation */ -.z-depth-5, .modal { - box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2); -} - -.hoverable { - transition: box-shadow 0.25s; -} -.hoverable:hover { - 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 #372c4b; -} - -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: #372c4b; -} -.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: ""; - 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-container .parallax { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; -} -.parallax-container .parallax img { - opacity: 0; - position: absolute; - left: 50%; - bottom: 0; - min-width: 100%; - min-height: 100%; - transform: translate3d(0, 0, 0); - 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; - 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 : 1201px) { - .hide-on-extra-large-only { - display: none !important; - } -} - -@media only screen and (min-width : 1201px) { - .show-on-extra-large { - display: block !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; - } -} - -.page-footer { - padding-top: 20px; - color: #fff; - background-color: #372c4b; -} -.page-footer .footer-copyright { - overflow: hidden; - min-height: 50px; - display: flex; - align-items: center; - justify-content: space-between; - padding: 10px 0px; - 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; - border-collapse: collapse; - border-spacing: 0; -} -table.striped tr { - border-bottom: none; -} -table.striped > tbody > tr:nth-child(odd) { - background-color: rgba(242, 242, 242, 0.5); -} -table.striped > tbody > tr > td { - border-radius: 0; -} -table.highlight > tbody > tr { - transition: background-color 0.25s ease; -} -table.highlight > tbody > tr:hover { - background-color: rgba(242, 242, 242, 0.5); -} -table.centered thead tr th, table.centered tbody tr td { - text-align: center; -} - -tr { - border-bottom: 1px solid rgba(0, 0, 0, 0.12); -} - -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: " "; - } - 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: " "; - } - 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 { - border-bottom: none; - padding: 0 10px; - } - table.responsive-table thead { - border: 0; - border-right: 1px solid rgba(0, 0, 0, 0.12); - } -} -.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:not(.circle-clipper) > .circle, -.collection .collection-item.avatar :not(.circle-clipper) > .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: 0.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; -} - -.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 0.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; - 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; - animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 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; -} - -.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 { - 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; -} - -span.badge { - min-width: 3rem; - padding: 0 6px; - margin-left: 14px; - text-align: center; - font-size: 1rem; - line-height: 22px; - height: 22px; - color: #757575; - float: right; - 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 { - display: inline-block; - float: none; - margin-left: 4px; - line-height: 22px; - height: 22px; - -webkit-font-smoothing: auto; -} - -.collection-item span.badge { - margin-top: calc(0.75rem - 11px); -} - -.collapsible span.badge { - margin-left: auto; -} - -.sidenav span.badge { - margin-top: calc(24px - 11px); -} - -table span.badge { - display: inline-block; - float: none; - margin-left: auto; -} - -/* This is needed for some mobile phones to display the Google Icon font properly */ -.material-icons { - text-rendering: optimizeLegibility; - 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%; - } -} -.col .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%; - } -} -@media only screen and (min-width : 1201px) { - .row .col.xl1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.xl12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.offset-xl1 { - margin-left: 8.3333333333%; - } - .row .col.pull-xl1 { - right: 8.3333333333%; - } - .row .col.push-xl1 { - left: 8.3333333333%; - } - .row .col.offset-xl2 { - margin-left: 16.6666666667%; - } - .row .col.pull-xl2 { - right: 16.6666666667%; - } - .row .col.push-xl2 { - left: 16.6666666667%; - } - .row .col.offset-xl3 { - margin-left: 25%; - } - .row .col.pull-xl3 { - right: 25%; - } - .row .col.push-xl3 { - left: 25%; - } - .row .col.offset-xl4 { - margin-left: 33.3333333333%; - } - .row .col.pull-xl4 { - right: 33.3333333333%; - } - .row .col.push-xl4 { - left: 33.3333333333%; - } - .row .col.offset-xl5 { - margin-left: 41.6666666667%; - } - .row .col.pull-xl5 { - right: 41.6666666667%; - } - .row .col.push-xl5 { - left: 41.6666666667%; - } - .row .col.offset-xl6 { - margin-left: 50%; - } - .row .col.pull-xl6 { - right: 50%; - } - .row .col.push-xl6 { - left: 50%; - } - .row .col.offset-xl7 { - margin-left: 58.3333333333%; - } - .row .col.pull-xl7 { - right: 58.3333333333%; - } - .row .col.push-xl7 { - left: 58.3333333333%; - } - .row .col.offset-xl8 { - margin-left: 66.6666666667%; - } - .row .col.pull-xl8 { - right: 66.6666666667%; - } - .row .col.push-xl8 { - left: 66.6666666667%; - } - .row .col.offset-xl9 { - margin-left: 75%; - } - .row .col.pull-xl9 { - right: 75%; - } - .row .col.push-xl9 { - left: 75%; - } - .row .col.offset-xl10 { - margin-left: 83.3333333333%; - } - .row .col.pull-xl10 { - right: 83.3333333333%; - } - .row .col.push-xl10 { - left: 83.3333333333%; - } - .row .col.offset-xl11 { - margin-left: 91.6666666667%; - } - .row .col.pull-xl11 { - right: 91.6666666667%; - } - .row .col.push-xl11 { - left: 91.6666666667%; - } - .row .col.offset-xl12 { - margin-left: 100%; - } - .row .col.pull-xl12 { - right: 100%; - } - .row .col.push-xl12 { - left: 100%; - } -} - -nav { - color: #fff; - background-color: #372c4b; - width: 100%; - height: 56px; - line-height: 56px; -} -nav.nav-extended { - height: auto; -} -nav.nav-extended .nav-wrapper { - min-height: 56px; - height: auto; -} -nav.nav-extended .nav-content { - position: relative; - line-height: normal; -} -nav a { - color: #fff; -} -nav i, -nav [class^=mdi-], nav [class*=mdi-], -nav i.material-icons { - display: block; - font-size: 24px; - height: 56px; - line-height: 56px; -} -nav .nav-wrapper { - position: relative; - height: 100%; -} -@media only screen and (min-width : 993px) { - nav a.sidenav-trigger { - display: none; - } -} -nav .sidenav-trigger { - float: left; - position: relative; - z-index: 1; - height: 56px; - margin: 0 18px; -} -nav .sidenav-trigger i { - height: 56px; - line-height: 56px; -} -nav .brand-logo { - position: absolute; - color: #fff; - display: inline-block; - font-size: 2.1rem; - padding: 0; -} -nav .brand-logo.center { - left: 50%; - transform: translateX(-50%); -} -@media only screen and (max-width : 992px) { - nav .brand-logo { - left: 50%; - transform: translateX(-50%); - } - nav .brand-logo.left, nav .brand-logo.right { - padding: 0; - 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 .nav-title { - display: inline-block; - font-size: 32px; - padding: 28px 0; -} -nav ul { - margin: 0; -} -nav ul li { - transition: background-color 0.3s; - float: left; - padding: 0; -} -nav ul li.active { - background-color: rgba(0, 0, 0, 0.1); -} -nav ul a { - transition: background-color 0.3s; - font-size: 1rem; - color: #fff; - display: block; - padding: 0 15px; - cursor: pointer; -} -nav ul a.btn, nav ul a.btn-small, 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.btn > .material-icons, nav ul a.btn-small > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons { - height: inherit; - line-height: inherit; -} -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 0.3s; -} -nav .input-field label.active i { - color: #fff; -} - -.navbar-fixed { - position: relative; - height: 56px; - z-index: 997; -} -.navbar-fixed nav { - position: fixed; -} - -@media only screen and (min-width : 601px) { - nav.nav-extended .nav-wrapper { - min-height: 64px; - } - - nav, nav .nav-wrapper i, nav a.sidenav-trigger, nav a.sidenav-trigger i { - height: 64px; - line-height: 64px; - } - - .navbar-fixed { - height: 64px; - } -} -a { - text-decoration: none; -} - -html { - line-height: 1.5; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", 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.3; -} - -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.8rem 0 1.68rem 0; -} - -h2 { - font-size: 3.56rem; - line-height: 110%; - margin: 2.3733333333rem 0 1.424rem 0; -} - -h3 { - font-size: 2.92rem; - line-height: 110%; - margin: 1.9466666667rem 0 1.168rem 0; -} - -h4 { - font-size: 2.28rem; - line-height: 110%; - margin: 1.52rem 0 0.912rem 0; -} - -h5 { - font-size: 1.64rem; - line-height: 110%; - margin: 1.0933333333rem 0 0.656rem 0; -} - -h6 { - font-size: 1.15rem; - line-height: 110%; - margin: 0.7666666667rem 0 0.46rem 0; -} - -em { - font-style: italic; -} - -strong { - font-weight: 500; -} - -small { - font-size: 75%; -} - -.light { - font-weight: 300; -} - -.thin { - font-weight: 200; -} - -@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; - } -} - -.scale-transition { - transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important; -} -.scale-transition.scale-out { - transform: scale(0); - transition: transform 0.2s !important; -} -.scale-transition.scale-in { - transform: scale(1); -} - -.card-panel { - transition: box-shadow 0.25s; - padding: 24px; - 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 0.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: 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 { - border-radius: 2px 0 0 2px; - max-width: 100%; - width: auto; -} -.card.horizontal .card-stacked { - display: flex; - flex-direction: column; - flex: 1; - position: relative; -} -.card.horizontal .card-stacked .card-content { - 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; - max-width: 100%; - padding: 24px; -} -.card .card-content { - padding: 24px; - border-radius: 0 0 2px 2px; -} -.card .card-content p { - margin: 0; -} -.card .card-content .card-title { - display: block; - line-height: 32px; - margin-bottom: 8px; -} -.card .card-content .card-title i { - line-height: 32px; -} -.card .card-action { - background-color: inherit; - border-top: 1px solid rgba(160, 160, 160, 0.2); - position: relative; - padding: 16px 24px; -} -.card .card-action:last-child { - border-radius: 0 0 2px 2px; -} -.card .card-action a:not(.btn):not(.btn-small):not(.btn-large):not(.btn-large):not(.btn-floating) { - color: #ffab40; - margin-right: 24px; - transition: color 0.3s ease; - text-transform: uppercase; -} -.card .card-action a:not(.btn):not(.btn-small):not(.btn-large):not(.btn-large):not(.btn-floating):hover { - color: #ffd8a6; -} -.card .card-reveal { - padding: 24px; - position: absolute; - background-color: #fff; - width: 100%; - overflow-y: auto; - left: 0; - 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: 35px; - width: auto; - margin-top: 10px; - position: relative; - max-width: 100%; - height: auto; - min-height: 48px; - line-height: 1.5em; - background-color: #323232; - padding: 10px 25px; - font-size: 1.1rem; - font-weight: 300; - color: #fff; - display: flex; - align-items: center; - justify-content: space-between; - cursor: default; -} -.toast .toast-action { - color: #eeff41; - font-weight: 500; - margin-right: -25px; - margin-left: 3rem; -} -.toast.rounded { - border-radius: 24px; -} -@media only screen and (max-width : 600px) { - .toast { - width: 100%; - border-radius: 0; - } -} - -.tabs { - position: relative; - overflow-x: auto; - overflow-y: hidden; - height: 48px; - width: 100%; - background-color: #fff; - margin: 0 auto; - white-space: nowrap; -} -.tabs.tabs-transparent { - background-color: transparent; -} -.tabs.tabs-transparent .tab a, -.tabs.tabs-transparent .tab.disabled a, -.tabs.tabs-transparent .tab.disabled a:hover { - color: rgba(255, 255, 255, 0.7); -} -.tabs.tabs-transparent .tab a:hover, -.tabs.tabs-transparent .tab a.active { - color: #fff; -} -.tabs.tabs-transparent .indicator { - background-color: #fff; -} -.tabs.tabs-fixed-width { - display: flex; -} -.tabs.tabs-fixed-width .tab { - flex-grow: 1; -} -.tabs .tab { - display: inline-block; - text-align: center; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: uppercase; -} -.tabs .tab a { - color: rgba(55, 44, 75, 0.7); - display: block; - width: 100%; - height: 100%; - padding: 0 24px; - font-size: 14px; - text-overflow: ellipsis; - overflow: hidden; - transition: color 0.28s ease, background-color 0.28s ease; -} -.tabs .tab a:focus, .tabs .tab a:focus.active { - background-color: rgba(224, 221, 229, 0.2); - outline: none; -} -.tabs .tab a:hover, .tabs .tab a.active { - background-color: transparent; - color: #372c4b; -} -.tabs .tab.disabled a, .tabs .tab.disabled a:hover { - color: rgba(55, 44, 75, 0.4); - cursor: default; -} -.tabs .indicator { - position: absolute; - bottom: 0; - height: 2px; - background-color: #e0dde5; - will-change: left, right; -} - -@media only screen and (max-width : 992px) { - .tabs { - display: flex; - } - .tabs .tab { - flex-grow: 1; - } - .tabs .tab a { - padding: 0 12px; - } -} -.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; - position: absolute; - text-align: center; - max-width: calc(100% - 4px); - overflow: hidden; - left: 0; - top: 0; - pointer-events: none; - visibility: hidden; - background-color: #323232; -} - -.backdrop { - position: absolute; - opacity: 0; - height: 7px; - width: 14px; - border-radius: 0 0 50% 50%; - background-color: #323232; - z-index: -1; - transform-origin: 50% 0%; - visibility: hidden; -} - -.btn, .btn-small, .btn-large, -.btn-flat { - border: none; - border-radius: 2px; - display: inline-block; - height: 36px; - line-height: 36px; - padding: 0 16px; - text-transform: uppercase; - vertical-align: middle; - -webkit-tap-highlight-color: transparent; -} - -.btn.disabled, -.btn-floating.disabled, -.btn-large.disabled, -.btn-small.disabled, -.btn-flat.disabled, -.btn:disabled, -.btn-floating:disabled, -.btn-large:disabled, -.btn-small:disabled, -.btn-flat:disabled, -.btn[disabled], -.btn-floating[disabled], -.btn-large[disabled], -.btn-small[disabled], -.btn-flat[disabled] { - pointer-events: none; - background-color: #DFDFDF !important; - box-shadow: none; - color: #9F9F9F !important; - cursor: default; -} -.btn.disabled:hover, -.btn-floating.disabled:hover, -.btn-large.disabled:hover, -.btn-small.disabled:hover, -.btn-flat.disabled:hover, -.btn:disabled:hover, -.btn-floating:disabled:hover, -.btn-large:disabled:hover, -.btn-small:disabled:hover, -.btn-flat:disabled:hover, -.btn[disabled]:hover, -.btn-floating[disabled]:hover, -.btn-large[disabled]:hover, -.btn-small[disabled]:hover, -.btn-flat[disabled]:hover { - background-color: #DFDFDF !important; - color: #9F9F9F !important; -} - -.btn, -.btn-floating, -.btn-large, -.btn-small, -.btn-flat { - font-size: 14px; - outline: 0; -} -.btn i, -.btn-floating i, -.btn-large i, -.btn-small i, -.btn-flat i { - font-size: 1.3rem; - line-height: inherit; -} - -.btn:focus, .btn-small:focus, .btn-large:focus, -.btn-floating:focus { - background-color: #1d7d74; -} - -.btn, .btn-small, .btn-large { - text-decoration: none; - color: #fff; - background-color: #26a69a; - text-align: center; - letter-spacing: 0.5px; - transition: background-color 0.2s ease-out; - cursor: pointer; -} -.btn:hover, .btn-small:hover, .btn-large:hover { - background-color: #2bbbad; -} - -.btn-floating { - display: inline-block; - color: #fff; - position: relative; - overflow: hidden; - z-index: 1; - width: 40px; - height: 40px; - line-height: 40px; - padding: 0; - background-color: #26a69a; - border-radius: 50%; - transition: background-color 0.3s; - cursor: pointer; - vertical-align: middle; -} -.btn-floating:hover { - background-color: #26a69a; -} -.btn-floating:before { - border-radius: 0; -} -.btn-floating.btn-large { - width: 56px; - height: 56px; - padding: 0; -} -.btn-floating.btn-large.halfway-fab { - bottom: -28px; -} -.btn-floating.btn-large i { - line-height: 56px; -} -.btn-floating.btn-small { - width: 32.4px; - height: 32.4px; -} -.btn-floating.btn-small.halfway-fab { - bottom: -16.2px; -} -.btn-floating.btn-small i { - line-height: 32.4px; -} -.btn-floating.halfway-fab { - position: absolute; - right: 24px; - bottom: -20px; -} -.btn-floating.halfway-fab.left { - right: auto; - left: 24px; -} -.btn-floating i { - width: inherit; - display: inline-block; - text-align: center; - color: #fff; - font-size: 1.6rem; - line-height: 40px; -} - -button.btn-floating { - border: none; -} - -.fixed-action-btn { - position: fixed; - right: 23px; - bottom: 23px; - padding-top: 15px; - margin-bottom: 0; - z-index: 997; -} -.fixed-action-btn.active ul { - visibility: visible; -} -.fixed-action-btn.direction-left, .fixed-action-btn.direction-right { - padding: 0 0 0 15px; -} -.fixed-action-btn.direction-left ul, .fixed-action-btn.direction-right ul { - text-align: right; - right: 64px; - top: 50%; - transform: translateY(-50%); - height: 100%; - left: auto; - /*width 100% only goes to width of button container */ - width: 500px; -} -.fixed-action-btn.direction-left ul li, .fixed-action-btn.direction-right ul li { - display: inline-block; - margin: 7.5px 15px 0 0; -} -.fixed-action-btn.direction-right { - padding: 0 15px 0 0; -} -.fixed-action-btn.direction-right ul { - text-align: left; - direction: rtl; - left: 64px; - right: auto; -} -.fixed-action-btn.direction-right ul li { - margin: 7.5px 0 0 15px; -} -.fixed-action-btn.direction-bottom { - padding: 0 0 15px 0; -} -.fixed-action-btn.direction-bottom ul { - top: 64px; - bottom: auto; - display: flex; - flex-direction: column-reverse; -} -.fixed-action-btn.direction-bottom ul li { - margin: 15px 0 0 0; -} -.fixed-action-btn.toolbar { - padding: 0; - height: 56px; -} -.fixed-action-btn.toolbar.active > a i { - opacity: 0; -} -.fixed-action-btn.toolbar ul { - display: flex; - top: 0; - bottom: 0; - z-index: 1; -} -.fixed-action-btn.toolbar ul li { - flex: 1; - display: inline-block; - margin: 0; - height: 100%; - transition: none; -} -.fixed-action-btn.toolbar ul li a { - display: block; - overflow: hidden; - position: relative; - width: 100%; - height: 100%; - background-color: transparent; - box-shadow: none; - color: #fff; - line-height: 56px; - z-index: 1; -} -.fixed-action-btn.toolbar ul li a i { - line-height: inherit; -} -.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; -} -.fixed-action-btn .fab-backdrop { - position: absolute; - top: 0; - left: 0; - z-index: -1; - width: 40px; - height: 40px; - background-color: #26a69a; - border-radius: 50%; - transform: scale(0); -} - -.btn-flat { - box-shadow: none; - background-color: transparent; - color: #343434; - cursor: pointer; - transition: background-color 0.2s; -} -.btn-flat:focus, .btn-flat:hover { - box-shadow: none; -} -.btn-flat:focus { - background-color: rgba(0, 0, 0, 0.1); -} -.btn-flat.disabled, .btn-flat.btn-flat[disabled] { - background-color: transparent !important; - color: #b3b3b3 !important; - cursor: default; -} - -.btn-large { - height: 54px; - line-height: 54px; - font-size: 15px; - padding: 0 28px; -} -.btn-large i { - font-size: 1.6rem; -} - -.btn-small { - height: 32.4px; - line-height: 32.4px; - font-size: 13px; -} -.btn-small i { - font-size: 1.2rem; -} - -.btn-block { - display: block; -} - -.dropdown-content { - background-color: #fff; - margin: 0; - display: none; - min-width: 100px; - overflow-y: auto; - opacity: 0; - position: absolute; - left: 0; - top: 0; - z-index: 9999; - transform-origin: 0 0; -} -.dropdown-content:focus { - outline: 0; -} -.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; -} -.dropdown-content li:hover, .dropdown-content li.active { - background-color: #eee; -} -.dropdown-content li:focus { - outline: none; -} -.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: 0; - height: 18px; -} -.dropdown-content li > a > i { - height: inherit; - line-height: inherit; - float: left; - margin: 0 24px 0 0; - width: 24px; -} - -body.keyboard-focused .dropdown-content li:focus { - background-color: #dadada; -} - -.input-field.col .dropdown-content [type=checkbox] + label { - top: 1px; - left: 0; - height: 18px; - transform: none; -} - -.dropdown-trigger { - cursor: pointer; -} - -/*! - * 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; - user-select: none; - -webkit-tap-highlight-color: transparent; - vertical-align: middle; - z-index: 1; - transition: 0.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: transform, opacity; - 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 { - 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; -} -.modal:focus { - outline: none; -} -@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%; - text-align: right; -} -.modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-small, .modal .modal-footer .btn-flat { - margin: 6px 0; -} - -.modal-overlay { - position: fixed; - z-index: 999; - top: -25%; - 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: flex; - cursor: pointer; - -webkit-tap-highlight-color: transparent; - line-height: 1.5; - padding: 1rem; - background-color: #fff; - border-bottom: 1px solid #ddd; -} -.collapsible-header:focus { - outline: 0; -} -.collapsible-header i { - width: 2rem; - font-size: 1.6rem; - display: inline-block; - text-align: center; - margin-right: 1rem; -} - -.keyboard-focused .collapsible-header:focus { - background-color: #eee; -} - -.collapsible-body { - display: none; - border-bottom: 1px solid #ddd; - box-sizing: border-box; - padding: 2rem; -} - -.sidenav .collapsible, -.sidenav.fixed .collapsible { - border: none; - box-shadow: none; -} -.sidenav .collapsible li, -.sidenav.fixed .collapsible li { - padding: 0; -} -.sidenav .collapsible-header, -.sidenav.fixed .collapsible-header { - background-color: transparent; - border: none; - line-height: inherit; - height: inherit; - padding: 0 16px; -} -.sidenav .collapsible-header:hover, -.sidenav.fixed .collapsible-header:hover { - background-color: rgba(0, 0, 0, 0.05); -} -.sidenav .collapsible-header i, -.sidenav.fixed .collapsible-header i { - line-height: inherit; -} -.sidenav .collapsible-body, -.sidenav.fixed .collapsible-body { - border: 0; - background-color: #fff; -} -.sidenav .collapsible-body li a, -.sidenav.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:focus { - outline: none; - background-color: #26a69a; - color: #fff; -} -.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: 0 0 8px 0; - min-height: 45px; - outline: none; - transition: all 0.3s; -} -.chips.focus { - border-bottom: 1px solid #26a69a; - box-shadow: 0 1px 0 0 #26a69a; -} -.chips:hover { - cursor: text; -} -.chips .input { - background: none; - border: 0; - color: rgba(0, 0, 0, 0.6); - display: inline-block; - font-size: 16px; - height: 3rem; - line-height: 32px; - outline: 0; - margin: 0; - padding: 0 !important; - width: 120px !important; -} -.chips .input:focus { - border: 0 !important; - box-shadow: none !important; -} -.chips .autocomplete-content { - margin-top: 0; - margin-bottom: 0; -} - -.prefix ~ .chips { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.chips:empty ~ label { - font-size: 0.8rem; - transform: translateY(-140%); -} - -.materialboxed { - display: block; - cursor: zoom-in; - position: relative; - transition: opacity 0.4s; - -webkit-backface-visibility: hidden; -} -.materialboxed:hover:not(.active) { - opacity: 0.8; -} -.materialboxed.active { - cursor: zoom-out; -} - -#materialbox-overlay { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #292929; - z-index: 1000; - will-change: opacity; -} - -.materialbox-caption { - position: fixed; - display: none; - color: #fff; - line-height: 50px; - bottom: 0; - left: 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 */ -::placeholder { - color: #d1d1d1; -} - -/* Text inputs */ -input:not([type]), -input[type=text]:not(.browser-default), -input[type=password]:not(.browser-default), -input[type=email]:not(.browser-default), -input[type=url]:not(.browser-default), -input[type=time]:not(.browser-default), -input[type=date]:not(.browser-default), -input[type=datetime]:not(.browser-default), -input[type=datetime-local]:not(.browser-default), -input[type=tel]:not(.browser-default), -input[type=number]:not(.browser-default), -input[type=search]:not(.browser-default), -textarea.materialize-textarea { - background-color: transparent; - border: none; - border-bottom: 1px solid #9e9e9e; - border-radius: 0; - outline: none; - height: 3rem; - width: 100%; - font-size: 16px; - margin: 0 0 8px 0; - padding: 0; - box-shadow: none; - box-sizing: content-box; - transition: box-shadow 0.3s, border 0.3s; -} -input:not([type]):disabled, input:not([type])[readonly=readonly], -input[type=text]:not(.browser-default):disabled, -input[type=text]:not(.browser-default)[readonly=readonly], -input[type=password]:not(.browser-default):disabled, -input[type=password]:not(.browser-default)[readonly=readonly], -input[type=email]:not(.browser-default):disabled, -input[type=email]:not(.browser-default)[readonly=readonly], -input[type=url]:not(.browser-default):disabled, -input[type=url]:not(.browser-default)[readonly=readonly], -input[type=time]:not(.browser-default):disabled, -input[type=time]:not(.browser-default)[readonly=readonly], -input[type=date]:not(.browser-default):disabled, -input[type=date]:not(.browser-default)[readonly=readonly], -input[type=datetime]:not(.browser-default):disabled, -input[type=datetime]:not(.browser-default)[readonly=readonly], -input[type=datetime-local]:not(.browser-default):disabled, -input[type=datetime-local]:not(.browser-default)[readonly=readonly], -input[type=tel]:not(.browser-default):disabled, -input[type=tel]:not(.browser-default)[readonly=readonly], -input[type=number]:not(.browser-default):disabled, -input[type=number]:not(.browser-default)[readonly=readonly], -input[type=search]:not(.browser-default):disabled, -input[type=search]:not(.browser-default)[readonly=readonly], -textarea.materialize-textarea:disabled, -textarea.materialize-textarea[readonly=readonly] { - color: rgba(0, 0, 0, 0.42); - border-bottom: 1px dotted rgba(0, 0, 0, 0.42); -} -input:not([type]):disabled + label, input:not([type])[readonly=readonly] + label, -input[type=text]:not(.browser-default):disabled + label, -input[type=text]:not(.browser-default)[readonly=readonly] + label, -input[type=password]:not(.browser-default):disabled + label, -input[type=password]:not(.browser-default)[readonly=readonly] + label, -input[type=email]:not(.browser-default):disabled + label, -input[type=email]:not(.browser-default)[readonly=readonly] + label, -input[type=url]:not(.browser-default):disabled + label, -input[type=url]:not(.browser-default)[readonly=readonly] + label, -input[type=time]:not(.browser-default):disabled + label, -input[type=time]:not(.browser-default)[readonly=readonly] + label, -input[type=date]:not(.browser-default):disabled + label, -input[type=date]:not(.browser-default)[readonly=readonly] + label, -input[type=datetime]:not(.browser-default):disabled + label, -input[type=datetime]:not(.browser-default)[readonly=readonly] + label, -input[type=datetime-local]:not(.browser-default):disabled + label, -input[type=datetime-local]:not(.browser-default)[readonly=readonly] + label, -input[type=tel]:not(.browser-default):disabled + label, -input[type=tel]:not(.browser-default)[readonly=readonly] + label, -input[type=number]:not(.browser-default):disabled + label, -input[type=number]:not(.browser-default)[readonly=readonly] + label, -input[type=search]:not(.browser-default):disabled + label, -input[type=search]:not(.browser-default)[readonly=readonly] + label, -textarea.materialize-textarea:disabled + label, -textarea.materialize-textarea[readonly=readonly] + label { - color: rgba(0, 0, 0, 0.42); -} -input:not([type]):focus:not([readonly]), -input[type=text]:not(.browser-default):focus:not([readonly]), -input[type=password]:not(.browser-default):focus:not([readonly]), -input[type=email]:not(.browser-default):focus:not([readonly]), -input[type=url]:not(.browser-default):focus:not([readonly]), -input[type=time]:not(.browser-default):focus:not([readonly]), -input[type=date]:not(.browser-default):focus:not([readonly]), -input[type=datetime]:not(.browser-default):focus:not([readonly]), -input[type=datetime-local]:not(.browser-default):focus:not([readonly]), -input[type=tel]:not(.browser-default):focus:not([readonly]), -input[type=number]:not(.browser-default):focus:not([readonly]), -input[type=search]:not(.browser-default):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]:not(.browser-default):focus:not([readonly]) + label, -input[type=password]:not(.browser-default):focus:not([readonly]) + label, -input[type=email]:not(.browser-default):focus:not([readonly]) + label, -input[type=url]:not(.browser-default):focus:not([readonly]) + label, -input[type=time]:not(.browser-default):focus:not([readonly]) + label, -input[type=date]:not(.browser-default):focus:not([readonly]) + label, -input[type=datetime]:not(.browser-default):focus:not([readonly]) + label, -input[type=datetime-local]:not(.browser-default):focus:not([readonly]) + label, -input[type=tel]:not(.browser-default):focus:not([readonly]) + label, -input[type=number]:not(.browser-default):focus:not([readonly]) + label, -input[type=search]:not(.browser-default):focus:not([readonly]) + label, -textarea.materialize-textarea:focus:not([readonly]) + label { - color: #26a69a; -} -input:not([type]):focus.valid ~ label, -input[type=text]:not(.browser-default):focus.valid ~ label, -input[type=password]:not(.browser-default):focus.valid ~ label, -input[type=email]:not(.browser-default):focus.valid ~ label, -input[type=url]:not(.browser-default):focus.valid ~ label, -input[type=time]:not(.browser-default):focus.valid ~ label, -input[type=date]:not(.browser-default):focus.valid ~ label, -input[type=datetime]:not(.browser-default):focus.valid ~ label, -input[type=datetime-local]:not(.browser-default):focus.valid ~ label, -input[type=tel]:not(.browser-default):focus.valid ~ label, -input[type=number]:not(.browser-default):focus.valid ~ label, -input[type=search]:not(.browser-default):focus.valid ~ label, -textarea.materialize-textarea:focus.valid ~ label { - color: #4CAF50; -} -input:not([type]):focus.invalid ~ label, -input[type=text]:not(.browser-default):focus.invalid ~ label, -input[type=password]:not(.browser-default):focus.invalid ~ label, -input[type=email]:not(.browser-default):focus.invalid ~ label, -input[type=url]:not(.browser-default):focus.invalid ~ label, -input[type=time]:not(.browser-default):focus.invalid ~ label, -input[type=date]:not(.browser-default):focus.invalid ~ label, -input[type=datetime]:not(.browser-default):focus.invalid ~ label, -input[type=datetime-local]:not(.browser-default):focus.invalid ~ label, -input[type=tel]:not(.browser-default):focus.invalid ~ label, -input[type=number]:not(.browser-default):focus.invalid ~ label, -input[type=search]:not(.browser-default):focus.invalid ~ label, -textarea.materialize-textarea:focus.invalid ~ label { - color: #F44336; -} -input:not([type]).validate + label, -input[type=text]:not(.browser-default).validate + label, -input[type=password]:not(.browser-default).validate + label, -input[type=email]:not(.browser-default).validate + label, -input[type=url]:not(.browser-default).validate + label, -input[type=time]:not(.browser-default).validate + label, -input[type=date]:not(.browser-default).validate + label, -input[type=datetime]:not(.browser-default).validate + label, -input[type=datetime-local]:not(.browser-default).validate + label, -input[type=tel]:not(.browser-default).validate + label, -input[type=number]:not(.browser-default).validate + label, -input[type=search]:not(.browser-default).validate + label, -textarea.materialize-textarea.validate + label { - width: 100%; -} -/* Validation Sass Placeholders */ -.select-wrapper.valid > input.select-dropdown, input:not([type]).valid, input:not([type]):focus.valid, -input[type=text]:not(.browser-default).valid, -input[type=text]:not(.browser-default):focus.valid, -input[type=password]:not(.browser-default).valid, -input[type=password]:not(.browser-default):focus.valid, -input[type=email]:not(.browser-default).valid, -input[type=email]:not(.browser-default):focus.valid, -input[type=url]:not(.browser-default).valid, -input[type=url]:not(.browser-default):focus.valid, -input[type=time]:not(.browser-default).valid, -input[type=time]:not(.browser-default):focus.valid, -input[type=date]:not(.browser-default).valid, -input[type=date]:not(.browser-default):focus.valid, -input[type=datetime]:not(.browser-default).valid, -input[type=datetime]:not(.browser-default):focus.valid, -input[type=datetime-local]:not(.browser-default).valid, -input[type=datetime-local]:not(.browser-default):focus.valid, -input[type=tel]:not(.browser-default).valid, -input[type=tel]:not(.browser-default):focus.valid, -input[type=number]:not(.browser-default).valid, -input[type=number]:not(.browser-default):focus.valid, -input[type=search]:not(.browser-default).valid, -input[type=search]:not(.browser-default):focus.valid, -textarea.materialize-textarea.valid, -textarea.materialize-textarea:focus.valid { - border-bottom: 1px solid #4CAF50; - box-shadow: 0 1px 0 0 #4CAF50; -} - -.select-wrapper.invalid > input.select-dropdown, .select-wrapper.invalid > input.select-dropdown:focus, input:not([type]).invalid, input:not([type]):focus.invalid, -input[type=text]:not(.browser-default).invalid, -input[type=text]:not(.browser-default):focus.invalid, -input[type=password]:not(.browser-default).invalid, -input[type=password]:not(.browser-default):focus.invalid, -input[type=email]:not(.browser-default).invalid, -input[type=email]:not(.browser-default):focus.invalid, -input[type=url]:not(.browser-default).invalid, -input[type=url]:not(.browser-default):focus.invalid, -input[type=time]:not(.browser-default).invalid, -input[type=time]:not(.browser-default):focus.invalid, -input[type=date]:not(.browser-default).invalid, -input[type=date]:not(.browser-default):focus.invalid, -input[type=datetime]:not(.browser-default).invalid, -input[type=datetime]:not(.browser-default):focus.invalid, -input[type=datetime-local]:not(.browser-default).invalid, -input[type=datetime-local]:not(.browser-default):focus.invalid, -input[type=tel]:not(.browser-default).invalid, -input[type=tel]:not(.browser-default):focus.invalid, -input[type=number]:not(.browser-default).invalid, -input[type=number]:not(.browser-default):focus.invalid, -input[type=search]:not(.browser-default).invalid, -input[type=search]:not(.browser-default):focus.invalid, -textarea.materialize-textarea.invalid, -textarea.materialize-textarea:focus.invalid { - border-bottom: 1px solid #F44336; - box-shadow: 0 1px 0 0 #F44336; -} - -.select-wrapper.valid .helper-text[data-success], .select-wrapper.invalid ~ .helper-text[data-error], input:not([type]).valid ~ .helper-text[data-success], input:not([type]):focus.valid ~ .helper-text[data-success], input:not([type]).invalid ~ .helper-text[data-error], input:not([type]):focus.invalid ~ .helper-text[data-error], -input[type=text]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=text]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=password]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=password]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=email]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=email]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=url]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=url]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=time]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=time]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=date]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=date]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=tel]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=number]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=number]:not(.browser-default).invalid ~ .helper-text[data-error], -input[type=search]:not(.browser-default).valid ~ .helper-text[data-success], -input[type=search]:not(.browser-default).invalid ~ .helper-text[data-error], -textarea.materialize-textarea.valid ~ .helper-text[data-success], -textarea.materialize-textarea:focus.valid ~ .helper-text[data-success], -textarea.materialize-textarea.invalid ~ .helper-text[data-error], -textarea.materialize-textarea:focus.invalid ~ .helper-text[data-error] { - color: transparent; - user-select: none; - pointer-events: none; -} - -.select-wrapper.valid ~ .helper-text:after, input:not([type]).valid ~ .helper-text:after, input:not([type]):focus.valid ~ .helper-text:after, -input[type=text]:not(.browser-default).valid ~ .helper-text:after, -input[type=text]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=password]:not(.browser-default).valid ~ .helper-text:after, -input[type=password]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=email]:not(.browser-default).valid ~ .helper-text:after, -input[type=email]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=url]:not(.browser-default).valid ~ .helper-text:after, -input[type=url]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=time]:not(.browser-default).valid ~ .helper-text:after, -input[type=time]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=date]:not(.browser-default).valid ~ .helper-text:after, -input[type=date]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=datetime]:not(.browser-default).valid ~ .helper-text:after, -input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after, -input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=tel]:not(.browser-default).valid ~ .helper-text:after, -input[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=number]:not(.browser-default).valid ~ .helper-text:after, -input[type=number]:not(.browser-default):focus.valid ~ .helper-text:after, -input[type=search]:not(.browser-default).valid ~ .helper-text:after, -input[type=search]:not(.browser-default):focus.valid ~ .helper-text:after, -textarea.materialize-textarea.valid ~ .helper-text:after, -textarea.materialize-textarea:focus.valid ~ .helper-text:after { - content: attr(data-success); - color: #4CAF50; -} - -.select-wrapper.invalid ~ .helper-text:after, input:not([type]).invalid ~ .helper-text:after, input:not([type]):focus.invalid ~ .helper-text:after, -input[type=text]:not(.browser-default).invalid ~ .helper-text:after, -input[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=password]:not(.browser-default).invalid ~ .helper-text:after, -input[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=email]:not(.browser-default).invalid ~ .helper-text:after, -input[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=url]:not(.browser-default).invalid ~ .helper-text:after, -input[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=time]:not(.browser-default).invalid ~ .helper-text:after, -input[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=date]:not(.browser-default).invalid ~ .helper-text:after, -input[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=datetime]:not(.browser-default).invalid ~ .helper-text:after, -input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after, -input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=tel]:not(.browser-default).invalid ~ .helper-text:after, -input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=number]:not(.browser-default).invalid ~ .helper-text:after, -input[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after, -input[type=search]:not(.browser-default).invalid ~ .helper-text:after, -input[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after, -textarea.materialize-textarea.invalid ~ .helper-text:after, -textarea.materialize-textarea:focus.invalid ~ .helper-text:after { - content: attr(data-error); - color: #F44336; -} - -.select-wrapper + label:after, input:not([type]) + label:after, -input[type=text]:not(.browser-default) + label:after, -input[type=password]:not(.browser-default) + label:after, -input[type=email]:not(.browser-default) + label:after, -input[type=url]:not(.browser-default) + label:after, -input[type=time]:not(.browser-default) + label:after, -input[type=date]:not(.browser-default) + label:after, -input[type=datetime]:not(.browser-default) + label:after, -input[type=datetime-local]:not(.browser-default) + label:after, -input[type=tel]:not(.browser-default) + label:after, -input[type=number]:not(.browser-default) + label:after, -input[type=search]:not(.browser-default) + label:after, -textarea.materialize-textarea + label:after { - display: block; - content: ""; - position: absolute; - top: 100%; - left: 0; - opacity: 0; - transition: 0.2s opacity ease-out, 0.2s color ease-out; -} - -.input-field { - position: relative; - margin-top: 1rem; - margin-bottom: 1rem; -} -.input-field.inline { - display: inline-block; - vertical-align: middle; - margin-left: 5px; -} -.input-field.inline input, -.input-field.inline .select-dropdown { - margin-bottom: 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; - left: 0; - font-size: 1rem; - cursor: text; - transition: transform 0.2s ease-out, color 0.2s ease-out; - transform-origin: 0% 100%; - text-align: initial; - transform: translateY(12px); -} -.input-field > label:not(.label-icon).active { - transform: translateY(-14px) scale(0.8); - transform-origin: 0 0; -} -.input-field > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label, .input-field > input[type=date]:not(.browser-default) + label, .input-field > input[type=time]:not(.browser-default) + label { - transform: translateY(-14px) scale(0.8); - transform-origin: 0 0; -} -.input-field .helper-text { - position: relative; - min-height: 18px; - display: block; - font-size: 12px; - color: rgba(0, 0, 0, 0.54); -} -.input-field .helper-text::after { - opacity: 1; - position: absolute; - top: 0; - left: 0; -} -.input-field .prefix { - position: absolute; - width: 3rem; - font-size: 2rem; - transition: color 0.2s; - top: 0.5rem; -} -.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 ~ .helper-text, -.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; - transition: 0.3s background-color; -} -.nav-wrapper .input-field input[type=search] { - height: inherit; - padding-left: 4rem; - width: calc(100% - 4rem); - border: 0; - box-shadow: none; -} -.input-field input[type=search]:focus:not(.browser-default) { - background-color: #fff; - border: 0; - box-shadow: none; - color: #444; -} -.input-field input[type=search]:focus:not(.browser-default) + label i, .input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close, .input-field input[type=search]:focus:not(.browser-default) ~ .material-icons { - color: #444; -} -.input-field input[type=search] + .label-icon { - transform: none; - 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: 0.3s color; -} - -/* Textarea */ -textarea { - width: 100%; - height: 3rem; - background-color: transparent; -} -textarea.materialize-textarea { - line-height: normal; - overflow-y: hidden; - /* prevents scroll bar flash */ - padding: 0.8rem 0 0.8rem 0; - /* prevents text jump on Enter keypress */ - resize: none; - min-height: 3rem; - box-sizing: border-box; -} - -.hiddendiv { - visibility: hidden; - 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 */ - position: absolute; - top: 0; - z-index: -1; -} - -/* Autocomplete */ -.autocomplete-content li .highlight { - color: #444; -} -.autocomplete-content li img { - height: 40px; - width: 40px; - margin: 5px 15px; -} - -/* Character Counter */ -.character-counter { - min-height: 18px; -} - -/* Radio Buttons - ========================================================================== */ -[type=radio]:not(:checked), -[type=radio]:checked { - position: absolute; - opacity: 0; - pointer-events: none; -} - -[type=radio]:not(:checked) + span, -[type=radio]:checked + span { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - transition: 0.28s ease; - user-select: none; -} - -[type=radio] + span:before, -[type=radio] + span:after { - content: ""; - position: absolute; - left: 0; - top: 0; - margin: 4px; - width: 16px; - height: 16px; - z-index: 0; - transition: 0.28s ease; -} - -/* Unchecked styles */ -[type=radio]:not(:checked) + span:before, -[type=radio]:not(:checked) + span:after, -[type=radio]:checked + span:before, -[type=radio]:checked + span:after, -[type=radio].with-gap:checked + span:before, -[type=radio].with-gap:checked + span:after { - border-radius: 50%; -} - -[type=radio]:not(:checked) + span:before, -[type=radio]:not(:checked) + span:after { - border: 2px solid #5a5a5a; -} - -[type=radio]:not(:checked) + span:after { - transform: scale(0); -} - -/* Checked styles */ -[type=radio]:checked + span:before { - border: 2px solid transparent; -} - -[type=radio]:checked + span:after, -[type=radio].with-gap:checked + span:before, -[type=radio].with-gap:checked + span:after { - border: 2px solid #26a69a; -} - -[type=radio]:checked + span:after, -[type=radio].with-gap:checked + span:after { - background-color: #26a69a; -} - -[type=radio]:checked + span:after { - transform: scale(1.02); -} - -/* Radio With gap */ -[type=radio].with-gap:checked + span:after { - transform: scale(0.5); -} - -/* Focused styles */ -[type=radio].tabbed:focus + span:before { - box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1); -} - -/* Disabled Radio With gap */ -[type=radio].with-gap:disabled:checked + span:before { - border: 2px solid rgba(0, 0, 0, 0.42); -} - -[type=radio].with-gap:disabled:checked + span:after { - border: none; - background-color: rgba(0, 0, 0, 0.42); -} - -/* Disabled style */ -[type=radio]:disabled:not(:checked) + span:before, -[type=radio]:disabled:checked + span:before { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.42); -} - -[type=radio]:disabled + span { - color: rgba(0, 0, 0, 0.42); -} - -[type=radio]:disabled:not(:checked) + span:before { - border-color: rgba(0, 0, 0, 0.42); -} - -[type=radio]:disabled:checked + span:after { - background-color: rgba(0, 0, 0, 0.42); - border-color: #949494; -} - -/* Checkboxes - ========================================================================== */ -/* Remove default checkbox */ -[type=checkbox]:not(:checked), -[type=checkbox]:checked { - position: absolute; - opacity: 0; - pointer-events: none; -} - -[type=checkbox] { - /* checkbox aspect */ -} -[type=checkbox] + span:not(.lever) { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - user-select: none; -} -[type=checkbox] + span:not(.lever):before, [type=checkbox]:not(.filled-in) + span:not(.lever):after { - content: ""; - position: absolute; - top: 0; - left: 0; - width: 18px; - height: 18px; - z-index: 0; - border: 2px solid #5a5a5a; - border-radius: 1px; - margin-top: 3px; - transition: 0.2s; -} -[type=checkbox]:not(.filled-in) + span:not(.lever):after { - border: 0; - transform: scale(0); -} -[type=checkbox]:not(:checked):disabled + span:not(.lever):before { - border: none; - background-color: rgba(0, 0, 0, 0.42); -} -[type=checkbox].tabbed:focus + span:not(.lever):after { - 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 + span:not(.lever):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; - transform: rotate(40deg); - backface-visibility: hidden; - transform-origin: 100% 100%; -} -[type=checkbox]:checked:disabled + span:before { - border-right: 2px solid rgba(0, 0, 0, 0.42); - border-bottom: 2px solid rgba(0, 0, 0, 0.42); -} - -/* Indeterminate checkbox */ -[type=checkbox]:indeterminate + span:not(.lever):before { - top: -11px; - left: -12px; - width: 10px; - height: 22px; - border-top: none; - border-left: none; - border-right: 2px solid #26a69a; - border-bottom: none; - transform: rotate(90deg); - backface-visibility: hidden; - transform-origin: 100% 100%; -} -[type=checkbox]:indeterminate:disabled + span:not(.lever):before { - border-right: 2px solid rgba(0, 0, 0, 0.42); - background-color: transparent; -} - -[type=checkbox].filled-in + span:not(.lever):after { - border-radius: 2px; -} -[type=checkbox].filled-in + span:not(.lever):before, -[type=checkbox].filled-in + span:not(.lever):after { - content: ""; - left: 0; - position: absolute; - /* .1s delay is for check animation */ - transition: border 0.25s, background-color 0.25s, width 0.2s 0.1s, height 0.2s 0.1s, top 0.2s 0.1s, left 0.2s 0.1s; - z-index: 1; -} -[type=checkbox].filled-in:not(:checked) + span:not(.lever):before { - width: 0; - height: 0; - border: 3px solid transparent; - left: 6px; - top: 10px; - transform: rotateZ(37deg); - transform-origin: 100% 100%; -} -[type=checkbox].filled-in:not(:checked) + span:not(.lever):after { - height: 20px; - width: 20px; - background-color: transparent; - border: 2px solid #5a5a5a; - top: 0px; - z-index: 0; -} -[type=checkbox].filled-in:checked + span:not(.lever):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; - transform: rotateZ(37deg); - transform-origin: 100% 100%; -} -[type=checkbox].filled-in:checked + span:not(.lever):after { - top: 0; - width: 20px; - height: 20px; - border: 2px solid #26a69a; - background-color: #26a69a; - z-index: 0; -} -[type=checkbox].filled-in.tabbed:focus + span:not(.lever):after { - border-radius: 2px; - border-color: #5a5a5a; - background-color: rgba(0, 0, 0, 0.1); -} -[type=checkbox].filled-in.tabbed:checked:focus + span:not(.lever):after { - border-radius: 2px; - background-color: #26a69a; - border-color: #26a69a; -} -[type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):before { - background-color: transparent; - border: 2px solid transparent; -} -[type=checkbox].filled-in:disabled:not(:checked) + span:not(.lever):after { - border-color: transparent; - background-color: #949494; -} -[type=checkbox].filled-in:disabled:checked + span:not(.lever):before { - background-color: transparent; -} -[type=checkbox].filled-in:disabled:checked + span:not(.lever):after { - background-color: #949494; - border-color: #949494; -} - -/* Switch - ========================================================================== */ -.switch, -.switch * { - -webkit-tap-highlight-color: transparent; - 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:before, .switch label input[type=checkbox]:checked + .lever:after { - left: 18px; -} -.switch label input[type=checkbox]:checked + .lever:after { - background-color: #26a69a; -} - -.switch label .lever { - content: ""; - display: inline-block; - position: relative; - width: 36px; - height: 14px; - background-color: rgba(0, 0, 0, 0.38); - border-radius: 15px; - margin-right: 10px; - transition: background 0.3s ease; - vertical-align: middle; - margin: 0 16px; -} -.switch label .lever:before, .switch label .lever:after { - content: ""; - position: absolute; - display: inline-block; - width: 20px; - height: 20px; - border-radius: 50%; - left: 0; - top: -3px; - transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease, transform 0.1s ease; -} -.switch label .lever:before { - background-color: rgba(38, 166, 154, 0.15); -} -.switch label .lever:after { - background-color: #F1F1F1; - box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); -} - -input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before, -input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before { - transform: scale(2.4); - background-color: rgba(38, 166, 154, 0.15); -} - -input[type=checkbox]:not(:disabled) ~ .lever:active:before, -input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before { - transform: scale(2.4); - background-color: rgba(0, 0, 0, 0.08); -} - -.switch input[type=checkbox][disabled] + .lever { - cursor: default; - background-color: rgba(0, 0, 0, 0.12); -} - -.switch label input[type=checkbox][disabled] + .lever:after, -.switch label input[type=checkbox][disabled]:checked + .lever:after { - background-color: #949494; -} - -/* 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.valid + label, .select-wrapper.invalid + label { - width: 100%; - pointer-events: none; -} -.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: 16px; - margin: 0 0 8px 0; - padding: 0; - display: block; - user-select: none; - z-index: 1; -} -.select-wrapper input.select-dropdown:focus { - border-bottom: 1px solid #26a69a; -} -.select-wrapper .caret { - position: absolute; - right: 0; - top: 0; - bottom: 0; - margin: auto 0; - z-index: 0; - fill: rgba(0, 0, 0, 0.87); -} -.select-wrapper + label { - position: absolute; - top: -26px; - font-size: 0.8rem; -} - -select:disabled { - color: rgba(0, 0, 0, 0.42); -} - -.select-wrapper.disabled + label { - color: rgba(0, 0, 0, 0.42); -} -.select-wrapper.disabled .caret { - fill: rgba(0, 0, 0, 0.42); -} - -.select-wrapper input.select-dropdown:disabled { - color: rgba(0, 0, 0, 0.42); - cursor: default; - user-select: none; -} - -.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; -} - -body.keyboard-focused .select-dropdown.dropdown-content li:focus { - background-color: rgba(0, 0, 0, 0.08); -} - -.select-dropdown.dropdown-content li:hover { - background-color: rgba(0, 0, 0, 0.08); -} -.select-dropdown.dropdown-content li.selected { - background-color: rgba(0, 0, 0, 0.03); -} - -.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, .file-field .btn-small { - 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); -} -.file-field input[type=file]::-webkit-file-upload-button { - display: none; -} - -/* 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; - top: 10px; - left: 0; - border: none; - height: 0; - width: 0; - border-radius: 50%; - background-color: #26a69a; - margin-left: 7px; - transform-origin: 50% 50%; - transform: rotate(-45deg); -} -input[type=range] + .thumb .value { - display: block; - width: 30px; - text-align: center; - color: #26a69a; - font-size: 0; - 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 { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; - transition: box-shadow 0.3s; - -webkit-appearance: none; - background-color: #26a69a; - transform-origin: 50% 50%; - margin: -5px 0 0 0; -} - -.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb { - box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26); -} - -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: #c2c0c2; - border: none; -} - -input[type=range]::-moz-focus-inner { - border: 0; -} - -input[type=range]::-moz-range-thumb { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; - transition: box-shadow 0.3s; - margin-top: -5px; -} - -input[type=range]:-moz-focusring { - outline: 1px solid #fff; - outline-offset: -1px; -} - -.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb { - box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26); -} - -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; - transition: box-shadow 0.3s; -} - -.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb { - box-shadow: 0 0 0 10px rgba(38, 166, 154, 0.26); -} - -/*************** - 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: 16px; - height: 1.5rem; - line-height: 1.5rem; - letter-spacing: 0.4; - display: inline-block; -} -.table-of-contents a:hover { - color: #a8a8a8; - padding-left: 15px; - border-left: 1px solid #372c4b; -} -.table-of-contents a.active { - font-weight: 500; - padding-left: 14px; - border-left: 2px solid #372c4b; -} - -.sidenav { - position: fixed; - width: 300px; - left: 0; - top: 0; - margin: 0; - transform: translateX(-100%); - height: 100%; - height: calc(100% + 60px); - height: -moz-calc(100%); - padding-bottom: 60px; - background-color: #fff; - z-index: 999; - overflow-y: auto; - will-change: transform; - backface-visibility: hidden; - transform: translateX(-105%); -} -.sidenav.right-aligned { - right: 0; - transform: translateX(105%); - left: auto; - transform: translateX(100%); -} -.sidenav .collapsible { - margin: 0; -} -.sidenav li { - float: none; - line-height: 48px; -} -.sidenav li.active { - background-color: rgba(0, 0, 0, 0.05); -} -.sidenav li > a { - color: rgba(0, 0, 0, 0.87); - display: block; - font-size: 14px; - font-weight: 500; - height: 48px; - line-height: 48px; - padding: 0 32px; -} -.sidenav li > a:hover { - background-color: rgba(0, 0, 0, 0.05); -} -.sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-flat, .sidenav li > a.btn-floating { - margin: 10px 15px; -} -.sidenav li > a.btn, .sidenav li > a.btn-small, .sidenav li > a.btn-large, .sidenav li > a.btn-floating { - color: #fff; -} -.sidenav li > a.btn-flat { - color: #343434; -} -.sidenav li > a.btn:hover, .sidenav li > a.btn-small:hover, .sidenav li > a.btn-large:hover { - background-color: #2bbbad; -} -.sidenav li > a.btn-floating:hover { - background-color: #26a69a; -} -.sidenav li > a > i, .sidenav li > a > [class^=mdi-], .sidenav li > a li > a > [class*=mdi-], .sidenav li > a > i.material-icons { - float: left; - height: 48px; - line-height: 48px; - margin: 0 32px 0 0; - width: 24px; - color: rgba(0, 0, 0, 0.54); -} -.sidenav .divider { - margin: 8px 0 0 0; -} -.sidenav .subheader { - cursor: initial; - pointer-events: none; - color: rgba(0, 0, 0, 0.54); - font-size: 14px; - font-weight: 500; - line-height: 48px; -} -.sidenav .subheader:hover { - background-color: transparent; -} -.sidenav .user-view { - position: relative; - padding: 32px 32px 0; - margin-bottom: 8px; -} -.sidenav .user-view > a { - height: auto; - padding: 0; -} -.sidenav .user-view > a:hover { - background-color: transparent; -} -.sidenav .user-view .background { - overflow: hidden; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1; -} -.sidenav .user-view .circle, .sidenav .user-view .name, .sidenav .user-view .email { - display: block; -} -.sidenav .user-view .circle { - height: 64px; - width: 64px; -} -.sidenav .user-view .name, -.sidenav .user-view .email { - font-size: 14px; - line-height: 24px; -} -.sidenav .user-view .name { - margin-top: 16px; - font-weight: 500; -} -.sidenav .user-view .email { - padding-bottom: 16px; - font-weight: 400; -} - -.drag-target { - height: 100%; - width: 10px; - position: fixed; - top: 0; - z-index: 998; -} -.drag-target.right-aligned { - right: 0; -} - -.sidenav.sidenav-fixed { - left: 0; - transform: translateX(0); - position: fixed; -} -.sidenav.sidenav-fixed.right-aligned { - right: 0; - left: auto; -} - -@media only screen and (max-width : 992px) { - .sidenav.sidenav-fixed { - transform: translateX(-105%); - } - .sidenav.sidenav-fixed.right-aligned { - transform: translateX(105%); - } - .sidenav > a { - padding: 0 16px; - } - .sidenav .user-view { - padding: 16px 16px 0; - } -} -.sidenav .collapsible-body > ul:not(.collapsible) > li.active, -.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active { - background-color: #372c4b; -} -.sidenav .collapsible-body > ul:not(.collapsible) > li.active a, -.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active a { - color: #fff; -} - -.sidenav .collapsible-body { - padding: 0; -} - -.sidenav-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - opacity: 0; - height: 120vh; - background-color: rgba(0, 0, 0, 0.5); - z-index: 997; - display: none; -} - -/* - @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: 50px; - height: 50px; -} -.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 { - 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% { - 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-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 { - 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.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 0.3s; - border-radius: 50%; -} -.slider .indicators .indicator-item.active { - background-color: #4CAF50; -} - -.carousel { - overflow: hidden; - position: relative; - width: 100%; - height: 400px; - perspective: 500px; - transform-style: preserve-3d; - transform-origin: 0% 50%; -} -.carousel.carousel-slider { - top: 0; - left: 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 { - visibility: hidden; - width: 200px; - height: 200px; - 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 0.3s; - border-radius: 50%; -} -.carousel .indicators .indicator-item.active { - background-color: #fff; -} -.carousel.scrolling .carousel-item .materialboxed, -.carousel .carousel-item:not(.active) .materialboxed { - pointer-events: none; -} - -.tap-target-wrapper { - width: 800px; - height: 800px; - position: fixed; - z-index: 1000; - visibility: hidden; - transition: visibility 0s 0.3s; -} - -.tap-target-wrapper.open { - visibility: visible; - transition: visibility 0s; -} -.tap-target-wrapper.open .tap-target { - transform: scale(1); - opacity: 0.95; - transition: transform 0.3s cubic-bezier(0.42, 0, 0.58, 1), opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1); -} -.tap-target-wrapper.open .tap-target-wave::before { - transform: scale(1); -} -.tap-target-wrapper.open .tap-target-wave::after { - visibility: visible; - animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite; - transition: opacity 0.3s, transform 0.3s, visibility 0s 1s; -} - -.tap-target { - position: absolute; - font-size: 1rem; - border-radius: 50%; - background-color: #372c4b; - box-shadow: 0 20px 20px 0 rgba(0, 0, 0, 0.14), 0 10px 50px 0 rgba(0, 0, 0, 0.12), 0 30px 10px -20px rgba(0, 0, 0, 0.2); - width: 100%; - height: 100%; - opacity: 0; - transform: scale(0); - transition: transform 0.3s cubic-bezier(0.42, 0, 0.58, 1), opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1); -} - -.tap-target-content { - position: relative; - display: table-cell; -} - -.tap-target-wave { - position: absolute; - border-radius: 50%; - z-index: 10001; -} -.tap-target-wave::before, .tap-target-wave::after { - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - border-radius: 50%; - background-color: #ffffff; -} -.tap-target-wave::before { - transform: scale(0); - transition: transform 0.3s; -} -.tap-target-wave::after { - visibility: hidden; - transition: opacity 0.3s, transform 0.3s, visibility 0s; - z-index: -1; -} - -.tap-target-origin { - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 10002; - position: absolute !important; -} -.tap-target-origin:not(.btn):not(.btn-large):not(.btn-small), .tap-target-origin:not(.btn):not(.btn-large):not(.btn-small):hover { - background: none; -} - -@media only screen and (max-width: 600px) { - .tap-target, .tap-target-wrapper { - width: 600px; - height: 600px; - } -} -.pulse { - overflow: visible; - position: relative; -} -.pulse::before { - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - background-color: inherit; - border-radius: inherit; - transition: opacity 0.3s, transform 0.3s; - animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite; - z-index: -1; -} - -@keyframes pulse-animation { - 0% { - opacity: 1; - transform: scale(1); - } - 50% { - opacity: 0; - transform: scale(1.5); - } - 100% { - opacity: 0; - transform: scale(1.5); - } -} -/* Modal */ -.datepicker-modal { - max-width: 325px; - min-width: 300px; - max-height: none; -} - -.datepicker-container.modal-content { - display: flex; - flex-direction: column; - padding: 0; -} - -.datepicker-controls { - display: flex; - justify-content: space-between; - width: 280px; - margin: 0 auto; -} -.datepicker-controls .selects-container { - display: flex; -} -.datepicker-controls .select-wrapper input { - border-bottom: none; - text-align: center; - margin: 0; -} -.datepicker-controls .select-wrapper input:focus { - border-bottom: none; -} -.datepicker-controls .select-wrapper .caret { - display: none; -} -.datepicker-controls .select-year input { - width: 50px; -} -.datepicker-controls .select-month input { - width: 70px; -} - -.month-prev, .month-next { - margin-top: 4px; - cursor: pointer; - background-color: transparent; - border: none; -} - -/* Date Display */ -.datepicker-date-display { - flex: 1 auto; - background-color: #26a69a; - color: #fff; - padding: 20px 22px; - font-weight: 500; -} -.datepicker-date-display .year-text { - display: block; - font-size: 1.5rem; - line-height: 25px; - color: rgba(255, 255, 255, 0.7); -} -.datepicker-date-display .date-text { - display: block; - font-size: 2.8rem; - line-height: 47px; - font-weight: 500; -} - -/* Calendar */ -.datepicker-calendar-container { - flex: 2.5 auto; -} - -.datepicker-table { - width: 280px; - font-size: 1rem; - margin: 0 auto; -} -.datepicker-table thead { - border-bottom: none; -} -.datepicker-table th { - padding: 10px 5px; - text-align: center; -} -.datepicker-table tr { - border: none; -} -.datepicker-table abbr { - text-decoration: none; - color: #999; -} -.datepicker-table td { - border-radius: 50%; - padding: 0; -} -.datepicker-table td.is-today { - color: #26a69a; -} -.datepicker-table td.is-selected { - background-color: #26a69a; - color: #fff; -} -.datepicker-table td.is-outside-current-month, .datepicker-table td.is-disabled { - color: rgba(0, 0, 0, 0.3); - pointer-events: none; -} - -.datepicker-day-button { - background-color: transparent; - border: none; - line-height: 38px; - display: block; - width: 100%; - border-radius: 50%; - padding: 0 5px; - cursor: pointer; - color: inherit; -} -.datepicker-day-button:focus { - background-color: rgba(43, 161, 150, 0.25); -} - -/* Footer */ -.datepicker-footer { - width: 280px; - margin: 0 auto; - padding-bottom: 5px; - display: flex; - justify-content: space-between; -} - -.datepicker-cancel, -.datepicker-clear, -.datepicker-today, -.datepicker-done { - color: #26a69a; - padding: 0 1rem; -} - -.datepicker-clear { - color: #F44336; -} - -/* Media Queries */ -@media only screen and (min-width : 601px) { - .datepicker-modal { - max-width: 625px; - } - - .datepicker-container.modal-content { - flex-direction: row; - } - - .datepicker-date-display { - flex: 0 1 270px; - } - - .datepicker-controls, -.datepicker-table, -.datepicker-footer { - width: 320px; - } - - .datepicker-day-button { - line-height: 44px; - } -} -/* Timepicker Containers */ -.timepicker-modal { - max-width: 325px; - max-height: none; -} - -.timepicker-container.modal-content { - display: flex; - flex-direction: column; - padding: 0; -} - -.text-primary { - color: white; -} - -/* Clock Digital Display */ -.timepicker-digital-display { - flex: 1 auto; - background-color: #26a69a; - padding: 10px; - font-weight: 300; -} - -.timepicker-text-container { - font-size: 4rem; - font-weight: bold; - text-align: center; - color: rgba(255, 255, 255, 0.6); - font-weight: 400; - position: relative; - user-select: none; -} - -.timepicker-span-hours, -.timepicker-span-minutes, -.timepicker-span-am-pm div { - cursor: pointer; -} - -.timepicker-span-hours { - margin-right: 3px; -} - -.timepicker-span-minutes { - margin-left: 3px; -} - -.timepicker-display-am-pm { - font-size: 1.3rem; - position: absolute; - right: 1rem; - bottom: 1rem; - font-weight: 400; -} - -/* Analog Clock Display */ -.timepicker-analog-display { - flex: 2.5 auto; -} - -.timepicker-plate { - background-color: #eee; - border-radius: 50%; - width: 270px; - height: 270px; - overflow: visible; - position: relative; - margin: auto; - margin-top: 25px; - margin-bottom: 5px; - user-select: none; -} - -.timepicker-canvas, -.timepicker-dial { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; -} - -.timepicker-minutes { - visibility: hidden; -} - -.timepicker-tick { - border-radius: 50%; - color: rgba(0, 0, 0, 0.87); - line-height: 40px; - text-align: center; - width: 40px; - height: 40px; - position: absolute; - cursor: pointer; - font-size: 15px; -} - -.timepicker-tick.active, -.timepicker-tick:hover { - background-color: rgba(38, 166, 154, 0.25); -} - -.timepicker-dial { - transition: transform 350ms, opacity 350ms; -} - -.timepicker-dial-out { - opacity: 0; -} -.timepicker-dial-out.timepicker-hours { - transform: scale(1.1, 1.1); -} -.timepicker-dial-out.timepicker-minutes { - transform: scale(0.8, 0.8); -} - -.timepicker-canvas { - transition: opacity 175ms; -} -.timepicker-canvas line { - stroke: #26a69a; - stroke-width: 4; - stroke-linecap: round; -} - -.timepicker-canvas-out { - opacity: 0.25; -} - -.timepicker-canvas-bearing { - stroke: none; - fill: #26a69a; -} - -.timepicker-canvas-bg { - stroke: none; - fill: #26a69a; -} - -/* Footer */ -.timepicker-footer { - margin: 0 auto; - padding: 5px 1rem; - display: flex; - justify-content: space-between; -} - -.timepicker-clear { - color: #F44336; -} - -.timepicker-close { - color: #26a69a; -} - -.timepicker-clear, -.timepicker-close { - padding: 0 20px; -} - -/* Media Queries */ -@media only screen and (min-width : 601px) { - .timepicker-modal { - max-width: 600px; - } - - .timepicker-container.modal-content { - flex-direction: row; - } - - .timepicker-text-container { - top: 32%; - } - - .timepicker-display-am-pm { - position: relative; - right: auto; - bottom: auto; - text-align: center; - margin-top: 1.2rem; - } -} - -/*# sourceMappingURL=materialize.css.map */ diff --git a/css/materialize.css.map b/css/materialize.css.map deleted file mode 100644 index 7f96032..0000000 --- a/css/materialize.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["materialize-src/sass/components/_color-classes.scss","materialize-src/sass/overrides.scss","materialize-src/sass/components/_normalize.scss","materialize-src/sass/components/_global.scss","materialize-src/sass/components/_variables.scss","materialize-src/sass/components/_badges.scss","materialize-src/sass/components/_icons-material-design.scss","materialize-src/sass/components/_grid.scss","materialize-src/sass/components/_navbar.scss","materialize-src/sass/components/_typography.scss","materialize-src/sass/components/_transitions.scss","materialize-src/sass/components/_cards.scss","materialize-src/sass/components/_toast.scss","materialize-src/sass/components/_tabs.scss","materialize-src/sass/components/_tooltip.scss","materialize-src/sass/components/_buttons.scss","materialize-src/sass/components/_dropdown.scss","materialize-src/sass/components/_waves.scss","materialize-src/sass/components/_modal.scss","materialize-src/sass/components/_collapsible.scss","materialize-src/sass/components/_chips.scss","materialize-src/sass/components/_materialbox.scss","materialize-src/sass/components/forms/_forms.scss","materialize-src/sass/components/forms/_input-fields.scss","materialize-src/sass/components/forms/_radio-buttons.scss","materialize-src/sass/components/forms/_checkboxes.scss","materialize-src/sass/components/forms/_switches.scss","materialize-src/sass/components/forms/_select.scss","materialize-src/sass/components/forms/_file-input.scss","materialize-src/sass/components/forms/_range.scss","materialize-src/sass/components/_table_of_contents.scss","materialize-src/sass/components/_sidenav.scss","materialize-src/sass/components/_preloader.scss","materialize-src/sass/components/_slider.scss","materialize-src/sass/components/_carousel.scss","materialize-src/sass/components/_tapTarget.scss","materialize-src/sass/components/_pulse.scss","materialize-src/sass/components/_datepicker.scss","materialize-src/sass/components/_timepicker.scss"],"names":[],"mappings":";AAKM;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAZF;EACE;;;AAEF;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAQN;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AAJF;EACE;;;AAEF;EACE;;;AC1BJ;EACI,OAJY;;;AAOhB;EACI,kBARY;;;AAWhB;EACI,OAXkB;;;AActB;EACI,kBAfkB;;;ACDtB;AAEA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;AAAmB;EACnB;AAA4B;EAC5B;AAAgC;;;AAGlC;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAEO;EACL;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;AAAyB;EACzB;AAAW;EACX;AAAmB;;;AAGrB;AAAA;AAAA;AAAA;AAKA;EACE;AAAmC;EACnC;AAAgB;;;AAGlB;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;AAA+B;EAC/B;AAAuC;;;AAGzC;AAAA;AAAA;AAAA;AAKA;EACE;AAAqB;EACrB;AAA4B;EAC5B;AAAmC;;;AAGrC;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;EAGE;AAAmC;EACnC;AAAgB;;;AAGlB;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAIA;EACE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;EAKE;AAAyB;EACzB;AAAiB;EACjB;AAAmB;EACnB;AAAW;;;AAGb;AAAA;AAAA;AAAA;AAKA;AAAA;AACQ;EACN;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AACS;EACP;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;AAAA;AAAA;EAIE;AAA4B;;;AAG9B;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;AAAwB;EACxB;AAAgB;EAChB;AAAgB;EAChB;AAAiB;EACjB;AAAY;EACZ;AAAqB;;;AAGvB;AAAA;AAAA;AAAA;AAKA;EACE;AAAuB;EACvB;AAA0B;;;AAG5B;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;AAAwB;EACxB;AAAY;;;AAGd;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;AAA+B;EAC/B;AAAsB;;;AAGxB;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;AAA4B;EAC5B;AAAe;;;AAGjB;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AC3bF;EACC;;;AAED;EACC;;;AAaD;AAAA;AAAA;AAAA;AAAA;EAKE,aCyRW;;;ADrRX;EACE;EACA;;AAEA;EACE;;;AAKN;EACC,OCIY;EDHZ;EAGC;;;AAKF;EACE;EACA;;;AAKF;EACE;;;AAKF;EACE;;;AAGF;AACA;EACE;;;AAIF;EACE;;;AAGF;AACA;EACE;;;AAKF;AACA;EACE;;;AAKF;AACA;EACE;;;AAKF;AACA;EACE;;;AAKF;EACE;;AAEA;EACE;;;AAMJ;EACE;EACA;EACA;;;AAMF;EACE;EACA;EACA;;;AAKF;EACE;;AAEA;EACE;EACA;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;;AAKJ;AAAA;EAEE;EACA;;;AAQA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EAAa;;AAEb;EAAW,kBFxLC;;AE0LZ;EACE;EACA;;AAGF;EACE;;AAKJ;EACE;EACA;;;AAGJ;EACE;IACE;;EAEA;AAAA;IAEE;;EAGF;IACE;IACA;IACA;;;AAMN;EACE;EACA;;AAEA;AAAA;AAAA;EAGE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMN;EACE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;EACE;EACA;;;AAIF;AAAA;AAAA;AAIE;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAIF;EADF;IAEI;;;;AAOF;EADF;IAEI;;;;AAKJ;EACE;EACA,OC3DkB;ED4DlB,kBF3Xc;;AE6Xd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,OCnE0B;EDoE1B,kBCnEwB;;;ADwE5B;EACG;;;AAGH;EACE;EACA;EACA;EACA;;AAGE;EACE;;AAIA;EACE,kBCzHc;;AD4HhB;EACE;;AAKN;EACE;;AACA;EACE,kBCrIgB;;AD0IlB;EACE;;;AAKN;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAIF;EAEE;IACE;IACA;IACA;IACA;IACA;AAoDA;;EAlDA;IACE;;EAGF;AAAA;IAEE;IACA;;EAGF;IAAK;;EACL;IACE;IACA;;EAEA;IACE;IACA;;EAEA;IACE;;EAIN;IACE;IACA;IACA;IACA;IACA;;EAEA;IACE;IACA;;EAGJ;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;;EAIF;IACE;IACA;;;AAQN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,kBC5LkB;ED6LlB,aCxLqB;EDyLrB;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAGA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAMJ;EACE;;AAGF;EACE,kBC3hBY;ED4hBZ,OCjPoB;;ADmPpB;EACE;;AAIN;EACE;EACA;EACA,OCtiBc;;ADwiBZ;EACE,kBC7PoB;;ADmQxB;EACE,kBCvQgB;EDwQhB;EACA;;AAEF;EACE;;AAEF;EACE;;;AAMN;EACE;EACA,OChkBgB;;;ADkkBlB;EACE;EACA;;;AAMF;EACI;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAKN;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;EACA;EACA,kBCxmBc;EDymBd;;AAEF;EACE,kBC5mBc;;AD6mBd;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAIN;EACI;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;;AAIN;EACI;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;;AAKN;AAAA;AAAA;AAIA;EACE;;;AAIF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;;;AAEF;EACE;;;AAIF;AAAA;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AE9vBF;EACE;EACA;EACA;EACA;EACA;EACA,aD2Ca;EC1Cb,QD0Ca;ECzCb;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA,kBDuBc;ECtBd;;AAEF;EACE;;AAGF;EACE;;;AAKJ;EACE;EACA;EACA;EACA,aDgBa;ECfb,QDea;ECdb;;;AAIF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;EACA;;;ACrDF;AACA;EACE;EACA;;;ACHF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;;AAEF;EACE;;AAEF;EACE;;;AAwBJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EAEE;;AAMA;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAyCI;EACE,OAFK;EA1CX;EACA;EACA;;AAGA;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AA/CX;EACE,aA8CS;;AA5CX;EACE,OA2CS;;AAzCX;EACE,MAwCS;;AAKT;EAKI;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EA4DM;IACE,OAFK;IA7Db;IACA;IACA;;EAGA;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;EAlEb;IACE,aAiEW;;EA/Db;IACE,OA8DW;;EA5Db;IACE,MA2DW;;;AAMX;EAKI;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAgFM;IACE,OAFK;IAjFb;IACA;IACA;;EAGA;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;EAtFb;IACE,aAqFW;;EAnFb;IACE,OAkFW;;EAhFb;IACE,MA+EW;;;AAMX;EAKI;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAoGM;IACE,OAFK;IArGb;IACA;IACA;;EAGA;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;EA1Gb;IACE,aAyGW;;EAvGb;IACE,OAsGW;;EApGb;IACE,MAmGW;;;;ACrJf;EAeE,OJ0OkB;EIxOlB,kBPjBc;EOkBd;EACA,QJmOqB;EIlOrB,aJkOqB;;AIrPrB;EACE;;AAEA;EACE,YJiPiB;EIhPjB;;AAGF;EACE;EACA;;AAWJ;EAAI,OJmOc;;AIjOlB;AAAA;AAAA;EAGE;EACA;EACA,QJyNmB;EIxNnB,aJwNmB;;AIrNrB;EACE;EACA;;AAGF;EACE;IAAoB;;;AAKtB;EACE;EACA;EACA;EACA,QJsMmB;EIrMnB;;AAEA;EACE,QJkMiB;EIjMjB,aJiMiB;;AI3LrB;EACE;EACA,OJ4LgB;EI3LhB;EACA,WJ2LqB;EI1LrB;;AAEA;EACE;EACA;;AAGF;EAZF;IAaI;IACA;;EAEA;IACE;IACA;;EAGF;IAAS;;EACT;IACE;IACA;;;AAIJ;EACE;EACA;;AAGF;AAAA;AAAA;EAGE;EACA;;AAMJ;EACE;EACA;EACA;;AAKF;EACE;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAGJ;EACE;EACA,WJ4Ha;EI3Hb,OJ4Hc;EI3Hd;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;;AAIJ;EACE;;AAKJ;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;;AAEF;EAAa,OJoEC;;;AI9DpB;EACE;EACA,QJyDqB;EIxDrB;;AAEA;EACE;;;AAGJ;EACE;IACE,YJ8CY;;;EI5Cd;IACE,QJ2CY;II1CZ,aJ0CY;;;EIxCd;IACE,QJuCY;;;AKnPhB;EACE;;;AAGF;EACE;EAcA,aL6RW;EK5RX;EACA,OL4RU;;AK1SV;EAHF;IAII;;;AAGF;EAPF;IAQI;;;AAGF;EAXF;IAYI;;;;AAOJ;EACC;EACA;;;AAID;EAAqC;;;AACrC;EAAK,WLqRS;EKrRgB;EAAmB;;;AACjD;EAAK,WLqRS;EKrRgB;EAAmB;;;AACjD;EAAK,WLqRS;EKrRgB;EAAmB;;;AACjD;EAAK,WLqRS;EKrRgB;EAAmB;;;AACjD;EAAK,WLqRS;EKrRgB;EAAmB;;;AACjD;EAAK,WLqRS;EKrRgB;EAAmB;;;AAGjD;EAAK;;;AACL;EAAS;;;AACT;EAAQ;;;AACR;EAAS;;;AACT;EAAQ;;;AAMJ;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AADF;EAHJ;IAIM;;;AAMJ;EAVF;IAWI;;;;ACxDJ;EAUE;;AATA;EACE;EACA;;AAGF;EACE;;;ACNJ;EACE;EACA,SPiGa;EOhGb;EACA;EAEA,kBP8Fc;;;AO3FhB;EACE;EACA;EACA,kBPwFc;EOvFd;EACA;;AAIA;EACE;EACA;;AACA;EACE;;AAKJ;EACE;;AAEA;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AAIF;EAaE;;AAXE;EACE;EACA;EACA;;AAEA;EACE;;AAON;EACE;;AACA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAOJ;EACE;;AAGF;EACE;EACA;;AAOJ;EACE;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,OP7BU;EO8BV;EACA;EACA;EACA;EACA,SPnCS;;AOuCb;EACE,SPxCW;EOyCX;;AAEA;EACE;;AAEF;EACE;EACA;EACA;;AAEA;EACE;;AAKN;EAIE;EACA;EACA;EACA;;AANA;EACE;;AAOF;EACE,OPjEY;EOkEZ,cPpES;EOqET;EACA;;AAEA;EAAU,OPrEQ;;AOyEtB;EACE,SP7EW;EO8EX;EACA,kBP9EY;EO+EZ;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AC/LN;EACE;EACA;EACA;;AAEA;EALF;IAMI;IACA;;;AAEF;EATF;IAUI;IACA;IACA;;;AAEF;EAdF;IAeI;IACA;IACA;;;;AAIJ;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YR0Qa;EQzQb;EACA,kBRyQY;EQxQZ;EACA;EACA;EACA,ORsQiB;EQrQjB;EACA;EACA;EACA;;AAEA;EACE,ORgQiB;EQ/PjB;EACA;EACA;;AAGF;EACE;;AAGF;EAhCF;IAiCI;IACA;;;;ACvDJ;EA4BE;EACA;EACA;EACA;EACA;EACA,kBT0Pc;ESzPd;EACA;;AAlCA;EACE;;AAEA;AAAA;AAAA;EAGE;;AAGF;AAAA;EAEE;;AAGF;EACE;;AAIJ;EACE;;AAEA;EACE;;AAaJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAaE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AApBA;EAEE;EACA;;AAGF;EAEE;EACA,OZxDQ;;AYsEZ;EAEE;EACA;;AAGJ;EACE;EACA;EACA;EACA,kBZ/EkB;EYgFlB;;;AAKJ;EACE;IACE;;EAEA;IACE;;EAEA;IACE;;;AC9FR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC7BF;AAAA;EAEE,QXsDc;EWrDd,eX2Dc;EW1Dd;EACA,QXuDc;EWtDd,aXsDc;EWrDd,SXsDe;EWrDf;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAeE;EACA;EACA;EACA;EACA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKJ;AAAA;AAAA;AAAA;AAAA;EAKE,WXYiB;EWXjB;;AACA;AAAA;AAAA;AAAA;AAAA;EACE,WXUoB;EWTpB;;;AAOF;AAAA;EACE;;;AAKJ;EACE;EACA,OXMoB;EWLpB,kBX3BgB;EW4BhB;EACA;EAEA;EACA;;AACA;EACE,kBXH6B;;;AWSjC;EAwCE;EACA,OX5BsB;EW6BtB;EACA;EACA;EACA,OX/BqB;EWgCrB,QXhCqB;EWiCrB,aXjCqB;EWkCrB;EACA,kBXzFgB;EW0FhB,eXnCuB;EWqCvB;EACA;EACA;;AArDA;EACE,kBX1Cc;;AW6ChB;EACE;;AAEF;EAIE,OXdyB;EWezB,QXfyB;EWgBzB;;AALA;EACE;;AAKF;EACE,aXlBuB;;AWsB3B;EAIE,OXpByB;EWqBzB,QXrByB;;AWiBzB;EACE;;AAIF;EACE,aXvBuB;;AW2B3B;EAKE;EACA;EACA;;AANA;EACE;EACA;;AAqBJ;EACE;EACA;EACA;EACA,OX9CoB;EW+CpB,WXhE0B;EWiE1B,aX/CmB;;;AWoDvB;EACE,QX1Fc;;;AW8FhB;EAuFE;EACA;EACA;EACA;EACA;EACA;;AA1FE;EACE;;AAKJ;EAEE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;AACA;EACA;;AACA;EACE;EACA;;AAIN;EACE;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAIN;EACE;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAIN;EAME;EACA,QXlIyB;;AW6HvB;EACE;;AAKJ;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aXvJmB;EWwJnB;;AACA;EACE;;AAYV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA,OX1KmB;EW2KnB,QX3KmB;EW4KnB,kBXlOc;EWmOd,eX5KqB;EW6KrB;;;AAKJ;EACE;EACA;EACA,OX7LkB;EW8LlB;EACA;;AACA;EAEE;;AAEF;EACE;;AAEF;EAEE;EACA;EACA;;;AAKJ;EAEE,QX5NoB;EW6NpB,aX7NoB;EW8NpB,WXhOuB;EWiOvB;;AAEA;EACE,WXnO0B;;;AWwO9B;EAEE,QXnOoB;EWoOpB,aXpOoB;EWqOpB,WXvOuB;;AWwOvB;EACE,WXxO0B;;;AW6O9B;EACE;;;AChUF;EAOE,kBZoJkB;EYnJlB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAhBA;EACE;;AAkBF;EAsCE;EACA,OZuPQ;EYtPR;EACA,YZiGmB;EYhGnB;EACA;EACA;;AA3CA;EACE,kBZsIoB;;AYnItB;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA,OZIY;EYHZ;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;;AAeJ;EACE;;;AAKJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AClFF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAIF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AACA;EACE;;;AChHF;EAOE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAlBA;EACE;;AAmBF;EArBF;IAsBG;;;AAGD;EACE;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AC5FF;EACE;EACA;EACA;EACA;;;AAIF;EAKE;EACA;EACA;EACA;EACA;EACA,kBfsGyB;EerGzB;;AAVA;EACE;;AAWF;EACE;EACA;EACA;EACA;EACA;;;AAGJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAOA;AAAA;EACE;EACA;;AAEA;AAAA;EAAK;;AAGP;AAAA;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAAU;;AACV;AAAA;EAAI;;AAGN;AAAA;EACE;EACA,kBfwDuB;;AetDvB;AAAA;EACE;;;AASN;EACE;EACA;;AACA;EACE;EAEA;EACA;;AAEF;EACE;EACA;;;ACvFJ;EAOE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBhBgHc;EgB/Gd,ehBkHY;EgBjHZ,chBiHY;;AgBjIZ;EACE;EACA,kBhB8HkB;EgB7HlB;;AAeF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA,QhBsIa;EgBrIb;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA,WhBiHc;EgBhHd,QhByGW;EgBxGX;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIF;EACE;EACA;;;AAKJ;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;ACxFF;EAOE;EACA;EACA;EACA;EACA;;AATE;EACE;;AAUJ;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACxCF;EACE,SlBmMa;;;AkBhMf;EACE;EACA,kBlBmDwB;;;AkBhD1B;EACE,WlBqKgB;EkBpKhB,OlB0JmB;;;AmBtKrB;AAAA;AAGA;AAEA;EACE,OnBgLuB;;;AmB7KzB;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAeE;EACA;EACA,enB2Ia;EmB1Ib;EACA;EACA,QnBsIa;EmBrIb;EACA,WnB2IgB;EmB1IhB,QnB4Ia;EmB3Ib,SnB4Ic;EmB3Id;EACA;EACA;;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE,OnBsImB;EmBrInB,enBuIoB;;AmBnItB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE,OnB+HmB;;AmB3HrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE,OnBrBc;;AmB2ChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE,OnB3CY;;AmByDd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE,OnBzDU;;AmB6DZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAUJ;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE,enB4DqB;EmB3DrB;;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;EACA;;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA,OnBzFc;;;AmB2FhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA,OnB5FY;;;AmB8Fd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKF;EAyBE;EACA;EACA;;AAzBA;EACE;EACA;EACA;;AAEA;AAAA;EAEE;;AAMF;EACE;;AAGF;AAAA;EAEE;;AAQJ;EACE,OnBZiB;EmBajB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKJ;EAGE;EACA;;AAGF;EAQE;EACA;EACA;EACA;EACA;;AAXA;EACE;EACA;EACA;EACA;;AAWJ;EACE;EACA,OnBxDW;EmByDX,WnBzCc;EmB0Cd;EACA;;AAEA;EAAW,OnB1LG;;AmB6LhB;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;EACA;;AAGF;EAAkB;;AAElB;EACE;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;;;AAMN;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE,kBnB1Ge;EmB2Gf;EACA;EACA;;AAEA;EAGE;;AAIJ;EACE;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA,WnBrHc;EmBsHd;;;AAKJ;AAGA;EACE;EACA,QnBhJa;EmBiJb;;AAEA;EACE;EACA;AAAoB;EACpB;AAA0B;EAC1B;EACA,YnBxJW;EmByJX;;;AAKJ;EACE;EACA;EACA;EACA;AAA2B;EAC3B;AAAqB;EAGrB;EACA;EACA;;;AAIF;AAGI;EAAa;;AAEb;EACE;EACA;EACA;;;AAKN;AACA;EACE;;;AChWF;AAAA;AAIA;AAAA;EAEE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;AAGF;AAAA;EAEE;;;AAGF;EACE;;;AAGF;AACA;EACE;;;AAGF;AAAA;AAAA;EAGE,QpB2Ha;;;AoBxHf;AAAA;EAEE,kBpB7BgB;;;AoBgClB;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;EACA,kBpBoFqB;;;AoBjFvB;AACA;AAAA;EAEE;EACA,cpB6EqB;;;AoB1EvB;EACE,OpByEqB;;;AoBtEvB;EACE,cpBqEqB;;;AoBlEvB;EACE,kBpBiEqB;EoBhErB,cpBiE2B;;;AqBlL7B;AAAA;AAGA;AACA;AAAA;EAEE;EACA;EACA;;;AAIF;AAaE;;AAXA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA,kBrBiImB;;AqB7HrB;EACE;EACA;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,crBsHW;EqBrHX,erBqHW;EqBpHX;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;EACA,crBgGW;EqB/FX;EACA;EACA;EACA;;AAIF;EACE;EACA;;;AAOF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;AACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA,kBrB1HY;EqB2HZ;;AAKJ;EACE;EACA,crBgBgB;EqBfhB;;AAGF;EACE;EACA,kBrBxIc;EqById,crBzIc;;AqB6IhB;EACE;EACA;;AAGF;EACE;EACA,kBrBVyB;;AqBa3B;EACE;;AAGF;EACE,kBrBlByB;EqBmBzB,crBnByB;;;AsBlL7B;AAAA;AAGA;AAAA;EAEE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE,kBtB4LsB;;AsB1LtB;EACE;;AAGF;EACE,kBtBcY;;;AsBTlB;EACE;EACA;EACA;EACA;EACA;EACA,kBtB4K0B;EsB3K1B,etB4Kc;EsB3Kd;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE,kBtBmJkB;EsBlJlB;;;AAKJ;AAAA;EAEE;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAIF;EACE;EACA;;;AAGF;AAAA;EAEE,kBtB2F2B;;;AuBlL7B;AAAA;AAGA;EAAS;;;AACT;EAAyB;;;AAEzB;EACE,kBvB6LkB;EuB5LlB;EACA,SvBgMe;EuB/Lf,QvByLc;EuBxLd,evB+Lc;EuB9Ld,QvByJa;;;AuBtJf;EACE;;;AAGF;EAqCE;;AAVA;EAEE;EACA;;AASF;EAIE;EACA;EACA;EACA;EACA,evBqGW;EuBpGX;EACA,QvBiGW;EuBhGX,avBgGW;EuB/FX;EACA,WvBqGc;EuBpGd,QvBsGW;EuBrGX;EACA;EACA;EACA;;AAjBA;EACE;;AAmBJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,WvBoFc;;;AuB/ElB;EACE,OvB+EqB;;;AuB3ErB;EACE,OvB0EmB;;AuBxErB;EACE,MvBuEmB;;;AuBnEvB;EACE,OvBkEqB;EuBjErB;EACA;;;AAGF;EACE,OvBsFsB;;;AuBnFxB;AAAA;AAAA;EAGE,OvBgFsB;EuB/EtB;;;AAIA;EACE,kBvBsEkB;;;AuBhElB;EACE,kBvB8DgB;;AuB3DlB;EACE,kBvB4DmB;;;AuBtDzB;EACE;EACA;EACA;;;AAGF;EAAkB;;;AAIhB;EACE;EACA;EACA;EACA;;;AAKJ;EACE;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;;ACjLJ;AAAA;AAGA;EACE;;AAEA;EACE;EACA;;AAGF;EAAkB;;AAElB;EACE;EACA,QxBsJW;EwBrJX,axBqJW;;AwBlJb;EACE;;AAGF;EAOE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAfA;EACE;;;AC3BN;AAAA;AAGA;EACE;;;AAGF;AAAA;EAGE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBzBKgB;EyBJhB;EAEA;EACA;;AAEA;EACE;EACA;EACA;EACA,OzBLc;EyBMd;EACA;;AAGF;EACE;;AAEA;EACE,OzBkHa;EyBjHb;EACA;EACA;;;AAsBN;EACE;;;AAGF;EAnBE,QzBgIa;EyB/Hb;EACA;;;AAqBF;EAjBE;EACA,QzBuHa;EyBtHb,OzBuHY;EyBtHZ;EACA,YzBlCgB;EyBmChB;EAcA;EACA,kBzBlDgB;EyBmDhB;EACA;;;AAIF;EACE;;;AAIF;AACE;EACA;AAEA;;;AAGF;EA5CE,QzBgIa;EyB/Hb;EACA;;;AA8CF;EACE;;;AAGF;EA9CE;EACA,QzBuHa;EyBtHb,OzBuHY;EyBtHZ;EACA,YzBlCgB;EyBmChB;EA2CA;;;AAIF;EACE;EACA;;;AAGF;EACE;;;AAIF;EACE,QzB2Da;EyBxDb;EAGA;EACA;AAEA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EApFE;EACA,QzBuHa;EyBtHb,OzBuHY;EyBtHZ;EACA,YzBlCgB;EyBmChB;;;AAmFF;EACE;;;AC/JF;AAAA;AAAA;AAIE;EACI;;AAGJ;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;;;AC7BN;EACE;EACA,O3B6Pc;E2B5Pd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kB3BuPiB;E2BtPjB;EACA;EACA;EACA;EACA;;AAKA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAIF;EACE;EACA,a3BiOkB;;A2B/NlB;EAAW;;AAGb;EACE,O3BwNiB;E2BvNjB;EACA,W3BqNgB;E2BpNhB;EACA,Q3BuNkB;E2BtNlB,a3BsNkB;E2BrNlB;;AAEA;EAAU;;AAEV;EACE;;AAGF;EAEiB,O3BeC;;A2BdlB;EAAa,O3B6BG;;A2B3BhB;EACoB;;AACpB;EAAuB,kB3BtBT;;A2BwBd;EAGE;EACA,Q3BgMgB;E2B/LhB,a3B+LgB;E2B9LhB;EACA;EACA;;AAKJ;EACE;;AAGF;EAKE;EACA;EACA;EACA,W3BuKgB;E2BtKhB;EACA,a3ByKkB;;A2BlLlB;EACE;;AAWJ;EACE;EACA;EACA;;AAEA;EAEE;EACA;;AAFA;EAAU;;AAKZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE,W3BkIc;E2BjId;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAON;EAME;EACA;EACA;EACA;EACA;;AARA;EACE;;;AAYJ;EAOE;EACA;EACA;;AAPA;EACE;EACA;;;AASJ;EAEI;IACE;;EAEA;IACE;;EAIJ;IACE;;EAGF;IACE;;;AAMN;AAAA;EAEE,kB9BnMc;;A8BoMd;AAAA;EACE,O3B6De;;;A2B1DnB;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACtNF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;AACE;EACA;EACA;;;AAIJ;EACE;IAAK;;;AAGP;EACE;IAAK;;;AAGP;EACE;EACA;EACA;EACA;EACA,c5BzBgB;;;A4B4BlB;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA;AACE;EACA;EACA;;;AAGF;AACE;EACA;EACA;;;AAGF;AACE;EACA;EACA;;;AAGF;AACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAKE;EACA;EACA;EACA;;;AAGF;EACE;IAAQ;;AAAsC;EAC9C;IAAQ;;AAAsC;EAC9C;IAAQ;;AAAsC;EAC9C;IAAQ;;AAAsC;EAC9C;IAAQ;;AAAsC;EAC9C;IAAQ;;AAAsC;EAC9C;IAAQ;;AAAsC;EAC9C;IAAQ;;AAAsC;;AAGhD;EACE;IAAQ;;AAA8B;EACtC;IAAQ;;AAA8B;EACtC;IAAQ;;AAA8B;EACtC;IAAQ;;AAA8B;EACtC;IAAQ;;AAA8B;EACtC;IAAQ;;AAA8B;EACtC;IAAQ;;AAA8B;EACtC;IAAQ;;AAA8B;;AAGxC;EACE;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAO;;;AAGT;EACE;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAO;;;AAGT;EACE;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAM;;;AAGR;EACE;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAM;;;AAGR;EACE;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAM;;;AAGR;EACE;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAM;;;AAGR;EACE;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAO;;;AAGT;EACE;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAM;;EACN;IAAO;;;AAGT;AAAA;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;AAAmB;EACnB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;;AAMJ;AACE;EACA;EACA;;;AAGF;AACE;EACA;EACA;;;AAGF;EACE;IAAO;;EACP;IAAM;;EACN;IAAK;;;AAGP;EACE;IAAO;;EACP;IAAM;;EACN;IAAK;;;AAGP;EACE;IAAO;;EACP;IAAM;;EACN;IAAK;;;AAGP;EACE;IAAO;;EACP;IAAM;;EACN;IAAK;;;AAGP;AACE;EACA;EACA;;;AAGF;EACE;IAAO;;EACP;IAAK;;;AAGP;EACE;IAAO;;EACP;IAAK;;;AC5UP;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE,kB7BiPc;E6BhPd;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAAI,O7BqNY;;A6BlNlB;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kB7B4LkB;E6B1LlB;EACA;;AAEA;EACE,kB7BuLiB;;;A8B7QzB;EAqCE;EACA;EACA;EACA,Q9BsEgB;E8BrEhB;EACA;EACA;;AA1CA;EACE;EACA;;AAEA;EAKE;EACA;EACA;EACA;EACA;;AARA;EACE;;AAUJ;EACE;EACA;EACA,Y9B0FY;E8BzFZ;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAaN;EACE;EACA,O9BgEmB;E8B/DnB,Q9B+DmB;E8B9DnB;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAbA;EACE;;AAiBN;AAAA;EAEE;;;ACvFJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA,YACE;;AAIJ;EACE;;AAEF;EACE;EACA;EACA,YACE;;;AAMN;EACE;EACA;EACA;EACA,kBlCtCc;EkCuCd;EACA;EACA;EACA;EACA;EACA,YACE;;;AAIJ;EACE;EACA;;;AAGF;EAwBE;EACA;EACA;;AAzBA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA,YACE;EAGF;;;AAQJ;EAME;EACA;EACA;EAEA;EACA;;AAVA;EAEE;;;AAWJ;EACE;IACE;IACA;;;ACpGJ;EAgBE;EACA;;AAhBA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAOJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;;AC/BJ;AACA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIA;EAIE;EACA;EACA;;AALA;EACE;;AAOJ;EACE;;AAIJ;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAIF;AACA;EACE;EACA,kBjClBgB;EiCmBhB;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA,OjC0Ec;;AiCvEhB;EACE;EACA;EACA;EACA;;;AAKJ;AACA;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA,OjCiC+B;;AiC9BjC;EAgBE;EACA;;AAhBA;EACE,OjCrEY;;AiCwEd;EACE,kBjCzEY;EiC0EZ;;AAGF;EAEE,OjC2B0B;EiC1B1B;;;AAQN;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAZA;EACE,kBjCemB;;;AiCAvB;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE,OjCtHgB;EiCuHhB;;;AAGF;EACE,OjCzHY;;;AiC6Hd;AACA;EACE;IACE;;;EAGF;IACE;;;EAGF;IACE;;;EAGF;AAAA;AAAA;IAGE;;;EAGF;IACE;;;AC5LJ;AACA;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACC;;;AAID;AACA;EACE;EACA,kBlCoBgB;EkCnBhB;EACA;;;AAGF;EACC;EACA;EACA;EACA;EACC;EACD;EACC;;;AAGF;AAAA;AAAA;EAGC;;;AAGD;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAIF;AACA;EACE;;;AAGF;EACC,kBlCqF2B;EkCpF3B;EACA;EACA;EACA;EACA;EACC;EACA;EACA;EACD;;;AAGD;AAAA;EAEC;EACA;EACC;EACA;EACA;;;AAEF;EACC;;;AAGD;EACC;EACA,OlC0DwB;EkCzDxB;EACA;EACA;EACA;EACA;EACA;EACC;;;AAGF;AAAA;EAEC;;;AAED;EACC;;;AAED;EASC;;AARC;EACC;;AAGD;EACC;;;AAKH;EACC;;AAEC;EACC,QlClFe;EkCmFf;EACA;;;AAGH;EACC;;;AAED;EACC;EACA,MlC5FiB;;;AkC8FlB;EACC;EACA,MlChGiB;;;AkCoGlB;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE,OlC3GY;;;AkC8Gd;EACE,OlCjHgB;;;AkCoHlB;AAAA;EAEE;;;AAGF;AACA;EACE;IACE;;;EAGF;IACE;;;EAGF;IACA;;;EAGD;IACE;IACA;IACA;IACA;IACA","file":"materialize.css"} \ No newline at end of file diff --git a/images/curve-desktop.svg b/images/curve-desktop.svg deleted file mode 100644 index 9a4f415..0000000 --- a/images/curve-desktop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/curve-mobile.svg b/images/curve-mobile.svg deleted file mode 100644 index faa7745..0000000 --- a/images/curve-mobile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/purple-sky.jpg b/images/purple-sky.jpg deleted file mode 100644 index 8e55aec..0000000 Binary files a/images/purple-sky.jpg and /dev/null differ diff --git a/index.html b/index.html index 15056d0..6ff68fb 100644 --- a/index.html +++ b/index.html @@ -5,274 +5,97 @@ Gregg Stubberfield • Front-end Web Developer - + - - + - - -
        -
        -
        -
        -
        - Avatar of Gregg Stubberfield -
        -

        Gregg Stubberfield

        -
        Front-end Web Developer
        -
        +
        + +
        +
        +

        + Front-end Web Developer with 5+ years experience.
        + ***IN PROGRESS** +

        +
        +
        +

        Experience

        +
          +
        • +
          + +
          +
          Bridgeway Benefit Technologies
          +
          Systems Analyst II
          -
          -
        -
        - -
        -
        -

        Hey, I'm Gregg.

        -

        I'm a Front-end Web Developer working remotely in Yardley, PA with over 5 - years of experience building and maintaining websites. My passion is in creating solutions - with Javascript and learning all things web development. -

        -
        -
        -

        About Me

        -

        Hello! In my free time, I enjoy running 5Ks, - breakfast dining, - and doting on my dog Bacon. I leisurely play games such as - Gloomhaven - and - Chess, - and have competively played - Star Realms and - Super - Smash Brothers. -

        -
        -
        -

        TBD -

        +
          +
        • Build responsive, accessible static websites using Javascript, HTML5, CSS3, Sass, + MaterializeCSS, and Bootstrap.
        • +
        • Develop login portals with realtime API data and features such as + Enrollment forms and Stripe Credit Card Payments using REST APIs, JSON, and Node.js +
        • +
        • Act as liason between product, IT, and sales teams during project lifecycle and support
        • +
        • Lead discussions to enhance design of websites and add new features
        • +
        • Feb 2017 - Present
        • +
        + + + +
        +

        Education

        +
          +
        • +
          + +
          +
          B.S. Mathematical Sciences | Minor: Computer Science
          +
          University of West Florida
          -
          -
        -
        -
        - - - - +
          +
        • Vice President - Mathematical Association
        • +
        • 2014 - 2015
        • +
        + + + +
        +

        Projects

        +

        ***IN PROGRESS**

        +
        \ No newline at end of file diff --git a/js/index.js b/js/index.js deleted file mode 100644 index f4b27be..0000000 --- a/js/index.js +++ /dev/null @@ -1,16 +0,0 @@ -document.addEventListener('DOMContentLoaded', function () { - $('.nav-link').click(function (e) { - e.preventDefault(); - e.stopPropagation(); - e.stopImmediatePropagation(); - var $this = $(e.target); - var $currNavItem = $this.parent('li'); - var currPage = $currNavItem.data('nav-item'); - if (!$currNavItem.hasClass('current-page')) { - $('*[data-nav-item]').removeClass('active'); - $currNavItem.addClass('active'); - $('*[data-page]').removeClass('current-page'); - $('[data-page="' + currPage + '"]').addClass('current-page'); - } - }) -}); \ No newline at end of file