diff --git a/.travis.yml b/.travis.yml index 66252d383..3397d055d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ cache: - $HOME/.m2 before_install: # install the gwt-material-jquery because it will depends on built in jquery -- git clone -b release_2.4.2 https://github.com/GwtMaterialDesign/gwt-material-jquery.git +- git clone -b release_2.5.0_rc1 https://github.com/GwtMaterialDesign/gwt-material-jquery.git - cd gwt-material-jquery - mvn install -DskipTests=true -DdryRun=true - cd .. diff --git a/.utility/deploy.sh b/.utility/deploy.sh index c45c40d91..04a6e5acb 100644 --- a/.utility/deploy.sh +++ b/.utility/deploy.sh @@ -1,6 +1,6 @@ #!/bin/bash set -ev -if [ "$TRAVIS_JDK_VERSION" == "oraclejdk8" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "release_2.4.2" ]; then +if [ "$TRAVIS_JDK_VERSION" == "oraclejdk8" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "release_2.5.0_rc1" ]; then echo "ossrh\${env.OSSRH_USER}\${env.OSSRH_PASS}" > ~/settings.xml mvn deploy -DskipTests --settings ~/settings.xml fi \ No newline at end of file diff --git a/README.md b/README.md index c3e1ccf60..15553da90 100644 --- a/README.md +++ b/README.md @@ -20,12 +20,12 @@ We created accessibilityHandlerRegistration; + protected boolean enabled = true; + protected boolean loaded; + + public AccessibilityControl() { + accessibilityHandlerRegistration = new HashMap<>(); + } + + public void load(boolean debug) { + TextResource resource; + if (!loaded) { + if (debug) { + resource = MaterialDebugResources.INSTANCE.focusVisibleJsDebug(); + } else { + resource = MaterialResources.INSTANCE.focusVisibleJs(); + } + injectJs(resource); + loaded = true; + } + } + + protected void injectJs(TextResource resource) { + String text = resource.getText() + ("//# sourceURL=" + resource.getName() + ".js"); + + // Inject the script resource + resourceUrlObject = ScriptInjector.fromString(text) + .setWindow(ScriptInjector.TOP_WINDOW) + .inject(); + } + + /** + * This will register the accessibility control for a widget provided with keycodes + */ + public void registerWidget(MaterialWidget widget, int key) { + registerWidget(widget, key, null); + } + + /** + * This will register the accessibility control for a widget provided with default KeyCodes.ENTER + */ + public void registerWidget(MaterialWidget widget) { + registerWidget(widget, KeyCodes.KEY_ENTER); + } + + public void registerWidget(MaterialWidget widget, TriggerCallback callback) { + registerWidget(widget, KeyCodes.KEY_ENTER, callback); + } + + /** + * This will register the accessibility control for a widget provided with keycodes and + * TriggerCallback + */ + public void registerWidget(MaterialWidget widget, int key, TriggerCallback callback) { + if (widget != null) { + HandlerRegistration handlerRegistration = widget.registerHandler(widget.addKeyUpHandler(event -> { + if (isEnabled() && event.getNativeKeyCode() == key) { + if (callback != null) { + callback.call(event); + } else { + triggerClick(widget); + } + } + })); + if (enabled) { + widget.setTabIndex(0); + } else { + widget.getElement().removeAttribute("tabIndex"); + } + accessibilityHandlerRegistration.put(handlerRegistration, widget); + } + } + + /** + * This will unregister any accessibility control to a widget + * @param widget + */ + public void unregisterWidget(Widget widget) { + if (widget != null) { + if (widget.getElement().hasClassName(FOCUS_VISIBLE_WIDGET)) { + widget.removeStyleName(FOCUS_VISIBLE_WIDGET); + } + + if (widget.getElement().hasAttribute(DATA_FOCUS_ADDED_ATTRIBUTE)) { + widget.getElement().removeAttribute(DATA_FOCUS_ADDED_ATTRIBUTE); + } + accessibilityHandlerRegistration.forEach((handlerRegistration, currentWidget) -> { + if (widget == currentWidget) { + handlerRegistration.removeHandler(); + } + }); + } + } + + public void unload() { + JsMaterialElement html = $("html"); + if (html != null) { + if (html.hasClass(FOCUS_VISIBILITY_CLASSNAME)) { + html.removeClass(FOCUS_VISIBILITY_CLASSNAME); + } + html.removeAttr(FOCUS_VISIBILITY_ATTRIBUTE); + } + + if (resourceUrlObject != null) { + JsMaterialElement scriptTag = $(resourceUrlObject.cast()); + scriptTag.remove(); + } + loaded = false; + } + + public void triggerClick(Widget widget) { + if (widget != null) { + JQuery.$(widget.getElement()).click(); + } + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public static AccessibilityControl get() { + if (instance == null) { + instance = new AccessibilityControl(); + } + return instance; + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/accessibility/TriggerCallback.java b/gwt-material/src/main/java/gwt/material/design/client/accessibility/TriggerCallback.java new file mode 100644 index 000000000..085bab617 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/accessibility/TriggerCallback.java @@ -0,0 +1,27 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.accessibility; + +import com.google.gwt.event.dom.client.KeyUpEvent; + +public interface TriggerCallback { + + void call(KeyUpEvent event); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/AbstractSideNav.java b/gwt-material/src/main/java/gwt/material/design/client/base/AbstractSideNav.java index 7a975d4ac..fbfa8956b 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/AbstractSideNav.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/AbstractSideNav.java @@ -28,6 +28,7 @@ import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.Widget; +import gwt.material.design.client.accessibility.AccessibilityControl; import gwt.material.design.client.base.density.Density; import gwt.material.design.client.base.helper.DOMHelper; import gwt.material.design.client.base.mixin.DensityMixin; @@ -281,6 +282,9 @@ protected void load(boolean strict) { navMenu.setHideOn(HideOn.HIDE_ON_LARGE); } navMenu.removeStyleName(CssName.NAVMENU_PERMANENT); + + // Register Nav Menu Accessibility + AccessibilityControl.get().registerWidget(navMenu); } } catch (Exception ex) { if (strict) { diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java b/gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java index 674e1f3b7..340022fbf 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java @@ -38,13 +38,14 @@ import gwt.material.design.client.base.validator.Validator; import gwt.material.design.client.constants.Position; import gwt.material.design.client.constants.StatusDisplayType; +import gwt.material.design.client.ui.MaterialIcon; import gwt.material.design.client.ui.MaterialLabel; +import gwt.material.design.client.ui.MaterialValueBox; import java.util.List; -//TODO: HasRawValue public abstract class AbstractValueWidget extends MaterialWidget implements HasValue, LeafValueEditor, - HasEditorErrors, HasErrorHandler, HasStatusText, HasValidators, HasRequiredField, HasClearOnKeyUp { + HasEditorErrors, HasErrorHandler, HasStatusText, HasValidators, HasRequiredField, HasClearOnKeyUp, HasCopyCommand { private boolean allowBlank = true; private boolean autoValidate; @@ -55,6 +56,7 @@ public abstract class AbstractValueWidget extends MaterialWidget implements H private RequiredFieldMixin requiredFieldMixin; private ClearOnKeyUpMixin clearOnKeyUpMixin; private HandlerRegistration attachHandler, blurHandler; + protected CopyCommandMixin copyCommandMixin; public AbstractValueWidget(Element element) { super(element); @@ -81,7 +83,7 @@ public void setValue(V value, boolean fireEvents, boolean reload) { if (this instanceof HasReload) { if (reload) { - ((HasReload)this).reload(); + ((HasReload) this).reload(); } } } @@ -146,6 +148,11 @@ public StatusDisplayType getStatusDisplayType() { return getStatusTextMixin().getStatusDisplayType(); } + @Override + public void setStatusShowByDefault(boolean showByDefault) { + getStatusTextMixin().setStatusShowByDefault(showByDefault); + } + @Override public void updateStatusDisplay(StatusDisplayMixin.StatusType statusType) { getStatusTextMixin().updateStatusDisplay(statusType); @@ -265,7 +272,7 @@ protected BlankValidator createBlankValidator() { protected void setupBlurValidation() { final AbstractValueWidget inputWidget = getValidatorMixin().getInputWidget(); if (!inputWidget.isAttached()) { - if(attachHandler == null) { + if (attachHandler == null) { attachHandler = inputWidget.addAttachHandler(event -> { if (blurHandler == null) { blurHandler = inputWidget.addBlurHandler(blurEvent -> { @@ -275,7 +282,7 @@ protected void setupBlurValidation() { }); } } else { - if(blurHandler == null) { + if (blurHandler == null) { blurHandler = inputWidget.addBlurHandler(event -> validate(isValidateOnBlur())); } } @@ -331,6 +338,36 @@ public void setStatusDisplayPosition(Position position) { getStatusTextMixin().setStatusDisplayPosition(position); } + @Override + public void setCopyCommand(CopyCommand copyCommand) { + getCopyCommandMixin().setCopyCommand(copyCommand); + } + + @Override + public CopyCommand getCopyCommand() { + return getCopyCommandMixin().getCopyCommand(); + } + + @Override + public void setCopyCommandCallback(CopyCommandCallback callback) { + getCopyCommandMixin().setCopyCommandCallback(callback); + } + + @Override + public void setCopyCommandLocale(CopyCommandLocale locale) { + getCopyCommandMixin().setCopyCommandLocale(locale); + } + + @Override + public void setCopyCommandIcon(MaterialIcon icon) { + getCopyCommandMixin().setCopyCommandIcon(icon); + } + + @Override + public MaterialIcon getCopyCommandIcon() { + return getCopyCommandMixin().getCopyCommandIcon(); + } + @Override public HandlerRegistration addValidationChangedHandler(ValidationChangedEvent.ValidationChangedHandler handler) { return getValidatorMixin().addValidationChangedHandler(handler); @@ -371,8 +408,15 @@ protected RequiredFieldMixin getRequiredFieldMixi public ClearOnKeyUpMixin getClearOnKeyUpMixin() { if (clearOnKeyUpMixin == null) { - clearOnKeyUpMixin = new ClearOnKeyUpMixin(this, getStatusTextMixin().getPlaceholder()); + clearOnKeyUpMixin = new ClearOnKeyUpMixin(this, getStatusTextMixin().getPlaceholder()); } return clearOnKeyUpMixin; } + + protected CopyCommandMixin getCopyCommandMixin() { + if (copyCommandMixin == null) { + copyCommandMixin = new CopyCommandMixin(this); + } + return copyCommandMixin; + } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/BaseCheckBox.java b/gwt-material/src/main/java/gwt/material/design/client/base/BaseCheckBox.java index 60a02dee6..15cf77bcd 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/BaseCheckBox.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/BaseCheckBox.java @@ -53,8 +53,11 @@ import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.*; +import gwt.material.design.client.accessibility.AccessibilityControl; import gwt.material.design.client.constants.CssName; +import static gwt.material.design.jquery.client.api.JQuery.$; + /** * A standard check box widget. *

@@ -87,16 +90,17 @@ *

*/ public class BaseCheckBox extends AbstractValueWidget implements HasName, HasValue, - HasWordWrap, HasDirectionalSafeHtml, HasDirectionEstimator, IsEditor>, HasLabel { + HasWordWrap, HasDirectionalSafeHtml, HasDirectionEstimator, IsEditor>, HasLabel { public static final DirectionEstimator DEFAULT_DIRECTION_ESTIMATOR = - DirectionalTextHelper.DEFAULT_DIRECTION_ESTIMATOR; + DirectionalTextHelper.DEFAULT_DIRECTION_ESTIMATOR; DirectionalTextHelper directionalTextHelper; InputElement inputElem; LabelElement labelElem; private LeafValueEditor editor; private boolean valueChangeHandlerInitialized; + private SelectionToggleHandler selectionToggleHandler; /** * Creates a check box with no label. @@ -205,18 +209,14 @@ protected BaseCheckBox(Element elem) { labelElem.setHtmlFor(uid); directionalTextHelper = new DirectionalTextHelper(labelElem, true); + selectionToggleHandler = new SelectionToggleHandler<>(this); - // Accessibility: setting tab index to be 0 by default, ensuring element - // appears in tab sequence. FocusWidget's setElement method already - // calls setTabIndex, which is overridden below. However, at the time - // that this call is made, inputElem has not been created. So, we have - // to call setTabIndex again, once inputElem has been created. setTabIndex(0); } @Override public HandlerRegistration addValueChangeHandler( - final ValueChangeHandler handler) { + final ValueChangeHandler handler) { // Is this the first value change handler? If so, time to add handlers if (!valueChangeHandlerInitialized) { ensureDomEventHandlers(); @@ -349,6 +349,7 @@ public void setEnabled(boolean enabled) { } else { addStyleDependentName(CssName.DISABLED); } + getEnabledMixin().setEnabled(enabled); } @Override @@ -385,17 +386,6 @@ public void setName(String name) { inputElem.setName(name); } - @Override - public void setTabIndex(int index) { - // Need to guard against call to setTabIndex before inputElem is - // initialized. This happens because FocusWidget's (a superclass of - // CheckBox) setElement method calls setTabIndex before inputElem is - // initialized. See CheckBox's protected constructor for more information. - if (inputElem != null) { - inputElem.setTabIndex(index); - } - } - @Override public void setText(String text) { directionalTextHelper.setTextOrHtml(text, false); @@ -460,7 +450,7 @@ public void setWordWrap(boolean wrap) { public void sinkEvents(int eventBitsToAdd) { if (isOrWasAttached()) { Event.sinkEvents(inputElem, eventBitsToAdd - | Event.getEventsSunk(inputElem)); + | Event.getEventsSunk(inputElem)); } else { super.sinkEvents(eventBitsToAdd); } @@ -499,7 +489,9 @@ protected void onEnsureDebugId(String baseID) { @Override protected void onLoad() { super.onLoad(); + DOM.setEventListener(inputElem, this); + selectionToggleHandler.load(); } /** @@ -512,6 +504,7 @@ protected void onUnload() { // Clear out the inputElem's event listener (breaking the circular // reference between it and the widget). DOM.setEventListener(inputElem, null); + selectionToggleHandler.unload(); setValue(getValue()); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/CopyCommand.java b/gwt-material/src/main/java/gwt/material/design/client/base/CopyCommand.java new file mode 100644 index 000000000..437be3114 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/CopyCommand.java @@ -0,0 +1,39 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public enum CopyCommand { + + OFF("off"), + ON_ALWAYS("on-always"), + ON_READONLY("on-readonly"), + ON_READONLY_HOVER("on-readonly-hover"), + ON_ALWAYS_HOVER("on-always-hover"); + + private String name; + + CopyCommand(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/CopyCommandCallback.java b/gwt-material/src/main/java/gwt/material/design/client/base/CopyCommandCallback.java new file mode 100644 index 000000000..df1e55954 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/CopyCommandCallback.java @@ -0,0 +1,30 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +import gwt.material.design.client.js.CopyCommandData; +import gwt.material.design.client.ui.MaterialIcon; + +public interface CopyCommandCallback { + + void success(T widget, MaterialIcon clipboardIcon, CopyCommandData data); + + void error(CopyCommandData data); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/CopyCommandLocale.java b/gwt-material/src/main/java/gwt/material/design/client/base/CopyCommandLocale.java new file mode 100644 index 000000000..982dc5876 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/CopyCommandLocale.java @@ -0,0 +1,31 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public interface CopyCommandLocale { + + default String Copied() { + return "Copied"; + } + + default String CopyToClipboard() { + return "Copy to Clipboard"; + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/DefaultSearchMatcher.java b/gwt-material/src/main/java/gwt/material/design/client/base/DefaultSearchMatcher.java new file mode 100644 index 000000000..69f0c191a --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/DefaultSearchMatcher.java @@ -0,0 +1,28 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public class DefaultSearchMatcher implements SearchMatcher { + + @Override + public boolean match(SearchObject obj, String keyword) { + return obj.getKeyword().toLowerCase().contains(keyword.toLowerCase()); + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/DeferredPrompt.java b/gwt-material/src/main/java/gwt/material/design/client/base/DeferredPrompt.java new file mode 100644 index 000000000..917a1d57b --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/DeferredPrompt.java @@ -0,0 +1,27 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +import jsinterop.annotations.JsType; + +@JsType +public class DeferredPrompt { + +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasContentEditable.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasContentEditable.java new file mode 100644 index 000000000..28d5203f1 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasContentEditable.java @@ -0,0 +1,33 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +/** + * The contentEditable property sets or returns whether the content of an element is editable or not. + * + * @author kevzlou7979 + * @see
Documentation + */ +public interface HasContentEditable { + + void setContentEditable(boolean value); + + boolean isContentEditable(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasCopyCommand.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasCopyCommand.java new file mode 100644 index 000000000..e42ee81db --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasCopyCommand.java @@ -0,0 +1,49 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +import gwt.material.design.client.ui.MaterialIcon; + +public interface HasCopyCommand { + + /** + * Will append a copy to clipboard icon to the referenced widget. + */ + void setCopyCommand(CopyCommand copyCommand); + + CopyCommand getCopyCommand(); + + /** + * Will set the copy command callback. Which contains the text, widget and the icon. + */ + void setCopyCommandCallback(CopyCommandCallback callback); + + /** + * Support copy command localization specially tooltips. + */ + void setCopyCommandLocale(CopyCommandLocale locale); + + /** + * Apply a different icon to your copy command + */ + void setCopyCommandIcon(MaterialIcon icon); + + MaterialIcon getCopyCommandIcon(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasFieldSensitivity.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasFieldSensitivity.java index c9e32391a..7a09a2a06 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/HasFieldSensitivity.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasFieldSensitivity.java @@ -19,8 +19,16 @@ */ package gwt.material.design.client.base; +import com.google.gwt.event.shared.HandlerRegistration; +import gwt.material.design.client.events.SensitivityChangedEvent; + public interface HasFieldSensitivity { void setSensitive(boolean sensitive); + + void setSensitive(boolean sensitive, boolean fireEvents); + boolean isSensitive(); + + HandlerRegistration addSensitivityChangedHandler(SensitivityChangedEvent.SensitivityChangedHandler handler); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasFlexbox.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasFlexbox.java index 013d40601..6171ffc7c 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/HasFlexbox.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasFlexbox.java @@ -41,6 +41,8 @@ public interface HasFlexbox { void setFlex(Flex flex); + void setFlexValue(String value); + void setFlexGrow(Integer flexGrow); void setFlexShrink(Integer flexShrink); diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasGridLayout.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasGridLayout.java new file mode 100644 index 000000000..89d6c5e3c --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasGridLayout.java @@ -0,0 +1,307 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +/** + * CSS Grid Layout introduces a two-dimensional grid system to CSS. Grids can be used to lay out major page areas or small + * user interface elements. This article introduces the CSS Grid Layout and the new terminology that is part of the CSS + * Grid Layout Level 1 specification. The features shown in this overview will then be explained in greater detail in the + * rest of this guide. + * + * Documentation + * + * @author kevzlou7979 + */ +public interface HasGridLayout { + + String GRID = "grid"; + String GRID_AREA = "gridArea"; + String GRID_AUTO_COLUMNS = "gridAutoColumns"; + String GRID_AUTO_FLOW = "gridAutoFlow"; + String GRID_AUTO_ROWS = "gridAutoRows"; + String GRID_COLUMN = "gridColumn"; + String GRID_COLUMN_END = "gridColumnEnd"; + String GRID_COLUMN_GAP = "gridColumnGap"; + String GRID_COLUMN_START = "gridColumnStart"; + String GRID_GAP = "gridGap"; + String GRID_ROW = "gridRow"; + String GRID_ROW_END = "gridRowEnd"; + String GRID_ROW_GAP = "gridRowGap"; + String GRID_ROW_START = "gridRowStart"; + String GRID_TEMPLATE = "gridTemplate"; + String GRID_TEMPLATE_AREAS = "gridTemplateAreas"; + String GRID_TEMPLATE_COLUMNS = "gridTemplateColumns"; + String GRID_TEMPLATE_ROWS = "gridTemplateRows"; + String ALIGN_CONTENT = "alignContent"; + String ALIGN_ITEMS = "alignItems"; + String ALIGN_SELF = "alignSelf"; + String COLUMN_GAP = "columnGap"; + String GAP = "gap"; + String JUSTIFY_CONTENT = "justifyContent"; + String JUSTIFY_ITEMS = "justifyItems"; + String JUSTIFY_SELF = "justifySelf"; + String PLACE_CONTENT = "placeContent"; + String PLACE_ITEMS = "placeItems"; + String PLACE_SELF = "placeSelf"; + String ROW_GAP = "rowGap"; + String ASPECT_RATIO = "aspectRatio"; + + /** + * The grid CSS property is a shorthand property that sets all of the explicit grid properties (grid-template-rows, + * grid-template-columns, and grid-template-areas), and all the implicit grid properties (grid-auto-rows, grid-auto-columns, + * and grid-auto-flow), in a single declaration. + */ + void setGridLayout(String value); + + String getGridLayout(); + + /** + * The grid-area CSS property is a shorthand property for grid-row-start, grid-column-start, grid-row-end and grid-column-end, + * specifying a grid item’s size and location within the grid by contributing a line, a span, or nothing (automatic) + * to its grid placement, thereby specifying the edges of its grid area. + */ + void setGridArea(String value); + + String getGridArea(); + + /** + * The grid-auto-columns CSS property specifies the size of an implicitly-created grid column track or pattern of tracks. + */ + void setGridAutoColumns(String value); + + String getGridAutoColumns(); + + /** + * The grid-auto-flow CSS property controls how the auto-placement algorithm works, specifying exactly how auto-placed + * items get flowed into the grid. + */ + void setGridAutoFlow(String value); + + String getGridAutoFlow(); + + /** + * The grid-auto-rows CSS property specifies the size of an implicitly-created grid row track or pattern of tracks. + */ + void setGridAutoRows(String value); + + String getGridAutoRows(); + + /** + * The grid-column CSS property is a shorthand property for grid-column-start and grid-column-end specifying a grid + * item's size and location within the grid column by contributing a line, a span, or nothing (automatic) to its grid + * placement, thereby specifying the inline-start and inline-end edge of its grid area. + */ + void setGridColumn(String value); + + String getGridColumn(); + + /** + * The grid-column-end CSS property specifies a grid item’s end position within the grid column by contributing a + * line, a span, or nothing (automatic) to its grid placement, thereby specifying the block-end edge of its grid area. + */ + void setGridColumnEnd(String value); + + String getGridColumnEnd(); + + /** + * The column-gap CSS property sets the size of the gap (gutter) between an element's columns. + */ + void setGridColumnGap(String value); + + String getGridColumnGap(); + + /** + * The grid-column-start CSS property specifies a grid item’s start position within the grid column by contributing + * a line, a span, or nothing (automatic) to its grid placement. This start position defines the block-start edge of + * the grid area. + */ + void setGridColumnStart(String value); + + String getGridColumnStart(); + + /** + * The gap CSS property sets the gaps (gutters) between rows and columns. It is a shorthand for row-gap and column-gap. + */ + void setGridGap(String value); + + String getGridGap(); + + /** + * The grid-row CSS property is a shorthand property for grid-row-start and grid-row-end specifying a grid item’s + * size and location within the grid row by contributing a line, a span, or nothing (automatic) to its grid placement, + * thereby specifying the inline-start and inline-end edge of its grid area. + */ + void setGridRow(String value); + + String getGridRow(); + + /** + * The grid-row-end CSS property specifies a grid item’s end position within the grid row by contributing a line, + * a span, or nothing (automatic) to its grid placement, thereby specifying the inline-end edge of its grid area. + */ + void setGridRowEnd(String value); + + String getGridRowEnd(); + + /** + * The row-gap CSS property sets the size of the gap (gutter) between an element's grid rows. + */ + void setGridRowGap(String value); + + String getGridRowGap(); + + /** + * The grid-row-start CSS property specifies a grid item’s start position within the grid row by contributing a line, + * a span, or nothing (automatic) to its grid placement, thereby specifying the inline-start edge of its grid area. + */ + void setGridRowStart(String value); + + String getGridRowStart(); + + /** + * The grid-template CSS property is a shorthand property for defining grid columns, rows, and areas. + */ + void setGridTemplate(String value); + + String getGridTemplate(); + + /** + * The grid-template-areas CSS property specifies named grid areas, establishing the cells in the grid and assigning them names. + */ + void setGridTemplateAreas(String value); + + String getGridTemplateAreas(); + + /** + * The grid-template-columns CSS property defines the line names and track sizing functions of the grid columns. + */ + void setGridTemplateColumns(String value); + + String getGridTemplateColumns(); + + /** + * The grid-template-rows CSS property defines the line names and track sizing functions of the grid rows. + */ + void setGridTemplateRows(String value); + + String getGridTemplateRows(); + + /** + * The CSS align-content property sets the distribution of space between and around content items along a flexbox's + * cross-axis or a grid's block axis. + */ + void setAlignContent(String value); + + String getAlignContent(); + + /** + * The CSS align-items property sets the align-self value on all direct children as a group. In Flexbox, it controls + * the alignment of items on the Cross Axis. In Grid Layout, it controls the alignment of items on the Block Axis + * within their grid area. + */ + void setAlignItems(String value); + + String getAlignItems(); + + /** + * The align-self CSS property overrides a grid or flex item's align-items value. In Grid, it aligns the item inside + * the grid area. In Flexbox, it aligns the item on the cross axis. + */ + void setAlignSelf(String value); + + String getAlignSelf(); + + /** + * The column-gap CSS property sets the size of the gap (gutter) between an element's columns. + */ + void setColumnGap(String value); + + String getColumnGap(); + + /** + * The gap CSS property sets the gaps (gutters) between rows and columns. It is a shorthand for row-gap and column-gap. + */ + void setGap(String value); + + String getGap(); + + /** + * The CSS justify-content property defines how the browser distributes space between and around content items along + * the main-axis of a flex container, and the inline axis of a grid container. + */ + void setJustifyContent(String value); + + String getJustifyContent(); + + /** + * The CSS justify-items property defines the default justify-self for all items of the box, giving them all a default + * way of justifying each box along the appropriate axis. + */ + void setJustifyItems(String value); + + String getJustifyItems(); + + /** + * The CSS justify-self property sets the way a box is justified inside its alignment container along the appropriate axis. + */ + void setJustifySelf(String value); + + String getJustifySelf(); + + /** + * The place-content CSS property is a shorthand for align-content and justify-content. It can be used in any layout + * method which utilizes both of these alignment values. + */ + void setPlaceContent(String value); + + String getPlaceContent(); + + /** + * The CSS place-items shorthand property sets the align-items and justify-items properties, respectively. + * If the second value is not set, the first value is also used for it. + */ + void setPlaceItems(String value); + + String getPlaceItems(); + + /** + * The place-self CSS property is a shorthand property sets both the align-self and justify-self properties. + * The first value is the align-self property value, the second the justify-self one. If the second value is not present, + * the first value is also used for it. + */ + void setPlaceSelf(String value); + + String getPlaceSelf(); + + /** + * The row-gap CSS property sets the size of the gap (gutter) between an element's grid rows. + */ + void setRowGap(String value); + + String getRowGap(); + + /** + * The aspect-ratio CSS property sets a preferred aspect ratio for the box, which will be used in the calculation + * of auto sizes and some other layout functions. + */ + void setAspectRatio(String value); + + String getAspectRatio(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasRegex.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasRegex.java new file mode 100644 index 000000000..a234f29c8 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasRegex.java @@ -0,0 +1,38 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public interface HasRegex extends HasRegexHandlers { + + /** + * The regex to be matched on value boxe's value. To be validated + * on KeyPress and Paste Events. + */ + void setRegex(String regex); + + /** + * The regex to be matched on value boxe's value. To be validated + * on KeyPress and Paste Events. The second parameter will + * clean all pasted value with provided regex replace expression + */ + void setRegex(String regex, String replaceRegex); + + String getRegex(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasRegexHandlers.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasRegexHandlers.java new file mode 100644 index 000000000..b4dbfe34f --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasRegexHandlers.java @@ -0,0 +1,28 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +import com.google.gwt.event.shared.HandlerRegistration; +import gwt.material.design.client.events.RegexValidationEvent; + +public interface HasRegexHandlers { + + HandlerRegistration addRegexValidationHandler(RegexValidationEvent.RegexValidationHandler handler); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasResize.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasResize.java new file mode 100644 index 000000000..01e17a667 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasResize.java @@ -0,0 +1,46 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public interface HasResize { + + enum Resizable { + NONE("none"), + BOTH("both"), + HORIZONTAL("horizontal"), + VERTICAL("vertical"), + INITIAL("initial"), + INHERIT("inherit"); + + String name; + + Resizable(String name) { + this.name = name; + } + + public String getName() { + return name; + } + } + + void setResize(Resizable value); + + String getResize(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasSingleValue.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasSingleValue.java new file mode 100644 index 000000000..be64ea33e --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasSingleValue.java @@ -0,0 +1,29 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public interface HasSingleValue { + + void setSingleValue(T value); + + void setSingleValue(T value, boolean fireEvents); + + T getSingleValue(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasStatusDisplayType.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasStatusDisplayType.java index e6f6ef62f..47909c9e3 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/HasStatusDisplayType.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasStatusDisplayType.java @@ -32,4 +32,6 @@ public interface HasStatusDisplayType { void updateStatusDisplay(StatusDisplayMixin.StatusType statusType); void setStatusDisplayPosition(Position position); + + void setStatusShowByDefault(boolean showByDefault); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasTooltip.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasTooltip.java index 2ad2bbc43..3baf7153e 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/HasTooltip.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasTooltip.java @@ -79,4 +79,9 @@ public interface HasTooltip { * Get the Tooltip element to ease of customization */ JQueryElement getTooltipElement(); + + /** + * This will detach or remove the tooltip element + */ + void removeTooltip(); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/MaterialWidget.java b/gwt-material/src/main/java/gwt/material/design/client/base/MaterialWidget.java index 72c687818..a191c639a 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/MaterialWidget.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/MaterialWidget.java @@ -27,7 +27,6 @@ import com.google.gwt.event.logical.shared.AttachEvent; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.ui.*; -import gwt.material.design.client.MaterialDesign; import gwt.material.design.client.base.helper.StyleHelper; import gwt.material.design.client.base.mixin.*; import gwt.material.design.client.base.validator.HasValidators; @@ -55,7 +54,7 @@ public class MaterialWidget extends ComplexPanel implements HasId, HasEnabled, H HasShadow, Focusable, HasInlineStyle, HasSeparator, HasScrollspy, HasHideOn, HasShowOn, HasCenterOn, HasCircle, HasWaves, HasDataAttributes, HasFloat, HasTooltip, HasFlexbox, HasHoverable, HasFontWeight, HasFontSize, HasDepth, HasInitialClasses, HasInteractionHandlers, HasAllFocusHandlers, HasFilterStyle, HasBorder, HasVerticalAlign, HasTransform, HasOrientation, - HasContainer, HasWordBreak, HasZoom { + HasContainer, HasWordBreak, HasZoom, HasGridLayout, HasResize, HasContentEditable { private static JQueryElement window = null; private static JQueryElement body = null; @@ -134,8 +133,10 @@ public Appender(Widget widget) { private TransformMixin transformMixin; private OrientationMixin orientationMixin; private ContainerMixin containerMixin; + private GridLayoutMixin gridLayoutMixin; - public MaterialWidget() {} + public MaterialWidget() { + } public MaterialWidget(JQueryElement jQueryElement) { this(); @@ -331,16 +332,330 @@ public void setFocus(boolean focused) { getFocusableMixin().setFocus(focused); } + public void setFocus(boolean focused, boolean appendFocusStyleName) { + getFocusableMixin().setFocus(focused, appendFocusStyleName); + } + @Override public void setTabIndex(int index) { getFocusableMixin().setTabIndex(index); } + @Override + public String getGridLayout() { + return getGridLayoutMixin().getGridLayout(); + } + + @Override + public void setGridArea(String value) { + getGridLayoutMixin().setGridArea(value); + } + + @Override + public String getGridArea() { + return getGridLayoutMixin().getGridArea(); + } + + @Override + public void setGridAutoColumns(String value) { + getGridLayoutMixin().setGridAutoColumns(value); + } + + @Override + public String getGridAutoColumns() { + return getGridLayoutMixin().getGridAutoColumns(); + } + + @Override + public void setGridAutoFlow(String value) { + getGridLayoutMixin().setGridAutoFlow(value); + } + + @Override + public String getGridAutoFlow() { + return getGridLayoutMixin().getGridAutoFlow(); + } + + @Override + public void setGridAutoRows(String value) { + getGridLayoutMixin().setGridAutoRows(value); + } + + @Override + public String getGridAutoRows() { + return getGridLayoutMixin().getGridAutoRows(); + } + + @Override + public void setGridColumn(String value) { + getGridLayoutMixin().setGridColumn(value); + } + + @Override + public String getGridColumn() { + return getGridLayoutMixin().getGridColumn(); + } + + @Override + public void setGridColumnEnd(String value) { + getGridLayoutMixin().setGridColumnEnd(value); + } + + @Override + public String getGridColumnEnd() { + return getGridLayoutMixin().getGridColumnEnd(); + } + + @Override + public void setGridColumnGap(String value) { + getGridLayoutMixin().setGridColumnGap(value); + } + + @Override + public String getGridColumnGap() { + return getGridLayoutMixin().getGridColumnGap(); + } + + @Override + public void setGridColumnStart(String value) { + getGridLayoutMixin().setGridColumnStart(value); + } + + @Override + public String getGridColumnStart() { + return getGridLayoutMixin().getGridColumnStart(); + } + + @Override + public void setGridGap(String value) { + getGridLayoutMixin().setGridGap(value); + } + + @Override + public String getGridGap() { + return getGridLayoutMixin().getGridGap(); + } + + @Override + public void setGridRow(String value) { + getGridLayoutMixin().setGridRow(value); + } + + @Override + public String getGridRow() { + return getGridLayoutMixin().getGridRow(); + } + + @Override + public void setGridRowEnd(String value) { + getGridLayoutMixin().setGridRowEnd(value); + } + + @Override + public String getGridRowEnd() { + return getGridLayoutMixin().getGridRowEnd(); + } + + @Override + public void setGridRowGap(String value) { + getGridLayoutMixin().setGridRowGap(value); + } + + @Override + public String getGridRowGap() { + return getGridLayoutMixin().getGridRowGap(); + } + + @Override + public void setGridRowStart(String value) { + getGridLayoutMixin().setGridRowStart(value); + } + + @Override + public String getGridRowStart() { + return getGridLayoutMixin().getGridRowStart(); + } + + @Override + public void setGridTemplate(String value) { + getGridLayoutMixin().setGridTemplate(value); + } + + @Override + public String getGridTemplate() { + return getGridLayoutMixin().getGridTemplate(); + } + + @Override + public void setGridTemplateAreas(String value) { + getGridLayoutMixin().setGridTemplateAreas(value); + } + + @Override + public String getGridTemplateAreas() { + return getGridLayoutMixin().getGridTemplateAreas(); + } + + @Override + public void setGridTemplateColumns(String value) { + getGridLayoutMixin().setGridTemplateColumns(value); + } + + @Override + public String getGridTemplateColumns() { + return getGridLayoutMixin().getGridTemplateColumns(); + } + + @Override + public void setGridTemplateRows(String value) { + getGridLayoutMixin().setGridTemplateRows(value); + } + + @Override + public String getGridTemplateRows() { + return getGridLayoutMixin().getGridTemplateRows(); + } + + @Override + public void setAlignContent(String value) { + getGridLayoutMixin().setAlignContent(value); + } + + @Override + public String getAlignContent() { + return getGridLayoutMixin().getAlignContent(); + } + + @Override + public void setAlignItems(String value) { + getGridLayoutMixin().setAlignItems(value); + } + + @Override + public String getAlignItems() { + return getGridLayoutMixin().getAlignItems(); + } + + @Override + public void setAlignSelf(String value) { + getGridLayoutMixin().setAlignSelf(value); + } + + @Override + public String getAlignSelf() { + return getGridLayoutMixin().getAlignSelf(); + } + + @Override + public void setColumnGap(String value) { + getGridLayoutMixin().setColumnGap(value); + } + + @Override + public String getColumnGap() { + return getGridLayoutMixin().getColumnGap(); + } + + @Override + public void setGap(String value) { + getGridLayoutMixin().setGap(value); + } + + @Override + public String getGap() { + return getGridLayoutMixin().getGap(); + } + + @Override + public void setJustifyContent(String value) { + getGridLayoutMixin().setJustifyContent(value); + } + + @Override + public String getJustifyContent() { + return getGridLayoutMixin().getJustifyContent(); + } + + @Override + public void setJustifyItems(String value) { + getGridLayoutMixin().setJustifyItems(value); + } + + @Override + public String getJustifyItems() { + return getGridLayoutMixin().getJustifyItems(); + } + + @Override + public void setJustifySelf(String value) { + getGridLayoutMixin().setJustifySelf(value); + } + + @Override + public String getJustifySelf() { + return getGridLayoutMixin().getJustifySelf(); + } + + @Override + public void setPlaceContent(String value) { + getGridLayoutMixin().setPlaceContent(value); + } + + @Override + public String getPlaceContent() { + return getGridLayoutMixin().getPlaceContent(); + } + + @Override + public void setPlaceItems(String value) { + getGridLayoutMixin().setPlaceItems(value); + } + + @Override + public String getPlaceItems() { + return getGridLayoutMixin().getPlaceItems(); + } + + @Override + public void setPlaceSelf(String value) { + getGridLayoutMixin().setPlaceSelf(value); + } + + @Override + public String getPlaceSelf() { + return getGridLayoutMixin().getPlaceSelf(); + } + + @Override + public void setRowGap(String value) { + getGridLayoutMixin().setRowGap(value); + } + + @Override + public String getRowGap() { + return getGridLayoutMixin().getRowGap(); + } + + @Override + public void setAspectRatio(String value) { + getGridLayoutMixin().setAspectRatio(value); + } + + @Override + public String getAspectRatio() { + return getGridLayoutMixin().getAspectRatio(); + } + @Override public void setGrid(String grid) { getGridMixin().setGrid(grid); } + @Override + public void setGridLayout(String value) { + getGridLayoutMixin().setGridLayout(value); + } + @Override public void setOffset(String offset) { getGridMixin().setOffset(offset); @@ -580,6 +895,11 @@ public JQueryElement getTooltipElement() { return getTooltipMixin().getTooltipElement(); } + @Override + public void removeTooltip() { + getTooltipMixin().removeTooltip(); + } + public void setVisibility(Style.Visibility visibility) { getElement().getStyle().setVisibility(visibility); } @@ -610,6 +930,11 @@ public void setFlex(Flex flex) { getFlexboxMixin().setFlex(flex); } + @Override + public void setFlexValue(String value) { + getElement().getStyle().setProperty("flex", value); + } + @Override public void setFlexGrow(Integer flexGrow) { getFlexboxMixin().setFlexGrow(flexGrow); @@ -1030,6 +1355,36 @@ public void setZoom(Double level) { getElement().getStyle().setProperty("zoom", level != null ? String.valueOf(level) : ""); } + @Override + public void setResize(Resizable value) { + getElement().getStyle().setProperty("resize", value != null ? value.getName() : ""); + } + + @Override + public String getResize() { + return getElement().getStyle().getProperty("resize"); + } + + @Override + public void setContentEditable(boolean value) { + getElement().setAttribute("contenteditable", String.valueOf(value)); + } + + @Override + public boolean isContentEditable() { + return Boolean.parseBoolean(getElement().getAttribute("contenteditable")); + } + + @Override + public void setWidth(String width) { + getElement().getStyle().setProperty("width", width); + } + + @Override + public void setHeight(String height) { + getElement().getStyle().setProperty("height", height); + } + /** * Add an {@code AttachHandler} for attachment events. * @@ -1581,6 +1936,13 @@ public ContainerMixin getContainerMixin() { return containerMixin; } + public GridLayoutMixin getGridLayoutMixin() { + if (gridLayoutMixin == null) { + gridLayoutMixin = new GridLayoutMixin<>(this); + } + return gridLayoutMixin; + } + public void setTranslationKey(String key) { this.translationKey = key; } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/SearchMatcher.java b/gwt-material/src/main/java/gwt/material/design/client/base/SearchMatcher.java new file mode 100644 index 000000000..594f91510 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/SearchMatcher.java @@ -0,0 +1,25 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public interface SearchMatcher { + + boolean match(SearchObject obj, String keyword); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/SelectionToggleHandler.java b/gwt-material/src/main/java/gwt/material/design/client/base/SelectionToggleHandler.java new file mode 100644 index 000000000..94cdb1484 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/SelectionToggleHandler.java @@ -0,0 +1,51 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +import com.google.gwt.event.dom.client.KeyCodes; +import com.google.gwt.user.client.ui.HasValue; +import com.google.gwt.user.client.ui.Widget; + +import static gwt.material.design.jquery.client.api.JQuery.$; + +public class SelectionToggleHandler> { + + protected T widget; + + protected SelectionToggleHandler() { + } + + public SelectionToggleHandler(T widget) { + this.widget = widget; + } + + public void load() { + $(widget.getElement()).keydown(e -> { + if (e.getKeyCode() == KeyCodes.KEY_ENTER) { + widget.setValue(!widget.getValue(), true); + } + return true; + }); + } + + public void unload() { + $(widget.getElement()).off("keydown"); + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/CopyCommandMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/CopyCommandMixin.java new file mode 100644 index 000000000..3be85daec --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/CopyCommandMixin.java @@ -0,0 +1,164 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base.mixin; + +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.dom.client.Style; +import com.google.gwt.user.client.DOM; +import gwt.material.design.client.base.*; +import gwt.material.design.client.base.helper.EventHelper; +import gwt.material.design.client.constants.IconType; +import gwt.material.design.client.constants.Position; +import gwt.material.design.client.js.ClipboardJS; +import gwt.material.design.client.js.CopyCommandData; +import gwt.material.design.client.ui.MaterialIcon; +import gwt.material.design.client.ui.MaterialValueBox; + +import static gwt.material.design.jquery.client.api.JQuery.$; + +public class CopyCommandMixin extends AbstractMixin implements HasCopyCommand { + + public static final String COPY_COMMAND = "copy-command"; + public static final String COPY_COMMAND_PARENT = "copy-command-parent"; + public static final String DATA_CLIPBOARD_TEXT = "data-clipboard-text"; + public static final String DATA_CLIPBOARD_ACTION = "data-clipboard-action"; + + protected T copyCommandParent; + protected ClipboardJS clipboardJS; + protected CopyCommand copyCommand = CopyCommand.OFF; + protected MaterialIcon icon = new MaterialIcon(IconType.CONTENT_COPY); + protected CopyCommandLocale locale = new CopyCommandLocale() { + }; + protected CopyCommandCallback callback; + + public CopyCommandMixin(T copyCommandParent) { + super(copyCommandParent); + + this.copyCommandParent = copyCommandParent; + EventHelper.onAttachOnce(uiObject, attachEvent -> setup()); + } + + protected void setup() { + if (copyCommand != null && copyCommand != CopyCommand.OFF) { + setupCopyIcon(); + setupValueBox(); + setupClipboardJs(); + } else { + detachIcon(); + } + } + + protected void setupCopyIcon() { + // Setup Widget and Icon + icon.addStyleName(COPY_COMMAND); + icon.setId(DOM.createUniqueId()); + copyCommandParent.addStyleName(COPY_COMMAND_PARENT); + copyCommandParent.add(icon); + icon.addStyleName(copyCommand.getName()); + icon.addMouseOutHandler(event -> updateTooltip(locale.CopyToClipboard())); + icon.addClickHandler(event -> { + icon.getElement().setAttribute(DATA_CLIPBOARD_TEXT, copyCommandParent.getValue() != null ? copyCommandParent.getValue().toString() : ""); + }); + } + + protected void setupValueBox() { + // Will be checking if we have a value box as parent. + if (copyCommandParent instanceof MaterialValueBox) { + MaterialValueBox valueBox = (MaterialValueBox) this.copyCommandParent; + valueBox.addToggleReadOnlyHandler(event -> checkReadyOnly(valueBox)); + valueBox.addSensitivityChangedHandler(event -> checkReadyOnly(valueBox)); + checkReadyOnly(valueBox); + } + } + + protected void setupClipboardJs() { + updateTooltip(locale.CopyToClipboard()); + clipboardJS = new ClipboardJS("#" + icon.getId()); + clipboardJS.on("success", this::onSuccess); + clipboardJS.on("error", this::onError); + } + + protected void checkReadyOnly(MaterialValueBox valueBox) { + boolean visible = (copyCommand == CopyCommand.ON_READONLY || copyCommand == CopyCommand.ON_READONLY_HOVER) + && !valueBox.isSensitive() + && valueBox.isReadOnly(); + icon.getElement().getStyle().setVisibility(visible ? Style.Visibility.VISIBLE : Style.Visibility.HIDDEN); + Scheduler.get().scheduleDeferred(() -> icon.setEnabled(visible)); + } + + protected void detachIcon() { + if (icon.isAttached()) { + icon.removeFromParent(); + } + } + + protected void updateTooltip(String tooltip) { + icon.setTooltipPosition(Position.TOP); + icon.setTooltipDelayMs(0); + icon.setTooltip(tooltip); + } + + protected String getStringValue() { + return copyCommandParent != null && copyCommandParent.getValue() != null ? copyCommandParent.getValue().toString() : ""; + } + + protected boolean onSuccess(CopyCommandData data) { + if (callback != null) callback.success(copyCommandParent, icon, data); + updateTooltip(locale.Copied() + ":" + getStringValue()); + $(icon.getElement()).trigger("mouseover", null); + data.clearSelection(); + return true; + } + + protected boolean onError(CopyCommandData data) { + if (callback != null) callback.error(data); + return false; + } + + @Override + public void setCopyCommand(CopyCommand copyCommand) { + this.copyCommand = copyCommand; + } + + @Override + public CopyCommand getCopyCommand() { + return copyCommand; + } + + @Override + public void setCopyCommandCallback(CopyCommandCallback callback) { + this.callback = callback; + } + + @Override + public void setCopyCommandLocale(CopyCommandLocale locale) { + this.locale = locale; + } + + @Override + public void setCopyCommandIcon(MaterialIcon icon) { + this.icon = icon; + } + + @Override + public MaterialIcon getCopyCommandIcon() { + return icon; + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/EnabledMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/EnabledMixin.java index 6f495a079..b75797918 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/EnabledMixin.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/EnabledMixin.java @@ -31,7 +31,10 @@ * @author kevzlou7979 */ public class EnabledMixin extends AbstractMixin implements HasEnabled { + + private static final String TAB_INDEX = "tabIndex"; private static final String DISABLED = "disabled"; + private String initialTabIndex; private HandlerRegistration handler; @@ -50,6 +53,8 @@ public void setUiObject(T uiObject) { handler.removeHandler(); handler = null; } + + initialTabIndex = uiObject.getElement().getAttribute("tabIndex"); } @Override @@ -58,8 +63,13 @@ public boolean isEnabled() { } @Override - public void setEnabled(boolean enabled) { - if (!uiObject.isAttached() && handler == null) { + public void setEnabled(final boolean enabled) { + if (!uiObject.isAttached()) { + if (handler != null) { + handler.removeHandler(); + handler = null; + } + handler = uiObject.addAttachHandler(event -> { if (event.isAttached()) { applyEnabled(enabled, uiObject); @@ -76,7 +86,7 @@ public void setEnabled(boolean enabled) { public void setEnabled(MaterialWidget widget, boolean enabled) { setEnabled(enabled); - if(isPropagateToChildren()) { + if (isPropagateToChildren()) { for (Widget child : widget.getChildren()) { if (child instanceof MaterialWidget) { ((MaterialWidget) child).setEnabled(enabled); @@ -97,6 +107,7 @@ private void applyEnabled(boolean enabled, UIObject obj) { } updateWaves(enabled, obj); + updateTabIndex(enabled, obj); } public void updateWaves(boolean enabled, UIObject obj) { @@ -112,6 +123,17 @@ public void updateWaves(boolean enabled, UIObject obj) { } } + public void updateTabIndex(boolean enabled, UIObject obj) { + if (obj instanceof MaterialWidget) { + MaterialWidget widget = (MaterialWidget) obj; + if (enabled) { + if (initialTabIndex != null) widget.getElement().setAttribute(TAB_INDEX, initialTabIndex); + } else { + widget.getElement().setAttribute(TAB_INDEX, "-1"); + } + } + } + public boolean isPropagateToChildren() { return propagateToChildren; } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FieldSensitivityMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FieldSensitivityMixin.java index 7d655efb3..792ae8939 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FieldSensitivityMixin.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FieldSensitivityMixin.java @@ -19,15 +19,19 @@ */ package gwt.material.design.client.base.mixin; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; import com.google.gwt.user.client.ui.UIObject; import gwt.material.design.client.base.HasFieldSensitivity; import gwt.material.design.client.base.HasInputType; import gwt.material.design.client.constants.InputType; +import gwt.material.design.client.events.SensitivityChangedEvent; /** * @author Ben Dol */ -public class FieldSensitivityMixin extends AbstractMixin implements HasFieldSensitivity { +public class FieldSensitivityMixin extends AbstractMixin + implements HasFieldSensitivity { protected final InputType defaultInputType; @@ -39,11 +43,24 @@ public FieldSensitivityMixin(T uiObject) { @Override public void setSensitive(boolean sensitive) { + setSensitive(sensitive, false); + } + + @Override + public void setSensitive(boolean sensitive, boolean fireEvents) { uiObject.setType(sensitive ? InputType.PASSWORD : defaultInputType); + if (fireEvents) { + SensitivityChangedEvent.fire((HasHandlers) uiObject, sensitive); + } } @Override public boolean isSensitive() { return uiObject.getType().equals(InputType.PASSWORD); } + + @Override + public HandlerRegistration addSensitivityChangedHandler(SensitivityChangedEvent.SensitivityChangedHandler handler) { + return uiObject.addSensitivityChangedHandler(handler); + } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FlexboxMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FlexboxMixin.java index 68551d232..2dd44b984 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FlexboxMixin.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FlexboxMixin.java @@ -63,6 +63,11 @@ public void setDisplay(Display display) { return; } + if (display.equals(Display.GRID) || display.equals(Display.INLINE_GRID)) { + uiObject.getElement().getStyle().setProperty("display", display.getCssName()); + return; + } + if (display.getGwtDisplay() != null) { uiObject.getElement().getStyle().setDisplay(display.getGwtDisplay()); } else { @@ -89,8 +94,8 @@ public void setFlexDirection(FlexDirection flexDirection) { setDisplay(Display.FLEX); } BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - new String[]{"MsFlexDirection", "WebkitFlexDirection", "MozFlexDirection", "flexDirection"}, - flexDirection != null ? flexDirection.getValue() : null); + new String[]{"MsFlexDirection", "WebkitFlexDirection", "MozFlexDirection", "flexDirection"}, + flexDirection != null ? flexDirection.getValue() : null); // Updating the display to Flex will set display:flex and override the visibility of the control // this ensures that if you setVisible(false) it will not become visible unless calling setVisible(true) @@ -113,61 +118,66 @@ public void setFlex(Flex flex) { setFlexBasis(flex.getBasis()); } + @Override + public void setFlexValue(String value) { + uiObject.getElement().getStyle().setProperty("flex", value); + } + @Override public void setFlexGrow(Integer flexGrow) { BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - new String[]{"MsFlexGrow", "WebkitFlexGrow", "MozFlexGrow", "flexGrow"}, - flexGrow != null ? flexGrow.toString() : null); + new String[]{"MsFlexGrow", "WebkitFlexGrow", "MozFlexGrow", "flexGrow"}, + flexGrow != null ? flexGrow.toString() : null); } @Override public void setFlexShrink(Integer flexShrink) { BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - new String[]{"MsFlexShrink", "WebkitFlexShrink", "MozFlexShrink", "flexShrink"}, - flexShrink != null ? flexShrink.toString() : null); + new String[]{"MsFlexShrink", "WebkitFlexShrink", "MozFlexShrink", "flexShrink"}, + flexShrink != null ? flexShrink.toString() : null); } @Override public void setFlexBasis(String flexBasis) { BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - new String[]{"MsFlexBasis", "WebkitFlexBasis", "MozFlexBasis", "flexBasis"}, flexBasis); + new String[]{"MsFlexBasis", "WebkitFlexBasis", "MozFlexBasis", "flexBasis"}, flexBasis); } @Override public void setFlexOrder(Integer flexOrder) { BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - new String[]{"MsFlexOrder", "WebkitOrder", "MozFlexOrder", "order"}, - flexOrder != null ? flexOrder.toString() : null); + new String[]{"MsFlexOrder", "WebkitOrder", "MozFlexOrder", "order"}, + flexOrder != null ? flexOrder.toString() : null); } @Override public void setFlexWrap(FlexWrap flexWrap) { BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - new String[]{"MsFlexWrap", "WebkitFlexWrap", "MozFlexWrap", "flexWrap"}, - flexWrap != null ? flexWrap.getValue() : null); + new String[]{"MsFlexWrap", "WebkitFlexWrap", "MozFlexWrap", "flexWrap"}, + flexWrap != null ? flexWrap.getValue() : null); } @Override public void setFlexAlignContent(FlexAlignContent flexAlignContent) { BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - "MsFlexLinePack", new String[]{"WebkitAlignContent", "MozFlexAlignContent", "alignContent"}, flexAlignContent); + "MsFlexLinePack", new String[]{"WebkitAlignContent", "MozFlexAlignContent", "alignContent"}, flexAlignContent); } @Override public void setFlexAlignSelf(FlexAlignSelf flexAlignSelf) { BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - "MsFlexItemAlign", new String[]{"WebkitAlignSelf", "MozFlexItemAlign", "alignSelf"}, flexAlignSelf); + "MsFlexItemAlign", new String[]{"WebkitAlignSelf", "MozFlexItemAlign", "alignSelf"}, flexAlignSelf); } @Override public void setFlexAlignItems(FlexAlignItems flexAlignItems) { BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - "MsFlexAlign", new String[]{"WebkitAlignItems", "MozFlexAlign", "alignItems"}, flexAlignItems); + "MsFlexAlign", new String[]{"WebkitAlignItems", "MozFlexAlign", "alignItems"}, flexAlignItems); } @Override public void setFlexJustifyContent(FlexJustifyContent flexJustifyContent) { BrowserPrefixHelper.updateStyleProperties(uiObject.getElement(), - "MsFlexPack", new String[]{"WebkitJustifyContent", "MozJustifyContent", "justifyContent"}, flexJustifyContent); + "MsFlexPack", new String[]{"WebkitJustifyContent", "MozJustifyContent", "justifyContent"}, flexJustifyContent); } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FocusableMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FocusableMixin.java index 5f342e70d..440d149ce 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FocusableMixin.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/FocusableMixin.java @@ -24,14 +24,19 @@ import com.google.gwt.dom.client.ButtonElement; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.InputElement; +import com.google.gwt.event.dom.client.HasClickHandlers; import com.google.gwt.user.client.ui.Focusable; import com.google.gwt.user.client.ui.UIObject; +import com.google.gwt.user.client.ui.Widget; +import gwt.material.design.client.accessibility.AccessibilityControl; /** * @author Sven Jacobs */ public class FocusableMixin extends AbstractMixin implements Focusable { + protected static final String FOCUS_VISIBLE = "focus-visible"; + public FocusableMixin(final T uiObject) { super(uiObject); } @@ -44,6 +49,13 @@ public int getTabIndex() { @Override public void setTabIndex(final int index) { uiObject.getElement().setTabIndex(index); + + if (index > -1) { + if (uiObject instanceof HasClickHandlers && uiObject instanceof Widget) { + ((HasClickHandlers) uiObject).addClickHandler(event -> + AccessibilityControl.get().unregisterWidget((Widget) uiObject)); + } + } } @Override @@ -62,10 +74,16 @@ public void setAccessKey(final char key) { @Override public void setFocus(final boolean focused) { + setFocus(focused, false); + } + + public void setFocus(boolean focused, boolean appendFocusStyleName) { if (focused) { uiObject.getElement().focus(); + if (appendFocusStyleName) uiObject.addStyleName(FOCUS_VISIBLE); } else { uiObject.getElement().blur(); + if (appendFocusStyleName) uiObject.removeStyleName(FOCUS_VISIBLE); } } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/GridLayoutMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/GridLayoutMixin.java new file mode 100644 index 000000000..3573e09fb --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/GridLayoutMixin.java @@ -0,0 +1,347 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2017 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base.mixin; + +import com.google.gwt.user.client.ui.Widget; +import gwt.material.design.client.base.HasGridLayout; + +/** + * A mixin for constructing modern css grid layouts. + * + * @author kevzlou7979 + * @see HasGridLayout + */ +public class GridLayoutMixin extends StylePropertyMixin implements HasGridLayout { + + + public GridLayoutMixin(T uiObject) { + super(uiObject); + } + + @Override + public void setGridLayout(String value) { + setProperty(GRID, value); + } + + @Override + public String getGridLayout() { + return getProperty(GRID); + } + + @Override + public void setGridArea(String value) { + setProperty(GRID_AREA, value); + } + + @Override + public String getGridArea() { + return getProperty(GRID_AREA); + } + + @Override + public void setGridAutoColumns(String value) { + setProperty(GRID_AUTO_COLUMNS, value); + } + + @Override + public String getGridAutoColumns() { + return getProperty(GRID_AUTO_COLUMNS); + } + + @Override + public void setGridAutoFlow(String value) { + setProperty(GRID_AUTO_FLOW, value); + } + + @Override + public String getGridAutoFlow() { + return getProperty(GRID_AUTO_FLOW); + } + + @Override + public void setGridAutoRows(String value) { + setProperty(GRID_AUTO_ROWS, value); + } + + @Override + public String getGridAutoRows() { + return getProperty(GRID_AUTO_ROWS); + } + + @Override + public void setGridColumn(String value) { + setProperty(GRID_COLUMN, value); + } + + @Override + public String getGridColumn() { + return getProperty(GRID_COLUMN); + } + + @Override + public void setGridColumnEnd(String value) { + setProperty(GRID_COLUMN_END, value); + } + + @Override + public String getGridColumnEnd() { + return getProperty(GRID_COLUMN_END); + } + + @Override + public void setGridColumnGap(String value) { + setProperty(GRID_COLUMN_GAP, value); + } + + @Override + public String getGridColumnGap() { + return getProperty(GRID_COLUMN_GAP); + } + + @Override + public void setGridColumnStart(String value) { + setProperty(GRID_COLUMN_START, value); + } + + @Override + public String getGridColumnStart() { + return getProperty(GRID_COLUMN_START); + } + + @Override + public void setGridGap(String value) { + setProperty(GRID_GAP, value); + } + + @Override + public String getGridGap() { + return getProperty(GRID_GAP); + } + + @Override + public void setGridRow(String value) { + setProperty(GRID_ROW, value); + } + + @Override + public String getGridRow() { + return getProperty(GRID_ROW); + } + + @Override + public void setGridRowEnd(String value) { + setProperty(GRID_ROW_END, value); + } + + @Override + public String getGridRowEnd() { + return getProperty(GRID_ROW_END); + } + + @Override + public void setGridRowGap(String value) { + setProperty(GRID_ROW_GAP, value); + } + + @Override + public String getGridRowGap() { + return getProperty(GRID_ROW_GAP); + } + + @Override + public void setGridRowStart(String value) { + setProperty(GRID_ROW_START, value); + } + + @Override + public String getGridRowStart() { + return getProperty(GRID_ROW_START); + } + + @Override + public void setGridTemplate(String value) { + setProperty(GRID_TEMPLATE, value); + } + + @Override + public String getGridTemplate() { + return getProperty(GRID_TEMPLATE); + } + + @Override + public void setGridTemplateAreas(String value) { + setProperty(GRID_TEMPLATE_AREAS, value); + } + + @Override + public String getGridTemplateAreas() { + return getProperty(GRID_TEMPLATE_AREAS); + } + + @Override + public void setGridTemplateColumns(String value) { + setProperty(GRID_TEMPLATE_COLUMNS, value); + } + + @Override + public String getGridTemplateColumns() { + return getProperty(GRID_TEMPLATE_COLUMNS); + } + + @Override + public void setGridTemplateRows(String value) { + setProperty(GRID_TEMPLATE_ROWS, value); + } + + @Override + public String getGridTemplateRows() { + return getProperty(GRID_TEMPLATE_ROWS); + } + + @Override + public void setAlignContent(String value) { + setProperty(ALIGN_CONTENT, value); + } + + @Override + public String getAlignContent() { + return getProperty(ALIGN_CONTENT); + } + + @Override + public void setAlignItems(String value) { + setProperty(ALIGN_ITEMS, value); + } + + @Override + public String getAlignItems() { + return getProperty(ALIGN_ITEMS); + } + + @Override + public void setAlignSelf(String value) { + setProperty(ALIGN_SELF, value); + } + + @Override + public String getAlignSelf() { + return getProperty(ALIGN_SELF); + } + + @Override + public void setColumnGap(String value) { + setProperty(COLUMN_GAP, value); + } + + @Override + public String getColumnGap() { + return getProperty(COLUMN_GAP); + } + + @Override + public void setGap(String value) { + setProperty(GAP, value); + } + + @Override + public String getGap() { + return getProperty(GAP); + } + + @Override + public void setJustifyContent(String value) { + setProperty(JUSTIFY_CONTENT, value); + } + + @Override + public String getJustifyContent() { + return getProperty(JUSTIFY_CONTENT); + } + + @Override + public void setJustifyItems(String value) { + setProperty(JUSTIFY_ITEMS, value); + } + + @Override + public String getJustifyItems() { + return getProperty(JUSTIFY_ITEMS); + } + + @Override + public void setJustifySelf(String value) { + setProperty(JUSTIFY_SELF, value); + } + + @Override + public String getJustifySelf() { + return getProperty(JUSTIFY_SELF); + } + + @Override + public void setPlaceContent(String value) { + setProperty(PLACE_CONTENT, value); + } + + @Override + public String getPlaceContent() { + return getProperty(PLACE_CONTENT); + } + + @Override + public void setPlaceItems(String value) { + setProperty(PLACE_ITEMS, value); + } + + @Override + public String getPlaceItems() { + return getProperty(PLACE_ITEMS); + } + + @Override + public void setPlaceSelf(String value) { + setProperty(PLACE_SELF, value); + } + + @Override + public String getPlaceSelf() { + return getProperty(PLACE_SELF); + } + + @Override + public void setRowGap(String value) { + setProperty(ROW_GAP, value); + } + + @Override + public String getRowGap() { + return getProperty(ROW_GAP); + } + + @Override + public void setAspectRatio(String value) { + setProperty(ASPECT_RATIO, value); + } + + @Override + public String getAspectRatio() { + return getProperty(ASPECT_RATIO); + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/OverlayStyleMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/OverlayStyleMixin.java index 271558e23..346854ad5 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/OverlayStyleMixin.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/OverlayStyleMixin.java @@ -81,6 +81,10 @@ protected void applyBlur(Blur blur, boolean reset) { blurValue = ""; } target.css("filter", blurValue != null ? blurValue : ""); + + if (blur.isFixedTarget()) { + target.css("height", "100" + Style.Unit.PCT); + } } } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/RegexMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/RegexMixin.java new file mode 100644 index 000000000..735b47a26 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/RegexMixin.java @@ -0,0 +1,107 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base.mixin; + +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.event.dom.client.BlurEvent; +import com.google.gwt.event.dom.client.KeyPressEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import gwt.material.design.client.base.HasRegex; +import gwt.material.design.client.base.helper.EventHelper; +import gwt.material.design.client.events.PasteEvent; +import gwt.material.design.client.events.RegexValidationEvent; +import gwt.material.design.client.ui.MaterialValueBox; + +public class RegexMixin extends AbstractMixin implements HasRegex { + + protected String regex; + protected String replaceRegex; + protected HandlerRegistration keyPressHandler, pasteHandler, blurHandler; + + public RegexMixin(final T uiObject) { + super(uiObject); + + EventHelper.onAttachOnce(uiObject, attachEvent -> setup()); + } + + protected void setup() { + if (regex != null && !regex.isEmpty()) { + keyPressHandler = uiObject.addKeyPressHandler(this::matchRegexOnKeyPress); + pasteHandler = uiObject.addPasteHandler(this::matchRegexOnPaste); + blurHandler = uiObject.addBlurHandler(this::matchRegexOnBlur); + } else { + if (keyPressHandler != null) keyPressHandler.removeHandler(); + if (pasteHandler != null) pasteHandler.removeHandler(); + } + } + + protected void matchRegexOnKeyPress(KeyPressEvent event) { + String value = String.valueOf(event.getCharCode()); + boolean matches = value.matches(regex); + if (!matches) { + uiObject.getValueBoxBase().cancelKey(); + } + RegexValidationEvent.fire(uiObject, event, value, regex, matches); + } + + protected void matchRegexOnPaste(PasteEvent event) { + Scheduler.get().scheduleDeferred(() -> { + String value = event.getValue().replaceAll(replaceRegex, ""); + boolean matches = value.matches(regex); + uiObject.clear(); + if (matches) { + uiObject.setText(value); + } + RegexValidationEvent.fire(uiObject, event, event.getValue(), regex, matches); + }); + } + + protected void matchRegexOnBlur(BlurEvent event) { + String value = uiObject.getText(); + if (value != null) { + boolean matches = value.matches(regex); + if (!matches) { + uiObject.clear(); + } + RegexValidationEvent.fire(uiObject, event, value, regex, matches); + } + } + + @Override + public void setRegex(String regex) { + this.regex = regex; + } + + @Override + public void setRegex(String regex, String replaceRegex) { + this.regex = regex; + this.replaceRegex = replaceRegex; + } + + @Override + public String getRegex() { + return regex; + } + + @Override + public HandlerRegistration addRegexValidationHandler(RegexValidationEvent.RegexValidationHandler handler) { + return uiObject.addHandler(handler, RegexValidationEvent.getType()); + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusDisplayMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusDisplayMixin.java index e9228b9e0..9354afc91 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusDisplayMixin.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusDisplayMixin.java @@ -19,6 +19,7 @@ */ package gwt.material.design.client.base.mixin; +import com.google.gwt.core.client.Scheduler; import com.google.gwt.dom.client.Style; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.user.client.ui.HasText; @@ -32,7 +33,7 @@ import gwt.material.design.client.ui.MaterialIcon; public class StatusDisplayMixin - extends AbstractMixin implements HasStatusDisplayType { + extends AbstractMixin implements HasStatusDisplayType { public enum StatusType { ERROR, @@ -44,6 +45,7 @@ public enum StatusType { private MaterialIcon statusIcon = new MaterialIcon(); private Widget container; private Position position; + private boolean showByDefault = false; private CssNameMixin statusCssNameMixin; private CssNameMixin positionCssNameMixin; @@ -91,6 +93,8 @@ public void updateStatusDisplay(StatusType statusType) { registerHandlers(); } + + if (showByDefault) Scheduler.get().scheduleDeferred(this::showStatus); } else { resetStatusDisplay(); } @@ -102,6 +106,11 @@ public void setStatusDisplayPosition(Position position) { updatePosition(position); } + @Override + public void setStatusShowByDefault(boolean showByDefault) { + this.showByDefault = showByDefault; + } + protected void registerHandlers() { MaterialWidget widget = (MaterialWidget) uiObject; statusIcon.getHandlerRegistry().clearHandlers(); diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusTextMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusTextMixin.java index 11857cf67..511f04121 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusTextMixin.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusTextMixin.java @@ -61,7 +61,7 @@ public StatusTextMixin(final T widget, final H textObject, UIObject target, UIOb @Override public void setErrorText(String errorText) { clearSuccessText(); - clearHelperText(); + hideHelperText(); updateStatusDisplay(StatusDisplayMixin.StatusType.ERROR); if (textObject != null) { @@ -85,7 +85,7 @@ public void setErrorText(String errorText) { @Override public void setSuccessText(String successText) { clearErrorText(); - clearHelperText(); + hideHelperText(); updateStatusDisplay(StatusDisplayMixin.StatusType.SUCCESS); if (textObject != null) { @@ -106,6 +106,7 @@ public void setSuccessText(String successText) { } } + @Override public void setHelperText(String helperText) { this.helperText = helperText; @@ -173,6 +174,11 @@ public void clearSuccessText() { @Override public void clearHelperText() { + helperText=""; + hideHelperText(); + } + + protected void hideHelperText() { if (textObject != null) { textObject.setText(""); textObject.setVisible(false); @@ -230,10 +236,19 @@ public void setStatusDisplayPosition(Position position) { getStatusDisplayMixin().setStatusDisplayPosition(position); } + @Override + public void setStatusShowByDefault(boolean showByDefault) { + getStatusDisplayMixin().setStatusShowByDefault(showByDefault); + } + public void resetStatusDisplay() { getStatusDisplayMixin().resetStatusDisplay(); } + public H getTextObject() { + return textObject; + } + public StatusDisplayMixin getStatusDisplayMixin() { if (statusDisplayMixin == null) { statusDisplayMixin = new StatusDisplayMixin<>(uiObject, textObject); diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/TooltipMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/TooltipMixin.java index 649b781a2..e696b361b 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/TooltipMixin.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/TooltipMixin.java @@ -126,4 +126,14 @@ public String getTooltipHTML() { public JQueryElement getTooltipElement() { return tooltip.getTooltipElement(); } + + @Override + public void removeTooltip() { + if (tooltip != null) { + JQueryElement tooltipElement = tooltip.getTooltipElement(); + if (tooltipElement != null) { + tooltipElement.remove(); + } + } + } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/constants/Blur.java b/gwt-material/src/main/java/gwt/material/design/client/constants/Blur.java index 5d119d54e..f22546dbd 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/constants/Blur.java +++ b/gwt-material/src/main/java/gwt/material/design/client/constants/Blur.java @@ -29,6 +29,7 @@ public class Blur { private int value; + private boolean fixedTarget; private JQueryElement[] targets; public Blur() { @@ -66,4 +67,16 @@ public JQueryElement[] getTargets() { public void setTargets(JQueryElement... targets) { this.targets = targets; } + + public boolean isFixedTarget() { + return fixedTarget; + } + + /** + * Will apply a height of 100% to a fix target. This is a recommended fixed + * fixed position element applying a blur. + */ + public void setFixedTarget(boolean fixedTarget) { + this.fixedTarget = fixedTarget; + } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/constants/CssName.java b/gwt-material/src/main/java/gwt/material/design/client/constants/CssName.java index 5ff36ae2e..f289ca7db 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/constants/CssName.java +++ b/gwt-material/src/main/java/gwt/material/design/client/constants/CssName.java @@ -27,7 +27,6 @@ public interface CssName { String BADGE = "badge"; - String SIDEBAR_BADGE = "sideBarBadge"; String BREADCRUMB = "breadcrumb"; String CARD = "card"; String CARD_ACTION = "card-action"; diff --git a/gwt-material/src/main/java/gwt/material/design/client/constants/Display.java b/gwt-material/src/main/java/gwt/material/design/client/constants/Display.java index 057a556e9..445129561 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/constants/Display.java +++ b/gwt-material/src/main/java/gwt/material/design/client/constants/Display.java @@ -26,10 +26,11 @@ * @author chriswjones */ public enum Display implements HasCssName { - FLEX("flex"), - NONE(Style.Display.NONE), - BLOCK(Style.Display.BLOCK), INLINE(Style.Display.INLINE), + BLOCK(Style.Display.BLOCK), + FLEX("flex"), + GRID("grid"), + INLINE_GRID("inline-grid"), INLINE_BLOCK(Style.Display.INLINE_BLOCK), INLINE_TABLE(Style.Display.INLINE_TABLE), LIST_ITEM(Style.Display.LIST_ITEM), @@ -43,6 +44,7 @@ public enum Display implements HasCssName { TABLE_CELL(Style.Display.TABLE_CELL), TABLE_COLUMN(Style.Display.TABLE_COLUMN), TABLE_ROW(Style.Display.TABLE_ROW), + NONE(Style.Display.NONE), INITIAL(Style.Display.INITIAL); private final String cssName; diff --git a/gwt-material/src/main/java/gwt/material/design/client/events/RegexValidationEvent.java b/gwt-material/src/main/java/gwt/material/design/client/events/RegexValidationEvent.java new file mode 100644 index 000000000..73a75845e --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/events/RegexValidationEvent.java @@ -0,0 +1,80 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2017 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.events; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HasHandlers; +import gwt.material.design.client.events.RegexValidationEvent.RegexValidationHandler; + +public class RegexValidationEvent extends GwtEvent { + + protected String value; + protected String regex; + protected boolean match; + protected GwtEvent eventSource; + + public interface RegexValidationHandler extends EventHandler { + void onRegexValidation(RegexValidationEvent event); + } + + public RegexValidationEvent(GwtEvent eventSource, String value, String regex, boolean match) { + this.eventSource = eventSource; + this.value = value; + this.regex = regex; + this.match = match; + } + + public static final Type TYPE = new Type<>(); + + public static void fire(HasHandlers source, GwtEvent eventSource, String value, String regex, boolean match) { + source.fireEvent(new RegexValidationEvent(eventSource, value, regex, match)); + } + + @Override + public Type getAssociatedType() { + return TYPE; + } + + @Override + protected void dispatch(RegexValidationHandler handler) { + handler.onRegexValidation(this); + } + + public static Type getType() { + return TYPE; + } + + public GwtEvent getEventSource() { + return eventSource; + } + + public String getValue() { + return value; + } + + public String getRegex() { + return regex; + } + + public boolean isMatch() { + return match; + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/events/SensitivityChangedEvent.java b/gwt-material/src/main/java/gwt/material/design/client/events/SensitivityChangedEvent.java new file mode 100644 index 000000000..31a0d0f23 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/events/SensitivityChangedEvent.java @@ -0,0 +1,58 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2017 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.events; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HasHandlers; +import gwt.material.design.client.events.SensitivityChangedEvent.SensitivityChangedHandler; + +public class SensitivityChangedEvent extends GwtEvent { + + public interface SensitivityChangedHandler extends EventHandler { + void onSensitivityChanged(SensitivityChangedEvent event); + } + + private final boolean sensitive; + + public SensitivityChangedEvent(boolean sensitive) { + this.sensitive = sensitive; + } + + public static final Type TYPE = new Type<>(); + + public static void fire(HasHandlers source, boolean sensitive) { + source.fireEvent(new SensitivityChangedEvent(sensitive)); + } + + @Override + public Type getAssociatedType() { + return TYPE; + } + + @Override + protected void dispatch(SensitivityChangedHandler handler) { + handler.onSensitivityChanged(this); + } + + public boolean isSensitive() { + return sensitive; + } +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/js/ClipboardJS.java b/gwt-material/src/main/java/gwt/material/design/client/js/ClipboardJS.java new file mode 100644 index 000000000..f25948c8e --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/js/ClipboardJS.java @@ -0,0 +1,36 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.js; + +import gwt.material.design.jquery.client.api.Functions; +import gwt.material.design.jquery.client.api.JQueryElement; +import jsinterop.annotations.JsConstructor; +import jsinterop.annotations.JsPackage; +import jsinterop.annotations.JsType; + +@JsType(isNative = true, namespace = JsPackage.GLOBAL) +public class ClipboardJS { + + @JsConstructor + public ClipboardJS(String className) { + } + + public native JQueryElement on(String eventName, Functions.Func1 event); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/js/CopyCommandData.java b/gwt-material/src/main/java/gwt/material/design/client/js/CopyCommandData.java new file mode 100644 index 000000000..943acebaa --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/js/CopyCommandData.java @@ -0,0 +1,41 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.js; + +import jsinterop.annotations.JsMethod; +import jsinterop.annotations.JsPackage; +import jsinterop.annotations.JsProperty; +import jsinterop.annotations.JsType; + +@JsType(isNative = true, name = "Object", namespace = JsPackage.GLOBAL) +public class CopyCommandData { + + @JsProperty + public String action; + + @JsProperty + public String text; + + @JsProperty + public String trigger; + + @JsMethod + public native void clearSelection(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/js/JsMaterialElement.java b/gwt-material/src/main/java/gwt/material/design/client/js/JsMaterialElement.java index 7c2ab2342..82ac35f7a 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/js/JsMaterialElement.java +++ b/gwt-material/src/main/java/gwt/material/design/client/js/JsMaterialElement.java @@ -232,6 +232,9 @@ public class JsMaterialElement extends JQueryElement { @JsMethod(namespace = "Materialize") public static native double showStaggeredList(Object selector); + @JsMethod(namespace = "Materialize") + public static native double hideStaggeredList(Object selector); + @JsMethod(namespace = "Waves") public static native void displayEffect(); diff --git a/gwt-material/src/main/java/gwt/material/design/client/js/Window.java b/gwt-material/src/main/java/gwt/material/design/client/js/Window.java index dd41f57f5..ef7967a8f 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/js/Window.java +++ b/gwt-material/src/main/java/gwt/material/design/client/js/Window.java @@ -21,6 +21,9 @@ import com.google.gwt.event.logical.shared.ResizeHandler; import com.google.gwt.event.shared.HandlerRegistration; +import gwt.material.design.client.base.DeferredPrompt; +import gwt.material.design.jquery.client.api.Functions; +import jsinterop.annotations.JsMethod; import jsinterop.annotations.JsType; @JsType @@ -36,6 +39,12 @@ public static native MediaQueryList getMediaQueryList(String query) /*-{ return $wnd.window.matchMedia(query); }-*/; + @JsMethod(namespace = "window") + public static native void addEventListener(String eventName, Functions.Func1 event); + + @JsMethod + public static native DeferredPrompt deferredPrompt(); + public static HandlerRegistration addResizeHandler(ResizeHandler handler) { return com.google.gwt.user.client.Window.addResizeHandler(handler); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/pwa/push/PushNotificationManager.java b/gwt-material/src/main/java/gwt/material/design/client/pwa/push/PushNotificationManager.java index 7f4862478..30fe3fbb8 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/pwa/push/PushNotificationManager.java +++ b/gwt-material/src/main/java/gwt/material/design/client/pwa/push/PushNotificationManager.java @@ -44,7 +44,7 @@ public PushNotificationManager(ServiceWorkerRegistration registration) { @Override public void load(Functions.Func1 callback) { if (isSupported()) { - getPushManager().getSubscription().then((e, object) -> { + getPushManager().getSubscription().then(object -> { subscribed = object != null; PushSubscription subscription = (PushSubscription) object; callback.call(subscription); @@ -58,7 +58,7 @@ public void subscribe(boolean userVisibleOnly, String applicationServerKey, Func PushSubscriptionOptions options = new PushSubscriptionOptions(); options.userVisibleOnly = userVisibleOnly; options.applicationServerKey = PushCryptoHelper.Base64ToArrayBuffer(applicationServerKey); - getPushManager().subscribe(options).then((e, object) -> { + getPushManager().subscribe(options).then(object -> { PushSubscription subscription = (PushSubscription) object; subscribed = subscription != null; callback.call(subscription); @@ -73,13 +73,13 @@ public void subscribe(String applicationServerKey, Functions.Func1 { + getPushManager().getSubscription().then(object -> { PushSubscription subscription; if (object != null) { subscription = (PushSubscription) object; subscription.unsubscribe().then(o -> { callback.call(); - return true; + return true; }); subscribed = false; } diff --git a/gwt-material/src/main/java/gwt/material/design/client/resources/DarkThemeResources.java b/gwt-material/src/main/java/gwt/material/design/client/resources/DarkThemeResources.java index a14272f37..cc6ff883a 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/resources/DarkThemeResources.java +++ b/gwt-material/src/main/java/gwt/material/design/client/resources/DarkThemeResources.java @@ -26,6 +26,6 @@ public interface DarkThemeResources extends ClientBundle { DarkThemeResources INSTANCE = GWT.create(DarkThemeResources.class); - @Source("css/core-dark.min.css") + @Source("css/materialize.dark.min.css") TextResource darkCss(); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/resources/MaterialDebugResources.java b/gwt-material/src/main/java/gwt/material/design/client/resources/MaterialDebugResources.java index a08906dee..f70a90507 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/resources/MaterialDebugResources.java +++ b/gwt-material/src/main/java/gwt/material/design/client/resources/MaterialDebugResources.java @@ -32,6 +32,12 @@ public interface MaterialDebugResources extends ClientBundle { @Source("js/animation.js") TextResource animationJsDebug(); + @Source("js/clipboard.js") + TextResource clipboardJs(); + @Source("js/app-installer.js") TextResource appInstallerJsDebug(); + + @Source("js/focus-visible.js") + TextResource focusVisibleJsDebug(); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/resources/MaterialResources.java b/gwt-material/src/main/java/gwt/material/design/client/resources/MaterialResources.java index b31c66a06..474e52a6e 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/resources/MaterialResources.java +++ b/gwt-material/src/main/java/gwt/material/design/client/resources/MaterialResources.java @@ -32,6 +32,12 @@ public interface MaterialResources extends ClientBundle { @Source("js/materialize-0.97.5.min.js") TextResource materializeJs(); + @Source("js/clipboard.min.js") + TextResource clipboardJs(); + @Source("js/app-installer.min.js") TextResource appInstallerJs(); + + @Source("js/focus-visible.min.js") + TextResource focusVisibleJs(); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialBadge.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialBadge.java index 29af757e3..3c2cdd753 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialBadge.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialBadge.java @@ -46,7 +46,7 @@ public class MaterialBadge extends Span { * Collection, DropDown, SideNav and any other Material components. */ public MaterialBadge() { - super(Document.get().createSpanElement(), CssName.BADGE, CssName.SIDEBAR_BADGE); + super(Document.get().createSpanElement(), CssName.BADGE); } /** diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialBreadcrumb.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialBreadcrumb.java index c8d8ca191..08d293dd2 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialBreadcrumb.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialBreadcrumb.java @@ -49,6 +49,8 @@ public class MaterialBreadcrumb extends AbstractIconButton { public MaterialBreadcrumb() { super(CssName.BREADCRUMB); + + setTabIndex(0); } public MaterialBreadcrumb(String text) { diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialButton.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialButton.java index 03269fe43..7a180c4df 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialButton.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialButton.java @@ -62,6 +62,8 @@ public class MaterialButton extends AbstractIconButton { public MaterialButton() { super(ButtonType.RAISED); + + setTabIndex(0); } public MaterialButton(String text) { diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCheckBox.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCheckBox.java index 44f3e9dba..4855d966c 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCheckBox.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCheckBox.java @@ -81,6 +81,9 @@ public MaterialCheckBox() { public MaterialCheckBox(Element elem) { super(elem); + setStyleName(CHECKBOX); + setAsyncDisplayLoader(new DefaultCheckBoxLoader(this)); + setType(CheckBoxType.FILLED); } public MaterialCheckBox(SafeHtml label, Direction dir) { diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialChipContainer.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialChipContainer.java index 88bceafe5..eb2f36a92 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialChipContainer.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialChipContainer.java @@ -19,6 +19,7 @@ */ package gwt.material.design.client.ui; +import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.Widget; @@ -40,8 +41,12 @@ protected void add(Widget child, Element container) { if (child instanceof MaterialChip) { MaterialChip chip = (MaterialChip) child; + chip.setTabIndex(0); chip.registerHandler(chip.addClickHandler(event -> { - if (isEnableToggle()) setActive(chip); + if (isEnableToggle()) toggle(chip); + })); + chip.registerHandler(chip.addKeyUpHandler(event -> { + if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) toggle(chip); })); chipList.add(chip); } @@ -84,6 +89,10 @@ public void setActive(int index) { } } + public void toggle(MaterialChip chip) { + if (isEnableToggle()) setActive(chip); + } + public void clearActive() { chipList.forEach(c -> c.setActive(false)); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollapsible.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollapsible.java index 0ec7999f5..80fbe50e3 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollapsible.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollapsible.java @@ -187,8 +187,6 @@ protected void clearActiveClass(HasWidgets widget) { /** * Open the given collapsible item. - * - * @param index the one-based collapsible item index. */ public void open(int index) { setActive(index); @@ -196,8 +194,6 @@ public void open(int index) { /** * Close the given collapsible item. - * - * @param index the one-based collapsible item index. */ public void close(int index) { setActive(index, false); @@ -259,8 +255,8 @@ public void setActive(int index, boolean active) { activeIndex = index; if (isAttached()) { if (index <= getWidgetCount()) { - if (index != 0) { - activeWidget = getWidget(index - 1); + if (index > 0) { + activeWidget = getWidget(index); if (activeWidget != null && activeWidget instanceof MaterialCollapsibleItem) { ((MaterialCollapsibleItem) activeWidget).setActive(active); reload(); diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollapsibleHeader.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollapsibleHeader.java index 00e03e902..f795ba83b 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollapsibleHeader.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollapsibleHeader.java @@ -21,6 +21,7 @@ import com.google.gwt.dom.client.Document; import com.google.gwt.dom.client.Style; +import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.user.client.ui.Widget; import gwt.material.design.client.base.MaterialWidget; import gwt.material.design.client.constants.CssName; @@ -45,6 +46,8 @@ public class MaterialCollapsibleHeader extends MaterialWidget { */ public MaterialCollapsibleHeader() { super(Document.get().createDivElement(), CssName.COLLAPSIBLE_HEADER); + + setTabIndex(0); } /** @@ -67,7 +70,22 @@ public void add(Widget child) { } } else if (child instanceof ListItem) { child.getElement().getStyle().setDisplay(Style.Display.BLOCK); + } else if (child instanceof MaterialLink) { + ((MaterialLink) child).setTabIndex(-1); } super.add(child); } + + @Override + protected void onLoad() { + super.onLoad(); + + registerHandler(addKeyUpHandler(event -> { + if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER && getParent() != null) { + if (getParent() instanceof MaterialCollapsibleItem) { + ((MaterialCollapsibleItem) getParent()).setActive(true); + } + } + })); + } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollection.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollection.java index 89be87918..f0aea8153 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollection.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollection.java @@ -26,7 +26,6 @@ import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.safehtml.shared.SafeHtmlUtils; -import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.Widget; import gwt.material.design.client.base.HasActiveParent; import gwt.material.design.client.base.HasClearActiveHandler; @@ -101,7 +100,7 @@ */ //@formatter:on public class MaterialCollection extends MaterialWidget - implements HasActiveParent, HasClearActiveHandler, HasSelectionHandlers { + implements HasActiveParent, HasClearActiveHandler, HasSelectionHandlers { private int index; private boolean selectable; @@ -160,6 +159,10 @@ public void setActive(int index) { @Override public void setActive(int index, boolean value) { + setActive(index, value, true); + } + + public void setActive(int index, boolean value, boolean fireEvents) { this.index = index; Widget activeWidget = getActive(); if (activeWidget != null) { @@ -167,7 +170,9 @@ public void setActive(int index, boolean value) { if (index != 0) { clearActiveClass(this); if (activeWidget instanceof MaterialCollectionItem) { - ((MaterialCollectionItem) activeWidget).setActive(value); + MaterialCollectionItem activeItem = (MaterialCollectionItem) activeWidget; + activeItem.setActive(value); + if (fireEvents) SelectionEvent.fire(this, activeItem); } } else { throw new IllegalArgumentException("The active index must be a one-base index to mark as active."); diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollectionItem.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollectionItem.java index 3930afd62..e5e11bd47 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollectionItem.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCollectionItem.java @@ -23,6 +23,7 @@ import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.EventTarget; import com.google.gwt.dom.client.Style; +import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.ui.HasValue; import com.google.gwt.user.client.ui.Widget; @@ -94,6 +95,16 @@ protected void onLoad() { }); registerHandler(handlerRegistration); + registerHandler(addKeyUpHandler(event -> { + if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) { + Widget parent = getParent(); + if (parent instanceof MaterialCollection) { + MaterialCollection collection = (MaterialCollection) parent; + collection.setActive(collection.getWidgetIndex(this) + 1); + } + } + })); + JsMaterialElement.initDismissableCollection(); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialDarkModeToggle.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialDarkModeToggle.java index b4e1015e6..86548e468 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialDarkModeToggle.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialDarkModeToggle.java @@ -19,7 +19,9 @@ */ package gwt.material.design.client.ui; +import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.shared.HandlerRegistration; +import gwt.material.design.client.accessibility.AccessibilityControl; import gwt.material.design.client.constants.IconType; import gwt.material.design.client.js.MediaQueryList; import gwt.material.design.client.js.Window; @@ -30,6 +32,7 @@ public class MaterialDarkModeToggle extends MaterialIcon implements HasDarkMode, protected DarkThemeManager manager = DarkThemeManager.get(); public MaterialDarkModeToggle() { + } @Override @@ -40,6 +43,7 @@ protected void onLoad() { setDarkMode(mediaQueryList.matches); mediaQueryList.addListener(mediaQueryEvent -> setDarkMode(mediaQueryEvent.matches)); registerHandler(addClickHandler(event -> setDarkMode(!isDarkMode()))); + AccessibilityControl.get().registerWidget(this, event -> setDarkMode(!isDarkMode())); } @Override diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialLink.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialLink.java index e38806eed..3f76cdc08 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialLink.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialLink.java @@ -50,18 +50,22 @@ public class MaterialLink extends AbstractIconButton { public MaterialLink(ButtonType type, String text, MaterialIcon icon) { super(type, text, icon); + setTabIndex(0); } public MaterialLink(String text, MaterialIcon icon) { super(ButtonType.LINK, text, icon); + setTabIndex(0); } public MaterialLink(IconType iconType) { super(iconType); + setTabIndex(0); } public MaterialLink(String text) { super(ButtonType.LINK, text); + setTabIndex(0); } public MaterialLink(String text, String href) { @@ -78,6 +82,7 @@ public MaterialLink(String text, String href, IconType icon) { public MaterialLink() { super(ButtonType.LINK); + setTabIndex(0); } @Override diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialRadioButton.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialRadioButton.java index 5ecdfae2e..1b6ce6649 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialRadioButton.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialRadioButton.java @@ -26,9 +26,12 @@ import com.google.gwt.user.client.ui.RadioButton; import gwt.material.design.client.base.HasType; import gwt.material.design.client.base.TypeWidget; +import gwt.material.design.client.base.SelectionToggleHandler; import gwt.material.design.client.base.mixin.CssTypeMixin; import gwt.material.design.client.constants.RadioButtonType; +import static gwt.material.design.jquery.client.api.JQuery.$; + //@formatter:off /** @@ -51,6 +54,7 @@ public class MaterialRadioButton extends RadioButton implements HasType { private CssTypeMixin> typeMixin; + private SelectionToggleHandler selectionToggleHandler = new SelectionToggleHandler<>(this); public MaterialRadioButton() { super(""); @@ -88,6 +92,18 @@ public MaterialRadioButton(String name) { super(name); } + @Override + protected void onLoad() { + super.onLoad(); + selectionToggleHandler.load(); + } + + @Override + protected void onUnload() { + super.onUnload(); + selectionToggleHandler.unload(); + } + @Override public RadioButtonType getType() { return getTypeMixin().getType(); @@ -98,6 +114,11 @@ public void setType(RadioButtonType type) { getTypeMixin().setType(type); } + @Override + public void setTabIndex(int index) { + getElement().setTabIndex(index); + } + protected CssTypeMixin> getTypeMixin() { if (typeMixin == null) { typeMixin = new CssTypeMixin<>(new TypeWidget<>(DOM.getChild(getElement(), 0))); diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSearch.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSearch.java index b7c9aa4ed..ddcbd40e9 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSearch.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSearch.java @@ -26,10 +26,7 @@ import com.google.gwt.event.logical.shared.*; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.ui.TextBox; -import gwt.material.design.client.base.HasActive; -import gwt.material.design.client.base.HasOpenClose; -import gwt.material.design.client.base.HasSearchHandlers; -import gwt.material.design.client.base.SearchObject; +import gwt.material.design.client.base.*; import gwt.material.design.client.constants.*; import gwt.material.design.client.events.SearchFinishEvent; import gwt.material.design.client.events.SearchNoResultEvent; @@ -76,12 +73,13 @@ */ //@formatter:on public class MaterialSearch extends MaterialValueBox implements HasOpenHandlers, HasCloseHandlers, - HasActive, HasSearchHandlers, HasOpenClose { + HasActive, HasSearchHandlers, HasOpenClose { private Label label = new Label(); private MaterialIcon iconSearch = new MaterialIcon(IconType.SEARCH); private MaterialIcon iconClose = new MaterialIcon(IconType.CLOSE); + private SearchMatcher matcher = new DefaultSearchMatcher(); /** * The list of search objects added to MaterialSearchResult panel to * display the lists of result items @@ -147,6 +145,7 @@ protected void onLoad() { @Override public void onKeyUp(KeyUpEvent event) { String keyword = getText().toLowerCase(); + int keyCode = event.getNativeEvent().getKeyCode(); // Clear the panel and temp objects searchResultPanel.clear(); tempSearches.clear(); @@ -190,7 +189,7 @@ public void onKeyUp(KeyUpEvent event) { } // Apply selected search - if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER && !tempSearches.isEmpty()) { + if (keyCode == KeyCodes.KEY_ENTER && !tempSearches.isEmpty()) { if (getCurSel() == -1) { setSelectedObject(tempSearches.get(0)); setSelectedLink((MaterialLink) searchResultPanel.getWidget(0)); @@ -213,20 +212,25 @@ public void onKeyUp(KeyUpEvent event) { // Selection logic using key down event to navigate the search results int totalItems = searchResultPanel.getWidgetCount(); if (totalItems > 0) { - if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_DOWN) { - if (++curSel >= totalItems) - curSel = 0; - - applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel)); + if (keyCode == KeyCodes.KEY_DOWN) { + if (++curSel >= totalItems) + curSel = 0; + + applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel)); } // Selection logic using key up event to navigate the search results if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_UP) { - if (--curSel < 0) - curSel = totalItems - 1; - - applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel)); - } + if (--curSel < 0) + curSel = totalItems - 1; + + applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel)); + } + } + + // Add Escape key for closing the result panel + if (keyCode == KeyCodes.KEY_ESCAPE) { + close(); } } @@ -241,9 +245,21 @@ private void reset(String keyword) { })); } - protected boolean match(SearchObject obj, String keyword) { - return obj.getKeyword().toLowerCase().contains(keyword); - } + protected boolean match(SearchObject obj, String keyword) { + return matcher.match(obj, keyword); + } + + public SearchMatcher getMatcher() { + return matcher; + } + + /** + * Will set a custom matcher to match the keyword. + * By Default {@lnk DefaultSearchMatcher} + */ + public void setMatcher(SearchMatcher matcher) { + this.matcher = matcher; + } @Override protected void onUnload() { @@ -395,4 +411,4 @@ public HandlerRegistration addSearchFinishHandler(final SearchFinishEvent.Search public HandlerRegistration addSearchNoResultHandler(final SearchNoResultEvent.SearchNoResultHandler handler) { return addHandler(handler, SearchNoResultEvent.TYPE); } -} \ No newline at end of file +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSwitch.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSwitch.java index f0b977731..cc8ebcf2a 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSwitch.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSwitch.java @@ -21,6 +21,7 @@ import com.google.gwt.dom.client.Document; import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.HandlerRegistration; @@ -31,6 +32,7 @@ import gwt.material.design.client.async.loader.DefaultSwitchLoader; import gwt.material.design.client.async.mixin.AsyncWidgetMixin; import gwt.material.design.client.base.AbstractValueWidget; +import gwt.material.design.client.base.SelectionToggleHandler; import gwt.material.design.client.base.mixin.StatusTextMixin; import gwt.material.design.client.constants.CssName; import gwt.material.design.client.constants.InputType; @@ -65,6 +67,7 @@ public class MaterialSwitch extends AbstractValueWidget private Label label = new Label(); private Span span = new Span(); private SwitchType type = SwitchType.DEFAULT; + private SelectionToggleHandler selectionToggleHandler; private StatusTextMixin statusTextMixin; private AsyncWidgetMixin asyncWidgetMixin; @@ -76,7 +79,9 @@ public MaterialSwitch() { super(Document.get().createDivElement(), CssName.SWITCH); span.setStyleName(CssName.LEVER); input.setType(InputType.CHECKBOX); + selectionToggleHandler = new SelectionToggleHandler<>(this); setAsyncDisplayLoader(new DefaultSwitchLoader(this)); + setTabIndex(0); } public MaterialSwitch(String onLabel, String offLabel) { @@ -114,6 +119,7 @@ protected void onLoad() { add(errorLabel); errorLabel.getElement().getStyle().setMarginTop(16, Unit.PX); label.add(onLabel); + selectionToggleHandler.load(); // Register click handler here in order to have it at first position // and therefore it will deal with clicks as first and setup the value @@ -132,6 +138,12 @@ protected void onLoad() { })); } + @Override + protected void onUnload() { + super.onUnload(); + selectionToggleHandler.unload(); + } + @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialValueBox.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialValueBox.java index cba44d13b..1acc1572c 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialValueBox.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialValueBox.java @@ -70,8 +70,7 @@ public class MaterialValueBox extends AbstractValueWidget implements HasChangeHandlers, HasName, HasDirectionEstimator, HasText, AutoDirectionHandler.Target, IsEditor>, HasIcon, HasInputType, HasPlaceholder, HasCounter, HasReadOnly, HasActive, HasFieldTypes, - HasToggleReadOnlyHandler, HasAutocomplete, HasPasteHandlers, HasFieldSensitivity, HasLabel { - + HasToggleReadOnlyHandler, HasAutocomplete, HasPasteHandlers, HasFieldSensitivity, HasLabel, HasRegex { private boolean returnBlankAsNull; private InputType type = InputType.TEXT; @@ -90,6 +89,7 @@ public class MaterialValueBox extends AbstractValueWidget implements HasCh private ActiveMixin activeMixin; private FieldTypeMixin fieldTypeMixin; private FieldSensitivityMixin fieldSensitivityMixin; + private RegexMixin regexMixin; public class MaterialValueBoxEditor extends ValueBoxEditor { private final ValueBoxBase valueBoxBase; @@ -579,11 +579,31 @@ public void setSensitive(boolean sensitive) { getFieldSensitivityMixin().setSensitive(sensitive); } + @Override + public void setSensitive(boolean sensitive, boolean fireEvents) { + getFieldSensitivityMixin().setSensitive(sensitive, fireEvents); + } + @Override public boolean isSensitive() { return getFieldSensitivityMixin().isSensitive(); } + @Override + public void setRegex(String regex) { + getRegexMixin().setRegex(regex); + } + + @Override + public void setRegex(String regex, String replaceRegex) { + getRegexMixin().setRegex(regex, replaceRegex); + } + + @Override + public String getRegex() { + return getRegexMixin().getRegex(); + } + @Ignore public ValueBoxBase getValueBoxBase() { return valueBoxBase; @@ -886,6 +906,16 @@ public HandlerRegistration addToggleReadOnlyHandler(ToggleReadOnlyEvent.ToggleRe return addHandler(handler, ToggleReadOnlyEvent.getType()); } + @Override + public HandlerRegistration addRegexValidationHandler(RegexValidationEvent.RegexValidationHandler handler) { + return addHandler(handler, RegexValidationEvent.getType()); + } + + @Override + public HandlerRegistration addSensitivityChangedHandler(SensitivityChangedEvent.SensitivityChangedHandler handler) { + return addHandler(handler, SensitivityChangedEvent.TYPE); + } + @Override protected FocusableMixin getFocusableMixin() { if (focusableMixin == null) { @@ -936,4 +966,11 @@ protected FieldSensitivityMixin getFieldSensitivityMixin() { } return fieldSensitivityMixin; } + + protected RegexMixin getRegexMixin() { + if (regexMixin == null) { + regexMixin = new RegexMixin<>(this); + } + return regexMixin; + } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/animate/MaterialAnimation.java b/gwt-material/src/main/java/gwt/material/design/client/ui/animate/MaterialAnimation.java index d84b51290..b27f60341 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/animate/MaterialAnimation.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/animate/MaterialAnimation.java @@ -147,6 +147,9 @@ public void run() { case SHOW_STAGGERED_LIST: JsMaterialElement.showStaggeredList(element); break; + case HIDE_STAGGERED_LIST: + JsMaterialElement.hideStaggeredList(element); + break; case FADE_IN_IMAGE: JsMaterialElement.fadeInImage(element); break; diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/animate/Transition.java b/gwt-material/src/main/java/gwt/material/design/client/ui/animate/Transition.java index 9830fb67a..5f1a098f8 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/animate/Transition.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/animate/Transition.java @@ -26,6 +26,7 @@ public enum Transition implements CssType { // Material Animation Components SHOW_STAGGERED_LIST("staggered_list"), + HIDE_STAGGERED_LIST("staggered_list_hide"), FADE_IN_IMAGE("fade_in_image"), SHOW_GRID("show_grid"), CLOSE_GRID("close_grid"), diff --git a/gwt-material/src/main/resources/gwt/material/design/GwtMaterialWithoutResources.gwt.xml b/gwt-material/src/main/resources/gwt/material/design/GwtMaterialWithoutResources.gwt.xml new file mode 100644 index 000000000..e9c5a8d5e --- /dev/null +++ b/gwt-material/src/main/resources/gwt/material/design/GwtMaterialWithoutResources.gwt.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + diff --git a/gwt-material/src/main/resources/gwt/material/design/client/resources/css/core-dark.css b/gwt-material/src/main/resources/gwt/material/design/client/resources/css/core-dark.css deleted file mode 100644 index 72b4f59a9..000000000 --- a/gwt-material/src/main/resources/gwt/material/design/client/resources/css/core-dark.css +++ /dev/null @@ -1,603 +0,0 @@ -/** Global **/ -body { - background-color: #292929; - color: #fff -} - -a { - color: #bb86fc -} - -/** NavBar **/ -nav .brand-logo, nav a.button-collapse, nav a.button-collapse i, nav ul a { - color: #fff !important -} - -nav, nav .nav-wrapper { - background-color: #272727 !important -} - -nav .nav-wrapper i, nav .nav-wrapper ul li i { - color: #ffff !important -} - -nav .nav-wrapper ul li:hover i { - background-color: #1e1e1e !important -} - -/** Side Nav **/ -ul.side-nav i { - color: rgba(255, 255, 255, .9); -} - -ul.side-nav li.active i, -ul.side-nav li:hover i { - color: #b180ed; -} - -ul.side-nav { - background-color: #2e2e2e -} - -ul.side-nav li a span { - color: rgba(255, 255, 255, .9) -} - -ul.side-nav li.active, ul.side-nav li:hover { - background-color: rgba(187, 134, 252, .08) -} - -ul.side-nav li.active a span, ul.side-nav li:hover a span { - color: #bb86fc -} - -/** Badge **/ -span.badge { - background-color: #b180ed; - color: #000 !important -} - -/** Pre **/ -pre.hljs { - border: 1px solid #1e1e1e !important; - background-color: #1e1e1e !important -} - -pre.java:before, pre.xml:before { - background-color: #2d2d2d !important -} - -/** Scroll bar **/ -::-webkit-scrollbar { - background-color: #1e1e1e !important; - height: 2px !important; - width: 8px !important -} - -::-webkit-scrollbar-thumb { - background-color: #464646 !important; - border-radius: 4px !important -} - -::-webkit-scrollbar-track { - background-color: #2e2e2e !important -} - -/** Card **/ -.card span.secondary-label, span.secondary-label { - color: rgba(255, 255, 255, .6) -} - -.card .card-content .card-title i, .card .card-reveal i { - color: #fff -} - -.card .card-reveal { - background-color: #1e1e1e -} - -.card { - background-color: #1e1e1e; - color: #fff -} - -.card span { - color: #fff -} - -.card .card-action i, .card .card-action span { - color: #bb86fc -} - -.card .collection { - border: none -} - -.card .collection .collection-item { - background-color: #2b2b2b -} - -.card .collection .collection-item span { - color: #fff -} - -/** Button **/ -.btn, .btn-large, .btn-large:hover, .btn:hover, button:focus { - background-color: #bb86fc; - color: #000 -} - -button.btn-outlined, button.btn-outlined:active, button.btn-outlined:focus, button.btn-outlined:hover { - background-color: transparent; - border: 1px solid #bb86fc; - color: #bb86fc -} - -button.btn.btn-outlined.disabled { - color: rgba(187, 134, 252, .4) !important -} - -.btn-floating.disabled, .btn-floating:disabled, .btn-large.disabled, .btn-large:disabled, .btn.disabled, .btn:disabled, .disabled.btn-large { - background-color: #bb86fc !important; - color: rgba(0, 0, 0, .7) !important; - opacity: .4 -} - -.btn-floating.disabled i { - color: rgba(0, 0, 0, .7) !important -} - -.btn-flat { - color: #bb86fc -} - -.btn-flat.disabled { - color: rgba(187, 134, 252, .3) !important; - background-color: transparent !important -} - -/** Checkbox **/ -[type=checkbox].filled-in:checked + label:after { - border: 2px solid #bb86fc; - background-color: #bb86fc -} - -[type=checkbox].filled-in:checked + label:before { - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid #000; - border-bottom: 2px solid #000 -} - -[type=checkbox]:checked + label:before { - border-right: 2px solid #bb86fc; - border-bottom: 2px solid #bb86fc -} - -[type=checkbox]:indeterminate + label:before { - border-right: 2px solid #bb86fc -} - -/** Chip **/ -.chip { - background-color: #2f2f2f; - color: #fff -} - -.chip.active { - color: #bb86fc; - background-color: rgba(187, 134, 252, .25) -} - -.chip .letter { - background-color: #424242 -} - -.chip.outlined, .chip.outlined:active, .chip.outlined:focus, .chip.outlined:hover { - background-color: transparent; - border: 1px solid #4c4c4ce9 -} - -/** Collapsible **/ -.collapsible { - border-top: 1px solid #2f2f2f; - border-right: 1px solid #2f2f2f; - border-left: 1px solid #2f2f2f -} - -.collapsible-header { - background-color: #2f2f2f; - border-bottom: 1px solid #2f2f2f -} - -.collapsible-header a { - color: #fff !important -} - -.collapsible-body { - background-color: #353535; - border-bottom: 1px solid #2f2f2f -} - -/** Collection **/ -.collection .collection-item, .collection.with-header .collection-header { - background-color: #2f2f2f; - border-bottom: 1px solid #353535 -} - -.collection { - border: 1px solid #2f2f2f -} - -.collection .collection-item a { - color: #fff !important -} - -.collection .collection-item.active { - background-color: #39353e; - color: #a87be0 -} - -/** Date Picker **/ -.picker__weekday-display { - background-color: #141414 -} - -.picker__box { - background-color: #2e3033; - border: 1px solid #1e1f22; - border-top-color: #141414 -} - -.picker__date-display { - background-color: #1e1f22 -} - -.picker__header { - color: rgba(255, 255, 255, .6) -} - -.picker--focused .picker__day--selected, .picker--focused .picker__day--selected.picker__day--outfocus, .picker__day--selected, .picker__day--selected.picker__day--outfocus, .picker__day--selected:hover, .picker__day--selected:hover.picker__day--outfocus, .picker__day.picker__day--today.picker__day--selected { - background-color: #bb86fc; - color: #000 -} - -.picker__day--infocus:hover:not(.picker__day--selected) { - color: rgba(166, 121, 222, .5) -} - -.picker__day.picker__day--today { - color: #b080ed -} - -.picker__nav--next:hover, .picker__nav--prev:hover { - background-color: #2e3033 -} - -.picker__select--year.browser-default { - background: #2e3033; - border: 1px solid #4f4f4f -} - -.picker__day--infocus { - color: #fff -} - -.picker__table .picker__day--outfocus { - color: #848484 -} - -.picker--focused .picker__day--disabled, .picker__day--disabled, .picker__day--disabled:hover { - background: #434549; - border-color: #4c4c4d; - color: #303030 !important; - cursor: default; - font-weight: 400; - border: 1px solid transparent -} - -/** Modal Dialog **/ -.modal, .modal .modal-footer { - background-color: #383838 -} - -/** Dropdown **/ -.dropdown-content { - background-color: #2f2f2f -} - -.dropdown-content a, .dropdown-content i, .dropdown-content span { - color: #fff !important -} - -.dropdown-content li.active, .dropdown-content li.selected, .dropdown-content li:hover { - background-color: #353535 -} - -.separator { - border-color: #292929 !important -} - -/** Footer **/ -footer.page-footer { - background-color: #2f2f2f -} - -footer.page-footer .footer-copyright { - background-color: #272727 -} - -/** Dropdown **/ -.dropdown-content li.active.selected { - background-color: #1e1e1e -} - -.select-wrapper input.select-dropdown:disabled { - border-bottom: 1px dotted rgba(255, 255, 255, .3); - color: #fff -} - -/** Selectbox **/ -select { - background-color: #292929 -} - -/** Loader **/ -.loader-wrapper { - background-color: rgba(0, 0, 0, .701961) -} - -.spinner-layer { - border-color: #bb86fc !important -} - -/** Media Slider **/ -.slider .indicators .indicator-item.active { - background-color: #bb86fc -} - -.slider .indicators .indicator-item { - background-color: #4e4e4e -} - -/** Progress **/ -.progress { - background-color: #4c3f5b -} - -.progress .determinate, .progress .indeterminate { - background-color: #bb86fc -} - -/** Radio **/ -[type=checkbox] + label, [type=radio]:checked + label, [type=radio]:not(:checked) + label { - color: rgba(255, 255, 255, .87) !important -} - -[type=radio].with-gap:checked + label:after, [type=radio]:checked + label:after { - border: 2px solid #bb86fc; - background-color: #bb86fc -} - -[type=radio].with-gap:checked + label:before { - border: 2px solid #bb86fc -} - -[type=radio]:disabled + label { - color: rgba(179, 179, 179, .26) !important -} - -[type=radio]:disabled:not(:checked) + label:before { - border-color: rgba(150, 150, 150, .26) -} - -/** Search **/ -.input-field input[type=search], .light.input-field.inline-search { - background-color: #2f2f2f -} - -.input-field input[type=search]:focus, .light.input-field.inline-search input[type=search]:focus { - background-color: #484848 -} - -.input-field input[type=search], .input-field input[type=search]:focus, .input-field.inline-search input, .search-result a span { - color: #fff -} - -.search-result a.higlighted, .search-result a:hover { - background-color: #353535 -} - -.search-result { - border-top: none; - background-color: #2f2f2f -} - -.search-result a { - border-bottom: 1px solid #373737 -} - -/** Range **/ -input[type=range] { - border: none -} - -input[type=range]::-webkit-slider-thumb { - background-color: #bb86fc -} - -input[type=range]::-webkit-slider-runnable-track, input[type=range]:focus::-webkit-slider-runnable-track { - background-color: #4c3f5b -} - -input[type=range] + .thumb { - background-color: #bb86fc -} - -input[type=range] + .thumb .value { - color: #000 !important -} - -.range-field .progress { - background-color: #bb86fc !important -} - -input[type=range]:hover::-webkit-slider-thumb { - -webkit-box-shadow: 0 0 0 8px rgba(187, 134, 252, .16) !important; - -moz-box-shadow: 0 0 0 8px rgba(187, 134, 252, .16) !important; - box-shadow: 0 0 0 8px rgba(187, 134, 252, .16) !important -} - -input[type=range]:focus::-webkit-slider-thumb { - -webkit-box-shadow: 0 0 0 12px rgba(187, 134, 252, .16) !important; - -moz-box-shadow: 0 0 0 12px rgba(187, 134, 252, .16) !important; - box-shadow: 0 0 0 12px rgba(187, 134, 252, .16) !important -} - -/** Switch **/ -.switch label input[type=checkbox]:checked + .lever { - background-color: #604c79 -} - -input[type=checkbox]:checked:not(:disabled) ~ .lever:active:after { - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, .4), 0 0 0 15px rgba(187, 134, 252, .1) -} - -.switch label input[type=checkbox]:checked + .lever:after { - background-color: #bb86fc -} - -.switch.disabled { - opacity: .4 -} - -/** Tabs **/ -.tabs { - background-color: #272727 -} - -.tabs .tab a { - color: #bb86fc -} - -.tabs .indicator { - background-color: #bb86fc -} - -.toast { - background-color: #e4e4e4; - color: #000 -} - -/** Toast **/ -.toast a { - color: #bb86fc -} - -/** Tooltip **/ -.material-tooltip { - color: #212121; - background-color: #aaa !important -} - -.material-tooltip .backdrop { - background-color: #aaa -} - -/** Table of Contents **/ -.table-of-contents a.active { - border-left: 2px solid #bb86fc !important -} - -.table-of-contents a:hover { - border-left: 1px solid #bb86fc !important -} - -.table-of-contents a { - color: rgba(255, 255, 255, .6) -} - -.table-of-contents a:hover { - color: #fff -} - -/** Input Fields (Global) **/ -.picker__input.picker__input--active, input:not([type]):focus:not([readonly]), input[type=date]:focus:not([readonly]), input[type=datetime-local]:focus:not([readonly]), input[type=email]:focus:not([readonly]), input[type=number]:focus:not([readonly]), input[type=password]:focus:not([readonly]), input[type=search]:focus:not([readonly]), input[type=tel]:focus:not([readonly]), input[type=text]:focus:not([readonly]), input[type=time]:focus:not([readonly]), input[type=url]:focus:not([readonly]), textarea.materialize-textarea:focus:not([readonly]) { - border-bottom: 1px solid #bb86fc; - box-shadow: 0 1px 0 0 #bb86fc -} - -input:not([type]):focus:not([readonly]) + label, input[type=date]:focus:not([readonly]) + label, input[type=datetime-local]:focus:not([readonly]) + label, input[type=email]:focus:not([readonly]) + label, input[type=number]:focus:not([readonly]) + label, input[type=password]:focus:not([readonly]) + label, input[type=search]:focus:not([readonly]) + label, input[type=tel]:focus:not([readonly]) + label, input[type=text]:focus:not([readonly]) + label, input[type=time]:focus:not([readonly]) + label, input[type=url]:focus:not([readonly]) + label, textarea.materialize-textarea:focus:not([readonly]) + label { - color: #bb86fc -} - -.input-field .prefix { - color: #000 !important -} - -input:not([type]):disabled, input:not([type])[readonly=readonly], input[type=date]:disabled, input[type=date][readonly=readonly], input[type=datetime-local]:disabled, input[type=datetime-local][readonly=readonly], input[type=email]:disabled, input[type=email][readonly=readonly], input[type=number]:disabled, input[type=number][readonly=readonly], input[type=password]:disabled, input[type=password][readonly=readonly], input[type=search]:disabled, input[type=search][readonly=readonly], input[type=tel]:disabled, input[type=tel][readonly=readonly], input[type=text]:disabled, input[type=text][readonly=readonly], input[type=time]:disabled, input[type=time][readonly=readonly], input[type=url]:disabled, input[type=url][readonly=readonly], textarea.materialize-textarea:disabled, textarea.materialize-textarea[readonly=readonly] { - color: #fff; - border-bottom: 1px dotted rgba(255, 255, 255, .26) -} - -.input-field.outlined input, .input-field.outlined input.select-dropdown, .input-field.outlined input.valid, .input-field.outlined textarea { - border: 1px solid #7b7b7b -} - -.input-field.outlined input.picker__input--active, .input-field.outlined input:focus, .input-field.outlined textarea:focus { - border: 2px solid #bb86fc; - box-shadow: none -} - -.input-field.outlined .select-wrapper + label, .input-field.outlined input:-webkit-autofill + label, .input-field.outlined label.active { - background-color: #292929 -} - -input:-webkit-autofill, input:-webkit-autofill:focus, input:-webkit-autofill:hover, select:-webkit-autofill, select:-webkit-autofill:focus, select:-webkit-autofill:hover, textarea:-webkit-autofill, textarea:-webkit-autofill:focus, textarea:-webkit-autofill:hover { - -webkit-text-fill-color: #fff -} - -.read-only input, .read-only textarea { - color: #fff !important -} - -.input-field.disabled label { - color: #9e9e9e !important -} - -.input-field.outlined input.valid, .input-field.outlined input.valid.picker__input--active, .input-field.outlined input.valid:focus, .input-field.outlined textarea.valid, .input-field.outlined textarea.valid:focus, .input-field.outlined.field-success input.select-dropdown { - border: 2px solid #4caf50; - box-shadow: none -} - -.input-field.filled input, .input-field.filled textarea { - background-color: #2f2f2f -} - -.input-field.filled input:focus, .input-field.filled textarea:focus { - background-color: #484848 -} - -.input-field.aligned-label label, .input-field.aligned-label label.active { - color: #9e9e9e -} - -blockquote { - border-left: 5px solid #bb86fc !important -} - -pre { - background: #323232 !important -} - -/** Autocomplete **/ -input:-webkit-autofill, -input:-webkit-autofill:hover, -input:-webkit-autofill:focus, -textarea:-webkit-autofill, -textarea:-webkit-autofill:hover, -textarea:-webkit-autofill:focus { - -webkit-text-fill-color: white; - -webkit-box-shadow: 0 0 0px 1000px #2f2f2f inset !important; - transition: background-color 5000s ease-in-out 0s; -} \ No newline at end of file diff --git a/gwt-material/src/main/resources/gwt/material/design/client/resources/css/core-dark.min.css b/gwt-material/src/main/resources/gwt/material/design/client/resources/css/core-dark.min.css deleted file mode 100644 index 0b56d873e..000000000 --- a/gwt-material/src/main/resources/gwt/material/design/client/resources/css/core-dark.min.css +++ /dev/null @@ -1 +0,0 @@ -body{background-color:#292929;color:#fff}a{color:#bb86fc}nav .brand-logo,nav a.button-collapse,nav a.button-collapse i,nav ul a{color:#fff!important}nav,nav .nav-wrapper{background-color:#272727!important}nav .nav-wrapper i,nav .nav-wrapper ul li i{color:#ffff!important}nav .nav-wrapper ul li:hover i{background-color:#1e1e1e!important}ul.side-nav i{color:rgba(255,255,255,.9)}ul.side-nav li.active i,ul.side-nav li:hover i{color:#b180ed}ul.side-nav{background-color:#2e2e2e}ul.side-nav li a span{color:rgba(255,255,255,.9)}ul.side-nav li.active,ul.side-nav li:hover{background-color:rgba(187,134,252,.08)}ul.side-nav li.active a span,ul.side-nav li:hover a span{color:#bb86fc}span.badge{background-color:#b180ed;color:#000!important}pre.hljs{border:1px solid #1e1e1e!important;background-color:#1e1e1e!important}pre.java:before,pre.xml:before{background-color:#2d2d2d!important}::-webkit-scrollbar{background-color:#1e1e1e!important;height:2px!important;width:8px!important}::-webkit-scrollbar-thumb{background-color:#464646!important;border-radius:4px!important}::-webkit-scrollbar-track{background-color:#2e2e2e!important}.card span.secondary-label,span.secondary-label{color:rgba(255,255,255,.6)}.card .card-content .card-title i,.card .card-reveal i{color:#fff}.card .card-reveal{background-color:#1e1e1e}.card{background-color:#1e1e1e;color:#fff}.card span{color:#fff}.card .card-action i,.card .card-action span{color:#bb86fc}.card .collection{border:none}.card .collection .collection-item{background-color:#2b2b2b}.card .collection .collection-item span{color:#fff}.btn,.btn-large,.btn-large:hover,.btn:hover,button:focus{background-color:#bb86fc;color:#000}button.btn-outlined,button.btn-outlined:active,button.btn-outlined:focus,button.btn-outlined:hover{background-color:transparent;border:1px solid #bb86fc;color:#bb86fc}button.btn.btn-outlined.disabled{color:rgba(187,134,252,.4)!important}.btn-floating.disabled,.btn-floating:disabled,.btn-large.disabled,.btn-large:disabled,.btn.disabled,.btn:disabled,.disabled.btn-large{background-color:#bb86fc!important;color:rgba(0,0,0,.7)!important;opacity:.4}.btn-floating.disabled i{color:rgba(0,0,0,.7)!important}.btn-flat{color:#bb86fc}.btn-flat.disabled{color:rgba(187,134,252,.3)!important;background-color:transparent!important}[type=checkbox].filled-in:checked+label:after{border:2px solid #bb86fc;background-color:#bb86fc}[type=checkbox].filled-in:checked+label:before{border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #000;border-bottom:2px solid #000}[type=checkbox]:checked+label:before{border-right:2px solid #bb86fc;border-bottom:2px solid #bb86fc}[type=checkbox]:indeterminate+label:before{border-right:2px solid #bb86fc}.chip{background-color:#2f2f2f;color:#fff}.chip.active{color:#bb86fc;background-color:rgba(187,134,252,.25)}.chip .letter{background-color:#424242}.chip.outlined,.chip.outlined:active,.chip.outlined:focus,.chip.outlined:hover{background-color:transparent;border:1px solid #4c4c4ce9}.collapsible{border-top:1px solid #2f2f2f;border-right:1px solid #2f2f2f;border-left:1px solid #2f2f2f}.collapsible-header{background-color:#2f2f2f;border-bottom:1px solid #2f2f2f}.collapsible-header a{color:#fff!important}.collapsible-body{background-color:#353535;border-bottom:1px solid #2f2f2f}.collection .collection-item,.collection.with-header .collection-header{background-color:#2f2f2f;border-bottom:1px solid #353535}.collection{border:1px solid #2f2f2f}.collection .collection-item a{color:#fff!important}.collection .collection-item.active{background-color:#39353e;color:#a87be0}.picker__weekday-display{background-color:#141414}.picker__box{background-color:#2e3033;border:1px solid #1e1f22;border-top-color:#141414}.picker__date-display{background-color:#1e1f22}.picker__header{color:rgba(255,255,255,.6)}.picker--focused .picker__day--selected,.picker--focused .picker__day--selected.picker__day--outfocus,.picker__day--selected,.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover,.picker__day--selected:hover.picker__day--outfocus,.picker__day.picker__day--today.picker__day--selected{background-color:#bb86fc;color:#000}.picker__day--infocus:hover:not(.picker__day--selected){color:rgba(166,121,222,.5)}.picker__day.picker__day--today{color:#b080ed}.picker__nav--next:hover,.picker__nav--prev:hover{background-color:#2e3033}.picker__select--year.browser-default{background:#2e3033;border:1px solid #4f4f4f}.picker__day--infocus{color:#fff}.picker__table .picker__day--outfocus{color:#848484}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#434549;border-color:#4c4c4d;color:#303030!important;cursor:default;font-weight:400;border:1px solid transparent}.modal,.modal .modal-footer{background-color:#383838}.dropdown-content{background-color:#2f2f2f}.dropdown-content a,.dropdown-content i,.dropdown-content span{color:#fff!important}.dropdown-content li.active,.dropdown-content li.selected,.dropdown-content li:hover{background-color:#353535}.separator{border-color:#292929!important}footer.page-footer{background-color:#2f2f2f}footer.page-footer .footer-copyright{background-color:#272727}.dropdown-content li.active.selected{background-color:#1e1e1e}.select-wrapper input.select-dropdown:disabled{border-bottom:1px dotted rgba(255,255,255,.3);color:#fff}select{background-color:#292929}.loader-wrapper{background-color:rgba(0,0,0,.701961)}.spinner-layer{border-color:#bb86fc!important}.slider .indicators .indicator-item.active{background-color:#bb86fc}.slider .indicators .indicator-item{background-color:#4e4e4e}.progress{background-color:#4c3f5b}.progress .determinate,.progress .indeterminate{background-color:#bb86fc}[type=checkbox]+label,[type=radio]:checked+label,[type=radio]:not(:checked)+label{color:rgba(255,255,255,.87)!important}[type=radio].with-gap:checked+label:after,[type=radio]:checked+label:after{border:2px solid #bb86fc;background-color:#bb86fc}[type=radio].with-gap:checked+label:before{border:2px solid #bb86fc}[type=radio]:disabled+label{color:rgba(179,179,179,.26)!important}[type=radio]:disabled:not(:checked)+label:before{border-color:rgba(150,150,150,.26)}.input-field input[type=search],.light.input-field.inline-search{background-color:#2f2f2f}.input-field input[type=search]:focus,.light.input-field.inline-search input[type=search]:focus{background-color:#484848}.input-field input[type=search],.input-field input[type=search]:focus,.input-field.inline-search input,.search-result a span{color:#fff}.search-result a.higlighted,.search-result a:hover{background-color:#353535}.search-result{border-top:none;background-color:#2f2f2f}.search-result a{border-bottom:1px solid #373737}input[type=range]{border:none}input[type=range]::-webkit-slider-thumb{background-color:#bb86fc}input[type=range]::-webkit-slider-runnable-track,input[type=range]:focus::-webkit-slider-runnable-track{background-color:#4c3f5b}input[type=range]+.thumb{background-color:#bb86fc}input[type=range]+.thumb .value{color:#000!important}.range-field .progress{background-color:#bb86fc!important}input[type=range]:hover::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 8px rgba(187,134,252,.16)!important;-moz-box-shadow:0 0 0 8px rgba(187,134,252,.16)!important;box-shadow:0 0 0 8px rgba(187,134,252,.16)!important}input[type=range]:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 12px rgba(187,134,252,.16)!important;-moz-box-shadow:0 0 0 12px rgba(187,134,252,.16)!important;box-shadow:0 0 0 12px rgba(187,134,252,.16)!important}.switch label input[type=checkbox]:checked+.lever{background-color:#604c79}input[type=checkbox]:checked:not(:disabled)~.lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(187,134,252,.1)}.switch label input[type=checkbox]:checked+.lever:after{background-color:#bb86fc}.switch.disabled{opacity:.4}.tabs{background-color:#272727}.tabs .tab a{color:#bb86fc}.tabs .indicator{background-color:#bb86fc}.toast{background-color:#e4e4e4;color:#000}.toast a{color:#bb86fc}.material-tooltip{color:#212121;background-color:#aaa!important}.material-tooltip .backdrop{background-color:#aaa}.table-of-contents a.active{border-left:2px solid #bb86fc!important}.table-of-contents a:hover{border-left:1px solid #bb86fc!important}.table-of-contents a{color:rgba(255,255,255,.6)}.table-of-contents a:hover{color:#fff}.picker__input.picker__input--active,input:not([type]):focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=search]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=text]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=url]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #bb86fc;box-shadow:0 1px 0 0 #bb86fc}input:not([type]):focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=text]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#bb86fc}.input-field .prefix{color:#000!important}input:not([type]):disabled,input:not([type])[readonly=readonly],input[type=date]:disabled,input[type=date][readonly=readonly],input[type=datetime-local]:disabled,input[type=datetime-local][readonly=readonly],input[type=email]:disabled,input[type=email][readonly=readonly],input[type=number]:disabled,input[type=number][readonly=readonly],input[type=password]:disabled,input[type=password][readonly=readonly],input[type=search]:disabled,input[type=search][readonly=readonly],input[type=tel]:disabled,input[type=tel][readonly=readonly],input[type=text]:disabled,input[type=text][readonly=readonly],input[type=time]:disabled,input[type=time][readonly=readonly],input[type=url]:disabled,input[type=url][readonly=readonly],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly=readonly]{color:#fff;border-bottom:1px dotted rgba(255,255,255,.26)}.input-field.outlined input,.input-field.outlined input.select-dropdown,.input-field.outlined input.valid,.input-field.outlined textarea{border:1px solid #7b7b7b}.input-field.outlined input.picker__input--active,.input-field.outlined input:focus,.input-field.outlined textarea:focus{border:2px solid #bb86fc;box-shadow:none}.input-field.outlined .select-wrapper+label,.input-field.outlined input:-webkit-autofill+label,.input-field.outlined label.active{background-color:#292929}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{-webkit-text-fill-color:#fff}.read-only input,.read-only textarea{color:#fff!important}.input-field.disabled label{color:#9e9e9e!important}.input-field.outlined input.valid,.input-field.outlined input.valid.picker__input--active,.input-field.outlined input.valid:focus,.input-field.outlined textarea.valid,.input-field.outlined textarea.valid:focus,.input-field.outlined.field-success input.select-dropdown{border:2px solid #4caf50;box-shadow:none}.input-field.filled input,.input-field.filled textarea{background-color:#2f2f2f}.input-field.filled input:focus,.input-field.filled textarea:focus{background-color:#484848}.input-field.aligned-label label,.input-field.aligned-label label.active{color:#9e9e9e}blockquote{border-left:5px solid #bb86fc!important}pre{background:#323232!important}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{-webkit-text-fill-color:#fff;-webkit-box-shadow:0 0 0 1000px #2f2f2f inset!important;transition:background-color 5000s ease-in-out 0s} \ No newline at end of file diff --git a/gwt-material/src/main/resources/gwt/material/design/client/resources/css/materialize.dark.css b/gwt-material/src/main/resources/gwt/material/design/client/resources/css/materialize.dark.css new file mode 100644 index 000000000..f603a0114 --- /dev/null +++ b/gwt-material/src/main/resources/gwt/material/design/client/resources/css/materialize.dark.css @@ -0,0 +1,625 @@ +/** + * Global + */ +body { + background-color: #292929; + color: #ffffff; } + +a { + color: #bb86fc; } + +/** +* NavBar +**/ +nav .brand-logo, +nav a.button-collapse, +nav a.button-collapse i, +nav ul a, +nav .nav-wrapper i, +nav .nav-wrapper ul li i { + color: #ffffff !important; } + +nav, nav .nav-wrapper { + background-color: #272727 !important; } + +nav .nav-wrapper ul li:hover i { + background-color: #1e1e1e !important; } + +/** +* Side Nav +**/ +ul.side-nav.fixed, +ul.side-nav.card, +ul.side-nav.drawer-with-header, +ul.side-nav.push-with-header, +ul.side-nav.mini, +ul.side-nav { + background-color: #2e2e2e; } + +ul.side-nav i, +ul.side-nav li a span { + color: rgba(255, 255, 255, 0.9); } + +ul.side-nav li.active i, +ul.side-nav li:hover i, +ul.side-nav li.active a span, +ul.side-nav li:hover a span { + color: #bb86fc; } + +ul.side-nav li.active, +ul.side-nav li:hover { + background-color: rgba(187, 134, 252, 0.1); } + +.side-nav li a.focus-visible { + background: #272727; } + +/** + * Badge + */ +span.badge { + background-color: #bb86fc; + color: #000000 !important; } + +/** + * Scroll bar + **/ +::-webkit-scrollbar { + background-color: #1e1e1e !important; + height: 2px !important; + width: 8px !important; } + +::-webkit-scrollbar-thumb { + background-color: #464646 !important; + border-radius: 4px !important; } + +::-webkit-scrollbar-track { + background-color: #2e2e2e !important; } + +/** + * Card + **/ +.card span.secondary-label, +span.secondary-label { + color: rgba(255, 255, 255, 0.6); } + +.card .card-content .card-title i, +.card .card-reveal i { + color: #ffffff; } + +.card .card-reveal { + background-color: #1e1e1e; } + +.card { + background-color: #1e1e1e; + color: #ffffff; } + +.card span { + color: #ffffff; } + +.card .card-action i, +.card .card-action span { + color: #bb86fc; } + +.card .collection { + border: none; } + +.card .collection .collection-item { + background-color: #2b2b2b; } + +.card .collection .collection-item span { + color: #ffffff; } + +/** + * Button + **/ +.btn, .btn-large, +.btn-large:hover, +.btn:hover, button:focus { + background-color: #bb86fc; + color: #000000; } + +button.btn-outlined, +button.btn-outlined:active, +button.btn-outlined:focus, +button.btn-outlined:hover { + background-color: transparent; + border: #bb86fc; + color: #bb86fc; } + +button.btn.btn-outlined.disabled { + color: rgba(187, 134, 252, 0.4) !important; } + +.btn-floating.disabled, +.btn-floating:disabled, +.btn-large.disabled, +.btn-large:disabled, +.btn.disabled, +.btn:disabled, +.disabled.btn-large { + background-color: #bb86fc !important; + color: rgba(0, 0, 0, 0.7) !important; + opacity: 0.4; } + +.btn-floating.disabled i { + color: rgba(0, 0, 0, 0.7) !important; } + +.btn-flat { + color: #bb86fc; } + +.btn-flat.disabled { + background-color: transparent !important; + color: rgba(187, 134, 252, 0.3) !important; } + +/** + * Checkbox + **/ +[type=checkbox].filled-in:checked + label:after { + border: 2px solid #bb86fc; + background-color: #bb86fc; } + +[type=checkbox].filled-in:checked + label:before { + border-top: 2px solid transparent; + border-left: 2px solid transparent; + border-right: 2px solid #000000; + border-bottom: 2px solid #000000; } + +[type=checkbox]:checked + label:before { + border-right: 2px solid #bb86fc; + border-bottom: 2px solid #bb86fc; } + +[type=checkbox]:indeterminate + label:before { + border-right: 2px solid #bb86fc; } + +/** + * CheckBox Focusable + **/ +.checkbox.gwt-CheckBox:after { + background: rgba(255, 255, 255, 0.1); } + +/** + * Chip + **/ +.chip { + background-color: #2f2f2f; + color: #fff; } + +.chip.focus-visible { + background-color: #232323; + color: #ffffff; } + +.chip.active { + background-color: rgba(187, 134, 252, 0.25); + color: #bb86fc; } + +.chip .letter { + background-color: #424242; } + +.chip.outlined, +.chip.outlined:active, +.chip.outlined:focus, +.chip.outlined:hover { + background-color: transparent; + border: 1px solid #4c4c4ce9; } + +/** + * Collapsible + **/ +.collapsible { + border-top: 1px solid #2f2f2f; + border-right: 1px solid #2f2f2f; + border-left: 1px solid #2f2f2f; } + +.collapsible-header { + background-color: #2f2f2f; + border-bottom: 1px solid #2f2f2f; } + +.collapsible-header a { + color: #ffffff !important; } + +.collapsible-body { + background-color: #353535; + border-bottom: 1px solid #2f2f2f; } + +/** + * Collapsible Focusable + **/ +.collapsible-header:hover, +.collapsible-header.focus-visible { + background-color: #353535; } + +/** + * Collection + **/ +.collection .collection-item, +.collection.with-header .collection-header { + background-color: #2f2f2f; + border-bottom: 1px solid #353535; } + +.collection { + border: 1px solid #2f2f2f; } + +.collection .collection-item a { + color: #ffffff !important; } + +.collection .collection-item.active { + background-color: rgba(187, 134, 252, 0.1); + color: #bb86fc; } + +/** + * Collection Focusable + **/ +/** + * Date Picker + **/ +.picker__weekday-display { + background-color: #141414; } + +.picker__box { + background-color: #2e3033; + border: 1px solid #1e1f22; + border-top-color: #141414; } + +.picker__date-display { + background-color: #1e1f22; } + +.picker__header { + color: rgba(255, 255, 255, 0.6); } + +.picker--focused .picker__day--selected, +.picker--focused .picker__day--selected.picker__day--outfocus, +.picker__day--selected, +.picker__day--selected.picker__day--outfocus, +.picker__day--selected:hover, +.picker__day--selected:hover.picker__day--outfocus, +.picker__day.picker__day--today.picker__day--selected { + background-color: #bb86fc; + color: #000; } + +.picker__day--infocus:hover:not(.picker__day--selected) { + color: rgba(187, 134, 252, 0.5); } + +.picker__day.picker__day--today { + color: #bb86fc; } + +.picker__nav--next:hover, +.picker__nav--prev:hover { + background-color: #2e3033; } + +.picker__select--year.browser-default { + background: #2e3033; + border: 1px solid #4f4f4f; } + +.picker__day--infocus { + color: #fff; } + +.picker__table .picker__day--outfocus { + color: #848484; } + +.picker--focused .picker__day--disabled, +.picker__day--disabled, +.picker__day--disabled:hover { + background: #434549; + color: #303030 !important; + cursor: default; + font-weight: 400; + border: 1px solid transparent; } + +/** + * Modal Dialog + **/ +.modal, +.modal .modal-footer { + background-color: #383838; } + +/** + * Dropdown + **/ +.dropdown-content { + background-color: #2f2f2f; } + +.dropdown-content a, +.dropdown-content i, +.dropdown-content span { + color: #ffffff !important; } + +.dropdown-content li.active, +.dropdown-content li.selected, +.dropdown-content li:hover { + background-color: #353535; } + +.separator { + border-color: #292929 !important; } + +.dropdown-content li.active.selected { + background-color: #1e1e1e; } + +/** + * Footer + **/ +footer.page-footer { + background-color: #2f2f2f; } + +footer.page-footer .footer-copyright { + background-color: #2f2f2f; } + +/** + * Selectbox + **/ +select { + background-color: #292929; } + +.select-wrapper input.select-dropdown:disabled { + border-bottom: 1px dotted rgba(255, 255, 255, 0.3); + color: #fff; } + +/** + * Loader + **/ +.loader-wrapper { + background-color: rgba(0, 0, 0, 0.701961); } + +.spinner-layer { + border-color: #bb86fc !important; } + +/** + * Media Slider + **/ +.slider .indicators .indicator-item.active { + background-color: #bb86fc; } + +.slider .indicators .indicator-item { + background-color: #4e4e4e; } + +/** + * Progress + **/ +.progress { + background-color: rgba(187, 134, 252, 0.3); } + +.progress .determinate, +.progress .indeterminate { + background-color: #bb86fc; } + +/** + * Radio + **/ +[type=checkbox] + label, +[type=radio]:checked + label, +[type=radio]:not(:checked) + label { + color: rgba(255, 255, 255, 0.87) !important; } + +[type=radio].with-gap:checked + label:after, +[type=radio]:checked + label:after { + border: 2px solid #bb86fc; + background-color: #bb86fc; } + +[type=radio].with-gap:checked + label:before { + border: 2px solid #bb86fc; } + +[type=radio]:disabled + label { + color: rgba(179, 179, 179, 0.26) !important; } + +[type=radio]:disabled:not(:checked) + label:before { + border-color: rgba(150, 150, 150, 0.26); } + +/** + * Radio Focusable + **/ +.gwt-RadioButton:not(.gwt-RadioButton-disabled).focus-visible label:before, +.gwt-RadioButton:not(.gwt-RadioButton-disabled):hover label:before { + -webkit-box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.1); } + +/** + * Search + **/ +.input-field input[type=search], +.light.input-field.inline-search { + background-color: #2f2f2f; } + +.input-field input[type=search]:focus, +.light.input-field.inline-search input[type=search]:focus { + background-color: #484848; } + +.input-field input[type=search], +.input-field input[type=search]:focus, +.input-field.inline-search input, +.search-result a span { + color: #ffffff; } + +.search-result a.higlighted, +.search-result a:hover { + background-color: #353535; } + +.search-result { + border-top: none; + background-color: #2f2f2f; } + +.search-result a { + border-bottom: 1px solid #373737; } + +/** + * Range + **/ +input[type=range] { + border: none; } + +input[type=range]::-webkit-slider-thumb { + background-color: #bb86fc; } + +input[type=range]::-webkit-slider-runnable-track, +input[type=range].focus-visible::-webkit-slider-runnable-track { + background-color: rgba(187, 134, 252, 0.35); } + +input[type=range] + .thumb { + background-color: #bb86fc; } + +input[type=range] + .thumb .value { + color: #000000 !important; } + +.range-field .progress { + background-color: #bb86fc !important; } + +input[type=range]:hover::-webkit-slider-thumb { + -webkit-box-shadow: 0 0 0 8px rgba(187, 134, 252, 0.16) !important; + -moz-box-shadow: 0 0 0 8px rgba(187, 134, 252, 0.16) !important; + box-shadow: 0 0 0 8px rgba(187, 134, 252, 0.16) !important; } + +input[type=range].focus-visible::-webkit-slider-thumb { + -webkit-box-shadow: 0 0 0 12px rgba(187, 134, 252, 0.16) !important; + -moz-box-shadow: 0 0 0 12px rgba(187, 134, 252, 0.16) !important; + box-shadow: 0 0 0 12px rgba(187, 134, 252, 0.16) !important; } + +/** + * Switch + **/ +.switch label input[type=checkbox]:checked + .lever { + background-color: rgba(187, 134, 252, 0.35); } + +input[type=checkbox]:checked:not(:disabled) ~ .lever:active:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(187, 134, 252, 0.1); } + +.switch label input[type=checkbox]:checked + .lever:after { + background-color: #bb86fc; } + +.switch.disabled { + opacity: 0.4; } + +/** + * Switch Focusable + **/ +.switch.focus-visible input[type=checkbox]:checked:not(:disabled) ~ .lever:after, +.switch:hover input[type=checkbox]:checked:not(:disabled) ~ .lever:after { + box-shadow: 0 1px 3px 1px rgba(255, 255, 255, 0.4), 0 0 0 15px rgba(187, 134, 252, 0.1); } + +.switch.focus-visible input[type=checkbox]:not(:disabled) ~ .lever:after { + box-shadow: 0 1px 3px 1px rgba(255, 255, 255, 0.4), 0 0 0 15px rgba(255, 255, 255, 0.08); } + +/** + * Tabs + **/ +.tabs { + background-color: #272727; } + +.tabs .tab a { + color: #bb86fc; } + +.tabs .indicator { + background-color: #bb86fc; } + +/** + * Toast + **/ +.toast { + background-color: #e4e4e4; + color: #000000; } + +.toast a { + color: #bb86fc; } + +/** + * Tooltip + **/ +.material-tooltip { + background-color: #aaaaaa !important; + color: #212121; } + +.material-tooltip .backdrop { + background-color: #aaaaaa; } + +/** + * Table of Contents + **/ +.table-of-contents a.active { + border-left: 2px solid #bb86fc !important; } + +.table-of-contents a:hover { + border-left: 1px solid #bb86fc !important; } + +.table-of-contents a { + color: rgba(255, 255, 255, 0.6); } + +.table-of-contents a:hover { + color: #fff; } + +/** + * Input Fields (Global) + **/ +.picker__input.picker__input--active, input:not([type]):focus:not([readonly]), input[type=date]:focus:not([readonly]), input[type=datetime-local]:focus:not([readonly]), input[type=email]:focus:not([readonly]), input[type=number]:focus:not([readonly]), input[type=password]:focus:not([readonly]), input[type=search]:focus:not([readonly]), input[type=tel]:focus:not([readonly]), input[type=text]:focus:not([readonly]), input[type=time]:focus:not([readonly]), input[type=url]:focus:not([readonly]), textarea.materialize-textarea:focus:not([readonly]) { + border-bottom: 1px solid #bb86fc; + box-shadow: 0 1px 0 0 #bb86fc; } + +input:not([type]):focus:not([readonly]) + label, input[type=date]:focus:not([readonly]) + label, input[type=datetime-local]:focus:not([readonly]) + label, input[type=email]:focus:not([readonly]) + label, input[type=number]:focus:not([readonly]) + label, input[type=password]:focus:not([readonly]) + label, input[type=search]:focus:not([readonly]) + label, input[type=tel]:focus:not([readonly]) + label, input[type=text]:focus:not([readonly]) + label, input[type=time]:focus:not([readonly]) + label, input[type=url]:focus:not([readonly]) + label, textarea.materialize-textarea:focus:not([readonly]) + label { + color: #bb86fc; } + +.input-field .prefix { + color: #000 !important; } + +input:not([type]):disabled, input:not([type])[readonly=readonly], input[type=date]:disabled, input[type=date][readonly=readonly], input[type=datetime-local]:disabled, input[type=datetime-local][readonly=readonly], input[type=email]:disabled, input[type=email][readonly=readonly], input[type=number]:disabled, input[type=number][readonly=readonly], input[type=password]:disabled, input[type=password][readonly=readonly], input[type=search]:disabled, input[type=search][readonly=readonly], input[type=tel]:disabled, input[type=tel][readonly=readonly], input[type=text]:disabled, input[type=text][readonly=readonly], input[type=time]:disabled, input[type=time][readonly=readonly], input[type=url]:disabled, input[type=url][readonly=readonly], textarea.materialize-textarea:disabled, textarea.materialize-textarea[readonly=readonly] { + color: #fff; + border-bottom: 1px dotted rgba(255, 255, 255, 0.26); } + +.input-field.outlined input, .input-field.outlined input.select-dropdown, .input-field.outlined input.valid, .input-field.outlined textarea { + border: 1px solid #7b7b7b; } + +.input-field.outlined input.picker__input--active, .input-field.outlined input:focus, .input-field.outlined textarea:focus { + border: 2px solid #bb86fc; + box-shadow: none; } + +.input-field.outlined .select-wrapper + label, .input-field.outlined input:-webkit-autofill + label, .input-field.outlined label.active { + background-color: #292929; } + +input:-webkit-autofill, input:-webkit-autofill:focus, input:-webkit-autofill:hover, select:-webkit-autofill, select:-webkit-autofill:focus, select:-webkit-autofill:hover, textarea:-webkit-autofill, textarea:-webkit-autofill:focus, textarea:-webkit-autofill:hover { + -webkit-text-fill-color: #fff; } + +.read-only input, .read-only textarea { + color: #fff !important; } + +.input-field.disabled label { + color: #9e9e9e !important; } + +.input-field.outlined input.valid, .input-field.outlined input.valid.picker__input--active, .input-field.outlined input.valid:focus, .input-field.outlined textarea.valid, .input-field.outlined textarea.valid:focus, .input-field.outlined.field-success input.select-dropdown { + border: 2px solid #4caf50; + box-shadow: none; } + +.input-field.filled input, .input-field.filled textarea { + background-color: #2f2f2f; } + +.input-field.filled input:focus, .input-field.filled textarea:focus { + background-color: #484848; } + +.input-field.aligned-label label, .input-field.aligned-label label.active { + color: #9e9e9e; } + +blockquote { + border-left: 5px solid #bb86fc !important; } + +pre { + background: #323232 !important; } + +/** + * Autocomplete + **/ +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus, +textarea:-webkit-autofill, +textarea:-webkit-autofill:hover, +textarea:-webkit-autofill:focus { + -webkit-text-fill-color: white; + -webkit-box-shadow: 0 0 0px 1000px #2f2f2f inset !important; + transition: background-color 5000s ease-in-out 0s; } + +.search-result a.focus-visible { + background-color: #353535; } + +/** + * Pre + **/ +pre.hljs { + border: 1px solid #1e1e1e !important; + background-color: #1e1e1e !important; } + +pre.java:before, +pre.xml:before { + background-color: #2d2d2d !important; } diff --git a/gwt-material/src/main/resources/gwt/material/design/client/resources/css/materialize.dark.min.css b/gwt-material/src/main/resources/gwt/material/design/client/resources/css/materialize.dark.min.css new file mode 100644 index 000000000..067664904 --- /dev/null +++ b/gwt-material/src/main/resources/gwt/material/design/client/resources/css/materialize.dark.min.css @@ -0,0 +1 @@ +body{background-color:#292929;color:#fff}a{color:#bb86fc}nav .brand-logo,nav a.button-collapse,nav a.button-collapse i,nav ul a,nav .nav-wrapper i,nav .nav-wrapper ul li i{color:#fff!important}nav,nav .nav-wrapper{background-color:#272727!important}nav .nav-wrapper ul li:hover i{background-color:#1e1e1e!important}ul.side-nav.fixed,ul.side-nav.card,ul.side-nav.drawer-with-header,ul.side-nav.push-with-header,ul.side-nav.mini,ul.side-nav{background-color:#2e2e2e}ul.side-nav i,ul.side-nav li a span{color:rgba(255,255,255,0.9)}ul.side-nav li.active i,ul.side-nav li:hover i,ul.side-nav li.active a span,ul.side-nav li:hover a span{color:#bb86fc}ul.side-nav li.active,ul.side-nav li:hover{background-color:rgba(187,134,252,0.1)}.side-nav li a.focus-visible{background:#272727}span.badge{background-color:#bb86fc;color:#000!important}::-webkit-scrollbar{background-color:#1e1e1e!important;height:2px!important;width:8px!important}::-webkit-scrollbar-thumb{background-color:#464646!important;border-radius:4px!important}::-webkit-scrollbar-track{background-color:#2e2e2e!important}.card span.secondary-label,span.secondary-label{color:rgba(255,255,255,0.6)}.card .card-content .card-title i,.card .card-reveal i{color:#fff}.card .card-reveal{background-color:#1e1e1e}.card{background-color:#1e1e1e;color:#fff}.card span{color:#fff}.card .card-action i,.card .card-action span{color:#bb86fc}.card .collection{border:0}.card .collection .collection-item{background-color:#2b2b2b}.card .collection .collection-item span{color:#fff}.btn,.btn-large,.btn-large:hover,.btn:hover,button:focus{background-color:#bb86fc;color:#000}button.btn-outlined,button.btn-outlined:active,button.btn-outlined:focus,button.btn-outlined:hover{background-color:transparent;border:#bb86fc;color:#bb86fc}button.btn.btn-outlined.disabled{color:rgba(187,134,252,0.4)!important}.btn-floating.disabled,.btn-floating:disabled,.btn-large.disabled,.btn-large:disabled,.btn.disabled,.btn:disabled,.disabled.btn-large{background-color:#bb86fc!important;color:rgba(0,0,0,0.7)!important;opacity:.4}.btn-floating.disabled i{color:rgba(0,0,0,0.7)!important}.btn-flat{color:#bb86fc}.btn-flat.disabled{background-color:transparent!important;color:rgba(187,134,252,0.3)!important}[type=checkbox].filled-in:checked+label:after{border:2px solid #bb86fc;background-color:#bb86fc}[type=checkbox].filled-in:checked+label:before{border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #000;border-bottom:2px solid #000}[type=checkbox]:checked+label:before{border-right:2px solid #bb86fc;border-bottom:2px solid #bb86fc}[type=checkbox]:indeterminate+label:before{border-right:2px solid #bb86fc}.checkbox.gwt-CheckBox:after{background:rgba(255,255,255,0.1)}.chip{background-color:#2f2f2f;color:#fff}.chip.focus-visible{background-color:#232323;color:#fff}.chip.active{background-color:rgba(187,134,252,0.25);color:#bb86fc}.chip .letter{background-color:#424242}.chip.outlined,.chip.outlined:active,.chip.outlined:focus,.chip.outlined:hover{background-color:transparent;border:1px solid #4c4c4ce9}.collapsible{border-top:1px solid #2f2f2f;border-right:1px solid #2f2f2f;border-left:1px solid #2f2f2f}.collapsible-header{background-color:#2f2f2f;border-bottom:1px solid #2f2f2f}.collapsible-header a{color:#fff!important}.collapsible-body{background-color:#353535;border-bottom:1px solid #2f2f2f}.collapsible-header:hover,.collapsible-header.focus-visible{background-color:#353535}.collection .collection-item,.collection.with-header .collection-header{background-color:#2f2f2f;border-bottom:1px solid #353535}.collection{border:1px solid #2f2f2f}.collection .collection-item a{color:#fff!important}.collection .collection-item.active{background-color:rgba(187,134,252,0.1);color:#bb86fc}.picker__weekday-display{background-color:#141414}.picker__box{background-color:#2e3033;border:1px solid #1e1f22;border-top-color:#141414}.picker__date-display{background-color:#1e1f22}.picker__header{color:rgba(255,255,255,0.6)}.picker--focused .picker__day--selected,.picker--focused .picker__day--selected.picker__day--outfocus,.picker__day--selected,.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover,.picker__day--selected:hover.picker__day--outfocus,.picker__day.picker__day--today.picker__day--selected{background-color:#bb86fc;color:#000}.picker__day--infocus:hover:not(.picker__day--selected){color:rgba(187,134,252,0.5)}.picker__day.picker__day--today{color:#bb86fc}.picker__nav--next:hover,.picker__nav--prev:hover{background-color:#2e3033}.picker__select--year.browser-default{background:#2e3033;border:1px solid #4f4f4f}.picker__day--infocus{color:#fff}.picker__table .picker__day--outfocus{color:#848484}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#434549;color:#303030!important;cursor:default;font-weight:400;border:1px solid transparent}.modal,.modal .modal-footer{background-color:#383838}.dropdown-content{background-color:#2f2f2f}.dropdown-content a,.dropdown-content i,.dropdown-content span{color:#fff!important}.dropdown-content li.active,.dropdown-content li.selected,.dropdown-content li:hover{background-color:#353535}.separator{border-color:#292929!important}.dropdown-content li.active.selected{background-color:#1e1e1e}footer.page-footer{background-color:#2f2f2f}footer.page-footer .footer-copyright{background-color:#2f2f2f}select{background-color:#292929}.select-wrapper input.select-dropdown:disabled{border-bottom:1px dotted rgba(255,255,255,0.3);color:#fff}.loader-wrapper{background-color:rgba(0,0,0,0.701961)}.spinner-layer{border-color:#bb86fc!important}.slider .indicators .indicator-item.active{background-color:#bb86fc}.slider .indicators .indicator-item{background-color:#4e4e4e}.progress{background-color:rgba(187,134,252,0.3)}.progress .determinate,.progress .indeterminate{background-color:#bb86fc}[type=checkbox]+label,[type=radio]:checked+label,[type=radio]:not(:checked)+label{color:rgba(255,255,255,0.87)!important}[type=radio].with-gap:checked+label:after,[type=radio]:checked+label:after{border:2px solid #bb86fc;background-color:#bb86fc}[type=radio].with-gap:checked+label:before{border:2px solid #bb86fc}[type=radio]:disabled+label{color:rgba(179,179,179,0.26)!important}[type=radio]:disabled:not(:checked)+label:before{border-color:rgba(150,150,150,0.26)}.gwt-RadioButton:not(.gwt-RadioButton-disabled).focus-visible label:before,.gwt-RadioButton:not(.gwt-RadioButton-disabled):hover label:before{-webkit-box-shadow:0 0 0 8px rgba(255,255,255,0.1);box-shadow:0 0 0 8px rgba(255,255,255,0.1)}.input-field input[type=search],.light.input-field.inline-search{background-color:#2f2f2f}.input-field input[type=search]:focus,.light.input-field.inline-search input[type=search]:focus{background-color:#484848}.input-field input[type=search],.input-field input[type=search]:focus,.input-field.inline-search input,.search-result a span{color:#fff}.search-result a.higlighted,.search-result a:hover{background-color:#353535}.search-result{border-top:0;background-color:#2f2f2f}.search-result a{border-bottom:1px solid #373737}input[type=range]{border:0}input[type=range]::-webkit-slider-thumb{background-color:#bb86fc}input[type=range]::-webkit-slider-runnable-track,input[type=range].focus-visible::-webkit-slider-runnable-track{background-color:rgba(187,134,252,0.35)}input[type=range]+.thumb{background-color:#bb86fc}input[type=range]+.thumb .value{color:#000!important}.range-field .progress{background-color:#bb86fc!important}input[type=range]:hover::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 8px rgba(187,134,252,0.16)!important;-moz-box-shadow:0 0 0 8px rgba(187,134,252,0.16)!important;box-shadow:0 0 0 8px rgba(187,134,252,0.16)!important}input[type=range].focus-visible::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 12px rgba(187,134,252,0.16)!important;-moz-box-shadow:0 0 0 12px rgba(187,134,252,0.16)!important;box-shadow:0 0 0 12px rgba(187,134,252,0.16)!important}.switch label input[type=checkbox]:checked+.lever{background-color:rgba(187,134,252,0.35)}input[type=checkbox]:checked:not(:disabled) ~ .lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(187,134,252,0.1)}.switch label input[type=checkbox]:checked+.lever:after{background-color:#bb86fc}.switch.disabled{opacity:.4}.switch.focus-visible input[type=checkbox]:checked:not(:disabled) ~ .lever:after,.switch:hover input[type=checkbox]:checked:not(:disabled) ~ .lever:after{box-shadow:0 1px 3px 1px rgba(255,255,255,0.4),0 0 0 15px rgba(187,134,252,0.1)}.switch.focus-visible input[type=checkbox]:not(:disabled) ~ .lever:after{box-shadow:0 1px 3px 1px rgba(255,255,255,0.4),0 0 0 15px rgba(255,255,255,0.08)}.tabs{background-color:#272727}.tabs .tab a{color:#bb86fc}.tabs .indicator{background-color:#bb86fc}.toast{background-color:#e4e4e4;color:#000}.toast a{color:#bb86fc}.material-tooltip{background-color:#aaa!important;color:#212121}.material-tooltip .backdrop{background-color:#aaa}.table-of-contents a.active{border-left:2px solid #bb86fc!important}.table-of-contents a:hover{border-left:1px solid #bb86fc!important}.table-of-contents a{color:rgba(255,255,255,0.6)}.table-of-contents a:hover{color:#fff}.picker__input.picker__input--active,input:not([type]):focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=search]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=text]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=url]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #bb86fc;box-shadow:0 1px 0 0 #bb86fc}input:not([type]):focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=text]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#bb86fc}.input-field .prefix{color:#000!important}input:not([type]):disabled,input:not([type])[readonly=readonly],input[type=date]:disabled,input[type=date][readonly=readonly],input[type=datetime-local]:disabled,input[type=datetime-local][readonly=readonly],input[type=email]:disabled,input[type=email][readonly=readonly],input[type=number]:disabled,input[type=number][readonly=readonly],input[type=password]:disabled,input[type=password][readonly=readonly],input[type=search]:disabled,input[type=search][readonly=readonly],input[type=tel]:disabled,input[type=tel][readonly=readonly],input[type=text]:disabled,input[type=text][readonly=readonly],input[type=time]:disabled,input[type=time][readonly=readonly],input[type=url]:disabled,input[type=url][readonly=readonly],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly=readonly]{color:#fff;border-bottom:1px dotted rgba(255,255,255,0.26)}.input-field.outlined input,.input-field.outlined input.select-dropdown,.input-field.outlined input.valid,.input-field.outlined textarea{border:1px solid #7b7b7b}.input-field.outlined input.picker__input--active,.input-field.outlined input:focus,.input-field.outlined textarea:focus{border:2px solid #bb86fc;box-shadow:none}.input-field.outlined .select-wrapper+label,.input-field.outlined input:-webkit-autofill+label,.input-field.outlined label.active{background-color:#292929}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{-webkit-text-fill-color:#fff}.read-only input,.read-only textarea{color:#fff!important}.input-field.disabled label{color:#9e9e9e!important}.input-field.outlined input.valid,.input-field.outlined input.valid.picker__input--active,.input-field.outlined input.valid:focus,.input-field.outlined textarea.valid,.input-field.outlined textarea.valid:focus,.input-field.outlined.field-success input.select-dropdown{border:2px solid #4caf50;box-shadow:none}.input-field.filled input,.input-field.filled textarea{background-color:#2f2f2f}.input-field.filled input:focus,.input-field.filled textarea:focus{background-color:#484848}.input-field.aligned-label label,.input-field.aligned-label label.active{color:#9e9e9e}blockquote{border-left:5px solid #bb86fc!important}pre{background:#323232!important}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus{-webkit-text-fill-color:white;-webkit-box-shadow:0 0 0 1000px #2f2f2f inset!important;transition:background-color 5000s ease-in-out 0s}.search-result a.focus-visible{background-color:#353535}pre.hljs{border:1px solid #1e1e1e!important;background-color:#1e1e1e!important}pre.java:before,pre.xml:before{background-color:#2d2d2d!important} \ No newline at end of file diff --git a/gwt-material/src/main/resources/gwt/material/design/client/resources/js/clipboard.js b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/clipboard.js new file mode 100644 index 000000000..0240e3f73 --- /dev/null +++ b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/clipboard.js @@ -0,0 +1,973 @@ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["ClipboardJS"] = factory(); + else + root["ClipboardJS"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 6); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +function select(element) { + var selectedText; + + if (element.nodeName === 'SELECT') { + element.focus(); + + selectedText = element.value; + } + else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') { + var isReadOnly = element.hasAttribute('readonly'); + + if (!isReadOnly) { + element.setAttribute('readonly', ''); + } + + element.select(); + element.setSelectionRange(0, element.value.length); + + if (!isReadOnly) { + element.removeAttribute('readonly'); + } + + selectedText = element.value; + } + else { + if (element.hasAttribute('contenteditable')) { + element.focus(); + } + + var selection = window.getSelection(); + var range = document.createRange(); + + range.selectNodeContents(element); + selection.removeAllRanges(); + selection.addRange(range); + + selectedText = selection.toString(); + } + + return selectedText; +} + +module.exports = select; + + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + +function E () { + // Keep this empty so it's easier to inherit from + // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3) +} + +E.prototype = { + on: function (name, callback, ctx) { + var e = this.e || (this.e = {}); + + (e[name] || (e[name] = [])).push({ + fn: callback, + ctx: ctx + }); + + return this; + }, + + once: function (name, callback, ctx) { + var self = this; + function listener () { + self.off(name, listener); + callback.apply(ctx, arguments); + }; + + listener._ = callback + return this.on(name, listener, ctx); + }, + + emit: function (name) { + var data = [].slice.call(arguments, 1); + var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); + var i = 0; + var len = evtArr.length; + + for (i; i < len; i++) { + evtArr[i].fn.apply(evtArr[i].ctx, data); + } + + return this; + }, + + off: function (name, callback) { + var e = this.e || (this.e = {}); + var evts = e[name]; + var liveEvents = []; + + if (evts && callback) { + for (var i = 0, len = evts.length; i < len; i++) { + if (evts[i].fn !== callback && evts[i].fn._ !== callback) + liveEvents.push(evts[i]); + } + } + + // Remove event from queue to prevent memory leak + // Suggested by https://github.com/lazd + // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910 + + (liveEvents.length) + ? e[name] = liveEvents + : delete e[name]; + + return this; + } +}; + +module.exports = E; +module.exports.TinyEmitter = E; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +var is = __webpack_require__(3); +var delegate = __webpack_require__(4); + +/** + * Validates all params and calls the right + * listener function based on its target type. + * + * @param {String|HTMLElement|HTMLCollection|NodeList} target + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listen(target, type, callback) { + if (!target && !type && !callback) { + throw new Error('Missing required arguments'); + } + + if (!is.string(type)) { + throw new TypeError('Second argument must be a String'); + } + + if (!is.fn(callback)) { + throw new TypeError('Third argument must be a Function'); + } + + if (is.node(target)) { + return listenNode(target, type, callback); + } + else if (is.nodeList(target)) { + return listenNodeList(target, type, callback); + } + else if (is.string(target)) { + return listenSelector(target, type, callback); + } + else { + throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList'); + } +} + +/** + * Adds an event listener to a HTML element + * and returns a remove listener function. + * + * @param {HTMLElement} node + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listenNode(node, type, callback) { + node.addEventListener(type, callback); + + return { + destroy: function() { + node.removeEventListener(type, callback); + } + } +} + +/** + * Add an event listener to a list of HTML elements + * and returns a remove listener function. + * + * @param {NodeList|HTMLCollection} nodeList + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listenNodeList(nodeList, type, callback) { + Array.prototype.forEach.call(nodeList, function(node) { + node.addEventListener(type, callback); + }); + + return { + destroy: function() { + Array.prototype.forEach.call(nodeList, function(node) { + node.removeEventListener(type, callback); + }); + } + } +} + +/** + * Add an event listener to a selector + * and returns a remove listener function. + * + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listenSelector(selector, type, callback) { + return delegate(document.body, selector, type, callback); +} + +module.exports = listen; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + +/** + * Check if argument is a HTML element. + * + * @param {Object} value + * @return {Boolean} + */ +exports.node = function(value) { + return value !== undefined + && value instanceof HTMLElement + && value.nodeType === 1; +}; + +/** + * Check if argument is a list of HTML elements. + * + * @param {Object} value + * @return {Boolean} + */ +exports.nodeList = function(value) { + var type = Object.prototype.toString.call(value); + + return value !== undefined + && (type === '[object NodeList]' || type === '[object HTMLCollection]') + && ('length' in value) + && (value.length === 0 || exports.node(value[0])); +}; + +/** + * Check if argument is a string. + * + * @param {Object} value + * @return {Boolean} + */ +exports.string = function(value) { + return typeof value === 'string' + || value instanceof String; +}; + +/** + * Check if argument is a function. + * + * @param {Object} value + * @return {Boolean} + */ +exports.fn = function(value) { + var type = Object.prototype.toString.call(value); + + return type === '[object Function]'; +}; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +var closest = __webpack_require__(5); + +/** + * Delegates event to a selector. + * + * @param {Element} element + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @param {Boolean} useCapture + * @return {Object} + */ +function _delegate(element, selector, type, callback, useCapture) { + var listenerFn = listener.apply(this, arguments); + + element.addEventListener(type, listenerFn, useCapture); + + return { + destroy: function() { + element.removeEventListener(type, listenerFn, useCapture); + } + } +} + +/** + * Delegates event to a selector. + * + * @param {Element|String|Array} [elements] + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @param {Boolean} useCapture + * @return {Object} + */ +function delegate(elements, selector, type, callback, useCapture) { + // Handle the regular Element usage + if (typeof elements.addEventListener === 'function') { + return _delegate.apply(null, arguments); + } + + // Handle Element-less usage, it defaults to global delegation + if (typeof type === 'function') { + // Use `document` as the first parameter, then apply arguments + // This is a short way to .unshift `arguments` without running into deoptimizations + return _delegate.bind(null, document).apply(null, arguments); + } + + // Handle Selector-based usage + if (typeof elements === 'string') { + elements = document.querySelectorAll(elements); + } + + // Handle Array-like based usage + return Array.prototype.map.call(elements, function (element) { + return _delegate(element, selector, type, callback, useCapture); + }); +} + +/** + * Finds closest match and invokes callback. + * + * @param {Element} element + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @return {Function} + */ +function listener(element, selector, type, callback) { + return function(e) { + e.delegateTarget = closest(e.target, selector); + + if (e.delegateTarget) { + callback.call(element, e); + } + } +} + +module.exports = delegate; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + +var DOCUMENT_NODE_TYPE = 9; + +/** + * A polyfill for Element.matches() + */ +if (typeof Element !== 'undefined' && !Element.prototype.matches) { + var proto = Element.prototype; + + proto.matches = proto.matchesSelector || + proto.mozMatchesSelector || + proto.msMatchesSelector || + proto.oMatchesSelector || + proto.webkitMatchesSelector; +} + +/** + * Finds the closest parent that matches a selector. + * + * @param {Element} element + * @param {String} selector + * @return {Function} + */ +function closest (element, selector) { + while (element && element.nodeType !== DOCUMENT_NODE_TYPE) { + if (typeof element.matches === 'function' && + element.matches(selector)) { + return element; + } + element = element.parentNode; + } +} + +module.exports = closest; + + +/***/ }), +/* 6 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +// EXTERNAL MODULE: ./node_modules/select/src/select.js +var src_select = __webpack_require__(0); +var select_default = /*#__PURE__*/__webpack_require__.n(src_select); + +// CONCATENATED MODULE: ./src/clipboard-action.js +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + + +/** + * Inner class which performs selection from either `text` or `target` + * properties and then executes copy or cut operations. + */ + +var clipboard_action_ClipboardAction = function () { + /** + * @param {Object} options + */ + function ClipboardAction(options) { + _classCallCheck(this, ClipboardAction); + + this.resolveOptions(options); + this.initSelection(); + } + + /** + * Defines base properties passed from constructor. + * @param {Object} options + */ + + + _createClass(ClipboardAction, [{ + key: 'resolveOptions', + value: function resolveOptions() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this.action = options.action; + this.container = options.container; + this.emitter = options.emitter; + this.target = options.target; + this.text = options.text; + this.trigger = options.trigger; + + this.selectedText = ''; + } + + /** + * Decides which selection strategy is going to be applied based + * on the existence of `text` and `target` properties. + */ + + }, { + key: 'initSelection', + value: function initSelection() { + if (this.text) { + this.selectFake(); + } else if (this.target) { + this.selectTarget(); + } + } + + /** + * Creates a fake textarea element, sets its value from `text` property, + * and makes a selection on it. + */ + + }, { + key: 'selectFake', + value: function selectFake() { + var _this = this; + + var isRTL = document.documentElement.getAttribute('dir') == 'rtl'; + + this.removeFake(); + + this.fakeHandlerCallback = function () { + return _this.removeFake(); + }; + this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true; + + this.fakeElem = document.createElement('textarea'); + // Prevent zooming on iOS + this.fakeElem.style.fontSize = '12pt'; + // Reset box model + this.fakeElem.style.border = '0'; + this.fakeElem.style.padding = '0'; + this.fakeElem.style.margin = '0'; + // Move element out of screen horizontally + this.fakeElem.style.position = 'absolute'; + this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; + // Move element to the same position vertically + var yPosition = window.pageYOffset || document.documentElement.scrollTop; + this.fakeElem.style.top = yPosition + 'px'; + + this.fakeElem.setAttribute('readonly', ''); + this.fakeElem.value = this.text; + + this.container.appendChild(this.fakeElem); + + this.selectedText = select_default()(this.fakeElem); + this.copyText(); + } + + /** + * Only removes the fake element after another click event, that way + * a user can hit `Ctrl+C` to copy because selection still exists. + */ + + }, { + key: 'removeFake', + value: function removeFake() { + if (this.fakeHandler) { + this.container.removeEventListener('click', this.fakeHandlerCallback); + this.fakeHandler = null; + this.fakeHandlerCallback = null; + } + + if (this.fakeElem) { + this.container.removeChild(this.fakeElem); + this.fakeElem = null; + } + } + + /** + * Selects the content from element passed on `target` property. + */ + + }, { + key: 'selectTarget', + value: function selectTarget() { + this.selectedText = select_default()(this.target); + this.copyText(); + } + + /** + * Executes the copy operation based on the current selection. + */ + + }, { + key: 'copyText', + value: function copyText() { + var succeeded = void 0; + + try { + succeeded = document.execCommand(this.action); + } catch (err) { + succeeded = false; + } + + this.handleResult(succeeded); + } + + /** + * Fires an event based on the copy operation result. + * @param {Boolean} succeeded + */ + + }, { + key: 'handleResult', + value: function handleResult(succeeded) { + this.emitter.emit(succeeded ? 'success' : 'error', { + action: this.action, + text: this.selectedText, + trigger: this.trigger, + clearSelection: this.clearSelection.bind(this) + }); + } + + /** + * Moves focus away from `target` and back to the trigger, removes current selection. + */ + + }, { + key: 'clearSelection', + value: function clearSelection() { + if (this.trigger) { + this.trigger.focus(); + } + document.activeElement.blur(); + window.getSelection().removeAllRanges(); + } + + /** + * Sets the `action` to be performed which can be either 'copy' or 'cut'. + * @param {String} action + */ + + }, { + key: 'destroy', + + + /** + * Destroy lifecycle. + */ + value: function destroy() { + this.removeFake(); + } + }, { + key: 'action', + set: function set() { + var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy'; + + this._action = action; + + if (this._action !== 'copy' && this._action !== 'cut') { + throw new Error('Invalid "action" value, use either "copy" or "cut"'); + } + } + + /** + * Gets the `action` property. + * @return {String} + */ + , + get: function get() { + return this._action; + } + + /** + * Sets the `target` property using an element + * that will be have its content copied. + * @param {Element} target + */ + + }, { + key: 'target', + set: function set(target) { + if (target !== undefined) { + if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) { + if (this.action === 'copy' && target.hasAttribute('disabled')) { + throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); + } + + if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) { + throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); + } + + this._target = target; + } else { + throw new Error('Invalid "target" value, use a valid Element'); + } + } + } + + /** + * Gets the `target` property. + * @return {String|HTMLElement} + */ + , + get: function get() { + return this._target; + } + }]); + + return ClipboardAction; +}(); + +/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction); +// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js +var tiny_emitter = __webpack_require__(1); +var tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter); + +// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js +var listen = __webpack_require__(2); +var listen_default = /*#__PURE__*/__webpack_require__.n(listen); + +// CONCATENATED MODULE: ./src/clipboard.js +var clipboard_typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var clipboard_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 clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +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; } + + + + + +/** + * Base class which takes one or more elements, adds event listeners to them, + * and instantiates a new `ClipboardAction` on each click. + */ + +var clipboard_Clipboard = function (_Emitter) { + _inherits(Clipboard, _Emitter); + + /** + * @param {String|HTMLElement|HTMLCollection|NodeList} trigger + * @param {Object} options + */ + function Clipboard(trigger, options) { + clipboard_classCallCheck(this, Clipboard); + + var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this)); + + _this.resolveOptions(options); + _this.listenClick(trigger); + return _this; + } + + /** + * Defines if attributes would be resolved using internal setter functions + * or custom functions that were passed in the constructor. + * @param {Object} options + */ + + + clipboard_createClass(Clipboard, [{ + key: 'resolveOptions', + value: function resolveOptions() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this.action = typeof options.action === 'function' ? options.action : this.defaultAction; + this.target = typeof options.target === 'function' ? options.target : this.defaultTarget; + this.text = typeof options.text === 'function' ? options.text : this.defaultText; + this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body; + } + + /** + * Adds a click event listener to the passed trigger. + * @param {String|HTMLElement|HTMLCollection|NodeList} trigger + */ + + }, { + key: 'listenClick', + value: function listenClick(trigger) { + var _this2 = this; + + this.listener = listen_default()(trigger, 'click', function (e) { + return _this2.onClick(e); + }); + } + + /** + * Defines a new `ClipboardAction` on each click event. + * @param {Event} e + */ + + }, { + key: 'onClick', + value: function onClick(e) { + var trigger = e.delegateTarget || e.currentTarget; + + if (this.clipboardAction) { + this.clipboardAction = null; + } + + this.clipboardAction = new clipboard_action({ + action: this.action(trigger), + target: this.target(trigger), + text: this.text(trigger), + container: this.container, + trigger: trigger, + emitter: this + }); + } + + /** + * Default `action` lookup function. + * @param {Element} trigger + */ + + }, { + key: 'defaultAction', + value: function defaultAction(trigger) { + return getAttributeValue('action', trigger); + } + + /** + * Default `target` lookup function. + * @param {Element} trigger + */ + + }, { + key: 'defaultTarget', + value: function defaultTarget(trigger) { + var selector = getAttributeValue('target', trigger); + + if (selector) { + return document.querySelector(selector); + } + } + + /** + * Returns the support of the given action, or all actions if no action is + * given. + * @param {String} [action] + */ + + }, { + key: 'defaultText', + + + /** + * Default `text` lookup function. + * @param {Element} trigger + */ + value: function defaultText(trigger) { + return getAttributeValue('text', trigger); + } + + /** + * Destroy lifecycle. + */ + + }, { + key: 'destroy', + value: function destroy() { + this.listener.destroy(); + + if (this.clipboardAction) { + this.clipboardAction.destroy(); + this.clipboardAction = null; + } + } + }], [{ + key: 'isSupported', + value: function isSupported() { + var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut']; + + var actions = typeof action === 'string' ? [action] : action; + var support = !!document.queryCommandSupported; + + actions.forEach(function (action) { + support = support && !!document.queryCommandSupported(action); + }); + + return support; + } + }]); + + return Clipboard; +}(tiny_emitter_default.a); + +/** + * Helper function to retrieve attribute value. + * @param {String} suffix + * @param {Element} element + */ + + +function getAttributeValue(suffix, element) { + var attribute = 'data-clipboard-' + suffix; + + if (!element.hasAttribute(attribute)) { + return; + } + + return element.getAttribute(attribute); +} + +/* harmony default export */ var clipboard = __webpack_exports__["default"] = (clipboard_Clipboard); + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/gwt-material/src/main/resources/gwt/material/design/client/resources/js/clipboard.min.js b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/clipboard.min.js new file mode 100644 index 000000000..28650f3cc --- /dev/null +++ b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return o={},r.m=n=[function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o whenever the + // window blurs, even if you're tabbing out of the page. ¯\_(ツ)_/¯ + if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') { + return; + } + + hadKeyboardEvent = false; + removeInitialPointerMoveListeners(); + } + + // For some kinds of state, we are interested in changes at the global scope + // only. For example, global pointer input, global key presses and global + // visibility change should affect the state at every scope: + document.addEventListener('keydown', onKeyDown, true); + document.addEventListener('mousedown', onPointerDown, true); + document.addEventListener('pointerdown', onPointerDown, true); + document.addEventListener('touchstart', onPointerDown, true); + document.addEventListener('visibilitychange', onVisibilityChange, true); + + addInitialPointerMoveListeners(); + + // For focus and blur, we specifically care about state changes in the local + // scope. This is because focus / blur events that originate from within a + // shadow root are not re-dispatched from the host element if it was already + // the active element in its own scope: + scope.addEventListener('focus', onFocus, true); + scope.addEventListener('blur', onBlur, true); + + // We detect that a node is a ShadowRoot by ensuring that it is a + // DocumentFragment and also has a host property. This check covers native + // implementation and polyfill implementation transparently. If we only cared + // about the native implementation, we could just check if the scope was + // an instance of a ShadowRoot. + if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) { + // Since a ShadowRoot is a special kind of DocumentFragment, it does not + // have a root element to add a class to. So, we add this attribute to the + // host element instead: + scope.host.setAttribute('data-js-focus-visible', ''); + } else if (scope.nodeType === Node.DOCUMENT_NODE) { + document.documentElement.classList.add('js-focus-visible'); + document.documentElement.setAttribute('data-js-focus-visible', ''); + } + } + + // It is important to wrap all references to global window and document in + // these checks to support server-side rendering use cases + // @see https://github.com/WICG/focus-visible/issues/199 + if (typeof window !== 'undefined' && typeof document !== 'undefined') { + // Make the polyfill helper globally available. This can be used as a signal + // to interested libraries that wish to coordinate with the polyfill for e.g., + // applying the polyfill to a shadow root: + window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill; + + // Notify interested libraries of the polyfill's presence, in case the + // polyfill was loaded lazily: + var event; + + try { + event = new CustomEvent('focus-visible-polyfill-ready'); + } catch (error) { + // IE11 does not support using CustomEvent as a constructor directly: + event = document.createEvent('CustomEvent'); + event.initCustomEvent('focus-visible-polyfill-ready', false, false, {}); + } + + window.dispatchEvent(event); + } + + if (typeof document !== 'undefined') { + // Apply the polyfill to the global document, so that no JavaScript + // coordination is required to use the polyfill in the top-level document: + applyFocusVisiblePolyfill(document); + } + +}))); \ No newline at end of file diff --git a/gwt-material/src/main/resources/gwt/material/design/client/resources/js/focus-visible.min.js b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/focus-visible.min.js new file mode 100644 index 000000000..4b1c9f1dd --- /dev/null +++ b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/focus-visible.min.js @@ -0,0 +1,312 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory() : + typeof define === 'function' && define.amd ? define(factory) : + (factory()); +}(this, (function () { 'use strict'; + + /** + * Applies the :focus-visible polyfill at the given scope. + * A scope in this case is either the top-level Document or a Shadow Root. + * + * @param {(Document|ShadowRoot)} scope + * @see https://github.com/WICG/focus-visible + */ + function applyFocusVisiblePolyfill(scope) { + var hadKeyboardEvent = true; + var hadFocusVisibleRecently = false; + var hadFocusVisibleRecentlyTimeout = null; + + var inputTypesWhitelist = { + text: true, + search: true, + url: true, + tel: true, + email: true, + password: true, + number: true, + date: true, + month: true, + week: true, + time: true, + datetime: true, + 'datetime-local': true + }; + + /** + * Helper function for legacy browsers and iframes which sometimes focus + * elements like document, body, and non-interactive SVG. + * @param {Element} el + */ + function isValidFocusTarget(el) { + if ( + el && + el !== document && + el.nodeName !== 'HTML' && + el.nodeName !== 'BODY' && + 'classList' in el && + 'contains' in el.classList + ) { + return true; + } + return false; + } + + /** + * Computes whether the given element should automatically trigger the + * `focus-visible` class being added, i.e. whether it should always match + * `:focus-visible` when focused. + * @param {Element} el + * @return {boolean} + */ + function focusTriggersKeyboardModality(el) { + var type = el.type; + var tagName = el.tagName; + + if (tagName === 'INPUT' && inputTypesWhitelist[type] && !el.readOnly) { + return true; + } + + if (tagName === 'TEXTAREA' && !el.readOnly) { + return true; + } + + if (el.isContentEditable) { + return true; + } + + return false; + } + + /** + * Add the `focus-visible` class to the given element if it was not added by + * the author. + * @param {Element} el + */ + function addFocusVisibleClass(el) { + if (el.classList.contains('focus-visible')) { + return; + } + el.classList.add('focus-visible'); + el.setAttribute('data-focus-visible-added', ''); + } + + /** + * Remove the `focus-visible` class from the given element if it was not + * originally added by the author. + * @param {Element} el + */ + function removeFocusVisibleClass(el) { + if (!el.hasAttribute('data-focus-visible-added')) { + return; + } + el.classList.remove('focus-visible'); + el.removeAttribute('data-focus-visible-added'); + } + + /** + * If the most recent user interaction was via the keyboard; + * and the key press did not include a meta, alt/option, or control key; + * then the modality is keyboard. Otherwise, the modality is not keyboard. + * Apply `focus-visible` to any current active element and keep track + * of our keyboard modality state with `hadKeyboardEvent`. + * @param {KeyboardEvent} e + */ + function onKeyDown(e) { + if (e.metaKey || e.altKey || e.ctrlKey) { + return; + } + + if (isValidFocusTarget(scope.activeElement)) { + addFocusVisibleClass(scope.activeElement); + } + + hadKeyboardEvent = true; + } + + /** + * If at any point a user clicks with a pointing device, ensure that we change + * the modality away from keyboard. + * This avoids the situation where a user presses a key on an already focused + * element, and then clicks on a different element, focusing it with a + * pointing device, while we still think we're in keyboard modality. + * @param {Event} e + */ + function onPointerDown(e) { + hadKeyboardEvent = false; + } + + /** + * On `focus`, add the `focus-visible` class to the target if: + * - the target received focus as a result of keyboard navigation, or + * - the event target is an element that will likely require interaction + * via the keyboard (e.g. a text box) + * @param {Event} e + */ + function onFocus(e) { + // Prevent IE from focusing the document or HTML element. + if (!isValidFocusTarget(e.target)) { + return; + } + + if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) { + addFocusVisibleClass(e.target); + } + } + + /** + * On `blur`, remove the `focus-visible` class from the target. + * @param {Event} e + */ + function onBlur(e) { + if (!isValidFocusTarget(e.target)) { + return; + } + + if ( + e.target.classList.contains('focus-visible') || + e.target.hasAttribute('data-focus-visible-added') + ) { + // To detect a tab/window switch, we look for a blur event followed + // rapidly by a visibility change. + // If we don't see a visibility change within 100ms, it's probably a + // regular focus change. + hadFocusVisibleRecently = true; + window.clearTimeout(hadFocusVisibleRecentlyTimeout); + hadFocusVisibleRecentlyTimeout = window.setTimeout(function() { + hadFocusVisibleRecently = false; + }, 100); + removeFocusVisibleClass(e.target); + } + } + + /** + * If the user changes tabs, keep track of whether or not the previously + * focused element had .focus-visible. + * @param {Event} e + */ + function onVisibilityChange(e) { + if (document.visibilityState === 'hidden') { + // If the tab becomes active again, the browser will handle calling focus + // on the element (Safari actually calls it twice). + // If this tab change caused a blur on an element with focus-visible, + // re-apply the class when the user switches back to the tab. + if (hadFocusVisibleRecently) { + hadKeyboardEvent = true; + } + addInitialPointerMoveListeners(); + } + } + + /** + * Add a group of listeners to detect usage of any pointing devices. + * These listeners will be added when the polyfill first loads, and anytime + * the window is blurred, so that they are active when the window regains + * focus. + */ + function addInitialPointerMoveListeners() { + document.addEventListener('mousemove', onInitialPointerMove); + document.addEventListener('mousedown', onInitialPointerMove); + document.addEventListener('mouseup', onInitialPointerMove); + document.addEventListener('pointermove', onInitialPointerMove); + document.addEventListener('pointerdown', onInitialPointerMove); + document.addEventListener('pointerup', onInitialPointerMove); + document.addEventListener('touchmove', onInitialPointerMove); + document.addEventListener('touchstart', onInitialPointerMove); + document.addEventListener('touchend', onInitialPointerMove); + } + + function removeInitialPointerMoveListeners() { + document.removeEventListener('mousemove', onInitialPointerMove); + document.removeEventListener('mousedown', onInitialPointerMove); + document.removeEventListener('mouseup', onInitialPointerMove); + document.removeEventListener('pointermove', onInitialPointerMove); + document.removeEventListener('pointerdown', onInitialPointerMove); + document.removeEventListener('pointerup', onInitialPointerMove); + document.removeEventListener('touchmove', onInitialPointerMove); + document.removeEventListener('touchstart', onInitialPointerMove); + document.removeEventListener('touchend', onInitialPointerMove); + } + + /** + * When the polfyill first loads, assume the user is in keyboard modality. + * If any event is received from a pointing device (e.g. mouse, pointer, + * touch), turn off keyboard modality. + * This accounts for situations where focus enters the page from the URL bar. + * @param {Event} e + */ + function onInitialPointerMove(e) { + // Work around a Safari quirk that fires a mousemove on whenever the + // window blurs, even if you're tabbing out of the page. ¯\_(ツ)_/¯ + if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') { + return; + } + + hadKeyboardEvent = false; + removeInitialPointerMoveListeners(); + } + + // For some kinds of state, we are interested in changes at the global scope + // only. For example, global pointer input, global key presses and global + // visibility change should affect the state at every scope: + document.addEventListener('keydown', onKeyDown, true); + document.addEventListener('mousedown', onPointerDown, true); + document.addEventListener('pointerdown', onPointerDown, true); + document.addEventListener('touchstart', onPointerDown, true); + document.addEventListener('visibilitychange', onVisibilityChange, true); + + addInitialPointerMoveListeners(); + + // For focus and blur, we specifically care about state changes in the local + // scope. This is because focus / blur events that originate from within a + // shadow root are not re-dispatched from the host element if it was already + // the active element in its own scope: + scope.addEventListener('focus', onFocus, true); + scope.addEventListener('blur', onBlur, true); + + // We detect that a node is a ShadowRoot by ensuring that it is a + // DocumentFragment and also has a host property. This check covers native + // implementation and polyfill implementation transparently. If we only cared + // about the native implementation, we could just check if the scope was + // an instance of a ShadowRoot. + if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) { + // Since a ShadowRoot is a special kind of DocumentFragment, it does not + // have a root element to add a class to. So, we add this attribute to the + // host element instead: + scope.host.setAttribute('data-js-focus-visible', ''); + } else if (scope.nodeType === Node.DOCUMENT_NODE) { + document.documentElement.classList.add('js-focus-visible'); + document.documentElement.setAttribute('data-js-focus-visible', ''); + } + } + + // It is important to wrap all references to global window and document in + // these checks to support server-side rendering use cases + // @see https://github.com/WICG/focus-visible/issues/199 + if (typeof window !== 'undefined' && typeof document !== 'undefined') { + // Make the polyfill helper globally available. This can be used as a signal + // to interested libraries that wish to coordinate with the polyfill for e.g., + // applying the polyfill to a shadow root: + window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill; + + // Notify interested libraries of the polyfill's presence, in case the + // polyfill was loaded lazily: + var event; + + try { + event = new CustomEvent('focus-visible-polyfill-ready'); + } catch (error) { + // IE11 does not support using CustomEvent as a constructor directly: + event = document.createEvent('CustomEvent'); + event.initCustomEvent('focus-visible-polyfill-ready', false, false, {}); + } + + window.dispatchEvent(event); + } + + if (typeof document !== 'undefined') { + // Apply the polyfill to the global document, so that no JavaScript + // coordination is required to use the polyfill in the top-level document: + applyFocusVisiblePolyfill(document); + } + +}))); \ No newline at end of file diff --git a/gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.js b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.js index 9d4ce427b..8b11175a1 100644 --- a/gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.js +++ b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.js @@ -3778,7 +3778,7 @@ $(document).ready(function(){ }); }; - // Horizontal staggered list + // Horizontal show staggered list Materialize.showStaggeredList = function(selector) { var time = 0; $(selector).find('li').velocity( @@ -3793,6 +3793,21 @@ $(document).ready(function(){ }); }; + // Horizontal hide staggered list + Materialize.hideStaggeredList = function(selector) { + var time = 0; + $(selector).find('li').velocity( + { translateX: "0px"}, + { duration: 0 }); + + $(selector).find('li').each(function() { + $(this).velocity( + { opacity: "0", translateX: "-100px"}, + { duration: 800, delay: time, easing: [60, 10] }); + time += 120; + }); + }; + $(document).ready(function() { // Hardcoded .staggered-list scrollFire diff --git a/gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.min.js b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.min.js index d53df6da2..a47b86f2a 100644 --- a/gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.min.js +++ b/gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.min.js @@ -1 +1 @@ -var jQuery,Vel;void 0===jQuery&&(jQuery="function"==typeof require?$=require("jQuery"):$);jQuery.easing.jswing=jQuery.easing.swing,jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(t,e,i,n,a){return jQuery.easing[jQuery.easing.def](t,e,i,n,a)},easeInQuad:function(t,e,i,n,a){return n*(e/=a)*e+i},easeOutQuad:function(t,e,i,n,a){return-n*(e/=a)*(e-2)+i},easeInOutQuad:function(t,e,i,n,a){return(e/=a/2)<1?n/2*e*e+i:-n/2*(--e*(e-2)-1)+i},easeInCubic:function(t,e,i,n,a){return n*(e/=a)*e*e+i},easeOutCubic:function(t,e,i,n,a){return n*((e=e/a-1)*e*e+1)+i},easeInOutCubic:function(t,e,i,n,a){return(e/=a/2)<1?n/2*e*e*e+i:n/2*((e-=2)*e*e+2)+i},easeInQuart:function(t,e,i,n,a){return n*(e/=a)*e*e*e+i},easeOutQuart:function(t,e,i,n,a){return-n*((e=e/a-1)*e*e*e-1)+i},easeInOutQuart:function(t,e,i,n,a){return(e/=a/2)<1?n/2*e*e*e*e+i:-n/2*((e-=2)*e*e*e-2)+i},easeInQuint:function(t,e,i,n,a){return n*(e/=a)*e*e*e*e+i},easeOutQuint:function(t,e,i,n,a){return n*((e=e/a-1)*e*e*e*e+1)+i},easeInOutQuint:function(t,e,i,n,a){return(e/=a/2)<1?n/2*e*e*e*e*e+i:n/2*((e-=2)*e*e*e*e+2)+i},easeInSine:function(t,e,i,n,a){return-n*Math.cos(e/a*(Math.PI/2))+n+i},easeOutSine:function(t,e,i,n,a){return n*Math.sin(e/a*(Math.PI/2))+i},easeInOutSine:function(t,e,i,n,a){return-n/2*(Math.cos(Math.PI*e/a)-1)+i},easeInExpo:function(t,e,i,n,a){return 0==e?i:n*Math.pow(2,10*(e/a-1))+i},easeOutExpo:function(t,e,i,n,a){return e==a?i+n:n*(1-Math.pow(2,-10*e/a))+i},easeInOutExpo:function(t,e,i,n,a){return 0==e?i:e==a?i+n:(e/=a/2)<1?n/2*Math.pow(2,10*(e-1))+i:n/2*(2-Math.pow(2,-10*--e))+i},easeInCirc:function(t,e,i,n,a){return-n*(Math.sqrt(1-(e/=a)*e)-1)+i},easeOutCirc:function(t,e,i,n,a){return n*Math.sqrt(1-(e=e/a-1)*e)+i},easeInOutCirc:function(t,e,i,n,a){return(e/=a/2)<1?-n/2*(Math.sqrt(1-e*e)-1)+i:n/2*(Math.sqrt(1-(e-=2)*e)+1)+i},easeInElastic:function(t,e,i,n,a){var o=1.70158,r=0,s=n;if(0==e)return i;if(1==(e/=a))return i+n;if(r||(r=.3*a),s0&&e-1 in t))}if(!t.jQuery){var i=function(t,e){return new i.fn.init(t,e)};i.isWindow=function(t){return null!=t&&t==t.window},i.type=function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?a[r.call(t)]||"object":typeof t},i.isArray=Array.isArray||function(t){return"array"===i.type(t)},i.isPlainObject=function(t){var e;if(!t||"object"!==i.type(t)||t.nodeType||i.isWindow(t))return!1;try{if(t.constructor&&!o.call(t,"constructor")&&!o.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}for(e in t);return void 0===e||o.call(t,e)},i.each=function(t,i,n){var a=0,o=t.length,r=e(t);if(n){if(r)for(;o>a&&!1!==i.apply(t[a],n);a++);else for(a in t)if(!1===i.apply(t[a],n))break}else if(r)for(;o>a&&!1!==i.call(t[a],a,t[a]);a++);else for(a in t)if(!1===i.call(t[a],a,t[a]))break;return t},i.data=function(t,e,a){if(void 0===a){var o=(r=t[i.expando])&&n[r];if(void 0===e)return o;if(o&&e in o)return o[e]}else if(void 0!==e){var r=t[i.expando]||(t[i.expando]=++i.uuid);return n[r]=n[r]||{},n[r][e]=a,a}},i.removeData=function(t,e){var a=t[i.expando],o=a&&n[a];o&&i.each(e,function(t,e){delete o[e]})},i.extend=function(){var t,e,n,a,o,r,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[l]||{},l++),"object"!=typeof s&&"function"!==i.type(s)&&(s={}),l===u&&(s=this,l--);u>l;l++)if(null!=(o=arguments[l]))for(a in o)t=s[a],s!==(n=o[a])&&(c&&n&&(i.isPlainObject(n)||(e=i.isArray(n)))?(e?(e=!1,r=t&&i.isArray(t)?t:[]):r=t&&i.isPlainObject(t)?t:{},s[a]=i.extend(c,r,n)):void 0!==n&&(s[a]=n));return s},i.queue=function(t,n,a){if(t){n=(n||"fx")+"queue";var o=i.data(t,n);return a?(!o||i.isArray(a)?o=i.data(t,n,function(t,i){var n=i||[];return null!=t&&(e(Object(t))?function(t,e){for(var i=+e.length,n=0,a=t.length;i>n;)t[a++]=e[n++];if(i!=i)for(;void 0!==e[n];)t[a++]=e[n++];t.length=a}(n,"string"==typeof t?[t]:t):[].push.call(n,t)),n}(a)):o.push(a),o):o||[]}},i.dequeue=function(t,e){i.each(t.nodeType?[t]:t,function(t,n){e=e||"fx";var a=i.queue(n,e),o=a.shift();"inprogress"===o&&(o=a.shift()),o&&("fx"===e&&a.unshift("inprogress"),o.call(n,function(){i.dequeue(n,e)}))})},i.fn=i.prototype={init:function(t){if(t.nodeType)return this[0]=t,this;throw new Error("Not a DOM node.")},offset:function(){var e=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:e.top+(t.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:e.left+(t.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function t(){for(var t=this.offsetParent||document;t&&"html"===!t.nodeType.toLowerCase&&"static"===t.style.position;)t=t.offsetParent;return t||document}var e=this[0],t=t.apply(e),n=this.offset(),a=/^(?:body|html)$/i.test(t.nodeName)?{top:0,left:0}:i(t).offset();return n.top-=parseFloat(e.style.marginTop)||0,n.left-=parseFloat(e.style.marginLeft)||0,t.style&&(a.top+=parseFloat(t.style.borderTopWidth)||0,a.left+=parseFloat(t.style.borderLeftWidth)||0),{top:n.top-a.top,left:n.left-a.left}}};var n={};i.expando="velocity"+(new Date).getTime(),i.uuid=0;for(var a={},o=a.hasOwnProperty,r=a.toString,s="Boolean Number String Function Array Date RegExp Object Error".split(" "),l=0;la;++a){var o=u(i,t,n);if(0===o)return i;i-=(l(i,t,n)-e)/o}return i}function d(e,i,a){var o,r,s=0;do{(o=l(r=i+(a-i)/2,t,n)-e)>0?a=r:i=r}while(Math.abs(o)>v&&++se;++e)x[e]=l(e*y,t,n)}()}var f=4,h=.001,v=1e-7,g=10,m=11,y=1/(m-1),b="Float32Array"in e;if(4!==arguments.length)return!1;for(var w=0;4>w;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;t=Math.min(t,1),n=Math.min(n,1),t=Math.max(t,0),n=Math.max(n,0);var x=b?new Float32Array(m):new Array(m),C=!1,k=function(e){return C||p(),t===i&&n===a?e:0===e?0:1===e?1:l(function(e){for(var i=0,a=1,o=m-1;a!=o&&x[a]<=e;++a)i+=y;var r=i+(e-x[--a])/(x[a+1]-x[a])*y,s=u(r,t,n);return s>=h?c(e,r):0==s?r:d(e,i,i+y)}(e),i,a)};k.getControlPoints=function(){return[{x:t,y:i},{x:n,y:a}]};var T="generateBezier("+[t,i,n,a]+")";return k.toString=function(){return T},k}function s(t,e){var i=t;return f.isString(t)?m.Easings[t]||(i=!1):i=f.isArray(t)&&1===t.length?function(t){return function(e){return Math.round(e*t)*(1/t)}}.apply(null,t):f.isArray(t)&&2===t.length?y.apply(null,t.concat([e])):!(!f.isArray(t)||4!==t.length)&&r.apply(null,t),!1===i&&(i=m.Easings[m.defaults.easing]?m.defaults.easing:g),i}function l(t){if(t){var e=(new Date).getTime(),i=m.State.calls.length;i>1e4&&(m.State.calls=function(t){for(var e=-1,i=t?t.length:0,n=[];++ea;a++)if(m.State.calls[a]){var r=m.State.calls[a],s=r[0],d=r[2],p=r[3],h=!!p,v=null;p||(p=m.State.calls[a][3]=e-16);for(var g=Math.min((e-p)/d.duration,1),y=0,w=s.length;w>y;y++){var C=s[y],k=C.element;if(o(k)){var T=!1;if(d.display!==n&&null!==d.display&&"none"!==d.display){if("flex"===d.display){c.each(["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"],function(t,e){b.setPropertyValue(k,"display",e)})}b.setPropertyValue(k,"display",d.display)}for(var S in d.visibility!==n&&"hidden"!==d.visibility&&b.setPropertyValue(k,"visibility",d.visibility),C)if("element"!==S){var O,P=C[S],E=f.isString(P.easing)?m.Easings[P.easing]:P.easing;if(1===g)O=P.endValue;else{var A=P.endValue-P.startValue;if(O=P.startValue+A*E(g,d,A),!h&&O===P.currentValue)continue}if(P.currentValue=O,"tween"===S)v=O;else{if(b.Hooks.registered[S]){var q=b.Hooks.getRoot(S),M=o(k).rootPropertyValueCache[q];M&&(P.rootPropertyValue=M)}var _=b.setPropertyValue(k,S,P.currentValue+(0===parseFloat(O)?"":P.unitType),P.rootPropertyValue,P.scrollData);b.Hooks.registered[S]&&(o(k).rootPropertyValueCache[q]=b.Normalizations.registered[q]?b.Normalizations.registered[q]("extract",null,_[1]):_[1]),"transform"===_[0]&&(T=!0)}}d.mobileHA&&o(k).transformCache.translate3d===n&&(o(k).transformCache.translate3d="(0px, 0px, 0px)",T=!0),T&&b.flushTransformCache(k)}}d.display!==n&&"none"!==d.display&&(m.State.calls[a][2].display=!1),d.visibility!==n&&"hidden"!==d.visibility&&(m.State.calls[a][2].visibility=!1),d.progress&&d.progress.call(r[1],r[1],g,Math.max(0,p+d.duration-e),p,v),1===g&&u(a)}}m.State.isTicking&&x(l)}function u(t,e){if(!m.State.calls[t])return!1;for(var i=m.State.calls[t][0],a=m.State.calls[t][1],r=m.State.calls[t][2],s=m.State.calls[t][4],l=!1,u=0,d=i.length;d>u;u++){var p=i[u].element;if(e||r.loop||("none"===r.display&&b.setPropertyValue(p,"display",r.display),"hidden"===r.visibility&&b.setPropertyValue(p,"visibility",r.visibility)),!0!==r.loop&&(c.queue(p)[1]===n||!/\.velocityQueueEntryFlag/i.test(c.queue(p)[1]))&&o(p)){o(p).isAnimating=!1,o(p).rootPropertyValueCache={};var f=!1;c.each(b.Lists.transforms3D,function(t,e){var i=/^scale/.test(e)?1:0,a=o(p).transformCache[e];o(p).transformCache[e]!==n&&new RegExp("^\\("+i+"[^.]").test(a)&&(f=!0,delete o(p).transformCache[e])}),r.mobileHA&&(f=!0,delete o(p).transformCache.translate3d),f&&b.flushTransformCache(p),b.Values.removeClass(p,"velocity-animating")}if(!e&&r.complete&&!r.loop&&u===d-1)try{r.complete.call(a,a)}catch(t){setTimeout(function(){throw t},1)}s&&!0!==r.loop&&s(a),o(p)&&!0===r.loop&&!e&&(c.each(o(p).tweensContainer,function(t,e){/^rotate/.test(t)&&360===parseFloat(e.endValue)&&(e.endValue=0,e.startValue=360),/^backgroundPosition/.test(t)&&100===parseFloat(e.endValue)&&"%"===e.unitType&&(e.endValue=0,e.startValue=100)}),m(p,"reverse",{loop:!0,delay:r.delay})),!1!==r.queue&&c.dequeue(p,r.queue)}m.State.calls[t]=!1;for(var h=0,v=m.State.calls.length;v>h;h++)if(!1!==m.State.calls[h]){l=!0;break}!1===l&&(m.State.isTicking=!1,delete m.State.calls,m.State.calls=[])}var c,d=function(){if(i.documentMode)return i.documentMode;for(var t=7;t>4;t--){var e=i.createElement("div");if(e.innerHTML="\x3c!--[if IE "+t+"]>0)},isWrapped:function(t){return t&&(t.jquery||e.Zepto&&e.Zepto.zepto.isZ(t))},isSVG:function(t){return e.SVGElement&&t instanceof e.SVGElement},isEmptyObject:function(t){for(var e in t)return!1;return!0}},h=!1;if(t.fn&&t.fn.jquery?(c=t,h=!0):c=e.Velocity.Utilities,8>=d&&!h)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(!(7>=d)){var v=400,g="swing",m={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:e.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:i.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:c,Redirects:{},Easings:{},Promise:e.Promise,defaults:{queue:"",duration:v,easing:g,begin:n,complete:n,progress:n,display:n,visibility:n,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(t){c.data(t,"velocity",{isSVG:f.isSVG(t),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};e.pageYOffset!==n?(m.State.scrollAnchor=e,m.State.scrollPropertyLeft="pageXOffset",m.State.scrollPropertyTop="pageYOffset"):(m.State.scrollAnchor=i.documentElement||i.body.parentNode||i.body,m.State.scrollPropertyLeft="scrollLeft",m.State.scrollPropertyTop="scrollTop");var y=function(){function t(t){return-t.tension*t.x-t.friction*t.v}function e(e,i,n){var a={x:e.x+n.dx*i,v:e.v+n.dv*i,tension:e.tension,friction:e.friction};return{dx:a.v,dv:t(a)}}function i(i,n){var a={dx:i.v,dv:t(i)},o=e(i,.5*n,a),r=e(i,.5*n,o),s=e(i,n,r),l=1/6*(a.dx+2*(o.dx+r.dx)+s.dx),u=1/6*(a.dv+2*(o.dv+r.dv)+s.dv);return i.x=i.x+l*n,i.v=i.v+u*n,i}return function t(e,n,a){var o,r,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0;for(e=parseFloat(e)||500,n=parseFloat(n)||20,a=a||null,l.tension=e,l.friction=n,(o=null!==a)?r=(c=t(e,n))/a*.016:r=.016;s=i(s||l,r),u.push(1+s.x),c+=16,Math.abs(s.x)>1e-4&&Math.abs(s.v)>1e-4;);return o?function(t){return u[t*(u.length-1)|0]}:c}}();m.Easings={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},spring:function(t){return 1-Math.cos(4.5*t*Math.PI)*Math.exp(6*-t)}},c.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(t,e){m.Easings[e[0]]=r.apply(null,e[1])});var b=m.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var t=0;t=d)switch(t){case"name":return"filter";case"extract":var n=i.toString().match(/alpha\(opacity=(.*)\)/i);return n?n[1]/100:1;case"inject":return e.style.zoom=1,parseFloat(i)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(i),10)+")"}else switch(t){case"name":return"opacity";case"extract":case"inject":return i}}},register:function(){9>=d||m.State.isGingerbread||(b.Lists.transformsBase=b.Lists.transformsBase.concat(b.Lists.transforms3D));for(var t=0;ta&&(a=1),r=!/(\d)$/i.test(a);break;case"skew":r=!/(deg|\d)$/i.test(a);break;case"rotate":r=!/(deg|\d)$/i.test(a)}return r||(o(i).transformCache[e]="("+a+")"),o(i).transformCache[e]}}}();for(t=0;t=d||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=d?4===a.split(" ").length&&(a=a.split(/\s+/).slice(0,3).join(" ")):3===a.split(" ").length&&(a+=" 1"),(8>=d?"rgb":"rgba")+"("+a.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(t){return t.replace(/-(\w)/g,function(t,e){return e.toUpperCase()})},SVGAttribute:function(t){var e="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(d||m.State.isAndroid&&!m.State.isChrome)&&(e+="|transform"),new RegExp("^("+e+")$","i").test(t)},prefixCheck:function(t){if(m.State.prefixMatches[t])return[m.State.prefixMatches[t],!0];for(var e=["","Webkit","Moz","ms","O"],i=0,n=e.length;n>i;i++){var a;if(a=0===i?t:e[i]+t.replace(/^\w/,function(t){return t.toUpperCase()}),f.isString(m.State.prefixElement.style[a]))return m.State.prefixMatches[t]=a,[a,!0]}return[t,!1]}},Values:{hexToRgb:function(t){var e;return t=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(t,e,i,n){return e+e+i+i+n+n}),(e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t))?[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]:[0,0,0]},isCSSNullValue:function(t){return 0==t||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(t)},getUnitType:function(t){return/^(rotate|skew)/i.test(t)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(t)?"":"px"},getDisplayType:function(t){var e=t&&t.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(e)?"inline":/^(li)$/i.test(e)?"list-item":/^(tr)$/i.test(e)?"table-row":/^(table)$/i.test(e)?"table":/^(tbody)$/i.test(e)?"table-row-group":"block"},addClass:function(t,e){t.classList?t.classList.add(e):t.className+=(t.className.length?" ":"")+e},removeClass:function(t,e){t.classList?t.classList.remove(e):t.className=t.className.toString().replace(new RegExp("(^|\\s)"+e.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(t,i,a,r){function s(t,i){function a(){p&&b.setPropertyValue(t,"display","none")}var l=0;if(8>=d)l=c.css(t,i);else{var u,p=!1;if(/^(width|height)$/.test(i)&&0===b.getPropertyValue(t,"display")&&(p=!0,b.setPropertyValue(t,"display",b.Values.getDisplayType(t))),!r){if("height"===i&&"border-box"!==b.getPropertyValue(t,"boxSizing").toString().toLowerCase()){var f=t.offsetHeight-(parseFloat(b.getPropertyValue(t,"borderTopWidth"))||0)-(parseFloat(b.getPropertyValue(t,"borderBottomWidth"))||0)-(parseFloat(b.getPropertyValue(t,"paddingTop"))||0)-(parseFloat(b.getPropertyValue(t,"paddingBottom"))||0);return a(),f}if("width"===i&&"border-box"!==b.getPropertyValue(t,"boxSizing").toString().toLowerCase()){var h=t.offsetWidth-(parseFloat(b.getPropertyValue(t,"borderLeftWidth"))||0)-(parseFloat(b.getPropertyValue(t,"borderRightWidth"))||0)-(parseFloat(b.getPropertyValue(t,"paddingLeft"))||0)-(parseFloat(b.getPropertyValue(t,"paddingRight"))||0);return a(),h}}u=o(t)===n?e.getComputedStyle(t,null):o(t).computedStyle?o(t).computedStyle:o(t).computedStyle=e.getComputedStyle(t,null),"borderColor"===i&&(i="borderTopColor"),(""===(l=9===d&&"filter"===i?u.getPropertyValue(i):u[i])||null===l)&&(l=t.style[i]),a()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(i)){var v=s(t,"position");("fixed"===v||"absolute"===v&&/top|left/i.test(i))&&(l=c(t).position()[i]+"px")}return l}var l;if(b.Hooks.registered[i]){var u=i,p=b.Hooks.getRoot(u);a===n&&(a=b.getPropertyValue(t,b.Names.prefixCheck(p)[0])),b.Normalizations.registered[p]&&(a=b.Normalizations.registered[p]("extract",t,a)),l=b.Hooks.extractValue(u,a)}else if(b.Normalizations.registered[i]){var f,h;"transform"!==(f=b.Normalizations.registered[i]("name",t))&&(h=s(t,b.Names.prefixCheck(f)[0]),b.Values.isCSSNullValue(h)&&b.Hooks.templates[i]&&(h=b.Hooks.templates[i][1])),l=b.Normalizations.registered[i]("extract",t,h)}if(!/^[\d-]/.test(l))if(o(t)&&o(t).isSVG&&b.Names.SVGAttribute(i))if(/^(height|width)$/i.test(i))try{l=t.getBBox()[i]}catch(t){l=0}else l=t.getAttribute(i);else l=s(t,b.Names.prefixCheck(i)[0]);return b.Values.isCSSNullValue(l)&&(l=0),m.debug>=2&&console.log("Get "+i+": "+l),l},setPropertyValue:function(t,i,n,a,r){var s=i;if("scroll"===i)r.container?r.container["scroll"+r.direction]=n:"Left"===r.direction?e.scrollTo(n,r.alternateValue):e.scrollTo(r.alternateValue,n);else if(b.Normalizations.registered[i]&&"transform"===b.Normalizations.registered[i]("name",t))b.Normalizations.registered[i]("inject",t,n),s="transform",n=o(t).transformCache[i];else{if(b.Hooks.registered[i]){var l=i,u=b.Hooks.getRoot(i);a=a||b.getPropertyValue(t,u),n=b.Hooks.injectValue(l,n,a),i=u}if(b.Normalizations.registered[i]&&(n=b.Normalizations.registered[i]("inject",t,n),i=b.Normalizations.registered[i]("name",t)),s=b.Names.prefixCheck(i)[0],8>=d)try{t.style[s]=n}catch(t){m.debug&&console.log("Browser does not support ["+n+"] for ["+s+"]")}else o(t)&&o(t).isSVG&&b.Names.SVGAttribute(i)?t.setAttribute(i,n):t.style[s]=n;m.debug>=2&&console.log("Set "+i+" ("+s+"): "+n)}return[s,n]},flushTransformCache:function(t){function e(e){return parseFloat(b.getPropertyValue(t,e))}var i="";if((d||m.State.isAndroid&&!m.State.isChrome)&&o(t).isSVG){var n={translate:[e("translateX"),e("translateY")],skewX:[e("skewX")],skewY:[e("skewY")],scale:1!==e("scale")?[e("scale"),e("scale")]:[e("scaleX"),e("scaleY")],rotate:[e("rotateZ"),0,0]};c.each(o(t).transformCache,function(t){/^translate/i.test(t)?t="translate":/^scale/i.test(t)?t="scale":/^rotate/i.test(t)&&(t="rotate"),n[t]&&(i+=t+"("+n[t].join(" ")+") ",delete n[t])})}else{var a,r;c.each(o(t).transformCache,function(e){return a=o(t).transformCache[e],"transformPerspective"===e?(r=a,!0):(9===d&&"rotateZ"===e&&(e="rotate"),void(i+=e+a+" "))}),r&&(i="perspective"+r+" "+i)}b.setPropertyValue(t,"transform",i)}};b.Hooks.register(),b.Normalizations.register(),m.hook=function(t,e,i){var r=n;return t=a(t),c.each(t,function(t,a){if(o(a)===n&&m.init(a),i===n)r===n&&(r=m.CSS.getPropertyValue(a,e));else{var s=m.CSS.setPropertyValue(a,e,i);"transform"===s[0]&&m.CSS.flushTransformCache(a),r=s}}),r};var w=function(){function t(){return d?P.promise||null:p}function r(){function t(t){function p(t,e){var i=n,a=n,o=n;return f.isArray(t)?(i=t[0],!f.isArray(t[1])&&/^[\d-]/.test(t[1])||f.isFunction(t[1])||b.RegEx.isHex.test(t[1])?o=t[1]:(f.isString(t[1])&&!b.RegEx.isHex.test(t[1])||f.isArray(t[1]))&&(a=e?t[1]:s(t[1],u.duration),t[2]!==n&&(o=t[2]))):i=t,e||(a=a||u.easing),f.isFunction(i)&&(i=i.call(r,T,k)),f.isFunction(o)&&(o=o.call(r,T,k)),[i||0,a,o]}function h(t,e){var i,n;return n=(e||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(t){return i=t,""}),i||(i=b.Values.getUnitType(t)),[n,i]}function v(){var t={myParent:r.parentNode||i.body,position:b.getPropertyValue(r,"position"),fontSize:b.getPropertyValue(r,"fontSize")},n=t.position===V.lastPosition&&t.myParent===V.lastParent,a=t.fontSize===V.lastFontSize;V.lastParent=t.myParent,V.lastPosition=t.position,V.lastFontSize=t.fontSize;var s=100,l={};if(a&&n)l.emToPx=V.lastEmToPx,l.percentToPxWidth=V.lastPercentToPxWidth,l.percentToPxHeight=V.lastPercentToPxHeight;else{var u=o(r).isSVG?i.createElementNS("http://www.w3.org/2000/svg","rect"):i.createElement("div");m.init(u),t.myParent.appendChild(u),c.each(["overflow","overflowX","overflowY"],function(t,e){m.CSS.setPropertyValue(u,e,"hidden")}),m.CSS.setPropertyValue(u,"position",t.position),m.CSS.setPropertyValue(u,"fontSize",t.fontSize),m.CSS.setPropertyValue(u,"boxSizing","content-box"),c.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(t,e){m.CSS.setPropertyValue(u,e,s+"%")}),m.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=V.lastPercentToPxWidth=(parseFloat(b.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=V.lastPercentToPxHeight=(parseFloat(b.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=V.lastEmToPx=(parseFloat(b.getPropertyValue(u,"paddingLeft"))||1)/s,t.myParent.removeChild(u)}return null===V.remToPx&&(V.remToPx=parseFloat(b.getPropertyValue(i.body,"fontSize"))||16),null===V.vwToPx&&(V.vwToPx=parseFloat(e.innerWidth)/100,V.vhToPx=parseFloat(e.innerHeight)/100),l.remToPx=V.remToPx,l.vwToPx=V.vwToPx,l.vhToPx=V.vhToPx,m.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),r),l}if(u.begin&&0===T)try{u.begin.call(g,g)}catch(t){setTimeout(function(){throw t},1)}if("scroll"===O){var w,C,S,E=/^x$/i.test(u.axis)?"Left":"Top",A=parseFloat(u.offset)||0;u.container?f.isWrapped(u.container)||f.isNode(u.container)?(u.container=u.container[0]||u.container,S=(w=u.container["scroll"+E])+c(r).position()[E.toLowerCase()]+A):u.container=null:(w=m.State.scrollAnchor[m.State["scrollProperty"+E]],C=m.State.scrollAnchor[m.State["scrollProperty"+("Left"===E?"Top":"Left")]],S=c(r).offset()[E.toLowerCase()]+A),d={scroll:{rootPropertyValue:!1,startValue:w,currentValue:w,endValue:S,unitType:"",easing:u.easing,scrollData:{container:u.container,direction:E,alternateValue:C}},element:r},m.debug&&console.log("tweensContainer (scroll): ",d.scroll,r)}else if("reverse"===O){if(!o(r).tweensContainer)return void c.dequeue(r,u.queue);"none"===o(r).opts.display&&(o(r).opts.display="auto"),"hidden"===o(r).opts.visibility&&(o(r).opts.visibility="visible"),o(r).opts.loop=!1,o(r).opts.begin=null,o(r).opts.complete=null,x.easing||delete u.easing,x.duration||delete u.duration,u=c.extend({},o(r).opts,u);var q=c.extend(!0,{},o(r).tweensContainer);for(var M in q)if("element"!==M){var _=q[M].startValue;q[M].startValue=q[M].currentValue=q[M].endValue,q[M].endValue=_,f.isEmptyObject(x)||(q[M].easing=u.easing),m.debug&&console.log("reverse tweensContainer ("+M+"): "+JSON.stringify(q[M]),r)}d=q}else if("start"===O){for(var I in o(r).tweensContainer&&!0===o(r).isAnimating&&(q=o(r).tweensContainer),c.each(y,function(t,e){if(RegExp("^"+b.Lists.colors.join("$|^")+"$").test(t)){var i=p(e,!0),a=i[0],o=i[1],r=i[2];if(b.RegEx.isHex.test(a)){for(var s=["Red","Green","Blue"],l=b.Values.hexToRgb(a),u=r?b.Values.hexToRgb(r):n,c=0;cD;D++){var z={delay:I.delay,progress:I.progress};D===_-1&&(z.display=I.display,z.visibility=I.visibility,z.complete=I.complete),w(g,"reverse",z)}return t()}};(m=c.extend(w,m)).animate=w;var x=e.requestAnimationFrame||p;return m.State.isMobile||i.hidden===n||i.addEventListener("visibilitychange",function(){i.hidden?(x=function(t){return setTimeout(function(){t(!0)},16)},l()):x=e.requestAnimationFrame||p}),t.Velocity=m,t!==e&&(t.fn.velocity=w,t.fn.velocity.defaults=m.defaults),c.each(["Down","Up"],function(t,e){m.Redirects["slide"+e]=function(t,i,a,o,r,s){var l=c.extend({},i),u=l.begin,d=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===n&&(l.display="Down"===e?"inline"===m.CSS.Values.getDisplayType(t)?"inline-block":"block":"none"),l.begin=function(){for(var i in u&&u.call(r,r),p){f[i]=t.style[i];var n=m.CSS.getPropertyValue(t,i);p[i]="Down"===e?[n,0]:[0,n]}f.overflow=t.style.overflow,t.style.overflow="hidden"},l.complete=function(){for(var e in f)t.style[e]=f[e];d&&d.call(r,r),s&&s.resolver(r)},m(t,p,l)}}),c.each(["In","Out"],function(t,e){m.Redirects["fade"+e]=function(t,i,a,o,r,s){var l=c.extend({},i),u={opacity:"In"===e?1:0},d=l.complete;l.complete=a!==o-1?l.begin=null:function(){d&&d.call(r,r),s&&s.resolver(r)},l.display===n&&(l.display="In"===e?"auto":"none"),m(this,u,l)}}),m}jQuery.fn.velocity=jQuery.fn.animate}(window.jQuery||window.Zepto||window,window,document)})),function(t,e,i,n){"use strict";function a(t,e,i){return setTimeout(c(t,i),e)}function o(t,e,i){return!!Array.isArray(t)&&(r(t,i[e],i),!0)}function r(t,e,i){var a;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==n)for(a=0;a-1}function m(t){return t.trim().split(/\s+/g)}function y(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]}):n.sort()),n}function x(t,e){for(var i,a,o=e[0].toUpperCase()+e.slice(1),r=0;r1&&!i.firstMultiple?i.firstMultiple=O(e):1===a&&(i.firstMultiple=!1);var o=i.firstInput,r=i.firstMultiple,s=r?r.center:o.center,l=e.center=P(n);e.timeStamp=it(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=q(s,l),e.distance=A(s,l),function(t,e){var i=e.center,n=t.offsetDelta||{},a=t.prevDelta||{},o=t.prevInput||{};(e.eventType===ct||o.eventType===pt)&&(a=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=a.x+(i.x-n.x),e.deltaY=a.y+(i.y-n.y)}(i,e),e.offsetDirection=E(e.deltaX,e.deltaY),e.scale=r?function(t,e){return A(e[0],e[1],kt)/A(t[0],t[1],kt)}(r.pointers,n):1,e.rotation=r?function(t,e){return q(e[1],e[0],kt)-q(t[1],t[0],kt)}(r.pointers,n):0,S(i,e);var u=t.element;v(e.srcEvent.target,u)&&(u=e.srcEvent.target),e.target=u}(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function S(t,e){var i,a,o,r,s=t.lastInterval||e,l=e.timeStamp-s.timeStamp;if(e.eventType!=ft&&(l>ut||s.velocity===n)){var u=s.deltaX-e.deltaX,c=s.deltaY-e.deltaY,d=function(t,e,i){return{x:e/t||0,y:i/t||0}}(l,u,c);a=d.x,o=d.y,i=et(d.x)>et(d.y)?d.x:d.y,r=E(u,c),t.lastInterval=e}else i=s.velocity,a=s.velocityX,o=s.velocityY,r=s.direction;e.velocity=i,e.velocityX=a,e.velocityY=o,e.direction=r}function O(t){for(var e=[],i=0;ia;)i+=t[a].clientX,n+=t[a].clientY,a++;return{x:tt(i/e),y:tt(n/e)}}function E(t,e){return t===e?ht:et(t)>=et(e)?t>0?vt:gt:e>0?mt:yt}function A(t,e,i){i||(i=Ct);var n=e[i[0]]-t[i[0]],a=e[i[1]]-t[i[1]];return Math.sqrt(n*n+a*a)}function q(t,e,i){i||(i=Ct);var n=e[i[0]]-t[i[0]],a=e[i[1]]-t[i[1]];return 180*Math.atan2(a,n)/Math.PI}function M(){this.evEl=St,this.evWin=Ot,this.allow=!0,this.pressed=!1,k.apply(this,arguments)}function _(){this.evEl=At,this.evWin=qt,k.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function I(){this.evTarget=_t,this.evWin=It,this.started=!1,k.apply(this,arguments)}function V(){this.evTarget=jt,this.targetIds={},k.apply(this,arguments)}function j(){k.apply(this,arguments);var t=c(this.handler,this);this.touch=new V(this.manager,t),this.mouse=new M(this.manager,t)}function D(t,e){this.manager=t,this.set(e)}function z(t){this.id=nt++,this.manager=null,this.options=l(t||{},this.defaults),this.options.enable=p(this.options.enable,!0),this.state=Rt,this.simultaneous={},this.requireFail=[]}function L(t){return t==yt?"down":t==mt?"up":t==vt?"left":t==gt?"right":""}function Q(t,e){var i=e.manager;return i?i.get(t):t}function N(){z.apply(this,arguments)}function F(){N.apply(this,arguments),this.pX=null,this.pY=null}function W(){N.apply(this,arguments)}function $(){z.apply(this,arguments),this._timer=null,this._input=null}function R(){N.apply(this,arguments)}function X(){N.apply(this,arguments)}function H(){z.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function Y(t,e){return(e=e||{}).recognizers=p(e.recognizers,Y.defaults.preset),new B(t,e)}function B(t,e){e=e||{},this.options=l(e,Y.defaults),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=function(t){var e=t.options.inputClass;return new(e||(ot?_:rt?V:at?j:M))(t,T)}(this),this.touchAction=new D(this,this.options.touchAction),G(this,!0),r(e.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function G(t,e){var i=t.element;r(t.options.cssProps,function(t,n){i.style[x(i.style,n)]=e?t:""})}function U(t,i){var n=e.createEvent("Event");n.initEvent(t,!0,!0),n.gesture=i,i.target.dispatchEvent(n)}var Z=["","webkit","moz","MS","ms","o"],J=e.createElement("div"),K="function",tt=Math.round,et=Math.abs,it=Date.now,nt=1,at="ontouchstart"in t,ot=x(t,"PointerEvent")!==n,rt=at&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),st="touch",lt="mouse",ut=25,ct=1,dt=2,pt=4,ft=8,ht=1,vt=2,gt=4,mt=8,yt=16,bt=vt|gt,wt=mt|yt,xt=bt|wt,Ct=["x","y"],kt=["clientX","clientY"];k.prototype={handler:function(){},init:function(){this.evEl&&f(this.element,this.evEl,this.domHandler),this.evTarget&&f(this.target,this.evTarget,this.domHandler),this.evWin&&f(C(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&h(this.element,this.evEl,this.domHandler),this.evTarget&&h(this.target,this.evTarget,this.domHandler),this.evWin&&h(C(this.element),this.evWin,this.domHandler)}};var Tt={mousedown:ct,mousemove:dt,mouseup:pt},St="mousedown",Ot="mousemove mouseup";u(M,k,{handler:function(t){var e=Tt[t.type];e&ct&&0===t.button&&(this.pressed=!0),e&dt&&1!==t.which&&(e=pt),this.pressed&&this.allow&&(e&pt&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:lt,srcEvent:t}))}});var Pt={pointerdown:ct,pointermove:dt,pointerup:pt,pointercancel:ft,pointerout:ft},Et={2:st,3:"pen",4:lt,5:"kinect"},At="pointerdown",qt="pointermove pointerup pointercancel";t.MSPointerEvent&&(At="MSPointerDown",qt="MSPointerMove MSPointerUp MSPointerCancel"),u(_,k,{handler:function(t){var e=this.store,i=!1,n=t.type.toLowerCase().replace("ms",""),a=Pt[n],o=Et[t.pointerType]||t.pointerType,r=o==st,s=y(e,t.pointerId,"pointerId");a&ct&&(0===t.button||r)?0>s&&(e.push(t),s=e.length-1):a&(pt|ft)&&(i=!0),0>s||(e[s]=t,this.callback(this.manager,a,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),i&&e.splice(s,1))}});var Mt={touchstart:ct,touchmove:dt,touchend:pt,touchcancel:ft},_t="touchstart",It="touchstart touchmove touchend touchcancel";u(I,k,{handler:function(t){var e=Mt[t.type];if(e===ct&&(this.started=!0),this.started){var i=function(t,e){var i=b(t.touches),n=b(t.changedTouches);return e&(pt|ft)&&(i=w(i.concat(n),"identifier",!0)),[i,n]}.call(this,t,e);e&(pt|ft)&&0==i[0].length-i[1].length&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:st,srcEvent:t})}}});var Vt={touchstart:ct,touchmove:dt,touchend:pt,touchcancel:ft},jt="touchstart touchmove touchend touchcancel";u(V,k,{handler:function(t){var e=Vt[t.type],i=function(t,e){var i=b(t.touches),n=this.targetIds;if(e&(ct|dt)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var a,o,r=b(t.changedTouches),s=[],l=this.target;if(o=i.filter(function(t){return v(t.target,l)}),e===ct)for(a=0;a-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(i.options.event+(e?function(t){return t&Gt?"cancel":t&Yt?"end":t&Ht?"move":t&Xt?"start":""}(n):""),t)}var i=this,n=this.state;Yt>n&&e(!0),e(),n>=Yt&&e(!0)},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=32)},canEmit:function(){for(var t=0;to?vt:gt,i=o!=this.pX,n=Math.abs(t.deltaX)):(a=0===r?ht:0>r?mt:yt,i=r!=this.pY,n=Math.abs(t.deltaY))),t.direction=a,i&&n>e.threshold&&a&e.direction},attrTest:function(t){return N.prototype.attrTest.call(this,t)&&(this.state&Xt||!(this.state&Xt)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=L(t.direction);e&&this.manager.emit(this.options.event+e,t),this._super.emit.call(this,t)}}),u(W,N,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Ft]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&Xt)},emit:function(t){if(this._super.emit.call(this,t),1!==t.scale){var e=t.scale<1?"in":"out";this.manager.emit(this.options.event+e,t)}}}),u($,z,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Qt]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distancee.time;if(this._input=t,!n||!i||t.eventType&(pt|ft)&&!o)this.reset();else if(t.eventType&ct)this.reset(),this._timer=a(function(){this.state=Bt,this.tryEmit()},e.time,this);else if(t.eventType&pt)return Bt;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===Bt&&(t&&t.eventType&pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=it(),this.manager.emit(this.options.event,this._input)))}}),u(R,N,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Ft]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&Xt)}}),u(X,N,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:bt|wt,pointers:1},getTouchAction:function(){return F.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(bt|wt)?e=t.velocity:i&bt?e=t.velocityX:i&wt&&(e=t.velocityY),this._super.attrTest.call(this,t)&&i&t.direction&&t.distance>this.options.threshold&&et(e)>this.options.velocity&&t.eventType&pt},emit:function(t){var e=L(t.direction);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(H,z,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Nt]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distance li > .collapsible-header"),a=i.data("collapsible");function o(e){n=i.find("> li > .collapsible-header"),e.hasClass("active")?e.parent().addClass("active"):e.parent().removeClass("active"),e.parent().hasClass("active")?e.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}}):e.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}}),n.not(e).removeClass("active").parent().removeClass("active"),n.not(e).parent().children(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}})}function r(e){e.hasClass("active")?e.parent().addClass("active"):e.parent().removeClass("active"),e.parent().hasClass("active")?e.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}}):e.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}})}function s(t){return t.closest("li > .collapsible-header")}i.off("click.collapse","> li > .collapsible-header"),n.off("click.collapse"),i.on("click.collapse","> li > .collapsible-header",function(i){var n=t(this),l=t(i.target);s(l).length>0&&(l=s(l)),l.toggleClass("active"),e.accordion||"accordion"===a||void 0===a?o(l):(r(l),n.hasClass("active")&&r(n))});n=i.find("> li > .collapsible-header");e.accordion||"accordion"===a||void 0===a?o(n.filter(".active").first()):n.filter(".active").each(function(){r(t(this))})})},t(document).ready(function(){t(".collapsible").collapsible()})}(jQuery),function(t){t.fn.scrollTo=function(e){return t(this).scrollTop(t(this).scrollTop()-t(this).offset().top+t(e).offset().top),this},t.fn.dropdown=function(e){var i={inDuration:300,outDuration:225,constrain_width:!0,hover:!1,gutter:0,belowOrigin:!1,alignment:"left"};this.each(function(){var n=t(this),a=t.extend({},i,e),o=!1,r=t("#"+n.attr("data-activates"));function s(){void 0!==n.data("induration")&&(a.inDuration=n.data("inDuration")),void 0!==n.data("outduration")&&(a.outDuration=n.data("outDuration")),void 0!==n.data("constrainwidth")&&(a.constrain_width=n.data("constrainwidth")),void 0!==n.data("hover")&&(a.hover=n.data("hover")),void 0!==n.data("gutter")&&(a.gutter=n.data("gutter")),void 0!==n.data("beloworigin")&&(a.belowOrigin=n.data("beloworigin")),void 0!==n.data("alignment")&&(a.alignment=n.data("alignment"))}function l(e){"focus"===e&&(o=!0),s(),r.addClass("active"),n.addClass("active"),!0===a.constrain_width?r.css("width",n.outerWidth()):r.css("white-space","nowrap");var i,l=window.innerHeight,u=n.innerHeight(),c=n.offset().left,d=n.offset().top-t(window).scrollTop(),p=a.alignment,f=0;if(!0===a.belowOrigin&&(f=u),c+r.innerWidth()>t(window).width()?p="right":c-r.innerWidth()+n.innerWidth()<0&&(p="left"),d+r.innerHeight()>l)if(d+u-r.innerHeight()<0){var h=l-d-f;r.css("max-height",h)}else f||(f+=u),f-=r.innerHeight();if("left"===p)i=a.gutter,leftPosition=n.position().left+i;else if("right"===p){var v=n.position().left+n.outerWidth()-r.outerWidth();i=-a.gutter,leftPosition=v+i}r.css({position:"absolute",top:n.position().top+f,left:leftPosition}),r.stop(!0,!0).css("opacity",0).slideDown({queue:!1,duration:a.inDuration,easing:"easeOutCubic",complete:function(){t(this).css("height","")}}).animate({opacity:1},{queue:!1,duration:a.inDuration,easing:"easeOutSine"})}function u(){o=!1,r.fadeOut(a.outDuration),r.removeClass("active"),n.removeClass("active"),setTimeout(function(){r.css("max-height","")},a.outDuration)}if(s(),n.after(r),a.hover){var c=!1;n.unbind("click."+n.attr("id")),n.on("mouseenter",function(t){!1===c&&(l(),c=!0)}),n.on("mouseleave",function(e){var i=e.toElement||e.relatedTarget;t(i).closest(".dropdown-content").is(r)||(r.stop(!0,!0),u(),c=!1)}),r.on("mouseleave",function(e){var i=e.toElement||e.relatedTarget;t(i).closest(".dropdown-button").is(n)||(r.stop(!0,!0),u(),c=!1)})}else n.unbind("click."+n.attr("id")),n.bind("click."+n.attr("id"),function(e){o||(n[0]!=e.currentTarget||n.hasClass("active")||0!==t(e.target).closest(".dropdown-content").length?n.hasClass("active")&&(u(),t(document).unbind("click."+r.attr("id")+" touchstart."+r.attr("id"))):(e.preventDefault(),l("click")),r.hasClass("active")&&t(document).bind("click."+r.attr("id")+" touchstart."+r.attr("id"),function(e){r.is(e.target)||n.is(e.target)||n.find(e.target).length||(u(),t(document).unbind("click."+r.attr("id")+" touchstart."+r.attr("id")))}))});n.on("open",function(t,e){l(e)}),n.on("close",u)})},t(document).ready(function(){t(".dropdown-button").dropdown()})}(jQuery),function(t){var e=new Array,i=0;t.fn.extend({openModal:function(n){t("body").css("overflow","hidden");var a={opacity:.5,in_duration:350,out_duration:250,ready:void 0,complete:void 0,dismissible:!0,starting_top:"4%"},o="materialize-lean-overlay-"+ ++i,r=t(this),s=t('
'),l=0==e.length?1:e[e.length-1]+1;e.push(l),s.attr("id",o).css("z-index",1e3+2*l),r.data("overlay-id",o).css("z-index",1e3+2*l+1),r.data("stack-ordinal",l),t("body").append(s),r.trigger("modal-overlay-attached",o),(n=t.extend(a,n)).dismissible&&(s.click(function(){r.closeModal(n)}),t(document).on("keyup.leanModal"+o,function(t){27===t.keyCode&&r.closeModal(n)})),r.find(".modal-close").on("click.close",function(t){r.closeModal(n)}),s.css({display:"block",opacity:0}),r.css({display:"block",opacity:0}),s.velocity({opacity:n.opacity},{duration:n.in_duration,queue:!1,ease:"easeOutCubic"}),r.data("associated-overlay",s[0]),r.hasClass("bottom-sheet")?r.velocity({bottom:"0",opacity:1},{duration:n.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof n.ready&&n.ready()}}):(t.Velocity.hook(r,"scaleX",.7),r.css({top:n.starting_top}),r.velocity({top:"10%",opacity:1,scaleX:"1"},{duration:n.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof n.ready&&n.ready()}}))}}),t.fn.extend({closeModal:function(i){var n={out_duration:250,complete:void 0},a=t(this),o=a.data("stack-ordinal"),r=a.data("overlay-id"),s=t("#"+r);i=t.extend(n,i),t("body").css("overflow",""),a.find(".modal-close").off("click.close"),t(document).off("keyup.leanModal"+r),s.velocity({opacity:0},{duration:i.out_duration,queue:!1,ease:"easeOutQuart"}),a.hasClass("bottom-sheet")?a.velocity({bottom:"-100%",opacity:0},{duration:i.out_duration,queue:!1,ease:"easeOutCubic",complete:function(){s.css({display:"none"}),"function"==typeof i.complete&&i.complete(),s.remove(),e.splice(e.indexOf(o),1)}}):a.velocity({top:i.starting_top,opacity:0,scaleX:.7},{duration:i.out_duration,complete:function(){t(this).css("display","none"),"function"==typeof i.complete&&i.complete(),s.remove(),e.splice(e.indexOf(o),1)}})}}),t.fn.extend({leanModal:function(e){return this.each(function(){var i=t.extend({starting_top:"4%"},e);t(this).click(function(e){i.starting_top=(t(this).offset().top-t(window).scrollTop())/1.15;var n=t(this).attr("href")||"#"+t(this).data("target");t(n).openModal(i),e.preventDefault()})})}})}(jQuery),function(t){t.fn.materialbox=function(){return this.each(function(){if(!t(this).hasClass("initialized")){t(this).addClass("initialized");var e,i,n=!1,a=!0,o=200,r=t(this),s=t("
").addClass("material-placeholder");r.wrap(s),r.on("click",function(){var o=r.parent(".material-placeholder"),s=window.innerWidth,u=window.innerHeight,c=r.width(),d=r.height();if(!1===a)return l(),!1;if(n&&!0===a)return l(),!1;a=!1,r.addClass("active"),n=!0,o.css({width:o[0].getBoundingClientRect().width,height:o[0].getBoundingClientRect().height,position:"relative",top:0,left:0}),e=void 0,i=o[0].parentNode;for(;null!==i&&!t(i).is(document);){var p=t(i);"hidden"===p.css("overflow")&&(p.css("overflow","visible"),e=void 0===e?p:e.add(p)),i=i.parentNode}r.css({position:"absolute","z-index":1e3}).data("width",c).data("height",d);var f=t('
').css({opacity:0}).click(function(){!0===a&&l()});if(t("body").append(f),f.velocity({opacity:1},{duration:275,queue:!1,easing:"easeOutQuad"}),""!==r.data("caption")){var h=t('
');h.text(r.data("caption")),t("body").append(h),h.css({display:"inline"}),h.velocity({opacity:1},{duration:275,queue:!1,easing:"easeOutQuad"})}var v=0,g=0;c/s>d/u?(v=.9*s,g=.9*s*(d/c)):(v=.9*u*(c/d),g=.9*u),r.hasClass("responsive-img")?r.velocity({"max-width":v,width:c},{duration:0,queue:!1,complete:function(){r.css({left:0,top:0}).velocity({height:g,width:v,left:t(document).scrollLeft()+s/2-r.parent(".material-placeholder").offset().left-v/2,top:t(document).scrollTop()+u/2-r.parent(".material-placeholder").offset().top-g/2},{duration:275,queue:!1,easing:"easeOutQuad",complete:function(){a=!0}})}}):r.css("left",0).css("top",0).velocity({height:g,width:v,left:t(document).scrollLeft()+s/2-r.parent(".material-placeholder").offset().left-v/2,top:t(document).scrollTop()+u/2-r.parent(".material-placeholder").offset().top-g/2},{duration:275,queue:!1,easing:"easeOutQuad",complete:function(){a=!0}})}),t(window).scroll(function(){n&&l()}),t(document).keyup(function(t){27===t.keyCode&&!0===a&&n&&l()})}function l(){a=!1;var i=r.parent(".material-placeholder"),s=(window.innerWidth,window.innerHeight,r.data("width")),l=r.data("height");r.velocity("stop",!0),t("#materialbox-overlay").velocity("stop",!0),t(".materialbox-caption").velocity("stop",!0),t("#materialbox-overlay").velocity({opacity:0},{duration:o,queue:!1,easing:"easeOutQuad",complete:function(){n=!1,t(this).remove()}}),r.velocity({width:s,height:l,left:0,top:0},{duration:o,queue:!1,easing:"easeOutQuad"}),t(".materialbox-caption").velocity({opacity:0},{duration:o,queue:!1,easing:"easeOutQuad",complete:function(){i.css({height:"",width:"",position:"",top:"",left:""}),r.css({height:"",top:"",left:"",width:"","max-width":"",position:"","z-index":""}),r.removeClass("active"),a=!0,t(this).remove(),e.css("overflow","")}})}})},t(document).ready(function(){t(".materialboxed").materialbox()})}(jQuery),function(t){t.fn.parallax=function(){var e=t(window).width();return this.each(function(i){var n=t(this);function a(i){var a;a=e<601?n.height()>0?n.height():n.children("img").height():n.height()>0?n.height():500;var o=n.children("img").first(),r=o.height()-a,s=n.offset().top+a,l=n.offset().top,u=t(window).scrollTop(),c=window.innerHeight,d=(u+c-l)/(a+c),p=Math.round(r*d);i&&o.css("display","block"),s>u&&l');var l=e.find(".indicator");e.is(":visible")&&(l.css({right:o-(s+1)*r}),l.css({left:s*r})),t(window).resize(function(){o=e.width(),r=e.find("li").first().outerWidth(),s<0&&(s=0),0!==r&&0!==o&&(l.css({right:o-(s+1)*r}),l.css({left:s*r}))}),a.not(i).each(function(){t(this.hash).hide()}),e.on("click","a",function(u){if(t(this).parent().hasClass("disabled"))u.preventDefault();else{o=e.width(),r=e.find("li").first().outerWidth(),i.removeClass("active"),n.hide(),i=t(this),n=t(this.hash),a=e.find("li.tab a"),i.addClass("active");var c=s;(s=a.index(t(this)))<0&&(s=0),n.show(),s-c>=0?(l.velocity({right:o-(s+1)*r},{duration:300,queue:!1,easing:"easeOutQuad"}),l.velocity({left:s*r},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})):(l.velocity({left:s*r},{duration:300,queue:!1,easing:"easeOutQuad"}),l.velocity({right:o-(s+1)*r},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})),u.preventDefault()}})})},select_tab:function(t){this.find('a[href="\\#'+t+'"]').trigger("click")}};t.fn.tabs=function(i){return e[i]?e[i].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.tooltip"):e.init.apply(this,arguments)},t(document).ready(function(){t("ul.tabs").tabs()})}(jQuery),function(t){t.fn.tooltip=function(i){return"remove"===i?(this.each(function(){t("#"+t(this).attr("data-tooltip-id")).remove(),t(this).off("mouseenter.tooltip mouseleave.tooltip")}),!1):(i=t.extend({delay:350},i),this.each(function(){var n=Materialize.guid(),a=t(this);a.attr("data-tooltip-id",n);var o=t("").text(a.attr("data-tooltip")),r=t("
");r.addClass("material-tooltip").append(o).appendTo(t("body")).attr("id",n);var s=t("
").addClass("backdrop");s.appendTo(r),s.css({top:0,left:0}),a.off("mouseenter.tooltip mouseleave.tooltip");var l,u=!1;a.on({"mouseenter.tooltip":function(t){var n=a.attr("data-delay");n=void 0===n||""===n?i.delay:n,l=setTimeout(function(){u=!0,r.velocity("stop"),s.velocity("stop"),r.css({display:"block",left:"0px",top:"0px"}),r.children("span").text(a.attr("data-tooltip"));var t,i,n,o=a.outerWidth(),l=a.outerHeight(),c=a.attr("data-position"),d=r.outerHeight(),p=r.outerWidth(),f="0px",h="0px",v=8;"top"===c?(t=a.offset().top-d-5,i=a.offset().left+o/2-p/2,n=e(i,t,p,d),f="-10px",s.css({borderRadius:"14px 14px 0 0",transformOrigin:"50% 90%",marginTop:d,marginLeft:p/2-s.width()/2})):"left"===c?(t=a.offset().top+l/2-d/2,i=a.offset().left-p-5,n=e(i,t,p,d),h="-10px",s.css({width:"14px",height:"14px",borderRadius:"14px 0 0 14px",transformOrigin:"95% 50%",marginTop:d/2,marginLeft:p})):"right"===c?(t=a.offset().top+l/2-d/2,i=a.offset().left+o+5,n=e(i,t,p,d),h="+10px",s.css({width:"14px",height:"14px",borderRadius:"0 14px 14px 0",transformOrigin:"5% 50%",marginTop:d/2,marginLeft:"0px"})):(t=a.offset().top+a.outerHeight()+5,i=a.offset().left+o/2-p/2,n=e(i,t,p,d),f="+10px",s.css({marginLeft:p/2-s.width()/2})),r.css({top:n.y,left:n.x}),(v=p/8)<8&&(v=8),"right"!==c&&"left"!==c||(v=p/10)<6&&(v=6),r.velocity({marginTop:f,marginLeft:h},{duration:350,queue:!1}).velocity({opacity:1},{duration:300,delay:50,queue:!1}),s.css({display:"block"}).velocity({opacity:1},{duration:55,delay:0,queue:!1}).velocity({scale:v},{duration:300,delay:0,queue:!1,easing:"easeInOutQuad"})},n)},"mouseleave.tooltip":function(){u=!1,clearTimeout(l),setTimeout(function(){1!=u&&(r.velocity({opacity:0,marginTop:0,marginLeft:0},{duration:225,queue:!1}),s.velocity({opacity:0,scale:1},{duration:225,queue:!1,complete:function(){s.css("display","none"),r.css("display","none"),u=!1}}))},225)}})}))};var e=function(e,i,n,a){var o=e,r=i;return o<0?o=4:o+n>window.innerWidth&&(o-=o+n-window.innerWidth),r<0?r=4:r+a>window.innerHeight+t(window).scrollTop&&(r-=r+a-window.innerHeight),{x:o,y:r}};t(document).ready(function(){t(".tooltipped").tooltip()})}(jQuery),function(t){"use strict";var e=e||{},i=document.querySelectorAll.bind(document);function n(t){var e="";for(var i in t)t.hasOwnProperty(i)&&(e+=i+":"+t[i]+";");return e}var a={duration:750,show:function(t,e){if(2===t.button)return!1;var i=e||this,o=document.createElement("div");o.className="waves-ripple",i.appendChild(o);var r,s,l,u,c,d=(u={top:0,left:0},c=(r=i)&&r.ownerDocument,s=c.documentElement,void 0!==r.getBoundingClientRect&&(u=r.getBoundingClientRect()),l=function(t){return null!==(e=t)&&e===e.window?t:9===t.nodeType&&t.defaultView;var e}(c),{top:u.top+l.pageYOffset-s.clientTop,left:u.left+l.pageXOffset-s.clientLeft}),p=t.pageY-d.top,f=t.pageX-d.left,h="scale("+i.clientWidth/100*10+")";"touches"in t&&(p=t.touches[0].pageY-d.top,f=t.touches[0].pageX-d.left),o.setAttribute("data-hold",Date.now()),o.setAttribute("data-scale",h),o.setAttribute("data-x",f),o.setAttribute("data-y",p);var v={top:p+"px",left:f+"px"};o.className=o.className+" waves-notransition",o.setAttribute("style",n(v)),o.className=o.className.replace("waves-notransition",""),v["-webkit-transform"]=h,v["-moz-transform"]=h,v["-ms-transform"]=h,v["-o-transform"]=h,v.transform=h,v.opacity="1",v["-webkit-transition-duration"]=a.duration+"ms",v["-moz-transition-duration"]=a.duration+"ms",v["-o-transition-duration"]=a.duration+"ms",v["transition-duration"]=a.duration+"ms",v["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",v["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",v["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",v["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",o.setAttribute("style",n(v))},hide:function(t){o.touchup(t);var e=this,i=(e.clientWidth,null),r=e.getElementsByClassName("waves-ripple");if(!(r.length>0))return!1;var s=(i=r[r.length-1]).getAttribute("data-x"),l=i.getAttribute("data-y"),u=i.getAttribute("data-scale"),c=350-(Date.now()-Number(i.getAttribute("data-hold")));c<0&&(c=0),setTimeout(function(){var t={top:l+"px",left:s+"px",opacity:"0","-webkit-transition-duration":a.duration+"ms","-moz-transition-duration":a.duration+"ms","-o-transition-duration":a.duration+"ms","transition-duration":a.duration+"ms","-webkit-transform":u,"-moz-transform":u,"-ms-transform":u,"-o-transform":u,transform:u};i.setAttribute("style",n(t)),setTimeout(function(){try{e.removeChild(i)}catch(t){return!1}},a.duration)},c)},wrapInput:function(t){for(var e=0;e0&&(o.touches-=1)},500):"mousedown"===t.type&&o.touches>0&&(e=!1),e},touchup:function(t){o.allowEvent(t)}};function r(e){var i=function(t){if(!1===o.allowEvent(t))return null;for(var e=null,i=t.target||t.srcElement;null!==i.parentElement;){if(!(i instanceof SVGElement||-1===i.className.indexOf("waves-effect"))){e=i;break}if(i.classList.contains("waves-effect")){e=i;break}i=i.parentElement}return e}(e);null!==i&&(a.show(e,i),"ontouchstart"in t&&(i.addEventListener("touchend",a.hide,!1),i.addEventListener("touchcancel",a.hide,!1)),i.addEventListener("mouseup",a.hide,!1),i.addEventListener("mouseleave",a.hide,!1))}e.displayEffect=function(e){"duration"in(e=e||{})&&(a.duration=e.duration),a.wrapInput(i(".waves-effect")),"ontouchstart"in t&&document.body.addEventListener("touchstart",r,!1),document.body.addEventListener("mousedown",r,!1)},e.attach=function(e){"input"===e.tagName.toLowerCase()&&(a.wrapInput([e]),e=e.parentElement),"ontouchstart"in t&&e.addEventListener("touchstart",r,!1),e.addEventListener("mousedown",r,!1)},t.Waves=e,document.addEventListener("DOMContentLoaded",function(){e.displayEffect()},!1)}(window),Materialize.toast=function(t,e,i,n){i=i||"";var a=document.getElementById("toast-container");null===a&&((a=document.createElement("div")).id="toast-container",document.body.appendChild(a));var o=function(t){var e=document.createElement("div");if(e.classList.add("toast"),i)for(var a=i.split(" "),o=0,r=a.length;o80?Vel(e,{marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof n&&n(),e.parentNode.removeChild(e)}}):(e.classList.remove("panning"),Vel(e,{left:0,opacity:1},{duration:300,easing:"easeOutExpo",queue:!1}))}),e}(t);t&&a.appendChild(o),o.style.top="35px",o.style.opacity=0,Vel(o,{top:"0px",opacity:1},{duration:300,easing:"easeOutCubic",queue:!1});var r=e,s=setInterval(function(){null===o.parentNode&&window.clearInterval(s),o.classList.contains("panning")||(r-=20),r<=0&&(Vel(o,{opacity:0,marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof n&&n(),this[0].parentNode.removeChild(this[0])}}),window.clearInterval(s))},20)},function(t){var e={init:function(e){e=t.extend({menuWidth:240,edge:"left",closeOnClick:!1},e),t(this).each(function(){var i=t(this),n=t("#"+i.attr("data-activates"));240!=e.menuWidth&&n.css("width",e.menuWidth);var a=t('
');function o(o,s){i.trigger("side-nav-closing"),!1,r=!1,t("body").css("overflow",""),s?t("#sidenav-overlay").remove():t("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){t(this).remove()}}),"left"===e.edge?(a.css({width:"",right:"",left:"0"}),s?(n.css("left",-1*(e.menuWidth+10)+"px"),!0===o&&n.css("width",e.menuWidth),i.trigger("side-nav-closed")):n.velocity({left:-1*(e.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){!0===o&&n.css("width",e.menuWidth),i.trigger("side-nav-closed")}})):(a.css({width:"",right:"0",left:""}),s?(enu_id.css("right",-1*(e.menuWidth+10)+"px"),!0===o&&n.css("width",e.menuWidth),i.trigger("side-nav-closed")):n.velocity({right:-1*(e.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){!0===o&&n.css("width",e.menuWidth),i.trigger("side-nav-closed")}}))}t("body").append(a),"left"==e.edge?(n.css("left",-1*(e.menuWidth+10)),a.css({left:0})):(n.addClass("right-aligned").css("right",-1*(e.menuWidth+10)).css("left",""),a.css({right:0})),n.hasClass("fixed")&&window.innerWidth>992&&n.css("left",0),n.hasClass("fixed")&&t(window).resize(function(){window.innerWidth>992?0!==t("#sidenav-overlay").css("opacity")&&r?o(!0):(n.css("left",""),n.css("width",e.menuWidth)):!1===r&&("left"===e.edge?n.css("left",-1*(e.menuWidth+10)):n.css("right",-1*(e.menuWidth+10)))}),!0===e.closeOnClick&&n.on("click.itemclick","a:not(.collapsible-header)",function(){o()});var r=!1;a.on("click",function(){o()}),a.hammer({prevent_default:!1}).bind("pan",function(a){if("touch"==a.gesture.pointerType){a.gesture.direction;var s,l=a.gesture.center.x;a.gesture.center.y,a.gesture.velocityX;if(t("body").css("overflow","hidden"),0===t("#sidenav-overlay").length){var u=t('
');u.css("opacity",0).click(function(){o()}),t("body").append(u)}if("left"===e.edge&&(l>e.menuWidth?l=e.menuWidth:l<0&&(l=0)),"left"===e.edge)l=e.menuWidth/2&&(r=!0,i.trigger("side-nav-opened")),n.css("left",l-e.menuWidth);else{l=window.innerWidth-e.menuWidth/2&&(r=!1,i.trigger("side-nav-closed"));var c=-1*(l-e.menuWidth/2);c>0&&(c=0),n.css("right",c)}"left"===e.edge?(s=l/e.menuWidth,t("#sidenav-overlay").velocity({opacity:s},{duration:50,queue:!1,easing:"easeOutQuad"})):(s=Math.abs((l-window.innerWidth)/e.menuWidth),t("#sidenav-overlay").velocity({opacity:s},{duration:50,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(i){if("touch"==i.gesture.pointerType){var o=i.gesture.velocityX;!1,"left"===e.edge?r&&o<=.3||o<-.5?(n.velocity({left:0},{duration:300,queue:!1,easing:"easeOutQuad"}),t("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),a.css({width:"50%",right:0,left:""})):(!r||o>.3)&&(t("body").css("overflow",""),n.velocity({left:-1*(e.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutQuad"}),t("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){t(this).remove()}}),a.css({width:"10px",right:"",left:0})):r&&o>=-.3||o>.5?(n.velocity({right:0},{duration:300,queue:!1,easing:"easeOutQuad"}),t("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),a.css({width:"50%",right:"",left:0})):(!r||o<-.3)&&(t("body").css("overflow",""),n.velocity({right:-1*(e.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutQuad"}),t("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){t(this).remove()}}),a.css({width:"10px",right:0,left:""}))}});var s=function(s){i.trigger("side-nav-opening"),t("body").css("overflow","hidden"),t("body").append(a),"left"===e.edge?(a.css({width:"50%",right:0,left:""}),s?n.velocity({left:0},{duration:300,queue:!1,easing:"easeOutQuad"}):n.css("left","0")):(a.css({width:"50%",right:"",left:0}),s?n.velocity({right:0},{duration:300,queue:!1,easing:"easeOutQuad"}):n.css("right","0"),n.css("left",""));var l=t('
');l.css("opacity",0).click(function(){r=!1,!1,o(),s?l.velocity({opacity:0},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){t(this).remove()}}):l.remove()}),t("body").append(l),i.trigger("side-nav-overlay-attached"),s?l.velocity({display:"block"},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){r=!0,!1,i.trigger("side-nav-opened")}}):(l.css("display","block"),r=!0,!1,i.trigger("side-nav-opened"))},l=function(t){r=!1,!1,o(!1,!t)};i.click(function(){return!0===r?l(!0):s(!0),!1}),i.on("menu-out",s),i.on("menu-in",l)})},show:function(){this.trigger("click")},hide:function(){t("#sidenav-overlay").trigger("click")},menuOut:function(){this.trigger("menu-out")},menuIn:function(){this.trigger("menu-in")}};t.fn.sideNav=function(i){return e[i]?e[i].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.sideNav"):e.init.apply(this,arguments)}}(jQuery),function(t){var e=t(window),i=[],n=[],a=!1,o=0,r={top:0,right:0,bottom:0,left:0};function s(){++o;var a=e.scrollTop(),s=e.scrollLeft(),l=s+e.width(),u=a+e.height(),c=function(e,n,a,o){var r=t();return t.each(i,function(t,i){if(i.height()>0){var s=i.offset().top,l=i.offset().left,u=l+i.width(),c=s+i.height();!(l>n||ua||c0||i.autofocus||void 0!==t(this).attr("placeholder")||!0===t(i)[0].validity.badInput?t(this).siblings("label, i").addClass("active"):t(this).siblings("label, i").removeClass("active")})};var e="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";t(document).on("change",e,function(){0===t(this).val().length&&void 0===t(this).attr("placeholder")||t(this).siblings("label").addClass("active"),validate_field(t(this))}),t(document).ready(function(){Materialize.updateTextFields()}),t(document).on("reset",function(i){var n=t(i.target);n.is("form")&&(n.find(e).removeClass("valid").removeClass("invalid"),n.find(e).each(function(){""===t(this).attr("value")&&t(this).siblings("label, i").removeClass("active")}),n.find("select.initialized").each(function(){var t=n.find("option[selected]").text();n.siblings("input.select-dropdown").val(t)}))}),t(document).on("focus",e,function(){t(this).siblings("label, i").addClass("active")}),t(document).on("blur",e,function(){var e=t(this);0===e.val().length&&!0!==e[0].validity.badInput&&void 0===e.attr("placeholder")&&e.siblings("label, i").removeClass("active"),0===e.val().length&&!0!==e[0].validity.badInput&&void 0!==e.attr("placeholder")&&e.siblings("i").removeClass("active"),validate_field(e)}),window.validate_field=function(t){var e=void 0!==t.attr("length"),i=parseInt(t.attr("length")),n=t.val().length;0===t.val().length&&!1===t[0].validity.badInput?t.hasClass("validate")&&(t.removeClass("valid"),t.removeClass("invalid")):t.hasClass("validate")&&(t.is(":valid")&&e&&n<=i||t.is(":valid")&&!e?(t.removeClass("invalid"),t.addClass("valid")):(t.removeClass("valid"),t.addClass("invalid")))};var i=t(".hiddendiv").first();i.length||(i=t('
'),t("body").append(i));function n(e){var n=e.css("font-family"),a=e.css("font-size");a&&i.css("font-size",a),n&&i.css("font-family",n),"off"===e.attr("wrap")&&i.css("overflow-wrap","normal").css("white-space","pre"),i.text(e.val()+"\n");var o=i.html().replace(/\n/g,"
");i.html(o),e.is(":visible")?i.css("width",e.width()):i.css("width",t(window).width()/2),e.css("height",i.height())}t(".materialize-textarea").each(function(){var e=t(this);e.val().length&&n(e)}),t("body").on("keyup keydown autoresize",".materialize-textarea",function(){n(t(this))}),t(document).on("change",'.file-field input[type="file"]',function(){for(var e=t(this).closest(".file-field").find("input.file-path"),i=t(this)[0].files,n=[],a=0;a');t(this).after(e)});t(document).on("change",o,function(e){t(this).siblings(".thumb").find(".value").html(t(this).val())}),t(document).on("input mousedown touchstart",o,function(e){var i=t(this).siblings(".thumb"),n=t(this).outerWidth();i.length<=0&&(i=t(''),t(this).after(i)),i.find(".value").html(t(this).val()),r=!0,t(this).addClass("active"),i.hasClass("active")||i.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),"input"!==e.type&&((a=void 0===e.pageX||null===e.pageX?e.originalEvent.touches[0].pageX-t(this).offset().left:e.pageX-t(this).offset().left)<0?a=0:a>n&&(a=n),i.addClass("active").css("left",a)),i.find(".value").html(t(this).val())}),t(document).on("mouseup touchend",".range-field",function(){r=!1,t(this).removeClass("active")}),t(document).on("mousemove touchmove",".range-field",function(e){var i,n=t(this).children(".thumb");if(r){n.hasClass("active")||n.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),i=void 0===e.pageX||null===e.pageX?e.originalEvent.touches[0].pageX-t(this).offset().left:e.pageX-t(this).offset().left;var a=t(this).outerWidth();i<0?i=0:i>a&&(i=a),n.addClass("active").css("left",i),n.find(".value").html(n.siblings(o).val())}}),t(document).on("mouseout touchleave",".range-field",function(){if(!r){var e=t(this).children(".thumb");e.hasClass("active")&&e.velocity({height:"0",width:"0",top:"10px",marginLeft:"-6px"},{duration:100}),e.removeClass("active")}})}),t.fn.material_select=function(e){function i(t,e,i){var n=t.indexOf(e),a=-1===n;return a?t.push(e):t.splice(n,1),i.siblings("ul.dropdown-content").find("li").eq(e).toggleClass("active"),i.find("option").eq(e).prop("selected",a),function(t,e){for(var i="",n=0,a=t.length;n');s.addClass(n.attr("class"));var l=t(''),u=n.children("option, optgroup"),c=[],d=!1,p=n.find("option:selected").html()||n.find("option:first").html()||"",f=function(e,i,n){var a=i.is(":disabled")?"disabled ":"",o=i.data("icon"),r=i.attr("class");if(o){var s="";return r&&(s=' class="'+r+'"'),"multiple"===n?l.append(t('
  • "+i.html()+"
  • ")):l.append(t('
  • "+i.html()+"
  • ")),!0}"multiple"===n?l.append(t('
  • "+i.html()+"
  • ")):l.append(t('
  • '+i.html()+"
  • "))};u.length&&u.each(function(){if(t(this).is("option"))a?f(0,t(this),"multiple"):f(0,t(this));else if(t(this).is("optgroup")){var e=t(this).children("option");l.append(t('
  • '+t(this).attr("label")+"
  • ")),e.each(function(){f(0,t(this))})}}),l.find("li:not(.optgroup)").each(function(o){t(this).click(function(r){if(!t(this).hasClass("disabled")&&!t(this).hasClass("optgroup")){var s=!0;a?(t('input[type="checkbox"]',this).prop("checked",function(t,e){return!e}),s=i(c,t(this).index(),n),g.trigger("focus")):(l.find("li").removeClass("active"),t(this).toggleClass("active"),g.val(t(this).text())),activateOption(l,t(this)),n.find("option").eq(o).prop("selected",s),n.trigger("change"),void 0!==e&&e()}r.stopPropagation()})}),n.wrap(s);var h=t('');n.is(":disabled")&&h.addClass("disabled");var v=p.replace(/"/g,"""),g=t('');n.before(g),g.before(h),g.after(l),n.is(":disabled")||g.dropdown({hover:!1,closeOnClick:!1}),n.attr("tabindex")&&t(g[0]).attr("tabindex",n.attr("tabindex")),n.addClass("initialized"),g.on({focus:function(){if(t("ul.select-dropdown").not(l[0]).is(":visible")&&t("input.select-dropdown").trigger("close"),!l.is(":visible")){t(this).trigger("open",["focus"]);var e=t(this).val(),i=l.find("li").filter(function(){return t(this).text().toLowerCase()===e.toLowerCase()})[0];activateOption(l,i)}},click:function(t){t.stopPropagation()}}),g.on("blur",function(){a||t(this).trigger("close"),l.find("li.selected").removeClass("selected")}),l.hover(function(){d=!0},function(){d=!1}),t(window).on({click:function(){a&&(d||g.trigger("close"))}}),a&&n.find("option:selected:not(:disabled)").each(function(){var e=t(this).index();i(c,e,n),l.find("li").eq(e).find(":checkbox").prop("checked",!0)}),activateOption=function(e,i){if(i){e.find("li.selected").removeClass("selected");var n=t(i);n.addClass("selected"),l.scrollTo(n)}};var m=[];g.on("keydown",function(e){if(9!=e.which)if(40!=e.which||l.is(":visible")){if(13!=e.which||l.is(":visible")){e.preventDefault();var i=String.fromCharCode(e.which).toLowerCase();if(i&&-1===[9,13,27,38,40].indexOf(e.which)){m.push(i);var n=m.join(""),o=l.find("li").filter(function(){return 0===t(this).text().toLowerCase().indexOf(n)})[0];o&&activateOption(l,o)}if(13==e.which){var r=l.find("li.selected:not(.disabled)")[0];r&&(t(r).trigger("click"),a||g.trigger("close"))}40==e.which&&(o=l.find("li.selected").length?l.find("li.selected").next("li:not(.disabled)")[0]:l.find("li:not(.disabled)")[0],activateOption(l,o)),27==e.which&&g.trigger("close"),38==e.which&&(o=l.find("li.selected").prev("li:not(.disabled)")[0])&&activateOption(l,o),setTimeout(function(){m=[]},1e3)}}else g.trigger("open");else g.trigger("close")})}else n.data("select-id",null).removeClass("initialized")}})}}(jQuery),function(t){var e={init:function(e){return e=t.extend({indicators:!0,height:400,transition:500,interval:6e3},e),this.each(function(){var i,n,a,o=t(this),r=o.find("ul.slides").first(),s=r.find("li"),l=r.find(".active").index();function u(t,e){t.hasClass("center-align")?t.velocity({opacity:0,translateY:-100},{duration:e,queue:!1}):t.hasClass("right-align")?t.velocity({opacity:0,translateX:100},{duration:e,queue:!1}):t.hasClass("left-align")&&t.velocity({opacity:0,translateX:-100},{duration:e,queue:!1})}function c(t){t>=s.length?t=0:t<0&&(t=s.length-1),(l=r.find(".active").index())!=t&&(i=s.eq(l),$caption=i.find(".caption"),i.removeClass("active"),i.velocity({opacity:0},{duration:e.transition,queue:!1,easing:"easeOutQuad",complete:function(){s.not(".active").velocity({opacity:0,translateX:0,translateY:0},{duration:0,queue:!1})}}),u($caption,e.transition),e.indicators&&n.eq(l).removeClass("active"),s.eq(t).velocity({opacity:1},{duration:e.transition,queue:!1,easing:"easeOutQuad"}),s.eq(t).find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:e.transition,delay:e.transition,queue:!1,easing:"easeOutQuad"}),s.eq(t).addClass("active"),e.indicators&&n.eq(t).addClass("active"))}-1!=l&&(i=s.eq(l)),o.hasClass("fullscreen")||(e.indicators?o.height(e.height+40):o.height(e.height),r.height(e.height)),s.find(".caption").each(function(){u(t(this),0)}),s.find("img").each(function(){var e="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";t(this).attr("src")!==e&&(t(this).css("background-image","url("+t(this).attr("src")+")"),t(this).attr("src",e))}),e.indicators&&(n=t('
      '),s.each(function(i){var o=t('
    • ');o.click(function(){c(r.parent().find(t(this)).index()),clearInterval(a),a=setInterval(function(){l=r.find(".active").index(),s.length==l+1?l=0:l+=1,c(l)},e.transition+e.interval)}),n.append(o)}),o.append(n),n=o.find("ul.indicators").find("li.indicator-item")),i?i.show():(s.first().addClass("active").velocity({opacity:1},{duration:e.transition,queue:!1,easing:"easeOutQuad"}),l=0,i=s.eq(l),e.indicators&&n.eq(l).addClass("active")),i.find("img").each(function(){i.find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:e.transition,queue:!1,easing:"easeOutQuad"})}),a=setInterval(function(){c((l=r.find(".active").index())+1)},e.transition+e.interval);var d=!1,p=!1;o.hammer({prevent_default:!1}).bind("pan",function(t){if("touch"===t.gesture.pointerType){clearInterval(a);var e,i=t.gesture.direction,n=t.gesture.deltaX,l=t.gesture.velocityX;$curr_slide=r.find(".active"),$curr_slide.velocity({translateX:n},{duration:50,queue:!1,easing:"easeOutQuad"}),4===i&&(n>o.innerWidth()/2||l<-.65)?p=!0:2===i&&(n<-1*o.innerWidth()/2||l>.65)&&(d=!0),d&&(0===(e=$curr_slide.next()).length&&(e=s.first()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"})),p&&(0===(e=$curr_slide.prev()).length&&(e=s.last()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(t){"touch"===t.gesture.pointerType&&($curr_slide=r.find(".active"),!1,curr_index=r.find(".active").index(),p||d?d?(c(curr_index+1),$curr_slide.velocity({translateX:-1*o.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):p&&(c(curr_index-1),$curr_slide.velocity({translateX:o.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):$curr_slide.velocity({translateX:0},{duration:300,queue:!1,easing:"easeOutQuad"}),d=!1,p=!1,clearInterval(a),a=setInterval(function(){l=r.find(".active").index(),s.length==l+1?l=0:l+=1,c(l)},e.transition+e.interval))}),o.on("sliderPause",function(){clearInterval(a)}),o.on("sliderStart",function(){clearInterval(a),a=setInterval(function(){l=r.find(".active").index(),s.length==l+1?l=0:l+=1,c(l)},e.transition+e.interval)}),o.on("sliderNext",function(){c((l=r.find(".active").index())+1)}),o.on("sliderPrev",function(){c((l=r.find(".active").index())-1)})})},pause:function(){t(this).trigger("sliderPause")},start:function(){t(this).trigger("sliderStart")},next:function(){t(this).trigger("sliderNext")},prev:function(){t(this).trigger("sliderPrev")}};t.fn.slider=function(i){return e[i]?e[i].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.tooltip"):e.init.apply(this,arguments)}}(jQuery),function(t){t(document).ready(function(){t(document).on("click.card",".card",function(e){t(this).find("> .card-reveal").length&&(t(e.target).is(t(".card-reveal .card-title"))||t(e.target).is(t(".card-reveal .card-title i"))?t(this).find(".card-reveal").velocity({translateY:0},{duration:225,queue:!1,easing:"easeInOutQuad",complete:function(){t(this).css({display:"none"})}}):(t(e.target).is(t(".card .activator"))||t(e.target).is(t(".card .activator i")))&&(t(e.target).closest(".card").css("overflow","hidden"),t(this).find(".card-reveal").css({display:"block"}).velocity("stop",!1).velocity({translateY:"-100%"},{duration:300,queue:!1,easing:"easeInOutQuad"}))),t(".card-reveal").closest(".card").css("overflow","hidden")})})}(jQuery),function(t){t(document).ready(function(){t(document).on("click.chip",".chip .material-icons",function(e){t(this).parent().remove()})})}(jQuery),function(t){t(document).ready(function(){t.fn.pushpin=function(e){var i={top:0,bottom:1/0,offset:0};return e=t.extend(i,e),$index=0,this.each(function(){var i=Materialize.guid(),n=t(this),a=t(this).offset().top;function o(t){t.removeClass("pin-top"),t.removeClass("pinned"),t.removeClass("pin-bottom")}function r(i,n){i.each(function(){e.top<=n&&e.bottom>=n&&!t(this).hasClass("pinned")&&(o(t(this)),t(this).css("top",e.offset),t(this).addClass("pinned")),ne.bottom&&!t(this).hasClass("pin-bottom")&&(o(t(this)),t(this).addClass("pin-bottom"),t(this).css("top",e.bottom-a))})}r(n,t(window).scrollTop()),t(window).on("scroll."+i,function(){var i=t(window).scrollTop()+e.offset;r(n,i)})})}})}(jQuery),function(t){t(document).ready(function(){t.fn.reverse=[].reverse,t(document).on("mouseenter.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle)",function(i){var n=t(this);e(n)}),t(document).on("mouseleave.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle)",function(e){var n=t(this);i(n)}),t(document).on("click.fixedActionBtn",".fixed-action-btn.click-to-toggle > a",function(n){var a=t(this).parent();a.hasClass("active")?i(a):e(a)})}),t.fn.extend({openFAB:function(){e(t(this))},closeFAB:function(){i(t(this))}});var e=function(e){if($this=e,!1===$this.hasClass("active")){var i,n;!0===$this.hasClass("horizontal")?n=40:i=40,$this.addClass("active"),$this.find("ul .btn-floating").velocity({scaleY:".4",scaleX:".4",translateY:i+"px",translateX:n+"px"},{duration:0});var a=0;$this.find("ul .btn-floating").reverse().each(function(){t(this).velocity({opacity:"1",scaleX:"1",scaleY:"1",translateY:"0",translateX:"0"},{duration:80,delay:a}),a+=40})}},i=function(t){var e,i;$this=t,!0===$this.hasClass("horizontal")?i=40:e=40,$this.removeClass("active");$this.find("ul .btn-floating").velocity("stop",!0),$this.find("ul .btn-floating").velocity({opacity:"0",scaleX:".4",scaleY:".4",translateY:e+"px",translateX:i+"px"},{duration:80})}}(jQuery),function(t){Materialize.fadeInImage=function(e){var i=t(e);i.css({opacity:0}),t(i).velocity({opacity:1},{duration:650,queue:!1,easing:"easeOutSine"}),t(i).velocity({opacity:1},{duration:1300,queue:!1,easing:"swing",step:function(e,i){i.start=100;var n=e/100,a=150-(100-e)/1.75;a<100&&(a=100),e>=0&&t(this).css({"-webkit-filter":"grayscale("+n+")brightness("+a+"%)",filter:"grayscale("+n+")brightness("+a+"%)"})}})},Materialize.showStaggeredList=function(e){var i=0;t(e).find("li").velocity({translateX:"-100px"},{duration:0}),t(e).find("li").each(function(){t(this).velocity({opacity:"1",translateX:"0"},{duration:800,delay:i,easing:[60,10]}),i+=120})},t(document).ready(function(){var e=!1,i=!1;t(".dismissable").each(function(){t(this).hammer({prevent_default:!1}).bind("pan",function(n){if("touch"===n.gesture.pointerType){var a=t(this),o=n.gesture.direction,r=n.gesture.deltaX,s=n.gesture.velocityX;a.velocity({translateX:r},{duration:50,queue:!1,easing:"easeOutQuad"}),4===o&&(r>a.innerWidth()/2||s<-.75)&&(e=!0),2===o&&(r<-1*a.innerWidth()/2||s>.75)&&(i=!0)}}).bind("panend",function(n){if(Math.abs(n.gesture.deltaX)l.getBoundingClientRect().top+window.pageYOffset+r&&!0!==a.done&&(new Function(s)(),a.done=!0)}}},100)},function(t){"function"==typeof define&&define.amd?define("picker",["jquery"],t):"object"==typeof exports?module.exports=t(require("jquery")):this.Picker=t(jQuery)}(function(t){var e=t(window),i=t(document),n=t(document.documentElement);function a(e,s,u,c){if(!e)return a;var d=!1,p={id:e.id||"P"+Math.abs(~~(Math.random()*new Date))},f=u?t.extend(!0,{},u.defaults,c):c||{},h=t.extend({},a.klasses(),f.klass),v=t(e),g=function(){return this.start()},m=g.prototype={constructor:g,$node:v,start:function(){return p&&p.start?m:(p.methods={},p.start=!0,p.open=!1,p.type=e.type,e.autofocus=e==l(),e.readOnly=!f.editable,e.id=e.id||p.id,"text"!=e.type&&(e.type="text"),m.component=new u(m,f),m.$root=t(a._.node("div",y(),h.picker,'id="'+e.id+'_root" tabindex="0"')),m.$root.on({keydown:b,focusin:function(t){m.$root.removeClass(h.focused),t.stopPropagation()},"mousedown click":function(e){var i=e.target;i!=m.$root.children()[0]&&(e.stopPropagation(),"mousedown"!=e.type||t(i).is("input, select, textarea, button, option")||(e.preventDefault(),m.$root[0].focus()))}}).on({focus:function(){v.addClass(h.target)},blur:function(){v.removeClass(h.target)}}).on("focus.toOpen",w).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var e=t(this),i=e.data(),n=e.hasClass(h.navDisabled)||e.hasClass(h.disabled),a=l();a=a&&(a.type||a.href),(n||a&&!t.contains(m.$root[0],a))&&m.$root[0].focus(),!n&&i.nav?m.set("highlight",m.component.item.highlight,{nav:i.nav}):!n&&"pick"in i?m.set("select",i.pick):i.clear?m.clear().close(!0):i.close&&m.close(!0)}),r(m.$root[0],"hidden",!0),f.formatSubmit&&function(){var i;!0===f.hiddenName?(i=e.name,e.name=""):i=(i=["string"==typeof f.hiddenPrefix?f.hiddenPrefix:"","string"==typeof f.hiddenSuffix?f.hiddenSuffix:"_submit"])[0]+e.name+i[1];m._hidden=t('")[0],v.on("change."+p.id,function(){m._hidden.value=e.value?m.get("select",f.formatSubmit):""}),f.container?t(f.container).append(m._hidden):v.after(m._hidden)}(),function(){v.data(s,m).addClass(h.input).attr("tabindex",-1).val(v.data("value")?m.get("select",f.format):e.value),f.editable||v.on("focus."+p.id+" click."+p.id,function(t){t.preventDefault(),m.$root[0].focus()}).on("keydown."+p.id,b);r(e,{haspopup:!0,expanded:!1,readonly:!1,owns:e.id+"_root"}),document.querySelector("#"+e.id).addEventListener("pointerdown",function(t){t.target&&t.target.setPointerCapture&&t.target.setPointerCapture(t.pointerId)})}(),f.container?t(f.container).append(m.$root):v.after(m.$root),m.on({start:m.component.onStart,render:m.component.onRender,stop:m.component.onStop,open:m.component.onOpen,close:m.component.onClose,set:m.component.onSet}).on({start:f.onStart,render:f.onRender,stop:f.onStop,open:f.onOpen,close:f.onClose,set:f.onSet}),d=function(t){var e;t.currentStyle?e=t.currentStyle.position:window.getComputedStyle&&(e=getComputedStyle(t).position);return"fixed"==e}(m.$root.children()[0]),e.autofocus&&m.open(),m.trigger("start").trigger("render"))},render:function(t){return t?m.$root.html(y()):m.$root.find("."+h.box).html(m.component.nodes(p.open)),m.trigger("render")},stop:function(){return p.start?(m.close(),m._hidden&&m._hidden.parentNode.removeChild(m._hidden),m.$root.remove(),v.removeClass(h.input).removeData(s),setTimeout(function(){v.off("."+p.id)},0),e.type=p.type,e.readOnly=!1,m.trigger("stop"),p.methods={},p.start=!1,m):m},open:function(s){return p.open?m:(v.addClass(h.active),r(e,"expanded",!0),setTimeout(function(){m.$root.addClass(h.opened),r(m.$root[0],"hidden",!1)},0),!1!==s&&(p.open=!0,d&&n.css("overflow","hidden").css("padding-right","+="+o()),m.$root[0].focus(),i.on("click."+p.id+" focusin."+p.id,function(t){var i=t.target;i!=e&&i!=document&&3!=t.which&&m.close(i===m.$root.children()[0])}).on("keydown."+p.id,function(e){var i=e.keyCode,n=m.component.key[i],o=e.target;27==i?m.close(!0):o!=m.$root[0]||!n&&13!=i?t.contains(m.$root[0],o)&&13==i&&(e.preventDefault(),o.click()):(e.preventDefault(),n?a._.trigger(m.component.key.go,m,[a._.trigger(n)]):m.$root.find("."+h.highlighted).hasClass(h.disabled)||m.set("select",m.component.item.highlight).close())})),m.trigger("open"))},close:function(t){return t&&(m.$root.off("focus.toOpen")[0].focus(),setTimeout(function(){m.$root.on("focus.toOpen",w)},0)),v.removeClass(h.active),r(e,"expanded",!1),setTimeout(function(){m.$root.removeClass(h.opened+" "+h.focused),r(m.$root[0],"hidden",!0)},0),p.open?(p.open=!1,d&&n.css("overflow","").css("padding-right","-="+o()),i.off("."+p.id),m.trigger("close")):m},clear:function(t){return m.set("clear",null,t)},set:function(e,i,n){var a,o,r=t.isPlainObject(e),s=r?e:{};if(n=r&&t.isPlainObject(i)?i:n||{},e){for(a in r||(s[e]=i),s)o=s[a],a in m.component.item&&(void 0===o&&(o=null),m.component.set(a,o,n)),"select"!=a&&"clear"!=a||v.val("clear"==a?"":m.get(a,f.format)).trigger("change");m.render()}return n.muted?m:m.trigger("set",s)},get:function(t,i){if(null!=p[t=t||"value"])return p[t];if("valueSubmit"==t){if(m._hidden)return m._hidden.value;t="value"}if("value"==t)return e.value;if(t in m.component.item){if("string"==typeof i){var n=m.component.get(t);return n?a._.trigger(m.component.formats.toString,m.component,[i,n]):""}return m.component.get(t)}},on:function(e,i,n){var a,o,r=t.isPlainObject(e),s=r?e:{};if(e)for(a in r||(s[e]=i),s)o=s[a],n&&(a="_"+a),p.methods[a]=p.methods[a]||[],p.methods[a].push(o);return m},off:function(){var t,e,i=arguments;for(t=0,namesCount=i.length;t').appendTo("body"),a=i[0].offsetWidth;i.css("overflow","scroll");var o=t('
      ').appendTo(i)[0].offsetWidth;return i.remove(),a-o}function r(e,i,n){if(t.isPlainObject(i))for(var a in i)s(e,a,i[a]);else s(e,i,n)}function s(t,e,i){t.setAttribute(("role"==e?"":"aria-")+e,i)}function l(){try{return document.activeElement}catch(t){}}return a.klasses=function(t){return{picker:t=t||"picker",opened:t+"--opened",focused:t+"--focused",input:t+"__input",active:t+"__input--active",target:t+"__input--target",holder:t+"__holder",frame:t+"__frame",wrap:t+"__wrap",box:t+"__box"}},a._={group:function(t){for(var e,i="",n=a._.trigger(t.min,t);n<=a._.trigger(t.max,t,[n]);n+=t.i)e=a._.trigger(t.item,t,[n]),i+=a._.node(t.node,e[0],e[1],e[2]);return i},node:function(e,i,n,a){return i?"<"+e+(n=n?' class="'+n+'"':"")+(a=a?" "+a:"")+">"+(i=t.isArray(i)?i.join(""):i)+"":""},lead:function(t){return(t<10?"0":"")+t},trigger:function(t,e,i){return"function"==typeof t?t.apply(e,i||[]):t},digits:function(t){return/\d/.test(t[1])?2:1},isDate:function(t){return{}.toString.call(t).indexOf("Date")>-1&&this.isInteger(t.getDate())},isInteger:function(t){return{}.toString.call(t).indexOf("Number")>-1&&t%1==0},ariaAttr:function(e,i){t.isPlainObject(e)||(e={attribute:i});for(var n in i="",e){var a=("role"==n?"":"aria-")+n,o=e[n];i+=null==o?"":a+'="'+e[n]+'"'}return i}},a.extend=function(e,i){t.fn[e]=function(n,o){var r=this.data(e);return"picker"==n?r:r&&"string"==typeof n?a._.trigger(r[n],r,[o]):this.each(function(){t(this).data(e)||new a(this,e,i,n)})},t.fn[e].defaults=i.defaults},a}),function(t){"function"==typeof define&&define.amd?define(["picker","jquery"],t):"object"==typeof exports?module.exports=t(require("./picker.js"),require("jquery")):t(Picker,jQuery)}(function(t,e){var i,n=t._;function a(t,e){var i,n=this,a=t.$node[0],o=a.value,r=t.$node.data("value"),s=r||o,l=r?e.formatSubmit:e.format,u=function(){return a.currentStyle?"rtl"==a.currentStyle.direction:"rtl"==getComputedStyle(t.$root[0]).direction};n.settings=e,n.$node=t.$node,n.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},n.item={},n.item.clear=null,n.item.disable=(e.disable||[]).slice(0),n.item.enable=-(!0===(i=n.item.disable)[0]?i.shift():-1),n.set("min",e.min).set("max",e.max).set("now"),s?n.set("select",s,{format:l}):n.set("select",null).set("highlight",n.item.now),n.key={40:7,38:-7,39:function(){return u()?-1:1},37:function(){return u()?1:-1},go:function(t){var e=n.item.highlight,i=new Date(e.year,e.month,e.date+t);n.set("highlight",i,{interval:t}),this.render()}},t.on("render",function(){t.$root.find("."+e.klass.selectMonth).on("change",function(){var i=this.value;i&&(t.set("highlight",[t.get("view").year,i,t.get("highlight").date]),t.$root.find("."+e.klass.selectMonth).trigger("focus"))}),t.$root.find("."+e.klass.selectYear).on("change",function(){var i=this.value;i&&(t.set("highlight",[i,t.get("view").month,t.get("highlight").date]),t.$root.find("."+e.klass.selectYear).trigger("focus"))})},1).on("open",function(){var i="";n.disabled(n.get("now"))&&(i=":not(."+e.klass.buttonToday+")"),t.$root.find("button"+i+", select").attr("disabled",!1)},1).on("close",function(){t.$root.find("button, select").attr("disabled",!0)},1)}a.prototype.set=function(t,e,i){var n=this,a=n.item;return null===e?("clear"==t&&(t="select"),a[t]=e,n):(a["enable"==t?"disable":"flip"==t?"enable":t]=n.queue[t].split(" ").map(function(a){return e=n[a](t,e,i)}).pop(),"select"==t?n.set("highlight",a.select,i):"highlight"==t?n.set("view",a.highlight,i):t.match(/^(flip|min|max|disable|enable)$/)&&(a.select&&n.disabled(a.select)&&n.set("select",a.select,i),a.highlight&&n.disabled(a.highlight)&&n.set("highlight",a.highlight,i)),n)},a.prototype.get=function(t){return this.item[t]},a.prototype.create=function(t,i,a){var o;return(i=void 0===i?t:i)==-1/0||i==1/0?o=i:e.isPlainObject(i)&&n.isInteger(i.pick)?i=i.obj:e.isArray(i)?(i=new Date(i[0],i[1],i[2]),i=n.isDate(i)?i:this.create().obj):i=n.isInteger(i)||n.isDate(i)?this.normalize(new Date(i),a):this.now(t,i,a),{year:o||i.getFullYear(),month:o||i.getMonth(),date:o||i.getDate(),day:o||i.getDay(),obj:o||i,pick:o||i.getTime()}},a.prototype.createRange=function(t,i){var a=this,o=function(t){return!0===t||e.isArray(t)||n.isDate(t)?a.create(t):t};return n.isInteger(t)||(t=o(t)),n.isInteger(i)||(i=o(i)),n.isInteger(t)&&e.isPlainObject(i)?t=[i.year,i.month,i.date+t]:n.isInteger(i)&&e.isPlainObject(t)&&(i=[t.year,t.month,t.date+i]),{from:o(t),to:o(i)}},a.prototype.withinRange=function(t,e){return t=this.createRange(t.from,t.to),e.pick>=t.from.pick&&e.pick<=t.to.pick},a.prototype.overlapRanges=function(t,e){return t=this.createRange(t.from,t.to),e=this.createRange(e.from,e.to),this.withinRange(t,e.from)||this.withinRange(t,e.to)||this.withinRange(e,t.from)||this.withinRange(e,t.to)},a.prototype.now=function(t,e,i){return e=new Date,i&&i.rel&&e.setDate(e.getDate()+i.rel),this.normalize(e,i)},a.prototype.navigate=function(t,i,n){var a,o,r,s,l=e.isArray(i),u=e.isPlainObject(i),c=this.item.view;if(l||u){for(u?(o=i.year,r=i.month,s=i.date):(o=+i[0],r=+i[1],s=+i[2]),n&&n.nav&&c&&c.month!==r&&(o=c.year,r=c.month),o=(a=new Date(o,r+(n&&n.nav?n.nav:0),1)).getFullYear(),r=a.getMonth();new Date(o,r,s).getMonth()!==r;)s-=1;i=[o,r,s]}return i},a.prototype.normalize=function(t){return t.setHours(0,0,0,0),t},a.prototype.measure=function(t,e){return e?"string"==typeof e?e=this.parse(t,e):n.isInteger(e)&&(e=this.now(t,e,{rel:e})):e="min"==t?-1/0:1/0,e},a.prototype.viewset=function(t,e){return this.create([e.year,e.month,1])},a.prototype.validate=function(t,i,a){var o,r,s,l,u=this,c=i,d=a&&a.interval?a.interval:1,p=-1===u.item.enable,f=u.item.min,h=u.item.max,v=p&&u.item.disable.filter(function(t){if(e.isArray(t)){var a=u.create(t).pick;ai.pick&&(r=!0)}return n.isInteger(t)}).length;if((!a||!a.nav)&&(!p&&u.disabled(i)||p&&u.disabled(i)&&(v||o||r)||!p&&(i.pick<=f.pick||i.pick>=h.pick)))for(p&&!v&&(!r&&d>0||!o&&d<0)&&(d*=-1);u.disabled(i)&&(Math.abs(d)>1&&(i.monthc.month)&&(i=c,d=d>0?1:-1),i.pick<=f.pick?(s=!0,d=1,i=u.create([f.year,f.month,f.date+(i.pick===f.pick?0:-1)])):i.pick>=h.pick&&(l=!0,d=-1,i=u.create([h.year,h.month,h.date+(i.pick===h.pick?0:1)])),!s||!l);)i=u.create([i.year,i.month,i.date+d]);return i},a.prototype.disabled=function(t){var i=this,a=i.item.disable.filter(function(a){return n.isInteger(a)?t.day===(i.settings.firstDay?a:a-1)%7:e.isArray(a)||n.isDate(a)?t.pick===i.create(a).pick:e.isPlainObject(a)?i.withinRange(a,t):void 0});return a=a.length&&!a.filter(function(t){return e.isArray(t)&&"inverted"==t[3]||e.isPlainObject(t)&&t.inverted}).length,-1===i.item.enable?!a:a||t.picki.item.max.pick},a.prototype.parse=function(t,e,i){var a=this,o={};return e&&"string"==typeof e?(i&&i.format||((i=i||{}).format=a.settings.format),a.formats.toArray(i.format).map(function(t){var i=a.formats[t],r=i?n.trigger(i,a,[e,o]):t.replace(/^!/,"").length;i&&(o[t]=e.substr(0,r)),e=e.substr(r)}),[o.yyyy||o.yy,+(o.mm||o.m)-1,o.dd||o.d]):e},a.prototype.formats=function(){function t(t,e,i){var n=t.match(/\w+/)[0];return i.mm||i.m||(i.m=e.indexOf(n)+1),n.length}function e(t){return t.match(/\w+/)[0].length}return{d:function(t,e){return t?n.digits(t):e.date},dd:function(t,e){return t?2:n.lead(e.date)},ddd:function(t,i){return t?e(t):this.settings.weekdaysShort[i.day]},dddd:function(t,i){return t?e(t):this.settings.weekdaysFull[i.day]},m:function(t,e){return t?n.digits(t):e.month+1},mm:function(t,e){return t?2:n.lead(e.month+1)},mmm:function(e,i){var n=this.settings.monthsShort;return e?t(e,n,i):n[i.month]},mmmm:function(e,i){var n=this.settings.monthsFull;return e?t(e,n,i):n[i.month]},yy:function(t,e){return t?2:(""+e.year).slice(2)},yyyy:function(t,e){return t?4:e.year},toArray:function(t){return t.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(t,e){var i=this;return i.formats.toArray(t).map(function(t){return n.trigger(i.formats[t],i,[0,e])||t.replace(/^!/,"")}).join("")}}}(),a.prototype.isDateExact=function(t,i){return n.isInteger(t)&&n.isInteger(i)||"boolean"==typeof t&&"boolean"==typeof i?t===i:(n.isDate(t)||e.isArray(t))&&(n.isDate(i)||e.isArray(i))?this.create(t).pick===this.create(i).pick:!(!e.isPlainObject(t)||!e.isPlainObject(i))&&(this.isDateExact(t.from,i.from)&&this.isDateExact(t.to,i.to))},a.prototype.isDateOverlap=function(t,i){var a=this.settings.firstDay?1:0;return n.isInteger(t)&&(n.isDate(i)||e.isArray(i))?(t=t%7+a)===this.create(i).day+1:n.isInteger(i)&&(n.isDate(t)||e.isArray(t))?(i=i%7+a)===this.create(t).day+1:!(!e.isPlainObject(t)||!e.isPlainObject(i))&&this.overlapRanges(t,i)},a.prototype.flipEnable=function(t){var e=this.item;e.enable=t||(-1==e.enable?1:-1)},a.prototype.deactivate=function(t,i){var a=this,o=a.item.disable.slice(0);return"flip"==i?a.flipEnable():!1===i?(a.flipEnable(1),o=[]):!0===i?(a.flipEnable(-1),o=[]):i.map(function(t){for(var i,r=0;r=f.year&&c.month>=f.month||!t&&c.year<=p.year&&c.month<=p.month?" "+o.klass.navDisabled:""),"data-nav="+(t||-1)+" "+n.ariaAttr({role:"button",controls:a.$node[0].id+"_table"})+' title="'+(t?o.labelMonthNext:o.labelMonthPrev)+'"')},g=function(e){var i=o.showMonthsShort?o.monthsShort:o.monthsFull;return"short_months"==e&&(i=o.monthsShort),o.selectMonths&&null==e?n.node("select",n.group({min:0,max:11,i:1,node:"option",item:function(t){return[i[t],0,"value="+t+(c.month==t?" selected":"")+(c.year==p.year&&tf.month?" disabled":"")]}}),o.klass.selectMonth+" browser-default",(t?"":"disabled")+" "+n.ariaAttr({controls:a.$node[0].id+"_table"})+' title="'+o.labelMonthSelect+'"'):"short_months"==e?null!=l?n.node("div",i[l.month]):n.node("div",i[c.month]):n.node("div",i[c.month],o.klass.month)},m=function(e){var i=c.year,r=!0===o.selectYears?5:~~(o.selectYears/2);if(r){var s=p.year,l=f.year,u=i-r,d=i+r;if(s>u&&(d+=s-u,u=s),lv?v:h,d=l}if(o.selectYears&&null==e)return n.node("select",n.group({min:u,max:d,i:1,node:"option",item:function(t){return[t,0,"value="+t+(i==t?" selected":"")]}}),o.klass.selectYear+" browser-default",(t?"":"disabled")+" "+n.ariaAttr({controls:a.$node[0].id+"_table"})+' title="'+o.labelYearSelect+'"')}return"raw"==e?n.node("div",i):n.node("div",i,o.klass.year)};return createDayLabel=function(){return null!=l?n.node("div",l.date):n.node("div",s.date)},createWeekdayLabel=function(){var t;return t=null!=l?l.day:s.day,o.weekdaysFull[t]},n.node("div",n.node("div",createWeekdayLabel(),"picker__weekday-display")+n.node("div",g("short_months"),o.klass.month_display)+n.node("div",createDayLabel(),o.klass.day_display)+n.node("div",m("raw"),o.klass.year_display),o.klass.date_display)+n.node("div",n.node("div",(o.selectYears,g()+m()+v()+v(1)),o.klass.header)+n.node("table",h+n.node("tbody",n.group({min:0,max:5,i:1,node:"tr",item:function(t){var e=o.firstDay&&0===a.create([c.year,c.month,1]).day?-7:0;return[n.group({min:7*t-c.day+e+1,max:function(){return this.min+7-1},i:1,node:"td",item:function(t){t=a.create([c.year,c.month,t+(o.firstDay?1:0)]);var e,i=l&&l.pick==t.pick,r=u&&u.pick==t.pick,h=d&&a.disabled(t)||t.pickf.pick,v=n.trigger(a.formats.toString,a,[o.format,t]);return[n.node("div",t.date,(e=[o.klass.day],e.push(c.month==t.month?o.klass.infocus:o.klass.outfocus),s.pick==t.pick&&e.push(o.klass.now),i&&e.push(o.klass.selected),r&&e.push(o.klass.highlighted),h&&e.push(o.klass.disabled),e.join(" ")),"data-pick="+t.pick+" "+n.ariaAttr({role:"gridcell",label:v,selected:!(!i||a.$node.val()!==v)||null,activedescendant:!!r||null,disabled:!!h||null})),"",n.ariaAttr({role:"presentation"})]}})]}})),o.klass.table,'id="'+a.$node[0].id+'_table" '+n.ariaAttr({role:"grid",controls:a.$node[0].id,readonly:!0})),o.klass.calendar_container)+n.node("div",n.node("button",o.today,"btn-flat picker__today","type=button data-pick="+s.pick+(t&&!a.disabled(s)?"":" disabled")+" "+n.ariaAttr({controls:a.$node[0].id}))+n.node("button",o.clear,"btn-flat picker__clear","type=button data-clear=1"+(t?"":" disabled")+" "+n.ariaAttr({controls:a.$node[0].id}))+n.node("button",o.close,"btn-flat picker__close","type=button data-close=true "+(t?"":" disabled")+" "+n.ariaAttr({controls:a.$node[0].id})),o.klass.footer)},a.defaults={labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysLetter:["S","M","T","W","T","F","S"],today:"Today",clear:"Clear",close:"Close",format:"d mmmm, yyyy",klass:{table:(i=t.klasses().picker+"__")+"table",header:i+"header",date_display:i+"date-display",day_display:i+"day-display",month_display:i+"month-display",year_display:i+"year-display",calendar_container:i+"calendar-container",navPrev:i+"nav--prev",navNext:i+"nav--next",navDisabled:i+"nav--disabled",month:i+"month",year:i+"year",selectMonth:i+"select--month",selectYear:i+"select--year",weekdays:i+"weekday",day:i+"day",disabled:i+"day--disabled",selected:i+"day--selected",highlighted:i+"day--highlighted",now:i+"day--today",infocus:i+"day--infocus",outfocus:i+"day--outfocus",footer:i+"footer",buttonClear:i+"button--clear",buttonToday:i+"button--today",buttonClose:i+"button--close"}},t.extend("pickadate",a)}),function(t){function e(){var e=+t(this).attr("length"),i=+t(this).val().length,n=i<=e;t(this).parent().find('span[class="character-counter"]').html(i+"/"+e),function(t,e){var i=e.hasClass("invalid");t&&i?e.removeClass("invalid"):t||i||(e.removeClass("valid"),e.addClass("invalid"))}(n,t(this))}function i(){t(this).parent().find('span[class="character-counter"]').html("")}t.fn.characterCounter=function(){return this.each(function(){var n,a;void 0!==t(this).attr("length")&&(t(this).on("input",e),t(this).on("focus",e),t(this).on("blur",i),n=t(this),a=t("").addClass("character-counter").css("float","right").css("font-size","12px").css("height",1),n.parent().append(a))})},t(document).ready(function(){t("input, textarea").characterCounter()})}(jQuery),function(t){var e={init:function(e){return e=t.extend({time_constant:200,dist:-100,shift:0,padding:0,full_width:!1},e),this.each(function(){var i,n,a,o,r,s,l,u,c,d,p,f,h,v,g,m,b,w=t(this);if(w.hasClass("initialized"))return!0;function x(t){return t.targetTouches&&t.targetTouches.length>=1?t.targetTouches[0].clientX:t.clientX}function C(t){return t.targetTouches&&t.targetTouches.length>=1?t.targetTouches[0].clientY:t.clientY}function k(t){return t>=s?t%s:t<0?k(s+t%s):t}function T(t){var o,l,u,c,d,p,h;for(n="number"==typeof t?t:n,a=Math.floor((n+r/2)/r),d=-(c=(u=n-a*r)<0?1:-1)*u*2/r,e.full_width?h="translateX(0)":(h="translateX("+(w[0].clientWidth-item_width)/2+"px) ",h+="translateY("+(w[0].clientHeight-item_width)/2+"px)"),(p=i[k(a)]).style[f]=h+" translateX("+-u/2+"px) translateX("+c*e.shift*d*o+"px) translateZ("+e.dist*d+"px)",p.style.zIndex=0,e.full_width?tweenedOpacity=1:tweenedOpacity=1-.2*d,p.style.opacity=tweenedOpacity,l=s>>1,o=1;o<=l;++o)e.full_width?(zTranslation=e.dist,tweenedOpacity=o===l&&u<0?1-d:1):(zTranslation=e.dist*(2*o+d*c),tweenedOpacity=1-.2*(2*o+d*c)),(p=i[k(a+o)]).style[f]=h+" translateX("+(e.shift+(r*o-u)/2)+"px) translateZ("+zTranslation+"px)",p.style.zIndex=-o,p.style.opacity=tweenedOpacity,e.full_width?(zTranslation=e.dist,tweenedOpacity=o===l&&u>0?1-d:1):(zTranslation=e.dist*(2*o-d*c),tweenedOpacity=1-.2*(2*o-d*c)),(p=i[k(a-o)]).style[f]=h+" translateX("+(-e.shift+(-r*o-u)/2)+"px) translateZ("+zTranslation+"px)",p.style.zIndex=-o,p.style.opacity=tweenedOpacity;(p=i[k(a)]).style[f]=h+" translateX("+-u/2+"px) translateX("+c*e.shift*d+"px) translateZ("+e.dist*d+"px)",p.style.zIndex=0,e.full_width?tweenedOpacity=1:tweenedOpacity=1-.2*d,p.style.opacity=tweenedOpacity}function S(){var t,e,i;e=(t=Date.now())-v,v=t,i=n-h,h=n,p=.8*(1e3*i/(1+e))+.2*p}function O(){var t,i;c&&(t=Date.now()-v,(i=c*Math.exp(-t/e.time_constant))>2||i<-2?(T(d-i),requestAnimationFrame(O)):T(d))}function P(i){if(m)return i.preventDefault(),i.stopPropagation(),!1;if(!e.full_width){var n=t(i.target).closest(".carousel-item").index(),o=a%s-n;o<0?Math.abs(o+s)0&&Math.abs(o-s)0&&t(this).trigger("carouselPrev",[o])}}function E(t){o=!0,m=!1,b=!1,l=x(t),u=C(t),p=c=0,h=n,v=Date.now(),clearInterval(g),g=setInterval(S,100)}function A(t){var e,i;if(o)if(e=x(t),y=C(t),i=l-e,Math.abs(u-y)<30&&!b)(i>2||i<-2)&&(m=!0,l=e,T(n+i));else{if(m)return t.preventDefault(),t.stopPropagation(),!1;b=!0}if(m)return t.preventDefault(),t.stopPropagation(),!1}function q(t){return o=!1,clearInterval(g),d=n,(p>10||p<-10)&&(d=n+(c=.9*p)),d=Math.round(d/r)*r,c=d-n,v=Date.now(),requestAnimationFrame(O),t.preventDefault(),t.stopPropagation(),!1}e.full_width&&(e.dist=0,imageHeight=w.find(".carousel-item img").first().load(function(){w.css("height",t(this).height())})),w.addClass("initialized"),o=!1,n=d=0,i=[],item_width=w.find(".carousel-item").first().innerWidth(),r=2*item_width+e.padding,w.find(".carousel-item").each(function(){i.push(t(this)[0])}),s=i.length,f="transform",["webkit","Moz","O","ms"].every(function(t){var e=t+"Transform";return void 0===document.body.style[e]||(f=e,!1)}),window.onresize=T,void 0!==window.ontouchstart&&(w[0].addEventListener("touchstart",E),w[0].addEventListener("touchmove",A),w[0].addEventListener("touchend",q)),w[0].addEventListener("mousedown",E),w[0].addEventListener("mousemove",A),w[0].addEventListener("mouseup",q),w[0].addEventListener("click",P),T(n),t(this).on("carouselNext",function(t,e){void 0===e&&(e=1),n!==(d=n+r*e)&&(c=d-n,v=Date.now(),requestAnimationFrame(O))}),t(this).on("carouselPrev",function(t,e){void 0===e&&(e=1),n!==(d=n-r*e)&&(c=d-n,v=Date.now(),requestAnimationFrame(O))})})},next:function(e){t(this).trigger("carouselNext",[e])},prev:function(e){t(this).trigger("carouselPrev",[e])}};t.fn.carousel=function(i){return e[i]?e[i].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.carousel"):e.init.apply(this,arguments)}}(jQuery); \ No newline at end of file +var jQuery,Vel;void 0===jQuery&&(jQuery="function"==typeof require?$=require("jQuery"):$);jQuery.easing.jswing=jQuery.easing.swing,jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(t,e,i,n,a){return jQuery.easing[jQuery.easing.def](t,e,i,n,a)},easeInQuad:function(t,e,i,n,a){return n*(e/=a)*e+i},easeOutQuad:function(t,e,i,n,a){return-n*(e/=a)*(e-2)+i},easeInOutQuad:function(t,e,i,n,a){return(e/=a/2)<1?n/2*e*e+i:-n/2*(--e*(e-2)-1)+i},easeInCubic:function(t,e,i,n,a){return n*(e/=a)*e*e+i},easeOutCubic:function(t,e,i,n,a){return n*((e=e/a-1)*e*e+1)+i},easeInOutCubic:function(t,e,i,n,a){return(e/=a/2)<1?n/2*e*e*e+i:n/2*((e-=2)*e*e+2)+i},easeInQuart:function(t,e,i,n,a){return n*(e/=a)*e*e*e+i},easeOutQuart:function(t,e,i,n,a){return-n*((e=e/a-1)*e*e*e-1)+i},easeInOutQuart:function(t,e,i,n,a){return(e/=a/2)<1?n/2*e*e*e*e+i:-n/2*((e-=2)*e*e*e-2)+i},easeInQuint:function(t,e,i,n,a){return n*(e/=a)*e*e*e*e+i},easeOutQuint:function(t,e,i,n,a){return n*((e=e/a-1)*e*e*e*e+1)+i},easeInOutQuint:function(t,e,i,n,a){return(e/=a/2)<1?n/2*e*e*e*e*e+i:n/2*((e-=2)*e*e*e*e+2)+i},easeInSine:function(t,e,i,n,a){return-n*Math.cos(e/a*(Math.PI/2))+n+i},easeOutSine:function(t,e,i,n,a){return n*Math.sin(e/a*(Math.PI/2))+i},easeInOutSine:function(t,e,i,n,a){return-n/2*(Math.cos(Math.PI*e/a)-1)+i},easeInExpo:function(t,e,i,n,a){return 0==e?i:n*Math.pow(2,10*(e/a-1))+i},easeOutExpo:function(t,e,i,n,a){return e==a?i+n:n*(1-Math.pow(2,-10*e/a))+i},easeInOutExpo:function(t,e,i,n,a){return 0==e?i:e==a?i+n:(e/=a/2)<1?n/2*Math.pow(2,10*(e-1))+i:n/2*(2-Math.pow(2,-10*--e))+i},easeInCirc:function(t,e,i,n,a){return-n*(Math.sqrt(1-(e/=a)*e)-1)+i},easeOutCirc:function(t,e,i,n,a){return n*Math.sqrt(1-(e=e/a-1)*e)+i},easeInOutCirc:function(t,e,i,n,a){return(e/=a/2)<1?-n/2*(Math.sqrt(1-e*e)-1)+i:n/2*(Math.sqrt(1-(e-=2)*e)+1)+i},easeInElastic:function(t,e,i,n,a){var o=1.70158,r=0,s=n;if(0==e)return i;if(1==(e/=a))return i+n;if(r||(r=.3*a),s0&&e-1 in t))}if(!t.jQuery){var i=function(t,e){return new i.fn.init(t,e)};i.isWindow=function(t){return null!=t&&t==t.window},i.type=function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?a[r.call(t)]||"object":typeof t},i.isArray=Array.isArray||function(t){return"array"===i.type(t)},i.isPlainObject=function(t){var e;if(!t||"object"!==i.type(t)||t.nodeType||i.isWindow(t))return!1;try{if(t.constructor&&!o.call(t,"constructor")&&!o.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}for(e in t);return void 0===e||o.call(t,e)},i.each=function(t,i,n){var a=0,o=t.length,r=e(t);if(n){if(r)for(;o>a&&!1!==i.apply(t[a],n);a++);else for(a in t)if(!1===i.apply(t[a],n))break}else if(r)for(;o>a&&!1!==i.call(t[a],a,t[a]);a++);else for(a in t)if(!1===i.call(t[a],a,t[a]))break;return t},i.data=function(t,e,a){if(void 0===a){var o=(r=t[i.expando])&&n[r];if(void 0===e)return o;if(o&&e in o)return o[e]}else if(void 0!==e){var r=t[i.expando]||(t[i.expando]=++i.uuid);return n[r]=n[r]||{},n[r][e]=a,a}},i.removeData=function(t,e){var a=t[i.expando],o=a&&n[a];o&&i.each(e,function(t,e){delete o[e]})},i.extend=function(){var t,e,n,a,o,r,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[l]||{},l++),"object"!=typeof s&&"function"!==i.type(s)&&(s={}),l===u&&(s=this,l--);u>l;l++)if(null!=(o=arguments[l]))for(a in o)t=s[a],s!==(n=o[a])&&(c&&n&&(i.isPlainObject(n)||(e=i.isArray(n)))?(e?(e=!1,r=t&&i.isArray(t)?t:[]):r=t&&i.isPlainObject(t)?t:{},s[a]=i.extend(c,r,n)):void 0!==n&&(s[a]=n));return s},i.queue=function(t,n,a){if(t){n=(n||"fx")+"queue";var o=i.data(t,n);return a?(!o||i.isArray(a)?o=i.data(t,n,function(t,i){var n=i||[];return null!=t&&(e(Object(t))?function(t,e){for(var i=+e.length,n=0,a=t.length;i>n;)t[a++]=e[n++];if(i!=i)for(;void 0!==e[n];)t[a++]=e[n++];t.length=a}(n,"string"==typeof t?[t]:t):[].push.call(n,t)),n}(a)):o.push(a),o):o||[]}},i.dequeue=function(t,e){i.each(t.nodeType?[t]:t,function(t,n){e=e||"fx";var a=i.queue(n,e),o=a.shift();"inprogress"===o&&(o=a.shift()),o&&("fx"===e&&a.unshift("inprogress"),o.call(n,function(){i.dequeue(n,e)}))})},i.fn=i.prototype={init:function(t){if(t.nodeType)return this[0]=t,this;throw new Error("Not a DOM node.")},offset:function(){var e=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:e.top+(t.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:e.left+(t.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function t(){for(var t=this.offsetParent||document;t&&"html"===!t.nodeType.toLowerCase&&"static"===t.style.position;)t=t.offsetParent;return t||document}var e=this[0],t=t.apply(e),n=this.offset(),a=/^(?:body|html)$/i.test(t.nodeName)?{top:0,left:0}:i(t).offset();return n.top-=parseFloat(e.style.marginTop)||0,n.left-=parseFloat(e.style.marginLeft)||0,t.style&&(a.top+=parseFloat(t.style.borderTopWidth)||0,a.left+=parseFloat(t.style.borderLeftWidth)||0),{top:n.top-a.top,left:n.left-a.left}}};var n={};i.expando="velocity"+(new Date).getTime(),i.uuid=0;for(var a={},o=a.hasOwnProperty,r=a.toString,s="Boolean Number String Function Array Date RegExp Object Error".split(" "),l=0;la;++a){var o=u(i,t,n);if(0===o)return i;i-=(l(i,t,n)-e)/o}return i}function d(e,i,a){var o,r,s=0;do{(o=l(r=i+(a-i)/2,t,n)-e)>0?a=r:i=r}while(Math.abs(o)>v&&++se;++e)x[e]=l(e*y,t,n)}()}var f=4,h=.001,v=1e-7,g=10,m=11,y=1/(m-1),b="Float32Array"in e;if(4!==arguments.length)return!1;for(var w=0;4>w;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;t=Math.min(t,1),n=Math.min(n,1),t=Math.max(t,0),n=Math.max(n,0);var x=b?new Float32Array(m):new Array(m),C=!1,k=function(e){return C||p(),t===i&&n===a?e:0===e?0:1===e?1:l(function(e){for(var i=0,a=1,o=m-1;a!=o&&x[a]<=e;++a)i+=y;var r=i+(e-x[--a])/(x[a+1]-x[a])*y,s=u(r,t,n);return s>=h?c(e,r):0==s?r:d(e,i,i+y)}(e),i,a)};k.getControlPoints=function(){return[{x:t,y:i},{x:n,y:a}]};var T="generateBezier("+[t,i,n,a]+")";return k.toString=function(){return T},k}function s(t,e){var i=t;return f.isString(t)?m.Easings[t]||(i=!1):i=f.isArray(t)&&1===t.length?function(t){return function(e){return Math.round(e*t)*(1/t)}}.apply(null,t):f.isArray(t)&&2===t.length?y.apply(null,t.concat([e])):!(!f.isArray(t)||4!==t.length)&&r.apply(null,t),!1===i&&(i=m.Easings[m.defaults.easing]?m.defaults.easing:g),i}function l(t){if(t){var e=(new Date).getTime(),i=m.State.calls.length;i>1e4&&(m.State.calls=function(t){for(var e=-1,i=t?t.length:0,n=[];++ea;a++)if(m.State.calls[a]){var r=m.State.calls[a],s=r[0],d=r[2],p=r[3],h=!!p,v=null;p||(p=m.State.calls[a][3]=e-16);for(var g=Math.min((e-p)/d.duration,1),y=0,w=s.length;w>y;y++){var C=s[y],k=C.element;if(o(k)){var T=!1;if(d.display!==n&&null!==d.display&&"none"!==d.display){if("flex"===d.display){c.each(["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"],function(t,e){b.setPropertyValue(k,"display",e)})}b.setPropertyValue(k,"display",d.display)}for(var S in d.visibility!==n&&"hidden"!==d.visibility&&b.setPropertyValue(k,"visibility",d.visibility),C)if("element"!==S){var O,P=C[S],E=f.isString(P.easing)?m.Easings[P.easing]:P.easing;if(1===g)O=P.endValue;else{var A=P.endValue-P.startValue;if(O=P.startValue+A*E(g,d,A),!h&&O===P.currentValue)continue}if(P.currentValue=O,"tween"===S)v=O;else{if(b.Hooks.registered[S]){var q=b.Hooks.getRoot(S),M=o(k).rootPropertyValueCache[q];M&&(P.rootPropertyValue=M)}var _=b.setPropertyValue(k,S,P.currentValue+(0===parseFloat(O)?"":P.unitType),P.rootPropertyValue,P.scrollData);b.Hooks.registered[S]&&(o(k).rootPropertyValueCache[q]=b.Normalizations.registered[q]?b.Normalizations.registered[q]("extract",null,_[1]):_[1]),"transform"===_[0]&&(T=!0)}}d.mobileHA&&o(k).transformCache.translate3d===n&&(o(k).transformCache.translate3d="(0px, 0px, 0px)",T=!0),T&&b.flushTransformCache(k)}}d.display!==n&&"none"!==d.display&&(m.State.calls[a][2].display=!1),d.visibility!==n&&"hidden"!==d.visibility&&(m.State.calls[a][2].visibility=!1),d.progress&&d.progress.call(r[1],r[1],g,Math.max(0,p+d.duration-e),p,v),1===g&&u(a)}}m.State.isTicking&&x(l)}function u(t,e){if(!m.State.calls[t])return!1;for(var i=m.State.calls[t][0],a=m.State.calls[t][1],r=m.State.calls[t][2],s=m.State.calls[t][4],l=!1,u=0,d=i.length;d>u;u++){var p=i[u].element;if(e||r.loop||("none"===r.display&&b.setPropertyValue(p,"display",r.display),"hidden"===r.visibility&&b.setPropertyValue(p,"visibility",r.visibility)),!0!==r.loop&&(c.queue(p)[1]===n||!/\.velocityQueueEntryFlag/i.test(c.queue(p)[1]))&&o(p)){o(p).isAnimating=!1,o(p).rootPropertyValueCache={};var f=!1;c.each(b.Lists.transforms3D,function(t,e){var i=/^scale/.test(e)?1:0,a=o(p).transformCache[e];o(p).transformCache[e]!==n&&new RegExp("^\\("+i+"[^.]").test(a)&&(f=!0,delete o(p).transformCache[e])}),r.mobileHA&&(f=!0,delete o(p).transformCache.translate3d),f&&b.flushTransformCache(p),b.Values.removeClass(p,"velocity-animating")}if(!e&&r.complete&&!r.loop&&u===d-1)try{r.complete.call(a,a)}catch(t){setTimeout(function(){throw t},1)}s&&!0!==r.loop&&s(a),o(p)&&!0===r.loop&&!e&&(c.each(o(p).tweensContainer,function(t,e){/^rotate/.test(t)&&360===parseFloat(e.endValue)&&(e.endValue=0,e.startValue=360),/^backgroundPosition/.test(t)&&100===parseFloat(e.endValue)&&"%"===e.unitType&&(e.endValue=0,e.startValue=100)}),m(p,"reverse",{loop:!0,delay:r.delay})),!1!==r.queue&&c.dequeue(p,r.queue)}m.State.calls[t]=!1;for(var h=0,v=m.State.calls.length;v>h;h++)if(!1!==m.State.calls[h]){l=!0;break}!1===l&&(m.State.isTicking=!1,delete m.State.calls,m.State.calls=[])}var c,d=function(){if(i.documentMode)return i.documentMode;for(var t=7;t>4;t--){var e=i.createElement("div");if(e.innerHTML="\x3c!--[if IE "+t+"]>0)},isWrapped:function(t){return t&&(t.jquery||e.Zepto&&e.Zepto.zepto.isZ(t))},isSVG:function(t){return e.SVGElement&&t instanceof e.SVGElement},isEmptyObject:function(t){for(var e in t)return!1;return!0}},h=!1;if(t.fn&&t.fn.jquery?(c=t,h=!0):c=e.Velocity.Utilities,8>=d&&!h)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(!(7>=d)){var v=400,g="swing",m={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:e.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:i.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:c,Redirects:{},Easings:{},Promise:e.Promise,defaults:{queue:"",duration:v,easing:g,begin:n,complete:n,progress:n,display:n,visibility:n,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(t){c.data(t,"velocity",{isSVG:f.isSVG(t),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};e.pageYOffset!==n?(m.State.scrollAnchor=e,m.State.scrollPropertyLeft="pageXOffset",m.State.scrollPropertyTop="pageYOffset"):(m.State.scrollAnchor=i.documentElement||i.body.parentNode||i.body,m.State.scrollPropertyLeft="scrollLeft",m.State.scrollPropertyTop="scrollTop");var y=function(){function t(t){return-t.tension*t.x-t.friction*t.v}function e(e,i,n){var a={x:e.x+n.dx*i,v:e.v+n.dv*i,tension:e.tension,friction:e.friction};return{dx:a.v,dv:t(a)}}function i(i,n){var a={dx:i.v,dv:t(i)},o=e(i,.5*n,a),r=e(i,.5*n,o),s=e(i,n,r),l=1/6*(a.dx+2*(o.dx+r.dx)+s.dx),u=1/6*(a.dv+2*(o.dv+r.dv)+s.dv);return i.x=i.x+l*n,i.v=i.v+u*n,i}return function t(e,n,a){var o,r,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0;for(e=parseFloat(e)||500,n=parseFloat(n)||20,a=a||null,l.tension=e,l.friction=n,(o=null!==a)?r=(c=t(e,n))/a*.016:r=.016;s=i(s||l,r),u.push(1+s.x),c+=16,Math.abs(s.x)>1e-4&&Math.abs(s.v)>1e-4;);return o?function(t){return u[t*(u.length-1)|0]}:c}}();m.Easings={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},spring:function(t){return 1-Math.cos(4.5*t*Math.PI)*Math.exp(6*-t)}},c.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(t,e){m.Easings[e[0]]=r.apply(null,e[1])});var b=m.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var t=0;t=d)switch(t){case"name":return"filter";case"extract":var n=i.toString().match(/alpha\(opacity=(.*)\)/i);return n?n[1]/100:1;case"inject":return e.style.zoom=1,parseFloat(i)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(i),10)+")"}else switch(t){case"name":return"opacity";case"extract":case"inject":return i}}},register:function(){9>=d||m.State.isGingerbread||(b.Lists.transformsBase=b.Lists.transformsBase.concat(b.Lists.transforms3D));for(var t=0;ta&&(a=1),r=!/(\d)$/i.test(a);break;case"skew":r=!/(deg|\d)$/i.test(a);break;case"rotate":r=!/(deg|\d)$/i.test(a)}return r||(o(i).transformCache[e]="("+a+")"),o(i).transformCache[e]}}}();for(t=0;t=d||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=d?4===a.split(" ").length&&(a=a.split(/\s+/).slice(0,3).join(" ")):3===a.split(" ").length&&(a+=" 1"),(8>=d?"rgb":"rgba")+"("+a.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(t){return t.replace(/-(\w)/g,function(t,e){return e.toUpperCase()})},SVGAttribute:function(t){var e="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(d||m.State.isAndroid&&!m.State.isChrome)&&(e+="|transform"),new RegExp("^("+e+")$","i").test(t)},prefixCheck:function(t){if(m.State.prefixMatches[t])return[m.State.prefixMatches[t],!0];for(var e=["","Webkit","Moz","ms","O"],i=0,n=e.length;n>i;i++){var a;if(a=0===i?t:e[i]+t.replace(/^\w/,function(t){return t.toUpperCase()}),f.isString(m.State.prefixElement.style[a]))return m.State.prefixMatches[t]=a,[a,!0]}return[t,!1]}},Values:{hexToRgb:function(t){var e;return t=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(t,e,i,n){return e+e+i+i+n+n}),(e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t))?[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]:[0,0,0]},isCSSNullValue:function(t){return 0==t||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(t)},getUnitType:function(t){return/^(rotate|skew)/i.test(t)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(t)?"":"px"},getDisplayType:function(t){var e=t&&t.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(e)?"inline":/^(li)$/i.test(e)?"list-item":/^(tr)$/i.test(e)?"table-row":/^(table)$/i.test(e)?"table":/^(tbody)$/i.test(e)?"table-row-group":"block"},addClass:function(t,e){t.classList?t.classList.add(e):t.className+=(t.className.length?" ":"")+e},removeClass:function(t,e){t.classList?t.classList.remove(e):t.className=t.className.toString().replace(new RegExp("(^|\\s)"+e.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(t,i,a,r){function s(t,i){function a(){p&&b.setPropertyValue(t,"display","none")}var l=0;if(8>=d)l=c.css(t,i);else{var u,p=!1;if(/^(width|height)$/.test(i)&&0===b.getPropertyValue(t,"display")&&(p=!0,b.setPropertyValue(t,"display",b.Values.getDisplayType(t))),!r){if("height"===i&&"border-box"!==b.getPropertyValue(t,"boxSizing").toString().toLowerCase()){var f=t.offsetHeight-(parseFloat(b.getPropertyValue(t,"borderTopWidth"))||0)-(parseFloat(b.getPropertyValue(t,"borderBottomWidth"))||0)-(parseFloat(b.getPropertyValue(t,"paddingTop"))||0)-(parseFloat(b.getPropertyValue(t,"paddingBottom"))||0);return a(),f}if("width"===i&&"border-box"!==b.getPropertyValue(t,"boxSizing").toString().toLowerCase()){var h=t.offsetWidth-(parseFloat(b.getPropertyValue(t,"borderLeftWidth"))||0)-(parseFloat(b.getPropertyValue(t,"borderRightWidth"))||0)-(parseFloat(b.getPropertyValue(t,"paddingLeft"))||0)-(parseFloat(b.getPropertyValue(t,"paddingRight"))||0);return a(),h}}u=o(t)===n?e.getComputedStyle(t,null):o(t).computedStyle?o(t).computedStyle:o(t).computedStyle=e.getComputedStyle(t,null),"borderColor"===i&&(i="borderTopColor"),(""===(l=9===d&&"filter"===i?u.getPropertyValue(i):u[i])||null===l)&&(l=t.style[i]),a()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(i)){var v=s(t,"position");("fixed"===v||"absolute"===v&&/top|left/i.test(i))&&(l=c(t).position()[i]+"px")}return l}var l;if(b.Hooks.registered[i]){var u=i,p=b.Hooks.getRoot(u);a===n&&(a=b.getPropertyValue(t,b.Names.prefixCheck(p)[0])),b.Normalizations.registered[p]&&(a=b.Normalizations.registered[p]("extract",t,a)),l=b.Hooks.extractValue(u,a)}else if(b.Normalizations.registered[i]){var f,h;"transform"!==(f=b.Normalizations.registered[i]("name",t))&&(h=s(t,b.Names.prefixCheck(f)[0]),b.Values.isCSSNullValue(h)&&b.Hooks.templates[i]&&(h=b.Hooks.templates[i][1])),l=b.Normalizations.registered[i]("extract",t,h)}if(!/^[\d-]/.test(l))if(o(t)&&o(t).isSVG&&b.Names.SVGAttribute(i))if(/^(height|width)$/i.test(i))try{l=t.getBBox()[i]}catch(t){l=0}else l=t.getAttribute(i);else l=s(t,b.Names.prefixCheck(i)[0]);return b.Values.isCSSNullValue(l)&&(l=0),m.debug>=2&&console.log("Get "+i+": "+l),l},setPropertyValue:function(t,i,n,a,r){var s=i;if("scroll"===i)r.container?r.container["scroll"+r.direction]=n:"Left"===r.direction?e.scrollTo(n,r.alternateValue):e.scrollTo(r.alternateValue,n);else if(b.Normalizations.registered[i]&&"transform"===b.Normalizations.registered[i]("name",t))b.Normalizations.registered[i]("inject",t,n),s="transform",n=o(t).transformCache[i];else{if(b.Hooks.registered[i]){var l=i,u=b.Hooks.getRoot(i);a=a||b.getPropertyValue(t,u),n=b.Hooks.injectValue(l,n,a),i=u}if(b.Normalizations.registered[i]&&(n=b.Normalizations.registered[i]("inject",t,n),i=b.Normalizations.registered[i]("name",t)),s=b.Names.prefixCheck(i)[0],8>=d)try{t.style[s]=n}catch(t){m.debug&&console.log("Browser does not support ["+n+"] for ["+s+"]")}else o(t)&&o(t).isSVG&&b.Names.SVGAttribute(i)?t.setAttribute(i,n):t.style[s]=n;m.debug>=2&&console.log("Set "+i+" ("+s+"): "+n)}return[s,n]},flushTransformCache:function(t){function e(e){return parseFloat(b.getPropertyValue(t,e))}var i="";if((d||m.State.isAndroid&&!m.State.isChrome)&&o(t).isSVG){var n={translate:[e("translateX"),e("translateY")],skewX:[e("skewX")],skewY:[e("skewY")],scale:1!==e("scale")?[e("scale"),e("scale")]:[e("scaleX"),e("scaleY")],rotate:[e("rotateZ"),0,0]};c.each(o(t).transformCache,function(t){/^translate/i.test(t)?t="translate":/^scale/i.test(t)?t="scale":/^rotate/i.test(t)&&(t="rotate"),n[t]&&(i+=t+"("+n[t].join(" ")+") ",delete n[t])})}else{var a,r;c.each(o(t).transformCache,function(e){return a=o(t).transformCache[e],"transformPerspective"===e?(r=a,!0):(9===d&&"rotateZ"===e&&(e="rotate"),void(i+=e+a+" "))}),r&&(i="perspective"+r+" "+i)}b.setPropertyValue(t,"transform",i)}};b.Hooks.register(),b.Normalizations.register(),m.hook=function(t,e,i){var r=n;return t=a(t),c.each(t,function(t,a){if(o(a)===n&&m.init(a),i===n)r===n&&(r=m.CSS.getPropertyValue(a,e));else{var s=m.CSS.setPropertyValue(a,e,i);"transform"===s[0]&&m.CSS.flushTransformCache(a),r=s}}),r};var w=function(){function t(){return d?P.promise||null:p}function r(){function t(t){function p(t,e){var i=n,a=n,o=n;return f.isArray(t)?(i=t[0],!f.isArray(t[1])&&/^[\d-]/.test(t[1])||f.isFunction(t[1])||b.RegEx.isHex.test(t[1])?o=t[1]:(f.isString(t[1])&&!b.RegEx.isHex.test(t[1])||f.isArray(t[1]))&&(a=e?t[1]:s(t[1],u.duration),t[2]!==n&&(o=t[2]))):i=t,e||(a=a||u.easing),f.isFunction(i)&&(i=i.call(r,T,k)),f.isFunction(o)&&(o=o.call(r,T,k)),[i||0,a,o]}function h(t,e){var i,n;return n=(e||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(t){return i=t,""}),i||(i=b.Values.getUnitType(t)),[n,i]}function v(){var t={myParent:r.parentNode||i.body,position:b.getPropertyValue(r,"position"),fontSize:b.getPropertyValue(r,"fontSize")},n=t.position===V.lastPosition&&t.myParent===V.lastParent,a=t.fontSize===V.lastFontSize;V.lastParent=t.myParent,V.lastPosition=t.position,V.lastFontSize=t.fontSize;var s=100,l={};if(a&&n)l.emToPx=V.lastEmToPx,l.percentToPxWidth=V.lastPercentToPxWidth,l.percentToPxHeight=V.lastPercentToPxHeight;else{var u=o(r).isSVG?i.createElementNS("http://www.w3.org/2000/svg","rect"):i.createElement("div");m.init(u),t.myParent.appendChild(u),c.each(["overflow","overflowX","overflowY"],function(t,e){m.CSS.setPropertyValue(u,e,"hidden")}),m.CSS.setPropertyValue(u,"position",t.position),m.CSS.setPropertyValue(u,"fontSize",t.fontSize),m.CSS.setPropertyValue(u,"boxSizing","content-box"),c.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(t,e){m.CSS.setPropertyValue(u,e,s+"%")}),m.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=V.lastPercentToPxWidth=(parseFloat(b.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=V.lastPercentToPxHeight=(parseFloat(b.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=V.lastEmToPx=(parseFloat(b.getPropertyValue(u,"paddingLeft"))||1)/s,t.myParent.removeChild(u)}return null===V.remToPx&&(V.remToPx=parseFloat(b.getPropertyValue(i.body,"fontSize"))||16),null===V.vwToPx&&(V.vwToPx=parseFloat(e.innerWidth)/100,V.vhToPx=parseFloat(e.innerHeight)/100),l.remToPx=V.remToPx,l.vwToPx=V.vwToPx,l.vhToPx=V.vhToPx,m.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),r),l}if(u.begin&&0===T)try{u.begin.call(g,g)}catch(t){setTimeout(function(){throw t},1)}if("scroll"===O){var w,C,S,E=/^x$/i.test(u.axis)?"Left":"Top",A=parseFloat(u.offset)||0;u.container?f.isWrapped(u.container)||f.isNode(u.container)?(u.container=u.container[0]||u.container,S=(w=u.container["scroll"+E])+c(r).position()[E.toLowerCase()]+A):u.container=null:(w=m.State.scrollAnchor[m.State["scrollProperty"+E]],C=m.State.scrollAnchor[m.State["scrollProperty"+("Left"===E?"Top":"Left")]],S=c(r).offset()[E.toLowerCase()]+A),d={scroll:{rootPropertyValue:!1,startValue:w,currentValue:w,endValue:S,unitType:"",easing:u.easing,scrollData:{container:u.container,direction:E,alternateValue:C}},element:r},m.debug&&console.log("tweensContainer (scroll): ",d.scroll,r)}else if("reverse"===O){if(!o(r).tweensContainer)return void c.dequeue(r,u.queue);"none"===o(r).opts.display&&(o(r).opts.display="auto"),"hidden"===o(r).opts.visibility&&(o(r).opts.visibility="visible"),o(r).opts.loop=!1,o(r).opts.begin=null,o(r).opts.complete=null,x.easing||delete u.easing,x.duration||delete u.duration,u=c.extend({},o(r).opts,u);var q=c.extend(!0,{},o(r).tweensContainer);for(var M in q)if("element"!==M){var _=q[M].startValue;q[M].startValue=q[M].currentValue=q[M].endValue,q[M].endValue=_,f.isEmptyObject(x)||(q[M].easing=u.easing),m.debug&&console.log("reverse tweensContainer ("+M+"): "+JSON.stringify(q[M]),r)}d=q}else if("start"===O){for(var I in o(r).tweensContainer&&!0===o(r).isAnimating&&(q=o(r).tweensContainer),c.each(y,function(t,e){if(RegExp("^"+b.Lists.colors.join("$|^")+"$").test(t)){var i=p(e,!0),a=i[0],o=i[1],r=i[2];if(b.RegEx.isHex.test(a)){for(var s=["Red","Green","Blue"],l=b.Values.hexToRgb(a),u=r?b.Values.hexToRgb(r):n,c=0;cz;z++){var D={delay:I.delay,progress:I.progress};z===_-1&&(D.display=I.display,D.visibility=I.visibility,D.complete=I.complete),w(g,"reverse",D)}return t()}};(m=c.extend(w,m)).animate=w;var x=e.requestAnimationFrame||p;return m.State.isMobile||i.hidden===n||i.addEventListener("visibilitychange",function(){i.hidden?(x=function(t){return setTimeout(function(){t(!0)},16)},l()):x=e.requestAnimationFrame||p}),t.Velocity=m,t!==e&&(t.fn.velocity=w,t.fn.velocity.defaults=m.defaults),c.each(["Down","Up"],function(t,e){m.Redirects["slide"+e]=function(t,i,a,o,r,s){var l=c.extend({},i),u=l.begin,d=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===n&&(l.display="Down"===e?"inline"===m.CSS.Values.getDisplayType(t)?"inline-block":"block":"none"),l.begin=function(){for(var i in u&&u.call(r,r),p){f[i]=t.style[i];var n=m.CSS.getPropertyValue(t,i);p[i]="Down"===e?[n,0]:[0,n]}f.overflow=t.style.overflow,t.style.overflow="hidden"},l.complete=function(){for(var e in f)t.style[e]=f[e];d&&d.call(r,r),s&&s.resolver(r)},m(t,p,l)}}),c.each(["In","Out"],function(t,e){m.Redirects["fade"+e]=function(t,i,a,o,r,s){var l=c.extend({},i),u={opacity:"In"===e?1:0},d=l.complete;l.complete=a!==o-1?l.begin=null:function(){d&&d.call(r,r),s&&s.resolver(r)},l.display===n&&(l.display="In"===e?"auto":"none"),m(this,u,l)}}),m}jQuery.fn.velocity=jQuery.fn.animate}(window.jQuery||window.Zepto||window,window,document)})),function(t,e,i,n){"use strict";function a(t,e,i){return setTimeout(c(t,i),e)}function o(t,e,i){return!!Array.isArray(t)&&(r(t,i[e],i),!0)}function r(t,e,i){var a;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==n)for(a=0;a-1}function m(t){return t.trim().split(/\s+/g)}function y(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]}):n.sort()),n}function x(t,e){for(var i,a,o=e[0].toUpperCase()+e.slice(1),r=0;r1&&!i.firstMultiple?i.firstMultiple=O(e):1===a&&(i.firstMultiple=!1);var o=i.firstInput,r=i.firstMultiple,s=r?r.center:o.center,l=e.center=P(n);e.timeStamp=it(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=q(s,l),e.distance=A(s,l),function(t,e){var i=e.center,n=t.offsetDelta||{},a=t.prevDelta||{},o=t.prevInput||{};(e.eventType===ct||o.eventType===pt)&&(a=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=a.x+(i.x-n.x),e.deltaY=a.y+(i.y-n.y)}(i,e),e.offsetDirection=E(e.deltaX,e.deltaY),e.scale=r?function(t,e){return A(e[0],e[1],kt)/A(t[0],t[1],kt)}(r.pointers,n):1,e.rotation=r?function(t,e){return q(e[1],e[0],kt)-q(t[1],t[0],kt)}(r.pointers,n):0,S(i,e);var u=t.element;v(e.srcEvent.target,u)&&(u=e.srcEvent.target),e.target=u}(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function S(t,e){var i,a,o,r,s=t.lastInterval||e,l=e.timeStamp-s.timeStamp;if(e.eventType!=ft&&(l>ut||s.velocity===n)){var u=s.deltaX-e.deltaX,c=s.deltaY-e.deltaY,d=function(t,e,i){return{x:e/t||0,y:i/t||0}}(l,u,c);a=d.x,o=d.y,i=et(d.x)>et(d.y)?d.x:d.y,r=E(u,c),t.lastInterval=e}else i=s.velocity,a=s.velocityX,o=s.velocityY,r=s.direction;e.velocity=i,e.velocityX=a,e.velocityY=o,e.direction=r}function O(t){for(var e=[],i=0;ia;)i+=t[a].clientX,n+=t[a].clientY,a++;return{x:tt(i/e),y:tt(n/e)}}function E(t,e){return t===e?ht:et(t)>=et(e)?t>0?vt:gt:e>0?mt:yt}function A(t,e,i){i||(i=Ct);var n=e[i[0]]-t[i[0]],a=e[i[1]]-t[i[1]];return Math.sqrt(n*n+a*a)}function q(t,e,i){i||(i=Ct);var n=e[i[0]]-t[i[0]],a=e[i[1]]-t[i[1]];return 180*Math.atan2(a,n)/Math.PI}function M(){this.evEl=St,this.evWin=Ot,this.allow=!0,this.pressed=!1,k.apply(this,arguments)}function _(){this.evEl=At,this.evWin=qt,k.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function I(){this.evTarget=_t,this.evWin=It,this.started=!1,k.apply(this,arguments)}function V(){this.evTarget=jt,this.targetIds={},k.apply(this,arguments)}function j(){k.apply(this,arguments);var t=c(this.handler,this);this.touch=new V(this.manager,t),this.mouse=new M(this.manager,t)}function z(t,e){this.manager=t,this.set(e)}function D(t){this.id=nt++,this.manager=null,this.options=l(t||{},this.defaults),this.options.enable=p(this.options.enable,!0),this.state=Rt,this.simultaneous={},this.requireFail=[]}function L(t){return t==yt?"down":t==mt?"up":t==vt?"left":t==gt?"right":""}function Q(t,e){var i=e.manager;return i?i.get(t):t}function N(){D.apply(this,arguments)}function F(){N.apply(this,arguments),this.pX=null,this.pY=null}function W(){N.apply(this,arguments)}function $(){D.apply(this,arguments),this._timer=null,this._input=null}function R(){N.apply(this,arguments)}function X(){N.apply(this,arguments)}function H(){D.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function Y(t,e){return(e=e||{}).recognizers=p(e.recognizers,Y.defaults.preset),new B(t,e)}function B(t,e){e=e||{},this.options=l(e,Y.defaults),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=function(t){var e=t.options.inputClass;return new(e||(ot?_:rt?V:at?j:M))(t,T)}(this),this.touchAction=new z(this,this.options.touchAction),G(this,!0),r(e.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function G(t,e){var i=t.element;r(t.options.cssProps,function(t,n){i.style[x(i.style,n)]=e?t:""})}function U(t,i){var n=e.createEvent("Event");n.initEvent(t,!0,!0),n.gesture=i,i.target.dispatchEvent(n)}var Z=["","webkit","moz","MS","ms","o"],J=e.createElement("div"),K="function",tt=Math.round,et=Math.abs,it=Date.now,nt=1,at="ontouchstart"in t,ot=x(t,"PointerEvent")!==n,rt=at&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),st="touch",lt="mouse",ut=25,ct=1,dt=2,pt=4,ft=8,ht=1,vt=2,gt=4,mt=8,yt=16,bt=vt|gt,wt=mt|yt,xt=bt|wt,Ct=["x","y"],kt=["clientX","clientY"];k.prototype={handler:function(){},init:function(){this.evEl&&f(this.element,this.evEl,this.domHandler),this.evTarget&&f(this.target,this.evTarget,this.domHandler),this.evWin&&f(C(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&h(this.element,this.evEl,this.domHandler),this.evTarget&&h(this.target,this.evTarget,this.domHandler),this.evWin&&h(C(this.element),this.evWin,this.domHandler)}};var Tt={mousedown:ct,mousemove:dt,mouseup:pt},St="mousedown",Ot="mousemove mouseup";u(M,k,{handler:function(t){var e=Tt[t.type];e&ct&&0===t.button&&(this.pressed=!0),e&dt&&1!==t.which&&(e=pt),this.pressed&&this.allow&&(e&pt&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:lt,srcEvent:t}))}});var Pt={pointerdown:ct,pointermove:dt,pointerup:pt,pointercancel:ft,pointerout:ft},Et={2:st,3:"pen",4:lt,5:"kinect"},At="pointerdown",qt="pointermove pointerup pointercancel";t.MSPointerEvent&&(At="MSPointerDown",qt="MSPointerMove MSPointerUp MSPointerCancel"),u(_,k,{handler:function(t){var e=this.store,i=!1,n=t.type.toLowerCase().replace("ms",""),a=Pt[n],o=Et[t.pointerType]||t.pointerType,r=o==st,s=y(e,t.pointerId,"pointerId");a&ct&&(0===t.button||r)?0>s&&(e.push(t),s=e.length-1):a&(pt|ft)&&(i=!0),0>s||(e[s]=t,this.callback(this.manager,a,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),i&&e.splice(s,1))}});var Mt={touchstart:ct,touchmove:dt,touchend:pt,touchcancel:ft},_t="touchstart",It="touchstart touchmove touchend touchcancel";u(I,k,{handler:function(t){var e=Mt[t.type];if(e===ct&&(this.started=!0),this.started){var i=function(t,e){var i=b(t.touches),n=b(t.changedTouches);return e&(pt|ft)&&(i=w(i.concat(n),"identifier",!0)),[i,n]}.call(this,t,e);e&(pt|ft)&&0==i[0].length-i[1].length&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:st,srcEvent:t})}}});var Vt={touchstart:ct,touchmove:dt,touchend:pt,touchcancel:ft},jt="touchstart touchmove touchend touchcancel";u(V,k,{handler:function(t){var e=Vt[t.type],i=function(t,e){var i=b(t.touches),n=this.targetIds;if(e&(ct|dt)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var a,o,r=b(t.changedTouches),s=[],l=this.target;if(o=i.filter(function(t){return v(t.target,l)}),e===ct)for(a=0;a-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(i.options.event+(e?function(t){return t&Gt?"cancel":t&Yt?"end":t&Ht?"move":t&Xt?"start":""}(n):""),t)}var i=this,n=this.state;Yt>n&&e(!0),e(),n>=Yt&&e(!0)},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=32)},canEmit:function(){for(var t=0;to?vt:gt,i=o!=this.pX,n=Math.abs(t.deltaX)):(a=0===r?ht:0>r?mt:yt,i=r!=this.pY,n=Math.abs(t.deltaY))),t.direction=a,i&&n>e.threshold&&a&e.direction},attrTest:function(t){return N.prototype.attrTest.call(this,t)&&(this.state&Xt||!(this.state&Xt)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=L(t.direction);e&&this.manager.emit(this.options.event+e,t),this._super.emit.call(this,t)}}),u(W,N,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Ft]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&Xt)},emit:function(t){if(this._super.emit.call(this,t),1!==t.scale){var e=t.scale<1?"in":"out";this.manager.emit(this.options.event+e,t)}}}),u($,D,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Qt]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distancee.time;if(this._input=t,!n||!i||t.eventType&(pt|ft)&&!o)this.reset();else if(t.eventType&ct)this.reset(),this._timer=a(function(){this.state=Bt,this.tryEmit()},e.time,this);else if(t.eventType&pt)return Bt;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===Bt&&(t&&t.eventType&pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=it(),this.manager.emit(this.options.event,this._input)))}}),u(R,N,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Ft]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&Xt)}}),u(X,N,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:bt|wt,pointers:1},getTouchAction:function(){return F.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(bt|wt)?e=t.velocity:i&bt?e=t.velocityX:i&wt&&(e=t.velocityY),this._super.attrTest.call(this,t)&&i&t.direction&&t.distance>this.options.threshold&&et(e)>this.options.velocity&&t.eventType&pt},emit:function(t){var e=L(t.direction);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(H,D,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Nt]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distance li > .collapsible-header"),a=i.data("collapsible");function o(e){n=i.find("> li > .collapsible-header"),e.hasClass("active")?e.parent().addClass("active"):e.parent().removeClass("active"),e.parent().hasClass("active")?e.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}}):e.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}}),n.not(e).removeClass("active").parent().removeClass("active"),n.not(e).parent().children(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}})}function r(e){e.hasClass("active")?e.parent().addClass("active"):e.parent().removeClass("active"),e.parent().hasClass("active")?e.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}}):e.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){t(this).css("height","")}})}function s(t){return t.closest("li > .collapsible-header")}i.off("click.collapse","> li > .collapsible-header"),n.off("click.collapse"),i.on("click.collapse","> li > .collapsible-header",function(i){var n=t(this),l=t(i.target);s(l).length>0&&(l=s(l)),l.toggleClass("active"),e.accordion||"accordion"===a||void 0===a?o(l):(r(l),n.hasClass("active")&&r(n))});n=i.find("> li > .collapsible-header");e.accordion||"accordion"===a||void 0===a?o(n.filter(".active").first()):n.filter(".active").each(function(){r(t(this))})})},t(document).ready(function(){t(".collapsible").collapsible()})}(jQuery),function(t){t.fn.scrollTo=function(e){return t(this).scrollTop(t(this).scrollTop()-t(this).offset().top+t(e).offset().top),this},t.fn.dropdown=function(e){var i={inDuration:300,outDuration:225,constrain_width:!0,hover:!1,gutter:0,belowOrigin:!1,alignment:"left"};this.each(function(){var n=t(this),a=t.extend({},i,e),o=!1,r=t("#"+n.attr("data-activates"));function s(){void 0!==n.data("induration")&&(a.inDuration=n.data("inDuration")),void 0!==n.data("outduration")&&(a.outDuration=n.data("outDuration")),void 0!==n.data("constrainwidth")&&(a.constrain_width=n.data("constrainwidth")),void 0!==n.data("hover")&&(a.hover=n.data("hover")),void 0!==n.data("gutter")&&(a.gutter=n.data("gutter")),void 0!==n.data("beloworigin")&&(a.belowOrigin=n.data("beloworigin")),void 0!==n.data("alignment")&&(a.alignment=n.data("alignment"))}function l(e){"focus"===e&&(o=!0),s(),r.addClass("active"),n.addClass("active"),!0===a.constrain_width?r.css("width",n.outerWidth()):r.css("white-space","nowrap");var i,l=window.innerHeight,u=n.innerHeight(),c=n.offset().left,d=n.offset().top-t(window).scrollTop(),p=a.alignment,f=0;if(!0===a.belowOrigin&&(f=u),c+r.innerWidth()>t(window).width()?p="right":c-r.innerWidth()+n.innerWidth()<0&&(p="left"),d+r.innerHeight()>l)if(d+u-r.innerHeight()<0){var h=l-d-f;r.css("max-height",h)}else f||(f+=u),f-=r.innerHeight();if("left"===p)i=a.gutter,leftPosition=n.position().left+i;else if("right"===p){var v=n.position().left+n.outerWidth()-r.outerWidth();i=-a.gutter,leftPosition=v+i}r.css({position:"absolute",top:n.position().top+f,left:leftPosition}),r.stop(!0,!0).css("opacity",0).slideDown({queue:!1,duration:a.inDuration,easing:"easeOutCubic",complete:function(){t(this).css("height","")}}).animate({opacity:1},{queue:!1,duration:a.inDuration,easing:"easeOutSine"})}function u(){o=!1,r.fadeOut(a.outDuration),r.removeClass("active"),n.removeClass("active"),setTimeout(function(){r.css("max-height","")},a.outDuration)}if(s(),n.after(r),a.hover){var c=!1;n.unbind("click."+n.attr("id")),n.on("mouseenter",function(t){!1===c&&(l(),c=!0)}),n.on("mouseleave",function(e){var i=e.toElement||e.relatedTarget;t(i).closest(".dropdown-content").is(r)||(r.stop(!0,!0),u(),c=!1)}),r.on("mouseleave",function(e){var i=e.toElement||e.relatedTarget;t(i).closest(".dropdown-button").is(n)||(r.stop(!0,!0),u(),c=!1)})}else n.unbind("click."+n.attr("id")),n.bind("click."+n.attr("id"),function(e){o||(n[0]!=e.currentTarget||n.hasClass("active")||0!==t(e.target).closest(".dropdown-content").length?n.hasClass("active")&&(u(),t(document).unbind("click."+r.attr("id")+" touchstart."+r.attr("id"))):(e.preventDefault(),l("click")),r.hasClass("active")&&t(document).bind("click."+r.attr("id")+" touchstart."+r.attr("id"),function(e){r.is(e.target)||n.is(e.target)||n.find(e.target).length||(u(),t(document).unbind("click."+r.attr("id")+" touchstart."+r.attr("id")))}))});n.on("open",function(t,e){l(e)}),n.on("close",u)})},t(document).ready(function(){t(".dropdown-button").dropdown()})}(jQuery),function(t){var e=new Array,i=0;t.fn.extend({openModal:function(n){t("body").css("overflow","hidden");var a={opacity:.5,in_duration:350,out_duration:250,ready:void 0,complete:void 0,dismissible:!0,starting_top:"4%"},o="materialize-lean-overlay-"+ ++i,r=t(this),s=t('
      '),l=0==e.length?1:e[e.length-1]+1;e.push(l),s.attr("id",o).css("z-index",1e3+2*l),r.data("overlay-id",o).css("z-index",1e3+2*l+1),r.data("stack-ordinal",l),t("body").append(s),r.trigger("modal-overlay-attached",o),(n=t.extend(a,n)).dismissible&&(s.click(function(){r.closeModal(n)}),t(document).on("keyup.leanModal"+o,function(t){27===t.keyCode&&r.closeModal(n)})),r.find(".modal-close").on("click.close",function(t){r.closeModal(n)}),s.css({display:"block",opacity:0}),r.css({display:"block",opacity:0}),s.velocity({opacity:n.opacity},{duration:n.in_duration,queue:!1,ease:"easeOutCubic"}),r.data("associated-overlay",s[0]),r.hasClass("bottom-sheet")?r.velocity({bottom:"0",opacity:1},{duration:n.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof n.ready&&n.ready()}}):(t.Velocity.hook(r,"scaleX",.7),r.css({top:n.starting_top}),r.velocity({top:"10%",opacity:1,scaleX:"1"},{duration:n.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof n.ready&&n.ready()}}))}}),t.fn.extend({closeModal:function(i){var n={out_duration:250,complete:void 0},a=t(this),o=a.data("stack-ordinal"),r=a.data("overlay-id"),s=t("#"+r);i=t.extend(n,i),t("body").css("overflow",""),a.find(".modal-close").off("click.close"),t(document).off("keyup.leanModal"+r),s.velocity({opacity:0},{duration:i.out_duration,queue:!1,ease:"easeOutQuart"}),a.hasClass("bottom-sheet")?a.velocity({bottom:"-100%",opacity:0},{duration:i.out_duration,queue:!1,ease:"easeOutCubic",complete:function(){s.css({display:"none"}),"function"==typeof i.complete&&i.complete(),s.remove(),e.splice(e.indexOf(o),1)}}):a.velocity({top:i.starting_top,opacity:0,scaleX:.7},{duration:i.out_duration,complete:function(){t(this).css("display","none"),"function"==typeof i.complete&&i.complete(),s.remove(),e.splice(e.indexOf(o),1)}})}}),t.fn.extend({leanModal:function(e){return this.each(function(){var i=t.extend({starting_top:"4%"},e);t(this).click(function(e){i.starting_top=(t(this).offset().top-t(window).scrollTop())/1.15;var n=t(this).attr("href")||"#"+t(this).data("target");t(n).openModal(i),e.preventDefault()})})}})}(jQuery),function(t){t.fn.materialbox=function(){return this.each(function(){if(!t(this).hasClass("initialized")){t(this).addClass("initialized");var e,i,n=!1,a=!0,o=200,r=t(this),s=t("
      ").addClass("material-placeholder");r.wrap(s),r.on("click",function(){var o=r.parent(".material-placeholder"),s=window.innerWidth,u=window.innerHeight,c=r.width(),d=r.height();if(!1===a)return l(),!1;if(n&&!0===a)return l(),!1;a=!1,r.addClass("active"),n=!0,o.css({width:o[0].getBoundingClientRect().width,height:o[0].getBoundingClientRect().height,position:"relative",top:0,left:0}),e=void 0,i=o[0].parentNode;for(;null!==i&&!t(i).is(document);){var p=t(i);"hidden"===p.css("overflow")&&(p.css("overflow","visible"),e=void 0===e?p:e.add(p)),i=i.parentNode}r.css({position:"absolute","z-index":1e3}).data("width",c).data("height",d);var f=t('
      ').css({opacity:0}).click(function(){!0===a&&l()});if(t("body").append(f),f.velocity({opacity:1},{duration:275,queue:!1,easing:"easeOutQuad"}),""!==r.data("caption")){var h=t('
      ');h.text(r.data("caption")),t("body").append(h),h.css({display:"inline"}),h.velocity({opacity:1},{duration:275,queue:!1,easing:"easeOutQuad"})}var v=0,g=0;c/s>d/u?(v=.9*s,g=.9*s*(d/c)):(v=.9*u*(c/d),g=.9*u),r.hasClass("responsive-img")?r.velocity({"max-width":v,width:c},{duration:0,queue:!1,complete:function(){r.css({left:0,top:0}).velocity({height:g,width:v,left:t(document).scrollLeft()+s/2-r.parent(".material-placeholder").offset().left-v/2,top:t(document).scrollTop()+u/2-r.parent(".material-placeholder").offset().top-g/2},{duration:275,queue:!1,easing:"easeOutQuad",complete:function(){a=!0}})}}):r.css("left",0).css("top",0).velocity({height:g,width:v,left:t(document).scrollLeft()+s/2-r.parent(".material-placeholder").offset().left-v/2,top:t(document).scrollTop()+u/2-r.parent(".material-placeholder").offset().top-g/2},{duration:275,queue:!1,easing:"easeOutQuad",complete:function(){a=!0}})}),t(window).scroll(function(){n&&l()}),t(document).keyup(function(t){27===t.keyCode&&!0===a&&n&&l()})}function l(){a=!1;var i=r.parent(".material-placeholder"),s=(window.innerWidth,window.innerHeight,r.data("width")),l=r.data("height");r.velocity("stop",!0),t("#materialbox-overlay").velocity("stop",!0),t(".materialbox-caption").velocity("stop",!0),t("#materialbox-overlay").velocity({opacity:0},{duration:o,queue:!1,easing:"easeOutQuad",complete:function(){n=!1,t(this).remove()}}),r.velocity({width:s,height:l,left:0,top:0},{duration:o,queue:!1,easing:"easeOutQuad"}),t(".materialbox-caption").velocity({opacity:0},{duration:o,queue:!1,easing:"easeOutQuad",complete:function(){i.css({height:"",width:"",position:"",top:"",left:""}),r.css({height:"",top:"",left:"",width:"","max-width":"",position:"","z-index":""}),r.removeClass("active"),a=!0,t(this).remove(),e.css("overflow","")}})}})},t(document).ready(function(){t(".materialboxed").materialbox()})}(jQuery),function(t){t.fn.parallax=function(){var e=t(window).width();return this.each(function(i){var n=t(this);function a(i){var a;a=e<601?n.height()>0?n.height():n.children("img").height():n.height()>0?n.height():500;var o=n.children("img").first(),r=o.height()-a,s=n.offset().top+a,l=n.offset().top,u=t(window).scrollTop(),c=window.innerHeight,d=(u+c-l)/(a+c),p=Math.round(r*d);i&&o.css("display","block"),s>u&&l
      ');var l=e.find(".indicator");e.is(":visible")&&(l.css({right:o-(s+1)*r}),l.css({left:s*r})),t(window).resize(function(){o=e.width(),r=e.find("li").first().outerWidth(),s<0&&(s=0),0!==r&&0!==o&&(l.css({right:o-(s+1)*r}),l.css({left:s*r}))}),a.not(i).each(function(){t(this.hash).hide()}),e.on("click","a",function(u){if(t(this).parent().hasClass("disabled"))u.preventDefault();else{o=e.width(),r=e.find("li").first().outerWidth(),i.removeClass("active"),n.hide(),i=t(this),n=t(this.hash),a=e.find("li.tab a"),i.addClass("active");var c=s;(s=a.index(t(this)))<0&&(s=0),n.show(),s-c>=0?(l.velocity({right:o-(s+1)*r},{duration:300,queue:!1,easing:"easeOutQuad"}),l.velocity({left:s*r},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})):(l.velocity({left:s*r},{duration:300,queue:!1,easing:"easeOutQuad"}),l.velocity({right:o-(s+1)*r},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})),u.preventDefault()}})})},select_tab:function(t){this.find('a[href="\\#'+t+'"]').trigger("click")}};t.fn.tabs=function(i){return e[i]?e[i].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.tooltip"):e.init.apply(this,arguments)},t(document).ready(function(){t("ul.tabs").tabs()})}(jQuery),function(t){t.fn.tooltip=function(i){return"remove"===i?(this.each(function(){t("#"+t(this).attr("data-tooltip-id")).remove(),t(this).off("mouseenter.tooltip mouseleave.tooltip")}),!1):(i=t.extend({delay:350},i),this.each(function(){var n=Materialize.guid(),a=t(this);a.attr("data-tooltip-id",n);var o=t("").text(a.attr("data-tooltip")),r=t("
      ");r.addClass("material-tooltip").append(o).appendTo(t("body")).attr("id",n);var s=t("
      ").addClass("backdrop");s.appendTo(r),s.css({top:0,left:0}),a.off("mouseenter.tooltip mouseleave.tooltip");var l,u=!1;a.on({"mouseenter.tooltip":function(t){var n=a.attr("data-delay");n=void 0===n||""===n?i.delay:n,l=setTimeout(function(){u=!0,r.velocity("stop"),s.velocity("stop"),r.css({display:"block",left:"0px",top:"0px"}),r.children("span").text(a.attr("data-tooltip"));var t,i,n,o=a.outerWidth(),l=a.outerHeight(),c=a.attr("data-position"),d=r.outerHeight(),p=r.outerWidth(),f="0px",h="0px",v=8;"top"===c?(t=a.offset().top-d-5,i=a.offset().left+o/2-p/2,n=e(i,t,p,d),f="-10px",s.css({borderRadius:"14px 14px 0 0",transformOrigin:"50% 90%",marginTop:d,marginLeft:p/2-s.width()/2})):"left"===c?(t=a.offset().top+l/2-d/2,i=a.offset().left-p-5,n=e(i,t,p,d),h="-10px",s.css({width:"14px",height:"14px",borderRadius:"14px 0 0 14px",transformOrigin:"95% 50%",marginTop:d/2,marginLeft:p})):"right"===c?(t=a.offset().top+l/2-d/2,i=a.offset().left+o+5,n=e(i,t,p,d),h="+10px",s.css({width:"14px",height:"14px",borderRadius:"0 14px 14px 0",transformOrigin:"5% 50%",marginTop:d/2,marginLeft:"0px"})):(t=a.offset().top+a.outerHeight()+5,i=a.offset().left+o/2-p/2,n=e(i,t,p,d),f="+10px",s.css({marginLeft:p/2-s.width()/2})),r.css({top:n.y,left:n.x}),(v=p/8)<8&&(v=8),"right"!==c&&"left"!==c||(v=p/10)<6&&(v=6),r.velocity({marginTop:f,marginLeft:h},{duration:350,queue:!1}).velocity({opacity:1},{duration:300,delay:50,queue:!1}),s.css({display:"block"}).velocity({opacity:1},{duration:55,delay:0,queue:!1}).velocity({scale:v},{duration:300,delay:0,queue:!1,easing:"easeInOutQuad"})},n)},"mouseleave.tooltip":function(){u=!1,clearTimeout(l),setTimeout(function(){1!=u&&(r.velocity({opacity:0,marginTop:0,marginLeft:0},{duration:225,queue:!1}),s.velocity({opacity:0,scale:1},{duration:225,queue:!1,complete:function(){s.css("display","none"),r.css("display","none"),u=!1}}))},225)}})}))};var e=function(e,i,n,a){var o=e,r=i;return o<0?o=4:o+n>window.innerWidth&&(o-=o+n-window.innerWidth),r<0?r=4:r+a>window.innerHeight+t(window).scrollTop&&(r-=r+a-window.innerHeight),{x:o,y:r}};t(document).ready(function(){t(".tooltipped").tooltip()})}(jQuery),function(t){"use strict";var e=e||{},i=document.querySelectorAll.bind(document);function n(t){var e="";for(var i in t)t.hasOwnProperty(i)&&(e+=i+":"+t[i]+";");return e}var a={duration:750,show:function(t,e){if(2===t.button)return!1;var i=e||this,o=document.createElement("div");o.className="waves-ripple",i.appendChild(o);var r,s,l,u,c,d=(u={top:0,left:0},c=(r=i)&&r.ownerDocument,s=c.documentElement,void 0!==r.getBoundingClientRect&&(u=r.getBoundingClientRect()),l=function(t){return null!==(e=t)&&e===e.window?t:9===t.nodeType&&t.defaultView;var e}(c),{top:u.top+l.pageYOffset-s.clientTop,left:u.left+l.pageXOffset-s.clientLeft}),p=t.pageY-d.top,f=t.pageX-d.left,h="scale("+i.clientWidth/100*10+")";"touches"in t&&(p=t.touches[0].pageY-d.top,f=t.touches[0].pageX-d.left),o.setAttribute("data-hold",Date.now()),o.setAttribute("data-scale",h),o.setAttribute("data-x",f),o.setAttribute("data-y",p);var v={top:p+"px",left:f+"px"};o.className=o.className+" waves-notransition",o.setAttribute("style",n(v)),o.className=o.className.replace("waves-notransition",""),v["-webkit-transform"]=h,v["-moz-transform"]=h,v["-ms-transform"]=h,v["-o-transform"]=h,v.transform=h,v.opacity="1",v["-webkit-transition-duration"]=a.duration+"ms",v["-moz-transition-duration"]=a.duration+"ms",v["-o-transition-duration"]=a.duration+"ms",v["transition-duration"]=a.duration+"ms",v["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",v["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",v["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",v["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",o.setAttribute("style",n(v))},hide:function(t){o.touchup(t);var e=this,i=(e.clientWidth,null),r=e.getElementsByClassName("waves-ripple");if(!(r.length>0))return!1;var s=(i=r[r.length-1]).getAttribute("data-x"),l=i.getAttribute("data-y"),u=i.getAttribute("data-scale"),c=350-(Date.now()-Number(i.getAttribute("data-hold")));c<0&&(c=0),setTimeout(function(){var t={top:l+"px",left:s+"px",opacity:"0","-webkit-transition-duration":a.duration+"ms","-moz-transition-duration":a.duration+"ms","-o-transition-duration":a.duration+"ms","transition-duration":a.duration+"ms","-webkit-transform":u,"-moz-transform":u,"-ms-transform":u,"-o-transform":u,transform:u};i.setAttribute("style",n(t)),setTimeout(function(){try{e.removeChild(i)}catch(t){return!1}},a.duration)},c)},wrapInput:function(t){for(var e=0;e0&&(o.touches-=1)},500):"mousedown"===t.type&&o.touches>0&&(e=!1),e},touchup:function(t){o.allowEvent(t)}};function r(e){var i=function(t){if(!1===o.allowEvent(t))return null;for(var e=null,i=t.target||t.srcElement;null!==i.parentElement;){if(!(i instanceof SVGElement||-1===i.className.indexOf("waves-effect"))){e=i;break}if(i.classList.contains("waves-effect")){e=i;break}i=i.parentElement}return e}(e);null!==i&&(a.show(e,i),"ontouchstart"in t&&(i.addEventListener("touchend",a.hide,!1),i.addEventListener("touchcancel",a.hide,!1)),i.addEventListener("mouseup",a.hide,!1),i.addEventListener("mouseleave",a.hide,!1))}e.displayEffect=function(e){"duration"in(e=e||{})&&(a.duration=e.duration),a.wrapInput(i(".waves-effect")),"ontouchstart"in t&&document.body.addEventListener("touchstart",r,!1),document.body.addEventListener("mousedown",r,!1)},e.attach=function(e){"input"===e.tagName.toLowerCase()&&(a.wrapInput([e]),e=e.parentElement),"ontouchstart"in t&&e.addEventListener("touchstart",r,!1),e.addEventListener("mousedown",r,!1)},t.Waves=e,document.addEventListener("DOMContentLoaded",function(){e.displayEffect()},!1)}(window),Materialize.toast=function(t,e,i,n){i=i||"";var a=document.getElementById("toast-container");null===a&&((a=document.createElement("div")).id="toast-container",document.body.appendChild(a));var o=function(t){var e=document.createElement("div");if(e.classList.add("toast"),i)for(var a=i.split(" "),o=0,r=a.length;o80?Vel(e,{marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof n&&n(),e.parentNode.removeChild(e)}}):(e.classList.remove("panning"),Vel(e,{left:0,opacity:1},{duration:300,easing:"easeOutExpo",queue:!1}))}),e}(t);t&&a.appendChild(o),o.style.top="35px",o.style.opacity=0,Vel(o,{top:"0px",opacity:1},{duration:300,easing:"easeOutCubic",queue:!1});var r=e,s=setInterval(function(){null===o.parentNode&&window.clearInterval(s),o.classList.contains("panning")||(r-=20),r<=0&&(Vel(o,{opacity:0,marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof n&&n(),this[0].parentNode.removeChild(this[0])}}),window.clearInterval(s))},20)},function(t){var e={init:function(e){e=t.extend({menuWidth:240,edge:"left",closeOnClick:!1},e),t(this).each(function(){var i=t(this),n=t("#"+i.attr("data-activates"));240!=e.menuWidth&&n.css("width",e.menuWidth);var a=t('
      ');function o(o,s){i.trigger("side-nav-closing"),!1,r=!1,t("body").css("overflow",""),s?t("#sidenav-overlay").remove():t("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){t(this).remove()}}),"left"===e.edge?(a.css({width:"",right:"",left:"0"}),s?(n.css("left",-1*(e.menuWidth+10)+"px"),!0===o&&n.css("width",e.menuWidth),i.trigger("side-nav-closed")):n.velocity({left:-1*(e.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){!0===o&&n.css("width",e.menuWidth),i.trigger("side-nav-closed")}})):(a.css({width:"",right:"0",left:""}),s?(enu_id.css("right",-1*(e.menuWidth+10)+"px"),!0===o&&n.css("width",e.menuWidth),i.trigger("side-nav-closed")):n.velocity({right:-1*(e.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){!0===o&&n.css("width",e.menuWidth),i.trigger("side-nav-closed")}}))}t("body").append(a),"left"==e.edge?(n.css("left",-1*(e.menuWidth+10)),a.css({left:0})):(n.addClass("right-aligned").css("right",-1*(e.menuWidth+10)).css("left",""),a.css({right:0})),n.hasClass("fixed")&&window.innerWidth>992&&n.css("left",0),n.hasClass("fixed")&&t(window).resize(function(){window.innerWidth>992?0!==t("#sidenav-overlay").css("opacity")&&r?o(!0):(n.css("left",""),n.css("width",e.menuWidth)):!1===r&&("left"===e.edge?n.css("left",-1*(e.menuWidth+10)):n.css("right",-1*(e.menuWidth+10)))}),!0===e.closeOnClick&&n.on("click.itemclick","a:not(.collapsible-header)",function(){o()});var r=!1;a.on("click",function(){o()}),a.hammer({prevent_default:!1}).bind("pan",function(a){if("touch"==a.gesture.pointerType){a.gesture.direction;var s,l=a.gesture.center.x;a.gesture.center.y,a.gesture.velocityX;if(t("body").css("overflow","hidden"),0===t("#sidenav-overlay").length){var u=t('
      ');u.css("opacity",0).click(function(){o()}),t("body").append(u)}if("left"===e.edge&&(l>e.menuWidth?l=e.menuWidth:l<0&&(l=0)),"left"===e.edge)l=e.menuWidth/2&&(r=!0,i.trigger("side-nav-opened")),n.css("left",l-e.menuWidth);else{l=window.innerWidth-e.menuWidth/2&&(r=!1,i.trigger("side-nav-closed"));var c=-1*(l-e.menuWidth/2);c>0&&(c=0),n.css("right",c)}"left"===e.edge?(s=l/e.menuWidth,t("#sidenav-overlay").velocity({opacity:s},{duration:50,queue:!1,easing:"easeOutQuad"})):(s=Math.abs((l-window.innerWidth)/e.menuWidth),t("#sidenav-overlay").velocity({opacity:s},{duration:50,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(i){if("touch"==i.gesture.pointerType){var o=i.gesture.velocityX;!1,"left"===e.edge?r&&o<=.3||o<-.5?(n.velocity({left:0},{duration:300,queue:!1,easing:"easeOutQuad"}),t("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),a.css({width:"50%",right:0,left:""})):(!r||o>.3)&&(t("body").css("overflow",""),n.velocity({left:-1*(e.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutQuad"}),t("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){t(this).remove()}}),a.css({width:"10px",right:"",left:0})):r&&o>=-.3||o>.5?(n.velocity({right:0},{duration:300,queue:!1,easing:"easeOutQuad"}),t("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),a.css({width:"50%",right:"",left:0})):(!r||o<-.3)&&(t("body").css("overflow",""),n.velocity({right:-1*(e.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutQuad"}),t("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){t(this).remove()}}),a.css({width:"10px",right:0,left:""}))}});var s=function(s){i.trigger("side-nav-opening"),t("body").css("overflow","hidden"),t("body").append(a),"left"===e.edge?(a.css({width:"50%",right:0,left:""}),s?n.velocity({left:0},{duration:300,queue:!1,easing:"easeOutQuad"}):n.css("left","0")):(a.css({width:"50%",right:"",left:0}),s?n.velocity({right:0},{duration:300,queue:!1,easing:"easeOutQuad"}):n.css("right","0"),n.css("left",""));var l=t('
      ');l.css("opacity",0).click(function(){r=!1,!1,o(),s?l.velocity({opacity:0},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){t(this).remove()}}):l.remove()}),t("body").append(l),i.trigger("side-nav-overlay-attached"),s?l.velocity({display:"block"},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){r=!0,!1,i.trigger("side-nav-opened")}}):(l.css("display","block"),r=!0,!1,i.trigger("side-nav-opened"))},l=function(t){r=!1,!1,o(!1,!t)};i.click(function(){return!0===r?l(!0):s(!0),!1}),i.on("menu-out",s),i.on("menu-in",l)})},show:function(){this.trigger("click")},hide:function(){t("#sidenav-overlay").trigger("click")},menuOut:function(){this.trigger("menu-out")},menuIn:function(){this.trigger("menu-in")}};t.fn.sideNav=function(i){return e[i]?e[i].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.sideNav"):e.init.apply(this,arguments)}}(jQuery),function(t){var e=t(window),i=[],n=[],a=!1,o=0,r={top:0,right:0,bottom:0,left:0};function s(){++o;var a=e.scrollTop(),s=e.scrollLeft(),l=s+e.width(),u=a+e.height(),c=function(e,n,a,o){var r=t();return t.each(i,function(t,i){if(i.height()>0){var s=i.offset().top,l=i.offset().left,u=l+i.width(),c=s+i.height();!(l>n||ua||c0||i.autofocus||void 0!==t(this).attr("placeholder")||!0===t(i)[0].validity.badInput?t(this).siblings("label, i").addClass("active"):t(this).siblings("label, i").removeClass("active")})};var e="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";t(document).on("change",e,function(){0===t(this).val().length&&void 0===t(this).attr("placeholder")||t(this).siblings("label").addClass("active"),validate_field(t(this))}),t(document).ready(function(){Materialize.updateTextFields()}),t(document).on("reset",function(i){var n=t(i.target);n.is("form")&&(n.find(e).removeClass("valid").removeClass("invalid"),n.find(e).each(function(){""===t(this).attr("value")&&t(this).siblings("label, i").removeClass("active")}),n.find("select.initialized").each(function(){var t=n.find("option[selected]").text();n.siblings("input.select-dropdown").val(t)}))}),t(document).on("focus",e,function(){t(this).siblings("label, i").addClass("active")}),t(document).on("blur",e,function(){var e=t(this);0===e.val().length&&!0!==e[0].validity.badInput&&void 0===e.attr("placeholder")&&e.siblings("label, i").removeClass("active"),0===e.val().length&&!0!==e[0].validity.badInput&&void 0!==e.attr("placeholder")&&e.siblings("i").removeClass("active"),validate_field(e)}),window.validate_field=function(t){var e=void 0!==t.attr("length"),i=parseInt(t.attr("length")),n=t.val().length;0===t.val().length&&!1===t[0].validity.badInput?t.hasClass("validate")&&(t.removeClass("valid"),t.removeClass("invalid")):t.hasClass("validate")&&(t.is(":valid")&&e&&n<=i||t.is(":valid")&&!e?(t.removeClass("invalid"),t.addClass("valid")):(t.removeClass("valid"),t.addClass("invalid")))};var i=t(".hiddendiv").first();i.length||(i=t('
      '),t("body").append(i));function n(e){var n=e.css("font-family"),a=e.css("font-size");a&&i.css("font-size",a),n&&i.css("font-family",n),"off"===e.attr("wrap")&&i.css("overflow-wrap","normal").css("white-space","pre"),i.text(e.val()+"\n");var o=i.html().replace(/\n/g,"
      ");i.html(o),e.is(":visible")?i.css("width",e.width()):i.css("width",t(window).width()/2),e.css("height",i.height())}t(".materialize-textarea").each(function(){var e=t(this);e.val().length&&n(e)}),t("body").on("keyup keydown autoresize",".materialize-textarea",function(){n(t(this))}),t(document).on("change",'.file-field input[type="file"]',function(){for(var e=t(this).closest(".file-field").find("input.file-path"),i=t(this)[0].files,n=[],a=0;a');t(this).after(e)});t(document).on("change",o,function(e){t(this).siblings(".thumb").find(".value").html(t(this).val())}),t(document).on("input mousedown touchstart",o,function(e){var i=t(this).siblings(".thumb"),n=t(this).outerWidth();i.length<=0&&(i=t(''),t(this).after(i)),i.find(".value").html(t(this).val()),r=!0,t(this).addClass("active"),i.hasClass("active")||i.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),"input"!==e.type&&((a=void 0===e.pageX||null===e.pageX?e.originalEvent.touches[0].pageX-t(this).offset().left:e.pageX-t(this).offset().left)<0?a=0:a>n&&(a=n),i.addClass("active").css("left",a)),i.find(".value").html(t(this).val())}),t(document).on("mouseup touchend",".range-field",function(){r=!1,t(this).removeClass("active")}),t(document).on("mousemove touchmove",".range-field",function(e){var i,n=t(this).children(".thumb");if(r){n.hasClass("active")||n.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),i=void 0===e.pageX||null===e.pageX?e.originalEvent.touches[0].pageX-t(this).offset().left:e.pageX-t(this).offset().left;var a=t(this).outerWidth();i<0?i=0:i>a&&(i=a),n.addClass("active").css("left",i),n.find(".value").html(n.siblings(o).val())}}),t(document).on("mouseout touchleave",".range-field",function(){if(!r){var e=t(this).children(".thumb");e.hasClass("active")&&e.velocity({height:"0",width:"0",top:"10px",marginLeft:"-6px"},{duration:100}),e.removeClass("active")}})}),t.fn.material_select=function(e){function i(t,e,i){var n=t.indexOf(e),a=-1===n;return a?t.push(e):t.splice(n,1),i.siblings("ul.dropdown-content").find("li").eq(e).toggleClass("active"),i.find("option").eq(e).prop("selected",a),function(t,e){for(var i="",n=0,a=t.length;n');s.addClass(n.attr("class"));var l=t(''),u=n.children("option, optgroup"),c=[],d=!1,p=n.find("option:selected").html()||n.find("option:first").html()||"",f=function(e,i,n){var a=i.is(":disabled")?"disabled ":"",o=i.data("icon"),r=i.attr("class");if(o){var s="";return r&&(s=' class="'+r+'"'),"multiple"===n?l.append(t('
    • "+i.html()+"
    • ")):l.append(t('
    • "+i.html()+"
    • ")),!0}"multiple"===n?l.append(t('
    • "+i.html()+"
    • ")):l.append(t('
    • '+i.html()+"
    • "))};u.length&&u.each(function(){if(t(this).is("option"))a?f(0,t(this),"multiple"):f(0,t(this));else if(t(this).is("optgroup")){var e=t(this).children("option");l.append(t('
    • '+t(this).attr("label")+"
    • ")),e.each(function(){f(0,t(this))})}}),l.find("li:not(.optgroup)").each(function(o){t(this).click(function(r){if(!t(this).hasClass("disabled")&&!t(this).hasClass("optgroup")){var s=!0;a?(t('input[type="checkbox"]',this).prop("checked",function(t,e){return!e}),s=i(c,t(this).index(),n),g.trigger("focus")):(l.find("li").removeClass("active"),t(this).toggleClass("active"),g.val(t(this).text())),activateOption(l,t(this)),n.find("option").eq(o).prop("selected",s),n.trigger("change"),void 0!==e&&e()}r.stopPropagation()})}),n.wrap(s);var h=t('');n.is(":disabled")&&h.addClass("disabled");var v=p.replace(/"/g,"""),g=t('');n.before(g),g.before(h),g.after(l),n.is(":disabled")||g.dropdown({hover:!1,closeOnClick:!1}),n.attr("tabindex")&&t(g[0]).attr("tabindex",n.attr("tabindex")),n.addClass("initialized"),g.on({focus:function(){if(t("ul.select-dropdown").not(l[0]).is(":visible")&&t("input.select-dropdown").trigger("close"),!l.is(":visible")){t(this).trigger("open",["focus"]);var e=t(this).val(),i=l.find("li").filter(function(){return t(this).text().toLowerCase()===e.toLowerCase()})[0];activateOption(l,i)}},click:function(t){t.stopPropagation()}}),g.on("blur",function(){a||t(this).trigger("close"),l.find("li.selected").removeClass("selected")}),l.hover(function(){d=!0},function(){d=!1}),t(window).on({click:function(){a&&(d||g.trigger("close"))}}),a&&n.find("option:selected:not(:disabled)").each(function(){var e=t(this).index();i(c,e,n),l.find("li").eq(e).find(":checkbox").prop("checked",!0)}),activateOption=function(e,i){if(i){e.find("li.selected").removeClass("selected");var n=t(i);n.addClass("selected"),l.scrollTo(n)}};var m=[];g.on("keydown",function(e){if(9!=e.which)if(40!=e.which||l.is(":visible")){if(13!=e.which||l.is(":visible")){e.preventDefault();var i=String.fromCharCode(e.which).toLowerCase();if(i&&-1===[9,13,27,38,40].indexOf(e.which)){m.push(i);var n=m.join(""),o=l.find("li").filter(function(){return 0===t(this).text().toLowerCase().indexOf(n)})[0];o&&activateOption(l,o)}if(13==e.which){var r=l.find("li.selected:not(.disabled)")[0];r&&(t(r).trigger("click"),a||g.trigger("close"))}40==e.which&&(o=l.find("li.selected").length?l.find("li.selected").next("li:not(.disabled)")[0]:l.find("li:not(.disabled)")[0],activateOption(l,o)),27==e.which&&g.trigger("close"),38==e.which&&(o=l.find("li.selected").prev("li:not(.disabled)")[0])&&activateOption(l,o),setTimeout(function(){m=[]},1e3)}}else g.trigger("open");else g.trigger("close")})}else n.data("select-id",null).removeClass("initialized")}})}}(jQuery),function(t){var e={init:function(e){return e=t.extend({indicators:!0,height:400,transition:500,interval:6e3},e),this.each(function(){var i,n,a,o=t(this),r=o.find("ul.slides").first(),s=r.find("li"),l=r.find(".active").index();function u(t,e){t.hasClass("center-align")?t.velocity({opacity:0,translateY:-100},{duration:e,queue:!1}):t.hasClass("right-align")?t.velocity({opacity:0,translateX:100},{duration:e,queue:!1}):t.hasClass("left-align")&&t.velocity({opacity:0,translateX:-100},{duration:e,queue:!1})}function c(t){t>=s.length?t=0:t<0&&(t=s.length-1),(l=r.find(".active").index())!=t&&(i=s.eq(l),$caption=i.find(".caption"),i.removeClass("active"),i.velocity({opacity:0},{duration:e.transition,queue:!1,easing:"easeOutQuad",complete:function(){s.not(".active").velocity({opacity:0,translateX:0,translateY:0},{duration:0,queue:!1})}}),u($caption,e.transition),e.indicators&&n.eq(l).removeClass("active"),s.eq(t).velocity({opacity:1},{duration:e.transition,queue:!1,easing:"easeOutQuad"}),s.eq(t).find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:e.transition,delay:e.transition,queue:!1,easing:"easeOutQuad"}),s.eq(t).addClass("active"),e.indicators&&n.eq(t).addClass("active"))}-1!=l&&(i=s.eq(l)),o.hasClass("fullscreen")||(e.indicators?o.height(e.height+40):o.height(e.height),r.height(e.height)),s.find(".caption").each(function(){u(t(this),0)}),s.find("img").each(function(){var e="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";t(this).attr("src")!==e&&(t(this).css("background-image","url("+t(this).attr("src")+")"),t(this).attr("src",e))}),e.indicators&&(n=t('
        '),s.each(function(i){var o=t('
      • ');o.click(function(){c(r.parent().find(t(this)).index()),clearInterval(a),a=setInterval(function(){l=r.find(".active").index(),s.length==l+1?l=0:l+=1,c(l)},e.transition+e.interval)}),n.append(o)}),o.append(n),n=o.find("ul.indicators").find("li.indicator-item")),i?i.show():(s.first().addClass("active").velocity({opacity:1},{duration:e.transition,queue:!1,easing:"easeOutQuad"}),l=0,i=s.eq(l),e.indicators&&n.eq(l).addClass("active")),i.find("img").each(function(){i.find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:e.transition,queue:!1,easing:"easeOutQuad"})}),a=setInterval(function(){c((l=r.find(".active").index())+1)},e.transition+e.interval);var d=!1,p=!1;o.hammer({prevent_default:!1}).bind("pan",function(t){if("touch"===t.gesture.pointerType){clearInterval(a);var e,i=t.gesture.direction,n=t.gesture.deltaX,l=t.gesture.velocityX;$curr_slide=r.find(".active"),$curr_slide.velocity({translateX:n},{duration:50,queue:!1,easing:"easeOutQuad"}),4===i&&(n>o.innerWidth()/2||l<-.65)?p=!0:2===i&&(n<-1*o.innerWidth()/2||l>.65)&&(d=!0),d&&(0===(e=$curr_slide.next()).length&&(e=s.first()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"})),p&&(0===(e=$curr_slide.prev()).length&&(e=s.last()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(t){"touch"===t.gesture.pointerType&&($curr_slide=r.find(".active"),!1,curr_index=r.find(".active").index(),p||d?d?(c(curr_index+1),$curr_slide.velocity({translateX:-1*o.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):p&&(c(curr_index-1),$curr_slide.velocity({translateX:o.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):$curr_slide.velocity({translateX:0},{duration:300,queue:!1,easing:"easeOutQuad"}),d=!1,p=!1,clearInterval(a),a=setInterval(function(){l=r.find(".active").index(),s.length==l+1?l=0:l+=1,c(l)},e.transition+e.interval))}),o.on("sliderPause",function(){clearInterval(a)}),o.on("sliderStart",function(){clearInterval(a),a=setInterval(function(){l=r.find(".active").index(),s.length==l+1?l=0:l+=1,c(l)},e.transition+e.interval)}),o.on("sliderNext",function(){c((l=r.find(".active").index())+1)}),o.on("sliderPrev",function(){c((l=r.find(".active").index())-1)})})},pause:function(){t(this).trigger("sliderPause")},start:function(){t(this).trigger("sliderStart")},next:function(){t(this).trigger("sliderNext")},prev:function(){t(this).trigger("sliderPrev")}};t.fn.slider=function(i){return e[i]?e[i].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.tooltip"):e.init.apply(this,arguments)}}(jQuery),function(t){t(document).ready(function(){t(document).on("click.card",".card",function(e){t(this).find("> .card-reveal").length&&(t(e.target).is(t(".card-reveal .card-title"))||t(e.target).is(t(".card-reveal .card-title i"))?t(this).find(".card-reveal").velocity({translateY:0},{duration:225,queue:!1,easing:"easeInOutQuad",complete:function(){t(this).css({display:"none"})}}):(t(e.target).is(t(".card .activator"))||t(e.target).is(t(".card .activator i")))&&(t(e.target).closest(".card").css("overflow","hidden"),t(this).find(".card-reveal").css({display:"block"}).velocity("stop",!1).velocity({translateY:"-100%"},{duration:300,queue:!1,easing:"easeInOutQuad"}))),t(".card-reveal").closest(".card").css("overflow","hidden")})})}(jQuery),function(t){t(document).ready(function(){t(document).on("click.chip",".chip .material-icons",function(e){t(this).parent().remove()})})}(jQuery),function(t){t(document).ready(function(){t.fn.pushpin=function(e){var i={top:0,bottom:1/0,offset:0};return e=t.extend(i,e),$index=0,this.each(function(){var i=Materialize.guid(),n=t(this),a=t(this).offset().top;function o(t){t.removeClass("pin-top"),t.removeClass("pinned"),t.removeClass("pin-bottom")}function r(i,n){i.each(function(){e.top<=n&&e.bottom>=n&&!t(this).hasClass("pinned")&&(o(t(this)),t(this).css("top",e.offset),t(this).addClass("pinned")),ne.bottom&&!t(this).hasClass("pin-bottom")&&(o(t(this)),t(this).addClass("pin-bottom"),t(this).css("top",e.bottom-a))})}r(n,t(window).scrollTop()),t(window).on("scroll."+i,function(){var i=t(window).scrollTop()+e.offset;r(n,i)})})}})}(jQuery),function(t){t(document).ready(function(){t.fn.reverse=[].reverse,t(document).on("mouseenter.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle)",function(i){var n=t(this);e(n)}),t(document).on("mouseleave.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle)",function(e){var n=t(this);i(n)}),t(document).on("click.fixedActionBtn",".fixed-action-btn.click-to-toggle > a",function(n){var a=t(this).parent();a.hasClass("active")?i(a):e(a)})}),t.fn.extend({openFAB:function(){e(t(this))},closeFAB:function(){i(t(this))}});var e=function(e){if($this=e,!1===$this.hasClass("active")){var i,n;!0===$this.hasClass("horizontal")?n=40:i=40,$this.addClass("active"),$this.find("ul .btn-floating").velocity({scaleY:".4",scaleX:".4",translateY:i+"px",translateX:n+"px"},{duration:0});var a=0;$this.find("ul .btn-floating").reverse().each(function(){t(this).velocity({opacity:"1",scaleX:"1",scaleY:"1",translateY:"0",translateX:"0"},{duration:80,delay:a}),a+=40})}},i=function(t){var e,i;$this=t,!0===$this.hasClass("horizontal")?i=40:e=40,$this.removeClass("active");$this.find("ul .btn-floating").velocity("stop",!0),$this.find("ul .btn-floating").velocity({opacity:"0",scaleX:".4",scaleY:".4",translateY:e+"px",translateX:i+"px"},{duration:80})}}(jQuery),function(t){Materialize.fadeInImage=function(e){var i=t(e);i.css({opacity:0}),t(i).velocity({opacity:1},{duration:650,queue:!1,easing:"easeOutSine"}),t(i).velocity({opacity:1},{duration:1300,queue:!1,easing:"swing",step:function(e,i){i.start=100;var n=e/100,a=150-(100-e)/1.75;a<100&&(a=100),e>=0&&t(this).css({"-webkit-filter":"grayscale("+n+")brightness("+a+"%)",filter:"grayscale("+n+")brightness("+a+"%)"})}})},Materialize.showStaggeredList=function(e){var i=0;t(e).find("li").velocity({translateX:"-100px"},{duration:0}),t(e).find("li").each(function(){t(this).velocity({opacity:"1",translateX:"0"},{duration:800,delay:i,easing:[60,10]}),i+=120})},Materialize.hideStaggeredList=function(e){var i=0;t(e).find("li").velocity({translateX:"0px"},{duration:0}),t(e).find("li").each(function(){t(this).velocity({opacity:"0",translateX:"-100px"},{duration:800,delay:i,easing:[60,10]}),i+=120})},t(document).ready(function(){var e=!1,i=!1;t(".dismissable").each(function(){t(this).hammer({prevent_default:!1}).bind("pan",function(n){if("touch"===n.gesture.pointerType){var a=t(this),o=n.gesture.direction,r=n.gesture.deltaX,s=n.gesture.velocityX;a.velocity({translateX:r},{duration:50,queue:!1,easing:"easeOutQuad"}),4===o&&(r>a.innerWidth()/2||s<-.75)&&(e=!0),2===o&&(r<-1*a.innerWidth()/2||s>.75)&&(i=!0)}}).bind("panend",function(n){if(Math.abs(n.gesture.deltaX)l.getBoundingClientRect().top+window.pageYOffset+r&&!0!==a.done&&(new Function(s)(),a.done=!0)}}},100)},function(t){"function"==typeof define&&define.amd?define("picker",["jquery"],t):"object"==typeof exports?module.exports=t(require("jquery")):this.Picker=t(jQuery)}(function(t){var e=t(window),i=t(document),n=t(document.documentElement);function a(e,s,u,c){if(!e)return a;var d=!1,p={id:e.id||"P"+Math.abs(~~(Math.random()*new Date))},f=u?t.extend(!0,{},u.defaults,c):c||{},h=t.extend({},a.klasses(),f.klass),v=t(e),g=function(){return this.start()},m=g.prototype={constructor:g,$node:v,start:function(){return p&&p.start?m:(p.methods={},p.start=!0,p.open=!1,p.type=e.type,e.autofocus=e==l(),e.readOnly=!f.editable,e.id=e.id||p.id,"text"!=e.type&&(e.type="text"),m.component=new u(m,f),m.$root=t(a._.node("div",y(),h.picker,'id="'+e.id+'_root" tabindex="0"')),m.$root.on({keydown:b,focusin:function(t){m.$root.removeClass(h.focused),t.stopPropagation()},"mousedown click":function(e){var i=e.target;i!=m.$root.children()[0]&&(e.stopPropagation(),"mousedown"!=e.type||t(i).is("input, select, textarea, button, option")||(e.preventDefault(),m.$root[0].focus()))}}).on({focus:function(){v.addClass(h.target)},blur:function(){v.removeClass(h.target)}}).on("focus.toOpen",w).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var e=t(this),i=e.data(),n=e.hasClass(h.navDisabled)||e.hasClass(h.disabled),a=l();a=a&&(a.type||a.href),(n||a&&!t.contains(m.$root[0],a))&&m.$root[0].focus(),!n&&i.nav?m.set("highlight",m.component.item.highlight,{nav:i.nav}):!n&&"pick"in i?m.set("select",i.pick):i.clear?m.clear().close(!0):i.close&&m.close(!0)}),r(m.$root[0],"hidden",!0),f.formatSubmit&&function(){var i;!0===f.hiddenName?(i=e.name,e.name=""):i=(i=["string"==typeof f.hiddenPrefix?f.hiddenPrefix:"","string"==typeof f.hiddenSuffix?f.hiddenSuffix:"_submit"])[0]+e.name+i[1];m._hidden=t('")[0],v.on("change."+p.id,function(){m._hidden.value=e.value?m.get("select",f.formatSubmit):""}),f.container?t(f.container).append(m._hidden):v.after(m._hidden)}(),function(){v.data(s,m).addClass(h.input).attr("tabindex",-1).val(v.data("value")?m.get("select",f.format):e.value),f.editable||v.on("focus."+p.id+" click."+p.id,function(t){t.preventDefault(),m.$root[0].focus()}).on("keydown."+p.id,b);r(e,{haspopup:!0,expanded:!1,readonly:!1,owns:e.id+"_root"}),document.querySelector("#"+e.id).addEventListener("pointerdown",function(t){t.target&&t.target.setPointerCapture&&t.target.setPointerCapture(t.pointerId)})}(),f.container?t(f.container).append(m.$root):v.after(m.$root),m.on({start:m.component.onStart,render:m.component.onRender,stop:m.component.onStop,open:m.component.onOpen,close:m.component.onClose,set:m.component.onSet}).on({start:f.onStart,render:f.onRender,stop:f.onStop,open:f.onOpen,close:f.onClose,set:f.onSet}),d=function(t){var e;t.currentStyle?e=t.currentStyle.position:window.getComputedStyle&&(e=getComputedStyle(t).position);return"fixed"==e}(m.$root.children()[0]),e.autofocus&&m.open(),m.trigger("start").trigger("render"))},render:function(t){return t?m.$root.html(y()):m.$root.find("."+h.box).html(m.component.nodes(p.open)),m.trigger("render")},stop:function(){return p.start?(m.close(),m._hidden&&m._hidden.parentNode.removeChild(m._hidden),m.$root.remove(),v.removeClass(h.input).removeData(s),setTimeout(function(){v.off("."+p.id)},0),e.type=p.type,e.readOnly=!1,m.trigger("stop"),p.methods={},p.start=!1,m):m},open:function(s){return p.open?m:(v.addClass(h.active),r(e,"expanded",!0),setTimeout(function(){m.$root.addClass(h.opened),r(m.$root[0],"hidden",!1)},0),!1!==s&&(p.open=!0,d&&n.css("overflow","hidden").css("padding-right","+="+o()),m.$root[0].focus(),i.on("click."+p.id+" focusin."+p.id,function(t){var i=t.target;i!=e&&i!=document&&3!=t.which&&m.close(i===m.$root.children()[0])}).on("keydown."+p.id,function(e){var i=e.keyCode,n=m.component.key[i],o=e.target;27==i?m.close(!0):o!=m.$root[0]||!n&&13!=i?t.contains(m.$root[0],o)&&13==i&&(e.preventDefault(),o.click()):(e.preventDefault(),n?a._.trigger(m.component.key.go,m,[a._.trigger(n)]):m.$root.find("."+h.highlighted).hasClass(h.disabled)||m.set("select",m.component.item.highlight).close())})),m.trigger("open"))},close:function(t){return t&&(m.$root.off("focus.toOpen")[0].focus(),setTimeout(function(){m.$root.on("focus.toOpen",w)},0)),v.removeClass(h.active),r(e,"expanded",!1),setTimeout(function(){m.$root.removeClass(h.opened+" "+h.focused),r(m.$root[0],"hidden",!0)},0),p.open?(p.open=!1,d&&n.css("overflow","").css("padding-right","-="+o()),i.off("."+p.id),m.trigger("close")):m},clear:function(t){return m.set("clear",null,t)},set:function(e,i,n){var a,o,r=t.isPlainObject(e),s=r?e:{};if(n=r&&t.isPlainObject(i)?i:n||{},e){for(a in r||(s[e]=i),s)o=s[a],a in m.component.item&&(void 0===o&&(o=null),m.component.set(a,o,n)),"select"!=a&&"clear"!=a||v.val("clear"==a?"":m.get(a,f.format)).trigger("change");m.render()}return n.muted?m:m.trigger("set",s)},get:function(t,i){if(null!=p[t=t||"value"])return p[t];if("valueSubmit"==t){if(m._hidden)return m._hidden.value;t="value"}if("value"==t)return e.value;if(t in m.component.item){if("string"==typeof i){var n=m.component.get(t);return n?a._.trigger(m.component.formats.toString,m.component,[i,n]):""}return m.component.get(t)}},on:function(e,i,n){var a,o,r=t.isPlainObject(e),s=r?e:{};if(e)for(a in r||(s[e]=i),s)o=s[a],n&&(a="_"+a),p.methods[a]=p.methods[a]||[],p.methods[a].push(o);return m},off:function(){var t,e,i=arguments;for(t=0,namesCount=i.length;t').appendTo("body"),a=i[0].offsetWidth;i.css("overflow","scroll");var o=t('
        ').appendTo(i)[0].offsetWidth;return i.remove(),a-o}function r(e,i,n){if(t.isPlainObject(i))for(var a in i)s(e,a,i[a]);else s(e,i,n)}function s(t,e,i){t.setAttribute(("role"==e?"":"aria-")+e,i)}function l(){try{return document.activeElement}catch(t){}}return a.klasses=function(t){return{picker:t=t||"picker",opened:t+"--opened",focused:t+"--focused",input:t+"__input",active:t+"__input--active",target:t+"__input--target",holder:t+"__holder",frame:t+"__frame",wrap:t+"__wrap",box:t+"__box"}},a._={group:function(t){for(var e,i="",n=a._.trigger(t.min,t);n<=a._.trigger(t.max,t,[n]);n+=t.i)e=a._.trigger(t.item,t,[n]),i+=a._.node(t.node,e[0],e[1],e[2]);return i},node:function(e,i,n,a){return i?"<"+e+(n=n?' class="'+n+'"':"")+(a=a?" "+a:"")+">"+(i=t.isArray(i)?i.join(""):i)+"":""},lead:function(t){return(t<10?"0":"")+t},trigger:function(t,e,i){return"function"==typeof t?t.apply(e,i||[]):t},digits:function(t){return/\d/.test(t[1])?2:1},isDate:function(t){return{}.toString.call(t).indexOf("Date")>-1&&this.isInteger(t.getDate())},isInteger:function(t){return{}.toString.call(t).indexOf("Number")>-1&&t%1==0},ariaAttr:function(e,i){t.isPlainObject(e)||(e={attribute:i});for(var n in i="",e){var a=("role"==n?"":"aria-")+n,o=e[n];i+=null==o?"":a+'="'+e[n]+'"'}return i}},a.extend=function(e,i){t.fn[e]=function(n,o){var r=this.data(e);return"picker"==n?r:r&&"string"==typeof n?a._.trigger(r[n],r,[o]):this.each(function(){t(this).data(e)||new a(this,e,i,n)})},t.fn[e].defaults=i.defaults},a}),function(t){"function"==typeof define&&define.amd?define(["picker","jquery"],t):"object"==typeof exports?module.exports=t(require("./picker.js"),require("jquery")):t(Picker,jQuery)}(function(t,e){var i,n=t._;function a(t,e){var i,n=this,a=t.$node[0],o=a.value,r=t.$node.data("value"),s=r||o,l=r?e.formatSubmit:e.format,u=function(){return a.currentStyle?"rtl"==a.currentStyle.direction:"rtl"==getComputedStyle(t.$root[0]).direction};n.settings=e,n.$node=t.$node,n.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},n.item={},n.item.clear=null,n.item.disable=(e.disable||[]).slice(0),n.item.enable=-(!0===(i=n.item.disable)[0]?i.shift():-1),n.set("min",e.min).set("max",e.max).set("now"),s?n.set("select",s,{format:l}):n.set("select",null).set("highlight",n.item.now),n.key={40:7,38:-7,39:function(){return u()?-1:1},37:function(){return u()?1:-1},go:function(t){var e=n.item.highlight,i=new Date(e.year,e.month,e.date+t);n.set("highlight",i,{interval:t}),this.render()}},t.on("render",function(){t.$root.find("."+e.klass.selectMonth).on("change",function(){var i=this.value;i&&(t.set("highlight",[t.get("view").year,i,t.get("highlight").date]),t.$root.find("."+e.klass.selectMonth).trigger("focus"))}),t.$root.find("."+e.klass.selectYear).on("change",function(){var i=this.value;i&&(t.set("highlight",[i,t.get("view").month,t.get("highlight").date]),t.$root.find("."+e.klass.selectYear).trigger("focus"))})},1).on("open",function(){var i="";n.disabled(n.get("now"))&&(i=":not(."+e.klass.buttonToday+")"),t.$root.find("button"+i+", select").attr("disabled",!1)},1).on("close",function(){t.$root.find("button, select").attr("disabled",!0)},1)}a.prototype.set=function(t,e,i){var n=this,a=n.item;return null===e?("clear"==t&&(t="select"),a[t]=e,n):(a["enable"==t?"disable":"flip"==t?"enable":t]=n.queue[t].split(" ").map(function(a){return e=n[a](t,e,i)}).pop(),"select"==t?n.set("highlight",a.select,i):"highlight"==t?n.set("view",a.highlight,i):t.match(/^(flip|min|max|disable|enable)$/)&&(a.select&&n.disabled(a.select)&&n.set("select",a.select,i),a.highlight&&n.disabled(a.highlight)&&n.set("highlight",a.highlight,i)),n)},a.prototype.get=function(t){return this.item[t]},a.prototype.create=function(t,i,a){var o;return(i=void 0===i?t:i)==-1/0||i==1/0?o=i:e.isPlainObject(i)&&n.isInteger(i.pick)?i=i.obj:e.isArray(i)?(i=new Date(i[0],i[1],i[2]),i=n.isDate(i)?i:this.create().obj):i=n.isInteger(i)||n.isDate(i)?this.normalize(new Date(i),a):this.now(t,i,a),{year:o||i.getFullYear(),month:o||i.getMonth(),date:o||i.getDate(),day:o||i.getDay(),obj:o||i,pick:o||i.getTime()}},a.prototype.createRange=function(t,i){var a=this,o=function(t){return!0===t||e.isArray(t)||n.isDate(t)?a.create(t):t};return n.isInteger(t)||(t=o(t)),n.isInteger(i)||(i=o(i)),n.isInteger(t)&&e.isPlainObject(i)?t=[i.year,i.month,i.date+t]:n.isInteger(i)&&e.isPlainObject(t)&&(i=[t.year,t.month,t.date+i]),{from:o(t),to:o(i)}},a.prototype.withinRange=function(t,e){return t=this.createRange(t.from,t.to),e.pick>=t.from.pick&&e.pick<=t.to.pick},a.prototype.overlapRanges=function(t,e){return t=this.createRange(t.from,t.to),e=this.createRange(e.from,e.to),this.withinRange(t,e.from)||this.withinRange(t,e.to)||this.withinRange(e,t.from)||this.withinRange(e,t.to)},a.prototype.now=function(t,e,i){return e=new Date,i&&i.rel&&e.setDate(e.getDate()+i.rel),this.normalize(e,i)},a.prototype.navigate=function(t,i,n){var a,o,r,s,l=e.isArray(i),u=e.isPlainObject(i),c=this.item.view;if(l||u){for(u?(o=i.year,r=i.month,s=i.date):(o=+i[0],r=+i[1],s=+i[2]),n&&n.nav&&c&&c.month!==r&&(o=c.year,r=c.month),o=(a=new Date(o,r+(n&&n.nav?n.nav:0),1)).getFullYear(),r=a.getMonth();new Date(o,r,s).getMonth()!==r;)s-=1;i=[o,r,s]}return i},a.prototype.normalize=function(t){return t.setHours(0,0,0,0),t},a.prototype.measure=function(t,e){return e?"string"==typeof e?e=this.parse(t,e):n.isInteger(e)&&(e=this.now(t,e,{rel:e})):e="min"==t?-1/0:1/0,e},a.prototype.viewset=function(t,e){return this.create([e.year,e.month,1])},a.prototype.validate=function(t,i,a){var o,r,s,l,u=this,c=i,d=a&&a.interval?a.interval:1,p=-1===u.item.enable,f=u.item.min,h=u.item.max,v=p&&u.item.disable.filter(function(t){if(e.isArray(t)){var a=u.create(t).pick;ai.pick&&(r=!0)}return n.isInteger(t)}).length;if((!a||!a.nav)&&(!p&&u.disabled(i)||p&&u.disabled(i)&&(v||o||r)||!p&&(i.pick<=f.pick||i.pick>=h.pick)))for(p&&!v&&(!r&&d>0||!o&&d<0)&&(d*=-1);u.disabled(i)&&(Math.abs(d)>1&&(i.monthc.month)&&(i=c,d=d>0?1:-1),i.pick<=f.pick?(s=!0,d=1,i=u.create([f.year,f.month,f.date+(i.pick===f.pick?0:-1)])):i.pick>=h.pick&&(l=!0,d=-1,i=u.create([h.year,h.month,h.date+(i.pick===h.pick?0:1)])),!s||!l);)i=u.create([i.year,i.month,i.date+d]);return i},a.prototype.disabled=function(t){var i=this,a=i.item.disable.filter(function(a){return n.isInteger(a)?t.day===(i.settings.firstDay?a:a-1)%7:e.isArray(a)||n.isDate(a)?t.pick===i.create(a).pick:e.isPlainObject(a)?i.withinRange(a,t):void 0});return a=a.length&&!a.filter(function(t){return e.isArray(t)&&"inverted"==t[3]||e.isPlainObject(t)&&t.inverted}).length,-1===i.item.enable?!a:a||t.picki.item.max.pick},a.prototype.parse=function(t,e,i){var a=this,o={};return e&&"string"==typeof e?(i&&i.format||((i=i||{}).format=a.settings.format),a.formats.toArray(i.format).map(function(t){var i=a.formats[t],r=i?n.trigger(i,a,[e,o]):t.replace(/^!/,"").length;i&&(o[t]=e.substr(0,r)),e=e.substr(r)}),[o.yyyy||o.yy,+(o.mm||o.m)-1,o.dd||o.d]):e},a.prototype.formats=function(){function t(t,e,i){var n=t.match(/\w+/)[0];return i.mm||i.m||(i.m=e.indexOf(n)+1),n.length}function e(t){return t.match(/\w+/)[0].length}return{d:function(t,e){return t?n.digits(t):e.date},dd:function(t,e){return t?2:n.lead(e.date)},ddd:function(t,i){return t?e(t):this.settings.weekdaysShort[i.day]},dddd:function(t,i){return t?e(t):this.settings.weekdaysFull[i.day]},m:function(t,e){return t?n.digits(t):e.month+1},mm:function(t,e){return t?2:n.lead(e.month+1)},mmm:function(e,i){var n=this.settings.monthsShort;return e?t(e,n,i):n[i.month]},mmmm:function(e,i){var n=this.settings.monthsFull;return e?t(e,n,i):n[i.month]},yy:function(t,e){return t?2:(""+e.year).slice(2)},yyyy:function(t,e){return t?4:e.year},toArray:function(t){return t.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(t,e){var i=this;return i.formats.toArray(t).map(function(t){return n.trigger(i.formats[t],i,[0,e])||t.replace(/^!/,"")}).join("")}}}(),a.prototype.isDateExact=function(t,i){return n.isInteger(t)&&n.isInteger(i)||"boolean"==typeof t&&"boolean"==typeof i?t===i:(n.isDate(t)||e.isArray(t))&&(n.isDate(i)||e.isArray(i))?this.create(t).pick===this.create(i).pick:!(!e.isPlainObject(t)||!e.isPlainObject(i))&&(this.isDateExact(t.from,i.from)&&this.isDateExact(t.to,i.to))},a.prototype.isDateOverlap=function(t,i){var a=this.settings.firstDay?1:0;return n.isInteger(t)&&(n.isDate(i)||e.isArray(i))?(t=t%7+a)===this.create(i).day+1:n.isInteger(i)&&(n.isDate(t)||e.isArray(t))?(i=i%7+a)===this.create(t).day+1:!(!e.isPlainObject(t)||!e.isPlainObject(i))&&this.overlapRanges(t,i)},a.prototype.flipEnable=function(t){var e=this.item;e.enable=t||(-1==e.enable?1:-1)},a.prototype.deactivate=function(t,i){var a=this,o=a.item.disable.slice(0);return"flip"==i?a.flipEnable():!1===i?(a.flipEnable(1),o=[]):!0===i?(a.flipEnable(-1),o=[]):i.map(function(t){for(var i,r=0;r=f.year&&c.month>=f.month||!t&&c.year<=p.year&&c.month<=p.month?" "+o.klass.navDisabled:""),"data-nav="+(t||-1)+" "+n.ariaAttr({role:"button",controls:a.$node[0].id+"_table"})+' title="'+(t?o.labelMonthNext:o.labelMonthPrev)+'"')},g=function(e){var i=o.showMonthsShort?o.monthsShort:o.monthsFull;return"short_months"==e&&(i=o.monthsShort),o.selectMonths&&null==e?n.node("select",n.group({min:0,max:11,i:1,node:"option",item:function(t){return[i[t],0,"value="+t+(c.month==t?" selected":"")+(c.year==p.year&&tf.month?" disabled":"")]}}),o.klass.selectMonth+" browser-default",(t?"":"disabled")+" "+n.ariaAttr({controls:a.$node[0].id+"_table"})+' title="'+o.labelMonthSelect+'"'):"short_months"==e?null!=l?n.node("div",i[l.month]):n.node("div",i[c.month]):n.node("div",i[c.month],o.klass.month)},m=function(e){var i=c.year,r=!0===o.selectYears?5:~~(o.selectYears/2);if(r){var s=p.year,l=f.year,u=i-r,d=i+r;if(s>u&&(d+=s-u,u=s),lv?v:h,d=l}if(o.selectYears&&null==e)return n.node("select",n.group({min:u,max:d,i:1,node:"option",item:function(t){return[t,0,"value="+t+(i==t?" selected":"")]}}),o.klass.selectYear+" browser-default",(t?"":"disabled")+" "+n.ariaAttr({controls:a.$node[0].id+"_table"})+' title="'+o.labelYearSelect+'"')}return"raw"==e?n.node("div",i):n.node("div",i,o.klass.year)};return createDayLabel=function(){return null!=l?n.node("div",l.date):n.node("div",s.date)},createWeekdayLabel=function(){var t;return t=null!=l?l.day:s.day,o.weekdaysFull[t]},n.node("div",n.node("div",createWeekdayLabel(),"picker__weekday-display")+n.node("div",g("short_months"),o.klass.month_display)+n.node("div",createDayLabel(),o.klass.day_display)+n.node("div",m("raw"),o.klass.year_display),o.klass.date_display)+n.node("div",n.node("div",(o.selectYears,g()+m()+v()+v(1)),o.klass.header)+n.node("table",h+n.node("tbody",n.group({min:0,max:5,i:1,node:"tr",item:function(t){var e=o.firstDay&&0===a.create([c.year,c.month,1]).day?-7:0;return[n.group({min:7*t-c.day+e+1,max:function(){return this.min+7-1},i:1,node:"td",item:function(t){t=a.create([c.year,c.month,t+(o.firstDay?1:0)]);var e,i=l&&l.pick==t.pick,r=u&&u.pick==t.pick,h=d&&a.disabled(t)||t.pickf.pick,v=n.trigger(a.formats.toString,a,[o.format,t]);return[n.node("div",t.date,(e=[o.klass.day],e.push(c.month==t.month?o.klass.infocus:o.klass.outfocus),s.pick==t.pick&&e.push(o.klass.now),i&&e.push(o.klass.selected),r&&e.push(o.klass.highlighted),h&&e.push(o.klass.disabled),e.join(" ")),"data-pick="+t.pick+" "+n.ariaAttr({role:"gridcell",label:v,selected:!(!i||a.$node.val()!==v)||null,activedescendant:!!r||null,disabled:!!h||null})),"",n.ariaAttr({role:"presentation"})]}})]}})),o.klass.table,'id="'+a.$node[0].id+'_table" '+n.ariaAttr({role:"grid",controls:a.$node[0].id,readonly:!0})),o.klass.calendar_container)+n.node("div",n.node("button",o.today,"btn-flat picker__today","type=button data-pick="+s.pick+(t&&!a.disabled(s)?"":" disabled")+" "+n.ariaAttr({controls:a.$node[0].id}))+n.node("button",o.clear,"btn-flat picker__clear","type=button data-clear=1"+(t?"":" disabled")+" "+n.ariaAttr({controls:a.$node[0].id}))+n.node("button",o.close,"btn-flat picker__close","type=button data-close=true "+(t?"":" disabled")+" "+n.ariaAttr({controls:a.$node[0].id})),o.klass.footer)},a.defaults={labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysLetter:["S","M","T","W","T","F","S"],today:"Today",clear:"Clear",close:"Close",format:"d mmmm, yyyy",klass:{table:(i=t.klasses().picker+"__")+"table",header:i+"header",date_display:i+"date-display",day_display:i+"day-display",month_display:i+"month-display",year_display:i+"year-display",calendar_container:i+"calendar-container",navPrev:i+"nav--prev",navNext:i+"nav--next",navDisabled:i+"nav--disabled",month:i+"month",year:i+"year",selectMonth:i+"select--month",selectYear:i+"select--year",weekdays:i+"weekday",day:i+"day",disabled:i+"day--disabled",selected:i+"day--selected",highlighted:i+"day--highlighted",now:i+"day--today",infocus:i+"day--infocus",outfocus:i+"day--outfocus",footer:i+"footer",buttonClear:i+"button--clear",buttonToday:i+"button--today",buttonClose:i+"button--close"}},t.extend("pickadate",a)}),function(t){function e(){var e=+t(this).attr("length"),i=+t(this).val().length,n=i<=e;t(this).parent().find('span[class="character-counter"]').html(i+"/"+e),function(t,e){var i=e.hasClass("invalid");t&&i?e.removeClass("invalid"):t||i||(e.removeClass("valid"),e.addClass("invalid"))}(n,t(this))}function i(){t(this).parent().find('span[class="character-counter"]').html("")}t.fn.characterCounter=function(){return this.each(function(){var n,a;void 0!==t(this).attr("length")&&(t(this).on("input",e),t(this).on("focus",e),t(this).on("blur",i),n=t(this),a=t("").addClass("character-counter").css("float","right").css("font-size","12px").css("height",1),n.parent().append(a))})},t(document).ready(function(){t("input, textarea").characterCounter()})}(jQuery),function(t){var e={init:function(e){return e=t.extend({time_constant:200,dist:-100,shift:0,padding:0,full_width:!1},e),this.each(function(){var i,n,a,o,r,s,l,u,c,d,p,f,h,v,g,m,b,w=t(this);if(w.hasClass("initialized"))return!0;function x(t){return t.targetTouches&&t.targetTouches.length>=1?t.targetTouches[0].clientX:t.clientX}function C(t){return t.targetTouches&&t.targetTouches.length>=1?t.targetTouches[0].clientY:t.clientY}function k(t){return t>=s?t%s:t<0?k(s+t%s):t}function T(t){var o,l,u,c,d,p,h;for(n="number"==typeof t?t:n,a=Math.floor((n+r/2)/r),d=-(c=(u=n-a*r)<0?1:-1)*u*2/r,e.full_width?h="translateX(0)":(h="translateX("+(w[0].clientWidth-item_width)/2+"px) ",h+="translateY("+(w[0].clientHeight-item_width)/2+"px)"),(p=i[k(a)]).style[f]=h+" translateX("+-u/2+"px) translateX("+c*e.shift*d*o+"px) translateZ("+e.dist*d+"px)",p.style.zIndex=0,e.full_width?tweenedOpacity=1:tweenedOpacity=1-.2*d,p.style.opacity=tweenedOpacity,l=s>>1,o=1;o<=l;++o)e.full_width?(zTranslation=e.dist,tweenedOpacity=o===l&&u<0?1-d:1):(zTranslation=e.dist*(2*o+d*c),tweenedOpacity=1-.2*(2*o+d*c)),(p=i[k(a+o)]).style[f]=h+" translateX("+(e.shift+(r*o-u)/2)+"px) translateZ("+zTranslation+"px)",p.style.zIndex=-o,p.style.opacity=tweenedOpacity,e.full_width?(zTranslation=e.dist,tweenedOpacity=o===l&&u>0?1-d:1):(zTranslation=e.dist*(2*o-d*c),tweenedOpacity=1-.2*(2*o-d*c)),(p=i[k(a-o)]).style[f]=h+" translateX("+(-e.shift+(-r*o-u)/2)+"px) translateZ("+zTranslation+"px)",p.style.zIndex=-o,p.style.opacity=tweenedOpacity;(p=i[k(a)]).style[f]=h+" translateX("+-u/2+"px) translateX("+c*e.shift*d+"px) translateZ("+e.dist*d+"px)",p.style.zIndex=0,e.full_width?tweenedOpacity=1:tweenedOpacity=1-.2*d,p.style.opacity=tweenedOpacity}function S(){var t,e,i;e=(t=Date.now())-v,v=t,i=n-h,h=n,p=.8*(1e3*i/(1+e))+.2*p}function O(){var t,i;c&&(t=Date.now()-v,(i=c*Math.exp(-t/e.time_constant))>2||i<-2?(T(d-i),requestAnimationFrame(O)):T(d))}function P(i){if(m)return i.preventDefault(),i.stopPropagation(),!1;if(!e.full_width){var n=t(i.target).closest(".carousel-item").index(),o=a%s-n;o<0?Math.abs(o+s)0&&Math.abs(o-s)0&&t(this).trigger("carouselPrev",[o])}}function E(t){o=!0,m=!1,b=!1,l=x(t),u=C(t),p=c=0,h=n,v=Date.now(),clearInterval(g),g=setInterval(S,100)}function A(t){var e,i;if(o)if(e=x(t),y=C(t),i=l-e,Math.abs(u-y)<30&&!b)(i>2||i<-2)&&(m=!0,l=e,T(n+i));else{if(m)return t.preventDefault(),t.stopPropagation(),!1;b=!0}if(m)return t.preventDefault(),t.stopPropagation(),!1}function q(t){return o=!1,clearInterval(g),d=n,(p>10||p<-10)&&(d=n+(c=.9*p)),d=Math.round(d/r)*r,c=d-n,v=Date.now(),requestAnimationFrame(O),t.preventDefault(),t.stopPropagation(),!1}e.full_width&&(e.dist=0,imageHeight=w.find(".carousel-item img").first().load(function(){w.css("height",t(this).height())})),w.addClass("initialized"),o=!1,n=d=0,i=[],item_width=w.find(".carousel-item").first().innerWidth(),r=2*item_width+e.padding,w.find(".carousel-item").each(function(){i.push(t(this)[0])}),s=i.length,f="transform",["webkit","Moz","O","ms"].every(function(t){var e=t+"Transform";return void 0===document.body.style[e]||(f=e,!1)}),window.onresize=T,void 0!==window.ontouchstart&&(w[0].addEventListener("touchstart",E),w[0].addEventListener("touchmove",A),w[0].addEventListener("touchend",q)),w[0].addEventListener("mousedown",E),w[0].addEventListener("mousemove",A),w[0].addEventListener("mouseup",q),w[0].addEventListener("click",P),T(n),t(this).on("carouselNext",function(t,e){void 0===e&&(e=1),n!==(d=n+r*e)&&(c=d-n,v=Date.now(),requestAnimationFrame(O))}),t(this).on("carouselPrev",function(t,e){void 0===e&&(e=1),n!==(d=n-r*e)&&(c=d-n,v=Date.now(),requestAnimationFrame(O))})})},next:function(e){t(this).trigger("carouselNext",[e])},prev:function(e){t(this).trigger("carouselPrev",[e])}};t.fn.carousel=function(i){return e[i]?e[i].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery.carousel"):e.init.apply(this,arguments)}}(jQuery); \ No newline at end of file diff --git a/gwt-material/src/main/resources/gwt/material/design/public/css/material-icons.css b/gwt-material/src/main/resources/gwt/material/design/public/css/material-icons.css index 8c9b3472f..ada527dc5 100644 --- a/gwt-material/src/main/resources/gwt/material/design/public/css/material-icons.css +++ b/gwt-material/src/main/resources/gwt/material/design/public/css/material-icons.css @@ -8,6 +8,7 @@ url("../font/material-icons/MaterialIcons-Regular.woff2") format('woff2'), url("../font/material-icons/MaterialIcons-Regular.woff") format('woff'), /* Modern Browsers */ url("../font/material-icons/MaterialIcons-Regular.ttf") format('truetype'); /* Safari, Android, iOS */ + font-display: swap; } .material-icons { diff --git a/gwt-material/src/main/resources/gwt/material/design/public/css/material-icons.min.css b/gwt-material/src/main/resources/gwt/material/design/public/css/material-icons.min.css index 0e7aecd62..5771eb294 100644 --- a/gwt-material/src/main/resources/gwt/material/design/public/css/material-icons.min.css +++ b/gwt-material/src/main/resources/gwt/material/design/public/css/material-icons.min.css @@ -1 +1 @@ -@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(../font/material-icons/MaterialIcons-Regular.eot);src:local('Material Icons'),local('MaterialIcons-Regular'),url(../font/material-icons/MaterialIcons-Regular.woff2) format('woff2'),url(../font/material-icons/MaterialIcons-Regular.woff) format('woff'),url(../font/material-icons/MaterialIcons-Regular.ttf) format('truetype')}.material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-moz-font-feature-settings:'liga';-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility} \ No newline at end of file +@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(../font/material-icons/MaterialIcons-Regular.eot);src:local('Material Icons'),local('MaterialIcons-Regular'),url(../font/material-icons/MaterialIcons-Regular.woff2) format('woff2'),url(../font/material-icons/MaterialIcons-Regular.woff) format('woff'),url(../font/material-icons/MaterialIcons-Regular.ttf) format('truetype');font-display:swap}.material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-moz-font-feature-settings:'liga';-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility} \ No newline at end of file diff --git a/gwt-material/src/main/resources/gwt/material/design/public/css/materialize.css b/gwt-material/src/main/resources/gwt/material/design/public/css/materialize.css index 0f06e65a7..dedcc5f74 100644 --- a/gwt-material/src/main/resources/gwt/material/design/public/css/materialize.css +++ b/gwt-material/src/main/resources/gwt/material/design/public/css/materialize.css @@ -5579,42 +5579,12 @@ nav { .navbar-fixed { height: 64px; } } -@font-face { - font-family: "Roboto"; - src: local(Roboto Thin), url("../font/roboto/Roboto-Thin.eot"); - src: url("../font/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("../font/roboto/Roboto-Thin.woff2") format("woff2"), url("../font/roboto/Roboto-Thin.woff") format("woff"), url("../font/roboto/Roboto-Thin.ttf") format("truetype"); - font-weight: 200; } - -@font-face { - font-family: "Roboto"; - src: local(Roboto Light), url("../font/roboto/Roboto-Light.eot"); - src: url("../font/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("../font/roboto/Roboto-Light.woff2") format("woff2"), url("../font/roboto/Roboto-Light.woff") format("woff"), url("../font/roboto/Roboto-Light.ttf") format("truetype"); - font-weight: 300; } - -@font-face { - font-family: "Roboto"; - src: local(Roboto Regular), url("../font/roboto/Roboto-Regular.eot"); - src: url("../font/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../font/roboto/Roboto-Regular.woff2") format("woff2"), url("../font/roboto/Roboto-Regular.woff") format("woff"), url("../font/roboto/Roboto-Regular.ttf") format("truetype"); - font-weight: 400; } - -@font-face { - font-family: "Roboto"; - src: url("../font/roboto/Roboto-Medium.eot"); - src: url("../font/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("../font/roboto/Roboto-Medium.woff2") format("woff2"), url("../font/roboto/Roboto-Medium.woff") format("woff"), url("../font/roboto/Roboto-Medium.ttf") format("truetype"); - font-weight: 500; } - -@font-face { - font-family: "Roboto"; - src: url("../font/roboto/Roboto-Bold.eot"); - src: url("../font/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("../font/roboto/Roboto-Bold.woff2") format("woff2"), url("../font/roboto/Roboto-Bold.woff") format("woff"), url("../font/roboto/Roboto-Bold.ttf") format("truetype"); - font-weight: 700; } - a { text-decoration: none; } html { line-height: 1.5; - font-family: "Roboto", sans-serif; + font-family: sans-serif; font-weight: normal; color: rgba(0, 0, 0, 0.87); } @media only screen and (min-width: 0) { @@ -8538,7 +8508,7 @@ button.picker__today:focus, button.picker__clear:focus, button.picker__close:foc background-size: cover; background: no-repeat fixed; line-height: 1.5; - font-family: "Roboto", sans-serif; + font-family: sans-serif; font-weight: normal; color: rgba(0, 0, 0, 0.87); } @@ -8575,6 +8545,162 @@ div { nav ul li a { float: left; } +/* + This will hide the focus indicator if the element receives focus via the mouse, + but it will still show up on keyboard focus. +*/ +.js-focus-visible :focus:not(.focus-visible) { + outline: none; } + +/** Tabs & Buttons Focusable **/ +.button-collapse[tabindex], +i[tabindex], +button[tabindex], +.tabs .tab a[tabindex] { + overflow: hidden; + position: relative; } + +i[tabindex] { + overflow: visible; } + +i[tabindex]:hover:after { + opacity: 1; + width: 32px; + height: 32px; + top: calc(50% - 17px); + left: calc(50% - 16px); } + +.button-collapse[tabindex]:after, +i[tabindex]:after, +.tabs .tab a[tabindex]:before, +button[tabindex]:before { + content: ""; + position: absolute; + background: rgba(0, 0, 0, 0.2); + border-radius: 100% !important; + width: 0px; + height: 0px; + top: 50%; + left: 50%; + -webkit-animation: breathing 1.5s ease-out infinite normal; + animation: breathing 1.5s ease-out infinite normal; + opacity: 0; + transition: 400ms; } + +.button-collapse.focus-visible:after, +i.focus-visible:after, +button.focus-visible:before, +.tabs .tab a.focus-visible:before { + opacity: 1; + width: 100px; + height: 100px; + top: calc(50% - 50px); + left: calc(50% - 50px); } + +button.btn-floating.focus-visible:before { + width: 48px; + height: 48px; + top: calc(50% - 24px); + left: calc(50% - 24px); } + +i.focus-visible:after { + width: 32px; + height: 32px; + top: calc(50% - 17px); + left: calc(50% - 16px); } + +.button-collapse.focus-visible:before, +nav .nav-wrapper i.focus-visible:after { + width: 40px; + height: 40px; + top: calc(50% - 20px); + left: calc(50% - 20px); } + +/** Checkbox Focusable */ +.checkbox.gwt-CheckBox.focus-visible, +.checkbox.gwt-CheckBox:hover { + position: relative; } + +.checkbox.gwt-CheckBox:after { + opacity: 0; + transition: 200ms; + transform: scale(0); + content: ""; + width: 36px; + height: 36px; + background: rgba(0, 0, 0, 0.1); + position: absolute; + left: -8px; + top: -8px; + border-radius: 100%; + z-index: -1; } + +.checkbox.gwt-CheckBox.focus-visible:after, +.checkbox.gwt-CheckBox:hover:after { + transform: scale(1); + opacity: 1; } + +.checkbox.col.gwt-CheckBox:after { + left: 3px; } + +/** Radio Button Focusable **/ +.gwt-RadioButton:not(.gwt-RadioButton-disabled).focus-visible label:before, +.gwt-RadioButton:not(.gwt-RadioButton-disabled):hover label:before { + -webkit-box-shadow: 0 0 0 8px rgba(0, 0, 0, 0.1); + box-shadow: 0 0 0 8px rgba(0, 0, 0, 0.1); } + +/** Switch Focusable **/ +.switch.focus-visible input[type=checkbox]:checked:not(:disabled) ~ .lever:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(66, 165, 245, 0.15); } + +.switch.focus-visible input[type=checkbox]:not(:disabled) ~ .lever:after { + box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08); } + +/** Range Focusable **/ +input[type=range].focus-visible::-webkit-slider-thumb { + -webkit-box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.15); + -moz-box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.15); + box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.15); } + +input[type=range].focus-visible::-moz-range-thumb { + -webkit-box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.15); + -moz-box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.15); + box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.15); } + +input[type=range]:hover::-ms-thumb, +input[type=range].focus-visible::-ms-thumb { + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; } + +/** Breadcrumb Focusable **/ +.breadcrumb.focus-visible i:only-child { + border-bottom: 1px solid; } + +.breadcrumb.focus-visible span { + border-bottom: 1px solid; } + +.chip.focus-visible { + color: rgba(0, 0, 0, 0.6); + background-color: #c8c8c8; } + +/** Side Focusable **/ +.side-nav li a.focus-visible { + background: #e9e9e9; } + +/** Collapsible Focusable **/ +.collapsible-header:hover, +.collapsible-header.focus-visible { + background-color: #eee; } + +/** Collection Focusable **/ +.collection-item.focus-visible { + background-color: #eee; } + +/** Search Focusbale **/ +.search-result a.focus-visible { + background-color: #eee; } + /** * Async Switch and CheckBox */ @@ -8660,11 +8786,9 @@ nav ul a span.badge { float: right; margin-top: 22px; } -.side-nav .badge { +.side-nav span.badge { float: right; - top: 22px; } - -.sideBarBadge { + top: 22px; height: 20px !important; line-height: 0 !important; padding: 10px !important; @@ -8672,23 +8796,25 @@ nav ul a span.badge { border-radius: 3px !important; font-size: 0.7em !important; } -.badge.circle { +span.badge.circle { position: absolute; - min-width: 0 !important; - border-radius: 100% !important; - height: 24px !important; + min-width: 0; + border-radius: 100%; + height: 24px; top: -12px; width: 24px; - font-size: 0.6rem !important; + font-size: 0.6rem; text-align: center; - padding: 0 !important; - padding-top: 12px !important; + padding: 12px 0 0; right: 8px; } -.badge > div:first-child { +span.badge > div:first-child { display: inline; } -.badge { +nav ul a span.badge:not(.circle) { + line-height: 22px; } + +span.badge { background: #42A5F5; } /** @@ -8899,7 +9025,7 @@ input:-webkit-autofill { box-shadow: none; } .input-field.disabled label { - color: rgba(0, 0, 0, 0.26) !important; } + color: rgba(0, 0, 0, 0.6) !important; } /** * Aligned Label @@ -9179,6 +9305,9 @@ blockquote { position: initial !important; opacity: 0 !important; } +.checkbox { + margin-bottom: 20px; } + /** * ReadOnly States **/ @@ -9251,10 +9380,6 @@ blockquote { .switch label input[type=checkbox]:checked + .lever.disabled { background-color: #D4D4D4; } -/** Secondary Label **/ -.secondary-label { - color: rgba(0, 0, 0, 0.6); } - /** * Range Slider * Fixed for IE issue with multiple indicator https://github.com/GwtMaterialDesign/gwt-material/issues/815 @@ -9265,10 +9390,6 @@ blockquote { input[type=range]::-ms-fill-lower { background-color: #deddde !important; } -[type="radio"]:not(:checked) + label, [type="radio"]:checked + label, -[type="checkbox"] + label { - color: rgba(0, 0, 0, 0.87); } - .range-field { padding-top: 12px; } @@ -9290,11 +9411,6 @@ input[type=range]:hover::-webkit-slider-thumb { -moz-box-shadow: 0px 0px 0px 8px rgba(66, 165, 245, 0.15); box-shadow: 0px 0px 0px 8px rgba(66, 165, 245, 0.15); } -input[type=range]:focus::-webkit-slider-thumb { - -webkit-box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.15); - -moz-box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.15); - box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.15); } - input[type=range]::-webkit-slider-runnable-track { background-color: transparent !important; margin-top: -20px; } @@ -9326,11 +9442,6 @@ input[type=range]:hover::-moz-range-thumb { -moz-box-shadow: 0px 0px 0px 8px rgba(66, 165, 245, 0.2); box-shadow: 0px 0px 0px 8px rgba(66, 165, 245, 0.2); } -input[type=range]:focus::-moz-range-thumb { - -webkit-box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.2); - -moz-box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.2); - box-shadow: 0px 0px 0px 12px rgba(66, 165, 245, 0.2); } - /** Range IE Support **/ input[type=range]::-ms-track { height: 32px; @@ -9348,11 +9459,32 @@ input[type=range]::-ms-thumb { transform: translateY(18px); margin-bottom: 22px; } -input[type=range]:hover::-ms-thumb, -input[type=range]:focus::-ms-thumb { - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - box-shadow: none !important; } +/** Copy to Clipboard **/ +.copy-command { + position: absolute; + top: 8px; + right: -20px; + z-index: 998; } + +.copy-command-parent:hover i.copy-command.on-readonly-hover, +.copy-command-parent:hover i.copy-command.on-always-hover { + opacity: 1; } + +i.copy-command.on-readonly-hover, +i.copy-command.on-always-hover { + opacity: 0; + transition: 400ms; } + +i[tabindex].copy-command { + position: absolute; + top: 8px; + right: 12px; + z-index: 999; } + +@media screen and (max-width: 900px) { + i.copy-command.on-readonly-hover, + i.copy-command.on-always-hover { + opacity: 1; } } /** * Chips @@ -9927,6 +10059,13 @@ ul.side-nav .collapsible-body li { ul.side-nav .collapsible-body li.active { background-color: #eeeeee !important; } +.side-nav li:hover, .side-nav li.active { + background-color: rgba(100, 181, 246, 0.1); } + +.side-nav li:hover a, +.side-nav li.active a { + color: #64B5F6; } + ul.side-nav.right-aligned { left: auto !important; } @@ -10309,10 +10448,10 @@ i[class*="waves-"].material-icons { /** * Carousel **/ -.slick-dots li { +ul.slick-dots li { background: #b1dafb; } -.slick-dots li.slick-active { +ul.slick-dots li.slick-active { background: #42A5F5; } /** @@ -10439,7 +10578,7 @@ button.waves-effect.waves-light.btn.disabled, button.waves-effect.waves-light.di /** * Window **/ -.window .window-toolbar { +div.window .window-toolbar { background-color: #42A5F5; } /* ========================================================================== @@ -10448,7 +10587,7 @@ button.waves-effect.waves-light.btn.disabled, button.waves-effect.waves-light.di /** * Group Toggle Button **/ -.group-toggle-button button.active { +.group-toggle-button button.btn.active, .group-toggle-button button.active.btn-large { background: #42A5F5; } /** @@ -10469,3 +10608,23 @@ button.waves-effect.waves-light.btn.disabled, button.waves-effect.waves-light.di background: #42A5F5; -webkit-animation: 1.5s cubic-bezier(0.08, -0.18, 0.91, 1.14) barbounce alternate infinite; animation: 1.5s cubic-bezier(0.08, -0.18, 0.91, 1.14) barbounce alternate infinite; } + +/** +* Date Range +**/ +div.daterangepicker td.active, +div.daterangepicker td.active:hover, +div.daterangepicker td.in-range.active:not(.off), +div.daterangepicker .ranges li.active { + background-color: #64B5F6; } + +div.daterangepicker td.in-range, +div.daterangepicker td.available.in-range:hover:not(.active) { + background-color: rgba(100, 181, 246, 0.2); + color: #64B5F6; } + +div.drp-buttons button.cancelBtn { + color: #64B5F6; } + +div.daterangepicker td.available:hover:after { + border: 2px solid #64B5F6; } diff --git a/gwt-material/src/main/resources/gwt/material/design/public/css/materialize.min.css b/gwt-material/src/main/resources/gwt/material/design/public/css/materialize.min.css index cee8c8657..293fe5e6c 100644 --- a/gwt-material/src/main/resources/gwt/material/design/public/css/materialize.min.css +++ b/gwt-material/src/main/resources/gwt/material/design/public/css/materialize.min.css @@ -1,4 +1,4 @@ -.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{background-color:#e51c23!important}.materialize-red-text{color:#e51c23!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.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{background-color:#f44336!important}.red-text{color:#f44336!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.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{background-color:#e91e63!important}.pink-text{color:#e91e63!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.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{background-color:#9c27b0!important}.purple-text{color:#9c27b0!important}.purple.darken-1{background-color:#8e24aa!important}.purple-text.text-darken-1{color:#8e24aa!important}.purple.darken-2{background-color:#7b1fa2!important}.purple-text.text-darken-2{color:#7b1fa2!important}.purple.darken-3{background-color:#6a1b9a!important}.purple-text.text-darken-3{color:#6a1b9a!important}.purple.darken-4{background-color:#4a148c!important}.purple-text.text-darken-4{color:#4a148c!important}.purple.accent-1{background-color:#ea80fc!important}.purple-text.text-accent-1{color:#ea80fc!important}.purple.accent-2{background-color:#e040fb!important}.purple-text.text-accent-2{color:#e040fb!important}.purple.accent-3{background-color:#d500f9!important}.purple-text.text-accent-3{color:#d500f9!important}.purple.accent-4{background-color:#a0f!important}.purple-text.text-accent-4{color:#a0f!important}.deep-purple.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{background-color:#673ab7!important}.deep-purple-text{color:#673ab7!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.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{background-color:#3f51b5!important}.indigo-text{color:#3f51b5!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.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{background-color:#2196f3!important}.blue-text{color:#2196f3!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.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{background-color:#03a9f4!important}.light-blue-text{color:#03a9f4!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.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{background-color:#00bcd4!important}.cyan-text{color:#00bcd4!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.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{background-color:#009688!important}.teal-text{color:#009688!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.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{background-color:#4caf50!important}.green-text{color:#4caf50!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.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{background-color:#8bc34a!important}.light-green-text{color:#8bc34a!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.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{background-color:#cddc39!important}.lime-text{color:#cddc39!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.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{background-color:#ffeb3b!important}.yellow-text{color:#ffeb3b!important}.yellow.darken-1{background-color:#fdd835!important}.yellow-text.text-darken-1{color:#fdd835!important}.yellow.darken-2{background-color:#fbc02d!important}.yellow-text.text-darken-2{color:#fbc02d!important}.yellow.darken-3{background-color:#f9a825!important}.yellow-text.text-darken-3{color:#f9a825!important}.yellow.darken-4{background-color:#f57f17!important}.yellow-text.text-darken-4{color:#f57f17!important}.yellow.accent-1{background-color:#ffff8d!important}.yellow-text.text-accent-1{color:#ffff8d!important}.yellow.accent-2{background-color:#ff0!important}.yellow-text.text-accent-2{color:#ff0!important}.yellow.accent-3{background-color:#ffea00!important}.yellow-text.text-accent-3{color:#ffea00!important}.yellow.accent-4{background-color:#ffd600!important}.yellow-text.text-accent-4{color:#ffd600!important}.amber.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{background-color:#ffc107!important}.amber-text{color:#ffc107!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.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{background-color:#ff9800!important}.orange-text{color:#ff9800!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.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{background-color:#ff5722!important}.deep-orange-text{color:#ff5722!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.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{background-color:#795548!important}.brown-text{color:#795548!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.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{background-color:#607d8b!important}.blue-grey-text{color:#607d8b!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.lighten-5{background-color:#fafafa!important}.grey-text.text-lighten-5{color:#fafafa!important}.grey.lighten-4{background-color:#f5f5f5!important}.grey-text.text-lighten-4{color:#f5f5f5!important}.grey.lighten-3{background-color:#eee!important}.grey-text.text-lighten-3{color:#eee!important}.grey.lighten-2{background-color:#e0e0e0!important}.grey-text.text-lighten-2{color:#e0e0e0!important}.grey.lighten-1{background-color:#bdbdbd!important}.grey-text.text-lighten-1{color:#bdbdbd!important}.grey{background-color:#9e9e9e!important}.grey-text{color:#9e9e9e!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}.shades.black{background-color:#000!important}.shades-text.text-black{color:#000!important}.shades.white{background-color:#fff!important}.shades-text.text-white{color:#fff!important}.shades.transparent{background-color:transparent!important}.shades-text.text-transparent{color:transparent!important}.black{background-color:#000!important}.black-text{color:#000!important}.white{background-color:#fff!important}.white-text{color:#fff!important}.transparent{background-color:transparent!important}.transparent-text{color:transparent!important}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}html input[type="button"],button,input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}ul{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:flex;align-items:center}.valign-wrapper .valign{display:block}ul{padding:0}ul li{list-style-type:none}.clearfix{clear:both}.z-depth-0{box-shadow:none!important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-floating,.dropdown-content,.collapsible,.side-nav{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-floating:hover{box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15)}.z-depth-2{box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.z-depth-3{box-shadow:0 12px 15px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19)}.z-depth-4,.modal{box-shadow:0 16px 28px 0 rgba(0,0,0,0.22),0 25px 55px 0 rgba(0,0,0,0.21)}.z-depth-5{box-shadow:0 27px 24px 0 rgba(0,0,0,0.2),0 40px 77px 0 rgba(0,0,0,0.22)}.hoverable{transition:box-shadow .25s;box-shadow:0}.hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #64b5f6}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;font-size:1.2rem;padding:0 10px;line-height:30px;border-radius:2px;text-align:center}.pagination li a{color:#444}.pagination li.active a{color:#fff}.pagination li.active{background-color:#64b5f6}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2.2rem;vertical-align:middle}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width:992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax img{display:none;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed!important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;transform-origin:0 50%}@media only screen and (max-width:600px){.hide-on-small-only,.hide-on-small-and-down{display:none!important}}@media only screen and (max-width:992px){.hide-on-med-and-down{display:none!important}}@media only screen and (min-width:601px){.hide-on-med-and-up{display:none!important}}@media only screen and (min-width:600px) and (max-width:992px){.hide-on-med-only{display:none!important}}@media only screen and (min-width:993px){.hide-on-large-only{display:none!important}}@media only screen and (min-width:993px){.show-on-large{display:block!important}}@media only screen and (min-width:600px) and (max-width:992px){.show-on-medium{display:block!important}}@media only screen and (max-width:600px){.show-on-small{display:block!important}}@media only screen and (min-width:601px){.show-on-medium-and-up{display:block!important}}@media only screen and (max-width:992px){.show-on-medium-and-down{display:block!important}}@media only screen and (max-width:600px){.center-on-small-only{text-align:center}}footer.page-footer{margin-top:20px;padding-top:20px;background-color:#64b5f6}footer.page-footer .footer-copyright{overflow:hidden;height:50px;line-height:50px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:0}table{width:100%;display:table}table.bordered>thead>tr,table.bordered>tbody>tr{border-bottom:1px solid #d0d0d0}table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:#f2f2f2}table.centered thead tr th,table.centered tbody tr td{text-align:center}thead{border-bottom:1px solid #d0d0d0}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width:992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid #d0d0d0}table.responsive-table.bordered th{border-bottom:0;border-left:0}table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}table.responsive-table.bordered tr{border:0}table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.collection{margin:.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:0}.collection .collection-item.active{background-color:#42a5f5;color:white}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;transition:.25s;color:#42a5f5}.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:#42a5f5}.collapsible .collection{margin:0;border:0}span.badge{min-width:3rem;padding:0 6px;text-align:center;font-size:1rem;line-height:inherit;color:#757575;position:absolute;right:15px;box-sizing:border-box}span.badge.new{font-weight:300;font-size:.8rem;color:#fff;background-color:#42a5f5;border-radius:2px}span.badge.new:after{content:" new"}nav ul a span.badge{position:static;margin-left:4px;line-height:0}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:white;border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;background-color:inherit;top:0;left:0;bottom:0;background-color:#42a5f5;transition:width .3s linear}.progress .indeterminate{background-color:#42a5f5}.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%}}.hide{display:none!important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left!important}.right{float:right!important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0!important}.material-icons{text-rendering:optimizeLegibility;font-feature-settings:'liga'}@font-face{font-family:"Material-Design-Icons";src:url("../font/material-design-icons/Material-Design-Icons.eot?#iefix") format("embedded-opentype"),url("../font/material-design-icons/Material-Design-Icons.woff2") format("woff2"),url("../font/material-design-icons/Material-Design-Icons.woff") format("woff"),url("../font/material-design-icons/Material-Design-Icons.ttf") format("truetype"),url("../font/material-design-icons/Material-Design-Icons.svg#Material-Design-Icons") format("svg");font-weight:normal;font-style:normal}[class^="mdi-"],[class*="mdi-"]{speak:none;display:inline-block;font-family:"Material-Design-Icons";font-style:normal;font-weight:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}[class^="mdi-"]:before,[class*="mdi-"]:before{display:inline-block;speak:none;text-decoration:inherit}[class^="mdi-"].pull-left,[class*="mdi-"].pull-left{margin-right:.3em}[class^="mdi-"].pull-right,[class*="mdi-"].pull-right{margin-left:.3em}[class^="mdi-"].mdi-lg:before,[class^="mdi-"].mdi-lg:after,[class*="mdi-"].mdi-lg:before,[class*="mdi-"].mdi-lg:after{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}[class^="mdi-"].mdi-2x:before,[class^="mdi-"].mdi-2x:after,[class*="mdi-"].mdi-2x:before,[class*="mdi-"].mdi-2x:after{font-size:2em}[class^="mdi-"].mdi-3x:before,[class^="mdi-"].mdi-3x:after,[class*="mdi-"].mdi-3x:before,[class*="mdi-"].mdi-3x:after{font-size:3em}[class^="mdi-"].mdi-4x:before,[class^="mdi-"].mdi-4x:after,[class*="mdi-"].mdi-4x:before,[class*="mdi-"].mdi-4x:after{font-size:4em}[class^="mdi-"].mdi-5x:before,[class^="mdi-"].mdi-5x:after,[class*="mdi-"].mdi-5x:before,[class*="mdi-"].mdi-5x:after{font-size:5em}[class^="mdi-device-signal-cellular-"]:after,[class^="mdi-device-battery-"]:after,[class^="mdi-device-battery-charging-"]:after,[class^="mdi-device-signal-cellular-connected-no-internet-"]:after,[class^="mdi-device-signal-wifi-"]:after,[class^="mdi-device-signal-wifi-statusbar-not-connected"]:after,.mdi-device-network-wifi:after{opacity:.3;position:absolute;left:0;top:0;z-index:1;display:inline-block;speak:none;text-decoration:inherit}[class^="mdi-device-signal-cellular-"]:after{content:"\e758"}[class^="mdi-device-battery-"]:after{content:"\e735"}[class^="mdi-device-battery-charging-"]:after{content:"\e733"}[class^="mdi-device-signal-cellular-connected-no-internet-"]:after{content:"\e75d"}[class^="mdi-device-signal-wifi-"]:after,.mdi-device-network-wifi:after{content:"\e765"}[class^="mdi-device-signal-wifi-statusbasr-not-connected"]:after{content:"\e8f7"}.mdi-device-signal-cellular-off:after,.mdi-device-signal-cellular-null:after,.mdi-device-signal-cellular-no-sim:after,.mdi-device-signal-wifi-off:after,.mdi-device-signal-wifi-4-bar:after,.mdi-device-signal-cellular-4-bar:after,.mdi-device-battery-alert:after,.mdi-device-signal-cellular-connected-no-internet-4-bar:after,.mdi-device-battery-std:after,.mdi-device-battery-full .mdi-device-battery-unknown:after{content:""}.mdi-fw{width:1.28571429em;text-align:center}.mdi-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.mdi-ul>li{position:relative}.mdi-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.mdi-li.mdi-lg{left:-1.85714286em}.mdi-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.mdi-spin{-webkit-animation:mdi-spin 2s infinite linear;animation:mdi-spin 2s infinite linear;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%}.mdi-pulse{-webkit-animation:mdi-spin 1s steps(8) infinite;animation:mdi-spin 1s steps(8) infinite;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%}@-webkit-keyframes mdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes mdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.mdi-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.mdi-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.mdi-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.mdi-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.mdi-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .mdi-rotate-90,:root .mdi-rotate-180,:root .mdi-rotate-270,:root .mdi-flip-horizontal,:root .mdi-flip-vertical{filter:none}.mdi-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.mdi-stack-1x,.mdi-stack-2x{position:absolute;left:0;width:100%;text-align:center}.mdi-stack-1x{line-height:inherit}.mdi-stack-2x{font-size:2em}.mdi-inverse{color:#fff}.mdi-action-3d-rotation:before{content:"\e600"}.mdi-action-accessibility:before{content:"\e601"}.mdi-action-account-balance-wallet:before{content:"\e602"}.mdi-action-account-balance:before{content:"\e603"}.mdi-action-account-box:before{content:"\e604"}.mdi-action-account-child:before{content:"\e605"}.mdi-action-account-circle:before{content:"\e606"}.mdi-action-add-shopping-cart:before{content:"\e607"}.mdi-action-alarm-add:before{content:"\e608"}.mdi-action-alarm-off:before{content:"\e609"}.mdi-action-alarm-on:before{content:"\e60a"}.mdi-action-alarm:before{content:"\e60b"}.mdi-action-android:before{content:"\e60c"}.mdi-action-announcement:before{content:"\e60d"}.mdi-action-aspect-ratio:before{content:"\e60e"}.mdi-action-assessment:before{content:"\e60f"}.mdi-action-assignment-ind:before{content:"\e610"}.mdi-action-assignment-late:before{content:"\e611"}.mdi-action-assignment-return:before{content:"\e612"}.mdi-action-assignment-returned:before{content:"\e613"}.mdi-action-assignment-turned-in:before{content:"\e614"}.mdi-action-assignment:before{content:"\e615"}.mdi-action-autorenew:before{content:"\e616"}.mdi-action-backup:before{content:"\e617"}.mdi-action-book:before{content:"\e618"}.mdi-action-bookmark-outline:before{content:"\e619"}.mdi-action-bookmark:before{content:"\e61a"}.mdi-action-bug-report:before{content:"\e61b"}.mdi-action-cached:before{content:"\e61c"}.mdi-action-check-circle:before{content:"\e61d"}.mdi-action-class:before{content:"\e61e"}.mdi-action-credit-card:before{content:"\e61f"}.mdi-action-dashboard:before{content:"\e620"}.mdi-action-delete:before{content:"\e621"}.mdi-action-description:before{content:"\e622"}.mdi-action-dns:before{content:"\e623"}.mdi-action-done-all:before{content:"\e624"}.mdi-action-done:before{content:"\e625"}.mdi-action-event:before{content:"\e626"}.mdi-action-exit-to-app:before{content:"\e627"}.mdi-action-explore:before{content:"\e628"}.mdi-action-extension:before{content:"\e629"}.mdi-action-face-unlock:before{content:"\e62a"}.mdi-action-favorite-outline:before{content:"\e62b"}.mdi-action-favorite:before{content:"\e62c"}.mdi-action-find-in-page:before{content:"\e62d"}.mdi-action-find-replace:before{content:"\e62e"}.mdi-action-flip-to-back:before{content:"\e62f"}.mdi-action-flip-to-front:before{content:"\e630"}.mdi-action-get-app:before{content:"\e631"}.mdi-action-grade:before{content:"\e632"}.mdi-action-group-work:before{content:"\e633"}.mdi-action-help:before{content:"\e634"}.mdi-action-highlight-remove:before{content:"\e635"}.mdi-action-history:before{content:"\e636"}.mdi-action-home:before{content:"\e637"}.mdi-action-https:before{content:"\e638"}.mdi-action-info-outline:before{content:"\e639"}.mdi-action-info:before{content:"\e63a"}.mdi-action-input:before{content:"\e63b"}.mdi-action-invert-colors:before{content:"\e63c"}.mdi-action-label-outline:before{content:"\e63d"}.mdi-action-label:before{content:"\e63e"}.mdi-action-language:before{content:"\e63f"}.mdi-action-launch:before{content:"\e640"}.mdi-action-list:before{content:"\e641"}.mdi-action-lock-open:before{content:"\e642"}.mdi-action-lock-outline:before{content:"\e643"}.mdi-action-lock:before{content:"\e644"}.mdi-action-loyalty:before{content:"\e645"}.mdi-action-markunread-mailbox:before{content:"\e646"}.mdi-action-note-add:before{content:"\e647"}.mdi-action-open-in-browser:before{content:"\e648"}.mdi-action-open-in-new:before{content:"\e649"}.mdi-action-open-with:before{content:"\e64a"}.mdi-action-pageview:before{content:"\e64b"}.mdi-action-payment:before{content:"\e64c"}.mdi-action-perm-camera-mic:before{content:"\e64d"}.mdi-action-perm-contact-cal:before{content:"\e64e"}.mdi-action-perm-data-setting:before{content:"\e64f"}.mdi-action-perm-device-info:before{content:"\e650"}.mdi-action-perm-identity:before{content:"\e651"}.mdi-action-perm-media:before{content:"\e652"}.mdi-action-perm-phone-msg:before{content:"\e653"}.mdi-action-perm-scan-wifi:before{content:"\e654"}.mdi-action-picture-in-picture:before{content:"\e655"}.mdi-action-polymer:before{content:"\e656"}.mdi-action-print:before{content:"\e657"}.mdi-action-query-builder:before{content:"\e658"}.mdi-action-question-answer:before{content:"\e659"}.mdi-action-receipt:before{content:"\e65a"}.mdi-action-redeem:before{content:"\e65b"}.mdi-action-reorder:before{content:"\e65c"}.mdi-action-report-problem:before{content:"\e65d"}.mdi-action-restore:before{content:"\e65e"}.mdi-action-room:before{content:"\e65f"}.mdi-action-schedule:before{content:"\e660"}.mdi-action-search:before{content:"\e661"}.mdi-action-settings-applications:before{content:"\e662"}.mdi-action-settings-backup-restore:before{content:"\e663"}.mdi-action-settings-bluetooth:before{content:"\e664"}.mdi-action-settings-cell:before{content:"\e665"}.mdi-action-settings-display:before{content:"\e666"}.mdi-action-settings-ethernet:before{content:"\e667"}.mdi-action-settings-input-antenna:before{content:"\e668"}.mdi-action-settings-input-component:before{content:"\e669"}.mdi-action-settings-input-composite:before{content:"\e66a"}.mdi-action-settings-input-hdmi:before{content:"\e66b"}.mdi-action-settings-input-svideo:before{content:"\e66c"}.mdi-action-settings-overscan:before{content:"\e66d"}.mdi-action-settings-phone:before{content:"\e66e"}.mdi-action-settings-power:before{content:"\e66f"}.mdi-action-settings-remote:before{content:"\e670"}.mdi-action-settings-voice:before{content:"\e671"}.mdi-action-settings:before{content:"\e672"}.mdi-action-shop-two:before{content:"\e673"}.mdi-action-shop:before{content:"\e674"}.mdi-action-shopping-basket:before{content:"\e675"}.mdi-action-shopping-cart:before{content:"\e676"}.mdi-action-speaker-notes:before{content:"\e677"}.mdi-action-spellcheck:before{content:"\e678"}.mdi-action-star-rate:before{content:"\e679"}.mdi-action-stars:before{content:"\e67a"}.mdi-action-store:before{content:"\e67b"}.mdi-action-subject:before{content:"\e67c"}.mdi-action-supervisor-account:before{content:"\e67d"}.mdi-action-swap-horiz:before{content:"\e67e"}.mdi-action-swap-vert-circle:before{content:"\e67f"}.mdi-action-swap-vert:before{content:"\e680"}.mdi-action-system-update-tv:before{content:"\e681"}.mdi-action-tab-unselected:before{content:"\e682"}.mdi-action-tab:before{content:"\e683"}.mdi-action-theaters:before{content:"\e684"}.mdi-action-thumb-down:before{content:"\e685"}.mdi-action-thumb-up:before{content:"\e686"}.mdi-action-thumbs-up-down:before{content:"\e687"}.mdi-action-toc:before{content:"\e688"}.mdi-action-today:before{content:"\e689"}.mdi-action-track-changes:before{content:"\e68a"}.mdi-action-translate:before{content:"\e68b"}.mdi-action-trending-down:before{content:"\e68c"}.mdi-action-trending-neutral:before{content:"\e68d"}.mdi-action-trending-up:before{content:"\e68e"}.mdi-action-turned-in-not:before{content:"\e68f"}.mdi-action-turned-in:before{content:"\e690"}.mdi-action-verified-user:before{content:"\e691"}.mdi-action-view-agenda:before{content:"\e692"}.mdi-action-view-array:before{content:"\e693"}.mdi-action-view-carousel:before{content:"\e694"}.mdi-action-view-column:before{content:"\e695"}.mdi-action-view-day:before{content:"\e696"}.mdi-action-view-headline:before{content:"\e697"}.mdi-action-view-list:before{content:"\e698"}.mdi-action-view-module:before{content:"\e699"}.mdi-action-view-quilt:before{content:"\e69a"}.mdi-action-view-stream:before{content:"\e69b"}.mdi-action-view-week:before{content:"\e69c"}.mdi-action-visibility-off:before{content:"\e69d"}.mdi-action-visibility:before{content:"\e69e"}.mdi-action-wallet-giftcard:before{content:"\e69f"}.mdi-action-wallet-membership:before{content:"\e6a0"}.mdi-action-wallet-travel:before{content:"\e6a1"}.mdi-action-work:before{content:"\e6a2"}.mdi-alert-error:before{content:"\e6a3"}.mdi-alert-warning:before{content:"\e6a4"}.mdi-av-album:before{content:"\e6a5"}.mdi-av-closed-caption:before{content:"\e6a6"}.mdi-av-equalizer:before{content:"\e6a7"}.mdi-av-explicit:before{content:"\e6a8"}.mdi-av-fast-forward:before{content:"\e6a9"}.mdi-av-fast-rewind:before{content:"\e6aa"}.mdi-av-games:before{content:"\e6ab"}.mdi-av-hearing:before{content:"\e6ac"}.mdi-av-high-quality:before{content:"\e6ad"}.mdi-av-loop:before{content:"\e6ae"}.mdi-av-mic-none:before{content:"\e6af"}.mdi-av-mic-off:before{content:"\e6b0"}.mdi-av-mic:before{content:"\e6b1"}.mdi-av-movie:before{content:"\e6b2"}.mdi-av-my-library-add:before{content:"\e6b3"}.mdi-av-my-library-books:before{content:"\e6b4"}.mdi-av-my-library-music:before{content:"\e6b5"}.mdi-av-new-releases:before{content:"\e6b6"}.mdi-av-not-interested:before{content:"\e6b7"}.mdi-av-pause-circle-fill:before{content:"\e6b8"}.mdi-av-pause-circle-outline:before{content:"\e6b9"}.mdi-av-pause:before{content:"\e6ba"}.mdi-av-play-arrow:before{content:"\e6bb"}.mdi-av-play-circle-fill:before{content:"\e6bc"}.mdi-av-play-circle-outline:before{content:"\e6bd"}.mdi-av-play-shopping-bag:before{content:"\e6be"}.mdi-av-playlist-add:before{content:"\e6bf"}.mdi-av-queue-music:before{content:"\e6c0"}.mdi-av-queue:before{content:"\e6c1"}.mdi-av-radio:before{content:"\e6c2"}.mdi-av-recent-actors:before{content:"\e6c3"}.mdi-av-repeat-one:before{content:"\e6c4"}.mdi-av-repeat:before{content:"\e6c5"}.mdi-av-replay:before{content:"\e6c6"}.mdi-av-shuffle:before{content:"\e6c7"}.mdi-av-skip-next:before{content:"\e6c8"}.mdi-av-skip-previous:before{content:"\e6c9"}.mdi-av-snooze:before{content:"\e6ca"}.mdi-av-stop:before{content:"\e6cb"}.mdi-av-subtitles:before{content:"\e6cc"}.mdi-av-surround-sound:before{content:"\e6cd"}.mdi-av-timer:before{content:"\e6ce"}.mdi-av-video-collection:before{content:"\e6cf"}.mdi-av-videocam-off:before{content:"\e6d0"}.mdi-av-videocam:before{content:"\e6d1"}.mdi-av-volume-down:before{content:"\e6d2"}.mdi-av-volume-mute:before{content:"\e6d3"}.mdi-av-volume-off:before{content:"\e6d4"}.mdi-av-volume-up:before{content:"\e6d5"}.mdi-av-web:before{content:"\e6d6"}.mdi-communication-business:before{content:"\e6d7"}.mdi-communication-call-end:before{content:"\e6d8"}.mdi-communication-call-made:before{content:"\e6d9"}.mdi-communication-call-merge:before{content:"\e6da"}.mdi-communication-call-missed:before{content:"\e6db"}.mdi-communication-call-received:before{content:"\e6dc"}.mdi-communication-call-split:before{content:"\e6dd"}.mdi-communication-call:before{content:"\e6de"}.mdi-communication-chat:before{content:"\e6df"}.mdi-communication-clear-all:before{content:"\e6e0"}.mdi-communication-comment:before{content:"\e6e1"}.mdi-communication-contacts:before{content:"\e6e2"}.mdi-communication-dialer-sip:before{content:"\e6e3"}.mdi-communication-dialpad:before{content:"\e6e4"}.mdi-communication-dnd-on:before{content:"\e6e5"}.mdi-communication-email:before{content:"\e6e6"}.mdi-communication-forum:before{content:"\e6e7"}.mdi-communication-import-export:before{content:"\e6e8"}.mdi-communication-invert-colors-off:before{content:"\e6e9"}.mdi-communication-invert-colors-on:before{content:"\e6ea"}.mdi-communication-live-help:before{content:"\e6eb"}.mdi-communication-location-off:before{content:"\e6ec"}.mdi-communication-location-on:before{content:"\e6ed"}.mdi-communication-message:before{content:"\e6ee"}.mdi-communication-messenger:before{content:"\e6ef"}.mdi-communication-no-sim:before{content:"\e6f0"}.mdi-communication-phone:before{content:"\e6f1"}.mdi-communication-portable-wifi-off:before{content:"\e6f2"}.mdi-communication-quick-contacts-dialer:before{content:"\e6f3"}.mdi-communication-quick-contacts-mail:before{content:"\e6f4"}.mdi-communication-ring-volume:before{content:"\e6f5"}.mdi-communication-stay-current-landscape:before{content:"\e6f6"}.mdi-communication-stay-current-portrait:before{content:"\e6f7"}.mdi-communication-stay-primary-landscape:before{content:"\e6f8"}.mdi-communication-stay-primary-portrait:before{content:"\e6f9"}.mdi-communication-swap-calls:before{content:"\e6fa"}.mdi-communication-textsms:before{content:"\e6fb"}.mdi-communication-voicemail:before{content:"\e6fc"}.mdi-communication-vpn-key:before{content:"\e6fd"}.mdi-content-add-box:before{content:"\e6fe"}.mdi-content-add-circle-outline:before{content:"\e6ff"}.mdi-content-add-circle:before{content:"\e700"}.mdi-content-add:before{content:"\e701"}.mdi-content-archive:before{content:"\e702"}.mdi-content-backspace:before{content:"\e703"}.mdi-content-block:before{content:"\e704"}.mdi-content-clear:before{content:"\e705"}.mdi-content-content-copy:before{content:"\e706"}.mdi-content-content-cut:before{content:"\e707"}.mdi-content-content-paste:before{content:"\e708"}.mdi-content-create:before{content:"\e709"}.mdi-content-drafts:before{content:"\e70a"}.mdi-content-filter-list:before{content:"\e70b"}.mdi-content-flag:before{content:"\e70c"}.mdi-content-forward:before{content:"\e70d"}.mdi-content-gesture:before{content:"\e70e"}.mdi-content-inbox:before{content:"\e70f"}.mdi-content-link:before{content:"\e710"}.mdi-content-mail:before{content:"\e711"}.mdi-content-markunread:before{content:"\e712"}.mdi-content-redo:before{content:"\e713"}.mdi-content-remove-circle-outline:before{content:"\e714"}.mdi-content-remove-circle:before{content:"\e715"}.mdi-content-remove:before{content:"\e716"}.mdi-content-reply-all:before{content:"\e717"}.mdi-content-reply:before{content:"\e718"}.mdi-content-report:before{content:"\e719"}.mdi-content-save:before{content:"\e71a"}.mdi-content-select-all:before{content:"\e71b"}.mdi-content-send:before{content:"\e71c"}.mdi-content-sort:before{content:"\e71d"}.mdi-content-text-format:before{content:"\e71e"}.mdi-content-undo:before{content:"\e71f"}.mdi-editor-attach-file:before{content:"\e776"}.mdi-editor-attach-money:before{content:"\e777"}.mdi-editor-border-all:before{content:"\e778"}.mdi-editor-border-bottom:before{content:"\e779"}.mdi-editor-border-clear:before{content:"\e77a"}.mdi-editor-border-color:before{content:"\e77b"}.mdi-editor-border-horizontal:before{content:"\e77c"}.mdi-editor-border-inner:before{content:"\e77d"}.mdi-editor-border-left:before{content:"\e77e"}.mdi-editor-border-outer:before{content:"\e77f"}.mdi-editor-border-right:before{content:"\e780"}.mdi-editor-border-style:before{content:"\e781"}.mdi-editor-border-top:before{content:"\e782"}.mdi-editor-border-vertical:before{content:"\e783"}.mdi-editor-format-align-center:before{content:"\e784"}.mdi-editor-format-align-justify:before{content:"\e785"}.mdi-editor-format-align-left:before{content:"\e786"}.mdi-editor-format-align-right:before{content:"\e787"}.mdi-editor-format-bold:before{content:"\e788"}.mdi-editor-format-clear:before{content:"\e789"}.mdi-editor-format-color-fill:before{content:"\e78a"}.mdi-editor-format-color-reset:before{content:"\e78b"}.mdi-editor-format-color-text:before{content:"\e78c"}.mdi-editor-format-indent-decrease:before{content:"\e78d"}.mdi-editor-format-indent-increase:before{content:"\e78e"}.mdi-editor-format-italic:before{content:"\e78f"}.mdi-editor-format-line-spacing:before{content:"\e790"}.mdi-editor-format-list-bulleted:before{content:"\e791"}.mdi-editor-format-list-numbered:before{content:"\e792"}.mdi-editor-format-paint:before{content:"\e793"}.mdi-editor-format-quote:before{content:"\e794"}.mdi-editor-format-size:before{content:"\e795"}.mdi-editor-format-strikethrough:before{content:"\e796"}.mdi-editor-format-textdirection-l-to-r:before{content:"\e797"}.mdi-editor-format-textdirection-r-to-l:before{content:"\e798"}.mdi-editor-format-underline:before{content:"\e799"}.mdi-editor-functions:before{content:"\e79a"}.mdi-editor-insert-chart:before{content:"\e79b"}.mdi-editor-insert-comment:before{content:"\e79c"}.mdi-editor-insert-drive-file:before{content:"\e79d"}.mdi-editor-insert-emoticon:before{content:"\e79e"}.mdi-editor-insert-invitation:before{content:"\e79f"}.mdi-editor-insert-link:before{content:"\e7a0"}.mdi-editor-insert-photo:before{content:"\e7a1"}.mdi-editor-merge-type:before{content:"\e7a2"}.mdi-editor-mode-comment:before{content:"\e7a3"}.mdi-editor-mode-edit:before{content:"\e7a4"}.mdi-editor-publish:before{content:"\e7a5"}.mdi-editor-vertical-align-bottom:before{content:"\e7a6"}.mdi-editor-vertical-align-center:before{content:"\e7a7"}.mdi-editor-vertical-align-top:before{content:"\e7a8"}.mdi-editor-wrap-text:before{content:"\e7a9"}.mdi-file-attachment:before{content:"\e7aa"}.mdi-file-cloud-circle:before{content:"\e7ab"}.mdi-file-cloud-done:before{content:"\e7ac"}.mdi-file-cloud-download:before{content:"\e7ad"}.mdi-file-cloud-off:before{content:"\e7ae"}.mdi-file-cloud-queue:before{content:"\e7af"}.mdi-file-cloud-upload:before{content:"\e7b0"}.mdi-file-cloud:before{content:"\e7b1"}.mdi-file-file-download:before{content:"\e7b2"}.mdi-file-file-upload:before{content:"\e7b3"}.mdi-file-folder-open:before{content:"\e7b4"}.mdi-file-folder-shared:before{content:"\e7b5"}.mdi-file-folder:before{content:"\e7b6"}.mdi-device-access-alarm:before{content:"\e720"}.mdi-device-access-alarms:before{content:"\e721"}.mdi-device-access-time:before{content:"\e722"}.mdi-device-add-alarm:before{content:"\e723"}.mdi-device-airplanemode-off:before{content:"\e724"}.mdi-device-airplanemode-on:before{content:"\e725"}.mdi-device-battery-20:before{content:"\e726"}.mdi-device-battery-30:before{content:"\e727"}.mdi-device-battery-50:before{content:"\e728"}.mdi-device-battery-60:before{content:"\e729"}.mdi-device-battery-80:before{content:"\e72a"}.mdi-device-battery-90:before{content:"\e72b"}.mdi-device-battery-alert:before{content:"\e72c"}.mdi-device-battery-charging-20:before{content:"\e72d"}.mdi-device-battery-charging-30:before{content:"\e72e"}.mdi-device-battery-charging-50:before{content:"\e72f"}.mdi-device-battery-charging-60:before{content:"\e730"}.mdi-device-battery-charging-80:before{content:"\e731"}.mdi-device-battery-charging-90:before{content:"\e732"}.mdi-device-battery-charging-full:before{content:"\e733"}.mdi-device-battery-full:before{content:"\e734"}.mdi-device-battery-std:before{content:"\e735"}.mdi-device-battery-unknown:before{content:"\e736"}.mdi-device-bluetooth-connected:before{content:"\e737"}.mdi-device-bluetooth-disabled:before{content:"\e738"}.mdi-device-bluetooth-searching:before{content:"\e739"}.mdi-device-bluetooth:before{content:"\e73a"}.mdi-device-brightness-auto:before{content:"\e73b"}.mdi-device-brightness-high:before{content:"\e73c"}.mdi-device-brightness-low:before{content:"\e73d"}.mdi-device-brightness-medium:before{content:"\e73e"}.mdi-device-data-usage:before{content:"\e73f"}.mdi-device-developer-mode:before{content:"\e740"}.mdi-device-devices:before{content:"\e741"}.mdi-device-dvr:before{content:"\e742"}.mdi-device-gps-fixed:before{content:"\e743"}.mdi-device-gps-not-fixed:before{content:"\e744"}.mdi-device-gps-off:before{content:"\e745"}.mdi-device-location-disabled:before{content:"\e746"}.mdi-device-location-searching:before{content:"\e747"}.mdi-device-multitrack-audio:before{content:"\e748"}.mdi-device-network-cell:before{content:"\e749"}.mdi-device-network-wifi:before{content:"\e74a"}.mdi-device-nfc:before{content:"\e74b"}.mdi-device-now-wallpaper:before{content:"\e74c"}.mdi-device-now-widgets:before{content:"\e74d"}.mdi-device-screen-lock-landscape:before{content:"\e74e"}.mdi-device-screen-lock-portrait:before{content:"\e74f"}.mdi-device-screen-lock-rotation:before{content:"\e750"}.mdi-device-screen-rotation:before{content:"\e751"}.mdi-device-sd-storage:before{content:"\e752"}.mdi-device-settings-system-daydream:before{content:"\e753"}.mdi-device-signal-cellular-0-bar:before{content:"\e754"}.mdi-device-signal-cellular-1-bar:before{content:"\e755"}.mdi-device-signal-cellular-2-bar:before{content:"\e756"}.mdi-device-signal-cellular-3-bar:before{content:"\e757"}.mdi-device-signal-cellular-4-bar:before{content:"\e758"}.mdi-signal-wifi-statusbar-connected-no-internet-after:before{content:"\e8f6"}.mdi-device-signal-cellular-connected-no-internet-0-bar:before{content:"\e759"}.mdi-device-signal-cellular-connected-no-internet-1-bar:before{content:"\e75a"}.mdi-device-signal-cellular-connected-no-internet-2-bar:before{content:"\e75b"}.mdi-device-signal-cellular-connected-no-internet-3-bar:before{content:"\e75c"}.mdi-device-signal-cellular-connected-no-internet-4-bar:before{content:"\e75d"}.mdi-device-signal-cellular-no-sim:before{content:"\e75e"}.mdi-device-signal-cellular-null:before{content:"\e75f"}.mdi-device-signal-cellular-off:before{content:"\e760"}.mdi-device-signal-wifi-0-bar:before{content:"\e761"}.mdi-device-signal-wifi-1-bar:before{content:"\e762"}.mdi-device-signal-wifi-2-bar:before{content:"\e763"}.mdi-device-signal-wifi-3-bar:before{content:"\e764"}.mdi-device-signal-wifi-4-bar:before{content:"\e765"}.mdi-device-signal-wifi-off:before{content:"\e766"}.mdi-device-signal-wifi-statusbar-1-bar:before{content:"\e767"}.mdi-device-signal-wifi-statusbar-2-bar:before{content:"\e768"}.mdi-device-signal-wifi-statusbar-3-bar:before{content:"\e769"}.mdi-device-signal-wifi-statusbar-4-bar:before{content:"\e76a"}.mdi-device-signal-wifi-statusbar-connected-no-internet-:before{content:"\e76b"}.mdi-device-signal-wifi-statusbar-connected-no-internet:before{content:"\e76f"}.mdi-device-signal-wifi-statusbar-connected-no-internet-2:before{content:"\e76c"}.mdi-device-signal-wifi-statusbar-connected-no-internet-3:before{content:"\e76d"}.mdi-device-signal-wifi-statusbar-connected-no-internet-4:before{content:"\e76e"}.mdi-signal-wifi-statusbar-not-connected-after:before{content:"\e8f7"}.mdi-device-signal-wifi-statusbar-not-connected:before{content:"\e770"}.mdi-device-signal-wifi-statusbar-null:before{content:"\e771"}.mdi-device-storage:before{content:"\e772"}.mdi-device-usb:before{content:"\e773"}.mdi-device-wifi-lock:before{content:"\e774"}.mdi-device-wifi-tethering:before{content:"\e775"}.mdi-hardware-cast-connected:before{content:"\e7b7"}.mdi-hardware-cast:before{content:"\e7b8"}.mdi-hardware-computer:before{content:"\e7b9"}.mdi-hardware-desktop-mac:before{content:"\e7ba"}.mdi-hardware-desktop-windows:before{content:"\e7bb"}.mdi-hardware-dock:before{content:"\e7bc"}.mdi-hardware-gamepad:before{content:"\e7bd"}.mdi-hardware-headset-mic:before{content:"\e7be"}.mdi-hardware-headset:before{content:"\e7bf"}.mdi-hardware-keyboard-alt:before{content:"\e7c0"}.mdi-hardware-keyboard-arrow-down:before{content:"\e7c1"}.mdi-hardware-keyboard-arrow-left:before{content:"\e7c2"}.mdi-hardware-keyboard-arrow-right:before{content:"\e7c3"}.mdi-hardware-keyboard-arrow-up:before{content:"\e7c4"}.mdi-hardware-keyboard-backspace:before{content:"\e7c5"}.mdi-hardware-keyboard-capslock:before{content:"\e7c6"}.mdi-hardware-keyboard-control:before{content:"\e7c7"}.mdi-hardware-keyboard-hide:before{content:"\e7c8"}.mdi-hardware-keyboard-return:before{content:"\e7c9"}.mdi-hardware-keyboard-tab:before{content:"\e7ca"}.mdi-hardware-keyboard-voice:before{content:"\e7cb"}.mdi-hardware-keyboard:before{content:"\e7cc"}.mdi-hardware-laptop-chromebook:before{content:"\e7cd"}.mdi-hardware-laptop-mac:before{content:"\e7ce"}.mdi-hardware-laptop-windows:before{content:"\e7cf"}.mdi-hardware-laptop:before{content:"\e7d0"}.mdi-hardware-memory:before{content:"\e7d1"}.mdi-hardware-mouse:before{content:"\e7d2"}.mdi-hardware-phone-android:before{content:"\e7d3"}.mdi-hardware-phone-iphone:before{content:"\e7d4"}.mdi-hardware-phonelink-off:before{content:"\e7d5"}.mdi-hardware-phonelink:before{content:"\e7d6"}.mdi-hardware-security:before{content:"\e7d7"}.mdi-hardware-sim-card:before{content:"\e7d8"}.mdi-hardware-smartphone:before{content:"\e7d9"}.mdi-hardware-speaker:before{content:"\e7da"}.mdi-hardware-tablet-android:before{content:"\e7db"}.mdi-hardware-tablet-mac:before{content:"\e7dc"}.mdi-hardware-tablet:before{content:"\e7dd"}.mdi-hardware-tv:before{content:"\e7de"}.mdi-hardware-watch:before{content:"\e7df"}.mdi-image-add-to-photos:before{content:"\e7e0"}.mdi-image-adjust:before{content:"\e7e1"}.mdi-image-assistant-photo:before{content:"\e7e2"}.mdi-image-audiotrack:before{content:"\e7e3"}.mdi-image-blur-circular:before{content:"\e7e4"}.mdi-image-blur-linear:before{content:"\e7e5"}.mdi-image-blur-off:before{content:"\e7e6"}.mdi-image-blur-on:before{content:"\e7e7"}.mdi-image-brightness-1:before{content:"\e7e8"}.mdi-image-brightness-2:before{content:"\e7e9"}.mdi-image-brightness-3:before{content:"\e7ea"}.mdi-image-brightness-4:before{content:"\e7eb"}.mdi-image-brightness-5:before{content:"\e7ec"}.mdi-image-brightness-6:before{content:"\e7ed"}.mdi-image-brightness-7:before{content:"\e7ee"}.mdi-image-brush:before{content:"\e7ef"}.mdi-image-camera-alt:before{content:"\e7f0"}.mdi-image-camera-front:before{content:"\e7f1"}.mdi-image-camera-rear:before{content:"\e7f2"}.mdi-image-camera-roll:before{content:"\e7f3"}.mdi-image-camera:before{content:"\e7f4"}.mdi-image-center-focus-strong:before{content:"\e7f5"}.mdi-image-center-focus-weak:before{content:"\e7f6"}.mdi-image-collections:before{content:"\e7f7"}.mdi-image-color-lens:before{content:"\e7f8"}.mdi-image-colorize:before{content:"\e7f9"}.mdi-image-compare:before{content:"\e7fa"}.mdi-image-control-point-duplicate:before{content:"\e7fb"}.mdi-image-control-point:before{content:"\e7fc"}.mdi-image-crop-3-2:before{content:"\e7fd"}.mdi-image-crop-5-4:before{content:"\e7fe"}.mdi-image-crop-7-5:before{content:"\e7ff"}.mdi-image-crop-16-9:before{content:"\e800"}.mdi-image-crop-din:before{content:"\e801"}.mdi-image-crop-free:before{content:"\e802"}.mdi-image-crop-landscape:before{content:"\e803"}.mdi-image-crop-original:before{content:"\e804"}.mdi-image-crop-portrait:before{content:"\e805"}.mdi-image-crop-square:before{content:"\e806"}.mdi-image-crop:before{content:"\e807"}.mdi-image-dehaze:before{content:"\e808"}.mdi-image-details:before{content:"\e809"}.mdi-image-edit:before{content:"\e80a"}.mdi-image-exposure-minus-1:before{content:"\e80b"}.mdi-image-exposure-minus-2:before{content:"\e80c"}.mdi-image-exposure-plus-1:before{content:"\e80d"}.mdi-image-exposure-plus-2:before{content:"\e80e"}.mdi-image-exposure-zero:before{content:"\e80f"}.mdi-image-exposure:before{content:"\e810"}.mdi-image-filter-1:before{content:"\e811"}.mdi-image-filter-2:before{content:"\e812"}.mdi-image-filter-3:before{content:"\e813"}.mdi-image-filter-4:before{content:"\e814"}.mdi-image-filter-5:before{content:"\e815"}.mdi-image-filter-6:before{content:"\e816"}.mdi-image-filter-7:before{content:"\e817"}.mdi-image-filter-8:before{content:"\e818"}.mdi-image-filter-9-plus:before{content:"\e819"}.mdi-image-filter-9:before{content:"\e81a"}.mdi-image-filter-b-and-w:before{content:"\e81b"}.mdi-image-filter-center-focus:before{content:"\e81c"}.mdi-image-filter-drama:before{content:"\e81d"}.mdi-image-filter-frames:before{content:"\e81e"}.mdi-image-filter-hdr:before{content:"\e81f"}.mdi-image-filter-none:before{content:"\e820"}.mdi-image-filter-tilt-shift:before{content:"\e821"}.mdi-image-filter-vintage:before{content:"\e822"}.mdi-image-filter:before{content:"\e823"}.mdi-image-flare:before{content:"\e824"}.mdi-image-flash-auto:before{content:"\e825"}.mdi-image-flash-off:before{content:"\e826"}.mdi-image-flash-on:before{content:"\e827"}.mdi-image-flip:before{content:"\e828"}.mdi-image-gradient:before{content:"\e829"}.mdi-image-grain:before{content:"\e82a"}.mdi-image-grid-off:before{content:"\e82b"}.mdi-image-grid-on:before{content:"\e82c"}.mdi-image-hdr-off:before{content:"\e82d"}.mdi-image-hdr-on:before{content:"\e82e"}.mdi-image-hdr-strong:before{content:"\e82f"}.mdi-image-hdr-weak:before{content:"\e830"}.mdi-image-healing:before{content:"\e831"}.mdi-image-image-aspect-ratio:before{content:"\e832"}.mdi-image-image:before{content:"\e833"}.mdi-image-iso:before{content:"\e834"}.mdi-image-landscape:before{content:"\e835"}.mdi-image-leak-add:before{content:"\e836"}.mdi-image-leak-remove:before{content:"\e837"}.mdi-image-lens:before{content:"\e838"}.mdi-image-looks-3:before{content:"\e839"}.mdi-image-looks-4:before{content:"\e83a"}.mdi-image-looks-5:before{content:"\e83b"}.mdi-image-looks-6:before{content:"\e83c"}.mdi-image-looks-one:before{content:"\e83d"}.mdi-image-looks-two:before{content:"\e83e"}.mdi-image-looks:before{content:"\e83f"}.mdi-image-loupe:before{content:"\e840"}.mdi-image-movie-creation:before{content:"\e841"}.mdi-image-nature-people:before{content:"\e842"}.mdi-image-nature:before{content:"\e843"}.mdi-image-navigate-before:before{content:"\e844"}.mdi-image-navigate-next:before{content:"\e845"}.mdi-image-palette:before{content:"\e846"}.mdi-image-panorama-fisheye:before{content:"\e847"}.mdi-image-panorama-horizontal:before{content:"\e848"}.mdi-image-panorama-vertical:before{content:"\e849"}.mdi-image-panorama-wide-angle:before{content:"\e84a"}.mdi-image-panorama:before{content:"\e84b"}.mdi-image-photo-album:before{content:"\e84c"}.mdi-image-photo-camera:before{content:"\e84d"}.mdi-image-photo-library:before{content:"\e84e"}.mdi-image-photo:before{content:"\e84f"}.mdi-image-portrait:before{content:"\e850"}.mdi-image-remove-red-eye:before{content:"\e851"}.mdi-image-rotate-left:before{content:"\e852"}.mdi-image-rotate-right:before{content:"\e853"}.mdi-image-slideshow:before{content:"\e854"}.mdi-image-straighten:before{content:"\e855"}.mdi-image-style:before{content:"\e856"}.mdi-image-switch-camera:before{content:"\e857"}.mdi-image-switch-video:before{content:"\e858"}.mdi-image-tag-faces:before{content:"\e859"}.mdi-image-texture:before{content:"\e85a"}.mdi-image-timelapse:before{content:"\e85b"}.mdi-image-timer-3:before{content:"\e85c"}.mdi-image-timer-10:before{content:"\e85d"}.mdi-image-timer-auto:before{content:"\e85e"}.mdi-image-timer-off:before{content:"\e85f"}.mdi-image-timer:before{content:"\e860"}.mdi-image-tonality:before{content:"\e861"}.mdi-image-transform:before{content:"\e862"}.mdi-image-tune:before{content:"\e863"}.mdi-image-wb-auto:before{content:"\e864"}.mdi-image-wb-cloudy:before{content:"\e865"}.mdi-image-wb-incandescent:before{content:"\e866"}.mdi-image-wb-irradescent:before{content:"\e867"}.mdi-image-wb-sunny:before{content:"\e868"}.mdi-maps-beenhere:before{content:"\e869"}.mdi-maps-directions-bike:before{content:"\e86a"}.mdi-maps-directions-bus:before{content:"\e86b"}.mdi-maps-directions-car:before{content:"\e86c"}.mdi-maps-directions-ferry:before{content:"\e86d"}.mdi-maps-directions-subway:before{content:"\e86e"}.mdi-maps-directions-train:before{content:"\e86f"}.mdi-maps-directions-transit:before{content:"\e870"}.mdi-maps-directions-walk:before{content:"\e871"}.mdi-maps-directions:before{content:"\e872"}.mdi-maps-flight:before{content:"\e873"}.mdi-maps-hotel:before{content:"\e874"}.mdi-maps-layers-clear:before{content:"\e875"}.mdi-maps-layers:before{content:"\e876"}.mdi-maps-local-airport:before{content:"\e877"}.mdi-maps-local-atm:before{content:"\e878"}.mdi-maps-local-attraction:before{content:"\e879"}.mdi-maps-local-bar:before{content:"\e87a"}.mdi-maps-local-cafe:before{content:"\e87b"}.mdi-maps-local-car-wash:before{content:"\e87c"}.mdi-maps-local-convenience-store:before{content:"\e87d"}.mdi-maps-local-drink:before{content:"\e87e"}.mdi-maps-local-florist:before{content:"\e87f"}.mdi-maps-local-gas-station:before{content:"\e880"}.mdi-maps-local-grocery-store:before{content:"\e881"}.mdi-maps-local-hospital:before{content:"\e882"}.mdi-maps-local-hotel:before{content:"\e883"}.mdi-maps-local-laundry-service:before{content:"\e884"}.mdi-maps-local-library:before{content:"\e885"}.mdi-maps-local-mall:before{content:"\e886"}.mdi-maps-local-movies:before{content:"\e887"}.mdi-maps-local-offer:before{content:"\e888"}.mdi-maps-local-parking:before{content:"\e889"}.mdi-maps-local-pharmacy:before{content:"\e88a"}.mdi-maps-local-phone:before{content:"\e88b"}.mdi-maps-local-pizza:before{content:"\e88c"}.mdi-maps-local-play:before{content:"\e88d"}.mdi-maps-local-post-office:before{content:"\e88e"}.mdi-maps-local-print-shop:before{content:"\e88f"}.mdi-maps-local-restaurant:before{content:"\e890"}.mdi-maps-local-see:before{content:"\e891"}.mdi-maps-local-shipping:before{content:"\e892"}.mdi-maps-local-taxi:before{content:"\e893"}.mdi-maps-location-history:before{content:"\e894"}.mdi-maps-map:before{content:"\e895"}.mdi-maps-my-location:before{content:"\e896"}.mdi-maps-navigation:before{content:"\e897"}.mdi-maps-pin-drop:before{content:"\e898"}.mdi-maps-place:before{content:"\e899"}.mdi-maps-rate-review:before{content:"\e89a"}.mdi-maps-restaurant-menu:before{content:"\e89b"}.mdi-maps-satellite:before{content:"\e89c"}.mdi-maps-store-mall-directory:before{content:"\e89d"}.mdi-maps-terrain:before{content:"\e89e"}.mdi-maps-traffic:before{content:"\e89f"}.mdi-navigation-apps:before{content:"\e8a0"}.mdi-navigation-arrow-back:before{content:"\e8a1"}.mdi-navigation-arrow-drop-down-circle:before{content:"\e8a2"}.mdi-navigation-arrow-drop-down:before{content:"\e8a3"}.mdi-navigation-arrow-drop-up:before{content:"\e8a4"}.mdi-navigation-arrow-forward:before{content:"\e8a5"}.mdi-navigation-cancel:before{content:"\e8a6"}.mdi-navigation-check:before{content:"\e8a7"}.mdi-navigation-chevron-left:before{content:"\e8a8"}.mdi-navigation-chevron-right:before{content:"\e8a9"}.mdi-navigation-close:before{content:"\e8aa"}.mdi-navigation-expand-less:before{content:"\e8ab"}.mdi-navigation-expand-more:before{content:"\e8ac"}.mdi-navigation-fullscreen-exit:before{content:"\e8ad"}.mdi-navigation-fullscreen:before{content:"\e8ae"}.mdi-navigation-menu:before{content:"\e8af"}.mdi-navigation-more-horiz:before{content:"\e8b0"}.mdi-navigation-more-vert:before{content:"\e8b1"}.mdi-navigation-refresh:before{content:"\e8b2"}.mdi-navigation-unfold-less:before{content:"\e8b3"}.mdi-navigation-unfold-more:before{content:"\e8b4"}.mdi-notification-adb:before{content:"\e8b5"}.mdi-notification-bluetooth-audio:before{content:"\e8b6"}.mdi-notification-disc-full:before{content:"\e8b7"}.mdi-notification-dnd-forwardslash:before{content:"\e8b8"}.mdi-notification-do-not-disturb:before{content:"\e8b9"}.mdi-notification-drive-eta:before{content:"\e8ba"}.mdi-notification-event-available:before{content:"\e8bb"}.mdi-notification-event-busy:before{content:"\e8bc"}.mdi-notification-event-note:before{content:"\e8bd"}.mdi-notification-folder-special:before{content:"\e8be"}.mdi-notification-mms:before{content:"\e8bf"}.mdi-notification-more:before{content:"\e8c0"}.mdi-notification-network-locked:before{content:"\e8c1"}.mdi-notification-phone-bluetooth-speaker:before{content:"\e8c2"}.mdi-notification-phone-forwarded:before{content:"\e8c3"}.mdi-notification-phone-in-talk:before{content:"\e8c4"}.mdi-notification-phone-locked:before{content:"\e8c5"}.mdi-notification-phone-missed:before{content:"\e8c6"}.mdi-notification-phone-paused:before{content:"\e8c7"}.mdi-notification-play-download:before{content:"\e8c8"}.mdi-notification-play-install:before{content:"\e8c9"}.mdi-notification-sd-card:before{content:"\e8ca"}.mdi-notification-sim-card-alert:before{content:"\e8cb"}.mdi-notification-sms-failed:before{content:"\e8cc"}.mdi-notification-sms:before{content:"\e8cd"}.mdi-notification-sync-disabled:before{content:"\e8ce"}.mdi-notification-sync-problem:before{content:"\e8cf"}.mdi-notification-sync:before{content:"\e8d0"}.mdi-notification-system-update:before{content:"\e8d1"}.mdi-notification-tap-and-play:before{content:"\e8d2"}.mdi-notification-time-to-leave:before{content:"\e8d3"}.mdi-notification-vibration:before{content:"\e8d4"}.mdi-notification-voice-chat:before{content:"\e8d5"}.mdi-notification-vpn-lock:before{content:"\e8d6"}.mdi-social-cake:before{content:"\e8d7"}.mdi-social-domain:before{content:"\e8d8"}.mdi-social-group-add:before{content:"\e8d9"}.mdi-social-group:before{content:"\e8da"}.mdi-social-location-city:before{content:"\e8db"}.mdi-social-mood:before{content:"\e8dc"}.mdi-social-notifications-none:before{content:"\e8dd"}.mdi-social-notifications-off:before{content:"\e8de"}.mdi-social-notifications-on:before{content:"\e8df"}.mdi-social-notifications-paused:before{content:"\e8e0"}.mdi-social-notifications:before{content:"\e8e1"}.mdi-social-pages:before{content:"\e8e2"}.mdi-social-party-mode:before{content:"\e8e3"}.mdi-social-people-outline:before{content:"\e8e4"}.mdi-social-people:before{content:"\e8e5"}.mdi-social-person-add:before{content:"\e8e6"}.mdi-social-person-outline:before{content:"\e8e7"}.mdi-social-person:before{content:"\e8e8"}.mdi-social-plus-one:before{content:"\e8e9"}.mdi-social-poll:before{content:"\e8ea"}.mdi-social-public:before{content:"\e8eb"}.mdi-social-school:before{content:"\e8ec"}.mdi-social-share:before{content:"\e8ed"}.mdi-social-whatshot:before{content:"\e8ee"}.mdi-toggle-check-box-outline-blank:before{content:"\e8ef"}.mdi-toggle-check-box:before{content:"\e8f0"}.mdi-toggle-radio-button-off:before{content:"\e8f1"}.mdi-toggle-radio-button-on:before{content:"\e8f2"}.mdi-toggle-star-half:before{content:"\e8f3"}.mdi-toggle-star-outline:before{content:"\e8f4"}.mdi-toggle-star:before{content:"\e8f5"}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width:601px){.container{width:85%}}@media only screen and (min-width:993px){.container{width:70%}}.container .row{margin-left:-0.75rem;margin-right:-0.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;box-sizing:border-box;padding:0 .75rem}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.33333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.66667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.33333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.66667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.33333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.66667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.33333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.66667%;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.33333%}.row .col.pull-s1{right:8.33333%}.row .col.push-s1{left:8.33333%}.row .col.offset-s2{margin-left:16.66667%}.row .col.pull-s2{right:16.66667%}.row .col.push-s2{left:16.66667%}.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.33333%}.row .col.pull-s4{right:33.33333%}.row .col.push-s4{left:33.33333%}.row .col.offset-s5{margin-left:41.66667%}.row .col.pull-s5{right:41.66667%}.row .col.push-s5{left:41.66667%}.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.33333%}.row .col.pull-s7{right:58.33333%}.row .col.push-s7{left:58.33333%}.row .col.offset-s8{margin-left:66.66667%}.row .col.pull-s8{right:66.66667%}.row .col.push-s8{left:66.66667%}.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.33333%}.row .col.pull-s10{right:83.33333%}.row .col.push-s10{left:83.33333%}.row .col.offset-s11{margin-left:91.66667%}.row .col.pull-s11{right:91.66667%}.row .col.push-s11{left:91.66667%}.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.33333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.66667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.33333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.66667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.33333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.66667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.33333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.66667%;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.33333%}.row .col.pull-m1{right:8.33333%}.row .col.push-m1{left:8.33333%}.row .col.offset-m2{margin-left:16.66667%}.row .col.pull-m2{right:16.66667%}.row .col.push-m2{left:16.66667%}.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.33333%}.row .col.pull-m4{right:33.33333%}.row .col.push-m4{left:33.33333%}.row .col.offset-m5{margin-left:41.66667%}.row .col.pull-m5{right:41.66667%}.row .col.push-m5{left:41.66667%}.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.33333%}.row .col.pull-m7{right:58.33333%}.row .col.push-m7{left:58.33333%}.row .col.offset-m8{margin-left:66.66667%}.row .col.pull-m8{right:66.66667%}.row .col.push-m8{left:66.66667%}.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.33333%}.row .col.pull-m10{right:83.33333%}.row .col.push-m10{left:83.33333%}.row .col.offset-m11{margin-left:91.66667%}.row .col.pull-m11{right:91.66667%}.row .col.push-m11{left:91.66667%}.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.33333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.66667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.33333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.66667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.33333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.66667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.33333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.66667%;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.33333%}.row .col.pull-l1{right:8.33333%}.row .col.push-l1{left:8.33333%}.row .col.offset-l2{margin-left:16.66667%}.row .col.pull-l2{right:16.66667%}.row .col.push-l2{left:16.66667%}.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.33333%}.row .col.pull-l4{right:33.33333%}.row .col.push-l4{left:33.33333%}.row .col.offset-l5{margin-left:41.66667%}.row .col.pull-l5{right:41.66667%}.row .col.push-l5{left:41.66667%}.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.33333%}.row .col.pull-l7{right:58.33333%}.row .col.push-l7{left:58.33333%}.row .col.offset-l8{margin-left:66.66667%}.row .col.pull-l8{right:66.66667%}.row .col.push-l8{left:66.66667%}.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.33333%}.row .col.pull-l10{right:83.33333%}.row .col.push-l10{left:83.33333%}.row .col.offset-l11{margin-left:91.66667%}.row .col.pull-l11{right:91.66667%}.row .col.push-l11{left:91.66667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}nav{color:#fff;background-color:#64b5f6;width:100%;height:56px;line-height:56px}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:2rem;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width:993px){nav a.button-collapse{display:none}}nav .button-collapse{float:left;position:relative;z-index:1;height:56px}nav .button-collapse i{font-size:2.7rem;height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0;white-space:nowrap}nav .brand-logo.center{left:50%;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:.5rem}nav .brand-logo.right{right:.5rem;left:auto}}nav .brand-logo.right{right:.5rem;padding:0}nav ul{margin:0}nav ul li{transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav .input-field{margin:0}nav .input-field input{height:100%;font-size:1.2rem;border:0;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:0;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);transition:color .3s}nav .input-field label.active i{color:#fff}nav .input-field label.active{transform:translateY(0)}.navbar-fixed{position:relative;height:56px;z-index:998}.navbar-fixed nav{position:fixed}@media only screen and (min-width:601px){nav,nav .nav-wrapper i,nav a.button-collapse,nav a.button-collapse i{height:64px;line-height:64px}ul.side-nav.mini-with-expand{top:64px!important;height:calc(100vh - 64px)!important}.navbar-fixed{height:64px}}@font-face{font-family:"Roboto";src:local(Roboto Thin),url("../font/roboto/Roboto-Thin.eot");src:url("../font/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"),url("../font/roboto/Roboto-Thin.woff2") format("woff2"),url("../font/roboto/Roboto-Thin.woff") format("woff"),url("../font/roboto/Roboto-Thin.ttf") format("truetype");font-weight:200}@font-face{font-family:"Roboto";src:local(Roboto Light),url("../font/roboto/Roboto-Light.eot");src:url("../font/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"),url("../font/roboto/Roboto-Light.woff2") format("woff2"),url("../font/roboto/Roboto-Light.woff") format("woff"),url("../font/roboto/Roboto-Light.ttf") format("truetype");font-weight:300}@font-face{font-family:"Roboto";src:local(Roboto Regular),url("../font/roboto/Roboto-Regular.eot");src:url("../font/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"),url("../font/roboto/Roboto-Regular.woff2") format("woff2"),url("../font/roboto/Roboto-Regular.woff") format("woff"),url("../font/roboto/Roboto-Regular.ttf") format("truetype");font-weight:400}@font-face{font-family:"Roboto";src:url("../font/roboto/Roboto-Medium.eot");src:url("../font/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"),url("../font/roboto/Roboto-Medium.woff2") format("woff2"),url("../font/roboto/Roboto-Medium.woff") format("woff"),url("../font/roboto/Roboto-Medium.ttf") format("truetype");font-weight:500}@font-face{font-family:"Roboto";src:url("../font/roboto/Roboto-Bold.eot");src:url("../font/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"),url("../font/roboto/Roboto-Bold.woff2") format("woff2"),url("../font/roboto/Roboto-Bold.woff") format("woff"),url("../font/roboto/Roboto-Bold.ttf") format("truetype");font-weight:700}a{text-decoration:none}html{line-height:1.5;font-family:"Roboto",sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width:0){html{font-size:14px}}@media only screen and (min-width:992px){html{font-size:14.5px}}@media only screen and (min-width:1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.1}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.1rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 .912rem 0}h5{font-size:1.64rem;line-height:110%;margin:.82rem 0 .656rem 0}h6{font-size:1rem;line-height:110%;margin:.5rem 0 .4rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light,footer.page-footer .footer-copyright{font-weight:300}.thin{font-weight:200}.flow-text{font-weight:300}@media only screen and (min-width:360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width:390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width:420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width:450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width:480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width:510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width:540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width:570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width:600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width:630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width:660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width:690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width:720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width:750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width:780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width:810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width:840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width:870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width:900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width:930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width:960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width:360px){.flow-text{font-size:1.2rem}}.card-panel{transition:box-shadow .25s;padding:20px;margin:.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;transition:box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden}.card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:40%;overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0;z-index:1;background-color:inherit}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;padding:20px}.card .card-content{padding:20px;border-radius:0 0 2px 2px}.card .card-content p{margin:0;color:inherit}.card .card-content .card-title{line-height:48px}.card .card-action{border-top:1px solid rgba(160,160,160,0.2);padding:20px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:20px;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:20px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;top:100%;height:100%;z-index:1;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width:600px){#toast-container{min-width:100%;bottom:0}}@media only screen and (min-width:601px) and (max-width:992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width:993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:0;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;word-break:break-all;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:flex;align-items:center;justify-content:space-between}.toast .btn,.toast .btn-large,.toast .btn-flat{margin:0;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width:600px){.toast{width:100%;border-radius:0}}@media only screen and (min-width:601px) and (max-width:992px){.toast{float:left}}@media only screen and (min-width:993px){.toast{float:right}}.tabs{display:flex;position:relative;overflow-x:auto;overflow-y:hidden;height:48px;background-color:#fff;margin:0 auto;width:100%;white-space:nowrap}.tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;display:block;float:left;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;letter-spacing:.8px;width:15%;min-width:80px}.tabs .tab a{color:#64b5f6;display:block;width:100%;height:100%;text-overflow:ellipsis;overflow:hidden;transition:color .28s ease}.tabs .tab a:hover{color:#c4e3fc}.tabs .tab.disabled a{color:#c4e3fc;cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#acd8fa;will-change:left,right}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;display:none;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;will-change:top,left}.backdrop{position:absolute;opacity:0;display:none;height:7px;width:14px;border-radius:0 0 14px 14px;background-color:#323232;z-index:-1;transform-origin:50% 10%;will-change:transform,opacity}.btn,.btn-large,.btn-flat{border:0;border-radius:2px;display:inline-block;height:36px;line-height:36px;outline:0;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.btn-floating.disabled,.btn-large.disabled,.btn:disabled,.btn-large:disabled,.btn-large:disabled,.btn-floating:disabled{background-color:#dfdfdf!important;box-shadow:none;color:#9f9f9f!important;cursor:default}.btn.disabled *,.disabled.btn-large *,.btn-floating.disabled *,.btn-large.disabled *,.btn:disabled *,.btn-large:disabled *,.btn-large:disabled *,.btn-floating:disabled *{pointer-events:none}.btn.disabled:hover,.disabled.btn-large:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-large:disabled:hover,.btn-floating:disabled:hover{background-color:#dfdfdf;color:#9f9f9f}.btn i,.btn-large i,.btn-floating i,.btn-large i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn,.btn-large{text-decoration:none;color:#fff;background-color:#42a5f5;text-align:center;letter-spacing:.5px;transition:.2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover{background-color:#5ab1f6}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:37px;height:37px;line-height:37px;padding:0;background-color:#42a5f5;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:37px}.btn-floating:hover{background-color:#42a5f5}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:55.5px;height:55.5px}.btn-floating.btn-large i{line-height:55.5px}button.btn-floating{border:0}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.horizontal{padding:0 0 0 15px}.fixed-action-btn.horizontal ul{text-align:right;right:64px;height:100%;left:initial;width:500px}.fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 0 0}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.btn-flat{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer}.btn-flat.disabled{color:#b3b3b3;cursor:default}.btn-large{height:54px;line-height:56px}.btn-large i{font-size:1.6rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width,height}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left;text-transform:none}.dropdown-content li:hover,.dropdown-content li.active,.dropdown-content li.selected{background-color:#eee}.dropdown-content li.active.selected{background-color:#e1e1e1}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#42a5f5;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:3px;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit}/*! +.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{background-color:#e51c23!important}.materialize-red-text{color:#e51c23!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.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{background-color:#f44336!important}.red-text{color:#f44336!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.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{background-color:#e91e63!important}.pink-text{color:#e91e63!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.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{background-color:#9c27b0!important}.purple-text{color:#9c27b0!important}.purple.darken-1{background-color:#8e24aa!important}.purple-text.text-darken-1{color:#8e24aa!important}.purple.darken-2{background-color:#7b1fa2!important}.purple-text.text-darken-2{color:#7b1fa2!important}.purple.darken-3{background-color:#6a1b9a!important}.purple-text.text-darken-3{color:#6a1b9a!important}.purple.darken-4{background-color:#4a148c!important}.purple-text.text-darken-4{color:#4a148c!important}.purple.accent-1{background-color:#ea80fc!important}.purple-text.text-accent-1{color:#ea80fc!important}.purple.accent-2{background-color:#e040fb!important}.purple-text.text-accent-2{color:#e040fb!important}.purple.accent-3{background-color:#d500f9!important}.purple-text.text-accent-3{color:#d500f9!important}.purple.accent-4{background-color:#a0f!important}.purple-text.text-accent-4{color:#a0f!important}.deep-purple.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{background-color:#673ab7!important}.deep-purple-text{color:#673ab7!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.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{background-color:#3f51b5!important}.indigo-text{color:#3f51b5!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.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{background-color:#2196f3!important}.blue-text{color:#2196f3!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.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{background-color:#03a9f4!important}.light-blue-text{color:#03a9f4!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.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{background-color:#00bcd4!important}.cyan-text{color:#00bcd4!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.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{background-color:#009688!important}.teal-text{color:#009688!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.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{background-color:#4caf50!important}.green-text{color:#4caf50!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.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{background-color:#8bc34a!important}.light-green-text{color:#8bc34a!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.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{background-color:#cddc39!important}.lime-text{color:#cddc39!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.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{background-color:#ffeb3b!important}.yellow-text{color:#ffeb3b!important}.yellow.darken-1{background-color:#fdd835!important}.yellow-text.text-darken-1{color:#fdd835!important}.yellow.darken-2{background-color:#fbc02d!important}.yellow-text.text-darken-2{color:#fbc02d!important}.yellow.darken-3{background-color:#f9a825!important}.yellow-text.text-darken-3{color:#f9a825!important}.yellow.darken-4{background-color:#f57f17!important}.yellow-text.text-darken-4{color:#f57f17!important}.yellow.accent-1{background-color:#ffff8d!important}.yellow-text.text-accent-1{color:#ffff8d!important}.yellow.accent-2{background-color:#ff0!important}.yellow-text.text-accent-2{color:#ff0!important}.yellow.accent-3{background-color:#ffea00!important}.yellow-text.text-accent-3{color:#ffea00!important}.yellow.accent-4{background-color:#ffd600!important}.yellow-text.text-accent-4{color:#ffd600!important}.amber.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{background-color:#ffc107!important}.amber-text{color:#ffc107!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.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{background-color:#ff9800!important}.orange-text{color:#ff9800!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.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{background-color:#ff5722!important}.deep-orange-text{color:#ff5722!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.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{background-color:#795548!important}.brown-text{color:#795548!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.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{background-color:#607d8b!important}.blue-grey-text{color:#607d8b!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.lighten-5{background-color:#fafafa!important}.grey-text.text-lighten-5{color:#fafafa!important}.grey.lighten-4{background-color:#f5f5f5!important}.grey-text.text-lighten-4{color:#f5f5f5!important}.grey.lighten-3{background-color:#eee!important}.grey-text.text-lighten-3{color:#eee!important}.grey.lighten-2{background-color:#e0e0e0!important}.grey-text.text-lighten-2{color:#e0e0e0!important}.grey.lighten-1{background-color:#bdbdbd!important}.grey-text.text-lighten-1{color:#bdbdbd!important}.grey{background-color:#9e9e9e!important}.grey-text{color:#9e9e9e!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}.shades.black{background-color:#000!important}.shades-text.text-black{color:#000!important}.shades.white{background-color:#fff!important}.shades-text.text-white{color:#fff!important}.shades.transparent{background-color:transparent!important}.shades-text.text-transparent{color:transparent!important}.black{background-color:#000!important}.black-text{color:#000!important}.white{background-color:#fff!important}.white-text{color:#fff!important}.transparent{background-color:transparent!important}.transparent-text{color:transparent!important}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}html input[type="button"],button,input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}ul{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:flex;align-items:center}.valign-wrapper .valign{display:block}ul{padding:0}ul li{list-style-type:none}.clearfix{clear:both}.z-depth-0{box-shadow:none!important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-floating,.dropdown-content,.collapsible,.side-nav{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-floating:hover{box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15)}.z-depth-2{box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.z-depth-3{box-shadow:0 12px 15px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19)}.z-depth-4,.modal{box-shadow:0 16px 28px 0 rgba(0,0,0,0.22),0 25px 55px 0 rgba(0,0,0,0.21)}.z-depth-5{box-shadow:0 27px 24px 0 rgba(0,0,0,0.2),0 40px 77px 0 rgba(0,0,0,0.22)}.hoverable{transition:box-shadow .25s;box-shadow:0}.hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #64b5f6}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;font-size:1.2rem;padding:0 10px;line-height:30px;border-radius:2px;text-align:center}.pagination li a{color:#444}.pagination li.active a{color:#fff}.pagination li.active{background-color:#64b5f6}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2.2rem;vertical-align:middle}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width:992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax img{display:none;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed!important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;transform-origin:0 50%}@media only screen and (max-width:600px){.hide-on-small-only,.hide-on-small-and-down{display:none!important}}@media only screen and (max-width:992px){.hide-on-med-and-down{display:none!important}}@media only screen and (min-width:601px){.hide-on-med-and-up{display:none!important}}@media only screen and (min-width:600px) and (max-width:992px){.hide-on-med-only{display:none!important}}@media only screen and (min-width:993px){.hide-on-large-only{display:none!important}}@media only screen and (min-width:993px){.show-on-large{display:block!important}}@media only screen and (min-width:600px) and (max-width:992px){.show-on-medium{display:block!important}}@media only screen and (max-width:600px){.show-on-small{display:block!important}}@media only screen and (min-width:601px){.show-on-medium-and-up{display:block!important}}@media only screen and (max-width:992px){.show-on-medium-and-down{display:block!important}}@media only screen and (max-width:600px){.center-on-small-only{text-align:center}}footer.page-footer{margin-top:20px;padding-top:20px;background-color:#64b5f6}footer.page-footer .footer-copyright{overflow:hidden;height:50px;line-height:50px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:0}table{width:100%;display:table}table.bordered>thead>tr,table.bordered>tbody>tr{border-bottom:1px solid #d0d0d0}table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:#f2f2f2}table.centered thead tr th,table.centered tbody tr td{text-align:center}thead{border-bottom:1px solid #d0d0d0}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width:992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid #d0d0d0}table.responsive-table.bordered th{border-bottom:0;border-left:0}table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}table.responsive-table.bordered tr{border:0}table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.collection{margin:.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:0}.collection .collection-item.active{background-color:#42a5f5;color:white}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;transition:.25s;color:#42a5f5}.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:#42a5f5}.collapsible .collection{margin:0;border:0}span.badge{min-width:3rem;padding:0 6px;text-align:center;font-size:1rem;line-height:inherit;color:#757575;position:absolute;right:15px;box-sizing:border-box}span.badge.new{font-weight:300;font-size:.8rem;color:#fff;background-color:#42a5f5;border-radius:2px}span.badge.new:after{content:" new"}nav ul a span.badge{position:static;margin-left:4px;line-height:0}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:white;border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;background-color:inherit;top:0;left:0;bottom:0;background-color:#42a5f5;transition:width .3s linear}.progress .indeterminate{background-color:#42a5f5}.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%}}.hide{display:none!important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left!important}.right{float:right!important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0!important}.material-icons{text-rendering:optimizeLegibility;font-feature-settings:'liga'}@font-face{font-family:"Material-Design-Icons";src:url("../font/material-design-icons/Material-Design-Icons.eot?#iefix") format("embedded-opentype"),url("../font/material-design-icons/Material-Design-Icons.woff2") format("woff2"),url("../font/material-design-icons/Material-Design-Icons.woff") format("woff"),url("../font/material-design-icons/Material-Design-Icons.ttf") format("truetype"),url("../font/material-design-icons/Material-Design-Icons.svg#Material-Design-Icons") format("svg");font-weight:normal;font-style:normal}[class^="mdi-"],[class*="mdi-"]{speak:none;display:inline-block;font-family:"Material-Design-Icons";font-style:normal;font-weight:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}[class^="mdi-"]:before,[class*="mdi-"]:before{display:inline-block;speak:none;text-decoration:inherit}[class^="mdi-"].pull-left,[class*="mdi-"].pull-left{margin-right:.3em}[class^="mdi-"].pull-right,[class*="mdi-"].pull-right{margin-left:.3em}[class^="mdi-"].mdi-lg:before,[class^="mdi-"].mdi-lg:after,[class*="mdi-"].mdi-lg:before,[class*="mdi-"].mdi-lg:after{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}[class^="mdi-"].mdi-2x:before,[class^="mdi-"].mdi-2x:after,[class*="mdi-"].mdi-2x:before,[class*="mdi-"].mdi-2x:after{font-size:2em}[class^="mdi-"].mdi-3x:before,[class^="mdi-"].mdi-3x:after,[class*="mdi-"].mdi-3x:before,[class*="mdi-"].mdi-3x:after{font-size:3em}[class^="mdi-"].mdi-4x:before,[class^="mdi-"].mdi-4x:after,[class*="mdi-"].mdi-4x:before,[class*="mdi-"].mdi-4x:after{font-size:4em}[class^="mdi-"].mdi-5x:before,[class^="mdi-"].mdi-5x:after,[class*="mdi-"].mdi-5x:before,[class*="mdi-"].mdi-5x:after{font-size:5em}[class^="mdi-device-signal-cellular-"]:after,[class^="mdi-device-battery-"]:after,[class^="mdi-device-battery-charging-"]:after,[class^="mdi-device-signal-cellular-connected-no-internet-"]:after,[class^="mdi-device-signal-wifi-"]:after,[class^="mdi-device-signal-wifi-statusbar-not-connected"]:after,.mdi-device-network-wifi:after{opacity:.3;position:absolute;left:0;top:0;z-index:1;display:inline-block;speak:none;text-decoration:inherit}[class^="mdi-device-signal-cellular-"]:after{content:"\e758"}[class^="mdi-device-battery-"]:after{content:"\e735"}[class^="mdi-device-battery-charging-"]:after{content:"\e733"}[class^="mdi-device-signal-cellular-connected-no-internet-"]:after{content:"\e75d"}[class^="mdi-device-signal-wifi-"]:after,.mdi-device-network-wifi:after{content:"\e765"}[class^="mdi-device-signal-wifi-statusbasr-not-connected"]:after{content:"\e8f7"}.mdi-device-signal-cellular-off:after,.mdi-device-signal-cellular-null:after,.mdi-device-signal-cellular-no-sim:after,.mdi-device-signal-wifi-off:after,.mdi-device-signal-wifi-4-bar:after,.mdi-device-signal-cellular-4-bar:after,.mdi-device-battery-alert:after,.mdi-device-signal-cellular-connected-no-internet-4-bar:after,.mdi-device-battery-std:after,.mdi-device-battery-full .mdi-device-battery-unknown:after{content:""}.mdi-fw{width:1.28571429em;text-align:center}.mdi-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.mdi-ul>li{position:relative}.mdi-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.mdi-li.mdi-lg{left:-1.85714286em}.mdi-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.mdi-spin{-webkit-animation:mdi-spin 2s infinite linear;animation:mdi-spin 2s infinite linear;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%}.mdi-pulse{-webkit-animation:mdi-spin 1s steps(8) infinite;animation:mdi-spin 1s steps(8) infinite;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%}@-webkit-keyframes mdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes mdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.mdi-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.mdi-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.mdi-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.mdi-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.mdi-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .mdi-rotate-90,:root .mdi-rotate-180,:root .mdi-rotate-270,:root .mdi-flip-horizontal,:root .mdi-flip-vertical{filter:none}.mdi-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.mdi-stack-1x,.mdi-stack-2x{position:absolute;left:0;width:100%;text-align:center}.mdi-stack-1x{line-height:inherit}.mdi-stack-2x{font-size:2em}.mdi-inverse{color:#fff}.mdi-action-3d-rotation:before{content:"\e600"}.mdi-action-accessibility:before{content:"\e601"}.mdi-action-account-balance-wallet:before{content:"\e602"}.mdi-action-account-balance:before{content:"\e603"}.mdi-action-account-box:before{content:"\e604"}.mdi-action-account-child:before{content:"\e605"}.mdi-action-account-circle:before{content:"\e606"}.mdi-action-add-shopping-cart:before{content:"\e607"}.mdi-action-alarm-add:before{content:"\e608"}.mdi-action-alarm-off:before{content:"\e609"}.mdi-action-alarm-on:before{content:"\e60a"}.mdi-action-alarm:before{content:"\e60b"}.mdi-action-android:before{content:"\e60c"}.mdi-action-announcement:before{content:"\e60d"}.mdi-action-aspect-ratio:before{content:"\e60e"}.mdi-action-assessment:before{content:"\e60f"}.mdi-action-assignment-ind:before{content:"\e610"}.mdi-action-assignment-late:before{content:"\e611"}.mdi-action-assignment-return:before{content:"\e612"}.mdi-action-assignment-returned:before{content:"\e613"}.mdi-action-assignment-turned-in:before{content:"\e614"}.mdi-action-assignment:before{content:"\e615"}.mdi-action-autorenew:before{content:"\e616"}.mdi-action-backup:before{content:"\e617"}.mdi-action-book:before{content:"\e618"}.mdi-action-bookmark-outline:before{content:"\e619"}.mdi-action-bookmark:before{content:"\e61a"}.mdi-action-bug-report:before{content:"\e61b"}.mdi-action-cached:before{content:"\e61c"}.mdi-action-check-circle:before{content:"\e61d"}.mdi-action-class:before{content:"\e61e"}.mdi-action-credit-card:before{content:"\e61f"}.mdi-action-dashboard:before{content:"\e620"}.mdi-action-delete:before{content:"\e621"}.mdi-action-description:before{content:"\e622"}.mdi-action-dns:before{content:"\e623"}.mdi-action-done-all:before{content:"\e624"}.mdi-action-done:before{content:"\e625"}.mdi-action-event:before{content:"\e626"}.mdi-action-exit-to-app:before{content:"\e627"}.mdi-action-explore:before{content:"\e628"}.mdi-action-extension:before{content:"\e629"}.mdi-action-face-unlock:before{content:"\e62a"}.mdi-action-favorite-outline:before{content:"\e62b"}.mdi-action-favorite:before{content:"\e62c"}.mdi-action-find-in-page:before{content:"\e62d"}.mdi-action-find-replace:before{content:"\e62e"}.mdi-action-flip-to-back:before{content:"\e62f"}.mdi-action-flip-to-front:before{content:"\e630"}.mdi-action-get-app:before{content:"\e631"}.mdi-action-grade:before{content:"\e632"}.mdi-action-group-work:before{content:"\e633"}.mdi-action-help:before{content:"\e634"}.mdi-action-highlight-remove:before{content:"\e635"}.mdi-action-history:before{content:"\e636"}.mdi-action-home:before{content:"\e637"}.mdi-action-https:before{content:"\e638"}.mdi-action-info-outline:before{content:"\e639"}.mdi-action-info:before{content:"\e63a"}.mdi-action-input:before{content:"\e63b"}.mdi-action-invert-colors:before{content:"\e63c"}.mdi-action-label-outline:before{content:"\e63d"}.mdi-action-label:before{content:"\e63e"}.mdi-action-language:before{content:"\e63f"}.mdi-action-launch:before{content:"\e640"}.mdi-action-list:before{content:"\e641"}.mdi-action-lock-open:before{content:"\e642"}.mdi-action-lock-outline:before{content:"\e643"}.mdi-action-lock:before{content:"\e644"}.mdi-action-loyalty:before{content:"\e645"}.mdi-action-markunread-mailbox:before{content:"\e646"}.mdi-action-note-add:before{content:"\e647"}.mdi-action-open-in-browser:before{content:"\e648"}.mdi-action-open-in-new:before{content:"\e649"}.mdi-action-open-with:before{content:"\e64a"}.mdi-action-pageview:before{content:"\e64b"}.mdi-action-payment:before{content:"\e64c"}.mdi-action-perm-camera-mic:before{content:"\e64d"}.mdi-action-perm-contact-cal:before{content:"\e64e"}.mdi-action-perm-data-setting:before{content:"\e64f"}.mdi-action-perm-device-info:before{content:"\e650"}.mdi-action-perm-identity:before{content:"\e651"}.mdi-action-perm-media:before{content:"\e652"}.mdi-action-perm-phone-msg:before{content:"\e653"}.mdi-action-perm-scan-wifi:before{content:"\e654"}.mdi-action-picture-in-picture:before{content:"\e655"}.mdi-action-polymer:before{content:"\e656"}.mdi-action-print:before{content:"\e657"}.mdi-action-query-builder:before{content:"\e658"}.mdi-action-question-answer:before{content:"\e659"}.mdi-action-receipt:before{content:"\e65a"}.mdi-action-redeem:before{content:"\e65b"}.mdi-action-reorder:before{content:"\e65c"}.mdi-action-report-problem:before{content:"\e65d"}.mdi-action-restore:before{content:"\e65e"}.mdi-action-room:before{content:"\e65f"}.mdi-action-schedule:before{content:"\e660"}.mdi-action-search:before{content:"\e661"}.mdi-action-settings-applications:before{content:"\e662"}.mdi-action-settings-backup-restore:before{content:"\e663"}.mdi-action-settings-bluetooth:before{content:"\e664"}.mdi-action-settings-cell:before{content:"\e665"}.mdi-action-settings-display:before{content:"\e666"}.mdi-action-settings-ethernet:before{content:"\e667"}.mdi-action-settings-input-antenna:before{content:"\e668"}.mdi-action-settings-input-component:before{content:"\e669"}.mdi-action-settings-input-composite:before{content:"\e66a"}.mdi-action-settings-input-hdmi:before{content:"\e66b"}.mdi-action-settings-input-svideo:before{content:"\e66c"}.mdi-action-settings-overscan:before{content:"\e66d"}.mdi-action-settings-phone:before{content:"\e66e"}.mdi-action-settings-power:before{content:"\e66f"}.mdi-action-settings-remote:before{content:"\e670"}.mdi-action-settings-voice:before{content:"\e671"}.mdi-action-settings:before{content:"\e672"}.mdi-action-shop-two:before{content:"\e673"}.mdi-action-shop:before{content:"\e674"}.mdi-action-shopping-basket:before{content:"\e675"}.mdi-action-shopping-cart:before{content:"\e676"}.mdi-action-speaker-notes:before{content:"\e677"}.mdi-action-spellcheck:before{content:"\e678"}.mdi-action-star-rate:before{content:"\e679"}.mdi-action-stars:before{content:"\e67a"}.mdi-action-store:before{content:"\e67b"}.mdi-action-subject:before{content:"\e67c"}.mdi-action-supervisor-account:before{content:"\e67d"}.mdi-action-swap-horiz:before{content:"\e67e"}.mdi-action-swap-vert-circle:before{content:"\e67f"}.mdi-action-swap-vert:before{content:"\e680"}.mdi-action-system-update-tv:before{content:"\e681"}.mdi-action-tab-unselected:before{content:"\e682"}.mdi-action-tab:before{content:"\e683"}.mdi-action-theaters:before{content:"\e684"}.mdi-action-thumb-down:before{content:"\e685"}.mdi-action-thumb-up:before{content:"\e686"}.mdi-action-thumbs-up-down:before{content:"\e687"}.mdi-action-toc:before{content:"\e688"}.mdi-action-today:before{content:"\e689"}.mdi-action-track-changes:before{content:"\e68a"}.mdi-action-translate:before{content:"\e68b"}.mdi-action-trending-down:before{content:"\e68c"}.mdi-action-trending-neutral:before{content:"\e68d"}.mdi-action-trending-up:before{content:"\e68e"}.mdi-action-turned-in-not:before{content:"\e68f"}.mdi-action-turned-in:before{content:"\e690"}.mdi-action-verified-user:before{content:"\e691"}.mdi-action-view-agenda:before{content:"\e692"}.mdi-action-view-array:before{content:"\e693"}.mdi-action-view-carousel:before{content:"\e694"}.mdi-action-view-column:before{content:"\e695"}.mdi-action-view-day:before{content:"\e696"}.mdi-action-view-headline:before{content:"\e697"}.mdi-action-view-list:before{content:"\e698"}.mdi-action-view-module:before{content:"\e699"}.mdi-action-view-quilt:before{content:"\e69a"}.mdi-action-view-stream:before{content:"\e69b"}.mdi-action-view-week:before{content:"\e69c"}.mdi-action-visibility-off:before{content:"\e69d"}.mdi-action-visibility:before{content:"\e69e"}.mdi-action-wallet-giftcard:before{content:"\e69f"}.mdi-action-wallet-membership:before{content:"\e6a0"}.mdi-action-wallet-travel:before{content:"\e6a1"}.mdi-action-work:before{content:"\e6a2"}.mdi-alert-error:before{content:"\e6a3"}.mdi-alert-warning:before{content:"\e6a4"}.mdi-av-album:before{content:"\e6a5"}.mdi-av-closed-caption:before{content:"\e6a6"}.mdi-av-equalizer:before{content:"\e6a7"}.mdi-av-explicit:before{content:"\e6a8"}.mdi-av-fast-forward:before{content:"\e6a9"}.mdi-av-fast-rewind:before{content:"\e6aa"}.mdi-av-games:before{content:"\e6ab"}.mdi-av-hearing:before{content:"\e6ac"}.mdi-av-high-quality:before{content:"\e6ad"}.mdi-av-loop:before{content:"\e6ae"}.mdi-av-mic-none:before{content:"\e6af"}.mdi-av-mic-off:before{content:"\e6b0"}.mdi-av-mic:before{content:"\e6b1"}.mdi-av-movie:before{content:"\e6b2"}.mdi-av-my-library-add:before{content:"\e6b3"}.mdi-av-my-library-books:before{content:"\e6b4"}.mdi-av-my-library-music:before{content:"\e6b5"}.mdi-av-new-releases:before{content:"\e6b6"}.mdi-av-not-interested:before{content:"\e6b7"}.mdi-av-pause-circle-fill:before{content:"\e6b8"}.mdi-av-pause-circle-outline:before{content:"\e6b9"}.mdi-av-pause:before{content:"\e6ba"}.mdi-av-play-arrow:before{content:"\e6bb"}.mdi-av-play-circle-fill:before{content:"\e6bc"}.mdi-av-play-circle-outline:before{content:"\e6bd"}.mdi-av-play-shopping-bag:before{content:"\e6be"}.mdi-av-playlist-add:before{content:"\e6bf"}.mdi-av-queue-music:before{content:"\e6c0"}.mdi-av-queue:before{content:"\e6c1"}.mdi-av-radio:before{content:"\e6c2"}.mdi-av-recent-actors:before{content:"\e6c3"}.mdi-av-repeat-one:before{content:"\e6c4"}.mdi-av-repeat:before{content:"\e6c5"}.mdi-av-replay:before{content:"\e6c6"}.mdi-av-shuffle:before{content:"\e6c7"}.mdi-av-skip-next:before{content:"\e6c8"}.mdi-av-skip-previous:before{content:"\e6c9"}.mdi-av-snooze:before{content:"\e6ca"}.mdi-av-stop:before{content:"\e6cb"}.mdi-av-subtitles:before{content:"\e6cc"}.mdi-av-surround-sound:before{content:"\e6cd"}.mdi-av-timer:before{content:"\e6ce"}.mdi-av-video-collection:before{content:"\e6cf"}.mdi-av-videocam-off:before{content:"\e6d0"}.mdi-av-videocam:before{content:"\e6d1"}.mdi-av-volume-down:before{content:"\e6d2"}.mdi-av-volume-mute:before{content:"\e6d3"}.mdi-av-volume-off:before{content:"\e6d4"}.mdi-av-volume-up:before{content:"\e6d5"}.mdi-av-web:before{content:"\e6d6"}.mdi-communication-business:before{content:"\e6d7"}.mdi-communication-call-end:before{content:"\e6d8"}.mdi-communication-call-made:before{content:"\e6d9"}.mdi-communication-call-merge:before{content:"\e6da"}.mdi-communication-call-missed:before{content:"\e6db"}.mdi-communication-call-received:before{content:"\e6dc"}.mdi-communication-call-split:before{content:"\e6dd"}.mdi-communication-call:before{content:"\e6de"}.mdi-communication-chat:before{content:"\e6df"}.mdi-communication-clear-all:before{content:"\e6e0"}.mdi-communication-comment:before{content:"\e6e1"}.mdi-communication-contacts:before{content:"\e6e2"}.mdi-communication-dialer-sip:before{content:"\e6e3"}.mdi-communication-dialpad:before{content:"\e6e4"}.mdi-communication-dnd-on:before{content:"\e6e5"}.mdi-communication-email:before{content:"\e6e6"}.mdi-communication-forum:before{content:"\e6e7"}.mdi-communication-import-export:before{content:"\e6e8"}.mdi-communication-invert-colors-off:before{content:"\e6e9"}.mdi-communication-invert-colors-on:before{content:"\e6ea"}.mdi-communication-live-help:before{content:"\e6eb"}.mdi-communication-location-off:before{content:"\e6ec"}.mdi-communication-location-on:before{content:"\e6ed"}.mdi-communication-message:before{content:"\e6ee"}.mdi-communication-messenger:before{content:"\e6ef"}.mdi-communication-no-sim:before{content:"\e6f0"}.mdi-communication-phone:before{content:"\e6f1"}.mdi-communication-portable-wifi-off:before{content:"\e6f2"}.mdi-communication-quick-contacts-dialer:before{content:"\e6f3"}.mdi-communication-quick-contacts-mail:before{content:"\e6f4"}.mdi-communication-ring-volume:before{content:"\e6f5"}.mdi-communication-stay-current-landscape:before{content:"\e6f6"}.mdi-communication-stay-current-portrait:before{content:"\e6f7"}.mdi-communication-stay-primary-landscape:before{content:"\e6f8"}.mdi-communication-stay-primary-portrait:before{content:"\e6f9"}.mdi-communication-swap-calls:before{content:"\e6fa"}.mdi-communication-textsms:before{content:"\e6fb"}.mdi-communication-voicemail:before{content:"\e6fc"}.mdi-communication-vpn-key:before{content:"\e6fd"}.mdi-content-add-box:before{content:"\e6fe"}.mdi-content-add-circle-outline:before{content:"\e6ff"}.mdi-content-add-circle:before{content:"\e700"}.mdi-content-add:before{content:"\e701"}.mdi-content-archive:before{content:"\e702"}.mdi-content-backspace:before{content:"\e703"}.mdi-content-block:before{content:"\e704"}.mdi-content-clear:before{content:"\e705"}.mdi-content-content-copy:before{content:"\e706"}.mdi-content-content-cut:before{content:"\e707"}.mdi-content-content-paste:before{content:"\e708"}.mdi-content-create:before{content:"\e709"}.mdi-content-drafts:before{content:"\e70a"}.mdi-content-filter-list:before{content:"\e70b"}.mdi-content-flag:before{content:"\e70c"}.mdi-content-forward:before{content:"\e70d"}.mdi-content-gesture:before{content:"\e70e"}.mdi-content-inbox:before{content:"\e70f"}.mdi-content-link:before{content:"\e710"}.mdi-content-mail:before{content:"\e711"}.mdi-content-markunread:before{content:"\e712"}.mdi-content-redo:before{content:"\e713"}.mdi-content-remove-circle-outline:before{content:"\e714"}.mdi-content-remove-circle:before{content:"\e715"}.mdi-content-remove:before{content:"\e716"}.mdi-content-reply-all:before{content:"\e717"}.mdi-content-reply:before{content:"\e718"}.mdi-content-report:before{content:"\e719"}.mdi-content-save:before{content:"\e71a"}.mdi-content-select-all:before{content:"\e71b"}.mdi-content-send:before{content:"\e71c"}.mdi-content-sort:before{content:"\e71d"}.mdi-content-text-format:before{content:"\e71e"}.mdi-content-undo:before{content:"\e71f"}.mdi-editor-attach-file:before{content:"\e776"}.mdi-editor-attach-money:before{content:"\e777"}.mdi-editor-border-all:before{content:"\e778"}.mdi-editor-border-bottom:before{content:"\e779"}.mdi-editor-border-clear:before{content:"\e77a"}.mdi-editor-border-color:before{content:"\e77b"}.mdi-editor-border-horizontal:before{content:"\e77c"}.mdi-editor-border-inner:before{content:"\e77d"}.mdi-editor-border-left:before{content:"\e77e"}.mdi-editor-border-outer:before{content:"\e77f"}.mdi-editor-border-right:before{content:"\e780"}.mdi-editor-border-style:before{content:"\e781"}.mdi-editor-border-top:before{content:"\e782"}.mdi-editor-border-vertical:before{content:"\e783"}.mdi-editor-format-align-center:before{content:"\e784"}.mdi-editor-format-align-justify:before{content:"\e785"}.mdi-editor-format-align-left:before{content:"\e786"}.mdi-editor-format-align-right:before{content:"\e787"}.mdi-editor-format-bold:before{content:"\e788"}.mdi-editor-format-clear:before{content:"\e789"}.mdi-editor-format-color-fill:before{content:"\e78a"}.mdi-editor-format-color-reset:before{content:"\e78b"}.mdi-editor-format-color-text:before{content:"\e78c"}.mdi-editor-format-indent-decrease:before{content:"\e78d"}.mdi-editor-format-indent-increase:before{content:"\e78e"}.mdi-editor-format-italic:before{content:"\e78f"}.mdi-editor-format-line-spacing:before{content:"\e790"}.mdi-editor-format-list-bulleted:before{content:"\e791"}.mdi-editor-format-list-numbered:before{content:"\e792"}.mdi-editor-format-paint:before{content:"\e793"}.mdi-editor-format-quote:before{content:"\e794"}.mdi-editor-format-size:before{content:"\e795"}.mdi-editor-format-strikethrough:before{content:"\e796"}.mdi-editor-format-textdirection-l-to-r:before{content:"\e797"}.mdi-editor-format-textdirection-r-to-l:before{content:"\e798"}.mdi-editor-format-underline:before{content:"\e799"}.mdi-editor-functions:before{content:"\e79a"}.mdi-editor-insert-chart:before{content:"\e79b"}.mdi-editor-insert-comment:before{content:"\e79c"}.mdi-editor-insert-drive-file:before{content:"\e79d"}.mdi-editor-insert-emoticon:before{content:"\e79e"}.mdi-editor-insert-invitation:before{content:"\e79f"}.mdi-editor-insert-link:before{content:"\e7a0"}.mdi-editor-insert-photo:before{content:"\e7a1"}.mdi-editor-merge-type:before{content:"\e7a2"}.mdi-editor-mode-comment:before{content:"\e7a3"}.mdi-editor-mode-edit:before{content:"\e7a4"}.mdi-editor-publish:before{content:"\e7a5"}.mdi-editor-vertical-align-bottom:before{content:"\e7a6"}.mdi-editor-vertical-align-center:before{content:"\e7a7"}.mdi-editor-vertical-align-top:before{content:"\e7a8"}.mdi-editor-wrap-text:before{content:"\e7a9"}.mdi-file-attachment:before{content:"\e7aa"}.mdi-file-cloud-circle:before{content:"\e7ab"}.mdi-file-cloud-done:before{content:"\e7ac"}.mdi-file-cloud-download:before{content:"\e7ad"}.mdi-file-cloud-off:before{content:"\e7ae"}.mdi-file-cloud-queue:before{content:"\e7af"}.mdi-file-cloud-upload:before{content:"\e7b0"}.mdi-file-cloud:before{content:"\e7b1"}.mdi-file-file-download:before{content:"\e7b2"}.mdi-file-file-upload:before{content:"\e7b3"}.mdi-file-folder-open:before{content:"\e7b4"}.mdi-file-folder-shared:before{content:"\e7b5"}.mdi-file-folder:before{content:"\e7b6"}.mdi-device-access-alarm:before{content:"\e720"}.mdi-device-access-alarms:before{content:"\e721"}.mdi-device-access-time:before{content:"\e722"}.mdi-device-add-alarm:before{content:"\e723"}.mdi-device-airplanemode-off:before{content:"\e724"}.mdi-device-airplanemode-on:before{content:"\e725"}.mdi-device-battery-20:before{content:"\e726"}.mdi-device-battery-30:before{content:"\e727"}.mdi-device-battery-50:before{content:"\e728"}.mdi-device-battery-60:before{content:"\e729"}.mdi-device-battery-80:before{content:"\e72a"}.mdi-device-battery-90:before{content:"\e72b"}.mdi-device-battery-alert:before{content:"\e72c"}.mdi-device-battery-charging-20:before{content:"\e72d"}.mdi-device-battery-charging-30:before{content:"\e72e"}.mdi-device-battery-charging-50:before{content:"\e72f"}.mdi-device-battery-charging-60:before{content:"\e730"}.mdi-device-battery-charging-80:before{content:"\e731"}.mdi-device-battery-charging-90:before{content:"\e732"}.mdi-device-battery-charging-full:before{content:"\e733"}.mdi-device-battery-full:before{content:"\e734"}.mdi-device-battery-std:before{content:"\e735"}.mdi-device-battery-unknown:before{content:"\e736"}.mdi-device-bluetooth-connected:before{content:"\e737"}.mdi-device-bluetooth-disabled:before{content:"\e738"}.mdi-device-bluetooth-searching:before{content:"\e739"}.mdi-device-bluetooth:before{content:"\e73a"}.mdi-device-brightness-auto:before{content:"\e73b"}.mdi-device-brightness-high:before{content:"\e73c"}.mdi-device-brightness-low:before{content:"\e73d"}.mdi-device-brightness-medium:before{content:"\e73e"}.mdi-device-data-usage:before{content:"\e73f"}.mdi-device-developer-mode:before{content:"\e740"}.mdi-device-devices:before{content:"\e741"}.mdi-device-dvr:before{content:"\e742"}.mdi-device-gps-fixed:before{content:"\e743"}.mdi-device-gps-not-fixed:before{content:"\e744"}.mdi-device-gps-off:before{content:"\e745"}.mdi-device-location-disabled:before{content:"\e746"}.mdi-device-location-searching:before{content:"\e747"}.mdi-device-multitrack-audio:before{content:"\e748"}.mdi-device-network-cell:before{content:"\e749"}.mdi-device-network-wifi:before{content:"\e74a"}.mdi-device-nfc:before{content:"\e74b"}.mdi-device-now-wallpaper:before{content:"\e74c"}.mdi-device-now-widgets:before{content:"\e74d"}.mdi-device-screen-lock-landscape:before{content:"\e74e"}.mdi-device-screen-lock-portrait:before{content:"\e74f"}.mdi-device-screen-lock-rotation:before{content:"\e750"}.mdi-device-screen-rotation:before{content:"\e751"}.mdi-device-sd-storage:before{content:"\e752"}.mdi-device-settings-system-daydream:before{content:"\e753"}.mdi-device-signal-cellular-0-bar:before{content:"\e754"}.mdi-device-signal-cellular-1-bar:before{content:"\e755"}.mdi-device-signal-cellular-2-bar:before{content:"\e756"}.mdi-device-signal-cellular-3-bar:before{content:"\e757"}.mdi-device-signal-cellular-4-bar:before{content:"\e758"}.mdi-signal-wifi-statusbar-connected-no-internet-after:before{content:"\e8f6"}.mdi-device-signal-cellular-connected-no-internet-0-bar:before{content:"\e759"}.mdi-device-signal-cellular-connected-no-internet-1-bar:before{content:"\e75a"}.mdi-device-signal-cellular-connected-no-internet-2-bar:before{content:"\e75b"}.mdi-device-signal-cellular-connected-no-internet-3-bar:before{content:"\e75c"}.mdi-device-signal-cellular-connected-no-internet-4-bar:before{content:"\e75d"}.mdi-device-signal-cellular-no-sim:before{content:"\e75e"}.mdi-device-signal-cellular-null:before{content:"\e75f"}.mdi-device-signal-cellular-off:before{content:"\e760"}.mdi-device-signal-wifi-0-bar:before{content:"\e761"}.mdi-device-signal-wifi-1-bar:before{content:"\e762"}.mdi-device-signal-wifi-2-bar:before{content:"\e763"}.mdi-device-signal-wifi-3-bar:before{content:"\e764"}.mdi-device-signal-wifi-4-bar:before{content:"\e765"}.mdi-device-signal-wifi-off:before{content:"\e766"}.mdi-device-signal-wifi-statusbar-1-bar:before{content:"\e767"}.mdi-device-signal-wifi-statusbar-2-bar:before{content:"\e768"}.mdi-device-signal-wifi-statusbar-3-bar:before{content:"\e769"}.mdi-device-signal-wifi-statusbar-4-bar:before{content:"\e76a"}.mdi-device-signal-wifi-statusbar-connected-no-internet-:before{content:"\e76b"}.mdi-device-signal-wifi-statusbar-connected-no-internet:before{content:"\e76f"}.mdi-device-signal-wifi-statusbar-connected-no-internet-2:before{content:"\e76c"}.mdi-device-signal-wifi-statusbar-connected-no-internet-3:before{content:"\e76d"}.mdi-device-signal-wifi-statusbar-connected-no-internet-4:before{content:"\e76e"}.mdi-signal-wifi-statusbar-not-connected-after:before{content:"\e8f7"}.mdi-device-signal-wifi-statusbar-not-connected:before{content:"\e770"}.mdi-device-signal-wifi-statusbar-null:before{content:"\e771"}.mdi-device-storage:before{content:"\e772"}.mdi-device-usb:before{content:"\e773"}.mdi-device-wifi-lock:before{content:"\e774"}.mdi-device-wifi-tethering:before{content:"\e775"}.mdi-hardware-cast-connected:before{content:"\e7b7"}.mdi-hardware-cast:before{content:"\e7b8"}.mdi-hardware-computer:before{content:"\e7b9"}.mdi-hardware-desktop-mac:before{content:"\e7ba"}.mdi-hardware-desktop-windows:before{content:"\e7bb"}.mdi-hardware-dock:before{content:"\e7bc"}.mdi-hardware-gamepad:before{content:"\e7bd"}.mdi-hardware-headset-mic:before{content:"\e7be"}.mdi-hardware-headset:before{content:"\e7bf"}.mdi-hardware-keyboard-alt:before{content:"\e7c0"}.mdi-hardware-keyboard-arrow-down:before{content:"\e7c1"}.mdi-hardware-keyboard-arrow-left:before{content:"\e7c2"}.mdi-hardware-keyboard-arrow-right:before{content:"\e7c3"}.mdi-hardware-keyboard-arrow-up:before{content:"\e7c4"}.mdi-hardware-keyboard-backspace:before{content:"\e7c5"}.mdi-hardware-keyboard-capslock:before{content:"\e7c6"}.mdi-hardware-keyboard-control:before{content:"\e7c7"}.mdi-hardware-keyboard-hide:before{content:"\e7c8"}.mdi-hardware-keyboard-return:before{content:"\e7c9"}.mdi-hardware-keyboard-tab:before{content:"\e7ca"}.mdi-hardware-keyboard-voice:before{content:"\e7cb"}.mdi-hardware-keyboard:before{content:"\e7cc"}.mdi-hardware-laptop-chromebook:before{content:"\e7cd"}.mdi-hardware-laptop-mac:before{content:"\e7ce"}.mdi-hardware-laptop-windows:before{content:"\e7cf"}.mdi-hardware-laptop:before{content:"\e7d0"}.mdi-hardware-memory:before{content:"\e7d1"}.mdi-hardware-mouse:before{content:"\e7d2"}.mdi-hardware-phone-android:before{content:"\e7d3"}.mdi-hardware-phone-iphone:before{content:"\e7d4"}.mdi-hardware-phonelink-off:before{content:"\e7d5"}.mdi-hardware-phonelink:before{content:"\e7d6"}.mdi-hardware-security:before{content:"\e7d7"}.mdi-hardware-sim-card:before{content:"\e7d8"}.mdi-hardware-smartphone:before{content:"\e7d9"}.mdi-hardware-speaker:before{content:"\e7da"}.mdi-hardware-tablet-android:before{content:"\e7db"}.mdi-hardware-tablet-mac:before{content:"\e7dc"}.mdi-hardware-tablet:before{content:"\e7dd"}.mdi-hardware-tv:before{content:"\e7de"}.mdi-hardware-watch:before{content:"\e7df"}.mdi-image-add-to-photos:before{content:"\e7e0"}.mdi-image-adjust:before{content:"\e7e1"}.mdi-image-assistant-photo:before{content:"\e7e2"}.mdi-image-audiotrack:before{content:"\e7e3"}.mdi-image-blur-circular:before{content:"\e7e4"}.mdi-image-blur-linear:before{content:"\e7e5"}.mdi-image-blur-off:before{content:"\e7e6"}.mdi-image-blur-on:before{content:"\e7e7"}.mdi-image-brightness-1:before{content:"\e7e8"}.mdi-image-brightness-2:before{content:"\e7e9"}.mdi-image-brightness-3:before{content:"\e7ea"}.mdi-image-brightness-4:before{content:"\e7eb"}.mdi-image-brightness-5:before{content:"\e7ec"}.mdi-image-brightness-6:before{content:"\e7ed"}.mdi-image-brightness-7:before{content:"\e7ee"}.mdi-image-brush:before{content:"\e7ef"}.mdi-image-camera-alt:before{content:"\e7f0"}.mdi-image-camera-front:before{content:"\e7f1"}.mdi-image-camera-rear:before{content:"\e7f2"}.mdi-image-camera-roll:before{content:"\e7f3"}.mdi-image-camera:before{content:"\e7f4"}.mdi-image-center-focus-strong:before{content:"\e7f5"}.mdi-image-center-focus-weak:before{content:"\e7f6"}.mdi-image-collections:before{content:"\e7f7"}.mdi-image-color-lens:before{content:"\e7f8"}.mdi-image-colorize:before{content:"\e7f9"}.mdi-image-compare:before{content:"\e7fa"}.mdi-image-control-point-duplicate:before{content:"\e7fb"}.mdi-image-control-point:before{content:"\e7fc"}.mdi-image-crop-3-2:before{content:"\e7fd"}.mdi-image-crop-5-4:before{content:"\e7fe"}.mdi-image-crop-7-5:before{content:"\e7ff"}.mdi-image-crop-16-9:before{content:"\e800"}.mdi-image-crop-din:before{content:"\e801"}.mdi-image-crop-free:before{content:"\e802"}.mdi-image-crop-landscape:before{content:"\e803"}.mdi-image-crop-original:before{content:"\e804"}.mdi-image-crop-portrait:before{content:"\e805"}.mdi-image-crop-square:before{content:"\e806"}.mdi-image-crop:before{content:"\e807"}.mdi-image-dehaze:before{content:"\e808"}.mdi-image-details:before{content:"\e809"}.mdi-image-edit:before{content:"\e80a"}.mdi-image-exposure-minus-1:before{content:"\e80b"}.mdi-image-exposure-minus-2:before{content:"\e80c"}.mdi-image-exposure-plus-1:before{content:"\e80d"}.mdi-image-exposure-plus-2:before{content:"\e80e"}.mdi-image-exposure-zero:before{content:"\e80f"}.mdi-image-exposure:before{content:"\e810"}.mdi-image-filter-1:before{content:"\e811"}.mdi-image-filter-2:before{content:"\e812"}.mdi-image-filter-3:before{content:"\e813"}.mdi-image-filter-4:before{content:"\e814"}.mdi-image-filter-5:before{content:"\e815"}.mdi-image-filter-6:before{content:"\e816"}.mdi-image-filter-7:before{content:"\e817"}.mdi-image-filter-8:before{content:"\e818"}.mdi-image-filter-9-plus:before{content:"\e819"}.mdi-image-filter-9:before{content:"\e81a"}.mdi-image-filter-b-and-w:before{content:"\e81b"}.mdi-image-filter-center-focus:before{content:"\e81c"}.mdi-image-filter-drama:before{content:"\e81d"}.mdi-image-filter-frames:before{content:"\e81e"}.mdi-image-filter-hdr:before{content:"\e81f"}.mdi-image-filter-none:before{content:"\e820"}.mdi-image-filter-tilt-shift:before{content:"\e821"}.mdi-image-filter-vintage:before{content:"\e822"}.mdi-image-filter:before{content:"\e823"}.mdi-image-flare:before{content:"\e824"}.mdi-image-flash-auto:before{content:"\e825"}.mdi-image-flash-off:before{content:"\e826"}.mdi-image-flash-on:before{content:"\e827"}.mdi-image-flip:before{content:"\e828"}.mdi-image-gradient:before{content:"\e829"}.mdi-image-grain:before{content:"\e82a"}.mdi-image-grid-off:before{content:"\e82b"}.mdi-image-grid-on:before{content:"\e82c"}.mdi-image-hdr-off:before{content:"\e82d"}.mdi-image-hdr-on:before{content:"\e82e"}.mdi-image-hdr-strong:before{content:"\e82f"}.mdi-image-hdr-weak:before{content:"\e830"}.mdi-image-healing:before{content:"\e831"}.mdi-image-image-aspect-ratio:before{content:"\e832"}.mdi-image-image:before{content:"\e833"}.mdi-image-iso:before{content:"\e834"}.mdi-image-landscape:before{content:"\e835"}.mdi-image-leak-add:before{content:"\e836"}.mdi-image-leak-remove:before{content:"\e837"}.mdi-image-lens:before{content:"\e838"}.mdi-image-looks-3:before{content:"\e839"}.mdi-image-looks-4:before{content:"\e83a"}.mdi-image-looks-5:before{content:"\e83b"}.mdi-image-looks-6:before{content:"\e83c"}.mdi-image-looks-one:before{content:"\e83d"}.mdi-image-looks-two:before{content:"\e83e"}.mdi-image-looks:before{content:"\e83f"}.mdi-image-loupe:before{content:"\e840"}.mdi-image-movie-creation:before{content:"\e841"}.mdi-image-nature-people:before{content:"\e842"}.mdi-image-nature:before{content:"\e843"}.mdi-image-navigate-before:before{content:"\e844"}.mdi-image-navigate-next:before{content:"\e845"}.mdi-image-palette:before{content:"\e846"}.mdi-image-panorama-fisheye:before{content:"\e847"}.mdi-image-panorama-horizontal:before{content:"\e848"}.mdi-image-panorama-vertical:before{content:"\e849"}.mdi-image-panorama-wide-angle:before{content:"\e84a"}.mdi-image-panorama:before{content:"\e84b"}.mdi-image-photo-album:before{content:"\e84c"}.mdi-image-photo-camera:before{content:"\e84d"}.mdi-image-photo-library:before{content:"\e84e"}.mdi-image-photo:before{content:"\e84f"}.mdi-image-portrait:before{content:"\e850"}.mdi-image-remove-red-eye:before{content:"\e851"}.mdi-image-rotate-left:before{content:"\e852"}.mdi-image-rotate-right:before{content:"\e853"}.mdi-image-slideshow:before{content:"\e854"}.mdi-image-straighten:before{content:"\e855"}.mdi-image-style:before{content:"\e856"}.mdi-image-switch-camera:before{content:"\e857"}.mdi-image-switch-video:before{content:"\e858"}.mdi-image-tag-faces:before{content:"\e859"}.mdi-image-texture:before{content:"\e85a"}.mdi-image-timelapse:before{content:"\e85b"}.mdi-image-timer-3:before{content:"\e85c"}.mdi-image-timer-10:before{content:"\e85d"}.mdi-image-timer-auto:before{content:"\e85e"}.mdi-image-timer-off:before{content:"\e85f"}.mdi-image-timer:before{content:"\e860"}.mdi-image-tonality:before{content:"\e861"}.mdi-image-transform:before{content:"\e862"}.mdi-image-tune:before{content:"\e863"}.mdi-image-wb-auto:before{content:"\e864"}.mdi-image-wb-cloudy:before{content:"\e865"}.mdi-image-wb-incandescent:before{content:"\e866"}.mdi-image-wb-irradescent:before{content:"\e867"}.mdi-image-wb-sunny:before{content:"\e868"}.mdi-maps-beenhere:before{content:"\e869"}.mdi-maps-directions-bike:before{content:"\e86a"}.mdi-maps-directions-bus:before{content:"\e86b"}.mdi-maps-directions-car:before{content:"\e86c"}.mdi-maps-directions-ferry:before{content:"\e86d"}.mdi-maps-directions-subway:before{content:"\e86e"}.mdi-maps-directions-train:before{content:"\e86f"}.mdi-maps-directions-transit:before{content:"\e870"}.mdi-maps-directions-walk:before{content:"\e871"}.mdi-maps-directions:before{content:"\e872"}.mdi-maps-flight:before{content:"\e873"}.mdi-maps-hotel:before{content:"\e874"}.mdi-maps-layers-clear:before{content:"\e875"}.mdi-maps-layers:before{content:"\e876"}.mdi-maps-local-airport:before{content:"\e877"}.mdi-maps-local-atm:before{content:"\e878"}.mdi-maps-local-attraction:before{content:"\e879"}.mdi-maps-local-bar:before{content:"\e87a"}.mdi-maps-local-cafe:before{content:"\e87b"}.mdi-maps-local-car-wash:before{content:"\e87c"}.mdi-maps-local-convenience-store:before{content:"\e87d"}.mdi-maps-local-drink:before{content:"\e87e"}.mdi-maps-local-florist:before{content:"\e87f"}.mdi-maps-local-gas-station:before{content:"\e880"}.mdi-maps-local-grocery-store:before{content:"\e881"}.mdi-maps-local-hospital:before{content:"\e882"}.mdi-maps-local-hotel:before{content:"\e883"}.mdi-maps-local-laundry-service:before{content:"\e884"}.mdi-maps-local-library:before{content:"\e885"}.mdi-maps-local-mall:before{content:"\e886"}.mdi-maps-local-movies:before{content:"\e887"}.mdi-maps-local-offer:before{content:"\e888"}.mdi-maps-local-parking:before{content:"\e889"}.mdi-maps-local-pharmacy:before{content:"\e88a"}.mdi-maps-local-phone:before{content:"\e88b"}.mdi-maps-local-pizza:before{content:"\e88c"}.mdi-maps-local-play:before{content:"\e88d"}.mdi-maps-local-post-office:before{content:"\e88e"}.mdi-maps-local-print-shop:before{content:"\e88f"}.mdi-maps-local-restaurant:before{content:"\e890"}.mdi-maps-local-see:before{content:"\e891"}.mdi-maps-local-shipping:before{content:"\e892"}.mdi-maps-local-taxi:before{content:"\e893"}.mdi-maps-location-history:before{content:"\e894"}.mdi-maps-map:before{content:"\e895"}.mdi-maps-my-location:before{content:"\e896"}.mdi-maps-navigation:before{content:"\e897"}.mdi-maps-pin-drop:before{content:"\e898"}.mdi-maps-place:before{content:"\e899"}.mdi-maps-rate-review:before{content:"\e89a"}.mdi-maps-restaurant-menu:before{content:"\e89b"}.mdi-maps-satellite:before{content:"\e89c"}.mdi-maps-store-mall-directory:before{content:"\e89d"}.mdi-maps-terrain:before{content:"\e89e"}.mdi-maps-traffic:before{content:"\e89f"}.mdi-navigation-apps:before{content:"\e8a0"}.mdi-navigation-arrow-back:before{content:"\e8a1"}.mdi-navigation-arrow-drop-down-circle:before{content:"\e8a2"}.mdi-navigation-arrow-drop-down:before{content:"\e8a3"}.mdi-navigation-arrow-drop-up:before{content:"\e8a4"}.mdi-navigation-arrow-forward:before{content:"\e8a5"}.mdi-navigation-cancel:before{content:"\e8a6"}.mdi-navigation-check:before{content:"\e8a7"}.mdi-navigation-chevron-left:before{content:"\e8a8"}.mdi-navigation-chevron-right:before{content:"\e8a9"}.mdi-navigation-close:before{content:"\e8aa"}.mdi-navigation-expand-less:before{content:"\e8ab"}.mdi-navigation-expand-more:before{content:"\e8ac"}.mdi-navigation-fullscreen-exit:before{content:"\e8ad"}.mdi-navigation-fullscreen:before{content:"\e8ae"}.mdi-navigation-menu:before{content:"\e8af"}.mdi-navigation-more-horiz:before{content:"\e8b0"}.mdi-navigation-more-vert:before{content:"\e8b1"}.mdi-navigation-refresh:before{content:"\e8b2"}.mdi-navigation-unfold-less:before{content:"\e8b3"}.mdi-navigation-unfold-more:before{content:"\e8b4"}.mdi-notification-adb:before{content:"\e8b5"}.mdi-notification-bluetooth-audio:before{content:"\e8b6"}.mdi-notification-disc-full:before{content:"\e8b7"}.mdi-notification-dnd-forwardslash:before{content:"\e8b8"}.mdi-notification-do-not-disturb:before{content:"\e8b9"}.mdi-notification-drive-eta:before{content:"\e8ba"}.mdi-notification-event-available:before{content:"\e8bb"}.mdi-notification-event-busy:before{content:"\e8bc"}.mdi-notification-event-note:before{content:"\e8bd"}.mdi-notification-folder-special:before{content:"\e8be"}.mdi-notification-mms:before{content:"\e8bf"}.mdi-notification-more:before{content:"\e8c0"}.mdi-notification-network-locked:before{content:"\e8c1"}.mdi-notification-phone-bluetooth-speaker:before{content:"\e8c2"}.mdi-notification-phone-forwarded:before{content:"\e8c3"}.mdi-notification-phone-in-talk:before{content:"\e8c4"}.mdi-notification-phone-locked:before{content:"\e8c5"}.mdi-notification-phone-missed:before{content:"\e8c6"}.mdi-notification-phone-paused:before{content:"\e8c7"}.mdi-notification-play-download:before{content:"\e8c8"}.mdi-notification-play-install:before{content:"\e8c9"}.mdi-notification-sd-card:before{content:"\e8ca"}.mdi-notification-sim-card-alert:before{content:"\e8cb"}.mdi-notification-sms-failed:before{content:"\e8cc"}.mdi-notification-sms:before{content:"\e8cd"}.mdi-notification-sync-disabled:before{content:"\e8ce"}.mdi-notification-sync-problem:before{content:"\e8cf"}.mdi-notification-sync:before{content:"\e8d0"}.mdi-notification-system-update:before{content:"\e8d1"}.mdi-notification-tap-and-play:before{content:"\e8d2"}.mdi-notification-time-to-leave:before{content:"\e8d3"}.mdi-notification-vibration:before{content:"\e8d4"}.mdi-notification-voice-chat:before{content:"\e8d5"}.mdi-notification-vpn-lock:before{content:"\e8d6"}.mdi-social-cake:before{content:"\e8d7"}.mdi-social-domain:before{content:"\e8d8"}.mdi-social-group-add:before{content:"\e8d9"}.mdi-social-group:before{content:"\e8da"}.mdi-social-location-city:before{content:"\e8db"}.mdi-social-mood:before{content:"\e8dc"}.mdi-social-notifications-none:before{content:"\e8dd"}.mdi-social-notifications-off:before{content:"\e8de"}.mdi-social-notifications-on:before{content:"\e8df"}.mdi-social-notifications-paused:before{content:"\e8e0"}.mdi-social-notifications:before{content:"\e8e1"}.mdi-social-pages:before{content:"\e8e2"}.mdi-social-party-mode:before{content:"\e8e3"}.mdi-social-people-outline:before{content:"\e8e4"}.mdi-social-people:before{content:"\e8e5"}.mdi-social-person-add:before{content:"\e8e6"}.mdi-social-person-outline:before{content:"\e8e7"}.mdi-social-person:before{content:"\e8e8"}.mdi-social-plus-one:before{content:"\e8e9"}.mdi-social-poll:before{content:"\e8ea"}.mdi-social-public:before{content:"\e8eb"}.mdi-social-school:before{content:"\e8ec"}.mdi-social-share:before{content:"\e8ed"}.mdi-social-whatshot:before{content:"\e8ee"}.mdi-toggle-check-box-outline-blank:before{content:"\e8ef"}.mdi-toggle-check-box:before{content:"\e8f0"}.mdi-toggle-radio-button-off:before{content:"\e8f1"}.mdi-toggle-radio-button-on:before{content:"\e8f2"}.mdi-toggle-star-half:before{content:"\e8f3"}.mdi-toggle-star-outline:before{content:"\e8f4"}.mdi-toggle-star:before{content:"\e8f5"}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width:601px){.container{width:85%}}@media only screen and (min-width:993px){.container{width:70%}}.container .row{margin-left:-0.75rem;margin-right:-0.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;box-sizing:border-box;padding:0 .75rem}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.33333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.66667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.33333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.66667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.33333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.66667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.33333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.66667%;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.33333%}.row .col.pull-s1{right:8.33333%}.row .col.push-s1{left:8.33333%}.row .col.offset-s2{margin-left:16.66667%}.row .col.pull-s2{right:16.66667%}.row .col.push-s2{left:16.66667%}.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.33333%}.row .col.pull-s4{right:33.33333%}.row .col.push-s4{left:33.33333%}.row .col.offset-s5{margin-left:41.66667%}.row .col.pull-s5{right:41.66667%}.row .col.push-s5{left:41.66667%}.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.33333%}.row .col.pull-s7{right:58.33333%}.row .col.push-s7{left:58.33333%}.row .col.offset-s8{margin-left:66.66667%}.row .col.pull-s8{right:66.66667%}.row .col.push-s8{left:66.66667%}.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.33333%}.row .col.pull-s10{right:83.33333%}.row .col.push-s10{left:83.33333%}.row .col.offset-s11{margin-left:91.66667%}.row .col.pull-s11{right:91.66667%}.row .col.push-s11{left:91.66667%}.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.33333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.66667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.33333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.66667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.33333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.66667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.33333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.66667%;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.33333%}.row .col.pull-m1{right:8.33333%}.row .col.push-m1{left:8.33333%}.row .col.offset-m2{margin-left:16.66667%}.row .col.pull-m2{right:16.66667%}.row .col.push-m2{left:16.66667%}.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.33333%}.row .col.pull-m4{right:33.33333%}.row .col.push-m4{left:33.33333%}.row .col.offset-m5{margin-left:41.66667%}.row .col.pull-m5{right:41.66667%}.row .col.push-m5{left:41.66667%}.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.33333%}.row .col.pull-m7{right:58.33333%}.row .col.push-m7{left:58.33333%}.row .col.offset-m8{margin-left:66.66667%}.row .col.pull-m8{right:66.66667%}.row .col.push-m8{left:66.66667%}.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.33333%}.row .col.pull-m10{right:83.33333%}.row .col.push-m10{left:83.33333%}.row .col.offset-m11{margin-left:91.66667%}.row .col.pull-m11{right:91.66667%}.row .col.push-m11{left:91.66667%}.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.33333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.66667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.33333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.66667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.33333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.66667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.33333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.66667%;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.33333%}.row .col.pull-l1{right:8.33333%}.row .col.push-l1{left:8.33333%}.row .col.offset-l2{margin-left:16.66667%}.row .col.pull-l2{right:16.66667%}.row .col.push-l2{left:16.66667%}.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.33333%}.row .col.pull-l4{right:33.33333%}.row .col.push-l4{left:33.33333%}.row .col.offset-l5{margin-left:41.66667%}.row .col.pull-l5{right:41.66667%}.row .col.push-l5{left:41.66667%}.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.33333%}.row .col.pull-l7{right:58.33333%}.row .col.push-l7{left:58.33333%}.row .col.offset-l8{margin-left:66.66667%}.row .col.pull-l8{right:66.66667%}.row .col.push-l8{left:66.66667%}.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.33333%}.row .col.pull-l10{right:83.33333%}.row .col.push-l10{left:83.33333%}.row .col.offset-l11{margin-left:91.66667%}.row .col.pull-l11{right:91.66667%}.row .col.push-l11{left:91.66667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}nav{color:#fff;background-color:#64b5f6;width:100%;height:56px;line-height:56px}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:2rem;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width:993px){nav a.button-collapse{display:none}}nav .button-collapse{float:left;position:relative;z-index:1;height:56px}nav .button-collapse i{font-size:2.7rem;height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0;white-space:nowrap}nav .brand-logo.center{left:50%;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:.5rem}nav .brand-logo.right{right:.5rem;left:auto}}nav .brand-logo.right{right:.5rem;padding:0}nav ul{margin:0}nav ul li{transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav .input-field{margin:0}nav .input-field input{height:100%;font-size:1.2rem;border:0;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:0;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);transition:color .3s}nav .input-field label.active i{color:#fff}nav .input-field label.active{transform:translateY(0)}.navbar-fixed{position:relative;height:56px;z-index:998}.navbar-fixed nav{position:fixed}@media only screen and (min-width:601px){nav,nav .nav-wrapper i,nav a.button-collapse,nav a.button-collapse i{height:64px;line-height:64px}ul.side-nav.mini-with-expand{top:64px!important;height:calc(100vh - 64px)!important}.navbar-fixed{height:64px}}a{text-decoration:none}html{line-height:1.5;font-family:sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width:0){html{font-size:14px}}@media only screen and (min-width:992px){html{font-size:14.5px}}@media only screen and (min-width:1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.1}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.1rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 .912rem 0}h5{font-size:1.64rem;line-height:110%;margin:.82rem 0 .656rem 0}h6{font-size:1rem;line-height:110%;margin:.5rem 0 .4rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light,footer.page-footer .footer-copyright{font-weight:300}.thin{font-weight:200}.flow-text{font-weight:300}@media only screen and (min-width:360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width:390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width:420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width:450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width:480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width:510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width:540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width:570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width:600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width:630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width:660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width:690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width:720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width:750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width:780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width:810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width:840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width:870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width:900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width:930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width:960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width:360px){.flow-text{font-size:1.2rem}}.card-panel{transition:box-shadow .25s;padding:20px;margin:.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;transition:box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden}.card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:40%;overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0;z-index:1;background-color:inherit}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;padding:20px}.card .card-content{padding:20px;border-radius:0 0 2px 2px}.card .card-content p{margin:0;color:inherit}.card .card-content .card-title{line-height:48px}.card .card-action{border-top:1px solid rgba(160,160,160,0.2);padding:20px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:20px;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:20px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;top:100%;height:100%;z-index:1;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width:600px){#toast-container{min-width:100%;bottom:0}}@media only screen and (min-width:601px) and (max-width:992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width:993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:0;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;word-break:break-all;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:flex;align-items:center;justify-content:space-between}.toast .btn,.toast .btn-large,.toast .btn-flat{margin:0;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width:600px){.toast{width:100%;border-radius:0}}@media only screen and (min-width:601px) and (max-width:992px){.toast{float:left}}@media only screen and (min-width:993px){.toast{float:right}}.tabs{display:flex;position:relative;overflow-x:auto;overflow-y:hidden;height:48px;background-color:#fff;margin:0 auto;width:100%;white-space:nowrap}.tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;display:block;float:left;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;letter-spacing:.8px;width:15%;min-width:80px}.tabs .tab a{color:#64b5f6;display:block;width:100%;height:100%;text-overflow:ellipsis;overflow:hidden;transition:color .28s ease}.tabs .tab a:hover{color:#c4e3fc}.tabs .tab.disabled a{color:#c4e3fc;cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#acd8fa;will-change:left,right}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;display:none;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;will-change:top,left}.backdrop{position:absolute;opacity:0;display:none;height:7px;width:14px;border-radius:0 0 14px 14px;background-color:#323232;z-index:-1;transform-origin:50% 10%;will-change:transform,opacity}.btn,.btn-large,.btn-flat{border:0;border-radius:2px;display:inline-block;height:36px;line-height:36px;outline:0;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.btn-floating.disabled,.btn-large.disabled,.btn:disabled,.btn-large:disabled,.btn-large:disabled,.btn-floating:disabled{background-color:#dfdfdf!important;box-shadow:none;color:#9f9f9f!important;cursor:default}.btn.disabled *,.disabled.btn-large *,.btn-floating.disabled *,.btn-large.disabled *,.btn:disabled *,.btn-large:disabled *,.btn-large:disabled *,.btn-floating:disabled *{pointer-events:none}.btn.disabled:hover,.disabled.btn-large:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-large:disabled:hover,.btn-floating:disabled:hover{background-color:#dfdfdf;color:#9f9f9f}.btn i,.btn-large i,.btn-floating i,.btn-large i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn,.btn-large{text-decoration:none;color:#fff;background-color:#42a5f5;text-align:center;letter-spacing:.5px;transition:.2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover{background-color:#5ab1f6}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:37px;height:37px;line-height:37px;padding:0;background-color:#42a5f5;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:37px}.btn-floating:hover{background-color:#42a5f5}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:55.5px;height:55.5px}.btn-floating.btn-large i{line-height:55.5px}button.btn-floating{border:0}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.horizontal{padding:0 0 0 15px}.fixed-action-btn.horizontal ul{text-align:right;right:64px;height:100%;left:initial;width:500px}.fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 0 0}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.btn-flat{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer}.btn-flat.disabled{color:#b3b3b3;cursor:default}.btn-large{height:54px;line-height:56px}.btn-large i{font-size:1.6rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width,height}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left;text-transform:none}.dropdown-content li:hover,.dropdown-content li.active,.dropdown-content li.selected{background-color:#eee}.dropdown-content li.active.selected{background-color:#e1e1e1}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#42a5f5;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:3px;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit}/*! * Waves v0.6.0 * http://fian.my.id/Waves * @@ -8,4 +8,4 @@ */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;will-change:opacity,transform;transition:all .3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);transition:all .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:0}.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:.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}a.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top,opacity}@media only screen and (max-width:992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-flat{float:right;margin:6px 0}.lean-overlay{position:fixed;z-index:999;top:-100px;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom,opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem 0}.collapsible-header{display:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.collapsible-body{display:none;border-bottom:1px solid #ddd;box-sizing:border-box}.collapsible-body p{margin:0;padding:2rem}.side-nav .collapsible{border:0;box-shadow:none}.side-nav .collapsible li{padding:0}.side-nav .collapsible-header{background-color:transparent;border:0;line-height:inherit;height:inherit;margin:0 1rem}.side-nav .collapsible-header i{line-height:inherit}.side-nav .collapsible-body{border:0;background-color:#fff}.side-nav .collapsible-body li a{margin:0 1rem 0 2rem}.collapsible.popout{border:0;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 .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}.chip img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip i.material-icons{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.materialboxed{display:block;cursor:zoom-in;position:relative;transition:opacity .4s}.materialboxed:hover{will-change:left,top,width,height}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#292929;z-index:999;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;width:100%;text-align:center;padding:0 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid white}button:focus{outline:0;background-color:#55aef6}label{font-size:.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}:-moz-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=url],input[type=time],input[type=date],input[type=datetime-local],input[type=tel],input[type=number],input[type=search],textarea.materialize-textarea{background-color:transparent;border:0;border-bottom:1px solid #9e9e9e;border-radius:0;outline:0;height:3rem;width:100%;font-size:1rem;margin:0 0 15px 0;padding:0;box-shadow:none;box-sizing:content-box;transition:all .3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:disabled,input[type=text][readonly="readonly"],input[type=password]:disabled,input[type=password][readonly="readonly"],input[type=email]:disabled,input[type=email][readonly="readonly"],input[type=url]:disabled,input[type=url][readonly="readonly"],input[type=time]:disabled,input[type=time][readonly="readonly"],input[type=date]:disabled,input[type=date][readonly="readonly"],input[type=datetime-local]:disabled,input[type=datetime-local][readonly="readonly"],input[type=tel]:disabled,input[type=tel][readonly="readonly"],input[type=number]:disabled,input[type=number][readonly="readonly"],input[type=search]:disabled,input[type=search][readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.26);border-bottom:1px dotted rgba(0,0,0,0.26)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:disabled+label,input[type=text][readonly="readonly"]+label,input[type=password]:disabled+label,input[type=password][readonly="readonly"]+label,input[type=email]:disabled+label,input[type=email][readonly="readonly"]+label,input[type=url]:disabled+label,input[type=url][readonly="readonly"]+label,input[type=time]:disabled+label,input[type=time][readonly="readonly"]+label,input[type=date]:disabled+label,input[type=date][readonly="readonly"]+label,input[type=datetime-local]:disabled+label,input[type=datetime-local][readonly="readonly"]+label,input[type=tel]:disabled+label,input[type=tel][readonly="readonly"]+label,input[type=number]:disabled+label,input[type=number][readonly="readonly"]+label,input[type=search]:disabled+label,input[type=search][readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.26)}input:not([type]):focus:not([readonly]),input[type=text]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=url]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=search]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #42a5f5;box-shadow:0 1px 0 0 #42a5f5}input:not([type]):focus:not([readonly])+label,input[type=text]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#42a5f5}input:not([type]).valid,input:not([type]):focus.valid,input[type=text].valid,input[type=text]:focus.valid,input[type=password].valid,input[type=password]:focus.valid,input[type=email].valid,input[type=email]:focus.valid,input[type=url].valid,input[type=url]:focus.valid,input[type=time].valid,input[type=time]:focus.valid,input[type=date].valid,input[type=date]:focus.valid,input[type=datetime-local].valid,input[type=datetime-local]:focus.valid,input[type=tel].valid,input[type=tel]:focus.valid,input[type=number].valid,input[type=number]:focus.valid,input[type=search].valid,input[type=search]:focus.valid,textarea.materialize-textarea.valid,textarea.materialize-textarea:focus.valid{border-bottom:1px solid #4caf50;box-shadow:0 1px 0 0 #4caf50}input:not([type]).valid+label:after,input:not([type]):focus.valid+label:after,input[type=text].valid+label:after,input[type=text]:focus.valid+label:after,input[type=password].valid+label:after,input[type=password]:focus.valid+label:after,input[type=email].valid+label:after,input[type=email]:focus.valid+label:after,input[type=url].valid+label:after,input[type=url]:focus.valid+label:after,input[type=time].valid+label:after,input[type=time]:focus.valid+label:after,input[type=date].valid+label:after,input[type=date]:focus.valid+label:after,input[type=datetime-local].valid+label:after,input[type=datetime-local]:focus.valid+label:after,input[type=tel].valid+label:after,input[type=tel]:focus.valid+label:after,input[type=number].valid+label:after,input[type=number]:focus.valid+label:after,input[type=search].valid+label:after,input[type=search]:focus.valid+label:after,textarea.materialize-textarea.valid+label:after,textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4caf50;opacity:1}input:not([type]).invalid,input:not([type]):focus.invalid,input[type=text].invalid,input[type=text]:focus.invalid,input[type=password].invalid,input[type=password]:focus.invalid,input[type=email].invalid,input[type=email]:focus.invalid,input[type=url].invalid,input[type=url]:focus.invalid,input[type=time].invalid,input[type=time]:focus.invalid,input[type=date].invalid,input[type=date]:focus.invalid,input[type=datetime-local].invalid,input[type=datetime-local]:focus.invalid,input[type=tel].invalid,input[type=tel]:focus.invalid,input[type=number].invalid,input[type=number]:focus.invalid,input[type=search].invalid,input[type=search]:focus.invalid,textarea.materialize-textarea.invalid,textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #f44336;box-shadow:0 1px 0 0 #f44336}input:not([type]).invalid+label:after,input:not([type]):focus.invalid+label:after,input[type=text].invalid+label:after,input[type=text]:focus.invalid+label:after,input[type=password].invalid+label:after,input[type=password]:focus.invalid+label:after,input[type=email].invalid+label:after,input[type=email]:focus.invalid+label:after,input[type=url].invalid+label:after,input[type=url]:focus.invalid+label:after,input[type=time].invalid+label:after,input[type=time]:focus.invalid+label:after,input[type=date].invalid+label:after,input[type=date]:focus.invalid+label:after,input[type=datetime-local].invalid+label:after,input[type=datetime-local]:focus.invalid+label:after,input[type=tel].invalid+label:after,input[type=tel]:focus.invalid+label:after,input[type=number].invalid+label:after,input[type=number]:focus.invalid+label:after,input[type=search].invalid+label:after,input[type=search]:focus.invalid+label:after,textarea.materialize-textarea.invalid+label:after,textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#f44336;opacity:1}input:not([type])+label:after,input[type=text]+label:after,input[type=password]+label:after,input[type=email]+label:after,input[type=url]+label:after,input[type=time]+label:after,input[type=date]+label:after,input[type=datetime-local]+label:after,input[type=tel]+label:after,input[type=number]+label:after,input[type=search]+label:after,textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:65px;opacity:0;transition:.2s opacity ease-out,.2s color ease-out}.input-field{position:relative;margin-top:1rem}.input-field label{color:#9e9e9e;position:absolute;top:.8rem;left:.75rem;font-size:1rem;cursor:text;transition:.2s ease-out}.input-field label.active{font-size:.8rem;transform:translateY(-140%)}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;transition:color .2s}.input-field .prefix.active{color:#42a5f5}.input-field .prefix ~ input,.input-field .prefix ~ textarea{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ textarea{padding-top:.8rem}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width:992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width:600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;padding-left:4rem;width:calc(100% - 4rem)}.input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field input[type=search]:focus+label i,.input-field input[type=search]:focus ~ .mdi-navigation-close,.input-field input[type=search]:focus ~ .material-icons{color:#444}.input-field input[type=search]+label{left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{overflow-y:hidden;padding:1.6rem 0;resize:none;min-height:3rem}.hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;left:-9999px;visibility:hidden}[type="radio"]:not(:checked)+label,[type="radio"]:checked+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;transition:.28s ease;-khtml-user-select:none;user-select:none}[type="radio"]+label:before,[type="radio"]+label:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;transition:.28s ease}[type="radio"]:not(:checked)+label:before{border-radius:50%;border:2px solid #5a5a5a}[type="radio"]:not(:checked)+label:after{border-radius:50%;border:2px solid #5a5a5a;z-index:-1;transform:scale(0)}[type="radio"]:checked+label:before{border-radius:50%;border:2px solid transparent}[type="radio"]:checked+label:after{border-radius:50%;border:2px solid #42a5f5;background-color:#42a5f5;z-index:0;transform:scale(1.02)}[type="radio"].with-gap:checked+label:before{border-radius:50%;border:2px solid #42a5f5}[type="radio"].with-gap:checked+label:after{border-radius:50%;border:2px solid #42a5f5;background-color:#42a5f5;z-index:0;transform:scale(0.5)}[type="radio"].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,0.26)}[type="radio"].with-gap:disabled:checked+label:after{border:0;background-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before,[type="radio"]:disabled:checked+label:before{background-color:transparent;border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled+label{color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:checked+label:after{background-color:rgba(0,0,0,0.26);border-color:#bdbdbd}form p{margin-bottom:10px;text-align:left}form p:last-child{margin-bottom:0}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;left:-9999px;visibility:hidden}[type="checkbox"]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type="checkbox"]+label:before{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;transition:.2s}[type="checkbox"]:not(:checked):disabled+label:before{border:0;background-color:rgba(0,0,0,0.26)}[type="checkbox"]:checked+label:before{top:-4px;left:-3px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #42a5f5;border-bottom:2px solid #42a5f5;transform:rotate(40deg);backface-visibility:hidden;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);border-bottom:2px solid rgba(0,0,0,0.26)}[type="checkbox"]:indeterminate+label:before{left:-10px;top:-11px;width:10px;height:22px;border-top:0;border-left:none;border-right:2px solid #42a5f5;border-bottom:0;transform:rotate(90deg);backface-visibility:hidden;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);background-color:transparent}[type="checkbox"].filled-in+label:after{border-radius:2px}[type="checkbox"].filled-in+label:before,[type="checkbox"].filled-in+label:after{content:'';left:0;position:absolute;transition:border .25s,background-color .25s,width .20s .1s,height .20s .1s,top .20s .1s,left .20s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0;z-index:0}[type="checkbox"].filled-in:checked+label:before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+label:after{top:0;width:20px;height:20px;border:2px solid #42a5f5;background-color:#42a5f5;z-index:0}[type="checkbox"].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#bdbdbd}[type="checkbox"].filled-in:disabled:checked+label:before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+label:after{background-color:#bdbdbd;border-color:#bdbdbd}.switch,.switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#c4def2}.switch label input[type=checkbox]:checked+.lever:after{background-color:#42a5f5}.switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;margin-right:10px;transition:background .3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#f1f1f1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,0.4);left:-5px;top:-3px;transition:left .3s ease,background .3s ease,box-shadow .1s ease}input[type=checkbox]:checked:not(:disabled) ~ .lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(66,165,245,0.1)}input[type=checkbox]:not(:disabled) ~ .lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(0,0,0,0.08)}.switch label input[type=checkbox]:checked+.lever:after{left:24px}.switch input[type=checkbox][disabled]+.lever{cursor:default}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#bdbdbd}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:0;border-bottom:1px solid #9e9e9e;outline:0;height:3rem;line-height:3rem;width:100%;font-size:1rem;margin:0 0 15px 0;padding:0;display:block}.select-wrapper span.caret{color:initial;position:absolute;right:0;top:16px;font-size:10px}.select-wrapper span.caret.disabled{color:rgba(0,0,0,0.26)}.select-wrapper+label{position:absolute;top:-14px;font-size:.8rem}select{display:none}select.browser-default{display:block}select:disabled{color:rgba(0,0,0,0.3)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,0.3)}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,0.3);background-color:transparent}.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:not(.optgroup){padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:0;outline:0;width:100%;margin:15px 0;padding:0}input[type=range]+.thumb{position:absolute;border:0;height:0;width:0;border-radius:50%;background-color:#42a5f5;top:10px;margin-left:-6px;transform-origin:50% 50%;transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#42a5f5;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]:focus{outline:0}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:0;height:14px;width:14px;border-radius:50%;background-color:#42a5f5;transform-origin:50% 50%;margin:-5px 0 0 0;transition:.3s}input[type=range]:focus::-webkit-slider-runnable-track{background:#ccc}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#ddd;border:0}input[type=range]::-moz-range-thumb{border:0;height:14px;width:14px;border-radius:50%;background:#42a5f5;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid white;outline-offset:-1px}input[type=range]:focus::-moz-range-track{background:#ccc}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:0;height:14px;width:14px;border-radius:50%;background:#42a5f5}input[type=range]:focus::-ms-fill-lower{background:#888}input[type=range]:focus::-ms-fill-upper{background:#ccc}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:20px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:19px;border-left:1px solid #ea4a4f}.table-of-contents a.active{font-weight:500;padding-left:18px;border-left:2px solid #ea4a4f}.side-nav{position:fixed;width:240px;left:-105%;top:0;margin:0;height:100%;height:calc(100%+60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:left}.side-nav.right-aligned{will-change:right;right:-105%;left:auto}.side-nav .collapsible{margin:0}.side-nav li{float:none;padding:0 15px;line-height:64px}.side-nav li:hover,.side-nav li.active{background-color:#ddd}.side-nav a{color:#444;display:block;font-size:1rem;height:64px;line-height:64px;padding:0 15px}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.side-nav.fixed a{display:block;padding:0 15px;color:#444}.side-nav.fixed{left:0;position:fixed}.side-nav.fixed.right-aligned{right:0;left:auto}@media only screen and (max-width:992px){.side-nav.fixed{left:-105%}.side-nav.fixed.right-aligned{right:-105%;left:auto}}.side-nav .collapsible-body li.active,.side-nav.fixed .collapsible-body li.active{background-color:#64b5f6}.side-nav .collapsible-body li.active a,.side-nav.fixed .collapsible-body li.active a{color:#fff}#sidenav-overlay{position:fixed;top:0;left:0;right:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;will-change:opacity}.preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#42a5f5}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4,0,0.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4,0,0.2,1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4,0,0.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4,0,0.2,1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4,0,0.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4,0,0.2,1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4,0,0.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4,0,0.2,1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4,0,0.2,1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4,0,0.2,1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4,0,0.2,1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4,0,0.2,1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4,0,0.2,1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{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{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4,0,0.2,1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4caf50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;perspective:500px;transform-style:preserve-3d;transform-origin:0 50%}.carousel .carousel-item{width:200px;position:absolute;top:0;left:0}.carousel .carousel-item img{width:100%}.carousel.carousel-slider{top:0;left:0;height:0}.carousel.carousel-slider .carousel-item{width:100%;height:100%;position:absolute;top:0;left:0}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*! * Default mobile-first, responsive styling for pickadate.js * Demo: http://amsul.github.io/pickadate.js - */.picker__holder,.picker__frame{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;-webkit-transition:background .15s ease-out,top 0s .15s;-moz-transition:background .15s ease-out,top 0s .15s;transition:background .15s ease-out,top 0s .15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}@media(min-height:28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media(min-height:40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media(min-height:28.875em){.picker__wrap{display:block}}.picker__box{background:#fff;display:table-cell;vertical-align:middle}@media(min-height:28.875em){.picker__box{display:block;border:1px solid #777;border-top-color:#898989;border-bottom-width:0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;-webkit-box-shadow:0 12px 36px 16px rgba(0,0,0,0.24);-moz-box-shadow:0 12px 36px 16px rgba(0,0,0,0.24);box-shadow:0 12px 36px 16px rgba(0,0,0,0.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,0.32);-webkit-transition:background .15s ease-out;-moz-transition:background .15s ease-out;transition:background .15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"alpha(opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media(min-height:35.875em){.picker--opened .picker__frame{top:10%;bottom:20%auto}}.picker__input.picker__input--active{border-color:#e3f2fd}.picker__frame{margin:0 auto;max-width:325px}@media(min-height:38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#fff;width:40%}.picker__select--year.browser-default{display:inline;background-color:#fff;width:25%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,0.05)}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-0.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:0;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table th,.picker__table td{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media(min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#ddd;font-weight:500}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{cursor:pointer}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;transform:scale(0.75);background:#0089ec;color:#fff}.picker__day--disabled,.picker__day--disabled:hover,.picker--focused .picker__day--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__footer{text-align:center;display:flex;align-items:center;justify-content:space-between}.picker__button--today,.picker__button--clear,.picker__button--close{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:bold;width:33%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover,.picker__button--close:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus,.picker__button--close:focus{background:#b1dcfb;border-color:rgba(0,0,0,0.05);outline:0}.picker__button--today:before,.picker__button--clear:before,.picker__button--close:before{position:relative;display:inline-block;height:0}.picker__button--today:before,.picker__button--clear:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-0.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-0.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-0.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#42a5f5;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000;background:#edf6fc}.picker__weekday-display{background-color:#2095f3;padding:10px;font-weight:200;letter-spacing:.5;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:2rem}.picker__day-display{font-size:4.5rem;font-weight:400}.picker__year-display{font-size:1.8rem;color:rgba(255,255,255,0.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 1rem}.picker__calendar-container thead{border:0}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#42a5f5}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:.9rem}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;transform:scale(0.9);background-color:#42a5f5;color:#fff}.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus,.picker--focused .picker__day--selected.picker__day--outfocus{background-color:#edf6fc}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:1.1rem;padding:0 1rem;color:#42a5f5}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #676767}button.picker__today:focus,button.picker__clear:focus,button.picker__close:focus{background-color:#edf6fc}.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}@media(min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{cursor:pointer;color:#000;background:#b1dcfb}.picker__list-item--selected,.picker__list-item--selected:hover,.picker--focused .picker__list-item--selected{background:#0089ec;color:#fff;z-index:10}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:0;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000;background:#b1dcfb;background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:0}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#fff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media(min-height:40.125em){.picker--time .picker__box{margin-bottom:5em}}* html,body{margin:0!important;padding:0!important;height:100%;width:100%;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;background:no-repeat fixed;line-height:1.5;font-family:"Roboto",sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}*{outline:0}html,body{width:100%;height:100%}body[dir="rtl"] .row .col{float:right}a:hover,a:visited{color:none!important;text-decoration:none!important}a span{vertical-align:middle}div{-webkit-font-smoothing:antialiased}.material-label{display:block}nav ul li a{float:left}.async.checkbox,.async.switch{position:relative;display:inline-block!important}.checkbox .loader-wrapper,.switch .loader-wrapper{position:absolute;background:transparent!important;width:100px}.checkbox .preloader-wrapper.active,.switch .preloader-wrapper.active{margin:auto;width:28px;height:28px;margin-top:-2px!important}.checkbox .preloader-wrapper.active{position:absolute;left:-4px;top:-2px;margin-top:-4px!important}.checkbox.loading label:before,.checkbox.loading label:after{visibility:hidden}.checkbox .loader-wrapper{width:32px;height:32px;margin-left:5px}.checkbox.loading [type="checkbox"].filled-in+label:before,.checkbox.loading [type="checkbox"].filled-in+label:after{display:none}button.async.loading i{-webkit-animation:spin 400ms linear infinite;-moz-animation:spin 400ms linear infinite;animation:spin 400ms linear infinite}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.async.listbox-wrapper .progress-wrapper{top:unset;bottom:-4px}ul.collapsible li.async .valign-wrapper{top:unset;bottom:0}nav ul a span.badge{margin-left:8px!important;float:right;margin-top:22px}.side-nav .badge{float:right;top:22px}.sideBarBadge{height:20px!important;line-height:0!important;padding:10px!important;color:#fff!important;border-radius:3px!important;font-size:.7em!important}.badge.circle{position:absolute;min-width:0!important;border-radius:100%!important;height:24px!important;top:-12px;width:24px;font-size:.6rem!important;text-align:center;padding:0!important;padding-top:12px!important;right:8px}.badge>div:first-child{display:inline}.badge{background:#42a5f5}button.btn-flat:focus{outline:0;background-color:transparent}button.disabled,i.disabled,a.disabled{background-color:#dfdfdf!important;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;color:#9f9f9f!important;cursor:default!important;transition:none!important;pointer-events:none}i.disabled,a.disabled,a.disabled i{color:#9f9f9f!important;background-color:transparent!important}button.disabled:hover,i.disabled:hover{box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important}.disabled:hover{cursor:default!important;box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important}button.btn-outlined,button.btn-outlined:hover,button.btn-outlined:focus,button.btn-outlined:active{border:1px solid #00001e;box-shadow:none;background-color:#fff;color:#000}button.btn-outlined.disabled{background-color:transparent!important}button.btn-ghost,button.btn-ghost:focus{padding:0 20px;border-radius:4px;color:#42a5f5;font-size:1em;font-weight:400;background:0;height:36px;text-transform:uppercase;border:1.6px solid #42a5f5;outline:0;-webkit-transition:all .16s linear;-moz-transition:all .16s linear;-o-transition:all .16s linear;transition:all .16s linear}button.btn-ghost.disabled{border:0}button.btn-ghost:hover,button.btn-ghost:active{background:#42a5f5;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}.breadcrumb i{float:none!important;margin-right:15px}.breadcrumb span{vertical-align:top}.breadcrumb:nth-child(2):before{display:none}.card .card-action a{display:inline-block}.card .card-content .card-title i{margin-top:12px}.landscape .card-action a{margin-left:20px;margin-right:0!important}.landscape .card-action{padding:0;margin-top:8px}.landscape .card-content{width:70%!important;float:left}.landscape .card-image{width:30%!important;float:left}.landscape .card-image img,.horizontal.card{height:120px}.landscape .card-image{padding:0}.input-field input:read-only{pointer-events:none}.input-field label{left:0!important}.input-field label.required:before,.input-field label span.required:before{content:"*";float:right;margin-left:8px;font-size:"1.2em";color:#f44336}.input-field.disabled label.required:before,.input-field.disabled label span.required:before,.input-field.listbox-wrapper label.disabled:before{display:none}.col .input-field label{left:0}.row .col.input-field{min-height:72px;margin-bottom:0}.row .col.input-field textarea{margin-bottom:4px}.row .col.input-field input{margin-bottom:8px}.row>.input-field label{left:.75rem!important}@-webkit-keyframes autofill{to{background:transparent}}.input-field input::-ms-clear{display:none}input:-webkit-autofill+label{font-size:.8rem!important;transform:translateY(-112%)}nav .input-field{height:100%}input:-webkit-autofill{-webkit-animation-name:autofill!important;-webkit-animation-fill-mode:both!important}.input-field.disabled input[type=number]::-webkit-inner-spin-button,.input-field.disabled input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-field.disabled input[type=number]{-moz-appearance:textfield}.input-field.disabled input[type="number"]:focus{color:rgba(0,0,0,0.26);border-bottom:1px dotted rgba(0,0,0,0.26);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.input-field.disabled label{color:rgba(0,0,0,0.26)!important}.input-field.aligned-label input{width:70%;display:inline;position:relative;vertical-align:middle}.input-field.aligned-label label,.input-field.aligned-label label.active{width:30%;display:inline;position:relative;float:left;vertical-align:middle;transform:none;font-size:1em;color:rgba(0,0,0,0.87);top:24px}.input-field.aligned-label .field-error-label,.input-field.aligned-label .field-success-label,.input-field.aligned-label .field-helper-label{padding-left:30%}.input-field.filled input,.input-field.outlined input{padding:12px;padding-top:8px;padding-bottom:8px;box-sizing:border-box}.input-field.filled label,.input-field.outlined label{margin-left:12px}.input-field.filled label:active,.input-field.outlined label:active{margin-left:8px}.input-field.filled .prefix ~ input,.input-field.filled .prefix ~ textarea,.input-field.outlined .prefix ~ input,.input-field.outlined .prefix ~ textarea{margin-left:0;padding-left:56px!important;width:100%}.input-field.filled .prefix,.input-field.outlined .prefix{padding-top:6px;padding-left:8px;color:#757575}.input-field.filled input,.input-field.filled textarea{background:rgba(0,0,0,0.04);border-radius:4px 4px 0 0;padding-top:18px}.input-field.filled.disabled input,.input-field.filled.disabled textarea,.input-field.filled.listbox-wrapper input.select-dropdown[disabled]{background:transparent}.input-field.filled textarea,.input-field.outlined textarea{padding-left:12px;width:calc(100% - 24px);padding-right:12px}.input-field.filled input:focus{background:rgba(0,0,0,0.12)}.input-field.filled label.active{-webkit-transform:translateY(-64%);-moz-transform:translateY(-64%);-ms-transform:translateY(-64%);-o-transform:translateY(-64%);transform:translateY(-64%)}.input-field.filled.listbox-wrapper input.select-dropdown{background:rgba(0,0,0,0.04);border-radius:4px 4px 0 0;padding-left:12px;padding-top:12px}.input-field.filled.listbox-wrapper label{padding-top:14px}.input-field.filled .field-error-label,.input-field.filled .field-success-label,.input-field.filled .field-helper-label{padding-left:12px}.input-field.outlined input,.input-field.outlined input.valid,.input-field.outlined textarea,.input-field.outlined input.select-dropdown{border-radius:4px;border:1px solid rgba(0,0,0,0.12)}.input-field.outlined input.select-dropdown{padding-left:12px}.input-field.outlined .select-wrapper+label{top:-10px;background:white;padding-left:4px;padding-right:4px;margin-left:8px}.input-field.outlined input:focus,.input-field.outlined textarea:focus,.input-field.outlined input.picker__input--active{border:2px solid #42a5f5;box-shadow:none}.input-field.outlined label.active,.input-field.outlined input:-webkit-autofill+label{padding:4px;padding-top:0;padding-bottom:0;background:white;margin-top:4px;margin-left:8px;z-index:1}.modal .input-field.outlined label.active,.modal .input-field.outlined .select-wrapper+label,.modal .input-field.outlined input:-webkit-autofill+label{background-color:#fafafa}.input-field.outlined.field-error input.select-dropdown,.input-field.outlined input.invalid,.input-field.outlined input.invalid:focus,.input-field.outlined textarea.invalid,.input-field.outlined textarea.invalid:focus,.input-field.outlined input.invalid.picker__input--active{border:2px solid #f44336;box-shadow:none;margin-bottom:8px}.input-field.outlined.field-success input.select-dropdown,.input-field.outlined input.valid,.input-field.outlined input.valid:focus,.input-field.outlined textarea.valid,.input-field.outlined textarea.valid:focus,.input-field.outlined input.valid.picker__input--active{border:2px solid #4caf50;box-shadow:none}.input-field.outlined .field-error-label,.input-field.outlined .field-success-label,.input-field.outlined .field-helper-label{margin-left:14px}.input-field.field-error.listbox-wrapper.outlined input.select-dropdown{border:2px solid #f44336}.input-field.aligned-label textarea{width:70%;display:inline-block;position:relative;vertical-align:middle}.input-field.listbox-wrapper input:read-only{pointer-events:initial}.input-field .select-wrapper.gwt-ListBox+label.active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.input-field .select-wrapper.gwt-ListBox .caret:before{content:"";position:absolute;right:8px;bottom:12px;width:0;height:0;border-style:solid;border-width:0 0 12px 12px;border-color:transparent transparent #9c9c9c}.input-field.aligned-label .select-wrapper.gwt-ListBox .caret:before{bottom:26px}.input-field .select-wrapper.gwt-ListBox .caret.disabled:before{border-color:transparent transparent #c7c7c7 transparent}.input-field .select-wrapper.gwt-ListBox .caret.disabled,.input-field .select-wrapper .caret{color:transparent;bottom:0}.input-field.listbox-wrapper{border-bottom:none!important;box-shadow:none!important}.field-error.input-field.listbox-wrapper input.select-dropdown{border-bottom:1px solid #f44336!important;box-shadow:0 1px 0 0 #f44336!important}.field-success.input-field.listbox-wrapper input.select-dropdown{border-bottom:1px solid #4caf50!important;box-shadow:0 1px 0 0 #4caf50!important}.input-field.aligned-label .select-wrapper{width:70%;display:inline-block;position:relative;vertical-align:middle}input.select-dropdown{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.input-field.outlined input:focus,.input-field.outlined textarea:focus,.input-field.outlined input.picker__input--active{border:2px solid #42a5f5;box-shadow:none}.input-field.hoverable-status.listbox-wrapper.field-error .caret,.input-field.hoverable-status.listbox-wrapper.field-success .caret{display:none}blockquote{border-left:5px solid #42a5f5!important}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;left:-9999px}.oldCheckBox input{position:initial!important;opacity:0!important}.oldCheckBox input{position:initial!important;opacity:0!important}.read-only-toggle input:hover{cursor:text;box-shadow:1px 1px #e9e9e9}.read-only input,.read-only textarea{border:none!important;box-shadow:none!important;color:#000!important}.read-only label{top:12px!important;-webkit-transform:translateY(-140%)!important;transform:translateY(-140%)!important;font-size:.8em!important;color:#9e9e9e!important}.read-only .select-wrapper .caret{display:none!important}.input-field input[type=search]+label{left:1rem!important}.input-field input[type=search]{margin-bottom:0;height:100%}.search-result{margin:0;border-top:1px solid #e9e9e9;background-color:#fff;max-height:500px;overflow:auto;z-index:995;position:relative}.search-result a{display:block;border-bottom:1px solid #e9e9e9;padding-left:20px}.search-result a span{margin-left:0}.search-result a:hover,.search-result a.higlighted{background-color:#eee}.search-result a img{width:52px;margin-top:5px;float:left;border-radius:100%;-moz-border-radius:100%;-webkit-border-radius:100%;height:52px}.switch label input[type=checkbox]:checked+.lever.disabled{background-color:#d4d4d4}.secondary-label{color:rgba(0,0,0,0.6)}::-ms-tooltip{display:none}input[type=range]::-ms-fill-lower{background-color:#deddde!important}[type="radio"]:not(:checked)+label,[type="radio"]:checked+label,[type="checkbox"]+label{color:rgba(0,0,0,0.87)}.range-field{padding-top:12px}.no-thumb .range-field .thumb{display:none}input[type=range]{border:0;color:transparent;margin:0!important}input[type=range]::-webkit-slider-thumb{position:relative;z-index:2;transform:translateY(0px)}input[type=range]:hover::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 8px rgba(66,165,245,0.15);-moz-box-shadow:0 0 0 8px rgba(66,165,245,0.15);box-shadow:0 0 0 8px rgba(66,165,245,0.15)}input[type=range]:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 12px rgba(66,165,245,0.15);-moz-box-shadow:0 0 0 12px rgba(66,165,245,0.15);box-shadow:0 0 0 12px rgba(66,165,245,0.15)}input[type=range]::-webkit-slider-runnable-track{background-color:transparent!important;margin-top:-20px}.range-field .progress-container{height:4px;background-color:#e9e9e9;position:relative;z-index:-1;top:-18px}.range-field .progress{background-color:#42a5f5;position:absolute;top:-7px;z-index:1;transition:none!important}input[type=range]::-moz-range-track{border:0;height:0}input[type=range]::-moz-range-thumb{transform:translateY(0px)}input[type=range]:hover::-moz-range-thumb{-webkit-box-shadow:0 0 0 8px rgba(66,165,245,0.2);-moz-box-shadow:0 0 0 8px rgba(66,165,245,0.2);box-shadow:0 0 0 8px rgba(66,165,245,0.2)}input[type=range]:focus::-moz-range-thumb{-webkit-box-shadow:0 0 0 12px rgba(66,165,245,0.2);-moz-box-shadow:0 0 0 12px rgba(66,165,245,0.2);box-shadow:0 0 0 12px rgba(66,165,245,0.2)}input[type=range]::-ms-track{height:32px;position:absolute;background:transparent;border:transparent}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{border:0;height:0;background:transparent}input[type=range]::-ms-thumb{transform:translateY(18px);margin-bottom:22px}input[type=range]:hover::-ms-thumb,input[type=range]:focus::-ms-thumb{-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.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}.chip img{float:left;margin:0 8px 0 -12px;height:32px;width:32 32px;border-radius:50%}.chip i.material-icons{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chip.disabled img{filter:url("data:image/svg+xml;utf8,<svgxmlns='http://www.w3.org/2000/svg'><filterid='grayscale'><feColorMatrixtype='matrix'values='0.33330.33330.3333000.33330.33330.3333000.33330.33330.33330000010'/></filter></svg>#grayscale");-webkit-filter:grayscale(100%)}.chip.outlined,.chip.outlined:hover,.chip.outlined:active,.chip.outlined:focus{border:1px solid #00001e;background-color:transparent}.letter{float:left;margin:0 8px 0 -12px;width:32px;height:32px;border-radius:50%;font-size:1.2em;text-align:center}.outlined.chip .letter{width:30px;height:30px}.chip-container .chip{cursor:pointer}.chip.active{color:#64b5f6;background-color:rgba(100,181,246,0.25);font-weight:bold}.collapsible-body{margin:0;padding:2rem}.collapsible li.active .collapsible-body .input-field label{font-size:.8rem;transform:translateY(-140%)}.collapsible-header>i{font-size:1.4rem!important;line-height:2.5rem!important;width:3rem!important;margin:0!important}ul.collection .collection-item.waves-effect{display:block;padding-bottom:0;will-change:initial}ul.collection .collection-item .secondary-content i{margin-top:-28px}ul.collection .collection-item .gwt-Label,ul.collection .collection-item a:first-child{display:block}ul.collection>li>div>div:first-child{float:left}.striped table tbody tr:nth-child(odd){background-color:#f2f2f2!important}.bordered table tr{border-bottom:1px solid #d0d0d0!important}table .gwt-CheckBox label{margin-bottom:-10px}.hoverable table>tbody>tr:hover{background:#f2f2f2!important;transition:1s all;-webkit-transition:1s all;-moz-transition:1s all}.table-container .top-panel{background:#42a5f5}.tabs .tab a{color:#cbe2f5}.picker__close,.picker__today,.picker__clear{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landscape .picker__frame{margin:0 auto;max-width:585px;width:585px;max-height:350px!important}.landscape .picker__wrap{height:0!important}.landscape .picker__date-display{text-align:center;padding-bottom:15px;font-weight:300;float:left;width:40%;height:342px;clear:both}.landscape .picker__calendar-container{padding:0 1rem;float:left;width:60%}.landscape .picker__footer{text-align:right;padding:5px 10px;width:60%;position:absolute;bottom:0;right:0;top:300px;height:40px}.landscape .picker__box{height:342px}.landscape .picker__month-display{text-transform:uppercase;font-size:2rem;margin-top:78px}.landscape .picker__day--infocus{padding:8px!important;width:36px!important;margin:auto!important}.picker__table .picker__day--outfocus{display:block;color:#ddd}.picker__table td{padding:0!important}.picker .picker__select--year.browser-default{width:26%}.picker__input.picker__input--active{border-bottom:1px solid #42a5f5;box-shadow:0 1px 0 0 #42a5f5}.input-field input.picker__input:read-only{pointer-events:initial}ul.dropdown-content{max-height:70vh!important}ul.dropdown-content li>div{font-size:1.2rem;display:block;padding:1rem 1rem}ul.dropdown-content.disabled{visibility:hidden;display:none}ul.dropdown-content li>a,.dropdown-content li>span{width:100%}ul.dropdown-content a.disabled{color:#e9e9e9!important}ul.dropdown-content a.disabled:hover{background:#fff!important}ul.dropdown-content{z-index:995!important}.field-error,.field-error-picker input{border-bottom:1px solid #f44336!important;box-shadow:0 1px 0 0 #f44336!important}.field-error-label,.field-success-label{color:#f44336!important;font-size:12px;opacity:1!important}.field-success-label{color:#4caf50!important}.field-helper-label{color:#9e9e9e!important;font-size:12px;opacity:1!important}.field-success,.field-success-picker input{border-bottom:1px solid #4caf50!important;box-shadow:0 1px 0 0 #4caf50!important}.input-field.hoverable-status .field-error-label,.input-field.hoverable-status .field-success-label{position:absolute;background:#f44336;color:white!important;min-height:40px;border-radius:4px;padding:12px;margin-right:12px;visibility:hidden;font-size:.9em;box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);z-index:999;max-width:400px;display:inline;min-width:120px;right:0;top:54px}.input-field.hoverable-status .field-success-label{background:#4caf50}.input-field.hoverable-status .field-error-label::before,.input-field.hoverable-status .field-success-label::before{content:"";width:10px;height:12px;border-left:solid 10px transparent;border-right:solid 10px transparent;top:-12px;position:absolute;left:unset;right:12px}.input-field.hoverable-status .field-error-label.left:before{border-bottom:solid 12px #f44336}.input-field.hoverable-status .field-success-label.left:before{border-bottom:solid 12px #4caf50}.input-field.hoverable-status .field-error-label.top:before,.input-field.hoverable-status .field-success-label.top:before{left:unset;right:12px;border-bottom:0;bottom:-12px;top:unset}.input-field.hoverable-status .field-error-label.top:before{border-top:solid 12px #f44336}.input-field.hoverable-status .field-success-label.top:before{border-top:solid 12px #4caf50}.input-field.hoverable-status i.status-icon{position:absolute;top:10px;right:20px;color:#f44336;z-index:1}.input-field.hoverable-status.disabled .status-icon{display:none}.input-field.hoverable-status input.invalid,.input-field.hoverable-status input.valid{padding-right:40px;box-sizing:border-box}.horizontal.fixed-action-btn ul{left:auto}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 0 0}.fixed-action-btn.horizontal ul{text-align:right;right:54px;height:100%;top:-6px;left:initial;width:500px}ul li button.btn-floating{opacity:0}.floatingButtonsItem ul li div{transform:scale(0.4) translateY(40px);-moz-transform:scale(0.4) translateY(40px);-webkit-transform:scale(0.4) translateY(40px);opacity:0;transition:400ms all;-webkit-transition:400ms all;-moz-transition:400ms all;margin-bottom:-10px}.floatingButtonsItem:hover ul li div{transform:scale(1) translateY(0px);-moz-transform:scale(1) translateY(0px);-webkit-transform:scale(1) translateY(0px);opacity:1}.slider .indicators .indicator-item.active{background-color:#42a5f5}footer.fixed{position:fixed;width:100%;bottom:0;padding-top:0!important}.loader-wrapper{width:100%;background:rgba(255,255,255,0.701961);text-align:center;height:100%;position:fixed;z-index:999;top:0;right:0;left:0;bottom:0}.progress-wrapper{top:0;position:fixed;z-index:999;width:100%}.loader-wrapper span.material-label{display:inline;align-items:center;width:100%;position:absolute;margin-top:60px}.modal.fullscreen,.modal.modal-fixed-footer.fullscreen{width:100%;max-height:100%;height:100%;top:0!important}nav button i{line-height:inherit!important}nav .nav-content{position:relative;line-height:normal;width:100%;display:flex}nav .navbar-tall{height:128px}nav .nav-wrapper .side-nav i{display:inline!important;vertical-align:middle}nav.navbar-shrink{height:200px;line-height:64px;top:0;left:0;background-color:#42a5f5}nav .brand-logo img{height:100%;padding:12px}nav.navbar-shrink,nav.navbar-shrink .brand-logo{-webkit-transition:.3s;-moz-transition:.3s;-ms-transition:.3s;-o-transition:.3s;transition:.3s}nav.navbar-shrink .brand-logo{line-height:264px;height:200px}nav.smaller{height:64px}nav.smaller .brand-logo img{width:auto}nav.smaller .brand-logo{line-height:64px;height:64px;font-size:2.1rem}nav .nav-wrapper .collapsible-body{padding:0!important}nav.pinned{z-index:996}.navmenu-permanent,.drag-target{visibility:hidden!important}.progress{background-color:#ebeef1;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;color:#fff;transition:1s all;-webkit-transition:1s all;-moz-transition:1s all}.progress div{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;transition:1s all;-webkit-transition:1s all;-moz-transition:1s all;background-color:#42a5f5}ul.side-nav{padding-bottom:0;height:100%}ul.side-nav li>div{width:100%;margin-left:0!important}ul.side-nav .brand-logo{font-size:2.1rem;border-bottom:1px solid #e9e9e9}ul.side-nav.fixed a,ul.side-nav a{width:100%;display:flex;line-height:normal;align-items:center}ul.side-nav li{padding:0!important}ul.side-nav i{font-size:2em;width:2rem;line-height:inherit}ul.side-nav .sidenav-content i{font-size:1.6em}ul.side-nav .collapsible-header,.side-nav .collapsible-body{padding:0!important;margin:0!important}ul.side-nav .collapsible-body li{overflow:hidden}ul.side-nav .collapsible-body li.active{background-color:#eee!important}ul.side-nav.right-aligned{left:auto!important}.sidenav-content{padding:0 15px}ul.side-nav.card,.side-nav.drawer-with-header{position:absolute}ul.side-nav.card{margin:20px;height:auto;width:232px;padding-bottom:0;top:64px}ul.side-nav.drawer-with-header{top:64px;height:calc(100vh - 64px)}ul.side-nav.push-with-header{background-color:transparent;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;top:64px;height:calc(100vh - 64px)}ul.side-nav.mini,ul.side-nav.mini-with-expand{top:65px;text-align:center;overflow-x:hidden;height:65px}ul.side-nav.mini li div{padding-bottom:10px;padding-top:10px}ul.side-nav.mini li a span{display:none}ul.side-nav .collapsible-body li.active a{color:#444}ul.side-nav.mini-with-expand{left:0!important}ul.side-nav.mini-with-expand.right-aligned{right:0!important;left:inherit!important}ul.side-nav.mini-with-expand.expanded li a span{opacity:1;visibility:visible}ul.side-nav.mini-with-expand li a span{visibility:hidden;opacity:0;transition:.2s all;-webkit-transition:.2s all;-moz-transition:.2s all}#sidenav-overlay{visibility:hidden}.compact.side-nav a{height:32px;line-height:32px}.compact.side-nav li{line-height:32px}.compact.side-nav i{font-size:1.4em!important;margin-left:4px!important}.comfortable.side-nav a{height:40px;line-height:40px}.comfortable.side-nav li{line-height:40px}.comfortable.side-nav i{font-size:1.6em!important;margin-left:4px!important}.splash-screen{position:fixed;top:0;bottom:0;right:0;left:0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;z-index:999}.splash-screen .progress{margin:0;position:absolute;z-index:9999;left:0;bottom:0;height:8px}ul.tabs{overflow:hidden!important}ul.tabs .tab a i{margin-top:12px;padding-left:36%}ul.tabs .tab a span:nth-child(2){float:left}ul.tabs .tab.disabled{opacity:.5}ul.tabs .tab a i,.tabs .tab a span{float:none!important;display:inline-block;vertical-align:top}ul.tabs .tab a i{padding-left:0}.tabs{background:#42a5f5}i[class*="waves-"].material-icons{vertical-align:top;width:initial;height:auto;text-align:center;padding:4px}.materialScaleInitial,.pullInitial{transition:.5s all;-webkit-transition:.5s all;-moz-transition:.5s all}.materialScaleInitial{transform:scale(0);-webkit-transform:scale(0);-moz-transform:scale(0);transform-origin:50% 10%;-webkit-transform-origin:50% 10%;-moz-transform-origin:50% 10%}.materialScale{transform:scale(1);-webkit-transform:scale(1);-moz-transform:scale(1)}.pullInitial{margin-top:500px!important}.pull{margin-top:-150px!important}.fullBackground{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;background-size:contain;background-position:top right;background-repeat:no-repeat}.showPanel{-webkit-transform:scale(1)!important;-ms-transform:scale(1)!important;transform:scale(1)!important}.weatherContainer .card{background-color:initial!important}@media screen and (max-width:992px){header,footer,main{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;width:100%!important}main{padding-bottom:70px!important}.navmenu-permanent,.drag-target,#sidenav-overlay{visibility:visible!important}nav .nav-wrapper{padding:0}nav.pinned{width:100%!important}nav.navbar-shrink .brand-logo img{width:auto}nav.navbar-shrink .brand-logo{left:60px;transform:translateX(0)}.input-field input[type=search]+label{z-index:998!important}.search-result{max-height:400px;overflow:auto}ul.side-nav.fixed,ul.side-nav.card,ul.side-nav.drawer-with-header,ul.side-nav.push-with-header,ul.side-nav.mini{margin:0;top:0!important;left:0;height:100%;background:#fff}ul.side-nav.mini-with-expand{top:56px;height:calc(100vh - 56px)}ul.side-nav.mini{top:55px}ul.side-nav.drawer-with-header{margin-top:0;background:white;-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);-moz-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}ul.side-nav.card{margin:initial;position:fixed}nav ul a span.badge{margin-top:18px}.tabs.tab-icon a span{display:none!important}.tabs .tab a i{margin:auto;margin-top:12px}.card .card-image img{height:auto!important}.responsive-table table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}.responsive-table table th{display:block}.responsive-table table tbody tr{display:inline-block;vertical-align:top}.responsive-table table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}.responsive-table table tbody tr{display:inline-block;vertical-align:top}.responsive-table table td{display:block;min-height:1.25em;text-align:left}.responsive-table>div:nth-child(1){width:20%!important}.responsive-table>div:nth-child(3){top:0!important;left:20%!important;width:80%!important;height:100%!important}.responsive-table table thead{border:0;border-right:1px solid #d0d0d0}.responsive-table table thead tr{display:block;padding:0 10px 0 0}.responsive-table table thead{display:block;float:left}}@media screen and (min-width:993px){ul.side-nav.fixed.right-aligned{right:0!important;left:initial!important}ul.side-nav.right-aligned:not(.drawer){position:fixed;z-index:997}ul.side-nav.fixed{left:0!important}}@media screen and (max-width:768px){.input-field input:not([type]),.input-field input[type=text],.input-field input[type=password],.input-field input[type=email],.input-field input[type=url],.input-field input[type=time],.input-field input[type=date],.input-field input[type=datetime-local],.input-field input[type=tel],.input-field input[type=number],.input-field input[type=search],.input-field textarea.materialize-textarea{font-size:16px}}.multiValueSuggestBox-panel:focus{border-bottom:2px solid #42a5f5!important}.slick-dots li{background:#b1dafb}.slick-dots li.slick-active{background:#42a5f5}ul.select2-results__options[aria-multiselectable="true"] li.select2-results__option:not([role="group"])[aria-selected="true"]:after{border:2px solid #42a5f5;background-color:#42a5f5}.input-field.outlined.combobox .select2-container--open .select2-selection{border:2px solid #42a5f5;box-shadow:none}.input-field.combobox .select2-container--focus .select2-selection{border-bottom:1px solid #42a5f5;box-shadow:0 1px 0 0 #42a5f5}.input-field.outlined.combobox .select2-container--focus .select2-selection{border:2px solid #42a5f5;box-shadow:none}.fileuploader .upload-label{background-color:#42a5f5!important}.fileuploader .upload-label i{background:#fff!important;color:#42a5f5!important}.fileuploader.active{background:#42a5f5!important}.fileuploader.active .upload-label{color:#fff!important}.preview-container .previews .zdrop-info .preview-icon{color:#42a5f5!important}.preview-container .header{background-color:#42a5f5!important}.material-rating{color:#42a5f5}.editorDialogs .modal .btn,.editorDialogs .modal .btn-large,.editorDialogs .modal .btn-large,.note-editor .modal .btn,.note-editor .modal .btn-large,.note-editor .modal .btn-large{background:#42a5f5!important}.editorDialogs .modal .btn-large:hover,.editorDialogs .modal .btn:hover,.editorDialogs .modal .btn-large:hover,.note-editor .modal .btn-large:hover,.note-editor .modal .btn:hover,.note-editor .modal .btn-large:hover,.note-editor .modal .btn.modal-close:hover,.note-editor .modal .modal-close.btn-large:hover,.note-editor .modal .file-field .btn:hover,.note-editor .modal .file-field .btn-large:hover,.note-editor .modal .modal-footer .note-link-btn:hover,.note-editor .modal .modal-footer .note-image-btn:hover{background:#42a5f5!important}button.waves-effect.waves-light.btn.disabled,button.waves-effect.waves-light.disabled.btn-large,button.waves-effect.waves-light.btn.disabled:hover,button.waves-effect.waves-light.disabled.btn-large:hover{background:#dfdfdf!important}.table-of-contents a.active{border-left:2px solid #42a5f5!important}.table-of-contents a:hover{border-left:1px solid #42a5f5!important}.stepper .step.success>div:first-child i,.stepper .step.success .title,.stepper .step.success .description{color:#42a5f5!important}.stepper .step>div:first-child .circle{background:#42a5f5!important}.lolliclock-header{background:#42a5f5!important}.lolliclock-active-button-background{background-color:#42a5f5!important}.lolliclock-button{color:#42a5f5!important}.lolliclock-canvas-bg{fill:#bbdffb!important}.lolliclock-canvas-fg{fill:#42a5f5!important}.lolliclock-canvas line{stroke:white!important}.lolliclock-tick.active,.lolliclock-tick:hover{background-color:#42a5f5!important}.input-field.outlined.timepicker input:focus,.input-field.outlined.timepicker input.valid{border:2px solid #42a5f5;box-shadow:none}.input-field.timepicker input.valid{border-bottom:1px solid #42a5f5;box-shadow:0 1px 0 0 #42a5f5}.tree-item i{color:#42a5f5}.window .window-toolbar{background-color:#42a5f5}.group-toggle-button button.active{background:#42a5f5}.progress-line-bar .progress-item.active{background:#42a5f5}.progress-line-bar{background:#e9e9e9}.timer-progress .fill{background:#42a5f5;-webkit-animation:6s fullw infinite;animation:6s fullw infinite}.timer-progress.bouncing .fill{background:#42a5f5;-webkit-animation:1.5s cubic-bezier(0.08,-0.18,0.91,1.14) barbounce alternate infinite;animation:1.5s cubic-bezier(0.08,-0.18,0.91,1.14) barbounce alternate infinite} \ No newline at end of file + */.picker__holder,.picker__frame{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;-webkit-transition:background .15s ease-out,top 0s .15s;-moz-transition:background .15s ease-out,top 0s .15s;transition:background .15s ease-out,top 0s .15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}@media(min-height:28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media(min-height:40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media(min-height:28.875em){.picker__wrap{display:block}}.picker__box{background:#fff;display:table-cell;vertical-align:middle}@media(min-height:28.875em){.picker__box{display:block;border:1px solid #777;border-top-color:#898989;border-bottom-width:0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;-webkit-box-shadow:0 12px 36px 16px rgba(0,0,0,0.24);-moz-box-shadow:0 12px 36px 16px rgba(0,0,0,0.24);box-shadow:0 12px 36px 16px rgba(0,0,0,0.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,0.32);-webkit-transition:background .15s ease-out;-moz-transition:background .15s ease-out;transition:background .15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"alpha(opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media(min-height:35.875em){.picker--opened .picker__frame{top:10%;bottom:20%auto}}.picker__input.picker__input--active{border-color:#e3f2fd}.picker__frame{margin:0 auto;max-width:325px}@media(min-height:38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#fff;width:40%}.picker__select--year.browser-default{display:inline;background-color:#fff;width:25%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,0.05)}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-0.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:0;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table th,.picker__table td{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media(min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#ddd;font-weight:500}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{cursor:pointer}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;transform:scale(0.75);background:#0089ec;color:#fff}.picker__day--disabled,.picker__day--disabled:hover,.picker--focused .picker__day--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__footer{text-align:center;display:flex;align-items:center;justify-content:space-between}.picker__button--today,.picker__button--clear,.picker__button--close{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:bold;width:33%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover,.picker__button--close:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus,.picker__button--close:focus{background:#b1dcfb;border-color:rgba(0,0,0,0.05);outline:0}.picker__button--today:before,.picker__button--clear:before,.picker__button--close:before{position:relative;display:inline-block;height:0}.picker__button--today:before,.picker__button--clear:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-0.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-0.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-0.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#42a5f5;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000;background:#edf6fc}.picker__weekday-display{background-color:#2095f3;padding:10px;font-weight:200;letter-spacing:.5;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:2rem}.picker__day-display{font-size:4.5rem;font-weight:400}.picker__year-display{font-size:1.8rem;color:rgba(255,255,255,0.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 1rem}.picker__calendar-container thead{border:0}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#42a5f5}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:.9rem}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;transform:scale(0.9);background-color:#42a5f5;color:#fff}.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus,.picker--focused .picker__day--selected.picker__day--outfocus{background-color:#edf6fc}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:1.1rem;padding:0 1rem;color:#42a5f5}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #676767}button.picker__today:focus,button.picker__clear:focus,button.picker__close:focus{background-color:#edf6fc}.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}@media(min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{cursor:pointer;color:#000;background:#b1dcfb}.picker__list-item--selected,.picker__list-item--selected:hover,.picker--focused .picker__list-item--selected{background:#0089ec;color:#fff;z-index:10}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:0;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000;background:#b1dcfb;background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:0}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#fff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media(min-height:40.125em){.picker--time .picker__box{margin-bottom:5em}}* html,body{margin:0!important;padding:0!important;height:100%;width:100%;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;background:no-repeat fixed;line-height:1.5;font-family:sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}*{outline:0}html,body{width:100%;height:100%}body[dir="rtl"] .row .col{float:right}a:hover,a:visited{color:none!important;text-decoration:none!important}a span{vertical-align:middle}div{-webkit-font-smoothing:antialiased}.material-label{display:block}nav ul li a{float:left}.js-focus-visible :focus:not(.focus-visible){outline:0}.button-collapse[tabindex],i[tabindex],button[tabindex],.tabs .tab a[tabindex]{overflow:hidden;position:relative}i[tabindex]{overflow:visible}i[tabindex]:hover:after{opacity:1;width:32px;height:32px;top:calc(50% - 17px);left:calc(50% - 16px)}.button-collapse[tabindex]:after,i[tabindex]:after,.tabs .tab a[tabindex]:before,button[tabindex]:before{content:"";position:absolute;background:rgba(0,0,0,0.2);border-radius:100%!important;width:0;height:0;top:50%;left:50%;-webkit-animation:breathing 1.5s ease-out infinite normal;animation:breathing 1.5s ease-out infinite normal;opacity:0;transition:400ms}.button-collapse.focus-visible:after,i.focus-visible:after,button.focus-visible:before,.tabs .tab a.focus-visible:before{opacity:1;width:100px;height:100px;top:calc(50% - 50px);left:calc(50% - 50px)}button.btn-floating.focus-visible:before{width:48px;height:48px;top:calc(50% - 24px);left:calc(50% - 24px)}i.focus-visible:after{width:32px;height:32px;top:calc(50% - 17px);left:calc(50% - 16px)}.button-collapse.focus-visible:before,nav .nav-wrapper i.focus-visible:after{width:40px;height:40px;top:calc(50% - 20px);left:calc(50% - 20px)}.checkbox.gwt-CheckBox.focus-visible,.checkbox.gwt-CheckBox:hover{position:relative}.checkbox.gwt-CheckBox:after{opacity:0;transition:200ms;transform:scale(0);content:"";width:36px;height:36px;background:rgba(0,0,0,0.1);position:absolute;left:-8px;top:-8px;border-radius:100%;z-index:-1}.checkbox.gwt-CheckBox.focus-visible:after,.checkbox.gwt-CheckBox:hover:after{transform:scale(1);opacity:1}.checkbox.col.gwt-CheckBox:after{left:3px}.gwt-RadioButton:not(.gwt-RadioButton-disabled).focus-visible label:before,.gwt-RadioButton:not(.gwt-RadioButton-disabled):hover label:before{-webkit-box-shadow:0 0 0 8px rgba(0,0,0,0.1);box-shadow:0 0 0 8px rgba(0,0,0,0.1)}.switch.focus-visible input[type=checkbox]:checked:not(:disabled) ~ .lever:after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(66,165,245,0.15)}.switch.focus-visible input[type=checkbox]:not(:disabled) ~ .lever:after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(0,0,0,0.08)}input[type=range].focus-visible::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 12px rgba(66,165,245,0.15);-moz-box-shadow:0 0 0 12px rgba(66,165,245,0.15);box-shadow:0 0 0 12px rgba(66,165,245,0.15)}input[type=range].focus-visible::-moz-range-thumb{-webkit-box-shadow:0 0 0 12px rgba(66,165,245,0.15);-moz-box-shadow:0 0 0 12px rgba(66,165,245,0.15);box-shadow:0 0 0 12px rgba(66,165,245,0.15)}input[type=range]:hover::-ms-thumb,input[type=range].focus-visible::-ms-thumb{-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.breadcrumb.focus-visible i:only-child{border-bottom:1px solid}.breadcrumb.focus-visible span{border-bottom:1px solid}.chip.focus-visible{color:rgba(0,0,0,0.6);background-color:#c8c8c8}.side-nav li a.focus-visible{background:#e9e9e9}.collapsible-header:hover,.collapsible-header.focus-visible{background-color:#eee}.collection-item.focus-visible{background-color:#eee}.search-result a.focus-visible{background-color:#eee}.async.checkbox,.async.switch{position:relative;display:inline-block!important}.checkbox .loader-wrapper,.switch .loader-wrapper{position:absolute;background:transparent!important;width:100px}.checkbox .preloader-wrapper.active,.switch .preloader-wrapper.active{margin:auto;width:28px;height:28px;margin-top:-2px!important}.checkbox .preloader-wrapper.active{position:absolute;left:-4px;top:-2px;margin-top:-4px!important}.checkbox.loading label:before,.checkbox.loading label:after{visibility:hidden}.checkbox .loader-wrapper{width:32px;height:32px;margin-left:5px}.checkbox.loading [type="checkbox"].filled-in+label:before,.checkbox.loading [type="checkbox"].filled-in+label:after{display:none}button.async.loading i{-webkit-animation:spin 400ms linear infinite;-moz-animation:spin 400ms linear infinite;animation:spin 400ms linear infinite}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.async.listbox-wrapper .progress-wrapper{top:unset;bottom:-4px}ul.collapsible li.async .valign-wrapper{top:unset;bottom:0}nav ul a span.badge{margin-left:8px!important;float:right;margin-top:22px}.side-nav span.badge{float:right;top:22px;height:20px!important;line-height:0!important;padding:10px!important;color:#fff!important;border-radius:3px!important;font-size:.7em!important}span.badge.circle{position:absolute;min-width:0;border-radius:100%;height:24px;top:-12px;width:24px;font-size:.6rem;text-align:center;padding:12px 0 0;right:8px}span.badge>div:first-child{display:inline}nav ul a span.badge:not(.circle){line-height:22px}span.badge{background:#42a5f5}button.btn-flat:focus{outline:0;background-color:transparent}button.disabled,i.disabled,a.disabled{background-color:#dfdfdf!important;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;color:#9f9f9f!important;cursor:default!important;transition:none!important;pointer-events:none}i.disabled,a.disabled,a.disabled i{color:#9f9f9f!important;background-color:transparent!important}button.disabled:hover,i.disabled:hover{box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important}.disabled:hover{cursor:default!important;box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important}button.btn-outlined,button.btn-outlined:hover,button.btn-outlined:focus,button.btn-outlined:active{border:1px solid #00001e;box-shadow:none;background-color:#fff;color:#000}button.btn-outlined.disabled{background-color:transparent!important}button.btn-ghost,button.btn-ghost:focus{padding:0 20px;border-radius:4px;color:#42a5f5;font-size:1em;font-weight:400;background:0;height:36px;text-transform:uppercase;border:1.6px solid #42a5f5;outline:0;-webkit-transition:all .16s linear;-moz-transition:all .16s linear;-o-transition:all .16s linear;transition:all .16s linear}button.btn-ghost.disabled{border:0}button.btn-ghost:hover,button.btn-ghost:active{background:#42a5f5;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}.breadcrumb i{float:none!important;margin-right:15px}.breadcrumb span{vertical-align:top}.breadcrumb:nth-child(2):before{display:none}.card .card-action a{display:inline-block}.card .card-content .card-title i{margin-top:12px}.landscape .card-action a{margin-left:20px;margin-right:0!important}.landscape .card-action{padding:0;margin-top:8px}.landscape .card-content{width:70%!important;float:left}.landscape .card-image{width:30%!important;float:left}.landscape .card-image img,.horizontal.card{height:120px}.landscape .card-image{padding:0}.input-field input:read-only{pointer-events:none}.input-field label{left:0!important}.input-field label.required:before,.input-field label span.required:before{content:"*";float:right;margin-left:8px;font-size:"1.2em";color:#f44336}.input-field.disabled label.required:before,.input-field.disabled label span.required:before,.input-field.listbox-wrapper label.disabled:before{display:none}.col .input-field label{left:0}.row .col.input-field{min-height:72px;margin-bottom:0}.row .col.input-field textarea{margin-bottom:4px}.row .col.input-field input{margin-bottom:8px}.row>.input-field label{left:.75rem!important}@-webkit-keyframes autofill{to{background:transparent}}.input-field input::-ms-clear{display:none}input:-webkit-autofill+label{font-size:.8rem!important;transform:translateY(-112%)}nav .input-field{height:100%}input:-webkit-autofill{-webkit-animation-name:autofill!important;-webkit-animation-fill-mode:both!important}.input-field.disabled input[type=number]::-webkit-inner-spin-button,.input-field.disabled input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-field.disabled input[type=number]{-moz-appearance:textfield}.input-field.disabled input[type="number"]:focus{color:rgba(0,0,0,0.26);border-bottom:1px dotted rgba(0,0,0,0.26);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.input-field.disabled label{color:rgba(0,0,0,0.6)!important}.input-field.aligned-label input{width:70%;display:inline;position:relative;vertical-align:middle}.input-field.aligned-label label,.input-field.aligned-label label.active{width:30%;display:inline;position:relative;float:left;vertical-align:middle;transform:none;font-size:1em;color:rgba(0,0,0,0.87);top:24px}.input-field.aligned-label .field-error-label,.input-field.aligned-label .field-success-label,.input-field.aligned-label .field-helper-label{padding-left:30%}.input-field.filled input,.input-field.outlined input{padding:12px;padding-top:8px;padding-bottom:8px;box-sizing:border-box}.input-field.filled label,.input-field.outlined label{margin-left:12px}.input-field.filled label:active,.input-field.outlined label:active{margin-left:8px}.input-field.filled .prefix ~ input,.input-field.filled .prefix ~ textarea,.input-field.outlined .prefix ~ input,.input-field.outlined .prefix ~ textarea{margin-left:0;padding-left:56px!important;width:100%}.input-field.filled .prefix,.input-field.outlined .prefix{padding-top:6px;padding-left:8px;color:#757575}.input-field.filled input,.input-field.filled textarea{background:rgba(0,0,0,0.04);border-radius:4px 4px 0 0;padding-top:18px}.input-field.filled.disabled input,.input-field.filled.disabled textarea,.input-field.filled.listbox-wrapper input.select-dropdown[disabled]{background:transparent}.input-field.filled textarea,.input-field.outlined textarea{padding-left:12px;width:calc(100% - 24px);padding-right:12px}.input-field.filled input:focus{background:rgba(0,0,0,0.12)}.input-field.filled label.active{-webkit-transform:translateY(-64%);-moz-transform:translateY(-64%);-ms-transform:translateY(-64%);-o-transform:translateY(-64%);transform:translateY(-64%)}.input-field.filled.listbox-wrapper input.select-dropdown{background:rgba(0,0,0,0.04);border-radius:4px 4px 0 0;padding-left:12px;padding-top:12px}.input-field.filled.listbox-wrapper label{padding-top:14px}.input-field.filled .field-error-label,.input-field.filled .field-success-label,.input-field.filled .field-helper-label{padding-left:12px}.input-field.outlined input,.input-field.outlined input.valid,.input-field.outlined textarea,.input-field.outlined input.select-dropdown{border-radius:4px;border:1px solid rgba(0,0,0,0.12)}.input-field.outlined input.select-dropdown{padding-left:12px}.input-field.outlined .select-wrapper+label{top:-10px;background:white;padding-left:4px;padding-right:4px;margin-left:8px}.input-field.outlined input:focus,.input-field.outlined textarea:focus,.input-field.outlined input.picker__input--active{border:2px solid #42a5f5;box-shadow:none}.input-field.outlined label.active,.input-field.outlined input:-webkit-autofill+label{padding:4px;padding-top:0;padding-bottom:0;background:white;margin-top:4px;margin-left:8px;z-index:1}.modal .input-field.outlined label.active,.modal .input-field.outlined .select-wrapper+label,.modal .input-field.outlined input:-webkit-autofill+label{background-color:#fafafa}.input-field.outlined.field-error input.select-dropdown,.input-field.outlined input.invalid,.input-field.outlined input.invalid:focus,.input-field.outlined textarea.invalid,.input-field.outlined textarea.invalid:focus,.input-field.outlined input.invalid.picker__input--active{border:2px solid #f44336;box-shadow:none;margin-bottom:8px}.input-field.outlined.field-success input.select-dropdown,.input-field.outlined input.valid,.input-field.outlined input.valid:focus,.input-field.outlined textarea.valid,.input-field.outlined textarea.valid:focus,.input-field.outlined input.valid.picker__input--active{border:2px solid #4caf50;box-shadow:none}.input-field.outlined .field-error-label,.input-field.outlined .field-success-label,.input-field.outlined .field-helper-label{margin-left:14px}.input-field.field-error.listbox-wrapper.outlined input.select-dropdown{border:2px solid #f44336}.input-field.aligned-label textarea{width:70%;display:inline-block;position:relative;vertical-align:middle}.input-field.listbox-wrapper input:read-only{pointer-events:initial}.input-field .select-wrapper.gwt-ListBox+label.active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.input-field .select-wrapper.gwt-ListBox .caret:before{content:"";position:absolute;right:8px;bottom:12px;width:0;height:0;border-style:solid;border-width:0 0 12px 12px;border-color:transparent transparent #9c9c9c}.input-field.aligned-label .select-wrapper.gwt-ListBox .caret:before{bottom:26px}.input-field .select-wrapper.gwt-ListBox .caret.disabled:before{border-color:transparent transparent #c7c7c7 transparent}.input-field .select-wrapper.gwt-ListBox .caret.disabled,.input-field .select-wrapper .caret{color:transparent;bottom:0}.input-field.listbox-wrapper{border-bottom:none!important;box-shadow:none!important}.field-error.input-field.listbox-wrapper input.select-dropdown{border-bottom:1px solid #f44336!important;box-shadow:0 1px 0 0 #f44336!important}.field-success.input-field.listbox-wrapper input.select-dropdown{border-bottom:1px solid #4caf50!important;box-shadow:0 1px 0 0 #4caf50!important}.input-field.aligned-label .select-wrapper{width:70%;display:inline-block;position:relative;vertical-align:middle}input.select-dropdown{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.input-field.outlined input:focus,.input-field.outlined textarea:focus,.input-field.outlined input.picker__input--active{border:2px solid #42a5f5;box-shadow:none}.input-field.hoverable-status.listbox-wrapper.field-error .caret,.input-field.hoverable-status.listbox-wrapper.field-success .caret{display:none}blockquote{border-left:5px solid #42a5f5!important}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;left:-9999px}.oldCheckBox input{position:initial!important;opacity:0!important}.oldCheckBox input{position:initial!important;opacity:0!important}.checkbox{margin-bottom:20px}.read-only-toggle input:hover{cursor:text;box-shadow:1px 1px #e9e9e9}.read-only input,.read-only textarea{border:none!important;box-shadow:none!important;color:#000!important}.read-only label{top:12px!important;-webkit-transform:translateY(-140%)!important;transform:translateY(-140%)!important;font-size:.8em!important;color:#9e9e9e!important}.read-only .select-wrapper .caret{display:none!important}.input-field input[type=search]+label{left:1rem!important}.input-field input[type=search]{margin-bottom:0;height:100%}.search-result{margin:0;border-top:1px solid #e9e9e9;background-color:#fff;max-height:500px;overflow:auto;z-index:995;position:relative}.search-result a{display:block;border-bottom:1px solid #e9e9e9;padding-left:20px}.search-result a span{margin-left:0}.search-result a:hover,.search-result a.higlighted{background-color:#eee}.search-result a img{width:52px;margin-top:5px;float:left;border-radius:100%;-moz-border-radius:100%;-webkit-border-radius:100%;height:52px}.switch label input[type=checkbox]:checked+.lever.disabled{background-color:#d4d4d4}::-ms-tooltip{display:none}input[type=range]::-ms-fill-lower{background-color:#deddde!important}.range-field{padding-top:12px}.no-thumb .range-field .thumb{display:none}input[type=range]{border:0;color:transparent;margin:0!important}input[type=range]::-webkit-slider-thumb{position:relative;z-index:2;transform:translateY(0px)}input[type=range]:hover::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 8px rgba(66,165,245,0.15);-moz-box-shadow:0 0 0 8px rgba(66,165,245,0.15);box-shadow:0 0 0 8px rgba(66,165,245,0.15)}input[type=range]::-webkit-slider-runnable-track{background-color:transparent!important;margin-top:-20px}.range-field .progress-container{height:4px;background-color:#e9e9e9;position:relative;z-index:-1;top:-18px}.range-field .progress{background-color:#42a5f5;position:absolute;top:-7px;z-index:1;transition:none!important}input[type=range]::-moz-range-track{border:0;height:0}input[type=range]::-moz-range-thumb{transform:translateY(0px)}input[type=range]:hover::-moz-range-thumb{-webkit-box-shadow:0 0 0 8px rgba(66,165,245,0.2);-moz-box-shadow:0 0 0 8px rgba(66,165,245,0.2);box-shadow:0 0 0 8px rgba(66,165,245,0.2)}input[type=range]::-ms-track{height:32px;position:absolute;background:transparent;border:transparent}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{border:0;height:0;background:transparent}input[type=range]::-ms-thumb{transform:translateY(18px);margin-bottom:22px}.copy-command{position:absolute;top:8px;right:-20px;z-index:998}.copy-command-parent:hover i.copy-command.on-readonly-hover,.copy-command-parent:hover i.copy-command.on-always-hover{opacity:1}i.copy-command.on-readonly-hover,i.copy-command.on-always-hover{opacity:0;transition:400ms}i[tabindex].copy-command{position:absolute;top:8px;right:12px;z-index:999}@media screen and (max-width:900px){i.copy-command.on-readonly-hover,i.copy-command.on-always-hover{opacity:1}}.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}.chip img{float:left;margin:0 8px 0 -12px;height:32px;width:32 32px;border-radius:50%}.chip i.material-icons{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chip.disabled img{filter:url("data:image/svg+xml;utf8,<svgxmlns='http://www.w3.org/2000/svg'><filterid='grayscale'><feColorMatrixtype='matrix'values='0.33330.33330.3333000.33330.33330.3333000.33330.33330.33330000010'/></filter></svg>#grayscale");-webkit-filter:grayscale(100%)}.chip.outlined,.chip.outlined:hover,.chip.outlined:active,.chip.outlined:focus{border:1px solid #00001e;background-color:transparent}.letter{float:left;margin:0 8px 0 -12px;width:32px;height:32px;border-radius:50%;font-size:1.2em;text-align:center}.outlined.chip .letter{width:30px;height:30px}.chip-container .chip{cursor:pointer}.chip.active{color:#64b5f6;background-color:rgba(100,181,246,0.25);font-weight:bold}.collapsible-body{margin:0;padding:2rem}.collapsible li.active .collapsible-body .input-field label{font-size:.8rem;transform:translateY(-140%)}.collapsible-header>i{font-size:1.4rem!important;line-height:2.5rem!important;width:3rem!important;margin:0!important}ul.collection .collection-item.waves-effect{display:block;padding-bottom:0;will-change:initial}ul.collection .collection-item .secondary-content i{margin-top:-28px}ul.collection .collection-item .gwt-Label,ul.collection .collection-item a:first-child{display:block}ul.collection>li>div>div:first-child{float:left}.striped table tbody tr:nth-child(odd){background-color:#f2f2f2!important}.bordered table tr{border-bottom:1px solid #d0d0d0!important}table .gwt-CheckBox label{margin-bottom:-10px}.hoverable table>tbody>tr:hover{background:#f2f2f2!important;transition:1s all;-webkit-transition:1s all;-moz-transition:1s all}.table-container .top-panel{background:#42a5f5}.tabs .tab a{color:#cbe2f5}.picker__close,.picker__today,.picker__clear{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landscape .picker__frame{margin:0 auto;max-width:585px;width:585px;max-height:350px!important}.landscape .picker__wrap{height:0!important}.landscape .picker__date-display{text-align:center;padding-bottom:15px;font-weight:300;float:left;width:40%;height:342px;clear:both}.landscape .picker__calendar-container{padding:0 1rem;float:left;width:60%}.landscape .picker__footer{text-align:right;padding:5px 10px;width:60%;position:absolute;bottom:0;right:0;top:300px;height:40px}.landscape .picker__box{height:342px}.landscape .picker__month-display{text-transform:uppercase;font-size:2rem;margin-top:78px}.landscape .picker__day--infocus{padding:8px!important;width:36px!important;margin:auto!important}.picker__table .picker__day--outfocus{display:block;color:#ddd}.picker__table td{padding:0!important}.picker .picker__select--year.browser-default{width:26%}.picker__input.picker__input--active{border-bottom:1px solid #42a5f5;box-shadow:0 1px 0 0 #42a5f5}.input-field input.picker__input:read-only{pointer-events:initial}ul.dropdown-content{max-height:70vh!important}ul.dropdown-content li>div{font-size:1.2rem;display:block;padding:1rem 1rem}ul.dropdown-content.disabled{visibility:hidden;display:none}ul.dropdown-content li>a,.dropdown-content li>span{width:100%}ul.dropdown-content a.disabled{color:#e9e9e9!important}ul.dropdown-content a.disabled:hover{background:#fff!important}ul.dropdown-content{z-index:995!important}.field-error,.field-error-picker input{border-bottom:1px solid #f44336!important;box-shadow:0 1px 0 0 #f44336!important}.field-error-label,.field-success-label{color:#f44336!important;font-size:12px;opacity:1!important}.field-success-label{color:#4caf50!important}.field-helper-label{color:#9e9e9e!important;font-size:12px;opacity:1!important}.field-success,.field-success-picker input{border-bottom:1px solid #4caf50!important;box-shadow:0 1px 0 0 #4caf50!important}.input-field.hoverable-status .field-error-label,.input-field.hoverable-status .field-success-label{position:absolute;background:#f44336;color:white!important;min-height:40px;border-radius:4px;padding:12px;margin-right:12px;visibility:hidden;font-size:.9em;box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);z-index:999;max-width:400px;display:inline;min-width:120px;right:0;top:54px}.input-field.hoverable-status .field-success-label{background:#4caf50}.input-field.hoverable-status .field-error-label::before,.input-field.hoverable-status .field-success-label::before{content:"";width:10px;height:12px;border-left:solid 10px transparent;border-right:solid 10px transparent;top:-12px;position:absolute;left:unset;right:12px}.input-field.hoverable-status .field-error-label.left:before{border-bottom:solid 12px #f44336}.input-field.hoverable-status .field-success-label.left:before{border-bottom:solid 12px #4caf50}.input-field.hoverable-status .field-error-label.top:before,.input-field.hoverable-status .field-success-label.top:before{left:unset;right:12px;border-bottom:0;bottom:-12px;top:unset}.input-field.hoverable-status .field-error-label.top:before{border-top:solid 12px #f44336}.input-field.hoverable-status .field-success-label.top:before{border-top:solid 12px #4caf50}.input-field.hoverable-status i.status-icon{position:absolute;top:10px;right:20px;color:#f44336;z-index:1}.input-field.hoverable-status.disabled .status-icon{display:none}.input-field.hoverable-status input.invalid,.input-field.hoverable-status input.valid{padding-right:40px;box-sizing:border-box}.horizontal.fixed-action-btn ul{left:auto}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 0 0}.fixed-action-btn.horizontal ul{text-align:right;right:54px;height:100%;top:-6px;left:initial;width:500px}ul li button.btn-floating{opacity:0}.floatingButtonsItem ul li div{transform:scale(0.4) translateY(40px);-moz-transform:scale(0.4) translateY(40px);-webkit-transform:scale(0.4) translateY(40px);opacity:0;transition:400ms all;-webkit-transition:400ms all;-moz-transition:400ms all;margin-bottom:-10px}.floatingButtonsItem:hover ul li div{transform:scale(1) translateY(0px);-moz-transform:scale(1) translateY(0px);-webkit-transform:scale(1) translateY(0px);opacity:1}.slider .indicators .indicator-item.active{background-color:#42a5f5}footer.fixed{position:fixed;width:100%;bottom:0;padding-top:0!important}.loader-wrapper{width:100%;background:rgba(255,255,255,0.701961);text-align:center;height:100%;position:fixed;z-index:999;top:0;right:0;left:0;bottom:0}.progress-wrapper{top:0;position:fixed;z-index:999;width:100%}.loader-wrapper span.material-label{display:inline;align-items:center;width:100%;position:absolute;margin-top:60px}.modal.fullscreen,.modal.modal-fixed-footer.fullscreen{width:100%;max-height:100%;height:100%;top:0!important}nav button i{line-height:inherit!important}nav .nav-content{position:relative;line-height:normal;width:100%;display:flex}nav .navbar-tall{height:128px}nav .nav-wrapper .side-nav i{display:inline!important;vertical-align:middle}nav.navbar-shrink{height:200px;line-height:64px;top:0;left:0;background-color:#42a5f5}nav .brand-logo img{height:100%;padding:12px}nav.navbar-shrink,nav.navbar-shrink .brand-logo{-webkit-transition:.3s;-moz-transition:.3s;-ms-transition:.3s;-o-transition:.3s;transition:.3s}nav.navbar-shrink .brand-logo{line-height:264px;height:200px}nav.smaller{height:64px}nav.smaller .brand-logo img{width:auto}nav.smaller .brand-logo{line-height:64px;height:64px;font-size:2.1rem}nav .nav-wrapper .collapsible-body{padding:0!important}nav.pinned{z-index:996}.navmenu-permanent,.drag-target{visibility:hidden!important}.progress{background-color:#ebeef1;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;color:#fff;transition:1s all;-webkit-transition:1s all;-moz-transition:1s all}.progress div{border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;transition:1s all;-webkit-transition:1s all;-moz-transition:1s all;background-color:#42a5f5}ul.side-nav{padding-bottom:0;height:100%}ul.side-nav li>div{width:100%;margin-left:0!important}ul.side-nav .brand-logo{font-size:2.1rem;border-bottom:1px solid #e9e9e9}ul.side-nav.fixed a,ul.side-nav a{width:100%;display:flex;line-height:normal;align-items:center}ul.side-nav li{padding:0!important}ul.side-nav i{font-size:2em;width:2rem;line-height:inherit}ul.side-nav .sidenav-content i{font-size:1.6em}ul.side-nav .collapsible-header,.side-nav .collapsible-body{padding:0!important;margin:0!important}ul.side-nav .collapsible-body li{overflow:hidden}ul.side-nav .collapsible-body li.active{background-color:#eee!important}.side-nav li:hover,.side-nav li.active{background-color:rgba(100,181,246,0.1)}.side-nav li:hover a,.side-nav li.active a{color:#64b5f6}ul.side-nav.right-aligned{left:auto!important}.sidenav-content{padding:0 15px}ul.side-nav.card,.side-nav.drawer-with-header{position:absolute}ul.side-nav.card{margin:20px;height:auto;width:232px;padding-bottom:0;top:64px}ul.side-nav.drawer-with-header{top:64px;height:calc(100vh - 64px)}ul.side-nav.push-with-header{background-color:transparent;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;top:64px;height:calc(100vh - 64px)}ul.side-nav.mini,ul.side-nav.mini-with-expand{top:65px;text-align:center;overflow-x:hidden;height:65px}ul.side-nav.mini li div{padding-bottom:10px;padding-top:10px}ul.side-nav.mini li a span{display:none}ul.side-nav .collapsible-body li.active a{color:#444}ul.side-nav.mini-with-expand{left:0!important}ul.side-nav.mini-with-expand.right-aligned{right:0!important;left:inherit!important}ul.side-nav.mini-with-expand.expanded li a span{opacity:1;visibility:visible}ul.side-nav.mini-with-expand li a span{visibility:hidden;opacity:0;transition:.2s all;-webkit-transition:.2s all;-moz-transition:.2s all}#sidenav-overlay{visibility:hidden}.compact.side-nav a{height:32px;line-height:32px}.compact.side-nav li{line-height:32px}.compact.side-nav i{font-size:1.4em!important;margin-left:4px!important}.comfortable.side-nav a{height:40px;line-height:40px}.comfortable.side-nav li{line-height:40px}.comfortable.side-nav i{font-size:1.6em!important;margin-left:4px!important}.splash-screen{position:fixed;top:0;bottom:0;right:0;left:0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;z-index:999}.splash-screen .progress{margin:0;position:absolute;z-index:9999;left:0;bottom:0;height:8px}ul.tabs{overflow:hidden!important}ul.tabs .tab a i{margin-top:12px;padding-left:36%}ul.tabs .tab a span:nth-child(2){float:left}ul.tabs .tab.disabled{opacity:.5}ul.tabs .tab a i,.tabs .tab a span{float:none!important;display:inline-block;vertical-align:top}ul.tabs .tab a i{padding-left:0}.tabs{background:#42a5f5}i[class*="waves-"].material-icons{vertical-align:top;width:initial;height:auto;text-align:center;padding:4px}.materialScaleInitial,.pullInitial{transition:.5s all;-webkit-transition:.5s all;-moz-transition:.5s all}.materialScaleInitial{transform:scale(0);-webkit-transform:scale(0);-moz-transform:scale(0);transform-origin:50% 10%;-webkit-transform-origin:50% 10%;-moz-transform-origin:50% 10%}.materialScale{transform:scale(1);-webkit-transform:scale(1);-moz-transform:scale(1)}.pullInitial{margin-top:500px!important}.pull{margin-top:-150px!important}.fullBackground{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;background-size:contain;background-position:top right;background-repeat:no-repeat}.showPanel{-webkit-transform:scale(1)!important;-ms-transform:scale(1)!important;transform:scale(1)!important}.weatherContainer .card{background-color:initial!important}@media screen and (max-width:992px){header,footer,main{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;width:100%!important}main{padding-bottom:70px!important}.navmenu-permanent,.drag-target,#sidenav-overlay{visibility:visible!important}nav .nav-wrapper{padding:0}nav.pinned{width:100%!important}nav.navbar-shrink .brand-logo img{width:auto}nav.navbar-shrink .brand-logo{left:60px;transform:translateX(0)}.input-field input[type=search]+label{z-index:998!important}.search-result{max-height:400px;overflow:auto}ul.side-nav.fixed,ul.side-nav.card,ul.side-nav.drawer-with-header,ul.side-nav.push-with-header,ul.side-nav.mini{margin:0;top:0!important;left:0;height:100%;background:#fff}ul.side-nav.mini-with-expand{top:56px;height:calc(100vh - 56px)}ul.side-nav.mini{top:55px}ul.side-nav.drawer-with-header{margin-top:0;background:white;-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);-moz-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}ul.side-nav.card{margin:initial;position:fixed}nav ul a span.badge{margin-top:18px}.tabs.tab-icon a span{display:none!important}.tabs .tab a i{margin:auto;margin-top:12px}.card .card-image img{height:auto!important}.responsive-table table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}.responsive-table table th{display:block}.responsive-table table tbody tr{display:inline-block;vertical-align:top}.responsive-table table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}.responsive-table table tbody tr{display:inline-block;vertical-align:top}.responsive-table table td{display:block;min-height:1.25em;text-align:left}.responsive-table>div:nth-child(1){width:20%!important}.responsive-table>div:nth-child(3){top:0!important;left:20%!important;width:80%!important;height:100%!important}.responsive-table table thead{border:0;border-right:1px solid #d0d0d0}.responsive-table table thead tr{display:block;padding:0 10px 0 0}.responsive-table table thead{display:block;float:left}}@media screen and (min-width:993px){ul.side-nav.fixed.right-aligned{right:0!important;left:initial!important}ul.side-nav.right-aligned:not(.drawer){position:fixed;z-index:997}ul.side-nav.fixed{left:0!important}}@media screen and (max-width:768px){.input-field input:not([type]),.input-field input[type=text],.input-field input[type=password],.input-field input[type=email],.input-field input[type=url],.input-field input[type=time],.input-field input[type=date],.input-field input[type=datetime-local],.input-field input[type=tel],.input-field input[type=number],.input-field input[type=search],.input-field textarea.materialize-textarea{font-size:16px}}.multiValueSuggestBox-panel:focus{border-bottom:2px solid #42a5f5!important}ul.slick-dots li{background:#b1dafb}ul.slick-dots li.slick-active{background:#42a5f5}ul.select2-results__options[aria-multiselectable="true"] li.select2-results__option:not([role="group"])[aria-selected="true"]:after{border:2px solid #42a5f5;background-color:#42a5f5}.input-field.outlined.combobox .select2-container--open .select2-selection{border:2px solid #42a5f5;box-shadow:none}.input-field.combobox .select2-container--focus .select2-selection{border-bottom:1px solid #42a5f5;box-shadow:0 1px 0 0 #42a5f5}.input-field.outlined.combobox .select2-container--focus .select2-selection{border:2px solid #42a5f5;box-shadow:none}.fileuploader .upload-label{background-color:#42a5f5!important}.fileuploader .upload-label i{background:#fff!important;color:#42a5f5!important}.fileuploader.active{background:#42a5f5!important}.fileuploader.active .upload-label{color:#fff!important}.preview-container .previews .zdrop-info .preview-icon{color:#42a5f5!important}.preview-container .header{background-color:#42a5f5!important}.material-rating{color:#42a5f5}.editorDialogs .modal .btn,.editorDialogs .modal .btn-large,.editorDialogs .modal .btn-large,.note-editor .modal .btn,.note-editor .modal .btn-large,.note-editor .modal .btn-large{background:#42a5f5!important}.editorDialogs .modal .btn-large:hover,.editorDialogs .modal .btn:hover,.editorDialogs .modal .btn-large:hover,.note-editor .modal .btn-large:hover,.note-editor .modal .btn:hover,.note-editor .modal .btn-large:hover,.note-editor .modal .btn.modal-close:hover,.note-editor .modal .modal-close.btn-large:hover,.note-editor .modal .file-field .btn:hover,.note-editor .modal .file-field .btn-large:hover,.note-editor .modal .modal-footer .note-link-btn:hover,.note-editor .modal .modal-footer .note-image-btn:hover{background:#42a5f5!important}button.waves-effect.waves-light.btn.disabled,button.waves-effect.waves-light.disabled.btn-large,button.waves-effect.waves-light.btn.disabled:hover,button.waves-effect.waves-light.disabled.btn-large:hover{background:#dfdfdf!important}.table-of-contents a.active{border-left:2px solid #42a5f5!important}.table-of-contents a:hover{border-left:1px solid #42a5f5!important}.stepper .step.success>div:first-child i,.stepper .step.success .title,.stepper .step.success .description{color:#42a5f5!important}.stepper .step>div:first-child .circle{background:#42a5f5!important}.lolliclock-header{background:#42a5f5!important}.lolliclock-active-button-background{background-color:#42a5f5!important}.lolliclock-button{color:#42a5f5!important}.lolliclock-canvas-bg{fill:#bbdffb!important}.lolliclock-canvas-fg{fill:#42a5f5!important}.lolliclock-canvas line{stroke:white!important}.lolliclock-tick.active,.lolliclock-tick:hover{background-color:#42a5f5!important}.input-field.outlined.timepicker input:focus,.input-field.outlined.timepicker input.valid{border:2px solid #42a5f5;box-shadow:none}.input-field.timepicker input.valid{border-bottom:1px solid #42a5f5;box-shadow:0 1px 0 0 #42a5f5}.tree-item i{color:#42a5f5}div.window .window-toolbar{background-color:#42a5f5}.group-toggle-button button.btn.active,.group-toggle-button button.active.btn-large{background:#42a5f5}.progress-line-bar .progress-item.active{background:#42a5f5}.progress-line-bar{background:#e9e9e9}.timer-progress .fill{background:#42a5f5;-webkit-animation:6s fullw infinite;animation:6s fullw infinite}.timer-progress.bouncing .fill{background:#42a5f5;-webkit-animation:1.5s cubic-bezier(0.08,-0.18,0.91,1.14) barbounce alternate infinite;animation:1.5s cubic-bezier(0.08,-0.18,0.91,1.14) barbounce alternate infinite}div.daterangepicker td.active,div.daterangepicker td.active:hover,div.daterangepicker td.in-range.active:not(.off),div.daterangepicker .ranges li.active{background-color:#64b5f6}div.daterangepicker td.in-range,div.daterangepicker td.available.in-range:hover:not(.active){background-color:rgba(100,181,246,0.2);color:#64b5f6}div.drp-buttons button.cancelBtn{color:#64b5f6}div.daterangepicker td.available:hover:after{border:2px solid #64b5f6} \ No newline at end of file diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Bold.ttf b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Bold.ttf deleted file mode 100644 index 68822caf2..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Bold.ttf and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Bold.woff b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Bold.woff deleted file mode 100644 index 1f75afdcc..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Bold.woff and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Bold.woff2 b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Bold.woff2 deleted file mode 100644 index 350d1c3a2..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Bold.woff2 and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Light.ttf b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Light.ttf deleted file mode 100644 index aa4534075..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Light.ttf and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Light.woff b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Light.woff deleted file mode 100644 index 3480c6c8b..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Light.woff and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Light.woff2 b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Light.woff2 deleted file mode 100644 index 9a4d98c46..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Light.woff2 and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Medium.ttf b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Medium.ttf deleted file mode 100644 index a3c1a1f17..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Medium.ttf and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Medium.woff b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Medium.woff deleted file mode 100644 index 1186773fd..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Medium.woff and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Medium.woff2 b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Medium.woff2 deleted file mode 100644 index d10a59261..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Medium.woff2 and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Regular.ttf b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Regular.ttf deleted file mode 100644 index 0e58508a6..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Regular.ttf and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Regular.woff b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Regular.woff deleted file mode 100644 index f823258a4..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Regular.woff and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Regular.woff2 b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Regular.woff2 deleted file mode 100644 index b7082ef31..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Regular.woff2 and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Thin.ttf b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Thin.ttf deleted file mode 100644 index 8779333b1..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Thin.ttf and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Thin.woff b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Thin.woff deleted file mode 100644 index 2a98c1e41..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Thin.woff and /dev/null differ diff --git a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Thin.woff2 b/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Thin.woff2 deleted file mode 100644 index a38025a15..000000000 Binary files a/gwt-material/src/main/resources/gwt/material/design/public/font/roboto/Roboto-Thin.woff2 and /dev/null differ diff --git a/gwt-material/src/test/java/gwt/material/design/client/MaterialWidgetTestSuite.java b/gwt-material/src/test/java/gwt/material/design/client/MaterialWidgetTestSuite.java index b178f8fb9..e1c2ebcbf 100644 --- a/gwt-material/src/test/java/gwt/material/design/client/MaterialWidgetTestSuite.java +++ b/gwt-material/src/test/java/gwt/material/design/client/MaterialWidgetTestSuite.java @@ -25,6 +25,7 @@ import gwt.material.design.client.ui.helper.ColorHelperTest; import gwt.material.design.client.ui.helper.EnumHelperTest; import gwt.material.design.client.ui.helper.ScrollHelperTest; +import gwt.material.design.client.ui.layout.GridLayoutTest; import gwt.material.design.client.ui.pwa.PwaManagerTest; import junit.framework.Test; import junit.framework.TestSuite; @@ -87,6 +88,8 @@ public static Test suite() { suite.addTestSuite(ColorHelperTest.class); suite.addTestSuite(EnumHelperTest.class); suite.addTestSuite(ScrollHelperTest.class); + // Layout Tests + suite.addTestSuite(GridLayoutTest.class); return suite; } } diff --git a/gwt-material/src/test/java/gwt/material/design/client/MixinTestSuite.java b/gwt-material/src/test/java/gwt/material/design/client/MixinTestSuite.java index 83fa45f33..8b5367953 100644 --- a/gwt-material/src/test/java/gwt/material/design/client/MixinTestSuite.java +++ b/gwt-material/src/test/java/gwt/material/design/client/MixinTestSuite.java @@ -20,6 +20,8 @@ package gwt.material.design.client; import com.google.gwt.junit.tools.GWTTestSuite; +import gwt.material.design.client.mixin.CopyCommandMixinTest; +import gwt.material.design.client.mixin.StatusTextMixinTest; import gwt.material.design.client.mixin.TextMixinTest; import junit.framework.Test; import junit.framework.TestSuite; @@ -29,6 +31,8 @@ public class MixinTestSuite extends GWTTestSuite { public static Test suite() { TestSuite suite = new TestSuite("Test Suite for GMD Mixins"); suite.addTestSuite(TextMixinTest.class); + suite.addTestSuite(CopyCommandMixinTest.class); + suite.addTestSuite(StatusTextMixinTest.class); return suite; } } diff --git a/gwt-material/src/test/java/gwt/material/design/client/mixin/CopyCommandMixinTest.java b/gwt-material/src/test/java/gwt/material/design/client/mixin/CopyCommandMixinTest.java new file mode 100644 index 000000000..554d7a015 --- /dev/null +++ b/gwt-material/src/test/java/gwt/material/design/client/mixin/CopyCommandMixinTest.java @@ -0,0 +1,52 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.mixin; + +import com.google.gwt.user.client.ui.RootPanel; +import gwt.material.design.client.base.CopyCommand; +import gwt.material.design.client.base.mixin.CopyCommandMixin; +import gwt.material.design.client.ui.MaterialTextBox; + +public class CopyCommandMixinTest extends AbstractMixinTest> { + + @Override + protected void runTest(CopyCommandMixin mixin) { + // Attach Widget + MaterialTextBox textBox = new MaterialTextBox(); + RootPanel.get().add(textBox); + textBox.setCopyCommand(CopyCommand.ON_READONLY_HOVER); + + // Test CopyCommand Types + checkCopyCommandType(textBox, CopyCommand.ON_ALWAYS); + checkCopyCommandType(textBox, CopyCommand.ON_READONLY); + checkCopyCommandType(textBox, CopyCommand.ON_READONLY_HOVER); + checkCopyCommandType(textBox, CopyCommand.ON_ALWAYS_HOVER); + } + + protected void checkCopyCommandType(MaterialTextBox textBox, CopyCommand copyCommand) { + textBox.setCopyCommand(copyCommand); + assertEquals(copyCommand, textBox.getCopyCommand()); + } + + @Override + protected CopyCommandMixin setupMixin() { + return new CopyCommandMixin<>(new MaterialTextBox()); + } +} diff --git a/gwt-material/src/test/java/gwt/material/design/client/mixin/StatusTextMixinTest.java b/gwt-material/src/test/java/gwt/material/design/client/mixin/StatusTextMixinTest.java new file mode 100644 index 000000000..4563b7dd0 --- /dev/null +++ b/gwt-material/src/test/java/gwt/material/design/client/mixin/StatusTextMixinTest.java @@ -0,0 +1,102 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2021 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.mixin; + +import gwt.material.design.client.base.mixin.StatusTextMixin; +import gwt.material.design.client.constants.CssName; +import gwt.material.design.client.ui.MaterialLabel; +import gwt.material.design.client.ui.MaterialTextBox; + +public class StatusTextMixinTest extends AbstractMixinTest> { + + @Override + protected void runTest(StatusTextMixin mixin) { + // Given + MaterialLabel label = mixin.getTextObject(); + String SUCCESS_TEXT = "Success"; + String ERROR_TEXT = "Error"; + String HELPER_TEXT = "Helper"; + + // When Apply Success Text + mixin.setSuccessText(SUCCESS_TEXT); + + // Then + assertEquals(label.getText(), SUCCESS_TEXT); + assertTrue(label.isVisible()); + assertTrue(label.getElement().hasClassName(CssName.FIELD_SUCCESS_LABEL)); + + // When Success Text is Cleared + mixin.clearSuccessText(); + + // Then + assertEquals("", label.getText()); + assertFalse(label.isVisible()); + assertFalse(label.getElement().hasClassName(CssName.FIELD_SUCCESS_LABEL)); + + // When Apply Error Text + mixin.setErrorText(ERROR_TEXT); + + // Then + assertEquals(label.getText(), ERROR_TEXT); + assertTrue(label.isVisible()); + assertTrue(label.getElement().hasClassName(CssName.FIELD_ERROR_LABEL)); + + // When Error Text is Cleared + mixin.clearErrorText(); + assertEquals("", label.getText()); + assertFalse(label.isVisible()); + assertFalse(label.getElement().hasClassName(CssName.FIELD_ERROR_LABEL)); + + // When Apply Helper Text + mixin.setHelperText(HELPER_TEXT); + + // Then + assertEquals(label.getText(), HELPER_TEXT); + assertTrue(label.isVisible()); + assertTrue(label.getElement().hasClassName(CssName.FIELD_HELPER_LABEL)); + + // When Helper Text is cleared + mixin.clearHelperText(); + + // Then + assertEquals("", label.getText()); + assertFalse(label.isVisible()); + assertFalse(label.getElement().hasClassName(CssName.FIELD_HELPER_LABEL)); + + // Given + mixin.setSuccessText(SUCCESS_TEXT); + mixin.setErrorText(ERROR_TEXT); + mixin.setHelperText(HELPER_TEXT); + + // When Status Text is cleared + mixin.clearStatusText(); + + // Then + assertEquals(HELPER_TEXT, label.getText()); + assertFalse(label.getElement().hasClassName(CssName.FIELD_ERROR_LABEL)); + assertFalse(label.getElement().hasClassName(CssName.FIELD_SUCCESS_LABEL)); + assertTrue(label.getElement().hasClassName(CssName.FIELD_HELPER_LABEL)); + } + + @Override + protected StatusTextMixin setupMixin() { + return new StatusTextMixin<>(new MaterialTextBox(), new MaterialLabel()); + } +} diff --git a/gwt-material/src/test/java/gwt/material/design/client/mixin/TextMixinTest.java b/gwt-material/src/test/java/gwt/material/design/client/mixin/TextMixinTest.java index 5ee768f55..8d20e4217 100644 --- a/gwt-material/src/test/java/gwt/material/design/client/mixin/TextMixinTest.java +++ b/gwt-material/src/test/java/gwt/material/design/client/mixin/TextMixinTest.java @@ -50,6 +50,11 @@ protected void runTest(TextMixin mixin) { mixin.setText("Test"); assertEquals("Test", mixin.getText()); + // Test XSS Injection example + mixin.setText(""); + assertEquals("", mixin.getText()); + + // Test setText(SafeHtml) String anchorTag = "test"; SafeHtmlBuilder builder = new SafeHtmlBuilder(); diff --git a/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialBadgeTest.java b/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialBadgeTest.java index 5d8888f2d..d0c8dc2de 100644 --- a/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialBadgeTest.java +++ b/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialBadgeTest.java @@ -37,6 +37,6 @@ protected MaterialBadge createWidget() { @Override public void testInitialClasses() { - checkInitialClasses(CssName.BADGE, CssName.SIDEBAR_BADGE); + checkInitialClasses(CssName.BADGE); } } diff --git a/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialPanelTest.java b/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialPanelTest.java index cde49001c..3f82f5701 100644 --- a/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialPanelTest.java +++ b/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialPanelTest.java @@ -19,6 +19,7 @@ */ package gwt.material.design.client.ui; +import gwt.material.design.client.base.HasResize; import gwt.material.design.client.constants.CssName; import gwt.material.design.client.ui.base.MaterialWidgetTestCase; @@ -46,4 +47,22 @@ public void testContainer() { assertFalse(panel.isContainerEnabed()); assertFalse(panel.getElement().hasClassName(CssName.CONTAINER)); } + + public void testContentEditable() { + MaterialPanel panel = getWidget(); + panel.setContentEditable(true); + assertTrue(panel.isContentEditable()); + assertTrue(panel.getElement().hasAttribute("contenteditable")); + panel.setContentEditable(false); + assertFalse(panel.isContentEditable()); + } + + public void testResizable() { + MaterialPanel panel = getWidget(); + panel.setResize(HasResize.Resizable.BOTH); + assertEquals(HasResize.Resizable.BOTH.getName(), panel.getResize()); + assertEquals(HasResize.Resizable.BOTH.getName(), panel.getElement().getStyle().getProperty("resize")); + panel.setResize(HasResize.Resizable.HORIZONTAL); + assertEquals(HasResize.Resizable.HORIZONTAL.getName(), panel.getElement().getStyle().getProperty("resize")); + } } diff --git a/gwt-material/src/test/java/gwt/material/design/client/ui/base/MaterialWidgetTestCase.java b/gwt-material/src/test/java/gwt/material/design/client/ui/base/MaterialWidgetTestCase.java index 94fc89040..d9e821b3c 100644 --- a/gwt-material/src/test/java/gwt/material/design/client/ui/base/MaterialWidgetTestCase.java +++ b/gwt-material/src/test/java/gwt/material/design/client/ui/base/MaterialWidgetTestCase.java @@ -352,13 +352,13 @@ protected void checkEnabled(HasEnabled widget, assertFalse(element.hasClassName(CssName.DISABLED)); assertFalse(element.hasAttribute(CssName.DISABLED)); } - assertEquals(widget.isEnabled(), true); + assertTrue(widget.isEnabled()); widget.setEnabled(false); if(checkElement) { assertTrue(element.hasClassName(CssName.DISABLED)); assertTrue(element.hasAttribute(CssName.DISABLED)); } - assertEquals(target.isEnabled(), false); + assertFalse(target.isEnabled()); } // Generic Event Handling @@ -1006,18 +1006,39 @@ public void testColor() { public void testEnabled() { // UiBinder // given - T widget = getWidget(false); + T widget = getWidget(true); // when / then - checkEnabled(widget, widget, false); + checkEnabled(widget, widget, true); + } + + public void testMultiSetEnabledState() { + // given + T widget = getWidget(); + + // when / then + widget.setEnabled(false); + assertFalse(false); + + // when / then + widget.setEnabled(true); + assertTrue(widget.isEnabled()); + + // when / then + widget.setEnabled(false); + assertFalse(widget.isEnabled()); - // Standard // given attachWidget(); // when / then + assertFalse(widget.isEnabled()); widget.setEnabled(true); - checkEnabled(widget, widget, true); + assertTrue(widget.isEnabled()); + + // when / then + widget.setEnabled(false); + assertFalse(widget.isEnabled()); } public void testId() { diff --git a/gwt-material/src/test/java/gwt/material/design/client/ui/layout/GridLayoutTest.java b/gwt-material/src/test/java/gwt/material/design/client/ui/layout/GridLayoutTest.java new file mode 100644 index 000000000..881f82f16 --- /dev/null +++ b/gwt-material/src/test/java/gwt/material/design/client/ui/layout/GridLayoutTest.java @@ -0,0 +1,187 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2020 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.ui.layout; + +import gwt.material.design.client.base.HasGridLayout; +import gwt.material.design.client.ui.MaterialPanel; +import gwt.material.design.client.ui.base.MaterialWidgetTestCase; + +public class GridLayoutTest extends MaterialWidgetTestCase { + + public static final String GRID = "minmax(400px, min-content) / repeat(auto-fill, 50px)"; + public static final String GRID_AREA = "4 some-grid-area / 2 another-grid-area"; + public static final String GRID_AUTO_COLUMNS = "minmax(10px, auto);"; + public static final String GRID_AUTO_FLOW = "column dense"; + public static final String GRID_AUTO_ROWS = "minmax(100px, auto) minmax(max-content, 2fr) minmax(20%, 80vmax)"; + public static final String GRID_COLUMN = "1 / span 2"; + public static final String GRID_COLUMN_END = "span 3"; + public static final String GRID_COLUMN_GAP = "12%"; + public static final String GRID_COLUMN_START = "auto"; + public static final String GRID_GAP = "calc(20px + 10%)"; + public static final String GRID_ROW = "2 / -1"; + public static final String GRID_ROW_END = "-1"; + public static final String GRID_ROW_GAP = "1ch"; + public static final String GRID_ROW_START = "3"; + public static final String GRID_TEMPLATE = "100px 1fr / 50px 1fr"; + public static final String GRID_TEMPLATE_AREAS = "a b"; + public static final String GRID_TEMPLATE_COLUMNS = "1fr 60px"; + public static final String GRID_TEMPLATE_ROWS = "3ch auto minmax(10px, 60px)"; + public static final String ALIGN_CONTENT = "center"; + public static final String ALIGN_ITEMS = "stretch"; + public static final String ALIGN_SELF = "start"; + public static final String COLUMN_GAP = "2rem"; + public static final String GAP = "10%"; + public static final String JUSTIFY_CONTENT = "space-between"; + public static final String JUSTIFY_ITEMS = "end"; + public static final String JUSTIFY_SELF = "stretch"; + public static final String PLACE_CONTENT = "space-around start"; + public static final String PLACE_ITEMS = "center stretch"; + public static final String PLACE_SELF = "start end"; + public static final String ROW_GAP = "1ch"; + + @Override + protected MaterialPanel createWidget() { + return new MaterialPanel(); + } + + public void testGridLayoutProperties() { + MaterialPanel panel = getWidget(); + + panel.setGridLayout(GRID); + assertEquals(GRID, panel.getGridLayout()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID)); + + panel.setGridArea(GRID_AREA); + assertEquals(GRID_AREA, panel.getGridArea()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_AREA)); + + panel.setGridAutoColumns(GRID_AUTO_COLUMNS); + assertEquals(GRID_AUTO_COLUMNS, panel.getGridAutoColumns()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_AUTO_COLUMNS)); + + panel.setGridAutoFlow(GRID_AUTO_FLOW); + assertEquals(GRID_AUTO_FLOW, panel.getGridAutoFlow()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_AUTO_FLOW)); + + panel.setGridAutoRows(GRID_AUTO_ROWS); + assertEquals(GRID_AUTO_ROWS, panel.getGridAutoRows()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_AUTO_ROWS)); + + panel.setGridColumn(GRID_COLUMN); + assertEquals(GRID_COLUMN, panel.getGridColumn()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_COLUMN)); + + panel.setGridColumnEnd(GRID_COLUMN_END); + assertEquals(GRID_COLUMN_END, panel.getGridColumnEnd()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_COLUMN_END)); + + panel.setGridColumnGap(GRID_COLUMN_GAP); + assertEquals(GRID_COLUMN_GAP, panel.getGridColumnGap()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_COLUMN_GAP)); + + panel.setGridColumnStart(GRID_COLUMN_START); + assertEquals(GRID_COLUMN_START, panel.getGridColumnStart()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_COLUMN_START)); + + panel.setGridGap(GRID_GAP); + assertEquals(GRID_GAP, panel.getGridGap()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_GAP)); + + panel.setGridRow(GRID_ROW); + assertEquals(GRID_ROW, panel.getGridRow()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_ROW)); + + panel.setGridRowEnd(GRID_ROW_END); + assertEquals(GRID_ROW_END, panel.getGridRowEnd()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_ROW_END)); + + panel.setGridRowGap(GRID_ROW_GAP); + assertEquals(GRID_ROW_GAP, panel.getGridRowGap()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_ROW_GAP)); + + panel.setGridRowStart(GRID_ROW_START); + assertEquals(GRID_ROW_START, panel.getGridRowStart()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_ROW_START)); + + panel.setGridTemplate(GRID_TEMPLATE); + assertEquals(GRID_TEMPLATE, panel.getGridTemplate()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_TEMPLATE)); + + panel.setGridTemplateAreas(GRID_TEMPLATE_AREAS); + assertEquals(GRID_TEMPLATE_AREAS, panel.getGridTemplateAreas()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_TEMPLATE_AREAS)); + + panel.setGridTemplateColumns(GRID_TEMPLATE_COLUMNS); + assertEquals(GRID_TEMPLATE_COLUMNS, panel.getGridTemplateColumns()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_TEMPLATE_COLUMNS)); + + panel.setGridTemplateRows(GRID_TEMPLATE_ROWS); + assertEquals(GRID_TEMPLATE_ROWS, panel.getGridTemplateRows()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GRID_TEMPLATE_ROWS)); + + panel.setAlignContent(ALIGN_CONTENT); + assertEquals(ALIGN_CONTENT, panel.getAlignContent()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.ALIGN_CONTENT)); + + panel.setAlignItems(ALIGN_ITEMS); + assertEquals(ALIGN_ITEMS, panel.getAlignItems()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.ALIGN_ITEMS)); + + panel.setAlignSelf(ALIGN_SELF); + assertEquals(ALIGN_SELF, panel.getAlignSelf()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.ALIGN_SELF)); + + panel.setColumnGap(COLUMN_GAP); + assertEquals(COLUMN_GAP, panel.getColumnGap()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.COLUMN_GAP)); + + panel.setGap(GAP); + assertEquals(GAP, panel.getGap()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.GAP)); + + panel.setJustifyContent(JUSTIFY_CONTENT); + assertEquals(JUSTIFY_CONTENT, panel.getJustifyContent()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.JUSTIFY_CONTENT)); + + panel.setJustifyItems(JUSTIFY_ITEMS); + assertEquals(JUSTIFY_ITEMS, panel.getJustifyItems()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.JUSTIFY_ITEMS)); + + panel.setJustifySelf(JUSTIFY_SELF); + assertEquals(JUSTIFY_SELF, panel.getJustifySelf()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.JUSTIFY_SELF)); + + panel.setPlaceContent(PLACE_CONTENT); + assertEquals(PLACE_CONTENT, panel.getPlaceContent()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.PLACE_CONTENT)); + + panel.setPlaceItems(PLACE_ITEMS); + assertEquals(PLACE_ITEMS, panel.getPlaceItems()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.PLACE_ITEMS)); + + panel.setPlaceSelf(PLACE_SELF); + assertEquals(PLACE_SELF, panel.getPlaceSelf()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.PLACE_SELF)); + + panel.setRowGap(ROW_GAP); + assertEquals(ROW_GAP, panel.getRowGap()); + assertNotNull(panel.getElement().getStyle().getProperty(HasGridLayout.ROW_GAP)); + } +} diff --git a/install.bat b/install.bat new file mode 100644 index 000000000..63ab2a04f --- /dev/null +++ b/install.bat @@ -0,0 +1,23 @@ +@echo off +SET DEVELOPMENT_HOME= "${DEV_DIRECTORY}" + +cd %DEVELOPMENT_HOME%\gwt-material-jquery\ +call mvn clean install -Dmaven.test.skip=true + +cd %DEVELOPMENT_HOME%\gwt-material\ +call mvn clean install -Dmaven.test.skip=true + +cd %DEVELOPMENT_HOME%\gwt-material-themes\ +call mvn clean install -Dmaven.test.skip=true + +cd %DEVELOPMENT_HOME%\gwt-material-table\ +call mvn clean install -Dmaven.test.skip=true + +cd %DEVELOPMENT_HOME%\gwt-material-addins\ +call mvn clean install -Dmaven.test.skip=true + +cd %DEVELOPMENT_HOME%\gwt-material-table\ +call mvn clean install -Dmaven.test.skip=true + +cd %DEVELOPMENT_HOME%\gwt-material-amcharts4\ +call mvn clean install -Dmaven.test.skip=true \ No newline at end of file diff --git a/pom.xml b/pom.xml index 80b0d87aa..ca72e80f3 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.github.gwtmaterialdesign gwt-material-parent - 2.4.2 + 2.5.0-rc1 pom gwt-material @@ -69,7 +69,7 @@ scm:git:git@github.com:GwtMaterialDesign/gwt-material.git scm:git:git@github.com:GwtMaterialDesign/gwt-material.git http://github.com/GwtMaterialDesign/gwt-material - v2.4.2 + v2.5.0-rc1