Project import generated by Copybara.
GitOrigin-RevId: 63746295f1a5ab5a619056791995793d65529e62
diff --git a/node_modules/mdl-ext/lib/mdl-ext.js.map b/node_modules/mdl-ext/lib/mdl-ext.js.map
new file mode 100644
index 0000000..a401c9f
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 80c672803f0b3533e5b7?a1f3","webpack:///./~/babel-runtime/~/core-js/library/modules/_core.js?d611","webpack:///./src/utils/constants.js?14df","webpack:///./~/babel-runtime/~/core-js/library/modules/_export.js?8e40","webpack:///./~/babel-runtime/~/core-js/library/modules/_wks.js?2014","webpack:///./~/babel-runtime/~/core-js/library/modules/_global.js?3c52","webpack:///./~/babel-runtime/~/core-js/library/modules/_an-object.js?3af2","webpack:///./~/babel-runtime/~/core-js/library/modules/_iterators.js?f3f3","webpack:///./~/babel-runtime/helpers/toConsumableArray.js?1825","webpack:///./~/babel-runtime/~/core-js/library/modules/_descriptors.js?c0f5","webpack:///./~/babel-runtime/~/core-js/library/modules/_fails.js?c6dd","webpack:///./~/babel-runtime/~/core-js/library/modules/_hide.js?0d2e","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-dp.js?5986","webpack:///./src/utils/full-throttle.js?dc07","webpack:///./src/utils/json-utils.js?45f0","webpack:///./src/utils/string-utils.js?37f8","webpack:///./~/babel-runtime/~/core-js/library/modules/_has.js?ddd0","webpack:///./~/babel-runtime/~/core-js/library/modules/_is-object.js?cfda","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-keys.js?5d2e","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-iobject.js?527c","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-object.js?ca4f","webpack:///./src/utils/dom-utils.js?0816","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/~/core-js/library/modules/_defined.js?932b","webpack:///./~/babel-runtime/~/core-js/library/modules/_property-desc.js?256b","webpack:///./~/babel-runtime/~/core-js/library/modules/_shared-key.js?5602","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-integer.js?09ce","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js?ae27","webpack:///./src/utils/easing.js?f6e9","webpack:///./src/utils/interval-function.js?c7e7","webpack:///./~/babel-runtime/core-js/get-iterator.js?1b08","webpack:///./~/babel-runtime/core-js/number/is-integer.js?14ca","webpack:///./~/babel-runtime/core-js/object/assign.js?e6ca","webpack:///./~/babel-runtime/~/core-js/library/modules/_a-function.js?0699","webpack:///./~/babel-runtime/~/core-js/library/modules/_classof.js?4e04","webpack:///./~/babel-runtime/~/core-js/library/modules/_cof.js?7381","webpack:///./~/babel-runtime/~/core-js/library/modules/_ctx.js?4e59","webpack:///./~/babel-runtime/~/core-js/library/modules/_dom-create.js?612f","webpack:///./~/babel-runtime/~/core-js/library/modules/_enum-bug-keys.js?3254","webpack:///./~/babel-runtime/~/core-js/library/modules/_iobject.js?34ed","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-define.js?4272","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-pie.js?a26b","webpack:///./~/babel-runtime/~/core-js/library/modules/_set-to-string-tag.js?57a7","webpack:///./~/babel-runtime/~/core-js/library/modules/_shared.js?f1ee","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-length.js?f510","webpack:///./~/babel-runtime/~/core-js/library/modules/_uid.js?c10a","webpack:///./~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js?8a45","webpack:///./~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js?7e82","webpack:///./src/accordion/accordion.js?021c","webpack:///./src/carousel/carousel.js?7189","webpack:///./src/collapsible/collapsible.js?8da8","webpack:///./src/formatfield/formatfield.js?602e","webpack:///./src/index.js?9552","webpack:///./src/lightboard/lightboard.js?4a51","webpack:///./src/lightbox/lightbox.js?4a9b","webpack:///./src/menu-button/menu-button.js?292f","webpack:///./src/selectfield/selectfield.js?4310","webpack:///./src/sticky-header/sticky-header.js?0ce9","webpack:///./src/utils/index.js?d310","webpack:///./~/babel-runtime/core-js/array/from.js?efc2","webpack:///./~/babel-runtime/core-js/is-iterable.js?350e","webpack:///./~/babel-runtime/core-js/number/is-nan.js?f039","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/babel-runtime/core-js/object/entries.js?41f9","webpack:///./~/babel-runtime/core-js/object/keys.js?fe06","webpack:///./~/babel-runtime/core-js/reflect/apply.js?a3c1","webpack:///./~/babel-runtime/helpers/slicedToArray.js?39c4","webpack:///./~/babel-runtime/~/core-js/library/fn/array/from.js?56e0","webpack:///./~/babel-runtime/~/core-js/library/fn/get-iterator.js?cf7c","webpack:///./~/babel-runtime/~/core-js/library/fn/is-iterable.js?f64a","webpack:///./~/babel-runtime/~/core-js/library/fn/number/is-integer.js?17db","webpack:///./~/babel-runtime/~/core-js/library/fn/number/is-nan.js?e8e9","webpack:///./~/babel-runtime/~/core-js/library/fn/object/assign.js?2fc7","webpack:///./~/babel-runtime/~/core-js/library/fn/object/define-property.js?4d33","webpack:///./~/babel-runtime/~/core-js/library/fn/object/entries.js?eb23","webpack:///./~/babel-runtime/~/core-js/library/fn/object/keys.js?0e2b","webpack:///./~/babel-runtime/~/core-js/library/fn/reflect/apply.js?1fe6","webpack:///./~/babel-runtime/~/core-js/library/modules/_add-to-unscopables.js?7da3","webpack:///./~/babel-runtime/~/core-js/library/modules/_array-includes.js?3a79","webpack:///./~/babel-runtime/~/core-js/library/modules/_create-property.js?f892","webpack:///./~/babel-runtime/~/core-js/library/modules/_html.js?8916","webpack:///./~/babel-runtime/~/core-js/library/modules/_ie8-dom-define.js?b102","webpack:///./~/babel-runtime/~/core-js/library/modules/_is-array-iter.js?a9d0","webpack:///./~/babel-runtime/~/core-js/library/modules/_is-integer.js?9053","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-call.js?45cd","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-create.js?0359","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-detect.js?e400","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-step.js?8944","webpack:///./~/babel-runtime/~/core-js/library/modules/_library.js?08a9","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-assign.js?82ff","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-create.js?9175","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-dps.js?73bc","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-gops.js?a865","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-gpo.js?5ec8","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-keys-internal.js?6fa8","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-sap.js?2605","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-to-array.js?205b","webpack:///./~/babel-runtime/~/core-js/library/modules/_redefine.js?350a","webpack:///./~/babel-runtime/~/core-js/library/modules/_string-at.js?8678","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-index.js?7bea","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-primitive.js?1a65","webpack:///./~/babel-runtime/~/core-js/library/modules/core.get-iterator.js?74ea","webpack:///./~/babel-runtime/~/core-js/library/modules/core.is-iterable.js?be30","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.array.from.js?f8ab","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js?8359","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.number.is-integer.js?a48c","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.number.is-nan.js?7944","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.assign.js?07f0","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.define-property.js?8bde","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.keys.js?dfa4","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.reflect.apply.js?2b77","webpack:///./~/babel-runtime/~/core-js/library/modules/es7.object.entries.js?872a","webpack:///./src/mdl-ext-build.scss?16f6"],"names":["VK_TAB","VK_ENTER","VK_ESC","VK_SPACE","VK_PAGE_UP","VK_PAGE_DOWN","VK_END","VK_HOME","VK_ARROW_LEFT","VK_ARROW_UP","VK_ARROW_RIGHT","VK_ARROW_DOWN","ARIA_EXPANDED","ARIA_HIDDEN","ARIA_MULTISELECTABLE","ARIA_SELECTED","IS_DIRTY","IS_DISABLED","IS_EXPANDED","IS_FOCUSED","IS_INVALID","IS_UPGRADED","DATA_UPGRADED","MDL_RIPPLE","MDL_RIPPLE_COMPONENT","MDL_RIPPLE_EFFECT","MDL_RIPPLE_EFFECT_IGNORE_EVENTS","fullThrottle","callback","context","window","throttling","args","requestAnimationFrame","jsonStringToObject","jsonString","source","s","replace","JSON","parse","e","Error","message","stringList","isString","str","flatten","list","reduce","a","b","concat","Array","isArray","objectToStrings","arg","filter","key","map","result","joinStrings","delimiter","join","randomString","n","Math","random","toString","slice","removeChildElements","element","forceReflow","lastChild","removeChild","d","style","display","moveElements","target","ownerDocument","createDocumentFragment","firstChild","appendChild","getWindowViewport","viewportWidth","max","document","documentElement","clientWidth","innerWidth","viewportHeight","clientHeight","innerHeight","isRectInsideWindowViewport","top","left","bottom","right","getScrollParents","elements","el","parentNode","cs","getComputedStyle","overflowY","overflowX","unshift","body","getParentElements","from","to","tether","controlledBy","controlRect","getBoundingClientRect","height","offsetHeight","width","offsetWidth","elementRect","dy","dx","ddy","ddx","r","offsetTop","offsetLeft","isFocusable","hasAttribute","tabindex","getAttribute","parseInt","selector","name","nodeName","test","type","toLowerCase","disabled","href","getPropertyValue","easeInOutQuad","t","c","inOutQuintic","ts","tc","MIN_INERVAL","intervalFunction","interval","lapse","cb","undefined","next","timeElapsed","execute","f","cancel","cancelAnimationFrame","start","timeStart","Date","now","loop","started","value","TypeError","immediate","ReferenceError","stop","ACCORDION","ACCORDION_VERTICAL","ACCORDION_HORIZONTAL","PANEL","PANEL_ROLE","TAB","TAB_CAPTION","TAB_ROLE","TABPANEL","TABPANEL_ROLE","RIPPLE_EFFECT","RIPPLE","ANIMATION_EFFECT","ANIMATION","MaterialExtAccordion","element_","init","accordionPanelElements","panel","tab","tabpanel","classList","contains","querySelector","prototype","commandHandler_","event","preventDefault","stopPropagation","detail","command","dispatchToggleEvent_","state","ce","CustomEvent","bubbles","cancelable","dispatchEvent","openTab_","add","setAttribute","removeAttribute","closeTab_","remove","toggleTab_","closeTabs_","openTabs_","querySelectorAll","forEach","closedItem","upgradeTab","tabElement","disableTab","enableTab","calcMaxTabCaptionWidth","tabCaption","w","children","v","maxWidth","selectTab","selectedTab","tabClickHandler","tabFocusHandler","tabpanelClickHandler","tabpanelFocusHandler","tabKeydownHandler","keyCode","nextTab","nextPanel","previousElementSibling","nextElementSibling","focus","removeEventListener","addEventListener","openTab","closeTab","toggleTab","action","bind","componentHandler","register","constructor","classAsString","cssClass","widget","MDL_RIPPLE_CONTAINER","SLIDE","ROLE","SLIDE_ROLE","MaterialExtCarousel","config_","interactive","autostart","animationLoop","scrollAnimation_","startSlideShow_","nextSlide","slide","animateScroll_","moveSlideIntoViewport_","emitSelectEvent_","nextScroll","nextDirection","direction","scrollLeft","scrollWidth","x","min","cancelSlideShow_","newPosition","newDuration","completedCallback","distance","duration","abs","command_","setAriaSelected_","slides","getSlidesInViewport_","length","keyDownHandler_","cmd","getSlide_","shiftKey","setFocus_","dragHandler_","updating","rAFDragId","startX","clientX","touches","prevX","targetElement","update","currentX","drag","endDrag","clickHandler_","focusHandler_","blurHandler_","evt","carouselRect","slidesInViewport","slideRect","removeListeners_","mdlDowngrade_","closest","addRipple_","rippleContainer","createElement","ripple","img","title","upgradeElement","stopAnimation","upgradeSlides","hasRippleEffect","getConfig","JS_COLLAPSIBLE","COLLAPSIBLE_CONTROL_CLASS","COLLAPSIBLE_GROUP_CLASS","COLLAPSIBLE_REGION_CLASS","Collapsible","controlElement_","keyDownHandler","controlElement","MouseEvent","view","clickHandler","isDisabled","p","push","find","toggle","isExpanded","dispatchToggleEvent","regions","regionElements","i","region","collapse","expand","regionId","ids","regionIds","id","role","addRegionId","initControl","initRegions","addRegionElement","addListeners","removeListeners","split","MaterialExtCollapsible","collapsible","downgrade","getControlElement","getRegionElements","addRegionElements","removeRegionElements","removeRegionElement","disableToggle","enableToggle","JS_FORMAT_FIELD","FORMAT_FIELD_COMPONENT","browserLanguage","navigator","languages","language","userLanguage","FormatField","options_","clearTimeout","timer","focusInHandler","input","readOnly","unformatInput","setTimeout","select","focusOutHandler","formatValue","doReplace","RegExp","options","groupSeparator","decimalSeparator","intlGroupSeparator_","intlDecimalSeparator_","Intl","NumberFormat","locales","format","stripSeparatorsFromValue","fixSeparators","addOptions","opts","addLocale","addGrouping","toLocaleString","useGrouping","minimumFractionDigits","maximumFractionDigits","charAt","input_","MaterialExtFormatfield","formatField_","getOptions","getUnformattedValue","unformat","LIGHTBOARD_ROLE","SLIDE_TABSTOP","MaterialExtLightboard","getSlide","selectSlide_","selectedSlide","dispatchSelectEvent_","addRipple","firstSlide","lastSlide","prevSlide","keydownHandler","focusHandler","LIGHTBOX","LIGHTBOX_SLIDER","LIGHTBOX_SLIDER_SLIDE","STICKY_FOOTER","BUTTON","MaterialExtLightbox","dispatchAction_","buttonClickHandler_","repositionDialog_","footerHeight","footer","isSticky","reposition","dialog","fh","position","scrollTop","topValue","lightboxElement","naturalWidth","vh","imgLoadHandler_","imgDragHandler_","setStyles","properties","opacity","slider","textContent","src","button","figcaption","JS_MENU_BUTTON","MENU_BUTTON_MENU","MENU_BUTTON_MENU_ITEM","MENU_BUTTON_MENU_ITEM_SEPARATOR","menuFactory","ariaControls","removeAllSelected","selectedItem","setSelected","item","force","getSelected","isSeparator","nextItem","current","firstElementChild","previousItem","lastElementChild","firstItem","lastItem","selectItem","close","blurHandler","relatedTarget","explicitOriginalTarget","activeElement","shouldClose","err","touchStartHandler","open","btn","forceFocus","addWaiAria","menuitem","selected","MenuButton","openMenu","closeMenu","recalcMenuPosition","focusElement","focusElementLastScrollPosition","parseFloat","menu","positionChangeHandler","closeMenuHandler","dispatchMenuSelect","scrollElements","addFocusElement","tagName","moveElementToDocumentBody","findMenuElement","menuElement","menuElementId","addMenu","componentInstance","related","indexOf","MaterialExtMenuButton","menuButton_","getMenuElement","getSelectedMenuItem","setSelectedMenuItem","LABEL","INPUT","MaterialExtSelectfield","onFocus_","onBlur_","onReset_","updateClasses_","checkDisabled","checkValidity","checkDirty","checkFocus","select_","Boolean","disable","enable","change","label_","invalid","MDL_LAYOUT_CONTENT","IS_SCROLL_CLASS","MaterialExtStickyHeader","header_","content_","lastScrollTop_","visibleAtScrollEnd","mutationObserver_","drawing_","recalcWidth_","throttleResize","self","resizeHandler_","reposition_","currentContentScrollTop","scrollDiff","headerTop","scrollHeight","throttleScroll","scrollHandler_","updatePosition_","addMutationObserver_","MutationObserver","observe","attributes","childList","characterData","subtree","disconnect","paddingTop"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACtCA,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;;;;;AAEA,KAAMA,SAAiB,CAAvB;AACA,KAAMC,WAAiB,EAAvB;AACA,KAAMC,SAAiB,EAAvB;AACA,KAAMC,WAAiB,EAAvB;AACA,KAAMC,aAAiB,EAAvB;AACA,KAAMC,eAAiB,EAAvB;AACA,KAAMC,SAAiB,EAAvB;AACA,KAAMC,UAAiB,EAAvB;AACA,KAAMC,gBAAiB,EAAvB;AACA,KAAMC,cAAiB,EAAvB;AACA,KAAMC,iBAAiB,EAAvB;AACA,KAAMC,gBAAiB,EAAvB;;AAEA,KAAMC,gBAAuB,eAA7B;AACA,KAAMC,cAAuB,aAA7B;AACA,KAAMC,uBAAuB,sBAA7B;AACA,KAAMC,gBAAuB,eAA7B;;AAEA,KAAMC,WAAgB,UAAtB;AACA,KAAMC,cAAgB,aAAtB;AACA,KAAMC,cAAgB,aAAtB;AACA,KAAMC,aAAgB,YAAtB;AACA,KAAMC,aAAgB,YAAtB;AACA,KAAMC,cAAgB,aAAtB;AACA,KAAMC,gBAAgB,eAAtB;;AAEA,KAAMC,aAAkC,YAAxC;AACA,KAAMC,uBAAkC,gBAAxC;AACA,KAAMC,oBAAkC,sBAAxC;AACA,KAAMC,kCAAkC,qCAAxC;;SAGE1B,M,GAAAA,M;SACAC,Q,GAAAA,Q;SACAC,M,GAAAA,M;SACAC,Q,GAAAA,Q;SACAC,U,GAAAA,U;SACAC,Y,GAAAA,Y;SACAC,M,GAAAA,M;SACAC,O,GAAAA,O;SACAC,a,GAAAA,a;SACAC,W,GAAAA,W;SACAC,c,GAAAA,c;SACAC,a,GAAAA,a;SACAC,a,GAAAA,a;SACAC,W,GAAAA,W;SACAC,oB,GAAAA,oB;SACAC,a,GAAAA,a;SACAC,Q,GAAAA,Q;SACAC,W,GAAAA,W;SACAC,W,GAAAA,W;SACAC,U,GAAAA,U;SACAC,U,GAAAA,U;SACAC,W,GAAAA,W;SACAC,a,GAAAA,a;SACAC,U,GAAAA,U;SACAC,oB,GAAAA,oB;SACAC,iB,GAAAA,iB;SACAC,+B,GAAAA,+B;;;;;;AC5DF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE;AACA,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,gBAAe;AACf,iBAAgB;AAChB,0B;;;;;;AC5DA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wB;;;;;;ACVA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC;AACA;AACA;AACA;AACA,G;;;;;;ACJA,qB;;;;;;ACAA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,8CAA6C,gBAAgB;AAC7D;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACpBA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,UAAU;AACb;AACA;AACA;AACA,G;;;;;;;;;;;;;;;;;;ACfA;;;;;;;;;;;;;;;AAeA,KAAMC,eAAe,SAAfA,YAAe,CAACC,QAAD,EAAWC,OAAX,EAAuB;;AAE1C,OAAI,CAACA,OAAL,EAAc;AACZA,e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B;;;;;;;AClFf,mBAAkB,wD;;;;;;ACAlB,mBAAkB,wD;;;;;;ACAlB,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA,IAAG,UAAU;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACtBA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA,c;;;;;;ACHA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACrEA,eAAc,sB;;;;;;ACAd;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;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;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;AACA;;AAEA;AACA,2FAAgF,aAAa,EAAE;;AAE/F;AACA,sDAAqD,0BAA0B;AAC/E;AACA,G;;;;;;ACZA;AACA;;AAEA;AACA;AACA,gCAA+B,qBAAqB;AACpD,gCAA+B,SAAS,EAAE;AAC1C,EAAC,UAAU;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,SAAS,mBAAmB;AACvD,gCAA+B,aAAa;AAC5C;AACA,IAAG,UAAU;AACb;AACA,G;;;;;;ACpBA;AACA,WAAU;AACV,G;;;;;;ACFA,uB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,UAAU,EAAE;AAC9C,oBAAmB,sCAAsC;AACzD,EAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC,W;;;;;;AChCD;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;;;;;;ACxCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,G;;;;;;ACZA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA,oDAAmD,OAAO,EAAE;AAC5D,G;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,G;;;;;;ACfA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yEAA0E,kBAAkB,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,gCAAgC;AACpF;AACA;AACA,MAAK;AACL;AACA,kCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;ACpCD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA;AACA;;AAEA,+BAA8B,mCAAoC,E;;;;;;ACHlE;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA,2CAA0C,gCAAoC,E;;;;;;ACH9E;AACA;AACA,qEAAuE,0CAA0C,E;;;;;;ACFjH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;AACA;AACA;AACA,sDAAmD;AACnD;AACA;AACA;AACA,sBAAqB;AACrB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACfD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD,0C","file":"mdl-ext.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"mdl-ext\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mdl-ext\"] = factory();\n\telse\n\t\troot[\"mdl-ext\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition\n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 80c672803f0b3533e5b7\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 80c672803f0b3533e5b7","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_core.js\n// module id = 1\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_core.js\n// module id = 1\n// module chunks = 0 1","'use strict';\n\nconst VK_TAB = 9;\nconst VK_ENTER = 13;\nconst VK_ESC = 27;\nconst VK_SPACE = 32;\nconst VK_PAGE_UP = 33;\nconst VK_PAGE_DOWN = 34;\nconst VK_END = 35;\nconst VK_HOME = 36;\nconst VK_ARROW_LEFT = 37;\nconst VK_ARROW_UP = 38;\nconst VK_ARROW_RIGHT = 39;\nconst VK_ARROW_DOWN = 40;\n\nconst ARIA_EXPANDED = 'aria-expanded';\nconst ARIA_HIDDEN = 'aria-hidden';\nconst ARIA_MULTISELECTABLE = 'aria-multiselectable';\nconst ARIA_SELECTED = 'aria-selected';\n\nconst IS_DIRTY = 'is-dirty';\nconst IS_DISABLED = 'is-disabled';\nconst IS_EXPANDED = 'is-expanded';\nconst IS_FOCUSED = 'is-focused';\nconst IS_INVALID = 'is-invalid';\nconst IS_UPGRADED = 'is-upgraded';\nconst DATA_UPGRADED = 'data-upgraded';\n\nconst MDL_RIPPLE = 'mdl-ripple';\nconst MDL_RIPPLE_COMPONENT = 'MaterialRipple';\nconst MDL_RIPPLE_EFFECT = 'mdl-js-ripple-effect';\nconst MDL_RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\nexport {\n VK_TAB,\n VK_ENTER,\n VK_ESC,\n VK_SPACE,\n VK_PAGE_UP,\n VK_PAGE_DOWN ,\n VK_END,\n VK_HOME,\n VK_ARROW_LEFT,\n VK_ARROW_UP,\n VK_ARROW_RIGHT,\n VK_ARROW_DOWN ,\n ARIA_EXPANDED,\n ARIA_HIDDEN,\n ARIA_MULTISELECTABLE,\n ARIA_SELECTED,\n IS_DIRTY,\n IS_DISABLED,\n IS_EXPANDED,\n IS_FOCUSED,\n IS_INVALID,\n IS_UPGRADED,\n DATA_UPGRADED ,\n MDL_RIPPLE,\n MDL_RIPPLE_COMPONENT,\n MDL_RIPPLE_EFFECT,\n MDL_RIPPLE_EFFECT_IGNORE_EVENTS\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/constants.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/constants.js","var global = require('./_global')\n , core = require('./_core')\n , ctx = require('./_ctx')\n , hide = require('./_hide')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE]\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(a, b, c){\n if(this instanceof C){\n switch(arguments.length){\n case 0: return new C;\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if(IS_PROTO){\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_export.js\n// module id = 3\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_export.js\n// module id = 3\n// module chunks = 0 1","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_wks.js\n// module id = 4\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_wks.js\n// module id = 4\n// module chunks = 0 1","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_global.js\n// module id = 5\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_global.js\n// module id = 5\n// module chunks = 0 1","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_an-object.js\n// module id = 6\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_an-object.js\n// module id = 6\n// module chunks = 0 1","module.exports = {};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iterators.js\n// module id = 7\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iterators.js\n// module id = 7\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/toConsumableArray.js\n// module id = 8\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/toConsumableArray.js\n// module id = 8\n// module chunks = 0 1","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_descriptors.js\n// module id = 9\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_descriptors.js\n// module id = 9\n// module chunks = 0 1","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_fails.js\n// module id = 10\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_fails.js\n// module id = 10\n// module chunks = 0 1","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_hide.js\n// module id = 11\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_hide.js\n// module id = 11\n// module chunks = 0 1","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dp.js\n// module id = 12\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dp.js\n// module id = 12\n// module chunks = 0 1","/**\n * Since some events can fire at a high rate, the event handler should be limited to execute computationally\n * expensive operations, such as DOM modifications, inside a single rendered frame.\n * When listening to e.g. scroll and resize events, the browser tends to fire off more events per\n * second than are actually useful. For instance, if your event listener sets some element positions, then it\n * is possible for those positions to be updated multiple times in a single rendered frame. In this case, all of\n * the layout calculations triggered by setting the elements' positions will be wasted except for the one time that\n * it runs immediately prior to the browser rendering the updated layout to the screen.\n * To avoid wasting cycles, we can use requestAnimationFrame to only run the event listener once just before the page\n * is rendered to the screen.\n * *\n * @param callback the function to throttle\n * @param context optional context of this, default to global\n * @return {function(...[*])}\n */\nconst fullThrottle = (callback, context) => {\n\n if (!context) {\n context = this || window;\n }\n\n let throttling = false;\n\n return (...args) => {\n if(!throttling) {\n throttling = true;\n window.requestAnimationFrame( () => {\n throttling = false;\n return Reflect.apply(callback, context, args);\n });\n }\n };\n};\n\nexport default fullThrottle;\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/full-throttle.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/full-throttle.js","'use strict';\n\n/**\n * Converts a JSON string to object\n * @param jsonString\n * @param source\n */\nconst jsonStringToObject = (jsonString, source = {} ) => {\n const s = jsonString.replace(/'/g, '\"');\n try {\n return Object.assign(source, JSON.parse(s));\n }\n catch (e) {\n throw new Error(`Failed to parse json string: ${s}. Error: ${e.message}`);\n }\n};\n\nexport { jsonStringToObject };\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/json-utils.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/json-utils.js","'use strict';\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A javascript utility for conditionally creating a list of strings.\n * The function takes any number of arguments which can be a string or object.\n * Inspired by (but not copied from) JedWatson/classnames, https://github.com/JedWatson/classnames\n *\n * @param {*} args the strings and/or objects to\n * @return {Array} a list of strings\n * @example\n * // Returns ['foo', 'bar', 'baz', 'quux']\n * stringList(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });\n * @example see the tests for more examples\n */\nconst stringList = (...args) => {\n\n const isString = str => str != null && typeof str === 'string';\n\n const flatten = list => list.reduce((a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []);\n\n const objectToStrings = arg =>\n Object.keys(arg)\n .filter(key => arg[key])\n .map(key => key);\n\n return args\n .filter(arg => !!arg)\n .map(arg => isString(arg) ? arg : objectToStrings(arg))\n .reduce((result, arg) => result.concat(Array.isArray(arg) ? flatten(arg) : arg), []);\n};\n\n/**\n * A simple javascript utility for conditionally joining strings together.\n * The function takes a delimiter string and any number of arguments which can be a string or object.\n *\n * @param delimiter delimiter to separate joined strings\n * @param {*} args the strings and/or objects to join\n * @return {String} the joined strings\n * @example\n * // Returns 'foo, bar, baz, quux'\n * joinStrings(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });\n * @example see the tests for more examples\n */\nconst joinStrings = (delimiter = ' ', ...args) => stringList(...args).join(delimiter);\n\n/**\n * Generates a random string with a given length\n * @param n {Integer} length of generated string\n * @see http://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript\n * @return {String} the random string\n * @example\n * // Returns e.g. 'pd781w0y'\n * randomString(8);\n * @example see the tests for more examples\n */\nconst randomString = ( n=12 ) => Array( n+1 ).join((`${Math.random().toString(36)}00000000000000000`).slice(2, 18)).slice(0, n);\n\nexport { joinStrings, randomString, stringList };\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/string-utils.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/string-utils.js","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_has.js\n// module id = 16\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_has.js\n// module id = 16\n// module chunks = 0 1","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-object.js\n// module id = 17\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-object.js\n// module id = 17\n// module chunks = 0 1","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys.js\n// module id = 18\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys.js\n// module id = 18\n// module chunks = 0 1","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-iobject.js\n// module id = 19\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-iobject.js\n// module id = 19\n// module chunks = 0 1","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-object.js\n// module id = 20\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-object.js\n// module id = 20\n// module chunks = 0 1","/**\n * Remove child element(s)\n * element.innerHTNL = '' has a performance penality!\n * @see http://jsperf.com/empty-an-element/16\n * @see http://jsperf.com/force-reflow\n * @param element\n * @param forceReflow\n */\nconst removeChildElements = (element, forceReflow = true) => {\n\n // See: http://jsperf.com/empty-an-element/16\n while (element.lastChild) {\n element.removeChild(element.lastChild);\n }\n if(forceReflow) {\n // See: http://jsperf.com/force-reflow\n const d = element.style.display;\n\n element.style.display = 'none';\n element.style.display = d;\n }\n};\n\n/**\n * Moves child elements from a DOM node to another dom node.\n * @param source {HTMLElement}\n * @param target {HTMLElement} If the target parameter is ommited, a document fragment is created\n * @return {HTMLElement} The target node\n *\n * @example\n * // Moves child elements from a DOM node to another dom node.\n * moveElements(source, destination);\n *\n * @example\n * // If the second parameter is ommited, a document fragment is created:\n * let fragment = moveElements(source);\n *\n * @See: https://github.com/webmodules/dom-move\n */\nconst moveElements = (source, target) => {\n if (!target) {\n target = source.ownerDocument.createDocumentFragment();\n }\n while (source.firstChild) {\n target.appendChild(source.firstChild);\n }\n return target;\n};\n\n\n/**\n * Get the browser viewport dimensions\n * @see http://stackoverflow.com/questions/1248081/get-the-browser-viewport-dimensions-with-javascript\n * @return {{windowWidth: number, windowHeight: number}}\n */\nconst getWindowViewport = () => {\n return {\n viewportWidth: Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),\n viewportHeight: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0)\n };\n};\n\n\n/**\n * Check whether an element is in the window viewport\n * @see http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport/\n * @param top\n * @param left\n * @param bottom\n * @param right\n * @return {boolean} true if rectangle is inside window viewport, otherwise false\n */\nconst isRectInsideWindowViewport = ({ top, left, bottom, right }) => {\n const { viewportWidth, viewportHeight } = getWindowViewport();\n return top >= 0 &&\n left >= 0 &&\n bottom <= viewportHeight &&\n right <= viewportWidth;\n};\n\n\n/**\n * Get a list of parent elements that can possibly scroll\n * @param el the element to get parents for\n * @returns {Array}\n */\nconst getScrollParents = el => {\n const elements = [];\n\n /*\n for (el = el.parentNode; el; el = el.parentNode) {\n const cs = window.getComputedStyle(el);\n if(!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {\n elements.unshift(el);\n }\n if(el === document.body) {\n break;\n }\n }\n */\n\n let element = el.parentNode;\n while (element) {\n const cs = window.getComputedStyle(element);\n if(!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {\n elements.unshift(element);\n }\n if(element === document.body) {\n break;\n }\n element = element.parentNode;\n }\n\n return elements;\n};\n\n/**\n * Get a list of parent elements, from a given element to a given element\n * @param {HTMLElement} from\n * @param {HTMLElement} to\n * @return {Array<HTMLElement>} the parent elements, not including from and to\n */\nconst getParentElements = (from, to) => {\n const result = [];\n let element = from.parentNode;\n while (element) {\n if(element === to) {\n break;\n }\n result.unshift(element);\n element = element.parentNode;\n }\n return result;\n};\n\n/**\n * Position element next to button\n *\n * Positioning strategy\n * 1. element.height > viewport.height\n * let element.height = viewport.heigt\n * let element.overflow-y = auto\n * 2. element.width > viewport.width\n * let element.width = viewport.width\n * 3. position element below button, align left edge of element with button left\n * done if element inside viewport\n * 4. position element below button, align right edge of element with button right\n * done if element inside viewport\n * 5. positions element above button, aligns left edge of element with button left\n * done if element inside viewport\n * 6. position element above the control element, aligned to its right.\n * done if element inside viewport\n * 7. position element at button right hand side, aligns element top with button top\n * done if element inside viewport\n * 8. position element at button left hand side, aligns element top with button top\n * done if element inside viewport\n * 9. position element inside viewport\n * 1. position element at viewport bottom\n * 2. position element at button right hand side\n * done if element inside viewport\n * 3. position element at button left hand side\n * done if element inside viewport\n * 4. position element at viewport right\n * 10. done\n *\n */\nconst tether = (controlledBy, element) => {\n const controlRect = controlledBy.getBoundingClientRect();\n\n // 1. will element height fit inside window viewport?\n const { viewportWidth, viewportHeight } = getWindowViewport();\n\n element.style.height = 'auto';\n //element.style.overflowY = 'hidden';\n if(element.offsetHeight > viewportHeight) {\n element.style.height = `${viewportHeight}px`;\n element.style.overflowY = 'auto';\n }\n\n // 2. will element width fit inside window viewport?\n element.style.width = 'auto';\n if(element.offsetWidth > viewportWidth) {\n element.style.width = `${viewportWidth}px`;\n }\n\n const elementRect = element.getBoundingClientRect();\n\n // element to control distance\n const dy = controlRect.top - elementRect.top;\n const dx = controlRect.left - elementRect.left;\n\n // element rect, window coordinates relative to top,left of control\n const top = elementRect.top + dy;\n const left = elementRect.left + dx;\n const bottom = top + elementRect.height;\n const right = left + elementRect.width;\n\n // Position relative to control\n let ddy = dy;\n let ddx = dx;\n\n if(isRectInsideWindowViewport({\n top: top + controlRect.height,\n left: left,\n bottom: bottom + controlRect.height,\n right: right\n })) {\n // 3 position element below the control element, aligned to its left\n ddy = controlRect.height + dy;\n //console.log('***** 3');\n }\n else if(isRectInsideWindowViewport({\n top: top + controlRect.height,\n left: left + controlRect.width - elementRect.width,\n bottom: bottom + controlRect.height,\n right: left + controlRect.width\n })) {\n // 4 position element below the control element, aligned to its right\n ddy = controlRect.height + dy;\n ddx = dx + controlRect.width - elementRect.width;\n //console.log('***** 4');\n }\n else if(isRectInsideWindowViewport({\n top: top - elementRect.height,\n left: left,\n bottom: bottom - elementRect.height,\n right: right\n })) {\n // 5. position element above the control element, aligned to its left.\n ddy = dy - elementRect.height;\n //console.log('***** 5');\n }\n else if(isRectInsideWindowViewport({\n top: top - elementRect.height,\n left: left + controlRect.width - elementRect.width,\n bottom: bottom - elementRect.height,\n right: left + controlRect.width\n })) {\n // 6. position element above the control element, aligned to its right.\n ddy = dy - elementRect.height;\n ddx = dx + controlRect.width - elementRect.width;\n //console.log('***** 6');\n }\n else if(isRectInsideWindowViewport({\n top: top,\n left: left + controlRect.width,\n bottom: bottom,\n right: right + controlRect.width\n })) {\n // 7. position element at button right hand side\n ddx = controlRect.width + dx;\n //console.log('***** 7');\n }\n else if(isRectInsideWindowViewport({\n top: top,\n left: left - controlRect.width,\n bottom: bottom,\n right: right - controlRect.width\n })) {\n // 8. position element at button left hand side\n ddx = dx - elementRect.width;\n //console.log('***** 8');\n }\n else {\n // 9. position element inside viewport, near controlrect if possible\n //console.log('***** 9');\n\n // 9.1 position element near controlrect bottom\n ddy = dy - bottom + viewportHeight;\n if(top + controlRect.height >= 0 && bottom + controlRect.height <= viewportHeight) {\n ddy = controlRect.height + dy;\n }\n else if(top - elementRect.height >= 0 && bottom - elementRect.height <= viewportHeight) {\n ddy = dy - elementRect.height;\n }\n\n if(left + elementRect.width + controlRect.width <= viewportWidth) {\n // 9.2 Position element at button right hand side\n ddx = controlRect.width + dx;\n //console.log('***** 9.2');\n }\n else if(left - elementRect.width >= 0) {\n // 9.3 Position element at button left hand side\n ddx = dx - elementRect.width;\n //console.log('***** 9.3');\n }\n else {\n // 9.4 position element at (near) viewport right\n const r = left + elementRect.width - viewportWidth;\n ddx = dx - r;\n //console.log('***** 9.4');\n }\n }\n\n // 10. done\n element.style.top = `${element.offsetTop + ddy}px`;\n element.style.left = `${element.offsetLeft + ddx}px`;\n //console.log('***** 10. done');\n};\n\n/**\n * Check if the given element can receive focus\n * @param {HTMLElement} element the element to check\n * @return {boolean} true if the element is focusable, otherwise false\n */\nconst isFocusable = (element) => {\n // https://github.com/stephenmathieson/is-focusable/blob/master/index.js\n // http://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus\n\n if (element.hasAttribute('tabindex')) {\n const tabindex = element.getAttribute('tabindex');\n if (!Number.isNaN(tabindex)) {\n return parseInt(tabindex) > -1;\n }\n }\n\n if (element.hasAttribute('contenteditable') &&\n element.getAttribute('contenteditable') !== 'false') {\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable\n return true;\n }\n\n // natively focusable, but only when enabled\n const selector = /input|select|textarea|button|details/i;\n const name = element.nodeName;\n if (selector.test(name)) {\n return element.type.toLowerCase() !== 'hidden' && !element.disabled;\n }\n\n // anchors and area must have an href\n if (name === 'A' || name === 'AREA') {\n return !!element.href;\n }\n\n if (name === 'IFRAME') {\n // Check visible iframe\n const cs = window.getComputedStyle(element);\n return cs.getPropertyValue('display').toLowerCase() !== 'none';\n }\n\n return false;\n};\n\n\n/**\n * Get a list of offset parents for given element\n * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript\n * @param el the element\n * @return {Array} a list of offset parents\n */\n/*\nconst offsetParents = (el) => {\n const elements = [];\n for (; el; el = el.offsetParent) {\n elements.unshift(el);\n }\n if(!elements.find(e => e === document.body)) {\n elements.unshift(document.body);\n }\n return elements;\n};\n*/\n\n/**\n * Finds the common offset ancestor of two DOM nodes\n * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript\n * @see https://gist.github.com/benpickles/4059636\n * @param a\n * @param b\n * @return {Element} The common offset ancestor of a and b\n */\n/*\nconst commonOffsetAncestor = (a, b) => {\n const parentsA = offsetParents(a);\n const parentsB = offsetParents(b);\n\n for (let i = 0; i < parentsA.length; i++) {\n if (parentsA[i] !== parentsB[i]) return parentsA[i-1];\n }\n};\n*/\n\n/**\n * Calculate position relative to a target element\n * @see http://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively\n * @param target\n * @param el\n * @return {{top: number, left: number}}\n */\n/*\nconst calcPositionRelativeToTarget = (target, el) => {\n let top = 0;\n let left = 0;\n\n while(el) {\n top += (el.offsetTop - el.scrollTop + el.clientTop) || 0;\n left += (el.offsetLeft - el.scrollLeft + el.clientLeft) || 0;\n el = el.offsetParent;\n\n if(el === target) {\n break;\n }\n }\n return { top: top, left: left };\n};\n*/\n\nexport {\n getWindowViewport,\n getParentElements,\n getScrollParents,\n isFocusable,\n isRectInsideWindowViewport,\n moveElements,\n removeChildElements,\n tether,\n};\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/dom-utils.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/dom-utils.js","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/classCallCheck.js\n// module id = 22\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/classCallCheck.js\n// module id = 22\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/createClass.js\n// module id = 23\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/createClass.js\n// module id = 23\n// module chunks = 0 1","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_defined.js\n// module id = 24\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_defined.js\n// module id = 24\n// module chunks = 0 1","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_property-desc.js\n// module id = 25\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_property-desc.js\n// module id = 25\n// module chunks = 0 1","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared-key.js\n// module id = 26\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared-key.js\n// module id = 26\n// module chunks = 0 1","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-integer.js\n// module id = 27\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-integer.js\n// module id = 27\n// module chunks = 0 1","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js\n// module id = 28\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js\n// module id = 28\n// module chunks = 0 1","'use strict';\n\n// See: http://robertpenner.com/easing/\n\nconst easeInOutQuad = (t, b, c, d) => {\n t /= d / 2;\n if(t < 1) return c / 2 * t * t + b;\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n};\n\nconst inOutQuintic = (t, b, c, d) => {\n const ts = (t/=d)*t;\n const tc = ts*t;\n return b+c*(6*tc*ts + -15*ts*ts + 10*tc);\n};\n\nexport { easeInOutQuad, inOutQuintic };\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/easing.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/easing.js","const MIN_INERVAL = 1000/60;\n\n/**\n * Trigger a callback at a given interval\n * @param interval defaults to 1000/60 ms\n * @return {function()} reference to start, stop, immediate and started\n */\n\nconst intervalFunction = ( interval = MIN_INERVAL ) => {\n\n let lapse = interval < MIN_INERVAL ? MIN_INERVAL : interval;\n let cb = undefined;\n let next = null;\n let timeElapsed = 0;\n\n const execute = () => {\n const f = cb(timeElapsed);\n if (!f) {\n cancel();\n }\n };\n\n const cancel = () => {\n if(next) {\n window.cancelAnimationFrame(next);\n }\n next = null;\n timeElapsed = 0;\n };\n\n const start = () => {\n let timeStart = Date.now();\n\n const loop = now => {\n if (next) {\n next = window.requestAnimationFrame( () => loop( Date.now() ));\n\n timeElapsed += now - timeStart;\n\n if(timeElapsed >= lapse) {\n execute();\n if( (timeElapsed -= lapse) > lapse) {\n // time elapsed - interval_ > interval_ , indicates inactivity\n // Could be due to browser minimized, tab changed, screen saver started, computer sleep, and so on\n timeElapsed = 0;\n }\n }\n timeStart = now;\n }\n };\n\n next = 1; // a truthy value for first loop\n loop( timeStart );\n };\n\n return {\n get started() {\n return next != null;\n },\n get interval() {\n return lapse;\n },\n set interval(value) {\n lapse = value < MIN_INERVAL ? MIN_INERVAL : value;\n },\n start(callback) {\n if(typeof callback !== 'function') {\n throw new TypeError('callback parameter must be a function');\n }\n cb = callback;\n start();\n },\n immediate() {\n if(!cb) {\n throw new ReferenceError('callback parameter is not defined. Call start before immediate.');\n }\n execute();\n },\n stop: () => cancel(),\n };\n};\n\nexport default intervalFunction;\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/interval-function.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/interval-function.js","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/get-iterator.js\n// module id = 31\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/get-iterator.js\n// module id = 31\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/number/is-integer\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-integer.js\n// module id = 32\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-integer.js\n// module id = 32\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/assign.js\n// module id = 33\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/assign.js\n// module id = 33\n// module chunks = 0 1","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_a-function.js\n// module id = 34\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_a-function.js\n// module id = 34\n// module chunks = 0 1","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n try {\n return it[key];\n } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_classof.js\n// module id = 35\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_classof.js\n// module id = 35\n// module chunks = 0 1","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_cof.js\n// module id = 36\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_cof.js\n// module id = 36\n// module chunks = 0 1","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ctx.js\n// module id = 37\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ctx.js\n// module id = 37\n// module chunks = 0 1","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_dom-create.js\n// module id = 38\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_dom-create.js\n// module id = 38\n// module chunks = 0 1","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_enum-bug-keys.js\n// module id = 39\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_enum-bug-keys.js\n// module id = 39\n// module chunks = 0 1","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iobject.js\n// module id = 40\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iobject.js\n// module id = 40\n// module chunks = 0 1","'use strict';\nvar LIBRARY = require('./_library')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , hide = require('./_hide')\n , has = require('./_has')\n , Iterators = require('./_iterators')\n , $iterCreate = require('./_iter-create')\n , setToStringTag = require('./_set-to-string-tag')\n , getPrototypeOf = require('./_object-gpo')\n , ITERATOR = require('./_wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n , methods, key, IteratorPrototype;\n // Fix native\n if($anyNative){\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n if(IteratorPrototype !== Object.prototype){\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-define.js\n// module id = 41\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-define.js\n// module id = 41\n// module chunks = 0 1","exports.f = {}.propertyIsEnumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-pie.js\n// module id = 42\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-pie.js\n// module id = 42\n// module chunks = 0 1","var def = require('./_object-dp').f\n , has = require('./_has')\n , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_set-to-string-tag.js\n// module id = 43\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_set-to-string-tag.js\n// module id = 43\n// module chunks = 0 1","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared.js\n// module id = 44\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared.js\n// module id = 44\n// module chunks = 0 1","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-length.js\n// module id = 45\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-length.js\n// module id = 45\n// module chunks = 0 1","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_uid.js\n// module id = 46\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_uid.js\n// module id = 46\n// module chunks = 0 1","var classof = require('./_classof')\n , ITERATOR = require('./_wks')('iterator')\n , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js\n// module id = 47\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js\n// module id = 47\n// module chunks = 0 1","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js\n// module id = 48\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js\n// module id = 48\n// module chunks = 0 1","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * A WAI-ARIA friendly accordion component.\n * An accordion is a collection of expandable panels associated with a common outer container. Panels consist\n * of a header and an associated content region or tabpanel. The primary use of an Accordion is to present multiple sections\n * of content on a single page without scrolling, where all of the sections are peers in the application or object hierarchy.\n * The general look is similar to a tree where each root tree node is an expandable accordion header. The user navigates\n * and makes the contents of each panel visible (or not) by interacting with the Accordion Header\n */\n\nimport {\n VK_ENTER,\n VK_SPACE,\n VK_END,\n VK_HOME,\n VK_ARROW_LEFT,\n VK_ARROW_UP,\n VK_ARROW_RIGHT,\n VK_ARROW_DOWN,\n IS_EXPANDED,\n IS_UPGRADED,\n ARIA_MULTISELECTABLE,\n ARIA_EXPANDED,\n ARIA_HIDDEN,\n ARIA_SELECTED\n} from '../utils/constants';\n\n\n(function() {\n 'use strict';\n const ACCORDION = 'mdlext-accordion';\n const ACCORDION_VERTICAL = 'mdlext-accordion--vertical';\n const ACCORDION_HORIZONTAL = 'mdlext-accordion--horizontal';\n const PANEL = 'mdlext-accordion__panel';\n const PANEL_ROLE = 'presentation';\n const TAB = 'mdlext-accordion__tab';\n const TAB_CAPTION = 'mdlext-accordion__tab__caption';\n const TAB_ROLE = 'tab';\n const TABPANEL = 'mdlext-accordion__tabpanel';\n const TABPANEL_ROLE = 'tabpanel';\n const RIPPLE_EFFECT = 'mdlext-js-ripple-effect';\n const RIPPLE = 'mdlext-accordion__tab--ripple';\n const ANIMATION_EFFECT = 'mdlext-js-animation-effect';\n const ANIMATION = 'mdlext-accordion__tabpanel--animation';\n\n /**\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\n const MaterialExtAccordion = function MaterialExtAccordion( element ) {\n\n // Stores the Accordion HTML element.\n this.element_ = element;\n\n // Initialize instance.\n this.init();\n };\n window['MaterialExtAccordion'] = MaterialExtAccordion;\n\n\n // Helpers\n const accordionPanelElements = ( element ) => {\n if(!element) {\n return {\n panel: null,\n tab: null,\n tabpanel: null\n };\n }\n else if (element.classList.contains(PANEL)) {\n return {\n panel: element,\n tab: element.querySelector(`.${TAB}`),\n tabpanel: element.querySelector(`.${TABPANEL}`)\n };\n }\n else {\n return {\n panel: element.parentNode,\n tab: element.parentNode.querySelector(`.${TAB}`),\n tabpanel: element.parentNode.querySelector(`.${TABPANEL}`)\n };\n }\n };\n\n\n // Private methods.\n\n /**\n * Handles custom command event, 'open', 'close', 'toggle' or upgrade\n * @param event. A custom event\n * @private\n */\n MaterialExtAccordion.prototype.commandHandler_ = function( event ) {\n event.preventDefault();\n event.stopPropagation();\n\n if(event && event.detail) {\n this.command(event.detail);\n }\n };\n\n /**\n * Dispatch toggle event\n * @param {string} state\n * @param {Element} tab\n * @param {Element} tabpanel\n * @private\n */\n MaterialExtAccordion.prototype.dispatchToggleEvent_ = function ( state, tab, tabpanel ) {\n const ce = new CustomEvent('toggle', {\n bubbles: true,\n cancelable: true,\n detail: { state: state, tab: tab, tabpanel: tabpanel }\n });\n this.element_.dispatchEvent(ce);\n };\n\n /**\n * Open tab\n * @param {Element} panel\n * @param {Element} tab\n * @param {Element} tabpanel\n * @private\n */\n MaterialExtAccordion.prototype.openTab_ = function( panel, tab, tabpanel ) {\n panel.classList.add(IS_EXPANDED);\n tab.setAttribute(ARIA_EXPANDED, 'true');\n tabpanel.removeAttribute('hidden');\n tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n this.dispatchToggleEvent_('open', tab, tabpanel);\n };\n\n /**\n * Close tab\n * @param {Element} panel\n * @param {Element} tab\n * @param {Element} tabpanel\n * @private\n */\n MaterialExtAccordion.prototype.closeTab_ = function( panel, tab, tabpanel ) {\n panel.classList.remove(IS_EXPANDED);\n tab.setAttribute(ARIA_EXPANDED, 'false');\n tabpanel.setAttribute('hidden', '');\n tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n this.dispatchToggleEvent_('close', tab, tabpanel);\n };\n\n /**\n * Toggle tab\n * @param {Element} panel\n * @param {Element} tab\n * @param {Element} tabpanel\n * @private\n */\n MaterialExtAccordion.prototype.toggleTab_ = function( panel, tab, tabpanel ) {\n if( !(this.element_.hasAttribute('disabled') || tab.hasAttribute('disabled')) ) {\n if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n this.closeTab_(panel, tab, tabpanel);\n }\n else {\n if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() !== 'true') {\n this.closeTabs_();\n }\n this.openTab_(panel, tab, tabpanel);\n }\n }\n };\n\n /**\n * Open tabs\n * @private\n */\n MaterialExtAccordion.prototype.openTabs_ = function() {\n if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() === 'true') {\n [...this.element_.querySelectorAll(`.${ACCORDION} > .${PANEL}`)]\n .filter(panel => !panel.classList.contains(IS_EXPANDED))\n .forEach(closedItem => {\n const tab = closedItem.querySelector(`.${TAB}`);\n if (!tab.hasAttribute('disabled')) {\n this.openTab_(closedItem, tab, closedItem.querySelector(`.${TABPANEL}`));\n }\n });\n }\n };\n\n /**\n * Close tabs\n * @private\n */\n MaterialExtAccordion.prototype.closeTabs_ = function() {\n [...this.element_.querySelectorAll(`.${ACCORDION} > .${PANEL}.${IS_EXPANDED}`)]\n .forEach( panel => {\n const tab = panel.querySelector(`.${TAB}`);\n if(!tab.hasAttribute('disabled')) {\n this.closeTab_(panel, tab, panel.querySelector(`.${TABPANEL}`));\n }\n });\n };\n\n\n // Public methods.\n\n /**\n * Upgrade an individual accordion tab\n * @public\n * @param {Element} tabElement The HTML element for the accordion panel.\n */\n MaterialExtAccordion.prototype.upgradeTab = function( tabElement ) {\n\n const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n\n const disableTab = () => {\n panel.classList.remove(IS_EXPANDED);\n tab.setAttribute('tabindex', '-1');\n tab.setAttribute(ARIA_EXPANDED, 'false');\n tabpanel.setAttribute('hidden', '');\n tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n };\n\n const enableTab = () => {\n if(!tab.hasAttribute(ARIA_EXPANDED)) {\n tab.setAttribute(ARIA_EXPANDED, 'false');\n }\n\n tab.setAttribute('tabindex', '0');\n\n if(tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n panel.classList.add(IS_EXPANDED);\n tabpanel.removeAttribute('hidden');\n tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n }\n else {\n panel.classList.remove(IS_EXPANDED);\n tabpanel.setAttribute('hidden', '');\n tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n }\n };\n\n // In horizontal layout, caption must have a max-width defined to prevent pushing elements to the right of the caption out of view.\n // In JsDom, offsetWidth and offsetHeight properties do not work, so this function is not testable.\n /* istanbul ignore next */\n const calcMaxTabCaptionWidth = () => {\n\n const tabCaption = tab.querySelector(`.${TAB_CAPTION}`);\n if(tabCaption !== null) {\n const w = [...tab.children]\n .filter( el => el.classList && !el.classList.contains(TAB_CAPTION) )\n .reduce( (v, el) => v + el.offsetWidth, 0 );\n\n const maxWidth = tab.clientHeight - w;\n if(maxWidth > 0) {\n tabCaption.style['max-width'] = `${maxWidth}px`;\n }\n }\n };\n\n const selectTab = () => {\n if( !tab.hasAttribute(ARIA_SELECTED) ) {\n [...this.element_.querySelectorAll(`.${TAB}[aria-selected=\"true\"]`)].forEach(\n selectedTab => selectedTab.removeAttribute(ARIA_SELECTED)\n );\n tab.setAttribute(ARIA_SELECTED, 'true');\n }\n };\n\n const tabClickHandler = () => {\n this.toggleTab_(panel, tab, tabpanel);\n selectTab();\n };\n\n const tabFocusHandler = () => {\n selectTab();\n };\n\n const tabpanelClickHandler = () => {\n selectTab();\n };\n\n const tabpanelFocusHandler = () => {\n selectTab();\n };\n\n const tabKeydownHandler = e => {\n\n if(this.element_.hasAttribute('disabled')) {\n return;\n }\n\n if ( e.keyCode === VK_END || e.keyCode === VK_HOME\n || e.keyCode === VK_ARROW_UP || e.keyCode === VK_ARROW_LEFT\n || e.keyCode === VK_ARROW_DOWN || e.keyCode === VK_ARROW_RIGHT ) {\n\n let nextTab = null;\n let keyCode = e.keyCode;\n\n if (keyCode === VK_HOME) {\n nextTab = this.element_.querySelector(`.${PANEL}:first-child > .${TAB}`);\n if(nextTab && nextTab.hasAttribute('disabled')) {\n nextTab = null;\n keyCode = VK_ARROW_DOWN;\n }\n }\n else if (keyCode === VK_END) {\n nextTab = this.element_.querySelector(`.${PANEL}:last-child > .${TAB}`);\n if(nextTab && nextTab.hasAttribute('disabled')) {\n nextTab = null;\n keyCode = VK_ARROW_UP;\n }\n }\n\n if(!nextTab) {\n let nextPanel = panel;\n\n do {\n if (keyCode === VK_ARROW_UP || keyCode === VK_ARROW_LEFT) {\n nextPanel = nextPanel.previousElementSibling;\n if(!nextPanel) {\n nextPanel = this.element_.querySelector(`.${PANEL}:last-child`);\n }\n if (nextPanel) {\n nextTab = nextPanel.querySelector(`.${PANEL} > .${TAB}`);\n }\n }\n else if (keyCode === VK_ARROW_DOWN || keyCode === VK_ARROW_RIGHT) {\n nextPanel = nextPanel.nextElementSibling;\n if(!nextPanel) {\n nextPanel = this.element_.querySelector(`.${PANEL}:first-child`);\n }\n if (nextPanel) {\n nextTab = nextPanel.querySelector(`.${PANEL} > .${TAB}`);\n }\n }\n\n if(nextTab && nextTab.hasAttribute('disabled')) {\n nextTab = null;\n }\n else {\n break;\n }\n }\n while(nextPanel !== panel);\n }\n\n if (nextTab) {\n e.preventDefault();\n e.stopPropagation();\n nextTab.focus();\n\n // Workaround for JSDom testing:\n // In JsDom 'element.focus()' does not trigger any focus event\n if(!nextTab.hasAttribute(ARIA_SELECTED)) {\n\n [...this.element_.querySelectorAll(`.${TAB}[aria-selected=\"true\"]`)]\n .forEach( selectedTab => selectedTab.removeAttribute(ARIA_SELECTED) );\n\n nextTab.setAttribute(ARIA_SELECTED, 'true');\n }\n }\n }\n else if (e.keyCode === VK_ENTER || e.keyCode === VK_SPACE) {\n e.preventDefault();\n e.stopPropagation();\n this.toggleTab_(panel, tab, tabpanel);\n }\n };\n\n if(tab === null) {\n throw new Error('There must be a tab element for each accordion panel.');\n }\n\n if(tabpanel === null) {\n throw new Error('There must be a tabpanel element for each accordion panel.');\n }\n\n panel.setAttribute('role', PANEL_ROLE);\n tab.setAttribute('role', TAB_ROLE);\n tabpanel.setAttribute('role', TABPANEL_ROLE);\n\n if(tab.hasAttribute('disabled')) {\n disableTab();\n }\n else {\n enableTab();\n }\n\n if( this.element_.classList.contains(ACCORDION_HORIZONTAL)) {\n calcMaxTabCaptionWidth();\n }\n\n if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n tab.classList.add(RIPPLE);\n }\n\n if (this.element_.classList.contains(ANIMATION_EFFECT)) {\n tabpanel.classList.add(ANIMATION);\n }\n\n // Remove listeners, just in case ...\n tab.removeEventListener('click', tabClickHandler);\n tab.removeEventListener('focus', tabFocusHandler);\n tab.removeEventListener('keydown', tabKeydownHandler);\n tabpanel.removeEventListener('click', tabpanelClickHandler);\n tabpanel.removeEventListener('focus', tabpanelFocusHandler);\n\n tab.addEventListener('click', tabClickHandler);\n tab.addEventListener('focus', tabFocusHandler);\n tab.addEventListener('keydown', tabKeydownHandler);\n tabpanel.addEventListener('click', tabpanelClickHandler, true);\n tabpanel.addEventListener('focus', tabpanelFocusHandler, true);\n };\n MaterialExtAccordion.prototype['upgradeTab'] = MaterialExtAccordion.prototype.upgradeTab;\n\n\n /**\n * Execute command\n * @param detail\n */\n MaterialExtAccordion.prototype.command = function( detail ) {\n\n const openTab = tabElement => {\n\n if(tabElement === undefined) {\n this.openTabs_();\n }\n else if(tabElement !== null) {\n const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n if(tab.getAttribute(ARIA_EXPANDED).toLowerCase() !== 'true') {\n this.toggleTab_(panel, tab, tabpanel);\n }\n }\n };\n\n const closeTab = tabElement => {\n if(tabElement === undefined) {\n this.closeTabs_();\n }\n else if(tabElement !== null) {\n const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n\n if(tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n this.toggleTab_(panel, tab, tabpanel);\n }\n }\n };\n\n const toggleTab = tabElement => {\n if(tabElement) {\n const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n this.toggleTab_(panel, tab, tabpanel);\n }\n };\n\n\n if(detail && detail.action) {\n const { action, target } = detail;\n\n switch (action.toLowerCase()) {\n case 'open':\n openTab(target);\n break;\n case 'close':\n closeTab(target);\n break;\n case 'toggle':\n toggleTab(target);\n break;\n case 'upgrade':\n if(target) {\n this.upgradeTab(target);\n }\n break;\n default:\n throw new Error(`Unknown action \"${action}\". Action must be one of \"open\", \"close\", \"toggle\" or \"upgrade\"`);\n }\n }\n };\n MaterialExtAccordion.prototype['command'] = MaterialExtAccordion.prototype.command;\n\n\n /**\n * Initialize component\n */\n MaterialExtAccordion.prototype.init = function() {\n if (this.element_) {\n // Do the init required for this component to work\n if( !(this.element_.classList.contains(ACCORDION_HORIZONTAL) || this.element_.classList.contains(ACCORDION_VERTICAL))) {\n throw new Error(`Accordion must have one of the classes \"${ACCORDION_HORIZONTAL}\" or \"${ACCORDION_VERTICAL}\"`);\n }\n\n this.element_.setAttribute('role', 'tablist');\n\n if(!this.element_.hasAttribute(ARIA_MULTISELECTABLE)) {\n this.element_.setAttribute(ARIA_MULTISELECTABLE, 'false');\n }\n\n this.element_.removeEventListener('command', this.commandHandler_);\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n [...this.element_.querySelectorAll(`.${ACCORDION} > .${PANEL}`)].forEach( panel => this.upgradeTab(panel) );\n\n // Set upgraded flag\n this.element_.classList.add(IS_UPGRADED);\n }\n };\n\n\n /*\n * Downgrade component\n * E.g remove listeners and clean up resources\n *\n * Nothing to downgrade\n *\n MaterialExtAccordion.prototype.mdlDowngrade_ = function() {\n 'use strict';\n console.log('***** MaterialExtAccordion.mdlDowngrade');\n };\n */\n\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n componentHandler.register({\n constructor: MaterialExtAccordion,\n classAsString: 'MaterialExtAccordion',\n cssClass: 'mdlext-js-accordion',\n widget: true\n });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/accordion/accordion.js\n\n\n// WEBPACK FOOTER //\n// ./src/accordion/accordion.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * Image carousel\n */\n\nimport intervalFunction from '../utils/interval-function';\nimport { inOutQuintic } from '../utils/easing';\nimport { jsonStringToObject} from '../utils/json-utils';\nimport {\n VK_TAB,\n VK_ENTER,\n VK_ESC,\n VK_SPACE,\n VK_PAGE_UP,\n VK_PAGE_DOWN,\n VK_END,\n VK_HOME,\n VK_ARROW_LEFT,\n VK_ARROW_UP,\n VK_ARROW_RIGHT,\n VK_ARROW_DOWN,\n IS_UPGRADED,\n IS_FOCUSED,\n MDL_RIPPLE,\n MDL_RIPPLE_COMPONENT,\n MDL_RIPPLE_EFFECT,\n MDL_RIPPLE_EFFECT_IGNORE_EVENTS\n} from '../utils/constants';\n\nconst MDL_RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n\n\n(function() {\n 'use strict';\n\n //const CAROUSEL = 'mdlext-carousel';\n const SLIDE = 'mdlext-carousel__slide';\n const ROLE = 'list';\n const SLIDE_ROLE = 'listitem';\n\n\n /**\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\n const MaterialExtCarousel = function MaterialExtCarousel(element) {\n // Stores the element.\n this.element_ = element;\n\n // Default config\n this.config_ = {\n interactive : true,\n autostart : false,\n type : 'slide',\n interval : 1000,\n animationLoop: intervalFunction(1000)\n };\n\n this.scrollAnimation_ = intervalFunction(33);\n\n // Initialize instance.\n this.init();\n };\n\n window['MaterialExtCarousel'] = MaterialExtCarousel;\n\n\n /**\n * Start slideshow animation\n * @private\n */\n MaterialExtCarousel.prototype.startSlideShow_ = function() {\n\n const nextSlide = () => {\n let slide = this.element_.querySelector(`.${SLIDE}[aria-selected]`);\n if(slide) {\n slide.removeAttribute('aria-selected');\n slide = slide.nextElementSibling;\n }\n if(!slide) {\n slide = this.element_.querySelector(`.${SLIDE}:first-child`);\n this.animateScroll_(0);\n }\n if(slide) {\n this.moveSlideIntoViewport_(slide);\n slide.setAttribute('aria-selected', '');\n this.emitSelectEvent_('next', null, slide);\n return true;\n }\n return false;\n };\n\n const nextScroll = direction => {\n let nextDirection = direction;\n\n if('next' === direction && this.element_.scrollLeft === this.element_.scrollWidth - this.element_.clientWidth) {\n nextDirection = 'prev';\n }\n else if(this.element_.scrollLeft === 0) {\n nextDirection = 'next';\n }\n const x = 'next' === nextDirection\n ? Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth)\n : Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);\n\n this.animateScroll_(x, 1000);\n return nextDirection;\n };\n\n\n if(!this.config_.animationLoop.started) {\n this.config_.animationLoop.interval = this.config_.interval;\n let direction = 'next';\n\n if('scroll' === this.config_.type) {\n this.config_.animationLoop.start( () => {\n direction = nextScroll(direction);\n return true; // It runs until cancelSlideShow_ is triggered\n });\n }\n else {\n nextSlide();\n this.config_.animationLoop.start( () => {\n return nextSlide(); // It runs until cancelSlideShow_ is triggered\n });\n }\n }\n\n // TODO: Pause animation when carousel is not in browser viewport or user changes tab\n };\n\n /**\n * Cancel slideshow if running. Emmits a 'pause' event\n * @private\n */\n MaterialExtCarousel.prototype.cancelSlideShow_ = function() {\n if(this.config_.animationLoop.started) {\n this.config_.animationLoop.stop();\n this.emitSelectEvent_('pause', VK_ESC, this.element_.querySelector(`.${SLIDE}[aria-selected]`));\n }\n };\n\n /**\n * Animate scroll\n * @param newPosition\n * @param newDuration\n * @param completedCallback\n * @private\n */\n MaterialExtCarousel.prototype.animateScroll_ = function( newPosition, newDuration, completedCallback ) {\n\n const start = this.element_.scrollLeft;\n const distance = newPosition - start;\n\n if(distance !== 0) {\n const duration = Math.max(Math.min(Math.abs(distance), newDuration||400), 100); // duration is between 100 and newDuration||400ms||distance\n let t = 0;\n this.scrollAnimation_.stop();\n this.scrollAnimation_.start( timeElapsed => {\n t += timeElapsed;\n if(t < duration) {\n this.element_.scrollLeft = inOutQuintic(t, start, distance, duration);\n return true;\n }\n else {\n this.element_.scrollLeft = newPosition;\n if(completedCallback) {\n completedCallback();\n }\n return false;\n }\n });\n }\n else {\n if(completedCallback) {\n completedCallback();\n }\n }\n };\n\n /**\n * Execute commend\n * @param event\n * @private\n */\n MaterialExtCarousel.prototype.command_ = function( event ) {\n let x = 0;\n let slide = null;\n const a = event.detail.action.toLowerCase();\n\n // Cancel slideshow if running\n this.cancelSlideShow_();\n\n switch (a) {\n case 'first':\n slide = this.element_.querySelector(`.${SLIDE}:first-child`);\n break;\n\n case 'last':\n x = this.element_.scrollWidth - this.element_.clientWidth;\n slide = this.element_.querySelector(`.${SLIDE}:last-child`);\n break;\n\n case 'scroll-prev':\n x = Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);\n break;\n\n case 'scroll-next':\n x = Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth);\n break;\n\n case 'next':\n case 'prev':\n slide = this.element_.querySelector(`.${SLIDE}[aria-selected]`);\n if(slide) {\n slide = a === 'next' ? slide.nextElementSibling : slide.previousElementSibling;\n this.setAriaSelected_(slide);\n this.emitSelectEvent_(a, null, slide);\n }\n return;\n\n case 'play':\n Object.assign(this.config_, event.detail);\n this.startSlideShow_();\n return;\n\n case 'pause':\n return;\n\n default:\n return;\n }\n\n this.animateScroll_(x, undefined, () => {\n if ('scroll-next' === a || 'scroll-prev' === a) {\n const slides = this.getSlidesInViewport_();\n if (slides.length > 0) {\n slide = 'scroll-next' === a ? slides[0] : slides[slides.length - 1];\n }\n }\n this.setAriaSelected_(slide);\n this.emitSelectEvent_(a, null, slide);\n });\n };\n\n /**\n * Handles custom command event, 'scroll-prev', 'scroll-next', 'first', 'last', next, prev, play, pause\n * @param event. A custom event\n * @private\n */\n MaterialExtCarousel.prototype.commandHandler_ = function( event ) {\n event.preventDefault();\n event.stopPropagation();\n if(event.detail && event.detail.action) {\n this.command_(event);\n }\n };\n\n /**\n * Handle keypress\n * @param event\n * @private\n */\n MaterialExtCarousel.prototype.keyDownHandler_ = function(event) {\n\n if (event && event.target && event.target !== this.element_) {\n\n let action = 'first';\n\n if ( event.keyCode === VK_HOME || event.keyCode === VK_END\n || event.keyCode === VK_PAGE_UP || event.keyCode === VK_PAGE_DOWN) {\n\n event.preventDefault();\n if (event.keyCode === VK_END) {\n action = 'last';\n }\n else if (event.keyCode === VK_PAGE_UP) {\n action = 'scroll-prev';\n }\n else if (event.keyCode === VK_PAGE_DOWN) {\n action = 'scroll-next';\n }\n\n const cmd = new CustomEvent('select', {\n detail: {\n action: action,\n }\n });\n this.command_(cmd);\n }\n else if ( event.keyCode === VK_TAB\n || event.keyCode === VK_ENTER || event.keyCode === VK_SPACE\n || event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT\n || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\n let slide = getSlide_(event.target);\n\n if(!slide) {\n return;\n }\n\n // Cancel slideshow if running\n this.cancelSlideShow_();\n\n switch (event.keyCode) {\n case VK_ARROW_UP:\n case VK_ARROW_LEFT:\n action = 'prev';\n slide = slide.previousElementSibling;\n break;\n\n case VK_ARROW_DOWN:\n case VK_ARROW_RIGHT:\n action = 'next';\n slide = slide.nextElementSibling;\n break;\n\n case VK_TAB:\n if (event.shiftKey) {\n action = 'prev';\n slide = slide.previousElementSibling;\n }\n else {\n action = 'next';\n slide = slide.nextElementSibling;\n }\n break;\n\n case VK_SPACE:\n case VK_ENTER:\n action = 'select';\n break;\n }\n\n if(slide) {\n event.preventDefault();\n setFocus_(slide);\n this.emitSelectEvent_(action, event.keyCode, slide);\n }\n }\n }\n };\n\n /**\n * Handle dragging\n * @param event\n * @private\n */\n MaterialExtCarousel.prototype.dragHandler_ = function(event) {\n event.preventDefault();\n\n // Cancel slideshow if running\n this.cancelSlideShow_();\n\n let updating = false;\n let rAFDragId = 0;\n\n const startX = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n let prevX = startX;\n const targetElement = event.target;\n\n const update = e => {\n const currentX = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0));\n const dx = prevX - currentX;\n\n if(dx < 0) {\n this.element_.scrollLeft = Math.max(this.element_.scrollLeft + dx, 0);\n }\n else if(dx > 0) {\n this.element_.scrollLeft = Math.min(this.element_.scrollLeft + dx, this.element_.scrollWidth - this.element_.clientWidth);\n }\n\n prevX = currentX;\n updating = false;\n };\n\n // drag handler\n const drag = e => {\n e.preventDefault();\n\n if(!updating) {\n rAFDragId = window.requestAnimationFrame( () => update(e));\n updating = true;\n }\n };\n\n // end drag handler\n const endDrag = e => {\n e.preventDefault();\n\n this.element_.removeEventListener('mousemove', drag);\n this.element_.removeEventListener('touchmove', drag);\n window.removeEventListener('mouseup', endDrag);\n window.removeEventListener('touchend', endDrag);\n\n // cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/\n window.cancelAnimationFrame(rAFDragId);\n\n const slide = getSlide_(targetElement);\n setFocus_(slide);\n this.emitSelectEvent_('click', null, slide);\n };\n\n this.element_.addEventListener('mousemove', drag);\n this.element_.addEventListener('touchmove', drag);\n window.addEventListener('mouseup', endDrag);\n window.addEventListener('touchend',endDrag);\n };\n\n /**\n * Handle click\n * @param event\n * @private\n */\n MaterialExtCarousel.prototype.clickHandler_ = function(event) {\n // Click is handled by drag\n event.preventDefault();\n };\n\n /**\n * Handle focus\n * @param event\n * @private\n */\n MaterialExtCarousel.prototype.focusHandler_ = function(event) {\n const slide = getSlide_(event.target);\n if(slide) {\n // The last focused/selected slide has 'aria-selected', even if focus is lost\n this.setAriaSelected_(slide);\n slide.classList.add(IS_FOCUSED);\n }\n };\n\n /**\n * Handle blur\n * @param event\n * @private\n */\n MaterialExtCarousel.prototype.blurHandler_ = function(event) {\n const slide = getSlide_(event.target);\n if(slide) {\n slide.classList.remove(IS_FOCUSED);\n }\n };\n\n /**\n * Emits a custeom 'select' event\n * @param command\n * @param keyCode\n * @param slide\n * @private\n */\n MaterialExtCarousel.prototype.emitSelectEvent_ = function(command, keyCode, slide) {\n\n if(slide) {\n this.moveSlideIntoViewport_(slide);\n\n const evt = new CustomEvent('select', {\n bubbles: true,\n cancelable: true,\n detail: {\n command: command,\n keyCode: keyCode,\n source: slide\n }\n });\n this.element_.dispatchEvent(evt);\n }\n };\n\n /**\n * Get the first visible slide in component viewport\n * @private\n */\n MaterialExtCarousel.prototype.getSlidesInViewport_ = function() {\n const carouselRect = this.element_.getBoundingClientRect();\n\n const slidesInViewport = [...this.element_.querySelectorAll(`.${SLIDE}`)].filter( slide => {\n const slideRect = slide.getBoundingClientRect();\n return slideRect.left >= carouselRect.left && slideRect.right <= carouselRect.right;\n });\n return slidesInViewport;\n };\n\n /**\n * Move slide into component viewport - if needed\n * @param slide\n * @private\n */\n MaterialExtCarousel.prototype.moveSlideIntoViewport_ = function(slide) {\n const carouselRect = this.element_.getBoundingClientRect();\n const slideRect = slide.getBoundingClientRect();\n\n if(slideRect.left < carouselRect.left) {\n const x = this.element_.scrollLeft - (carouselRect.left - slideRect.left);\n this.animateScroll_(x);\n }\n else if(slideRect.right > carouselRect.right) {\n const x = this.element_.scrollLeft - (carouselRect.right - slideRect.right);\n this.animateScroll_(x);\n }\n };\n\n\n /**\n * Removes 'aria-selected' from all slides in carousel\n * @private\n */\n MaterialExtCarousel.prototype.setAriaSelected_ = function(slide) {\n if(slide) {\n [...this.element_.querySelectorAll(`.${SLIDE}[aria-selected]`)].forEach(\n slide => slide.removeAttribute('aria-selected')\n );\n slide.setAttribute('aria-selected', '');\n }\n };\n\n /**\n * Removes event listeners\n * @private\n */\n MaterialExtCarousel.prototype.removeListeners_ = function() {\n this.element_.removeEventListener('focus', this.focusHandler_);\n this.element_.removeEventListener('blur', this.blurHandler_);\n this.element_.removeEventListener('keydown', this.keyDownHandler_);\n this.element_.removeEventListener('mousedown', this.dragHandler_);\n this.element_.removeEventListener('touchstart', this.dragHandler_);\n this.element_.removeEventListener('click', this.clickHandler_, false);\n this.element_.removeEventListener('command', this.commandHandler_);\n this.element_.removeEventListener('mdl-componentdowngraded', this.mdlDowngrade_);\n };\n\n\n // Helpers\n const getSlide_ = element => {\n return element.closest(`.${SLIDE}`);\n };\n\n const setFocus_ = slide => {\n if(slide) {\n slide.focus();\n }\n };\n\n const addRipple_ = slide => {\n if(!slide.querySelector(`.${MDL_RIPPLE_CONTAINER}`)) {\n const rippleContainer = document.createElement('span');\n rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);\n rippleContainer.classList.add(MDL_RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(MDL_RIPPLE);\n rippleContainer.appendChild(ripple);\n\n const img = slide.querySelector('img');\n if (img) {\n // rippleContainer blocks image title\n rippleContainer.title = img.title;\n }\n slide.appendChild(rippleContainer);\n componentHandler.upgradeElement(rippleContainer, MDL_RIPPLE_COMPONENT);\n }\n };\n // End helpers\n\n\n // Public methods.\n\n /**\n * Cancel animation - if running.\n *\n * @public\n */\n MaterialExtCarousel.prototype.stopAnimation = function() {\n this.config_.animationLoop.stop();\n };\n MaterialExtCarousel.prototype['stopAnimation'] = MaterialExtCarousel.prototype.stopAnimation;\n\n\n /**\n * Upgrade slides\n * Use if more list elements are added later (dynamically)\n *\n * @public\n */\n MaterialExtCarousel.prototype.upgradeSlides = function() {\n\n const hasRippleEffect = this.element_.classList.contains(MDL_RIPPLE_EFFECT);\n\n [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach( slide => {\n\n slide.setAttribute('role', SLIDE_ROLE);\n\n if(this.config_.interactive) {\n if(!slide.getAttribute('tabindex')) {\n slide.setAttribute('tabindex', '0');\n }\n if (hasRippleEffect) {\n addRipple_(slide);\n }\n }\n else {\n slide.setAttribute('tabindex', '-1');\n }\n });\n };\n MaterialExtCarousel.prototype['upgradeSlides'] = MaterialExtCarousel.prototype.upgradeSlides;\n\n\n /**\n * Get config object\n *\n * @public\n */\n MaterialExtCarousel.prototype.getConfig = function() {\n return this.config_;\n };\n MaterialExtCarousel.prototype['getConfig'] = MaterialExtCarousel.prototype.getConfig;\n\n /**\n * Initialize component\n */\n MaterialExtCarousel.prototype.init = function() {\n\n if (this.element_) {\n // Config\n if(this.element_.hasAttribute('data-config')) {\n this.config_ = jsonStringToObject(this.element_.getAttribute('data-config'), this.config_);\n }\n\n // Wai-Aria\n this.element_.setAttribute('role', ROLE);\n\n // Prefer tabindex -1\n if(!Number.isInteger(this.element_.getAttribute('tabindex'))) {\n this.element_.setAttribute('tabindex', -1);\n }\n\n // Remove listeners, just in case ...\n this.removeListeners_();\n\n if(this.config_.interactive) {\n\n // Ripple\n const hasRippleEffect = this.element_.classList.contains(MDL_RIPPLE_EFFECT);\n if (hasRippleEffect) {\n this.element_.classList.add(MDL_RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n\n // Listen to focus/blur events\n this.element_.addEventListener('focus', this.focusHandler_.bind(this), true);\n this.element_.addEventListener('blur', this.blurHandler_.bind(this), true);\n\n // Listen to keyboard events\n this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this), false);\n\n // Listen to drag events\n this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), false);\n this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), false);\n\n // Listen to click events\n this.element_.addEventListener('click', this.clickHandler_.bind(this), false);\n }\n\n // Listen to custom 'command' event\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n // Listen to 'mdl-componentdowngraded' event\n this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n\n // Slides collection\n this.upgradeSlides();\n\n // Set upgraded flag\n this.element_.classList.add(IS_UPGRADED);\n\n if(this.config_.autostart) {\n // Start slideshow\n this.startSlideShow_();\n }\n }\n };\n\n /*\n * Downgrade component\n * E.g remove listeners and clean up resources\n */\n MaterialExtCarousel.prototype.mdlDowngrade_ = function() {\n 'use strict';\n //console.log('***** MaterialExtCarousel.mdlDowngrade_');\n\n // Stop animation - if any\n this.stopAnimation();\n\n // Remove listeners\n this.removeListeners_();\n };\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n componentHandler.register({\n constructor: MaterialExtCarousel,\n classAsString: 'MaterialExtCarousel',\n cssClass: 'mdlext-js-carousel',\n widget: true\n });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/carousel/carousel.js\n\n\n// WEBPACK FOOTER //\n// ./src/carousel/carousel.js","/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\n/**\n * A collapsible is a component to mark expandable and collapsible regions.\n * The component use the aria-expanded state to indicate whether regions of\n * the content are collapsible, and to expose whether a region is currently\n * expanded or collapsed.\n * @see https://www.w3.org/WAI/GL/wiki/Using_the_WAI-ARIA_aria-expanded_state_to_mark_expandable_and_collapsible_regions\n */\n\nimport {\n IS_UPGRADED,\n VK_SPACE,\n VK_ENTER,\n} from '../utils/constants';\n\nimport { randomString } from '../utils/string-utils';\nimport { getParentElements, isFocusable } from '../utils/dom-utils';\n\nconst JS_COLLAPSIBLE = 'mdlext-js-collapsible';\nconst COLLAPSIBLE_CONTROL_CLASS = 'mdlext-collapsible';\nconst COLLAPSIBLE_GROUP_CLASS = 'mdlext-collapsible-group';\nconst COLLAPSIBLE_REGION_CLASS = 'mdlext-collapsible-region';\n\n/**\n * The collapsible component\n */\n\nclass Collapsible {\n element_ = null;\n controlElement_ = null;\n\n /**\n * @constructor\n * @param {HTMLElement} element The element that this component is connected to.\n */\n constructor(element) {\n this.element_ = element;\n this.init();\n }\n\n keyDownHandler = event => {\n if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n event.preventDefault();\n\n // Trigger click\n (event.target || this.controlElement).dispatchEvent(\n new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n })\n );\n }\n };\n\n clickHandler = event => {\n if(!this.isDisabled) {\n if(event.target !== this.controlElement) {\n // Do not toggle if a focusable element inside the control element triggered the event\n const p = getParentElements(event.target, this.controlElement);\n p.push(event.target);\n if(p.find( el => isFocusable(el))) {\n return;\n }\n }\n this.toggle();\n }\n };\n\n get element() {\n return this.element_;\n }\n\n get controlElement() {\n return this.controlElement_;\n }\n\n get isDisabled() {\n return (this.controlElement.hasAttribute('disabled') &&\n this.controlElement.getAttribute('disabled').toLowerCase() !== 'false') ||\n (this.controlElement.hasAttribute('aria-disabled') &&\n this.controlElement.getAttribute('aria-disabled').toLowerCase() !== 'false');\n }\n\n get isExpanded() {\n return this.controlElement.hasAttribute('aria-expanded') &&\n this.controlElement.getAttribute('aria-expanded').toLowerCase() === 'true';\n }\n\n get regionIds() {\n return this.controlElement.hasAttribute('aria-controls')\n ? this.controlElement.getAttribute('aria-controls').split(' ')\n : [];\n }\n\n get regionElements() {\n return this.regionIds\n .map(id => document.querySelector(`#${id}`))\n .filter( el => el != null);\n }\n\n collapse() {\n if(!this.isDisabled && this.isExpanded) {\n if(this.dispatchToggleEvent('collapse')) {\n this.controlElement.setAttribute('aria-expanded', 'false');\n const regions = this.regionElements.slice(0);\n for (let i = regions.length - 1; i >= 0; --i) {\n regions[i].setAttribute('hidden', '');\n }\n }\n }\n }\n\n expand() {\n if(!this.isDisabled && !this.isExpanded) {\n if(this.dispatchToggleEvent('expand')) {\n this.controlElement.setAttribute('aria-expanded', 'true');\n this.regionElements.forEach(region => region.removeAttribute('hidden'));\n }\n }\n }\n\n toggle() {\n if (this.isExpanded) {\n this.collapse();\n }\n else {\n this.expand();\n }\n }\n\n dispatchToggleEvent(action) {\n return this.element.dispatchEvent(\n new CustomEvent('toggle', {\n bubbles: true,\n cancelable: true,\n detail: {\n action: action\n }\n })\n );\n }\n\n disableToggle() {\n this.controlElement.setAttribute('aria-disabled', true);\n }\n\n enableToggle() {\n this.controlElement.removeAttribute('aria-disabled');\n }\n\n addRegionId(regionId) {\n const ids = this.regionIds;\n if(!ids.find(id => regionId === id)) {\n ids.push(regionId);\n this.controlElement.setAttribute('aria-controls', ids.join(' '));\n }\n }\n\n addRegionElement(region) {\n if(!(region.classList.contains(COLLAPSIBLE_GROUP_CLASS) ||\n region.classList.contains(COLLAPSIBLE_REGION_CLASS))) {\n region.classList.add(COLLAPSIBLE_GROUP_CLASS);\n }\n\n if(!region.hasAttribute('role')) {\n const role = region.classList.contains(COLLAPSIBLE_GROUP_CLASS) ? 'group' : 'region';\n region.setAttribute('role', role);\n }\n\n if(!region.hasAttribute('id')) {\n region.id = `${region.getAttribute('role')}-${randomString()}`;\n }\n\n if(this.isExpanded) {\n region.removeAttribute('hidden');\n }\n else {\n region.setAttribute('hidden', '');\n }\n this.addRegionId(region.id);\n }\n\n removeRegionElement(region) {\n if(region && region.id) {\n const ids = this.regionIds.filter(id => id === region.id);\n this.controlElement.setAttribute('aria-controls', ids.join(' '));\n }\n }\n\n removeListeners() {\n this.controlElement.removeEventListener('keydown', this.keyDownHandler);\n this.controlElement.removeEventListener('click', this.clickHandler);\n }\n\n init() {\n const initControl = () => {\n // Find the button element\n this.controlElement_ = this.element.querySelector(`.${COLLAPSIBLE_CONTROL_CLASS}`) || this.element;\n\n // Add \"aria-expanded\" attribute if not present\n if(!this.controlElement.hasAttribute('aria-expanded')) {\n this.controlElement.setAttribute('aria-expanded', 'false');\n }\n\n // Add role=button if control != <button>\n if(this.controlElement.nodeName.toLowerCase() !== 'button') {\n this.controlElement.setAttribute('role', 'button');\n }\n\n // Add tabindex\n if(!isFocusable(this.controlElement) && !this.controlElement.hasAttribute('tabindex')) {\n this.controlElement.setAttribute('tabindex', '0');\n }\n };\n\n const initRegions = () => {\n let regions = [];\n if(!this.controlElement.hasAttribute('aria-controls')) {\n // Add siblings as collapsible region(s)\n let r = this.element.nextElementSibling;\n while(r) {\n if(r.classList.contains(COLLAPSIBLE_GROUP_CLASS) ||\n r.classList.contains(COLLAPSIBLE_REGION_CLASS)) {\n regions.push(r);\n }\n else if(r.classList.contains(JS_COLLAPSIBLE)) {\n // A new collapsible component\n break;\n }\n r = r.nextElementSibling;\n }\n }\n else {\n regions = this.regionElements;\n }\n regions.forEach(region => this.addRegionElement(region));\n };\n\n const addListeners = () => {\n this.controlElement.addEventListener('keydown', this.keyDownHandler);\n this.controlElement.addEventListener('click', this.clickHandler);\n };\n\n initControl();\n initRegions();\n this.removeListeners();\n addListeners();\n }\n\n downgrade() {\n this.removeListeners();\n }\n\n}\n\n(function() {\n 'use strict';\n\n /**\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\n const MaterialExtCollapsible = function MaterialExtCollapsible(element) {\n this.element_ = element;\n this.collapsible = null;\n\n // Initialize instance.\n this.init();\n };\n window['MaterialExtCollapsible'] = MaterialExtCollapsible;\n\n /**\n * Initialize component\n */\n MaterialExtCollapsible.prototype.init = function() {\n if (this.element_) {\n this.collapsible = new Collapsible(this.element_);\n this.element_.classList.add(IS_UPGRADED);\n\n // Listen to 'mdl-componentdowngraded' event\n this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n }\n };\n\n /*\n * Downgrade component\n * E.g remove listeners and clean up resources\n */\n MaterialExtCollapsible.prototype.mdlDowngrade_ = function() {\n this.collapsible.downgrade();\n };\n\n\n // Public methods.\n\n /**\n * Get control element.\n * @return {HTMLElement} element The element that controls the collapsible region.\n * @public\n */\n MaterialExtCollapsible.prototype.getControlElement = function() {\n return this.collapsible.controlElement;\n };\n MaterialExtCollapsible.prototype['getControlElement'] = MaterialExtCollapsible.prototype.getControlElement;\n\n /**\n * Get region elements controlled by this collapsible\n * @returns {Array<HTMLElement>} the collapsible region elements\n * @public\n */\n MaterialExtCollapsible.prototype.getRegionElements = function() {\n return this.collapsible.regionElements;\n };\n MaterialExtCollapsible.prototype['getRegionElements'] = MaterialExtCollapsible.prototype.getRegionElements;\n\n /**\n * Add region elements.\n * @param {Array<HTMLElement>} elements The element that will be upgraded.\n * @return {void}\n * @public\n */\n MaterialExtCollapsible.prototype.addRegionElements = function(...elements) {\n elements.forEach(element => this.collapsible.addRegionElement(element));\n };\n MaterialExtCollapsible.prototype['addRegionElements'] = MaterialExtCollapsible.prototype.addRegionElements;\n\n /**\n * Remove collapsible region(s) from component.\n * Note: This operation does not delete the element from the DOM tree.\n * @param {Array<HTMLElement>} elements The element that will be upgraded.\n * @public\n */\n MaterialExtCollapsible.prototype.removeRegionElements = function(...elements) {\n elements.forEach(element => this.collapsible.removeRegionElement(element));\n };\n MaterialExtCollapsible.prototype['removeRegionElements'] = MaterialExtCollapsible.prototype.removeRegionElements;\n\n /**\n * Expand collapsible region(s)\n * @return {void}\n * @public\n */\n MaterialExtCollapsible.prototype.expand = function() {\n this.collapsible.expand();\n };\n MaterialExtCollapsible.prototype['expand'] = MaterialExtCollapsible.prototype.expand;\n\n /**\n * Collapse collapsible region(s)\n * @return {void}\n * @public\n */\n MaterialExtCollapsible.prototype.collapse = function() {\n this.collapsible.collapse();\n };\n MaterialExtCollapsible.prototype['collapse'] = MaterialExtCollapsible.prototype.collapse;\n\n /**\n * Toggle collapsible region(s)\n * @return {void}\n * @public\n */\n MaterialExtCollapsible.prototype.toggle = function() {\n this.collapsible.toggle();\n };\n MaterialExtCollapsible.prototype['toggle'] = MaterialExtCollapsible.prototype.toggle;\n\n /**\n * Check whether component has aria-expanded state true\n * @return {Boolean} true if aria-expanded=\"true\", otherwise false\n */\n MaterialExtCollapsible.prototype.isExpanded = function() {\n return this.collapsible.isExpanded;\n };\n MaterialExtCollapsible.prototype['isExpanded'] = MaterialExtCollapsible.prototype.isExpanded;\n\n /**\n * Check whether component has aria-disabled state set to true\n * @return {Boolean} true if aria-disabled=\"true\", otherwise false\n */\n MaterialExtCollapsible.prototype.isDisabled = function() {\n return this.collapsible.isDisabled;\n };\n MaterialExtCollapsible.prototype['isDisabled'] = MaterialExtCollapsible.prototype.isDisabled;\n\n /**\n * Disables toggling of collapsible region(s)\n * @return {void}\n * @public\n */\n MaterialExtCollapsible.prototype.disableToggle = function() {\n this.collapsible.disableToggle();\n };\n MaterialExtCollapsible.prototype['disableToggle'] = MaterialExtCollapsible.prototype.disableToggle;\n\n /**\n * Enables toggling of collapsible region(s)\n * @return {void}\n * @public\n */\n MaterialExtCollapsible.prototype.enableToggle = function() {\n this.collapsible.enableToggle();\n };\n MaterialExtCollapsible.prototype['enableToggle'] = MaterialExtCollapsible.prototype.enableToggle;\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n componentHandler.register({\n constructor: MaterialExtCollapsible,\n classAsString: 'MaterialExtCollapsible',\n cssClass: JS_COLLAPSIBLE,\n widget: true\n });\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/collapsible/collapsible.js\n\n\n// WEBPACK FOOTER //\n// ./src/collapsible/collapsible.js","/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\nimport {jsonStringToObject} from '../utils/json-utils';\nimport {\n IS_UPGRADED,\n} from '../utils/constants';\n\nconst JS_FORMAT_FIELD = 'mdlext-js-formatfield';\nconst FORMAT_FIELD_COMPONENT = 'MaterialExtFormatfield';\n\n/**\n * Detect browser locale\n * @returns {string} the locale\n * @see http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference\n */\nconst browserLanguage = () => {\n return navigator.languages\n ? navigator.languages[0]\n : navigator.language || navigator.userLanguage;\n};\n\n/**\n * The formatfield formats an input field using language sensitive number formatting.\n */\n\nclass FormatField {\n static timer = null;\n\n element_;\n input_;\n options_ = {};\n intlGroupSeparator_;\n intlDecimalSeparator_;\n\n constructor(element) {\n this.element_ = element;\n this.init();\n }\n\n clickHandler = () => {\n clearTimeout(FormatField.timer);\n };\n\n focusInHandler = () => {\n if(!(this.input.readOnly || this.input.disabled)) {\n this.input.value = this.unformatInput();\n //setTimeout(() => this.input.setSelectionRange(0, this.input.value.length), 20);\n FormatField.timer = setTimeout(() => this.input.select(), 200);\n }\n };\n\n focusOutHandler = () => {\n clearTimeout(FormatField.timer);\n\n if(!(this.input.readOnly || this.input.disabled)) {\n this.formatValue();\n }\n };\n\n get element() {\n return this.element_;\n }\n\n get input() {\n return this.input_;\n }\n\n get options() {\n return this.options_;\n }\n\n stripSeparatorsFromValue() {\n const doReplace = () => this.input.value\n .replace(/\\s/g, '')\n .replace(new RegExp(this.options.groupSeparator, 'g'), '')\n .replace(this.options.decimalSeparator, '.');\n //.replace(this.intlGroupSeparator_, ''),\n //.replace(this.intlDecimalSeparator_, '.');\n\n return this.input.value ? doReplace() : this.input.value;\n }\n\n fixSeparators(value) {\n const doReplace = () => value\n .replace(new RegExp(this.intlGroupSeparator_, 'g'), this.options.groupSeparator)\n .replace(this.intlDecimalSeparator_, this.options.decimalSeparator);\n\n return value ? doReplace() : value;\n }\n\n formatValue() {\n if(this.input.value) {\n const v = new Intl.NumberFormat(this.options.locales, this.options)\n .format(this.stripSeparatorsFromValue());\n\n if('NaN' !== v) {\n this.input.value = this.fixSeparators(v);\n }\n }\n }\n\n unformat() {\n const doReplace = () => this.input.value\n .replace(/\\s/g, '')\n .replace(new RegExp(this.options.groupSeparator, 'g'), '')\n .replace(this.options.decimalSeparator, '.');\n\n return this.input.value ? doReplace() : this.input.value;\n }\n\n unformatInput() {\n const doReplace = () => this.input.value\n .replace(/\\s/g, '')\n .replace(new RegExp(this.options.groupSeparator, 'g'), '');\n\n return this.input.value ? doReplace() : this.input.value;\n }\n\n removeListeners() {\n this.input.removeEventListener('click', this.clickHandler);\n this.input.removeEventListener('focusin', this.focusInHandler);\n this.input.removeEventListener('focusout', this.focusOutHandler);\n }\n\n init() {\n const addListeners = () => {\n this.input.addEventListener('click', this.clickHandler);\n this.input.addEventListener('focusin', this.focusInHandler);\n this.input.addEventListener('focusout', this.focusOutHandler);\n };\n\n const addOptions = () => {\n const opts = this.element.getAttribute('data-formatfield-options') ||\n this.input.getAttribute('data-formatfield-options');\n if(opts) {\n this.options_ = jsonStringToObject(opts, this.options);\n }\n };\n\n const addLocale = () => {\n if(!this.options.locales) {\n this.options.locales = browserLanguage() || 'en-US'; //'nb-NO', //'en-US',\n }\n };\n\n const addGrouping = () => {\n const s = (1234.5).toLocaleString(this.options.locales, {\n style: 'decimal',\n useGrouping: true,\n minimumFractionDigits: 1,\n maximumFractionDigits: 1\n });\n\n this.intlGroupSeparator_ = s.charAt(1);\n this.intlDecimalSeparator_ = s.charAt(s.length-2);\n this.options.groupSeparator = this.options.groupSeparator || this.intlGroupSeparator_;\n this.options.decimalSeparator = this.options.decimalSeparator || this.intlDecimalSeparator_;\n\n if(this.options.groupSeparator === this.options.decimalSeparator) {\n const e = `Error! options.groupSeparator, \"${this.options.groupSeparator}\" ` +\n 'and options.decimalSeparator, ' +\n `\"${this.options.decimalSeparator}\" should not be equal`;\n throw new Error(e);\n }\n };\n\n this.input_ = this.element.querySelector('input') || this.element;\n\n addOptions();\n addLocale();\n addGrouping();\n this.formatValue();\n addListeners();\n }\n\n downgrade() {\n this.removeListeners();\n }\n\n}\n\n(function() {\n 'use strict';\n\n /**\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\n const MaterialExtFormatfield = function MaterialExtFormatfield(element) {\n this.element_ = element;\n this.formatField_ = null;\n\n // Initialize instance.\n this.init();\n };\n window['MaterialExtFormatfield'] = MaterialExtFormatfield;\n\n /**\n * Initialize component\n */\n MaterialExtFormatfield.prototype.init = function() {\n if (this.element_) {\n this.element_.classList.add(IS_UPGRADED);\n this.formatField_ = new FormatField(this.element_);\n\n // Listen to 'mdl-componentdowngraded' event\n this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n }\n };\n\n /**\n * Get options object\n *\n * @public\n *\n * @returns {Object} the options object\n */\n MaterialExtFormatfield.prototype.getOptions = function() {\n return this.formatField_.options;\n };\n MaterialExtFormatfield.prototype['getOptions'] = MaterialExtFormatfield.prototype.getOptions;\n\n\n /**\n * A unformatted value is a string value where the locale specific decimal separator\n * is replaced with a '.' separator and group separators are stripped.\n * The returned value is suitable for parsing to a JavaScript numerical value.\n *\n * @example\n * input.value = '1 234,5';\n * inputElement.MaterialExtFormatfield.getUnformattedValue();\n * // Returns '1234.5'\n *\n * @public\n *\n * @returns {String} the unformatted value\n */\n MaterialExtFormatfield.prototype.getUnformattedValue = function() {\n return this.formatField_.unformat();\n };\n MaterialExtFormatfield.prototype['getUnformattedValue'] = MaterialExtFormatfield.prototype.getUnformattedValue;\n\n /*\n * Downgrade component\n * E.g remove listeners and clean up resources\n */\n MaterialExtFormatfield.prototype.mdlDowngrade_ = function() {\n this.formatField_.downgrade();\n };\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n componentHandler.register({\n constructor: MaterialExtFormatfield,\n classAsString: FORMAT_FIELD_COMPONENT,\n cssClass: JS_FORMAT_FIELD,\n widget: true\n });\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/formatfield/formatfield.js\n\n\n// WEBPACK FOOTER //\n// ./src/formatfield/formatfield.js","import './utils';\nimport './accordion/accordion';\nimport './collapsible/collapsible';\nimport './carousel/carousel';\nimport './lightboard/lightboard';\nimport './lightbox/lightbox';\nimport './menu-button/menu-button';\nimport './selectfield/selectfield';\nimport './formatfield/formatfield';\nimport './sticky-header/sticky-header';\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * A lightboard is a translucent surface illuminated from behind, used for situations\n * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n */\n\nimport {\n VK_ENTER,\n VK_SPACE,\n VK_END,\n VK_HOME,\n VK_ARROW_LEFT,\n VK_ARROW_UP,\n VK_ARROW_RIGHT,\n VK_ARROW_DOWN,\n IS_UPGRADED,\n MDL_RIPPLE,\n MDL_RIPPLE_COMPONENT,\n MDL_RIPPLE_EFFECT,\n MDL_RIPPLE_EFFECT_IGNORE_EVENTS\n} from '../utils/constants';\n\nconst MDL_RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container';\n\n(function() {\n 'use strict';\n\n //const LIGHTBOARD = 'mdlext-lightboard';\n const LIGHTBOARD_ROLE = 'grid';\n const SLIDE = 'mdlext-lightboard__slide';\n const SLIDE_ROLE = 'gridcell';\n const SLIDE_TABSTOP = 'mdlext-lightboard__slide__frame';\n /**\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\n const MaterialExtLightboard = function MaterialExtLightboard(element) {\n // Stores the element.\n this.element_ = element;\n\n // Initialize instance.\n this.init();\n };\n window['MaterialExtLightboard'] = MaterialExtLightboard;\n\n\n // Helpers\n const getSlide = element => {\n return element ? element.closest(`.${SLIDE}`) : null;\n };\n\n\n\n // Private methods.\n\n /**\n * Select a slide, i.e. set aria-selected=\"true\"\n * @param element\n * @private\n */\n MaterialExtLightboard.prototype.selectSlide_ = function(element) {\n const slide = getSlide(element);\n if( slide && !slide.hasAttribute('aria-selected') ) {\n [...this.element_.querySelectorAll(`.${SLIDE}[aria-selected=\"true\"]`)]\n .forEach(selectedSlide => selectedSlide.removeAttribute('aria-selected'));\n\n slide.setAttribute('aria-selected', 'true');\n }\n };\n\n\n /**\n * Dispatch select event\n * @param {Element} slide The slide that caused the event\n * @private\n */\n MaterialExtLightboard.prototype.dispatchSelectEvent_ = function ( slide ) {\n this.element_.dispatchEvent(\n new CustomEvent('select', {\n bubbles: true,\n cancelable: true,\n detail: { source: slide }\n })\n );\n };\n\n /**\n * Handles custom command event, 'first', 'next', 'prev', 'last', 'select' or upgrade\n * @param event. A custom event\n * @private\n */\n MaterialExtLightboard.prototype.commandHandler_ = function( event ) {\n event.preventDefault();\n event.stopPropagation();\n\n if(event && event.detail) {\n this.command(event.detail);\n }\n };\n\n\n // Public methods\n\n /**\n * Initialize lightboard slides\n * @public\n */\n MaterialExtLightboard.prototype.upgradeSlides = function() {\n\n const addRipple = slide => {\n // Use slide frame as ripple container\n if(!slide.querySelector(`.${MDL_RIPPLE_CONTAINER}`)) {\n const a = slide.querySelector(`.${SLIDE_TABSTOP}`);\n if(a) {\n const rippleContainer = a;\n rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);\n rippleContainer.classList.add(MDL_RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(MDL_RIPPLE);\n rippleContainer.appendChild(ripple);\n componentHandler.upgradeElement(rippleContainer, MDL_RIPPLE_COMPONENT);\n }\n }\n };\n\n const hasRippleEffect = this.element_.classList.contains(MDL_RIPPLE_EFFECT);\n\n [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach( slide => {\n\n slide.setAttribute('role', SLIDE_ROLE);\n\n if(!slide.querySelector('a')) {\n slide.setAttribute('tabindex', '0');\n }\n if(hasRippleEffect) {\n addRipple(slide);\n }\n });\n };\n MaterialExtLightboard.prototype['upgradeSlides'] = MaterialExtLightboard.prototype.upgradeSlides;\n\n\n /**\n * Execute command\n * @param detail\n * @public\n */\n MaterialExtLightboard.prototype.command = function( detail ) {\n\n const firstSlide = () => {\n return this.element_.querySelector(`.${SLIDE}:first-child`);\n };\n\n const lastSlide = () => {\n return this.element_.querySelector(`.${SLIDE}:last-child`);\n };\n\n const nextSlide = () => {\n const slide = this.element_.querySelector(`.${SLIDE}[aria-selected=\"true\"]`).nextElementSibling;\n return slide ? slide : firstSlide();\n };\n\n const prevSlide = () => {\n const slide = this.element_.querySelector(`.${SLIDE}[aria-selected=\"true\"]`).previousElementSibling;\n return slide ? slide : lastSlide();\n };\n\n if(detail && detail.action) {\n\n const { action, target } = detail;\n\n let slide;\n switch (action.toLowerCase()) {\n case 'select':\n slide = getSlide(target);\n this.dispatchSelectEvent_(slide);\n break;\n case 'first':\n slide = firstSlide();\n break;\n case 'next':\n slide = nextSlide();\n break;\n case 'prev':\n slide = prevSlide();\n break;\n case 'last':\n slide = lastSlide();\n break;\n case 'upgrade':\n this.upgradeSlides();\n break;\n default:\n throw new Error(`Unknown action \"${action}\". Action must be one of \"first\", \"next\", \"prev\", \"last\", \"select\" or \"upgrade\"`);\n }\n\n if (slide) {\n const a = slide.querySelector('a');\n if (a) {\n a.focus();\n }\n else {\n slide.focus();\n }\n\n // Workaround for JSDom testing:\n // In JsDom 'element.focus()' does not trigger any focus event\n if(!slide.hasAttribute('aria-selected')) {\n this.selectSlide_(slide);\n }\n\n }\n }\n };\n MaterialExtLightboard.prototype['command'] = MaterialExtLightboard.prototype.command;\n\n\n /**\n * Initialize component\n */\n MaterialExtLightboard.prototype.init = function() {\n\n const keydownHandler = event => {\n\n if(event.target !== this.element_) {\n let action;\n let target;\n switch (event.keyCode) {\n case VK_HOME:\n action = 'first';\n break;\n case VK_END:\n action = 'last';\n break;\n case VK_ARROW_UP:\n case VK_ARROW_LEFT:\n action = 'prev';\n break;\n case VK_ARROW_DOWN:\n case VK_ARROW_RIGHT:\n action = 'next';\n break;\n case VK_ENTER:\n case VK_SPACE:\n action = 'select';\n target = event.target;\n break;\n }\n if(action) {\n event.preventDefault();\n event.stopPropagation();\n this.command( { action: action, target: target } );\n }\n }\n };\n\n const clickHandler = event => {\n event.preventDefault();\n event.stopPropagation();\n\n if(event.target !== this.element_) {\n this.command( { action: 'select', target: event.target } );\n }\n };\n\n const focusHandler = event => {\n event.preventDefault();\n event.stopPropagation();\n\n if(event.target !== this.element_) {\n this.selectSlide_(event.target);\n }\n };\n\n\n if (this.element_) {\n this.element_.setAttribute('role', LIGHTBOARD_ROLE);\n\n if (this.element_.classList.contains(MDL_RIPPLE_EFFECT)) {\n this.element_.classList.add(MDL_RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n\n // Remove listeners, just in case ...\n this.element_.removeEventListener('command', this.commandHandler_);\n this.element_.removeEventListener('keydown', keydownHandler);\n this.element_.removeEventListener('click', clickHandler);\n this.element_.removeEventListener('focus', focusHandler);\n\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n this.element_.addEventListener('keydown', keydownHandler, true);\n this.element_.addEventListener('click', clickHandler, true);\n this.element_.addEventListener('focus', focusHandler, true);\n\n this.upgradeSlides();\n\n this.element_.classList.add(IS_UPGRADED);\n }\n };\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n /* jshint undef:false */\n componentHandler.register({\n constructor: MaterialExtLightboard,\n classAsString: 'MaterialExtLightboard',\n cssClass: 'mdlext-js-lightboard',\n widget: true\n });\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/lightboard/lightboard.js\n\n\n// WEBPACK FOOTER //\n// ./src/lightboard/lightboard.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\n/**\n * Responsive Lightbox\n */\n\nimport fullThrottle from '../utils/full-throttle';\nimport {\n VK_ESC,\n VK_SPACE,\n VK_END,\n VK_HOME,\n VK_ARROW_LEFT,\n VK_ARROW_UP,\n VK_ARROW_RIGHT,\n VK_ARROW_DOWN,\n IS_UPGRADED\n} from '../utils/constants';\n\n(function() {\n 'use strict';\n\n const LIGHTBOX = 'mdlext-lightbox';\n const LIGHTBOX_SLIDER = 'mdlext-lightbox__slider';\n const LIGHTBOX_SLIDER_SLIDE = 'mdlext-lightbox__slider__slide';\n const STICKY_FOOTER = 'mdlext-lightbox--sticky-footer';\n const BUTTON = 'mdl-button';\n\n /**\n * https://github.com/google/material-design-lite/issues/4205\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\n const MaterialExtLightbox = function MaterialExtLightbox(element) {\n // Stores the element.\n this.element_ = element;\n\n // Initialize instance.\n this.init();\n };\n window['MaterialExtLightbox'] = MaterialExtLightbox;\n\n\n /**\n * Handle keypress\n * @param event\n * @private\n */\n MaterialExtLightbox.prototype.keyDownHandler_ = function(event) {\n\n if (event) {\n if ( event.keyCode === VK_ESC || event.keyCode === VK_SPACE\n || event.keyCode === VK_END || event.keyCode === VK_HOME\n || event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT\n || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\n if(event.keyCode !== VK_ESC) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n let action = 'first';\n if (event.keyCode === VK_END) {\n action = 'last';\n }\n else if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n action = 'prev';\n }\n else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n action = 'next';\n }\n else if (event.keyCode === VK_SPACE) {\n action = 'select';\n }\n else if (event.keyCode === VK_ESC) {\n action = 'cancel';\n }\n\n dispatchAction_(action, this);\n }\n }\n };\n\n /**\n * Handle button clicks\n * @param event\n * @private\n */\n MaterialExtLightbox.prototype.buttonClickHandler_ = function(event) {\n\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n\n dispatchAction_(this.getAttribute('data-action') || '', this);\n\n const n = this.closest(`.${LIGHTBOX}`);\n if(n) {\n n.focus();\n }\n }\n };\n\n /**\n * Dispatches an action custom event\n * @param action\n * @param source\n * @param target\n * @private\n */\n const dispatchAction_ = (action, source, target = source) => {\n\n target.dispatchEvent(new CustomEvent('action', {\n bubbles: true,\n cancelable: true,\n detail: {\n action: action || '',\n source: source\n }\n }));\n };\n\n /**\n * Reposition dialog if component parent element is \"DIALOG\"\n * @param lightboxElement\n * @private\n */\n const repositionDialog_ = lightboxElement => {\n const footerHeight = (footer, isSticky) => isSticky && footer ? footer.offsetHeight : 0;\n\n const reposition = (dialog, fh) => {\n if (window.getComputedStyle(dialog).position === 'absolute') {\n const scrollTop = document.body.scrollTop || document.documentElement.scrollTop;\n const topValue = scrollTop + (window.innerHeight - dialog.offsetHeight - fh) / 2;\n dialog.style.top = `${Math.max(scrollTop, topValue)}px`;\n }\n };\n\n const p = lightboxElement.parentNode;\n const dialog = p && p.nodeName === 'DIALOG' ? p : null;\n\n if(dialog && dialog.hasAttribute('open')) {\n lightboxElement.style.width = 'auto';\n lightboxElement.style.maxWidth = '100%';\n const img = lightboxElement.querySelector('img');\n if(img) {\n lightboxElement.style.maxWidth = img.naturalWidth !== undefined ? `${img.naturalWidth}px` : `${img.width}px` || '100%';\n }\n\n const fh = footerHeight(lightboxElement.querySelector('footer'), lightboxElement.classList.contains(STICKY_FOOTER));\n const vh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - fh;\n if (dialog.offsetHeight > vh) {\n let n = 0;\n while(dialog.offsetHeight > vh && ++n < 4) {\n lightboxElement.style.width = `${lightboxElement.offsetWidth * vh / lightboxElement.offsetHeight}px`;\n }\n }\n reposition(dialog, fh);\n }\n };\n\n /**\n * Handle image load\n * @param event\n * @private\n */\n\n MaterialExtLightbox.prototype.imgLoadHandler_ = function( /*event*/ ) {\n repositionDialog_(this);\n };\n\n\n /**\n * Handle image drag\n * @param event\n * @private\n */\n MaterialExtLightbox.prototype.imgDragHandler_ = function(event ) {\n\n const setStyles = ( element, properties ) => {\n //noinspection JSAnnotator\n for(const [key, value] of Object.entries(properties)) {\n element.style[key] = value;\n }\n // ... or:\n //for (const key in properties) {\n // element.style[key] = properties[key];\n //}\n };\n\n event.preventDefault();\n //event.stopPropagation();\n\n const x = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n\n const img = this;\n img.style.opacity = '0.2';\n\n const slider = document.createElement('div');\n slider.classList.add(LIGHTBOX_SLIDER);\n setStyles(slider, {'width': `${img.offsetWidth}px`, 'height': `${img.offsetHeight}px`} );\n\n let slide = document.createElement('div');\n slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n slide.textContent = '>';\n setStyles(slide, {\n 'width' : `${img.offsetWidth}px`,\n 'height' : `${img.offsetHeight}px`,\n 'line-height' : `${img.offsetHeight}px`,\n 'font-size' : `${img.offsetHeight/4}px`,\n 'text-align' : 'right',\n 'background-image': `url(\"${img.getAttribute('data-img-url-prev') || ''}\")`\n });\n slider.appendChild(slide);\n\n slide = document.createElement('div');\n slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n setStyles(slide, {\n 'width' : `${img.offsetWidth}px`,\n 'height' : `${img.offsetHeight}px`,\n 'background-image': `url(\"${img.src}\")`\n });\n slider.appendChild(slide);\n\n slide = document.createElement('div');\n slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n slide.textContent = '<';\n setStyles(slide, {\n 'width' : `${img.offsetWidth}px`,\n 'height' : `${img.offsetHeight}px`,\n 'line-height' : `${img.offsetHeight}px`,\n 'font-size' : `${img.offsetHeight/4}px`,\n 'text-align' : 'left',\n 'background-image': `url(\"${img.getAttribute('data-img-url-next') || ''}\")`\n });\n slider.appendChild(slide);\n\n img.parentNode.appendChild(slider);\n\n\n // drag handler\n const drag = e => {\n e.preventDefault();\n const dx = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0)) - x; // TODO: maybe rewrite to improve performance\n\n if(slider.offsetWidth - Math.abs(dx) > 19) {\n slider.style.left = `${dx}px`;\n }\n };\n\n // end drag handler\n const endDrag = e => {\n e.preventDefault();\n //e.stopPropagation();\n\n window.removeEventListener('mousemove', drag);\n window.removeEventListener('touchmove', drag);\n window.removeEventListener('mouseup', endDrag);\n window.removeEventListener('touchend', endDrag);\n\n const dx = slider.offsetLeft;\n img.parentNode.removeChild(slider);\n img.style.opacity = '1.0';\n\n if(Math.abs(dx) > 19) {\n dispatchAction_( (dx > 0 ? 'prev' : 'next') , img);\n }\n };\n\n window.addEventListener('mousemove', drag);\n window.addEventListener('touchmove', drag);\n window.addEventListener('mouseup', endDrag);\n window.addEventListener('touchend',endDrag);\n };\n\n\n /**\n * Initialize component\n */\n MaterialExtLightbox.prototype.init = function() {\n\n if (this.element_) {\n // Do the init required for this component to work\n this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this.element_), true);\n\n if(!Number.isInteger(this.element_.getAttribute('tabindex'))) {\n this.element_.setAttribute('tabindex', 1);\n }\n\n [...this.element_.querySelectorAll(`.${BUTTON}`)].forEach( button =>\n button.addEventListener('click', this.buttonClickHandler_.bind(button), false)\n );\n\n const figcaption = this.element_.querySelector('figcaption');\n if(figcaption) {\n figcaption.addEventListener('click', this.buttonClickHandler_.bind(figcaption), false);\n }\n\n const footer = this.element_.querySelector('footer');\n if(footer) {\n footer.addEventListener('click', this.buttonClickHandler_.bind(footer), false);\n }\n\n const img = this.element_.querySelector('img');\n if(img) {\n img.addEventListener('load', this.imgLoadHandler_.bind(this.element_), false);\n img.addEventListener('click', e => e.preventDefault(), true);\n img.addEventListener('mousedown', this.imgDragHandler_.bind(img), true);\n img.addEventListener('touchstart', this.imgDragHandler_.bind(img), true);\n }\n window.addEventListener('resize', fullThrottle( () => repositionDialog_(this.element_) ));\n window.addEventListener('orientationchange', () => repositionDialog_(this.element_));\n\n // Set upgraded flag\n this.element_.classList.add(IS_UPGRADED);\n }\n };\n\n /*\n * Downgrade component\n * E.g remove listeners and clean up resources\n *\n * Nothing to downgrade\n *\n MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n };\n */\n\n /**\n * The component registers itself. It can assume componentHandler is available in the global scope.\n */\n /* jshint undef:false */\n componentHandler.register({\n constructor: MaterialExtLightbox,\n classAsString: 'MaterialExtLightbox',\n cssClass: 'mdlext-js-lightbox'\n });\n\n})();\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/lightbox/lightbox.js\n\n\n// WEBPACK FOOTER //\n// ./src/lightbox/lightbox.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\n/**\n * A menu button is a button that opens a menu. It is often styled as a\n * typical push button with a downward pointing arrow or triangle to hint\n * that activating the button will display a menu.\n */\nimport { randomString } from '../utils/string-utils';\nimport fullThrottle from '../utils/full-throttle';\nimport {\n VK_TAB,\n VK_ENTER,\n VK_ESC,\n VK_SPACE,\n VK_END,\n VK_HOME,\n VK_ARROW_LEFT,\n VK_ARROW_UP,\n VK_ARROW_RIGHT,\n VK_ARROW_DOWN,\n IS_UPGRADED,\n} from '../utils/constants';\n\nimport { getScrollParents, tether } from '../utils/dom-utils';\n\nconst JS_MENU_BUTTON = 'mdlext-js-menu-button';\nconst MENU_BUTTON_MENU = 'mdlext-menu';\nconst MENU_BUTTON_MENU_ITEM = 'mdlext-menu__item';\nconst MENU_BUTTON_MENU_ITEM_SEPARATOR = 'mdlext-menu__item-separator';\n//const MDL_LAYOUT_CONTENT = 'mdl-layout__content';\n\n/**\n * Creates the menu controlled by the menu button\n * @param element\n * @return {{element: Element, selected: Element, open: (function(*=)), removeListeners: (function()), downgrade: (function())}}\n */\n\nconst menuFactory = element => {\n\n let ariaControls = null;\n let parentNode = null;\n\n const removeAllSelected = () => {\n [...element.querySelectorAll(`.${MENU_BUTTON_MENU_ITEM}[aria-selected=\"true\"]`)]\n .forEach(selectedItem => selectedItem.removeAttribute('aria-selected'));\n };\n\n const setSelected = (item, force=false) => {\n if(force || (item && !item.hasAttribute('aria-selected'))) {\n removeAllSelected();\n if(item) {\n item.setAttribute('aria-selected', 'true');\n }\n }\n };\n\n const getSelected = () => {\n return element.querySelector(`.${MENU_BUTTON_MENU_ITEM}[aria-selected=\"true\"]`);\n };\n\n const isDisabled = item => item && item.hasAttribute('disabled');\n\n const isSeparator = item => item && item.classList.contains(MENU_BUTTON_MENU_ITEM_SEPARATOR);\n\n const focus = item => {\n if(item) {\n item = item.closest(`.${MENU_BUTTON_MENU_ITEM}`);\n }\n if(item) {\n item.focus();\n }\n };\n\n const nextItem = current => {\n let n = current.nextElementSibling;\n if(!n) {\n n = element.firstElementChild;\n }\n if(!isDisabled(n) && !isSeparator(n)) {\n focus(n);\n }\n else {\n let i = element.children.length;\n while(n && i-- > 0) {\n if(isDisabled(n) || isSeparator(n)) {\n n = n.nextElementSibling;\n if(!n) {\n n = element.firstElementChild;\n }\n }\n else {\n focus(n);\n break;\n }\n }\n }\n };\n\n const previousItem = current => {\n let p = current.previousElementSibling;\n if(!p) {\n p = element.lastElementChild;\n }\n if(!isDisabled(p) && !isSeparator(p)) {\n focus(p);\n }\n else {\n let i = element.children.length;\n while(p && i-- > 0) {\n if(isDisabled(p) || isSeparator(p)) {\n p = p.previousElementSibling;\n if(!p) {\n p = element.lastElementChild;\n }\n }\n else {\n focus(p);\n break;\n }\n }\n }\n };\n\n const firstItem = () => {\n const item = element.firstElementChild;\n if(isDisabled(item) || isSeparator(item) ) {\n nextItem(item);\n }\n else {\n focus(item);\n }\n };\n\n const lastItem = () => {\n const item = element.lastElementChild;\n if(isDisabled(item) || isSeparator(item)) {\n previousItem(item);\n }\n else {\n focus(item);\n }\n };\n\n const selectItem = item => {\n if(item && !isDisabled(item) && !isSeparator(item)) {\n setSelected(item);\n close(true, item);\n }\n };\n\n const keyDownHandler = event => {\n\n const item = event.target.closest(`.${MENU_BUTTON_MENU_ITEM}`);\n\n switch (event.keyCode) {\n case VK_ARROW_UP:\n case VK_ARROW_LEFT:\n if(item) {\n previousItem(item);\n }\n else {\n firstItem();\n }\n break;\n\n case VK_ARROW_DOWN:\n case VK_ARROW_RIGHT:\n if(item) {\n nextItem(item);\n }\n else {\n lastItem();\n }\n break;\n\n case VK_HOME:\n firstItem();\n break;\n\n case VK_END:\n lastItem();\n break;\n\n case VK_SPACE:\n case VK_ENTER:\n selectItem(item);\n break;\n\n case VK_ESC:\n close(true);\n break;\n\n case VK_TAB:\n // We do not have a \"natural\" tab order from menu, so the best we can do is to set focus back to the button\n close(true);\n break;\n\n default:\n return;\n }\n event.preventDefault();\n };\n\n\n const blurHandler = event => {\n\n // See: https://github.com/facebook/react/issues/2011\n const t = event.relatedTarget ||\n event.explicitOriginalTarget || // FF\n document.activeElement; // IE11\n\n //console.log('***** blur, target, relatedTarget', event.target, t);\n\n try {\n if (t) {\n if (t.closest(`.${MENU_BUTTON_MENU}`) !== element && shouldClose(t)) {\n close();\n }\n }\n else {\n close();\n }\n }\n catch(err) {\n // FF throws error: \"TypeError: n.closest is not a function\" if related target is a text node\n close();\n }\n };\n\n const clickHandler = event => {\n //console.log('***** click, target', event.target);\n\n event.preventDefault();\n const t = event.target;\n if (t && t.closest(`.${MENU_BUTTON_MENU}`) === element) {\n const item = t.closest(`.${MENU_BUTTON_MENU_ITEM}`);\n if (item) {\n selectItem(item);\n }\n }\n else {\n if (shouldClose(t)) {\n close();\n }\n }\n };\n\n const touchStartHandler = event => {\n //console.log('***** touchStart, target', event.target);\n\n const t = event.target;\n if(!(t && t.closest(`.${MENU_BUTTON_MENU}`) === element)) {\n if (event.type === 'touchstart') {\n event.preventDefault();\n }\n close();\n }\n };\n\n const addListeners = () => {\n element.addEventListener('keydown', keyDownHandler, false);\n element.addEventListener('blur', blurHandler, true);\n element.addEventListener('click', clickHandler, true);\n document.documentElement.addEventListener('touchstart', touchStartHandler, true);\n };\n\n const removeListeners = () => {\n element.removeEventListener('keydown', keyDownHandler, false);\n element.removeEventListener('blur', blurHandler, true);\n element.removeEventListener('click', clickHandler, true);\n document.documentElement.removeEventListener('touchstart', touchStartHandler, true);\n };\n\n const open = (controlElement, position='first') => {\n\n ariaControls = controlElement.closest(`.${JS_MENU_BUTTON}`);\n\n element.style['min-width'] = `${Math.max(124, controlElement.getBoundingClientRect().width)}px`;\n element.removeAttribute('hidden');\n tether(controlElement, element);\n\n let item;\n switch (position.toLowerCase()) {\n case 'first':\n firstItem();\n break;\n\n case 'last':\n lastItem();\n break;\n\n case 'selected':\n item = getSelected();\n if(item && !item.hasAttribute('disabled')) {\n focus(item);\n }\n else {\n firstItem();\n }\n break;\n }\n\n addListeners();\n };\n\n\n const shouldClose = target => {\n //console.log('***** shouldClose');\n\n let result = false;\n const btn = (target && target.closest(`.${JS_MENU_BUTTON}`)) || null;\n if(!btn) {\n result = true;\n }\n else if(btn.getAttribute('aria-controls') === element.id) {\n if(btn !== ariaControls) {\n result = true;\n }\n }\n else {\n result = true;\n }\n return result;\n };\n\n const close = (forceFocus = false, item = null) => {\n removeListeners();\n\n element.dispatchEvent(\n new CustomEvent('_closemenu', {\n bubbles: true,\n cancelable: true,\n detail: { forceFocus: forceFocus, item: item }\n })\n );\n };\n\n const addWaiAria = () => {\n if (!element.hasAttribute('id')) {\n // Generate a random id\n element.id = `menu-button-${randomString()}`;\n }\n element.setAttribute('tabindex', '-1');\n element.setAttribute('role', 'menu');\n element.setAttribute('hidden', '');\n\n [...element.querySelectorAll(`.${MENU_BUTTON_MENU_ITEM}`)].forEach( menuitem => {\n menuitem.setAttribute('tabindex', '-1');\n menuitem.setAttribute('role', 'menuitem');\n });\n\n [...element.querySelectorAll(`.${MENU_BUTTON_MENU_ITEM_SEPARATOR}`)].forEach( menuitem => {\n menuitem.setAttribute('role', 'separator');\n });\n };\n\n const init = () => {\n addWaiAria();\n parentNode = element.parentNode;\n element.classList.add('is-upgraded');\n };\n\n const downgrade = () => {\n removeListeners();\n if(element.parentNode !== parentNode) {\n parentNode.appendChild(element);\n }\n element.classList.remove('is-upgraded');\n };\n\n init();\n\n return {\n /**\n * Get the menu element\n * @returns {Element} the menu element\n */\n get element() {\n return element;\n },\n\n /**\n * Set selected menu item\n * @param item\n */\n set selected(item) {\n setSelected(item, true);\n },\n\n /**\n * Open menu\n * @param {Element} controlElement the element where the menu should be aligned to\n * @param {String} position menuElement item to receive focus after menu element is opened\n */\n open: (controlElement, position='first') => open(controlElement, position),\n\n /**\n * Remove event listeners.\n */\n removeListeners: () => removeListeners(),\n\n /**\n * Downgrade menu\n */\n downgrade: () => downgrade(),\n };\n};\n\n\n/**\n * The menubutton component\n */\n\nclass MenuButton {\n\n constructor(element) {\n this.element = element;\n this.focusElement = undefined;\n this.focusElementLastScrollPosition = undefined;\n this.scrollElements = [];\n this.menu = undefined;\n this.selectedItem = null;\n this.init();\n }\n\n keyDownHandler = event => {\n if(!this.isDisabled()) {\n switch (event.keyCode) {\n case VK_ARROW_UP:\n this.openMenu('last');\n break;\n\n case VK_ARROW_DOWN:\n this.openMenu();\n break;\n\n case VK_SPACE:\n case VK_ENTER:\n this.openMenu('selected');\n break;\n\n case VK_ESC:\n this.closeMenu();\n break;\n\n case VK_TAB:\n this.closeMenu();\n return;\n\n default:\n return;\n }\n }\n //event.stopPropagation();\n event.preventDefault();\n };\n\n clickHandler = () => {\n if(!this.isDisabled()) {\n if(this.element.getAttribute('aria-expanded').toLowerCase() === 'true') {\n this.closeMenu(true);\n }\n else {\n this.openMenu('selected');\n }\n }\n };\n\n /**\n * Re-position menu if content is scrolled, window is resized or orientation change\n * @see https://javascriptweblog.wordpress.com/2015/11/02/of-classes-and-arrow-functions-a-cautionary-tale/\n */\n recalcMenuPosition = fullThrottle( () => {\n const c = this.focusElement.getBoundingClientRect();\n const dx = this.focusElementLastScrollPosition.left - c.left;\n const dy = this.focusElementLastScrollPosition.top - c.top;\n const left = (parseFloat(this.menu.element.style.left) || 0) - dx;\n const top = (parseFloat(this.menu.element.style.top) || 0) - dy;\n\n this.menu.element.style.left = `${left}px`;\n this.menu.element.style.top = `${top}px`;\n this.focusElementLastScrollPosition = c;\n });\n\n\n positionChangeHandler = () => {\n this.recalcMenuPosition(this);\n };\n\n closeMenuHandler = event => {\n if(event && event.detail) {\n if(event.detail.item && event.detail.item !== this.selectedItem) {\n this.selectedItem = event.detail.item;\n this.dispatchMenuSelect();\n }\n this.closeMenu(event.detail.forceFocus);\n }\n };\n\n dispatchMenuSelect() {\n this.element.dispatchEvent(\n new CustomEvent('menuselect', {\n bubbles: true,\n cancelable: true,\n detail: { source: this.selectedItem }\n })\n );\n }\n\n isDisabled() {\n return this.element.hasAttribute('disabled');\n }\n\n removeListeners() {\n this.element.removeEventListener('keydown', this.keyDownHandler);\n this.element.removeEventListener('click', this.clickHandler);\n }\n\n openMenu(position='first') {\n\n if(!this.isDisabled() && this.menu) {\n\n // Close the menu if button position change\n this.scrollElements = getScrollParents(this.element);\n this.scrollElements.forEach(el => el.addEventListener('scroll', this.positionChangeHandler));\n\n window.addEventListener('resize', this.positionChangeHandler);\n window.addEventListener('orientationchange', this.positionChangeHandler);\n this.menu.element.addEventListener('_closemenu', this.closeMenuHandler);\n\n this.menu.selected = this.selectedItem;\n this.menu.open(this.focusElement, position);\n this.element.setAttribute('aria-expanded', 'true');\n\n this.focusElementLastScrollPosition = this.focusElement.getBoundingClientRect();\n }\n }\n\n closeMenu(forceFocus = false) {\n if(this.menu) {\n this.menu.removeListeners();\n this.scrollElements.forEach(el => el.removeEventListener('scroll', this.positionChangeHandler));\n window.removeEventListener('resize', this.positionChangeHandler);\n window.removeEventListener('orientationchange', this.positionChangeHandler);\n this.menu.element.removeEventListener('_closemenu', this.closeMenuHandler);\n\n if (forceFocus) {\n this.focus();\n }\n this.element.setAttribute('aria-expanded', 'false');\n this.menu.element.setAttribute('hidden', '');\n }\n }\n\n focus() {\n if(!this.isDisabled()) {\n this.focusElement.focus();\n }\n }\n\n init() {\n const addListeners = () => {\n this.element.addEventListener('keydown', this.keyDownHandler);\n this.element.addEventListener('click', this.clickHandler);\n };\n\n const addWaiAria = () => {\n this.element.setAttribute('role', 'button');\n this.element.setAttribute('aria-expanded', 'false');\n this.element.setAttribute('aria-haspopup', 'true');\n };\n\n const addFocusElement = () => {\n this.focusElement = this.element.querySelector('input[type=\"text\"]');\n if(!this.focusElement) {\n this.focusElement = this.element;\n\n if(!(this.focusElement.tagName.toLowerCase() === 'button' || this.focusElement.tagName.toLowerCase() === 'input')) {\n if (!this.focusElement.hasAttribute('tabindex')) {\n this.focusElement.setAttribute('tabindex', '0');\n }\n }\n }\n };\n\n const moveElementToDocumentBody = (element) => {\n // To position an element on top of all other z-indexed elements, the element should be moved to document.body\n // See: https://philipwalton.com/articles/what-no-one-told-you-about-z-index/\n\n if(element.parentNode !== document.body) {\n return document.body.appendChild(element);\n }\n return element;\n };\n\n const findMenuElement = () => {\n let menuElement;\n const menuElementId = this.element.getAttribute('aria-controls');\n if(menuElementId !== null) {\n menuElement = document.querySelector(`#${menuElementId }`);\n }\n else {\n menuElement = this.element.parentNode.querySelector(`.${MENU_BUTTON_MENU}`);\n }\n return menuElement;\n };\n\n const addMenu = () => {\n const menuElement = findMenuElement();\n if(menuElement) {\n if(menuElement.componentInstance) {\n this.menu = menuElement.componentInstance;\n }\n else {\n this.menu = menuFactory(menuElement);\n menuElement.componentInstance = this.menu;\n moveElementToDocumentBody(menuElement);\n }\n this.element.setAttribute('aria-controls', this.menu.element.id);\n }\n };\n\n addFocusElement();\n addWaiAria();\n addMenu();\n this.removeListeners();\n addListeners();\n }\n\n downgrade() {\n if(this.menu) {\n // Do not downgrade menu if there are other buttons sharing this menu\n const related = [...document.querySelectorAll(`.${JS_MENU_BUTTON}[aria-controls=\"${this.element.getAttribute('aria-controls')}\"]`)];\n if(related.filter( c => c !== this.element && c.getAttribute('data-upgraded').indexOf('MaterialExtMenuButton') >= 0).length === 0) {\n this.menu.downgrade();\n }\n }\n this.removeListeners();\n }\n\n}\n\n(function() {\n 'use strict';\n\n /**\n * https://github.com/google/material-design-lite/issues/4205\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\n const MaterialExtMenuButton = function MaterialExtMenuButton(element) {\n this.element_ = element;\n this.menuButton_ = null;\n\n // Initialize instance.\n this.init();\n };\n window['MaterialExtMenuButton'] = MaterialExtMenuButton;\n\n\n // Public methods.\n\n /**\n * Get the menu element controlled by this button, null if no menu is controlled by this button\n * @public\n */\n MaterialExtMenuButton.prototype.getMenuElement = function() {\n return this.menuButton_.menu ? this.menuButton_.menu.element : null;\n };\n MaterialExtMenuButton.prototype['getMenuElement'] = MaterialExtMenuButton.prototype.getMenuElement;\n\n /**\n * Open menu\n * @public\n * @param {String} position one of \"first\", \"last\" or \"selected\"\n */\n MaterialExtMenuButton.prototype.openMenu = function(position) {\n this.menuButton_.openMenu(position);\n };\n MaterialExtMenuButton.prototype['openMenu'] = MaterialExtMenuButton.prototype.openMenu;\n\n /**\n * Close menu\n * @public\n */\n MaterialExtMenuButton.prototype.closeMenu = function() {\n this.menuButton_.closeMenu(true);\n };\n MaterialExtMenuButton.prototype['closeMenu'] = MaterialExtMenuButton.prototype.closeMenu;\n\n /**\n * Get selected menu item\n * @public\n * @returns {Element} The selected menu item or null if no item selected\n */\n MaterialExtMenuButton.prototype.getSelectedMenuItem = function() {\n return this.menuButton_.selectedItem;\n };\n MaterialExtMenuButton.prototype['getSelectedMenuItem'] = MaterialExtMenuButton.prototype.getSelectedMenuItem;\n\n\n /**\n * Set (default) selected menu item\n * @param {Element} item\n */\n MaterialExtMenuButton.prototype.setSelectedMenuItem = function(item) {\n this.menuButton_.selectedItem = item;\n };\n MaterialExtMenuButton.prototype['setSelectedMenuItem'] = MaterialExtMenuButton.prototype.setSelectedMenuItem;\n\n /**\n * Initialize component\n */\n MaterialExtMenuButton.prototype.init = function() {\n if (this.element_) {\n this.menuButton_ = new MenuButton(this.element_);\n this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n this.element_.classList.add(IS_UPGRADED);\n }\n };\n\n /**\n * Downgrade component\n * E.g remove listeners and clean up resources\n */\n MaterialExtMenuButton.prototype.mdlDowngrade_ = function() {\n this.menuButton_.downgrade();\n };\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n componentHandler.register({\n constructor: MaterialExtMenuButton,\n classAsString: 'MaterialExtMenuButton',\n cssClass: JS_MENU_BUTTON,\n widget: true\n });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/menu-button/menu-button.js\n\n\n// WEBPACK FOOTER //\n// ./src/menu-button/menu-button.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/*\n * Copied/Modified from https://github.com/google/material-design-lite/tree/master/src/textfield\n */\n\nimport { randomString } from '../utils/string-utils';\nimport {\n IS_DIRTY,\n IS_FOCUSED,\n IS_DISABLED,\n IS_INVALID,\n IS_UPGRADED\n} from '../utils/constants';\n\n(function() {\n 'use strict';\n const LABEL = 'mdlext-selectfield__label';\n const INPUT = 'mdlext-selectfield__select';\n\n /**\n * Class constructor for Selectfield MDLEXT component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\n const MaterialExtSelectfield = function MaterialExtSelectfield(element) {\n this.element_ = element;\n this.init(); // Initialize instance.\n };\n\n window['MaterialExtSelectfield'] = MaterialExtSelectfield;\n\n /**\n * Handle focus.\n *\n * @param {Event} event The event that fired.\n * @private\n */\n /*eslint no-unused-vars: 0*/\n MaterialExtSelectfield.prototype.onFocus_ = function( /*event*/ ) {\n this.element_.classList.add(IS_FOCUSED);\n };\n\n /**\n * Handle lost focus.\n *\n * @param {Event} event The event that fired.\n * @private\n */\n /*eslint no-unused-vars: 0*/\n MaterialExtSelectfield.prototype.onBlur_ = function( /*event*/ ) {\n this.element_.classList.remove(IS_FOCUSED);\n };\n\n /**\n * Handle reset event from out side.\n *\n * @param {Event} event The event that fired.\n * @private\n */\n MaterialExtSelectfield.prototype.onReset_ = function( /*event*/ ) {\n this.updateClasses_();\n };\n\n /**\n * Handle class updates.\n *\n * @private\n */\n MaterialExtSelectfield.prototype.updateClasses_ = function() {\n this.checkDisabled();\n this.checkValidity();\n this.checkDirty();\n this.checkFocus();\n };\n\n // Public methods.\n\n /**\n * Check the disabled state and update field accordingly.\n *\n * @public\n */\n MaterialExtSelectfield.prototype.checkDisabled = function() {\n if (this.select_.disabled) {\n this.element_.classList.add(IS_DISABLED);\n } else {\n this.element_.classList.remove(IS_DISABLED);\n }\n };\n MaterialExtSelectfield.prototype['checkDisabled'] = MaterialExtSelectfield.prototype.checkDisabled;\n\n\n /**\n * Check the focus state and update field accordingly.\n *\n * @public\n */\n MaterialExtSelectfield.prototype.checkFocus = function() {\n // Note: element.querySelector(':focus') always return null in JsDom, even if select element has focus\n /*eslint no-extra-boolean-cast: 0*/\n if (Boolean(this.element_.querySelector(':focus'))) {\n this.element_.classList.add(IS_FOCUSED);\n } else {\n this.element_.classList.remove(IS_FOCUSED);\n }\n };\n\n MaterialExtSelectfield.prototype['checkFocus'] = MaterialExtSelectfield.prototype.checkFocus;\n\n\n /**\n * Check the validity state and update field accordingly.\n *\n * @public\n */\n MaterialExtSelectfield.prototype.checkValidity = function() {\n\n /* Don't think it makes any sense to check validity.\n Tests I've done, so far, indicates that setting an illegal value via JS returns selectedIndex=0\n\n if (this.select_.validity) {\n if (this.select_.validity.valid) {\n this.element_.classList.remove(this.CssClasses_.IS_INVALID);\n } else {\n this.element_.classList.add(this.CssClasses_.IS_INVALID);\n }\n }\n */\n };\n\n MaterialExtSelectfield.prototype['checkValidity'] = MaterialExtSelectfield.prototype.checkValidity;\n\n /**\n * Check the dirty state and update field accordingly.\n *\n * @public\n */\n MaterialExtSelectfield.prototype.checkDirty = function() {\n if (this.select_.value && this.select_.value.length > 0) {\n this.element_.classList.add(IS_DIRTY);\n } else {\n this.element_.classList.remove(IS_DIRTY);\n }\n };\n\n MaterialExtSelectfield.prototype['checkDirty'] = MaterialExtSelectfield.prototype.checkDirty;\n\n /**\n * Disable select field.\n *\n * @public\n */\n MaterialExtSelectfield.prototype.disable = function() {\n this.select_.disabled = true;\n this.updateClasses_();\n };\n\n MaterialExtSelectfield.prototype['disable'] = MaterialExtSelectfield.prototype.disable;\n\n /**\n * Enable select field.\n *\n * @public\n */\n MaterialExtSelectfield.prototype.enable = function() {\n this.select_.disabled = false;\n this.updateClasses_();\n };\n\n MaterialExtSelectfield.prototype['enable'] = MaterialExtSelectfield.prototype.enable;\n\n /**\n * Update select field value.\n *\n * @param {string} value The value to which to set the control (optional).\n * @public\n */\n MaterialExtSelectfield.prototype.change = function(value) {\n this.select_.value = value || '';\n this.updateClasses_();\n };\n MaterialExtSelectfield.prototype['change'] = MaterialExtSelectfield.prototype.change;\n\n /**\n * Initialize element.\n */\n MaterialExtSelectfield.prototype.init = function() {\n if (this.element_) {\n this.label_ = this.element_.querySelector(`.${LABEL}`);\n this.select_ = this.element_.querySelector(`.${INPUT}`);\n\n if (this.select_) {\n // Remove listeners, just in case ...\n this.select_.removeEventListener('change', this.updateClasses_);\n this.select_.removeEventListener('focus', this.onFocus_);\n this.select_.removeEventListener('blur', this.onBlur_);\n this.select_.removeEventListener('reset', this.onReset_);\n\n this.select_.addEventListener('change', this.updateClasses_.bind(this));\n this.select_.addEventListener('focus', this.onFocus_.bind(this));\n this.select_.addEventListener('blur', this.onBlur_.bind(this));\n this.select_.addEventListener('reset', this.onReset_.bind(this));\n\n if(this.label_) {\n let id;\n if(!this.select_.hasAttribute('id')) {\n id = `select-${randomString()}`;\n this.select_.id = id;\n }\n else {\n id = this.select_.id;\n }\n\n if(!this.label_.hasAttribute('for')) {\n this.label_.setAttribute('for', id);\n }\n }\n\n const invalid = this.element_.classList.contains(IS_INVALID);\n this.updateClasses_();\n this.element_.classList.add(IS_UPGRADED);\n\n if (invalid) {\n this.element_.classList.add(IS_INVALID);\n }\n if (this.select_.hasAttribute('autofocus')) {\n this.element_.focus();\n this.checkFocus();\n }\n }\n }\n };\n\n /**\n * Downgrade component\n * E.g remove listeners and clean up resources\n *\n * Nothing to downgrade\n *\n MaterialExtSelectfield.prototype.mdlDowngrade_ = function() {\n 'use strict';\n console.log('***** MaterialExtSelectfield.mdlDowngrade ');\n };\n */\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /*eslint no-undef: 0*/\n componentHandler.register({\n constructor: MaterialExtSelectfield,\n classAsString: 'MaterialExtSelectfield',\n cssClass: 'mdlext-js-selectfield',\n widget: true\n });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/selectfield/selectfield.js\n\n\n// WEBPACK FOOTER //\n// ./src/selectfield/selectfield.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * A sticky header makes site navigation easily accessible anywhere on the page and saves content space at the same.\n * The header should auto-hide, i.e. hiding the header automatically when a user starts scrolling down the page and\n * bringing the header back when a user might need it: they reach the bottom of the page or start scrolling up.\n */\n\nimport fullThrottle from '../utils/full-throttle';\nimport { jsonStringToObject } from '../utils/json-utils';\nimport {\n IS_UPGRADED\n} from '../utils/constants';\n\n\n(function() {\n 'use strict';\n const MDL_LAYOUT_CONTENT = 'mdl-layout__content';\n const IS_SCROLL_CLASS = 'mdlext-is-scroll';\n\n\n /**\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\n const MaterialExtStickyHeader = function MaterialExtStickyHeader(element) {\n // Stores the element.\n this.header_ = element;\n\n // Heder listens to scroll events from content\n this.content_ = null;\n this.lastScrollTop_ = 0;\n\n // Default config\n this.config_ = {\n visibleAtScrollEnd: false\n };\n\n this.mutationObserver_ = null;\n\n this.drawing_ = false;\n\n // Initialize instance.\n this.init();\n };\n\n window['MaterialExtStickyHeader'] = MaterialExtStickyHeader;\n\n\n /**\n * Update header width\n * @private\n */\n MaterialExtStickyHeader.prototype.recalcWidth_ = function() {\n this.header_.style.width = `${this.content_.clientWidth}px`;\n };\n\n const throttleResize = fullThrottle(self => self.recalcWidth_() );\n\n /**\n * Adjust header width when window resizes or oreientation changes\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.resizeHandler_ = function( /* event */ ) {\n throttleResize(this);\n };\n\n\n /**\n * Update header position\n * @private\n */\n MaterialExtStickyHeader.prototype.reposition_ = function() {\n\n const currentContentScrollTop = this.content_.scrollTop;\n const scrollDiff = this.lastScrollTop_ - currentContentScrollTop;\n\n if(currentContentScrollTop <= 0) {\n // Scrolled to the top. Header sticks to the top\n this.header_.style.top = '0';\n this.header_.classList.remove(IS_SCROLL_CLASS);\n }\n else if(scrollDiff > 0) {\n\n if(scrollDiff >= this.header_.offsetHeight) {\n\n // Scrolled up. Header slides in\n const headerTop = (parseInt( window.getComputedStyle( this.header_ ).getPropertyValue( 'top' ) ) || 0);\n if(headerTop != 0) {\n this.header_.style.top = '0';\n this.header_.classList.add(IS_SCROLL_CLASS);\n }\n this.lastScrollTop_ = currentContentScrollTop;\n }\n return;\n }\n else if(scrollDiff < 0) {\n // Scrolled down\n this.header_.classList.add(IS_SCROLL_CLASS);\n let headerTop = (parseInt( window.getComputedStyle( this.header_ ).getPropertyValue( 'top' ) ) || 0);\n\n if (this.content_.scrollHeight - this.content_.scrollTop <= this.content_.offsetHeight) {\n // Bottom of content\n if(headerTop != 0) {\n this.header_.style.top = this.config_.visibleAtScrollEnd ? '0' : `-${this.header_.offsetHeight}px`;\n }\n }\n else {\n headerTop += scrollDiff;\n const offsetHeight = this.header_.offsetHeight;\n this.header_.style.top = `${( Math.abs( headerTop ) > offsetHeight ? -offsetHeight : headerTop )}px`;\n }\n }\n\n this.lastScrollTop_ = currentContentScrollTop;\n };\n\n\n const throttleScroll = fullThrottle((self) => self.reposition_());\n\n /**\n * Scroll header when content scrolls\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.scrollHandler_ = function( /* event */ ) {\n throttleScroll(this);\n };\n\n /**\n * Init header position\n * @private\n */\n MaterialExtStickyHeader.prototype.updatePosition_ = function( /* event */ ) {\n this.recalcWidth_();\n this.reposition_();\n };\n\n /**\n * Add mutation observer\n * @private\n */\n MaterialExtStickyHeader.prototype.addMutationObserver_ = function() {\n\n // jsdom does not support MutationObserver - so this is not testable\n /* istanbul ignore next */\n this.mutationObserver_ = new MutationObserver( ( /*mutations*/ ) => {\n // Adjust header width if content changes (e.g. in a SPA)\n this.updatePosition_();\n });\n\n this.mutationObserver_.observe( this.content_, {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: true\n });\n };\n\n /**\n * Removes event listeners\n * @private\n */\n MaterialExtStickyHeader.prototype.removeListeners_ = function() {\n\n window.removeEventListener('resize', this.resizeHandler_);\n window.removeEventListener('orientationchange', this.resizeHandler_);\n\n if(this.content_) {\n this.content_.removeEventListener('scroll', this.scrollHandler_);\n }\n\n if(this.mutationObserver_) {\n this.mutationObserver_.disconnect();\n this.mutationObserver_ = null;\n }\n };\n\n /**\n * Initialize component\n */\n MaterialExtStickyHeader.prototype.init = function() {\n\n if (this.header_) {\n\n this.removeListeners_();\n\n if(this.header_.hasAttribute('data-config')) {\n this.config_ = jsonStringToObject(this.header_.getAttribute('data-config'));\n }\n\n this.content_ = this.header_.parentNode.querySelector(`.${MDL_LAYOUT_CONTENT}`) || null;\n\n if(this.content_) {\n this.content_.style.paddingTop = `${this.header_.offsetHeight}px`; // Make room for sticky header\n this.lastScrollTop_ = this.content_.scrollTop;\n\n this.content_.addEventListener('scroll', this.scrollHandler_.bind(this));\n window.addEventListener('resize', this.resizeHandler_.bind(this));\n window.addEventListener('orientationchange', this.resizeHandler_.bind(this));\n\n this.addMutationObserver_();\n this.updatePosition_();\n\n // Set upgraded flag\n this.header_.classList.add(IS_UPGRADED);\n }\n }\n };\n\n /*\n * Downgrade component\n * E.g remove listeners and clean up resources\n *\n * Nothing to clean\n *\n MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n 'use strict';\n console.log('***** MaterialExtStickyHeader.prototype.mdlDowngrade_');\n };\n */\n\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n componentHandler.register({\n constructor: MaterialExtStickyHeader,\n classAsString: 'MaterialExtStickyHeader',\n cssClass: 'mdlext-js-sticky-header'\n });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/sticky-header/sticky-header.js\n\n\n// WEBPACK FOOTER //\n// ./src/sticky-header/sticky-header.js","import './constants';\nimport './dom-utils';\nimport './string-utils';\nimport './json-utils';\nimport './full-throttle';\nimport './easing';\nimport './interval-function';\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/array/from.js\n// module id = 60\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/array/from.js\n// module id = 60\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/is-iterable.js\n// module id = 61\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/is-iterable.js\n// module id = 61\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/number/is-nan\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-nan.js\n// module id = 62\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-nan.js\n// module id = 62\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/define-property.js\n// module id = 63\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/define-property.js\n// module id = 63\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/entries\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/entries.js\n// module id = 64\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/entries.js\n// module id = 64\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/keys.js\n// module id = 65\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/keys.js\n// module id = 65\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/reflect/apply\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/reflect/apply.js\n// module id = 66\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/reflect/apply.js\n// module id = 66\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/slicedToArray.js\n// module id = 67\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/slicedToArray.js\n// module id = 67\n// module chunks = 0 1","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/array/from.js\n// module id = 68\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/array/from.js\n// module id = 68\n// module chunks = 0 1","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/get-iterator.js\n// module id = 69\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/get-iterator.js\n// module id = 69\n// module chunks = 0 1","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/is-iterable.js\n// module id = 70\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/is-iterable.js\n// module id = 70\n// module chunks = 0 1","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-integer.js\n// module id = 71\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-integer.js\n// module id = 71\n// module chunks = 0 1","require('../../modules/es6.number.is-nan');\nmodule.exports = require('../../modules/_core').Number.isNaN;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-nan.js\n// module id = 72\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-nan.js\n// module id = 72\n// module chunks = 0 1","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/assign.js\n// module id = 73\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/assign.js\n// module id = 73\n// module chunks = 0 1","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/define-property.js\n// module id = 74\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/define-property.js\n// module id = 74\n// module chunks = 0 1","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/entries.js\n// module id = 75\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/entries.js\n// module id = 75\n// module chunks = 0 1","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/keys.js\n// module id = 76\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/keys.js\n// module id = 76\n// module chunks = 0 1","require('../../modules/es6.reflect.apply');\nmodule.exports = require('../../modules/_core').Reflect.apply;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/reflect/apply.js\n// module id = 77\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/reflect/apply.js\n// module id = 77\n// module chunks = 0 1","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_add-to-unscopables.js\n// module id = 78\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_add-to-unscopables.js\n// module id = 78\n// module chunks = 0 1","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_array-includes.js\n// module id = 79\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_array-includes.js\n// module id = 79\n// module chunks = 0 1","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_create-property.js\n// module id = 80\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_create-property.js\n// module id = 80\n// module chunks = 0 1","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_html.js\n// module id = 81\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_html.js\n// module id = 81\n// module chunks = 0 1","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ie8-dom-define.js\n// module id = 82\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ie8-dom-define.js\n// module id = 82\n// module chunks = 0 1","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-array-iter.js\n// module id = 83\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-array-iter.js\n// module id = 83\n// module chunks = 0 1","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object')\n , floor = Math.floor;\nmodule.exports = function isInteger(it){\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-integer.js\n// module id = 84\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-integer.js\n// module id = 84\n// module chunks = 0 1","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-call.js\n// module id = 85\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-call.js\n// module id = 85\n// module chunks = 0 1","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-create.js\n// module id = 86\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-create.js\n// module id = 86\n// module chunks = 0 1","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-detect.js\n// module id = 87\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-detect.js\n// module id = 87\n// module chunks = 0 1","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-step.js\n// module id = 88\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-step.js\n// module id = 88\n// module chunks = 0 1","module.exports = true;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_library.js\n// module id = 89\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_library.js\n// module id = 89\n// module chunks = 0 1","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-assign.js\n// module id = 90\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-assign.js\n// module id = 90\n// module chunks = 0 1","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object')\n , dPs = require('./_object-dps')\n , enumBugKeys = require('./_enum-bug-keys')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , Empty = function(){ /* empty */ }\n , PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe')\n , i = enumBugKeys.length\n , lt = '<'\n , gt = '>'\n , iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n var result;\n if(O !== null){\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty;\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-create.js\n// module id = 91\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-create.js\n// module id = 91\n// module chunks = 0 1","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dps.js\n// module id = 92\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dps.js\n// module id = 92\n// module chunks = 0 1","exports.f = Object.getOwnPropertySymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gops.js\n// module id = 93\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gops.js\n// module id = 93\n// module chunks = 0 1","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gpo.js\n// module id = 94\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gpo.js\n// module id = 94\n// module chunks = 0 1","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys-internal.js\n// module id = 95\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys-internal.js\n// module id = 95\n// module chunks = 0 1","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-sap.js\n// module id = 96\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-sap.js\n// module id = 96\n// module chunks = 0 1","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject')\n , isEnum = require('./_object-pie').f;\nmodule.exports = function(isEntries){\n return function(it){\n var O = toIObject(it)\n , keys = getKeys(O)\n , length = keys.length\n , i = 0\n , result = []\n , key;\n while(length > i)if(isEnum.call(O, key = keys[i++])){\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-to-array.js\n// module id = 97\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-to-array.js\n// module id = 97\n// module chunks = 0 1","module.exports = require('./_hide');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_redefine.js\n// module id = 98\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_redefine.js\n// module id = 98\n// module chunks = 0 1","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_string-at.js\n// module id = 99\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_string-at.js\n// module id = 99\n// module chunks = 0 1","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-index.js\n// module id = 100\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-index.js\n// module id = 100\n// module chunks = 0 1","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-primitive.js\n// module id = 101\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-primitive.js\n// module id = 101\n// module chunks = 0 1","var anObject = require('./_an-object')\n , get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function(it){\n var iterFn = get(it);\n if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator.js\n// module id = 102\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator.js\n// module id = 102\n// module chunks = 0 1","var classof = require('./_classof')\n , ITERATOR = require('./_wks')('iterator')\n , Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function(it){\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.is-iterable.js\n// module id = 103\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.is-iterable.js\n// module id = 103\n// module chunks = 0 1","'use strict';\nvar ctx = require('./_ctx')\n , $export = require('./_export')\n , toObject = require('./_to-object')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , toLength = require('./_to-length')\n , createProperty = require('./_create-property')\n , getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n var O = toObject(arrayLike)\n , C = typeof this == 'function' ? this : Array\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , index = 0\n , iterFn = getIterFn(O)\n , length, result, step, iterator;\n if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for(result = new C(length); length > index; index++){\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.from.js\n// module id = 104\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.from.js\n// module id = 104\n// module chunks = 0 1","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js\n// module id = 105\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js\n// module id = 105\n// module chunks = 0 1","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {isInteger: require('./_is-integer')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-integer.js\n// module id = 106\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-integer.js\n// module id = 106\n// module chunks = 0 1","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number){\n return number != number;\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-nan.js\n// module id = 107\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-nan.js\n// module id = 107\n// module chunks = 0 1","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.assign.js\n// module id = 108\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.assign.js\n// module id = 108\n// module chunks = 0 1","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.define-property.js\n// module id = 109\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.define-property.js\n// module id = 109\n// module chunks = 0 1","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.keys.js\n// module id = 110\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.keys.js\n// module id = 110\n// module chunks = 0 1","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export')\n , aFunction = require('./_a-function')\n , anObject = require('./_an-object')\n , rApply = (require('./_global').Reflect || {}).apply\n , fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function(){\n rApply(function(){});\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList){\n var T = aFunction(target)\n , L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.reflect.apply.js\n// module id = 111\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.reflect.apply.js\n// module id = 111\n// module chunks = 0 1","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export')\n , $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it){\n return $entries(it);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es7.object.entries.js\n// module id = 112\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es7.object.entries.js\n// module id = 112\n// module chunks = 0 1","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mdl-ext-build.scss\n// module id = 113\n// module chunks = 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mdl-ext-build.scss\n// module id = 113\n// module chunks = 1"],"sourceRoot":""}
\ No newline at end of file