/* Copyright 2015 Google Inc. All Rights Reserved. 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. */ var componentHandler={upgradeDom:function(){},upgradeElement:function(){},upgradeElements:function(){},upgradeAllRegistered:function(){},registerUpgradedCallback:function(){},register:function(){},downgradeElements:function(){}}; componentHandler=function(){function a(e,h){for(var l=0;l0&&k(m.children))}function n(e){var h=typeof e.widget==="undefined"&&typeof e.widget==="undefined",l=!0;h||(l=e.widget||e.widget);var m={classConstructor:e.constructor||e.constructor,className:e.classAsString||e.classAsString,cssClass:e.cssClass||e.cssClass,widget:l,callbacks:[]};r.forEach(function(u){if(u.cssClass===m.cssClass)throw Error("The provided cssClass has already been registered: "+ u.cssClass);if(u.className===m.className)throw Error("The provided className has already been registered");});if(e.constructor.prototype.hasOwnProperty("mdlComponentConfigInternal_"))throw Error("MDL component classes must not have mdlComponentConfigInternal_ defined as a property.");(e=a(e.classAsString,m))||r.push(m)}function p(e,h){(e=a(e))&&e.callbacks.push(h)}function q(){for(var e=0;e0&&!this.header_.classList.contains(this.CssClasses_.IS_COMPACT)?(this.header_.classList.add(this.CssClasses_.CASTING_SHADOW),this.header_.classList.add(this.CssClasses_.IS_COMPACT),c&&this.header_.classList.add(this.CssClasses_.IS_ANIMATING)):this.content_.scrollTop<=0&&this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW),this.header_.classList.remove(this.CssClasses_.IS_COMPACT),c&&this.header_.classList.add(this.CssClasses_.IS_ANIMATING))}}; b.prototype.keyboardEventHandler_=function(c){c.keyCode===this.Keycodes_.ESCAPE&&this.drawer_.classList.contains(this.CssClasses_.IS_DRAWER_OPEN)&&this.toggleDrawer()};b.prototype.screenSizeHandler_=function(){this.screenSizeMediaQuery_.matches?this.element_.classList.add(this.CssClasses_.IS_SMALL_SCREEN):(this.element_.classList.remove(this.CssClasses_.IS_SMALL_SCREEN),this.drawer_&&(this.drawer_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN),this.obfuscator_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN)))}; b.prototype.drawerToggleHandler_=function(c){if(c&&c.type==="keydown")if(c.keyCode===this.Keycodes_.SPACE||c.keyCode===this.Keycodes_.ENTER)c.preventDefault();else return;this.toggleDrawer()};b.prototype.headerTransitionEndHandler_=function(){this.header_.classList.remove(this.CssClasses_.IS_ANIMATING)};b.prototype.headerClickHandler_=function(){this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.IS_COMPACT),this.header_.classList.add(this.CssClasses_.IS_ANIMATING))}; b.prototype.resetTabState_=function(c){for(var d=0;d0?n.classList.add(this.CssClasses_.IS_ACTIVE): n.classList.remove(this.CssClasses_.IS_ACTIVE);this.tabBar_.scrollLeft0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)&&(b.keyCode===this.Keycodes_.UP_ARROW?(b.preventDefault(), c[c.length-1].focus()):b.keyCode===this.Keycodes_.DOWN_ARROW&&(b.preventDefault(),c[0].focus()))}};a.prototype.handleItemKeyboardEvent_=function(b){if(this.element_&&this.container_){var c=this.element_.querySelectorAll("."+this.CssClasses_.ITEM+":not([disabled])");if(c&&c.length>0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)){var d=Array.prototype.slice.call(c).indexOf(b.target);b.keyCode===this.Keycodes_.UP_ARROW?(b.preventDefault(),d>0?c[d-1].focus():c[c.length-1].focus()): b.keyCode===this.Keycodes_.DOWN_ARROW?(b.preventDefault(),c.length>d+1?c[d+1].focus():c[0].focus()):b.keyCode===this.Keycodes_.SPACE||b.keyCode===this.Keycodes_.ENTER?(b.preventDefault(),c=new MouseEvent("mousedown"),b.target.dispatchEvent(c),c=new MouseEvent("mouseup"),b.target.dispatchEvent(c),b.target.click()):b.keyCode===this.Keycodes_.ESCAPE&&(b.preventDefault(),this.hide())}}};a.prototype.handleItemClick_=function(b){b.target.hasAttribute("disabled")?b.stopPropagation():(this.closing_=!0,window.setTimeout(function(){this.hide(); this.closing_=!1}.bind(this),this.Constant_.CLOSE_TIMEOUT))};a.prototype.applyClip_=function(b,c){this.element_.style.clip=this.element_.classList.contains(this.CssClasses_.UNALIGNED)?"":this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)?"rect(0 "+c+"px 0 "+c+"px)":this.element_.classList.contains(this.CssClasses_.TOP_LEFT)?"rect("+b+"px 0 "+b+"px 0)":this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)?"rect("+b+"px "+c+"px "+b+"px "+c+"px)":""};a.prototype.removeAnimationEndListener_= function(b){b.target.classList.remove(a.prototype.CssClasses_.IS_ANIMATING)};a.prototype.addAnimationEndListener_=function(){this.element_.addEventListener("transitionend",this.removeAnimationEndListener_);this.element_.addEventListener("webkitTransitionEnd",this.removeAnimationEndListener_)};a.prototype.show=function(b){if(this.element_&&this.container_&&this.outline_){var c=this.element_.getBoundingClientRect().height,d=this.element_.getBoundingClientRect().width;this.container_.style.width=d+"px"; this.container_.style.height=c+"px";this.outline_.style.width=d+"px";this.outline_.style.height=c+"px";for(var f=this.Constant_.TRANSITION_DURATION_SECONDS*this.Constant_.TRANSITION_DURATION_FRACTION,g=this.element_.querySelectorAll("."+this.CssClasses_.ITEM),k=0;k0)){this.setFrameCount(1); c=b.currentTarget.getBoundingClientRect();if(b.clientX===0&&b.clientY===0)b=Math.round(c.width/2),c=Math.round(c.height/2);else{var d=b.clientX!==void 0?b.clientX:b.touches[0].clientX,f=b.clientY!==void 0?b.clientY:b.touches[0].clientY;b=Math.round(d-c.left);c=Math.round(f-c.top)}this.setRippleXY(b,c);this.setRippleStyles(!0);window.requestAnimationFrame(this.animFrameHandler.bind(this))}};a.prototype.upHandler_=function(b){b&&b.detail!==2&&window.setTimeout(function(){this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE)}.bind(this), 0)};a.prototype.init=function(){if(this.element_){var b=this.element_.classList.contains(this.CssClasses_.RIPPLE_CENTER);this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT_IGNORE_EVENTS)||(this.rippleElement_=this.element_.querySelector("."+this.CssClasses_.RIPPLE),this.y_=this.x_=this.rippleSize_=this.frameCount_=0,this.ignoringMouseDown_=!1,this.boundDownHandler=this.downHandler_.bind(this),this.element_.addEventListener("mousedown",this.boundDownHandler),this.element_.addEventListener("touchstart", this.boundDownHandler),this.boundUpHandler=this.upHandler_.bind(this),this.element_.addEventListener("mouseup",this.boundUpHandler),this.element_.addEventListener("mouseleave",this.boundUpHandler),this.element_.addEventListener("touchend",this.boundUpHandler),this.element_.addEventListener("blur",this.boundUpHandler),this.setFrameCount=function(c){this.frameCount_=c},this.setRippleXY=function(c,d){this.x_=c;this.y_=d},this.setRippleStyles=function(c){if(this.rippleElement_!==null){var d="translate("+ this.x_+"px, "+this.y_+"px)";if(c)var f=this.Constant_.INITIAL_SCALE;else f=this.Constant_.FINAL_SCALE,b&&(d="translate("+this.boundWidth/2+"px, "+this.boundHeight/2+"px)");f="translate(-50%, -50%) "+d+f;this.rippleElement_.style.webkitTransform=f;this.rippleElement_.style.msTransform=f;this.rippleElement_.style.transform=f;c?this.rippleElement_.classList.remove(this.CssClasses_.IS_ANIMATING):this.rippleElement_.classList.add(this.CssClasses_.IS_ANIMATING)}},this.animFrameHandler=function(){this.frameCount_-- > 0?window.requestAnimationFrame(this.animFrameHandler.bind(this)):this.setRippleStyles(!1)})}};componentHandler.register({constructor:a,classAsString:"MaterialRipple",cssClass:"mdl-js-ripple-effect",widget:!1})})();(function(){var a=function(b){this.element_=b;this.isIE_=window.navigator.msPointerEnabled;this.init()};window.MaterialSlider=a;a.prototype.Constant_={};a.prototype.CssClasses_={IE_CONTAINER:"mdl-slider__ie-container",SLIDER_CONTAINER:"mdl-slider__container",BACKGROUND_FLEX:"mdl-slider__background-flex",BACKGROUND_LOWER:"mdl-slider__background-lower",BACKGROUND_UPPER:"mdl-slider__background-upper",IS_LOWEST_VALUE:"is-lowest-value",IS_UPGRADED:"is-upgraded"};a.prototype.onInput_=function(){this.updateValueStyles_()}; a.prototype.onChange_=function(){this.updateValueStyles_()};a.prototype.onMouseUp_=function(b){b.target.blur()};a.prototype.onContainerMouseDown_=function(b){b.target===this.element_.parentElement&&(b.preventDefault(),b=new MouseEvent("mousedown",{target:b.target,buttons:b.buttons,clientX:b.clientX,clientY:this.element_.getBoundingClientRect().y}),this.element_.dispatchEvent(b))};a.prototype.updateValueStyles_=function(){var b=(this.element_.value-this.element_.min)/(this.element_.max-this.element_.min); b===0?this.element_.classList.add(this.CssClasses_.IS_LOWEST_VALUE):this.element_.classList.remove(this.CssClasses_.IS_LOWEST_VALUE);this.isIE_||(this.backgroundLower_.style.flex=b,this.backgroundLower_.style.webkitFlex=b,this.backgroundUpper_.style.flex=1-b,this.backgroundUpper_.style.webkitFlex=1-b)};a.prototype.disable=function(){this.element_.disabled=!0};a.prototype.disable=a.prototype.disable;a.prototype.enable=function(){this.element_.disabled=!1};a.prototype.enable=a.prototype.enable;a.prototype.change= function(b){typeof b!=="undefined"&&(this.element_.value=b);this.updateValueStyles_()};a.prototype.change=a.prototype.change;a.prototype.init=function(){if(this.element_){if(this.isIE_){var b=document.createElement("div");b.classList.add(this.CssClasses_.IE_CONTAINER);this.element_.parentElement.insertBefore(b,this.element_);this.element_.parentElement.removeChild(this.element_);b.appendChild(this.element_)}else{b=document.createElement("div");b.classList.add(this.CssClasses_.SLIDER_CONTAINER);this.element_.parentElement.insertBefore(b, this.element_);this.element_.parentElement.removeChild(this.element_);b.appendChild(this.element_);var c=document.createElement("div");c.classList.add(this.CssClasses_.BACKGROUND_FLEX);b.appendChild(c);this.backgroundLower_=document.createElement("div");this.backgroundLower_.classList.add(this.CssClasses_.BACKGROUND_LOWER);c.appendChild(this.backgroundLower_);this.backgroundUpper_=document.createElement("div");this.backgroundUpper_.classList.add(this.CssClasses_.BACKGROUND_UPPER);c.appendChild(this.backgroundUpper_)}this.boundInputHandler= this.onInput_.bind(this);this.boundChangeHandler=this.onChange_.bind(this);this.boundMouseUpHandler=this.onMouseUp_.bind(this);this.boundContainerMouseDownHandler=this.onContainerMouseDown_.bind(this);this.element_.addEventListener("input",this.boundInputHandler);this.element_.addEventListener("change",this.boundChangeHandler);this.element_.addEventListener("mouseup",this.boundMouseUpHandler);this.element_.parentElement.addEventListener("mousedown",this.boundContainerMouseDownHandler);this.updateValueStyles_(); this.element_.classList.add(this.CssClasses_.IS_UPGRADED)}};componentHandler.register({constructor:a,classAsString:"MaterialSlider",cssClass:"mdl-js-slider",widget:!0})})();(function(){var a=function(b){this.element_=b;this.textElement_=this.element_.querySelector("."+this.cssClasses_.MESSAGE);this.actionElement_=this.element_.querySelector("."+this.cssClasses_.ACTION);if(!this.textElement_)throw Error("There must be a message element for a snackbar.");if(!this.actionElement_)throw Error("There must be an action element for a snackbar.");this.active=!1;this.actionText_=this.message_=this.actionHandler_=void 0;this.queuedNotifications_=[];this.setActionHidden_(!0)};window.MaterialSnackbar= a;a.prototype.Constant_={ANIMATION_LENGTH:250};a.prototype.cssClasses_={SNACKBAR:"mdl-snackbar",MESSAGE:"mdl-snackbar__text",ACTION:"mdl-snackbar__action",ACTIVE:"mdl-snackbar--active"};a.prototype.displaySnackbar_=function(){this.element_.setAttribute("aria-hidden","true");this.actionHandler_&&(this.actionElement_.textContent=this.actionText_,this.actionElement_.addEventListener("click",this.actionHandler_),this.setActionHidden_(!1));this.textElement_.textContent=this.message_;this.element_.classList.add(this.cssClasses_.ACTIVE); this.element_.setAttribute("aria-hidden","false");setTimeout(this.cleanup_.bind(this),this.timeout_)};a.prototype.showSnackbar=function(b){if(b===void 0)throw Error("Please provide a data object with at least a message to display.");if(b.message===void 0)throw Error("Please provide a message to be displayed.");if(b.actionHandler&&!b.actionText)throw Error("Please provide action text with the handler.");this.active?this.queuedNotifications_.push(b):(this.active=!0,this.message_=b.message,this.timeout_= b.timeout?b.timeout:2750,b.actionHandler&&(this.actionHandler_=b.actionHandler),b.actionText&&(this.actionText_=b.actionText),this.displaySnackbar_())};a.prototype.showSnackbar=a.prototype.showSnackbar;a.prototype.checkQueue_=function(){this.queuedNotifications_.length>0&&this.showSnackbar(this.queuedNotifications_.shift())};a.prototype.cleanup_=function(){this.element_.classList.remove(this.cssClasses_.ACTIVE);setTimeout(function(){this.element_.setAttribute("aria-hidden","true");this.textElement_.textContent= "";this.actionElement_.getAttribute("aria-hidden")||(this.setActionHidden_(!0),this.actionElement_.textContent="",this.actionElement_.removeEventListener("click",this.actionHandler_));this.actionText_=this.message_=this.actionHandler_=void 0;this.active=!1;this.checkQueue_()}.bind(this),this.Constant_.ANIMATION_LENGTH)};a.prototype.setActionHidden_=function(b){b?this.actionElement_.setAttribute("aria-hidden","true"):this.actionElement_.removeAttribute("aria-hidden")};componentHandler.register({constructor:a, classAsString:"MaterialSnackbar",cssClass:"mdl-js-snackbar",widget:!0})})();(function(){var a=function(b){this.element_=b;this.init()};window.MaterialSpinner=a;a.prototype.Constant_={MDL_SPINNER_LAYER_COUNT:4};a.prototype.CssClasses_={MDL_SPINNER_LAYER:"mdl-spinner__layer",MDL_SPINNER_CIRCLE_CLIPPER:"mdl-spinner__circle-clipper",MDL_SPINNER_CIRCLE:"mdl-spinner__circle",MDL_SPINNER_GAP_PATCH:"mdl-spinner__gap-patch",MDL_SPINNER_LEFT:"mdl-spinner__left",MDL_SPINNER_RIGHT:"mdl-spinner__right"};a.prototype.createLayer=function(b){var c=document.createElement("div");c.classList.add(this.CssClasses_.MDL_SPINNER_LAYER); c.classList.add(this.CssClasses_.MDL_SPINNER_LAYER+"-"+b);b=document.createElement("div");b.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER);b.classList.add(this.CssClasses_.MDL_SPINNER_LEFT);var d=document.createElement("div");d.classList.add(this.CssClasses_.MDL_SPINNER_GAP_PATCH);var f=document.createElement("div");f.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER);f.classList.add(this.CssClasses_.MDL_SPINNER_RIGHT);for(var g=[b,d,f],k=0;k=this.maxRows&&b.preventDefault()};a.prototype.onFocus_=function(){this.element_.classList.add(this.CssClasses_.IS_FOCUSED)};a.prototype.onBlur_=function(){this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)};a.prototype.onReset_=function(){this.updateClasses_()};a.prototype.updateClasses_=function(){this.checkDisabled();this.checkValidity();this.checkDirty();this.checkFocus()};a.prototype.checkDisabled=function(){this.input_.disabled?this.element_.classList.add(this.CssClasses_.IS_DISABLED): this.element_.classList.remove(this.CssClasses_.IS_DISABLED)};a.prototype.checkDisabled=a.prototype.checkDisabled;a.prototype.checkFocus=function(){this.element_.querySelector(":focus")?this.element_.classList.add(this.CssClasses_.IS_FOCUSED):this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)};a.prototype.checkFocus=a.prototype.checkFocus;a.prototype.checkValidity=function(){this.input_.validity&&(this.input_.validity.valid?this.element_.classList.remove(this.CssClasses_.IS_INVALID):this.element_.classList.add(this.CssClasses_.IS_INVALID))}; a.prototype.checkValidity=a.prototype.checkValidity;a.prototype.checkDirty=function(){this.input_.value&&this.input_.value.length>0?this.element_.classList.add(this.CssClasses_.IS_DIRTY):this.element_.classList.remove(this.CssClasses_.IS_DIRTY)};a.prototype.checkDirty=a.prototype.checkDirty;a.prototype.disable=function(){this.input_.disabled=!0;this.updateClasses_()};a.prototype.disable=a.prototype.disable;a.prototype.enable=function(){this.input_.disabled=!1;this.updateClasses_()};a.prototype.enable= a.prototype.enable;a.prototype.change=function(b){this.input_.value=b||"";this.updateClasses_()};a.prototype.change=a.prototype.change;a.prototype.init=function(){if(this.element_&&(this.input_=this.element_.querySelector("."+this.CssClasses_.INPUT))){this.input_.hasAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE)&&(this.maxRows=parseInt(this.input_.getAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE),10),isNaN(this.maxRows)&&(this.maxRows=this.Constant_.NO_MAX_ROWS));this.input_.hasAttribute("placeholder")&& this.element_.classList.add(this.CssClasses_.HAS_PLACEHOLDER);this.boundUpdateClassesHandler=this.updateClasses_.bind(this);this.boundFocusHandler=this.onFocus_.bind(this);this.boundBlurHandler=this.onBlur_.bind(this);this.boundResetHandler=this.onReset_.bind(this);this.input_.addEventListener("input",this.boundUpdateClassesHandler);this.input_.addEventListener("focus",this.boundFocusHandler);this.input_.addEventListener("blur",this.boundBlurHandler);this.input_.addEventListener("reset",this.boundResetHandler); this.maxRows!==this.Constant_.NO_MAX_ROWS&&(this.boundKeyDownHandler=this.onKeyDown_.bind(this),this.input_.addEventListener("keydown",this.boundKeyDownHandler));var b=this.element_.classList.contains(this.CssClasses_.IS_INVALID);this.updateClasses_();this.element_.classList.add(this.CssClasses_.IS_UPGRADED);b&&this.element_.classList.add(this.CssClasses_.IS_INVALID);this.input_.hasAttribute("autofocus")&&(this.element_.focus(),this.checkFocus())}};componentHandler.register({constructor:a,classAsString:"MaterialTextfield", cssClass:"mdl-js-textfield",widget:!0})})();(function(){var a=function(b){this.element_=b;this.init()};window.MaterialTooltip=a;a.prototype.Constant_={};a.prototype.CssClasses_={IS_ACTIVE:"is-active",BOTTOM:"mdl-tooltip--bottom",LEFT:"mdl-tooltip--left",RIGHT:"mdl-tooltip--right",TOP:"mdl-tooltip--top"};a.prototype.handleMouseEnter_=function(b){b=b.target.getBoundingClientRect();var c=b.left+b.width/2,d=b.top+b.height/2,f=this.element_.offsetWidth/2*-1,g=this.element_.offsetHeight/2*-1;this.element_.classList.contains(this.CssClasses_.LEFT)|| this.element_.classList.contains(this.CssClasses_.RIGHT)?d+g<0?(this.element_.style.top="0",this.element_.style.marginTop="0"):(this.element_.style.top=d+"px",this.element_.style.marginTop=g+"px"):c+f<0?(this.element_.style.left="0",this.element_.style.marginLeft="0"):(this.element_.style.left=c+"px",this.element_.style.marginLeft=f+"px");this.element_.classList.contains(this.CssClasses_.TOP)?this.element_.style.top=b.top-this.element_.offsetHeight-10+"px":this.element_.classList.contains(this.CssClasses_.RIGHT)? this.element_.style.left=b.left+b.width+10+"px":this.element_.classList.contains(this.CssClasses_.LEFT)?this.element_.style.left=b.left-this.element_.offsetWidth-10+"px":this.element_.style.top=b.top+b.height+10+"px";this.element_.classList.add(this.CssClasses_.IS_ACTIVE)};a.prototype.hideTooltip_=function(){this.element_.classList.remove(this.CssClasses_.IS_ACTIVE)};a.prototype.init=function(){if(this.element_){var b=this.element_.getAttribute("for")||this.element_.getAttribute("data-mdl-for");b&& (this.forElement_=document.getElementById(b));this.forElement_&&(this.forElement_.hasAttribute("tabindex")||this.forElement_.setAttribute("tabindex","0"),this.boundMouseEnterHandler=this.handleMouseEnter_.bind(this),this.boundMouseLeaveAndScrollHandler=this.hideTooltip_.bind(this),this.forElement_.addEventListener("mouseenter",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("touchend",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("mouseleave",this.boundMouseLeaveAndScrollHandler, !1),window.addEventListener("scroll",this.boundMouseLeaveAndScrollHandler,!0),window.addEventListener("touchstart",this.boundMouseLeaveAndScrollHandler))}};componentHandler.register({constructor:a,classAsString:"MaterialTooltip",cssClass:"mdl-tooltip"})})();