From 85fdd59461afb5aa67f48c2eedab78233d377066 Mon Sep 17 00:00:00 2001 From: Leif Olsen Date: Sun, 31 Jul 2016 12:06:36 +0200 Subject: [PATCH] fix(carousel): Removed MutationObserver. Not needed. Difficult to test. Call upgradeSlides() from cl closes #63 --- demo/carousel.html | 3 ++- lib/mdl-ext.js | 21 ++++++++------------- lib/mdl-ext.js.map | 2 +- lib/mdl-ext.min.js | 8 ++++---- lib/mdl-ext.min.js.map | 2 +- package.json | 2 +- src/accordion/readme.md | 10 ++++++++++ src/carousel/carousel.js | 5 ++--- src/carousel/readme.md | 20 +++++++------------- src/carousel/snippets/carousel.html | 3 ++- src/lightboard/readme.md | 20 ++++++++++++++++++++ test/carousel/carousel.spec.js | 6 +++--- 12 files changed, 61 insertions(+), 41 deletions(-) diff --git a/demo/carousel.html b/demo/carousel.html index 0607003..174ebd4 100644 --- a/demo/carousel.html +++ b/demo/carousel.html @@ -639,7 +639,7 @@
Carousel
Add image to carousel

- Verify that the MutationObserver works: Click the button to add a new image to the carousel. Move to the inserted + Click the button to add a new image to the carousel. Move to the inserted image and click it. It should have ripple effect if upgraded correctly.

@@ -728,6 +728,7 @@
Carousel
var slide_fragment = ''; var carousel = document.querySelector('#mdlext-carousel-demo2'); carousel.insertAdjacentHTML('beforeend', slide_fragment); + carousel.MaterialExtCarousel.upgradeSlides(); }); }); diff --git a/lib/mdl-ext.js b/lib/mdl-ext.js index d9fa859..467b889 100644 --- a/lib/mdl-ext.js +++ b/lib/mdl-ext.js @@ -1593,8 +1593,6 @@ return /******/ (function(modules) { // webpackBootstrap this.scrollAnimation_ = new _animationloop2.default(33); - this.drawing_ = false; // Used by MutationObserver - // Initialize instance. this.init(); }; @@ -2115,7 +2113,6 @@ return /******/ (function(modules) { // webpackBootstrap * Initialize component */ MaterialExtCarousel.prototype.init = function () { - var _this6 = this; if (this.element_) { // Config @@ -2165,25 +2162,23 @@ return /******/ (function(modules) { // webpackBootstrap // Listen to custom 'command' event this.element_.addEventListener('command', this.commandHandler_.bind(this), false); + /* Not needed. Difficult to test. Call upgradeSlides() from client instead. // Detect insertions into components DOM - var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; - - // jsdom does not support MutationObserver - so this is not testable - /* istanbul ignore next */ - new MutationObserver(function (mutations) { - mutations.forEach(function (mutation) { + const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; + // jsdom does not support MutationObserver - so this is not testable + new MutationObserver( mutations => { + mutations.forEach( mutation => { if (mutation.addedNodes.length > 0) { - window.requestAnimationFrame(function () { - return _this6.upgradeSlides(); - }); + window.requestAnimationFrame(() => this.upgradeSlides() ); } }); - }).observe(this.element_, { + }).observe( this.element_, { attributes: false, childList: true, characterData: false, subtree: false }); + */ // Slides collection this.upgradeSlides(); diff --git a/lib/mdl-ext.js.map b/lib/mdl-ext.js.map index b4d7145..043f1d0 100644 --- a/lib/mdl-ext.js.map +++ b/lib/mdl-ext.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 93bc8a1904e7cb953f70?a4f3","webpack:///./~/core-js/library/modules/_core.js?1b62","webpack:///./~/core-js/library/modules/_wks.js?3027","webpack:///./~/core-js/library/modules/_export.js?ece2","webpack:///./~/core-js/library/modules/_global.js?77aa","webpack:///./~/core-js/library/modules/_iterators.js?aff7","webpack:///./src/utils/custom-event.js?bfbd","webpack:///./~/core-js/library/modules/_an-object.js?0da3","webpack:///./~/core-js/library/modules/_descriptors.js?7051","webpack:///./~/core-js/library/modules/_hide.js?a6da","webpack:///./~/core-js/library/modules/_object-dp.js?4116","webpack:///./~/babel-runtime/helpers/toConsumableArray.js?1825","webpack:///./~/core-js/library/modules/_has.js?d850","webpack:///./~/core-js/library/modules/_is-object.js?24c8","webpack:///./~/core-js/library/modules/_to-iobject.js?6946","webpack:///./src/utils/closest-polyfill.js?bd65","webpack:///./~/core-js/library/modules/_defined.js?45d3","webpack:///./~/core-js/library/modules/_fails.js?935d","webpack:///./~/core-js/library/modules/_object-keys.js?f5bc","webpack:///./~/core-js/library/modules/_property-desc.js?1e86","webpack:///./~/core-js/library/modules/_shared-key.js?2a6c","webpack:///./~/core-js/library/modules/_to-integer.js?f65f","webpack:///./~/core-js/library/modules/_to-object.js?b5c0","webpack:///./~/core-js/library/modules/es6.string.iterator.js?fe18","webpack:///./src/utils/animationloop.js?92de","webpack:///./src/utils/easing.js?f6e9","webpack:///./~/babel-runtime/core-js/get-iterator.js?1b08","webpack:///./~/babel-runtime/core-js/number/is-integer.js?14ca","webpack:///./~/core-js/library/modules/_classof.js?b4b3","webpack:///./~/core-js/library/modules/_cof.js?48ea","webpack:///./~/core-js/library/modules/_ctx.js?ce00","webpack:///./~/core-js/library/modules/_dom-create.js?ab44","webpack:///./~/core-js/library/modules/_enum-bug-keys.js?7598","webpack:///./~/core-js/library/modules/_iobject.js?5cf9","webpack:///./~/core-js/library/modules/_iter-define.js?9a94","webpack:///./~/core-js/library/modules/_object-pie.js?d0d2","webpack:///./~/core-js/library/modules/_set-to-string-tag.js?c945","webpack:///./~/core-js/library/modules/_shared.js?7b6c","webpack:///./~/core-js/library/modules/_to-length.js?62a7","webpack:///./~/core-js/library/modules/_uid.js?e8cd","webpack:///./~/core-js/library/modules/core.get-iterator-method.js?9c88","webpack:///./~/core-js/library/modules/web.dom.iterable.js?bf0e","webpack:///./src/accordion/accordion.js?021c","webpack:///./src/carousel/carousel.js?7189","webpack:///./src/index.js?9552","webpack:///./src/lightboard/lightboard.js?4a51","webpack:///./src/lightbox/lightbox.js?4a9b","webpack:///./src/selectfield/selectfield.js?4310","webpack:///./src/sticky-header/sticky-header.js?0ce9","webpack:///./~/babel-runtime/core-js/array/from.js?efc2","webpack:///./~/babel-runtime/core-js/is-iterable.js?350e","webpack:///./~/babel-runtime/core-js/object/assign.js?e6ca","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/babel-runtime/core-js/object/entries.js?41f9","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/helpers/slicedToArray.js?39c4","webpack:///./~/core-js/library/fn/array/from.js?669d","webpack:///./~/core-js/library/fn/get-iterator.js?2cf7","webpack:///./~/core-js/library/fn/is-iterable.js?0bd2","webpack:///./~/core-js/library/fn/number/is-integer.js?0be2","webpack:///./~/core-js/library/fn/object/assign.js?80e4","webpack:///./~/core-js/library/fn/object/define-property.js?b7d8","webpack:///./~/core-js/library/fn/object/entries.js?390f","webpack:///./~/core-js/library/modules/_a-function.js?d53e","webpack:///./~/core-js/library/modules/_add-to-unscopables.js?d5e8","webpack:///./~/core-js/library/modules/_array-includes.js?6199","webpack:///./~/core-js/library/modules/_create-property.js?1ad1","webpack:///./~/core-js/library/modules/_html.js?e5af","webpack:///./~/core-js/library/modules/_ie8-dom-define.js?bd1f","webpack:///./~/core-js/library/modules/_is-array-iter.js?a4b3","webpack:///./~/core-js/library/modules/_is-integer.js?0b73","webpack:///./~/core-js/library/modules/_iter-call.js?5189","webpack:///./~/core-js/library/modules/_iter-create.js?0127","webpack:///./~/core-js/library/modules/_iter-detect.js?0a91","webpack:///./~/core-js/library/modules/_iter-step.js?e209","webpack:///./~/core-js/library/modules/_library.js?2c80","webpack:///./~/core-js/library/modules/_object-assign.js?5c0c","webpack:///./~/core-js/library/modules/_object-create.js?d8cf","webpack:///./~/core-js/library/modules/_object-dps.js?47fd","webpack:///./~/core-js/library/modules/_object-gops.js?a5fb","webpack:///./~/core-js/library/modules/_object-gpo.js?d47d","webpack:///./~/core-js/library/modules/_object-keys-internal.js?fcea","webpack:///./~/core-js/library/modules/_object-to-array.js?ae83","webpack:///./~/core-js/library/modules/_redefine.js?1455","webpack:///./~/core-js/library/modules/_string-at.js?413a","webpack:///./~/core-js/library/modules/_to-index.js?9fd4","webpack:///./~/core-js/library/modules/_to-primitive.js?49a4","webpack:///./~/core-js/library/modules/core.get-iterator.js?aca7","webpack:///./~/core-js/library/modules/core.is-iterable.js?77cc","webpack:///./~/core-js/library/modules/es6.array.from.js?ce7d","webpack:///./~/core-js/library/modules/es6.array.iterator.js?1e09","webpack:///./~/core-js/library/modules/es6.number.is-integer.js?bf65","webpack:///./~/core-js/library/modules/es6.object.assign.js?9007","webpack:///./~/core-js/library/modules/es6.object.define-property.js?c82c","webpack:///./~/core-js/library/modules/es7.object.entries.js?86f8","webpack:///./src/mdl-ext-build.scss?16f6"],"names":[],"mappings":"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b;;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;AACA;AACA;;AAEA,yGAAwG,OAAO;AAC/G;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;ACiBA;;;;AAGA,EAAC,YAAW;AACV;;AAEA,OAAM,WAA8B,EAApC;AACA,OAAM,WAA8B,EAApC;AACA,OAAM,SAA8B,EAApC;AACA,OAAM,UAA8B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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,WAAW,eAAe;AAC/B;AACA,MAAK;AACL;AACA,G;;;;;;ACpBA;AACA;AACA;;AAEA;AACA;AACA;AACA,G;;;;;;ACPA,8E;;;;;;ACAA;AACA,sEAAsE,gBAAgB,UAAU,GAAG;AACnG,EAAC,E;;;;;;ACFD;AACA;AACA;AACA;;AAEA;AACA;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,0FAAgF,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,G;;;;;;ACfA,yC;;;;;;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,2CAA0C,gCAAoC,E;;;;;;ACH9E;AACA;AACA,qEAAuE,0CAA0C,E;;;;;;ACFjH;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\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \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 93bc8a1904e7cb953f70\n **/\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 93bc8a1904e7cb953f70\n **/","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 ** ./~/core-js/library/modules/_core.js\n ** module id = 1\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_core.js\n ** module id = 1\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_wks.js\n ** module id = 2\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_wks.js\n ** module id = 2\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_export.js\n ** module id = 3\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_export.js\n ** module id = 3\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_global.js\n ** module id = 4\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_global.js\n ** module id = 4\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iterators.js\n ** module id = 5\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iterators.js\n ** module id = 5\n ** module chunks = 0 1\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/**\n * Due to a bug in mdl-1.1.3 it is not possible to use a globally polyfilled CustomEvent constructor\n * Since I do not care too much about IE11, a brute force approach is sufficient.\n *\n * @param {string} typeArg Is a String representing the name of the event.\n * @param {Object} customEventInit Is an EventInit dictionary, having the following fields:\n * \"bubbles\", optional and defaulting to false, of type Boolean, indicating if the event bubbles or not.\n * \"cancelable\", optional and defaulting to false, of type Boolean, indicating if the event can be canceled or not.\n * \"detail\", optional and defaulting to null, of type any, that is an event-dependent value associated with the event.\n */\n\nexport function createCustomEvent( typeArg, customEventInit = { bubbles: false, cancelable: false, detail: null } ) {\n\n try {\n // Modern browsers\n return new window.CustomEvent(typeArg, customEventInit);\n }\n catch(e) {\n // Copied from https://github.com/webcomponents/webcomponentsjs/blob/v0.7.12/CustomElements.js#L950\n // Copied from http://stackoverflow.com/questions/23349191/event-preventdefault-is-not-working-in-ie-11-for-custom-events\n const ce = document.createEvent('CustomEvent');\n ce.initCustomEvent(typeArg, customEventInit.bubbles, customEventInit.cancelable, customEventInit.detail);\n\n ce.preventDefault = function() {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n };\n return ce;\n }\n // Let old browsers throw whatewer they want to throw\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/custom-event.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/custom-event.js\n **/","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 ** ./~/core-js/library/modules/_an-object.js\n ** module id = 7\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_an-object.js\n ** module id = 7\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_descriptors.js\n ** module id = 8\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_descriptors.js\n ** module id = 8\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_hide.js\n ** module id = 9\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_hide.js\n ** module id = 9\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-dp.js\n ** module id = 10\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dp.js\n ** module id = 10\n ** module chunks = 0 1\n **/","\"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 = 11\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/toConsumableArray.js\n ** module id = 11\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_has.js\n ** module id = 12\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_has.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-object.js\n ** module id = 13\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-object.js\n ** module id = 13\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-iobject.js\n ** module id = 14\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-iobject.js\n ** module id = 14\n ** module chunks = 0 1\n **/","/*\n * Code pulled from:\n * https://github.com/jonathantneal/closest/blob/master/closest.js\n * https://plainjs.com/javascript/traversing/get-closest-element-by-selector-39/\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n * http://stackoverflow.com/questions/18663941/finding-closest-element-without-jquery\n */\n\n/**\n * Element.matches() polyfill\n * The Element.matches() method returns true if the element would be selected by the specified selector string;\n * otherwise, returns false.\n */\nif (typeof Element.prototype.matches !== 'function') {\n Element.prototype.matches = Element.prototype.msMatchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n\n function matches(selector) {\n const element = this;\n const elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n let i = elements.length;\n while (--i >= 0 && elements.item(i) !== element);\n return i > -1;\n };\n}\n\n/**\n * Element.closest() polyfill\n * The Element.closest() method returns the closest ancestor of the current element (or the current element itself)\n * which matches the selectors given in parameter. If there isn't such an ancestor, it returns null.\n */\nif (typeof Element.prototype.closest !== 'function') {\n Element.prototype.closest = function closest(selector) {\n let element = this;\n\n while (element && element.nodeType === Node.ELEMENT_NODE) {\n if(element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n return null;\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/closest-polyfill.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/closest-polyfill.js\n **/","// 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 ** ./~/core-js/library/modules/_defined.js\n ** module id = 16\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_defined.js\n ** module id = 16\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_fails.js\n ** module id = 17\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_fails.js\n ** module id = 17\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 18\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 18\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_property-desc.js\n ** module id = 19\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_property-desc.js\n ** module id = 19\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 20\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 20\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-integer.js\n ** module id = 21\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-integer.js\n ** module id = 21\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-object.js\n ** module id = 22\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-object.js\n ** module id = 22\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\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 * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * rAF based animation loop\n */\n\nclass MdlExtAnimationLoop {\n\n /**\n * @constructor\n *\n * @param interval\n */\n constructor(interval = 17) {\n this.interval = interval;\n this.running_ = false;\n this.rAFId_ = 0;\n this.timeElapsed_ = 0;\n }\n\n /**\n * Set interval between each rAF tick\n * @param interval\n */\n set interval(interval) {\n this.interval_ = interval < 17 ? 17 : interval; // 17 ~ 60fps\n }\n\n /**\n * @returns {boolean|*} true if animation is running\n */\n get running() {\n return this.running_;\n }\n\n /**\n * Cancels animation loop\n */\n cancelRAF() {\n if(this.rAFId_ !== 0) {\n window.cancelAnimationFrame(this.rAFId_);\n this.rAFId_ = 0;\n }\n this.running_ = false;\n this.timeElapsed_ = 0;\n }\n\n /**\n * Start rAF animation loop\n * @param tick callback function\n */\n start( tick ) {\n this.running_ = true;\n let timeStart = Date.now();\n\n const loop = now => {\n if (this.running_) {\n this.rAFId_ = window.requestAnimationFrame( () => loop( Date.now() ));\n this.timeElapsed_ += now - timeStart;\n\n if(this.timeElapsed_ >= this.interval_) {\n this.running_ = tick( this.timeElapsed_ );\n if( (this.timeElapsed_ -= this.interval_) > this.interval_) {\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 this.timeElapsed_ = 0;\n }\n }\n timeStart = now;\n }\n };\n loop(timeStart);\n return this;\n }\n\n /**\n * Stops animation\n */\n stop() {\n this.cancelRAF();\n return this;\n }\n}\n\nexport default MdlExtAnimationLoop;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/animationloop.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/animationloop.js\n **/","// See: http://robertpenner.com/easing/\n\nexport const 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\nexport const 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\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/easing.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/easing.js\n **/","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 = 26\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/get-iterator.js\n ** module id = 26\n ** module chunks = 0 1\n **/","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 = 27\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/number/is-integer.js\n ** module id = 27\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_classof.js\n ** module id = 28\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_classof.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_cof.js\n ** module id = 29\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_cof.js\n ** module id = 29\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_ctx.js\n ** module id = 30\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ctx.js\n ** module id = 30\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_dom-create.js\n ** module id = 31\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_dom-create.js\n ** module id = 31\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 32\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 32\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_iobject.js\n ** module id = 33\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iobject.js\n ** module id = 33\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_iter-define.js\n ** module id = 34\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-define.js\n ** module id = 34\n ** module chunks = 0 1\n **/","exports.f = {}.propertyIsEnumerable;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-pie.js\n ** module id = 35\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-pie.js\n ** module id = 35\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_set-to-string-tag.js\n ** module id = 36\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_set-to-string-tag.js\n ** module id = 36\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-length.js\n ** module id = 38\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-length.js\n ** module id = 38\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_uid.js\n ** module id = 39\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_uid.js\n ** module id = 39\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 40\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 40\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 41\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 41\n ** module chunks = 0 1\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 * 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 { createCustomEvent } from '../utils/custom-event';\n\n\n(function() {\n 'use strict';\n\n const VK_ENTER = 13;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\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 ARIA_MULTISELECTABLE = 'aria-multiselectable';\n const ARIA_EXPANDED = 'aria-expanded';\n const ARIA_HIDDEN = 'aria-hidden';\n const ARIA_SELECTED = 'aria-selected';\n const IS_EXPANDED = 'is-expanded';\n const IS_UPGRADED = 'is-upgraded';\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 /**\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 // 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 = createCustomEvent('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 = e => {\n e.preventDefault();\n e.stopPropagation();\n this.toggleTab_(panel, tab, tabpanel);\n selectTab();\n };\n\n const tabFocusHandler = e => {\n e.preventDefault();\n e.stopPropagation();\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 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 * Downgrade component\n * E.g remove listeners and clean up resources\n *\n * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\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\n/** WEBPACK FOOTER **\n ** ./src/accordion/accordion.js\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 * 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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\nimport MdlExtAnimationLoop from '../utils/animationloop';\nimport { inOutQuintic } from '../utils/easing';\n\n(function() {\n 'use strict';\n\n const VK_TAB = 9;\n const VK_ENTER = 13;\n const VK_ESC = 27;\n const VK_SPACE = 32;\n const VK_PAGE_UP = 33;\n const VK_PAGE_DOWN = 34;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\n const IS_FOCUSED = 'is-focused';\n //const CAROUSEL = 'mdlext-carousel';\n const SLIDE = 'mdlext-carousel__slide';\n const ROLE = 'list';\n const SLIDE_ROLE = 'listitem';\n\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_COMPONENT = 'MaterialRipple';\n const RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n const RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n const RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\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: new MdlExtAnimationLoop(1000)\n };\n\n this.scrollAnimation_ = new MdlExtAnimationLoop(33);\n\n this.drawing_ = false; // Used by MutationObserver\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.running) {\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.running) {\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().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 this.command_(action);\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 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 = createCustomEvent('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 // 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(`.${RIPPLE_CONTAINER}`)) {\n const rippleContainer = document.createElement('span');\n rippleContainer.classList.add(RIPPLE_CONTAINER);\n rippleContainer.classList.add(RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(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, 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(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 const s = this.element_.getAttribute('data-config').replace(/'/g, '\"');\n try {\n const c = JSON.parse(s);\n Object.assign(this.config_, c);\n }\n catch (e) {\n throw new Error(`Failed to parse \"data-config = ${s}\". Error: ${e.message}`);\n }\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 if(this.config_.interactive) {\n\n // Ripple\n const hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n if (hasRippleEffect) {\n this.element_.classList.add(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 // Click is handled by drag\n this.element_.addEventListener('click', e => e.preventDefault(), false);\n }\n\n // Listen to custom 'command' event\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n // Detect insertions into components DOM\n const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n // jsdom does not support MutationObserver - so this is not testable\n /* istanbul ignore next */\n new MutationObserver( mutations => {\n mutations.forEach( mutation => {\n if (mutation.addedNodes.length > 0) {\n window.requestAnimationFrame(() => this.upgradeSlides() );\n }\n });\n }).observe( this.element_, {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: false\n });\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n MaterialExtCarousel.prototype.mdlDowngrade_ = function() {\n 'use strict';\n console.log('***** MaterialExtCarousel.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: MaterialExtCarousel,\n classAsString: 'MaterialExtCarousel',\n cssClass: 'mdlext-js-carousel',\n widget: true\n });\n\n})();\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/carousel/carousel.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/carousel/carousel.js\n **/","'use strict';\n//import 'utils/closest-polyfill';\nimport 'utils/custom-event';\nimport 'utils/animationloop';\nimport 'utils/easing';\nimport 'sticky-header/sticky-header';\nimport 'selectfield/selectfield';\nimport 'accordion/accordion';\nimport 'lightboard/lightboard';\nimport 'lightbox/lightbox';\nimport 'carousel/carousel';\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\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 * 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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_ENTER = 13;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\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 const RIPPLE_COMPONENT = 'MaterialRipple';\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container';\n const RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n const RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\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 * 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(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n\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\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 createCustomEvent('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(`.${RIPPLE_CONTAINER}`)) {\n const a = slide.querySelector(`.${SLIDE_TABSTOP}`);\n if(a) {\n const rippleContainer = a;\n rippleContainer.classList.add(RIPPLE_CONTAINER);\n rippleContainer.classList.add(RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(RIPPLE);\n rippleContainer.appendChild(ripple);\n componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n }\n }\n };\n\n const hasRippleEffect = this.element_.classList.contains(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 // 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\n/** WEBPACK FOOTER **\n ** ./src/lightboard/lightboard.js\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 * 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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_ESC = 27;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\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 // false: allow rAF to be called, true: blocks rAF\n this.drawing_ = false;\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(createCustomEvent('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 dialog = lightboxElement.parentNode.nodeName === 'DIALOG' ? lightboxElement.parentNode : null;\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); // .bind(this) does not work here\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\n // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n window.addEventListener('resize', () => {\n if(!this.drawing_) {\n // Assumes MDL has polyfilled rAF\n window.requestAnimationFrame( () => {\n repositionDialog_(this.element_);\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\n });\n\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n\n MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n\n if (this.element_) {\n [...this.element_.querySelectorAll(`.${BUTTON}`)].forEach(\n button => button.removeEventListener('click', this.buttonClickHandler_)\n );\n\n this.element_.removeEventListener('keydown', this.keyDownHandler_);\n }\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/** WEBPACK FOOTER **\n ** ./src/lightbox/lightbox.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/lightbox/lightbox.js\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 * 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\n(function() {\n 'use strict';\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 * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\n MaterialExtSelectfield.prototype.Constant_ = {\n };\n\n /**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\n MaterialExtSelectfield.prototype.CssClasses_ = {\n LABEL: 'mdlext-selectfield__label',\n INPUT: 'mdlext-selectfield__select',\n IS_DIRTY: 'is-dirty',\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_INVALID: 'is-invalid',\n IS_UPGRADED: 'is-upgraded'\n };\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(this.CssClasses_.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(this.CssClasses_.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(this.CssClasses_.IS_DISABLED);\n } else {\n this.element_.classList.remove(this.CssClasses_.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 /*eslint no-extra-boolean-cast: 0*/\n if (Boolean(this.element_.querySelector(':focus'))) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n } else {\n this.element_.classList.remove(this.CssClasses_.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(this.CssClasses_.IS_DIRTY);\n } else {\n this.element_.classList.remove(this.CssClasses_.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(`.${this.CssClasses_.LABEL}`);\n this.select_ = this.element_.querySelector(`.${this.CssClasses_.INPUT}`);\n\n if (this.select_) {\n this.boundUpdateClassesHandler = this.updateClasses_.bind(this);\n this.boundFocusHandler = this.onFocus_.bind(this);\n this.boundBlurHandler = this.onBlur_.bind(this);\n this.boundResetHandler = this.onReset_.bind(this);\n this.select_.addEventListener('change', this.boundUpdateClassesHandler);\n this.select_.addEventListener('focus', this.boundFocusHandler);\n this.select_.addEventListener('blur', this.boundBlurHandler);\n this.select_.addEventListener('reset', this.boundResetHandler);\n\n const invalid = this.element_.classList.contains(this.CssClasses_.IS_INVALID);\n this.updateClasses_();\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n\n if (invalid) {\n this.element_.classList.add(this.CssClasses_.IS_INVALID);\n }\n if (this.select_.hasAttribute('autofocus')) {\n this.element_.focus();\n this.checkFocus();\n }\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: 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\n/** WEBPACK FOOTER **\n ** ./src/selectfield/selectfield.js\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 * 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\n(function() {\n 'use strict';\n\n const IS_UPGRADED = 'is-upgraded';\n const CONTENT_CLASS = 'mdl-layout__content';\n const IS_SCROLL_CLASS = 'mdlext-is-scroll';\n //const STICKY_HEADER_CLASS = 'mdlext-layout__sticky-header';\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 // false: allow rAF to be called, true: blocks rAF\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 /**\n * Adjust header width when window resizes or oreientation changes\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.resizeHandler_ = function( /* event */ ) {\n\n // See: https://developer.mozilla.org/en-US/docs/Web/Events/resize\n if(!this.drawing_) {\n // Assumes MDL has polyfilled rAF\n window.requestAnimationFrame( () => {\n this.recalcWidth_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\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 = '0';\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 * Scroll header when content scrolls\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.scrollHandler_ = function( /* event */ ) {\n // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n if(!this.drawing_) {\n window.requestAnimationFrame( () => {\n this.reposition_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\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 * Initialize component\n */\n MaterialExtStickyHeader.prototype.init = function() {\n\n if (this.header_) {\n this.content_ = this.header_.parentNode.querySelector(`.${CONTENT_CLASS}`) || 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 // Adjust header width if content changes (e.g. in a SPA)\n const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n\n // jsdom does not support MutationObserver - so this is not testable\n /* istanbul ignore next */\n new MutationObserver( ( /*mutations*/ ) => {\n\n if(!this.drawing_) {\n window.requestAnimationFrame( () => {\n this.updatePosition_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\n\n }).observe( this.content_, {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: true\n });\n\n // Set initial position\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n 'use strict';\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\n/** WEBPACK FOOTER **\n ** ./src/sticky-header/sticky-header.js\n **/","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 = 49\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/array/from.js\n ** module id = 49\n ** module chunks = 0 1\n **/","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 = 50\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/is-iterable.js\n ** module id = 50\n ** module chunks = 0 1\n **/","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 = 51\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/assign.js\n ** module id = 51\n ** module chunks = 0 1\n **/","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 = 52\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 52\n ** module chunks = 0 1\n **/","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 = 53\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/entries.js\n ** module id = 53\n ** module chunks = 0 1\n **/","\"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 = 54\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 54\n ** module chunks = 0 1\n **/","\"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 = 55\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 55\n ** module chunks = 0 1\n **/","\"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 = 56\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/slicedToArray.js\n ** module id = 56\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/array/from.js\n ** module id = 57\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/array/from.js\n ** module id = 57\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 58\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 58\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 59\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 59\n ** module chunks = 0 1\n **/","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/number/is-integer.js\n ** module id = 60\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/number/is-integer.js\n ** module id = 60\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 61\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 61\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 62\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 62\n ** module chunks = 0 1\n **/","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/entries.js\n ** module id = 63\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/entries.js\n ** module id = 63\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_a-function.js\n ** module id = 64\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_a-function.js\n ** module id = 64\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_add-to-unscopables.js\n ** module id = 65\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_add-to-unscopables.js\n ** module id = 65\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_array-includes.js\n ** module id = 66\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_array-includes.js\n ** module id = 66\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_create-property.js\n ** module id = 67\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_create-property.js\n ** module id = 67\n ** module chunks = 0 1\n **/","module.exports = require('./_global').document && document.documentElement;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_html.js\n ** module id = 68\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_html.js\n ** module id = 68\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 69\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 69\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_is-array-iter.js\n ** module id = 70\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-array-iter.js\n ** module id = 70\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_is-integer.js\n ** module id = 71\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-integer.js\n ** module id = 71\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_iter-call.js\n ** module id = 72\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-call.js\n ** module id = 72\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_iter-create.js\n ** module id = 73\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-create.js\n ** module id = 73\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_iter-detect.js\n ** module id = 74\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-detect.js\n ** module id = 74\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-step.js\n ** module id = 75\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-step.js\n ** module id = 75\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_library.js\n ** module id = 76\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_library.js\n ** module id = 76\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_object-assign.js\n ** module id = 77\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-assign.js\n ** module id = 77\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-create.js\n ** module id = 78\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-create.js\n ** module id = 78\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 79\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 79\n ** module chunks = 0 1\n **/","exports.f = Object.getOwnPropertySymbols;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gops.js\n ** module id = 80\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gops.js\n ** module id = 80\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 81\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 81\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 82\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 82\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-to-array.js\n ** module id = 83\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-to-array.js\n ** module id = 83\n ** module chunks = 0 1\n **/","module.exports = require('./_hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_redefine.js\n ** module id = 84\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_redefine.js\n ** module id = 84\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_string-at.js\n ** module id = 85\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_string-at.js\n ** module id = 85\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_to-index.js\n ** module id = 86\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-index.js\n ** module id = 86\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-primitive.js\n ** module id = 87\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-primitive.js\n ** module id = 87\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 88\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 88\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 89\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 89\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.array.from.js\n ** module id = 90\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.from.js\n ** module id = 90\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 91\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 91\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es6.number.is-integer.js\n ** module id = 92\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.number.is-integer.js\n ** module id = 92\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 93\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 93\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/es6.object.define-property.js\n ** module id = 94\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.define-property.js\n ** module id = 94\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es7.object.entries.js\n ** module id = 95\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es7.object.entries.js\n ** module id = 95\n ** module chunks = 0 1\n **/","// removed by extract-text-webpack-plugin\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/mdl-ext-build.scss\n ** module id = 96\n ** module chunks = 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/mdl-ext-build.scss\n ** module id = 96\n ** module chunks = 1\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 5aa660a77d59195b625c?0f71","webpack:///./~/core-js/library/modules/_core.js?1b62","webpack:///./~/core-js/library/modules/_wks.js?3027","webpack:///./~/core-js/library/modules/_export.js?ece2","webpack:///./~/core-js/library/modules/_global.js?77aa","webpack:///./~/core-js/library/modules/_iterators.js?aff7","webpack:///./src/utils/custom-event.js?bfbd","webpack:///./~/core-js/library/modules/_an-object.js?0da3","webpack:///./~/core-js/library/modules/_descriptors.js?7051","webpack:///./~/core-js/library/modules/_hide.js?a6da","webpack:///./~/core-js/library/modules/_object-dp.js?4116","webpack:///./~/babel-runtime/helpers/toConsumableArray.js?1825","webpack:///./~/core-js/library/modules/_has.js?d850","webpack:///./~/core-js/library/modules/_is-object.js?24c8","webpack:///./~/core-js/library/modules/_to-iobject.js?6946","webpack:///./src/utils/closest-polyfill.js?bd65","webpack:///./~/core-js/library/modules/_defined.js?45d3","webpack:///./~/core-js/library/modules/_fails.js?935d","webpack:///./~/core-js/library/modules/_object-keys.js?f5bc","webpack:///./~/core-js/library/modules/_property-desc.js?1e86","webpack:///./~/core-js/library/modules/_shared-key.js?2a6c","webpack:///./~/core-js/library/modules/_to-integer.js?f65f","webpack:///./~/core-js/library/modules/_to-object.js?b5c0","webpack:///./~/core-js/library/modules/es6.string.iterator.js?fe18","webpack:///./src/utils/animationloop.js?92de","webpack:///./src/utils/easing.js?f6e9","webpack:///./~/babel-runtime/core-js/get-iterator.js?1b08","webpack:///./~/babel-runtime/core-js/number/is-integer.js?14ca","webpack:///./~/core-js/library/modules/_classof.js?b4b3","webpack:///./~/core-js/library/modules/_cof.js?48ea","webpack:///./~/core-js/library/modules/_ctx.js?ce00","webpack:///./~/core-js/library/modules/_dom-create.js?ab44","webpack:///./~/core-js/library/modules/_enum-bug-keys.js?7598","webpack:///./~/core-js/library/modules/_iobject.js?5cf9","webpack:///./~/core-js/library/modules/_iter-define.js?9a94","webpack:///./~/core-js/library/modules/_object-pie.js?d0d2","webpack:///./~/core-js/library/modules/_set-to-string-tag.js?c945","webpack:///./~/core-js/library/modules/_shared.js?7b6c","webpack:///./~/core-js/library/modules/_to-length.js?62a7","webpack:///./~/core-js/library/modules/_uid.js?e8cd","webpack:///./~/core-js/library/modules/core.get-iterator-method.js?9c88","webpack:///./~/core-js/library/modules/web.dom.iterable.js?bf0e","webpack:///./src/accordion/accordion.js?021c","webpack:///./src/carousel/carousel.js?7189","webpack:///./src/index.js?9552","webpack:///./src/lightboard/lightboard.js?4a51","webpack:///./src/lightbox/lightbox.js?4a9b","webpack:///./src/selectfield/selectfield.js?4310","webpack:///./src/sticky-header/sticky-header.js?0ce9","webpack:///./~/babel-runtime/core-js/array/from.js?efc2","webpack:///./~/babel-runtime/core-js/is-iterable.js?350e","webpack:///./~/babel-runtime/core-js/object/assign.js?e6ca","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/babel-runtime/core-js/object/entries.js?41f9","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/helpers/slicedToArray.js?39c4","webpack:///./~/core-js/library/fn/array/from.js?669d","webpack:///./~/core-js/library/fn/get-iterator.js?2cf7","webpack:///./~/core-js/library/fn/is-iterable.js?0bd2","webpack:///./~/core-js/library/fn/number/is-integer.js?0be2","webpack:///./~/core-js/library/fn/object/assign.js?80e4","webpack:///./~/core-js/library/fn/object/define-property.js?b7d8","webpack:///./~/core-js/library/fn/object/entries.js?390f","webpack:///./~/core-js/library/modules/_a-function.js?d53e","webpack:///./~/core-js/library/modules/_add-to-unscopables.js?d5e8","webpack:///./~/core-js/library/modules/_array-includes.js?6199","webpack:///./~/core-js/library/modules/_create-property.js?1ad1","webpack:///./~/core-js/library/modules/_html.js?e5af","webpack:///./~/core-js/library/modules/_ie8-dom-define.js?bd1f","webpack:///./~/core-js/library/modules/_is-array-iter.js?a4b3","webpack:///./~/core-js/library/modules/_is-integer.js?0b73","webpack:///./~/core-js/library/modules/_iter-call.js?5189","webpack:///./~/core-js/library/modules/_iter-create.js?0127","webpack:///./~/core-js/library/modules/_iter-detect.js?0a91","webpack:///./~/core-js/library/modules/_iter-step.js?e209","webpack:///./~/core-js/library/modules/_library.js?2c80","webpack:///./~/core-js/library/modules/_object-assign.js?5c0c","webpack:///./~/core-js/library/modules/_object-create.js?d8cf","webpack:///./~/core-js/library/modules/_object-dps.js?47fd","webpack:///./~/core-js/library/modules/_object-gops.js?a5fb","webpack:///./~/core-js/library/modules/_object-gpo.js?d47d","webpack:///./~/core-js/library/modules/_object-keys-internal.js?fcea","webpack:///./~/core-js/library/modules/_object-to-array.js?ae83","webpack:///./~/core-js/library/modules/_redefine.js?1455","webpack:///./~/core-js/library/modules/_string-at.js?413a","webpack:///./~/core-js/library/modules/_to-index.js?9fd4","webpack:///./~/core-js/library/modules/_to-primitive.js?49a4","webpack:///./~/core-js/library/modules/core.get-iterator.js?aca7","webpack:///./~/core-js/library/modules/core.is-iterable.js?77cc","webpack:///./~/core-js/library/modules/es6.array.from.js?ce7d","webpack:///./~/core-js/library/modules/es6.array.iterator.js?1e09","webpack:///./~/core-js/library/modules/es6.number.is-integer.js?bf65","webpack:///./~/core-js/library/modules/es6.object.assign.js?9007","webpack:///./~/core-js/library/modules/es6.object.define-property.js?c82c","webpack:///./~/core-js/library/modules/es7.object.entries.js?86f8","webpack:///./src/mdl-ext-build.scss?16f6"],"names":[],"mappings":"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b;;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;AACA;AACA;;AAEA,yGAAwG,OAAO;AAC/G;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;ACiBA;;;;AAGA,EAAC,YAAW;AACV;;AAEA,OAAM,WAA8B,EAApC;AACA,OAAM,WAA8B,EAApC;AACA,OAAM,SAA8B,EAApC;AACA,OAAM,UAA8B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kB,wD;;;;;;ACAlB,mBAAkB,wD;;;;;;ACAlB,mBAAkB,wD;;;;;;ACAlB,mBAAkB,wD;;;;;;ACAlB,mBAAkB,wD;;;;;;ACAlB;;AAEA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;ACRA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,G;;;;;;AC1BD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yDAAwD,+BAA+B;AACvF;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC,G;;;;;;AClDD;AACA;AACA,oD;;;;;;ACFA;AACA;AACA,0C;;;;;;ACFA;AACA;AACA,0C;;;;;;ACFA;AACA,0D;;;;;;ACDA;AACA,uD;;;;;;ACDA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA,wD;;;;;;ACDA;AACA;AACA;AACA,G;;;;;;ACHA,6BAA4B,e;;;;;;ACA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,WAAW,eAAe;AAC/B;AACA,MAAK;AACL;AACA,G;;;;;;ACpBA;AACA;AACA;;AAEA;AACA;AACA;AACA,G;;;;;;ACPA,8E;;;;;;ACAA;AACA,sEAAsE,gBAAgB,UAAU,GAAG;AACnG,EAAC,E;;;;;;ACFD;AACA;AACA;AACA;;AAEA;AACA;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,0FAAgF,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,G;;;;;;ACfA,yC;;;;;;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,2CAA0C,gCAAoC,E;;;;;;ACH9E;AACA;AACA,qEAAuE,0CAA0C,E;;;;;;ACFjH;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\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \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 5aa660a77d59195b625c\n **/\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 5aa660a77d59195b625c\n **/","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 ** ./~/core-js/library/modules/_core.js\n ** module id = 1\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_core.js\n ** module id = 1\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_wks.js\n ** module id = 2\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_wks.js\n ** module id = 2\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_export.js\n ** module id = 3\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_export.js\n ** module id = 3\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_global.js\n ** module id = 4\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_global.js\n ** module id = 4\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iterators.js\n ** module id = 5\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iterators.js\n ** module id = 5\n ** module chunks = 0 1\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/**\n * Due to a bug in mdl-1.1.3 it is not possible to use a globally polyfilled CustomEvent constructor\n * Since I do not care too much about IE11, a brute force approach is sufficient.\n *\n * @param {string} typeArg Is a String representing the name of the event.\n * @param {Object} customEventInit Is an EventInit dictionary, having the following fields:\n * \"bubbles\", optional and defaulting to false, of type Boolean, indicating if the event bubbles or not.\n * \"cancelable\", optional and defaulting to false, of type Boolean, indicating if the event can be canceled or not.\n * \"detail\", optional and defaulting to null, of type any, that is an event-dependent value associated with the event.\n */\n\nexport function createCustomEvent( typeArg, customEventInit = { bubbles: false, cancelable: false, detail: null } ) {\n\n try {\n // Modern browsers\n return new window.CustomEvent(typeArg, customEventInit);\n }\n catch(e) {\n // Copied from https://github.com/webcomponents/webcomponentsjs/blob/v0.7.12/CustomElements.js#L950\n // Copied from http://stackoverflow.com/questions/23349191/event-preventdefault-is-not-working-in-ie-11-for-custom-events\n const ce = document.createEvent('CustomEvent');\n ce.initCustomEvent(typeArg, customEventInit.bubbles, customEventInit.cancelable, customEventInit.detail);\n\n ce.preventDefault = function() {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n };\n return ce;\n }\n // Let old browsers throw whatewer they want to throw\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/custom-event.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/custom-event.js\n **/","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 ** ./~/core-js/library/modules/_an-object.js\n ** module id = 7\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_an-object.js\n ** module id = 7\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_descriptors.js\n ** module id = 8\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_descriptors.js\n ** module id = 8\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_hide.js\n ** module id = 9\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_hide.js\n ** module id = 9\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-dp.js\n ** module id = 10\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dp.js\n ** module id = 10\n ** module chunks = 0 1\n **/","\"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 = 11\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/toConsumableArray.js\n ** module id = 11\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_has.js\n ** module id = 12\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_has.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-object.js\n ** module id = 13\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-object.js\n ** module id = 13\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-iobject.js\n ** module id = 14\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-iobject.js\n ** module id = 14\n ** module chunks = 0 1\n **/","/*\n * Code pulled from:\n * https://github.com/jonathantneal/closest/blob/master/closest.js\n * https://plainjs.com/javascript/traversing/get-closest-element-by-selector-39/\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n * http://stackoverflow.com/questions/18663941/finding-closest-element-without-jquery\n */\n\n/**\n * Element.matches() polyfill\n * The Element.matches() method returns true if the element would be selected by the specified selector string;\n * otherwise, returns false.\n */\nif (typeof Element.prototype.matches !== 'function') {\n Element.prototype.matches = Element.prototype.msMatchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n\n function matches(selector) {\n const element = this;\n const elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n let i = elements.length;\n while (--i >= 0 && elements.item(i) !== element);\n return i > -1;\n };\n}\n\n/**\n * Element.closest() polyfill\n * The Element.closest() method returns the closest ancestor of the current element (or the current element itself)\n * which matches the selectors given in parameter. If there isn't such an ancestor, it returns null.\n */\nif (typeof Element.prototype.closest !== 'function') {\n Element.prototype.closest = function closest(selector) {\n let element = this;\n\n while (element && element.nodeType === Node.ELEMENT_NODE) {\n if(element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n return null;\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/closest-polyfill.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/closest-polyfill.js\n **/","// 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 ** ./~/core-js/library/modules/_defined.js\n ** module id = 16\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_defined.js\n ** module id = 16\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_fails.js\n ** module id = 17\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_fails.js\n ** module id = 17\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 18\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 18\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_property-desc.js\n ** module id = 19\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_property-desc.js\n ** module id = 19\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 20\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 20\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-integer.js\n ** module id = 21\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-integer.js\n ** module id = 21\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-object.js\n ** module id = 22\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-object.js\n ** module id = 22\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\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 * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * rAF based animation loop\n */\n\nclass MdlExtAnimationLoop {\n\n /**\n * @constructor\n *\n * @param interval\n */\n constructor(interval = 17) {\n this.interval = interval;\n this.running_ = false;\n this.rAFId_ = 0;\n this.timeElapsed_ = 0;\n }\n\n /**\n * Set interval between each rAF tick\n * @param interval\n */\n set interval(interval) {\n this.interval_ = interval < 17 ? 17 : interval; // 17 ~ 60fps\n }\n\n /**\n * @returns {boolean|*} true if animation is running\n */\n get running() {\n return this.running_;\n }\n\n /**\n * Cancels animation loop\n */\n cancelRAF() {\n if(this.rAFId_ !== 0) {\n window.cancelAnimationFrame(this.rAFId_);\n this.rAFId_ = 0;\n }\n this.running_ = false;\n this.timeElapsed_ = 0;\n }\n\n /**\n * Start rAF animation loop\n * @param tick callback function\n */\n start( tick ) {\n this.running_ = true;\n let timeStart = Date.now();\n\n const loop = now => {\n if (this.running_) {\n this.rAFId_ = window.requestAnimationFrame( () => loop( Date.now() ));\n this.timeElapsed_ += now - timeStart;\n\n if(this.timeElapsed_ >= this.interval_) {\n this.running_ = tick( this.timeElapsed_ );\n if( (this.timeElapsed_ -= this.interval_) > this.interval_) {\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 this.timeElapsed_ = 0;\n }\n }\n timeStart = now;\n }\n };\n loop(timeStart);\n return this;\n }\n\n /**\n * Stops animation\n */\n stop() {\n this.cancelRAF();\n return this;\n }\n}\n\nexport default MdlExtAnimationLoop;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/animationloop.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/animationloop.js\n **/","// See: http://robertpenner.com/easing/\n\nexport const 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\nexport const 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\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/easing.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/easing.js\n **/","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 = 26\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/get-iterator.js\n ** module id = 26\n ** module chunks = 0 1\n **/","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 = 27\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/number/is-integer.js\n ** module id = 27\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_classof.js\n ** module id = 28\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_classof.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_cof.js\n ** module id = 29\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_cof.js\n ** module id = 29\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_ctx.js\n ** module id = 30\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ctx.js\n ** module id = 30\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_dom-create.js\n ** module id = 31\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_dom-create.js\n ** module id = 31\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 32\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 32\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_iobject.js\n ** module id = 33\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iobject.js\n ** module id = 33\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_iter-define.js\n ** module id = 34\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-define.js\n ** module id = 34\n ** module chunks = 0 1\n **/","exports.f = {}.propertyIsEnumerable;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-pie.js\n ** module id = 35\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-pie.js\n ** module id = 35\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_set-to-string-tag.js\n ** module id = 36\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_set-to-string-tag.js\n ** module id = 36\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-length.js\n ** module id = 38\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-length.js\n ** module id = 38\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_uid.js\n ** module id = 39\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_uid.js\n ** module id = 39\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 40\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 40\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 41\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 41\n ** module chunks = 0 1\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 * 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 { createCustomEvent } from '../utils/custom-event';\n\n\n(function() {\n 'use strict';\n\n const VK_ENTER = 13;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\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 ARIA_MULTISELECTABLE = 'aria-multiselectable';\n const ARIA_EXPANDED = 'aria-expanded';\n const ARIA_HIDDEN = 'aria-hidden';\n const ARIA_SELECTED = 'aria-selected';\n const IS_EXPANDED = 'is-expanded';\n const IS_UPGRADED = 'is-upgraded';\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 /**\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 // 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 = createCustomEvent('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 = e => {\n e.preventDefault();\n e.stopPropagation();\n this.toggleTab_(panel, tab, tabpanel);\n selectTab();\n };\n\n const tabFocusHandler = e => {\n e.preventDefault();\n e.stopPropagation();\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 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 * Downgrade component\n * E.g remove listeners and clean up resources\n *\n * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\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\n/** WEBPACK FOOTER **\n ** ./src/accordion/accordion.js\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 * 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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\nimport MdlExtAnimationLoop from '../utils/animationloop';\nimport { inOutQuintic } from '../utils/easing';\n\n(function() {\n 'use strict';\n\n const VK_TAB = 9;\n const VK_ENTER = 13;\n const VK_ESC = 27;\n const VK_SPACE = 32;\n const VK_PAGE_UP = 33;\n const VK_PAGE_DOWN = 34;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\n const IS_FOCUSED = 'is-focused';\n //const CAROUSEL = 'mdlext-carousel';\n const SLIDE = 'mdlext-carousel__slide';\n const ROLE = 'list';\n const SLIDE_ROLE = 'listitem';\n\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_COMPONENT = 'MaterialRipple';\n const RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n const RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n const RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\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: new MdlExtAnimationLoop(1000)\n };\n\n this.scrollAnimation_ = new MdlExtAnimationLoop(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.running) {\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.running) {\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().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 this.command_(action);\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 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 = createCustomEvent('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 // 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(`.${RIPPLE_CONTAINER}`)) {\n const rippleContainer = document.createElement('span');\n rippleContainer.classList.add(RIPPLE_CONTAINER);\n rippleContainer.classList.add(RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(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, 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(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 const s = this.element_.getAttribute('data-config').replace(/'/g, '\"');\n try {\n const c = JSON.parse(s);\n Object.assign(this.config_, c);\n }\n catch (e) {\n throw new Error(`Failed to parse \"data-config = ${s}\". Error: ${e.message}`);\n }\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 if(this.config_.interactive) {\n\n // Ripple\n const hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n if (hasRippleEffect) {\n this.element_.classList.add(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 // Click is handled by drag\n this.element_.addEventListener('click', e => e.preventDefault(), false);\n }\n\n // Listen to custom 'command' event\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n /* Not needed. Difficult to test. Call upgradeSlides() from client instead.\n // Detect insertions into components DOM\n const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n // jsdom does not support MutationObserver - so this is not testable\n new MutationObserver( mutations => {\n mutations.forEach( mutation => {\n if (mutation.addedNodes.length > 0) {\n window.requestAnimationFrame(() => this.upgradeSlides() );\n }\n });\n }).observe( this.element_, {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: false\n });\n */\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n MaterialExtCarousel.prototype.mdlDowngrade_ = function() {\n 'use strict';\n console.log('***** MaterialExtCarousel.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: MaterialExtCarousel,\n classAsString: 'MaterialExtCarousel',\n cssClass: 'mdlext-js-carousel',\n widget: true\n });\n\n})();\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/carousel/carousel.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/carousel/carousel.js\n **/","'use strict';\n//import 'utils/closest-polyfill';\nimport 'utils/custom-event';\nimport 'utils/animationloop';\nimport 'utils/easing';\nimport 'sticky-header/sticky-header';\nimport 'selectfield/selectfield';\nimport 'accordion/accordion';\nimport 'lightboard/lightboard';\nimport 'lightbox/lightbox';\nimport 'carousel/carousel';\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\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 * 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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_ENTER = 13;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\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 const RIPPLE_COMPONENT = 'MaterialRipple';\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container';\n const RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n const RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\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 * 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(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n\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\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 createCustomEvent('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(`.${RIPPLE_CONTAINER}`)) {\n const a = slide.querySelector(`.${SLIDE_TABSTOP}`);\n if(a) {\n const rippleContainer = a;\n rippleContainer.classList.add(RIPPLE_CONTAINER);\n rippleContainer.classList.add(RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(RIPPLE);\n rippleContainer.appendChild(ripple);\n componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n }\n }\n };\n\n const hasRippleEffect = this.element_.classList.contains(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 // 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\n/** WEBPACK FOOTER **\n ** ./src/lightboard/lightboard.js\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 * 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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_ESC = 27;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\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 // false: allow rAF to be called, true: blocks rAF\n this.drawing_ = false;\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(createCustomEvent('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 dialog = lightboxElement.parentNode.nodeName === 'DIALOG' ? lightboxElement.parentNode : null;\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); // .bind(this) does not work here\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\n // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n window.addEventListener('resize', () => {\n if(!this.drawing_) {\n // Assumes MDL has polyfilled rAF\n window.requestAnimationFrame( () => {\n repositionDialog_(this.element_);\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\n });\n\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n\n MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n\n if (this.element_) {\n [...this.element_.querySelectorAll(`.${BUTTON}`)].forEach(\n button => button.removeEventListener('click', this.buttonClickHandler_)\n );\n\n this.element_.removeEventListener('keydown', this.keyDownHandler_);\n }\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/** WEBPACK FOOTER **\n ** ./src/lightbox/lightbox.js\n **/\n\n\n/** WEBPACK FOOTER **\n ** ./src/lightbox/lightbox.js\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 * 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\n(function() {\n 'use strict';\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 * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\n MaterialExtSelectfield.prototype.Constant_ = {\n };\n\n /**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\n MaterialExtSelectfield.prototype.CssClasses_ = {\n LABEL: 'mdlext-selectfield__label',\n INPUT: 'mdlext-selectfield__select',\n IS_DIRTY: 'is-dirty',\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_INVALID: 'is-invalid',\n IS_UPGRADED: 'is-upgraded'\n };\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(this.CssClasses_.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(this.CssClasses_.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(this.CssClasses_.IS_DISABLED);\n } else {\n this.element_.classList.remove(this.CssClasses_.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 /*eslint no-extra-boolean-cast: 0*/\n if (Boolean(this.element_.querySelector(':focus'))) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n } else {\n this.element_.classList.remove(this.CssClasses_.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(this.CssClasses_.IS_DIRTY);\n } else {\n this.element_.classList.remove(this.CssClasses_.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(`.${this.CssClasses_.LABEL}`);\n this.select_ = this.element_.querySelector(`.${this.CssClasses_.INPUT}`);\n\n if (this.select_) {\n this.boundUpdateClassesHandler = this.updateClasses_.bind(this);\n this.boundFocusHandler = this.onFocus_.bind(this);\n this.boundBlurHandler = this.onBlur_.bind(this);\n this.boundResetHandler = this.onReset_.bind(this);\n this.select_.addEventListener('change', this.boundUpdateClassesHandler);\n this.select_.addEventListener('focus', this.boundFocusHandler);\n this.select_.addEventListener('blur', this.boundBlurHandler);\n this.select_.addEventListener('reset', this.boundResetHandler);\n\n const invalid = this.element_.classList.contains(this.CssClasses_.IS_INVALID);\n this.updateClasses_();\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n\n if (invalid) {\n this.element_.classList.add(this.CssClasses_.IS_INVALID);\n }\n if (this.select_.hasAttribute('autofocus')) {\n this.element_.focus();\n this.checkFocus();\n }\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: 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\n/** WEBPACK FOOTER **\n ** ./src/selectfield/selectfield.js\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 * 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\n(function() {\n 'use strict';\n\n const IS_UPGRADED = 'is-upgraded';\n const CONTENT_CLASS = 'mdl-layout__content';\n const IS_SCROLL_CLASS = 'mdlext-is-scroll';\n //const STICKY_HEADER_CLASS = 'mdlext-layout__sticky-header';\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 // false: allow rAF to be called, true: blocks rAF\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 /**\n * Adjust header width when window resizes or oreientation changes\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.resizeHandler_ = function( /* event */ ) {\n\n // See: https://developer.mozilla.org/en-US/docs/Web/Events/resize\n if(!this.drawing_) {\n // Assumes MDL has polyfilled rAF\n window.requestAnimationFrame( () => {\n this.recalcWidth_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\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 = '0';\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 * Scroll header when content scrolls\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.scrollHandler_ = function( /* event */ ) {\n // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n if(!this.drawing_) {\n window.requestAnimationFrame( () => {\n this.reposition_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\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 * Initialize component\n */\n MaterialExtStickyHeader.prototype.init = function() {\n\n if (this.header_) {\n this.content_ = this.header_.parentNode.querySelector(`.${CONTENT_CLASS}`) || 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 // Adjust header width if content changes (e.g. in a SPA)\n const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n\n // jsdom does not support MutationObserver - so this is not testable\n /* istanbul ignore next */\n new MutationObserver( ( /*mutations*/ ) => {\n\n if(!this.drawing_) {\n window.requestAnimationFrame( () => {\n this.updatePosition_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\n\n }).observe( this.content_, {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: true\n });\n\n // Set initial position\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n 'use strict';\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\n/** WEBPACK FOOTER **\n ** ./src/sticky-header/sticky-header.js\n **/","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 = 49\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/array/from.js\n ** module id = 49\n ** module chunks = 0 1\n **/","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 = 50\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/is-iterable.js\n ** module id = 50\n ** module chunks = 0 1\n **/","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 = 51\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/assign.js\n ** module id = 51\n ** module chunks = 0 1\n **/","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 = 52\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 52\n ** module chunks = 0 1\n **/","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 = 53\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/entries.js\n ** module id = 53\n ** module chunks = 0 1\n **/","\"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 = 54\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 54\n ** module chunks = 0 1\n **/","\"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 = 55\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 55\n ** module chunks = 0 1\n **/","\"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 = 56\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/slicedToArray.js\n ** module id = 56\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/array/from.js\n ** module id = 57\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/array/from.js\n ** module id = 57\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 58\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 58\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 59\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 59\n ** module chunks = 0 1\n **/","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/number/is-integer.js\n ** module id = 60\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/number/is-integer.js\n ** module id = 60\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 61\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 61\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 62\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 62\n ** module chunks = 0 1\n **/","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/entries.js\n ** module id = 63\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/entries.js\n ** module id = 63\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_a-function.js\n ** module id = 64\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_a-function.js\n ** module id = 64\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_add-to-unscopables.js\n ** module id = 65\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_add-to-unscopables.js\n ** module id = 65\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_array-includes.js\n ** module id = 66\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_array-includes.js\n ** module id = 66\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_create-property.js\n ** module id = 67\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_create-property.js\n ** module id = 67\n ** module chunks = 0 1\n **/","module.exports = require('./_global').document && document.documentElement;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_html.js\n ** module id = 68\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_html.js\n ** module id = 68\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 69\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 69\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_is-array-iter.js\n ** module id = 70\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-array-iter.js\n ** module id = 70\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_is-integer.js\n ** module id = 71\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-integer.js\n ** module id = 71\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_iter-call.js\n ** module id = 72\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-call.js\n ** module id = 72\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_iter-create.js\n ** module id = 73\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-create.js\n ** module id = 73\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_iter-detect.js\n ** module id = 74\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-detect.js\n ** module id = 74\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-step.js\n ** module id = 75\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-step.js\n ** module id = 75\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_library.js\n ** module id = 76\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_library.js\n ** module id = 76\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_object-assign.js\n ** module id = 77\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-assign.js\n ** module id = 77\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-create.js\n ** module id = 78\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-create.js\n ** module id = 78\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 79\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 79\n ** module chunks = 0 1\n **/","exports.f = Object.getOwnPropertySymbols;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gops.js\n ** module id = 80\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gops.js\n ** module id = 80\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 81\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 81\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 82\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 82\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-to-array.js\n ** module id = 83\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-to-array.js\n ** module id = 83\n ** module chunks = 0 1\n **/","module.exports = require('./_hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_redefine.js\n ** module id = 84\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_redefine.js\n ** module id = 84\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_string-at.js\n ** module id = 85\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_string-at.js\n ** module id = 85\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_to-index.js\n ** module id = 86\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-index.js\n ** module id = 86\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-primitive.js\n ** module id = 87\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-primitive.js\n ** module id = 87\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 88\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 88\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 89\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 89\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.array.from.js\n ** module id = 90\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.from.js\n ** module id = 90\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 91\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 91\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es6.number.is-integer.js\n ** module id = 92\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.number.is-integer.js\n ** module id = 92\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 93\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 93\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/es6.object.define-property.js\n ** module id = 94\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.define-property.js\n ** module id = 94\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es7.object.entries.js\n ** module id = 95\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es7.object.entries.js\n ** module id = 95\n ** module chunks = 0 1\n **/","// removed by extract-text-webpack-plugin\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/mdl-ext-build.scss\n ** module id = 96\n ** module chunks = 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/mdl-ext-build.scss\n ** module id = 96\n ** module chunks = 1\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/mdl-ext.min.js b/lib/mdl-ext.min.js index 74647cb..faf152e 100644 --- a/lib/mdl-ext.min.js +++ b/lib/mdl-ext.min.js @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -function n(e){var t=arguments.length<=1||void 0===arguments[1]?{bubbles:!1,cancelable:!1,detail:null}:arguments[1];try{return new window.CustomEvent(e,t)}catch(n){var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),i.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},i}}Object.defineProperty(t,"__esModule",{value:!0}),t.createCustomEvent=n},function(e,t,n){var i=n(13);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(17)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(10),r=n(19);e.exports=n(8)?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var i=n(7),r=n(69),o=n(87),s=Object.defineProperty;t.f=n(8)?Object.defineProperty:function(e,t,n){if(i(e),t=o(t,!0),i(n),r)try{return s(e,t,n)}catch(a){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var r=n(49),o=i(r);t["default"]=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t=0&&n.item(i)!==t;);return i>-1}),"function"!=typeof Element.prototype.closest&&(Element.prototype.closest=function(e){for(var t=this;t&&t.nodeType===Node.ELEMENT_NODE;){if(t.matches(e))return t;t=t.parentNode}return null})},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){var i=n(82),r=n(32);e.exports=Object.keys||function(e){return i(e,r)}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var i=n(37)("keys"),r=n(39);e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t){var n=Math.ceil,i=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},function(e,t,n){var i=n(16);e.exports=function(e){return Object(i(e))}},function(e,t,n){"use strict";var i=n(85)(!0);n(34)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=i(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(54),o=i(r),s=n(55),a=i(s),l=function(){function e(){var t=arguments.length<=0||void 0===arguments[0]?17:arguments[0];(0,o["default"])(this,e),this.interval=t,this.running_=!1,this.rAFId_=0,this.timeElapsed_=0}return(0,a["default"])(e,[{key:"cancelRAF",value:function(){0!==this.rAFId_&&(window.cancelAnimationFrame(this.rAFId_),this.rAFId_=0),this.running_=!1,this.timeElapsed_=0}},{key:"start",value:function(e){var t=this;this.running_=!0;var n=Date.now(),i=function r(i){t.running_&&(t.rAFId_=window.requestAnimationFrame(function(){return r(Date.now())}),t.timeElapsed_+=i-n,t.timeElapsed_>=t.interval_&&(t.running_=e(t.timeElapsed_),(t.timeElapsed_-=t.interval_)>t.interval_&&(t.timeElapsed_=0)),n=i)};return i(n),this}},{key:"stop",value:function(){return this.cancelRAF(),this}},{key:"interval",set:function(e){this.interval_=e<17?17:e}},{key:"running",get:function(){return this.running_}}]),e}();t["default"]=l,e.exports=t["default"]},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.easeInOutQuad=function(e,t,n,i){return e/=i/2,e<1?n/2*e*e+t:(e--,-n/2*(e*(e-2)-1)+t)},t.inOutQuintic=function(e,t,n,i){var r=(e/=i)*e,o=r*e;return t+n*(6*o*r+-15*r*r+10*o)}},function(e,t,n){e.exports={"default":n(58),__esModule:!0}},function(e,t,n){e.exports={"default":n(60),__esModule:!0}},function(e,t,n){var i=n(29),r=n(2)("toStringTag"),o="Arguments"==i(function(){return arguments}()),s=function(e,t){try{return e[t]}catch(n){}};e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=s(t=Object(e),r))?n:o?i(t):"Object"==(a=i(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var i=n(64);e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var i=n(13),r=n(4).document,o=i(r)&&i(r.createElement);e.exports=function(e){return o?r.createElement(e):{}}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var i=n(29);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var i=n(76),r=n(3),o=n(84),s=n(9),a=n(12),l=n(5),c=n(73),u=n(36),d=n(81),f=n(2)("iterator"),h=!([].keys&&"next"in[].keys()),p="@@iterator",_="keys",m="values",v=function(){return this};e.exports=function(e,t,n,y,b,g,w){c(n,t,y);var x,S,E,L=function(e){if(!h&&e in M)return M[e];switch(e){case _:return function(){return new n(this,e)};case m:return function(){return new n(this,e)}}return function(){return new n(this,e)}},A=t+" Iterator",C=b==m,k=!1,M=e.prototype,H=M[f]||M[p]||b&&M[b],D=H||L(b),O=b?C?L("entries"):D:void 0,q="Array"==t?M.entries||H:H;if(q&&(E=d(q.call(new e)),E!==Object.prototype&&(u(E,A,!0),i||a(E,f)||s(E,f,v))),C&&H&&H.name!==m&&(k=!0,D=function(){return H.call(this)}),i&&!w||!h&&!k&&M[f]||s(M,f,D),l[t]=D,l[A]=v,b)if(x={values:C?D:L(m),keys:g?D:L(_),entries:O},w)for(S in x)S in M||o(M,S,x[S]);else r(r.P+r.F*(h||k),t,x);return x}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var i=n(10).f,r=n(12),o=n(2)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,o)&&i(e,o,{configurable:!0,value:t})}},function(e,t,n){var i=n(4),r="__core-js_shared__",o=i[r]||(i[r]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t,n){var i=n(21),r=Math.min;e.exports=function(e){return e>0?r(i(e),9007199254740991):0}},function(e,t){var n=0,i=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},function(e,t,n){var i=n(28),r=n(2)("iterator"),o=n(5);e.exports=n(1).getIteratorMethod=function(e){if(void 0!=e)return e[r]||e["@@iterator"]||o[i(e)]}},function(e,t,n){n(91);for(var i=n(4),r=n(9),o=n(5),s=n(2)("toStringTag"),a=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],l=0;l<5;l++){var c=a[l],u=i[c],d=u&&u.prototype;d&&!d[s]&&r(d,s,c),o[c]=o.Array}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var r=n(11),o=i(r),s=n(6);!function(){var e=13,t=32,n=35,i=36,r=37,a=38,l=39,c=40,u="mdlext-accordion",d="mdlext-accordion--vertical",f="mdlext-accordion--horizontal",h="mdlext-accordion__panel",p="presentation",_="mdlext-accordion__tab",m="mdlext-accordion__tab__caption",v="tab",y="mdlext-accordion__tabpanel",b="tabpanel",g="aria-multiselectable",w="aria-expanded",x="aria-hidden",S="aria-selected",E="is-expanded",L="is-upgraded",A="mdlext-js-ripple-effect",C="mdlext-accordion__tab--ripple",k="mdlext-js-animation-effect",M="mdlext-accordion__tabpanel--animation",H=function(e){this.element_=e,this.init()};window.MaterialExtAccordion=H,H.prototype.init=function(){var e=this;if(this.element_){if(!this.element_.classList.contains(f)&&!this.element_.classList.contains(d))throw new Error('Accordion must have one of the classes "'+f+'" or "'+d+'"');this.element_.setAttribute("role","tablist"),this.element_.hasAttribute(g)||this.element_.setAttribute(g,"false"),this.element_.removeEventListener("command",this.commandHandler_),this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),[].concat((0,o["default"])(this.element_.querySelectorAll("."+u+" > ."+h))).forEach(function(t){return e.upgradeTab(t)}),this.element_.classList.add(L)}};var D=function(e){return e?e.classList.contains(h)?{panel:e,tab:e.querySelector("."+_),tabpanel:e.querySelector("."+y)}:{panel:e.parentNode,tab:e.parentNode.querySelector("."+_),tabpanel:e.parentNode.querySelector("."+y)}:{panel:null,tab:null,tabpanel:null}};H.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e&&e.detail&&this.command(e.detail)},H.prototype.dispatchToggleEvent_=function(e,t,n){var i=(0,s.createCustomEvent)("toggle",{bubbles:!0,cancelable:!0,detail:{state:e,tab:t,tabpanel:n}});this.element_.dispatchEvent(i)},H.prototype.openTab_=function(e,t,n){e.classList.add(E),t.setAttribute(w,"true"),n.removeAttribute("hidden"),n.setAttribute(x,"false"),this.dispatchToggleEvent_("open",t,n)},H.prototype.closeTab_=function(e,t,n){e.classList.remove(E),t.setAttribute(w,"false"),n.setAttribute("hidden",""),n.setAttribute(x,"true"),this.dispatchToggleEvent_("close",t,n)},H.prototype.toggleTab_=function(e,t,n){this.element_.hasAttribute("disabled")||t.hasAttribute("disabled")||("true"===t.getAttribute(w).toLowerCase()?this.closeTab_(e,t,n):("true"!==this.element_.getAttribute(g).toLowerCase()&&this.closeTabs_(),this.openTab_(e,t,n)))},H.prototype.openTabs_=function(){var e=this;"true"===this.element_.getAttribute(g).toLowerCase()&&[].concat((0,o["default"])(this.element_.querySelectorAll("."+u+" > ."+h))).filter(function(e){return!e.classList.contains(E)}).forEach(function(t){var n=t.querySelector("."+_);n.hasAttribute("disabled")||e.openTab_(t,n,t.querySelector("."+y))})},H.prototype.closeTabs_=function(){var e=this;[].concat((0,o["default"])(this.element_.querySelectorAll("."+u+" > ."+h+"."+E))).forEach(function(t){var n=t.querySelector("."+_);n.hasAttribute("disabled")||e.closeTab_(t,n,t.querySelector("."+y))})},H.prototype.upgradeTab=function(s){var u=this,d=D(s),y=d.panel,g=d.tab,L=d.tabpanel,H=function(){y.classList.remove(E),g.setAttribute("tabindex","-1"),g.setAttribute(w,"false"),L.setAttribute("hidden",""),L.setAttribute(x,"true")},O=function(){g.hasAttribute(w)||g.setAttribute(w,"false"),g.setAttribute("tabindex","0"),"true"===g.getAttribute(w).toLowerCase()?(y.classList.add(E),L.removeAttribute("hidden"),L.setAttribute(x,"false")):(y.classList.remove(E),L.setAttribute("hidden",""),L.setAttribute(x,"true"))},q=function(){var e=g.querySelector("."+m);if(null!==e){var t=[].concat((0,o["default"])(g.children)).filter(function(e){return e.classList&&!e.classList.contains(m)}).reduce(function(e,t){return e+t.offsetWidth},0),n=g.clientHeight-t;n>0&&(e.style["max-width"]=n+"px")}},T=function(){g.hasAttribute(S)||([].concat((0,o["default"])(u.element_.querySelectorAll("."+_+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute(S)}),g.setAttribute(S,"true"))},I=function(e){e.preventDefault(),e.stopPropagation(),u.toggleTab_(y,g,L),T()},j=function(e){e.preventDefault(),e.stopPropagation(),T()},P=function(){T()},F=function(){T()},W=function(s){if(!u.element_.hasAttribute("disabled"))if(s.keyCode===n||s.keyCode===i||s.keyCode===a||s.keyCode===r||s.keyCode===c||s.keyCode===l){var d=null,f=s.keyCode;if(f===i?(d=u.element_.querySelector("."+h+":first-child > ."+_),d&&d.hasAttribute("disabled")&&(d=null,f=c)):f===n&&(d=u.element_.querySelector("."+h+":last-child > ."+_),d&&d.hasAttribute("disabled")&&(d=null,f=a)),!d){var p=y;do{if(f===a||f===r?(p=p.previousElementSibling,p||(p=u.element_.querySelector("."+h+":last-child")),p&&(d=p.querySelector("."+h+" > ."+_))):f!==c&&f!==l||(p=p.nextElementSibling,p||(p=u.element_.querySelector("."+h+":first-child")),p&&(d=p.querySelector("."+h+" > ."+_))),!d||!d.hasAttribute("disabled"))break;d=null}while(p!==y)}d&&(s.preventDefault(),s.stopPropagation(),d.focus(),d.hasAttribute(S)||([].concat((0,o["default"])(u.element_.querySelectorAll("."+_+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute(S)}),d.setAttribute(S,"true")))}else s.keyCode!==e&&s.keyCode!==t||(s.preventDefault(),s.stopPropagation(),u.toggleTab_(y,g,L))};if(null===g)throw new Error("There must be a tab element for each accordion panel.");if(null===L)throw new Error("There must be a tabpanel element for each accordion panel.");y.setAttribute("role",p),g.setAttribute("role",v),L.setAttribute("role",b),g.hasAttribute("disabled")?H():O(),this.element_.classList.contains(f)&&q(),this.element_.classList.contains(A)&&g.classList.add(C),this.element_.classList.contains(k)&&L.classList.add(M),g.removeEventListener("click",I),g.removeEventListener("focus",j),g.removeEventListener("keydown",W),L.removeEventListener("click",P),L.removeEventListener("focus",F),g.addEventListener("click",I),g.addEventListener("focus",j),g.addEventListener("keydown",W),L.addEventListener("click",P,!0),L.addEventListener("focus",F,!0)},H.prototype.upgradeTab=H.prototype.upgradeTab,H.prototype.command=function(e){var t=this,n=function(e){if(void 0===e)t.openTabs_();else if(null!==e){var n=D(e),i=n.panel,r=n.tab,o=n.tabpanel;"true"!==r.getAttribute(w).toLowerCase()&&t.toggleTab_(i,r,o)}},i=function(e){if(void 0===e)t.closeTabs_();else if(null!==e){var n=D(e),i=n.panel,r=n.tab,o=n.tabpanel;"true"===r.getAttribute(w).toLowerCase()&&t.toggleTab_(i,r,o)}},r=function(e){if(e){var n=D(e),i=n.panel,r=n.tab,o=n.tabpanel;t.toggleTab_(i,r,o)}};if(e&&e.action){var o=e.action,s=e.target;switch(o.toLowerCase()){case"open":n(s);break;case"close":i(s);break;case"toggle":r(s);break;case"upgrade":s&&this.upgradeTab(s);break;default:throw new Error('Unknown action "'+o+'". Action must be one of "open", "close", "toggle" or "upgrade"')}}},H.prototype.command=H.prototype.command,componentHandler.register({constructor:H,classAsString:"MaterialExtAccordion",cssClass:"mdlext-js-accordion",widget:!0})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var r=n(27),o=i(r),s=n(11),a=i(s),l=n(51),c=i(l);n(15);var u=n(6),d=n(24),f=i(d),h=n(25);/** +function n(e){var t=arguments.length<=1||void 0===arguments[1]?{bubbles:!1,cancelable:!1,detail:null}:arguments[1];try{return new window.CustomEvent(e,t)}catch(n){var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),i.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},i}}Object.defineProperty(t,"__esModule",{value:!0}),t.createCustomEvent=n},function(e,t,n){var i=n(13);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(17)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(10),r=n(19);e.exports=n(8)?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var i=n(7),r=n(69),o=n(87),s=Object.defineProperty;t.f=n(8)?Object.defineProperty:function(e,t,n){if(i(e),t=o(t,!0),i(n),r)try{return s(e,t,n)}catch(a){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var r=n(49),o=i(r);t["default"]=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t=0&&n.item(i)!==t;);return i>-1}),"function"!=typeof Element.prototype.closest&&(Element.prototype.closest=function(e){for(var t=this;t&&t.nodeType===Node.ELEMENT_NODE;){if(t.matches(e))return t;t=t.parentNode}return null})},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){var i=n(82),r=n(32);e.exports=Object.keys||function(e){return i(e,r)}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var i=n(37)("keys"),r=n(39);e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t){var n=Math.ceil,i=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},function(e,t,n){var i=n(16);e.exports=function(e){return Object(i(e))}},function(e,t,n){"use strict";var i=n(85)(!0);n(34)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=i(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(54),o=i(r),s=n(55),a=i(s),l=function(){function e(){var t=arguments.length<=0||void 0===arguments[0]?17:arguments[0];(0,o["default"])(this,e),this.interval=t,this.running_=!1,this.rAFId_=0,this.timeElapsed_=0}return(0,a["default"])(e,[{key:"cancelRAF",value:function(){0!==this.rAFId_&&(window.cancelAnimationFrame(this.rAFId_),this.rAFId_=0),this.running_=!1,this.timeElapsed_=0}},{key:"start",value:function(e){var t=this;this.running_=!0;var n=Date.now(),i=function r(i){t.running_&&(t.rAFId_=window.requestAnimationFrame(function(){return r(Date.now())}),t.timeElapsed_+=i-n,t.timeElapsed_>=t.interval_&&(t.running_=e(t.timeElapsed_),(t.timeElapsed_-=t.interval_)>t.interval_&&(t.timeElapsed_=0)),n=i)};return i(n),this}},{key:"stop",value:function(){return this.cancelRAF(),this}},{key:"interval",set:function(e){this.interval_=e<17?17:e}},{key:"running",get:function(){return this.running_}}]),e}();t["default"]=l,e.exports=t["default"]},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.easeInOutQuad=function(e,t,n,i){return e/=i/2,e<1?n/2*e*e+t:(e--,-n/2*(e*(e-2)-1)+t)},t.inOutQuintic=function(e,t,n,i){var r=(e/=i)*e,o=r*e;return t+n*(6*o*r+-15*r*r+10*o)}},function(e,t,n){e.exports={"default":n(58),__esModule:!0}},function(e,t,n){e.exports={"default":n(60),__esModule:!0}},function(e,t,n){var i=n(29),r=n(2)("toStringTag"),o="Arguments"==i(function(){return arguments}()),s=function(e,t){try{return e[t]}catch(n){}};e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=s(t=Object(e),r))?n:o?i(t):"Object"==(a=i(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var i=n(64);e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var i=n(13),r=n(4).document,o=i(r)&&i(r.createElement);e.exports=function(e){return o?r.createElement(e):{}}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var i=n(29);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var i=n(76),r=n(3),o=n(84),s=n(9),a=n(12),l=n(5),c=n(73),u=n(36),d=n(81),f=n(2)("iterator"),h=!([].keys&&"next"in[].keys()),p="@@iterator",_="keys",m="values",v=function(){return this};e.exports=function(e,t,n,y,b,g,x){c(n,t,y);var w,S,E,L=function(e){if(!h&&e in H)return H[e];switch(e){case _:return function(){return new n(this,e)};case m:return function(){return new n(this,e)}}return function(){return new n(this,e)}},A=t+" Iterator",C=b==m,k=!1,H=e.prototype,M=H[f]||H[p]||b&&H[b],D=M||L(b),O=b?C?L("entries"):D:void 0,T="Array"==t?H.entries||M:M;if(T&&(E=d(T.call(new e)),E!==Object.prototype&&(u(E,A,!0),i||a(E,f)||s(E,f,v))),C&&M&&M.name!==m&&(k=!0,D=function(){return M.call(this)}),i&&!x||!h&&!k&&H[f]||s(H,f,D),l[t]=D,l[A]=v,b)if(w={values:C?D:L(m),keys:g?D:L(_),entries:O},x)for(S in w)S in H||o(H,S,w[S]);else r(r.P+r.F*(h||k),t,w);return w}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var i=n(10).f,r=n(12),o=n(2)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,o)&&i(e,o,{configurable:!0,value:t})}},function(e,t,n){var i=n(4),r="__core-js_shared__",o=i[r]||(i[r]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t,n){var i=n(21),r=Math.min;e.exports=function(e){return e>0?r(i(e),9007199254740991):0}},function(e,t){var n=0,i=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},function(e,t,n){var i=n(28),r=n(2)("iterator"),o=n(5);e.exports=n(1).getIteratorMethod=function(e){if(void 0!=e)return e[r]||e["@@iterator"]||o[i(e)]}},function(e,t,n){n(91);for(var i=n(4),r=n(9),o=n(5),s=n(2)("toStringTag"),a=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],l=0;l<5;l++){var c=a[l],u=i[c],d=u&&u.prototype;d&&!d[s]&&r(d,s,c),o[c]=o.Array}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var r=n(11),o=i(r),s=n(6);!function(){var e=13,t=32,n=35,i=36,r=37,a=38,l=39,c=40,u="mdlext-accordion",d="mdlext-accordion--vertical",f="mdlext-accordion--horizontal",h="mdlext-accordion__panel",p="presentation",_="mdlext-accordion__tab",m="mdlext-accordion__tab__caption",v="tab",y="mdlext-accordion__tabpanel",b="tabpanel",g="aria-multiselectable",x="aria-expanded",w="aria-hidden",S="aria-selected",E="is-expanded",L="is-upgraded",A="mdlext-js-ripple-effect",C="mdlext-accordion__tab--ripple",k="mdlext-js-animation-effect",H="mdlext-accordion__tabpanel--animation",M=function(e){this.element_=e,this.init()};window.MaterialExtAccordion=M,M.prototype.init=function(){var e=this;if(this.element_){if(!this.element_.classList.contains(f)&&!this.element_.classList.contains(d))throw new Error('Accordion must have one of the classes "'+f+'" or "'+d+'"');this.element_.setAttribute("role","tablist"),this.element_.hasAttribute(g)||this.element_.setAttribute(g,"false"),this.element_.removeEventListener("command",this.commandHandler_),this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),[].concat((0,o["default"])(this.element_.querySelectorAll("."+u+" > ."+h))).forEach(function(t){return e.upgradeTab(t)}),this.element_.classList.add(L)}};var D=function(e){return e?e.classList.contains(h)?{panel:e,tab:e.querySelector("."+_),tabpanel:e.querySelector("."+y)}:{panel:e.parentNode,tab:e.parentNode.querySelector("."+_),tabpanel:e.parentNode.querySelector("."+y)}:{panel:null,tab:null,tabpanel:null}};M.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e&&e.detail&&this.command(e.detail)},M.prototype.dispatchToggleEvent_=function(e,t,n){var i=(0,s.createCustomEvent)("toggle",{bubbles:!0,cancelable:!0,detail:{state:e,tab:t,tabpanel:n}});this.element_.dispatchEvent(i)},M.prototype.openTab_=function(e,t,n){e.classList.add(E),t.setAttribute(x,"true"),n.removeAttribute("hidden"),n.setAttribute(w,"false"),this.dispatchToggleEvent_("open",t,n)},M.prototype.closeTab_=function(e,t,n){e.classList.remove(E),t.setAttribute(x,"false"),n.setAttribute("hidden",""),n.setAttribute(w,"true"),this.dispatchToggleEvent_("close",t,n)},M.prototype.toggleTab_=function(e,t,n){this.element_.hasAttribute("disabled")||t.hasAttribute("disabled")||("true"===t.getAttribute(x).toLowerCase()?this.closeTab_(e,t,n):("true"!==this.element_.getAttribute(g).toLowerCase()&&this.closeTabs_(),this.openTab_(e,t,n)))},M.prototype.openTabs_=function(){var e=this;"true"===this.element_.getAttribute(g).toLowerCase()&&[].concat((0,o["default"])(this.element_.querySelectorAll("."+u+" > ."+h))).filter(function(e){return!e.classList.contains(E)}).forEach(function(t){var n=t.querySelector("."+_);n.hasAttribute("disabled")||e.openTab_(t,n,t.querySelector("."+y))})},M.prototype.closeTabs_=function(){var e=this;[].concat((0,o["default"])(this.element_.querySelectorAll("."+u+" > ."+h+"."+E))).forEach(function(t){var n=t.querySelector("."+_);n.hasAttribute("disabled")||e.closeTab_(t,n,t.querySelector("."+y))})},M.prototype.upgradeTab=function(s){var u=this,d=D(s),y=d.panel,g=d.tab,L=d.tabpanel,M=function(){y.classList.remove(E),g.setAttribute("tabindex","-1"),g.setAttribute(x,"false"),L.setAttribute("hidden",""),L.setAttribute(w,"true")},O=function(){g.hasAttribute(x)||g.setAttribute(x,"false"),g.setAttribute("tabindex","0"),"true"===g.getAttribute(x).toLowerCase()?(y.classList.add(E),L.removeAttribute("hidden"),L.setAttribute(w,"false")):(y.classList.remove(E),L.setAttribute("hidden",""),L.setAttribute(w,"true"))},T=function(){var e=g.querySelector("."+m);if(null!==e){var t=[].concat((0,o["default"])(g.children)).filter(function(e){return e.classList&&!e.classList.contains(m)}).reduce(function(e,t){return e+t.offsetWidth},0),n=g.clientHeight-t;n>0&&(e.style["max-width"]=n+"px")}},q=function(){g.hasAttribute(S)||([].concat((0,o["default"])(u.element_.querySelectorAll("."+_+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute(S)}),g.setAttribute(S,"true"))},I=function(e){e.preventDefault(),e.stopPropagation(),u.toggleTab_(y,g,L),q()},j=function(e){e.preventDefault(),e.stopPropagation(),q()},P=function(){q()},F=function(){q()},W=function(s){if(!u.element_.hasAttribute("disabled"))if(s.keyCode===n||s.keyCode===i||s.keyCode===a||s.keyCode===r||s.keyCode===c||s.keyCode===l){var d=null,f=s.keyCode;if(f===i?(d=u.element_.querySelector("."+h+":first-child > ."+_),d&&d.hasAttribute("disabled")&&(d=null,f=c)):f===n&&(d=u.element_.querySelector("."+h+":last-child > ."+_),d&&d.hasAttribute("disabled")&&(d=null,f=a)),!d){var p=y;do{if(f===a||f===r?(p=p.previousElementSibling,p||(p=u.element_.querySelector("."+h+":last-child")),p&&(d=p.querySelector("."+h+" > ."+_))):f!==c&&f!==l||(p=p.nextElementSibling,p||(p=u.element_.querySelector("."+h+":first-child")),p&&(d=p.querySelector("."+h+" > ."+_))),!d||!d.hasAttribute("disabled"))break;d=null}while(p!==y)}d&&(s.preventDefault(),s.stopPropagation(),d.focus(),d.hasAttribute(S)||([].concat((0,o["default"])(u.element_.querySelectorAll("."+_+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute(S)}),d.setAttribute(S,"true")))}else s.keyCode!==e&&s.keyCode!==t||(s.preventDefault(),s.stopPropagation(),u.toggleTab_(y,g,L))};if(null===g)throw new Error("There must be a tab element for each accordion panel.");if(null===L)throw new Error("There must be a tabpanel element for each accordion panel.");y.setAttribute("role",p),g.setAttribute("role",v),L.setAttribute("role",b),g.hasAttribute("disabled")?M():O(),this.element_.classList.contains(f)&&T(),this.element_.classList.contains(A)&&g.classList.add(C),this.element_.classList.contains(k)&&L.classList.add(H),g.removeEventListener("click",I),g.removeEventListener("focus",j),g.removeEventListener("keydown",W),L.removeEventListener("click",P),L.removeEventListener("focus",F),g.addEventListener("click",I),g.addEventListener("focus",j),g.addEventListener("keydown",W),L.addEventListener("click",P,!0),L.addEventListener("focus",F,!0)},M.prototype.upgradeTab=M.prototype.upgradeTab,M.prototype.command=function(e){var t=this,n=function(e){if(void 0===e)t.openTabs_();else if(null!==e){var n=D(e),i=n.panel,r=n.tab,o=n.tabpanel;"true"!==r.getAttribute(x).toLowerCase()&&t.toggleTab_(i,r,o)}},i=function(e){if(void 0===e)t.closeTabs_();else if(null!==e){var n=D(e),i=n.panel,r=n.tab,o=n.tabpanel;"true"===r.getAttribute(x).toLowerCase()&&t.toggleTab_(i,r,o)}},r=function(e){if(e){var n=D(e),i=n.panel,r=n.tab,o=n.tabpanel;t.toggleTab_(i,r,o)}};if(e&&e.action){var o=e.action,s=e.target;switch(o.toLowerCase()){case"open":n(s);break;case"close":i(s);break;case"toggle":r(s);break;case"upgrade":s&&this.upgradeTab(s);break;default:throw new Error('Unknown action "'+o+'". Action must be one of "open", "close", "toggle" or "upgrade"')}}},M.prototype.command=M.prototype.command,componentHandler.register({constructor:M,classAsString:"MaterialExtAccordion",cssClass:"mdlext-js-accordion",widget:!0})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var r=n(27),o=i(r),s=n(11),a=i(s),l=n(51),c=i(l);n(15);var u=n(6),d=n(24),f=i(d),h=n(25);/** * @license * Copyright 2016 Leif Olsen. All Rights Reserved. * @@ -33,7 +33,7 @@ function n(e){var t=arguments.length<=1||void 0===arguments[1]?{bubbles:!1,cance * This code is built with Google Material Design Lite, * which is Licensed under the Apache License, Version 2.0 */ -!function(){var e=9,t=13,n=27,i=32,r=33,s=34,l=35,d=36,p=37,_=38,m=39,v=40,y="is-upgraded",b="is-focused",g="mdlext-carousel__slide",w="list",x="listitem",S="mdl-ripple",E="MaterialRipple",L="mdlext-carousel__slide__ripple-container",A="mdl-js-ripple-effect",C="mdl-js-ripple-effect--ignore-events",k=function(e){this.element_=e,this.config_={interactive:!0,autostart:!1,type:"slide",interval:1e3,animationLoop:new f["default"](1e3)},this.scrollAnimation_=new f["default"](33),this.drawing_=!1,this.init()};window.MaterialExtCarousel=k,k.prototype.startSlideShow_=function(){var e=this,t=function(){var t=e.element_.querySelector("."+g+"[aria-selected]");return t&&(t.removeAttribute("aria-selected"),t=t.nextElementSibling),t||(t=e.element_.querySelector("."+g+":first-child"),e.animateScroll_(0)),!!t&&(e.moveSlideIntoViewport_(t),t.setAttribute("aria-selected",""),e.emitSelectEvent_("next",null,t),!0)},n=function(t){var n=t;"next"===t&&e.element_.scrollLeft===e.element_.scrollWidth-e.element_.clientWidth?n="prev":0===e.element_.scrollLeft&&(n="next");var i="next"===n?Math.min(e.element_.scrollLeft+e.element_.clientWidth,e.element_.scrollWidth-e.element_.clientWidth):Math.max(e.element_.scrollLeft-e.element_.clientWidth,0);return e.animateScroll_(i,1e3),n};this.config_.animationLoop.running||!function(){e.config_.animationLoop.interval=e.config_.interval;var i="next";"scroll"===e.config_.type?e.config_.animationLoop.start(function(){return i=n(i),!0}):(t(),e.config_.animationLoop.start(function(){return t()}))}()},k.prototype.cancelSlideShow_=function(){this.config_.animationLoop.running&&(this.config_.animationLoop.stop(),this.emitSelectEvent_("pause",n,this.element_.querySelector("."+g+"[aria-selected]")))},k.prototype.animateScroll_=function(e,t,n){var i=this,r=this.element_.scrollLeft,o=e-r;0!==o?!function(){var s=Math.max(Math.min(Math.abs(o),t||400),100),a=0;i.scrollAnimation_.stop().start(function(t){return a+=t,a0&&(i="scroll-next"===r?e[0]:e[e.length-1])}t.setAriaSelected_(i),t.emitSelectEvent_(r,null,i)})},k.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e.detail&&e.detail.action&&this.command_(e)},k.prototype.keyDownHandler_=function(n){if(n&&n.target&&n.target!==this.element_){var o="first";if(n.keyCode===d||n.keyCode===l||n.keyCode===r||n.keyCode===s)n.preventDefault(),n.keyCode===l?o="last":n.keyCode===r?o="scroll-prev":n.keyCode===s&&(o="scroll-next"),this.command_(o);else if(n.keyCode===e||n.keyCode===t||n.keyCode===i||n.keyCode===_||n.keyCode===p||n.keyCode===v||n.keyCode===m){var a=M(n.target);if(!a)return;switch(this.cancelSlideShow_(),n.keyCode){case _:case p:o="prev",a=a.previousElementSibling;break;case v:case m:o="next",a=a.nextElementSibling;break;case e:n.shiftKey?(o="prev",a=a.previousElementSibling):(o="next",a=a.nextElementSibling);break;case i:case t:o="select"}a&&(n.preventDefault(),H(a),this.emitSelectEvent_(o,n.keyCode,a))}}},k.prototype.dragHandler_=function(e){var t=this;e.preventDefault(),this.cancelSlideShow_();var n=!1,i=0,r=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),o=r,s=e.target,a=function(e){var i=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),r=o-i;r<0?t.element_.scrollLeft=Math.max(t.element_.scrollLeft+r,0):r>0&&(t.element_.scrollLeft=Math.min(t.element_.scrollLeft+r,t.element_.scrollWidth-t.element_.clientWidth)),o=i,n=!1},l=function(e){e.preventDefault(),n||(i=window.requestAnimationFrame(function(){return a(e)}),n=!0)},c=function u(e){e.preventDefault(),t.element_.removeEventListener("mousemove",l),t.element_.removeEventListener("touchmove",l),window.removeEventListener("mouseup",u),window.removeEventListener("touchend",u),window.cancelAnimationFrame(i);var n=M(s);H(n),t.emitSelectEvent_("click",null,n)};this.element_.addEventListener("mousemove",l),this.element_.addEventListener("touchmove",l),window.addEventListener("mouseup",c),window.addEventListener("touchend",c)},k.prototype.focusHandler_=function(e){var t=M(e.target);t&&(this.setAriaSelected_(t),t.classList.add(b))},k.prototype.blurHandler_=function(e){var t=M(e.target);t&&t.classList.remove(b)},k.prototype.emitSelectEvent_=function(e,t,n){if(n){this.moveSlideIntoViewport_(n);var i=(0,u.createCustomEvent)("select",{bubbles:!0,cancelable:!0,detail:{command:e,keyCode:t,source:n}});this.element_.dispatchEvent(i)}},k.prototype.getSlidesInViewport_=function(){var e=this.element_.getBoundingClientRect(),t=[].concat((0,a["default"])(this.element_.querySelectorAll("."+g))).filter(function(t){var n=t.getBoundingClientRect();return n.left>=e.left&&n.right<=e.right});return t},k.prototype.moveSlideIntoViewport_=function(e){var t=this.element_.getBoundingClientRect(),n=e.getBoundingClientRect();if(n.leftt.right){var r=this.element_.scrollLeft-(t.right-n.right);this.animateScroll_(r)}},k.prototype.setAriaSelected_=function(e){e&&([].concat((0,a["default"])(this.element_.querySelectorAll("."+g+"[aria-selected]"))).forEach(function(e){return e.removeAttribute("aria-selected")}),e.setAttribute("aria-selected",""))};var M=function(e){return e.closest("."+g)},H=function(e){e&&e.focus()},D=function(e){if(!e.querySelector("."+L)){var t=document.createElement("span");t.classList.add(L),t.classList.add(A);var n=document.createElement("span");n.classList.add(S),t.appendChild(n);var i=e.querySelector("img");i&&(t.title=i.title),e.appendChild(t),componentHandler.upgradeElement(t,E)}};k.prototype.stopAnimation=function(){this.config_.animationLoop.stop()},k.prototype.stopAnimation=k.prototype.stopAnimation,k.prototype.upgradeSlides=function(){var e=this,t=this.element_.classList.contains(A);[].concat((0,a["default"])(this.element_.querySelectorAll("."+g))).forEach(function(n){n.setAttribute("role",x),e.config_.interactive?(n.getAttribute("tabindex")||n.setAttribute("tabindex","0"),t&&D(n)):n.setAttribute("tabindex","-1")})},k.prototype.upgradeSlides=k.prototype.upgradeSlides,k.prototype.getConfig=function(){return this.config_},k.prototype.getConfig=k.prototype.getConfig,k.prototype.init=function(){var e=this;if(this.element_){if(this.element_.hasAttribute("data-config")){var t=this.element_.getAttribute("data-config").replace(/'/g,'"');try{var n=JSON.parse(t);(0,c["default"])(this.config_,n)}catch(i){throw new Error('Failed to parse "data-config = '+t+'". Error: '+i.message)}}if(this.element_.setAttribute("role",w),(0,o["default"])(this.element_.getAttribute("tabindex"))||this.element_.setAttribute("tabindex",-1),this.config_.interactive){var r=this.element_.classList.contains(A);r&&this.element_.classList.add(C),this.element_.addEventListener("focus",this.focusHandler_.bind(this),!0),this.element_.addEventListener("blur",this.blurHandler_.bind(this),!0),this.element_.addEventListener("keydown",this.keyDownHandler_.bind(this),!1),this.element_.addEventListener("mousedown",this.dragHandler_.bind(this),!1),this.element_.addEventListener("touchstart",this.dragHandler_.bind(this),!1),this.element_.addEventListener("click",function(e){return e.preventDefault()},!1)}this.element_.addEventListener("command",this.commandHandler_.bind(this),!1);var s=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;new s(function(t){t.forEach(function(t){t.addedNodes.length>0&&window.requestAnimationFrame(function(){return e.upgradeSlides()})})}).observe(this.element_,{attributes:!1,childList:!0,characterData:!1,subtree:!1}),this.upgradeSlides(),this.element_.classList.add(y),this.config_.autostart&&this.startSlideShow_()}},componentHandler.register({constructor:k,classAsString:"MaterialExtCarousel",cssClass:"mdlext-js-carousel",widget:!0})}()},function(e,t,n){"use strict";n(6),n(24),n(25),n(48),n(47),n(42),n(45),n(46),n(43)},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var r=n(11),o=i(r);n(15);var s=n(6);/** +!function(){var e=9,t=13,n=27,i=32,r=33,s=34,l=35,d=36,p=37,_=38,m=39,v=40,y="is-upgraded",b="is-focused",g="mdlext-carousel__slide",x="list",w="listitem",S="mdl-ripple",E="MaterialRipple",L="mdlext-carousel__slide__ripple-container",A="mdl-js-ripple-effect",C="mdl-js-ripple-effect--ignore-events",k=function(e){this.element_=e,this.config_={interactive:!0,autostart:!1,type:"slide",interval:1e3,animationLoop:new f["default"](1e3)},this.scrollAnimation_=new f["default"](33),this.init()};window.MaterialExtCarousel=k,k.prototype.startSlideShow_=function(){var e=this,t=function(){var t=e.element_.querySelector("."+g+"[aria-selected]");return t&&(t.removeAttribute("aria-selected"),t=t.nextElementSibling),t||(t=e.element_.querySelector("."+g+":first-child"),e.animateScroll_(0)),!!t&&(e.moveSlideIntoViewport_(t),t.setAttribute("aria-selected",""),e.emitSelectEvent_("next",null,t),!0)},n=function(t){var n=t;"next"===t&&e.element_.scrollLeft===e.element_.scrollWidth-e.element_.clientWidth?n="prev":0===e.element_.scrollLeft&&(n="next");var i="next"===n?Math.min(e.element_.scrollLeft+e.element_.clientWidth,e.element_.scrollWidth-e.element_.clientWidth):Math.max(e.element_.scrollLeft-e.element_.clientWidth,0);return e.animateScroll_(i,1e3),n};this.config_.animationLoop.running||!function(){e.config_.animationLoop.interval=e.config_.interval;var i="next";"scroll"===e.config_.type?e.config_.animationLoop.start(function(){return i=n(i),!0}):(t(),e.config_.animationLoop.start(function(){return t()}))}()},k.prototype.cancelSlideShow_=function(){this.config_.animationLoop.running&&(this.config_.animationLoop.stop(),this.emitSelectEvent_("pause",n,this.element_.querySelector("."+g+"[aria-selected]")))},k.prototype.animateScroll_=function(e,t,n){var i=this,r=this.element_.scrollLeft,o=e-r;0!==o?!function(){var s=Math.max(Math.min(Math.abs(o),t||400),100),a=0;i.scrollAnimation_.stop().start(function(t){return a+=t,a0&&(i="scroll-next"===r?e[0]:e[e.length-1])}t.setAriaSelected_(i),t.emitSelectEvent_(r,null,i)})},k.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e.detail&&e.detail.action&&this.command_(e)},k.prototype.keyDownHandler_=function(n){if(n&&n.target&&n.target!==this.element_){var o="first";if(n.keyCode===d||n.keyCode===l||n.keyCode===r||n.keyCode===s)n.preventDefault(),n.keyCode===l?o="last":n.keyCode===r?o="scroll-prev":n.keyCode===s&&(o="scroll-next"),this.command_(o);else if(n.keyCode===e||n.keyCode===t||n.keyCode===i||n.keyCode===_||n.keyCode===p||n.keyCode===v||n.keyCode===m){var a=H(n.target);if(!a)return;switch(this.cancelSlideShow_(),n.keyCode){case _:case p:o="prev",a=a.previousElementSibling;break;case v:case m:o="next",a=a.nextElementSibling;break;case e:n.shiftKey?(o="prev",a=a.previousElementSibling):(o="next",a=a.nextElementSibling);break;case i:case t:o="select"}a&&(n.preventDefault(),M(a),this.emitSelectEvent_(o,n.keyCode,a))}}},k.prototype.dragHandler_=function(e){var t=this;e.preventDefault(),this.cancelSlideShow_();var n=!1,i=0,r=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),o=r,s=e.target,a=function(e){var i=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),r=o-i;r<0?t.element_.scrollLeft=Math.max(t.element_.scrollLeft+r,0):r>0&&(t.element_.scrollLeft=Math.min(t.element_.scrollLeft+r,t.element_.scrollWidth-t.element_.clientWidth)),o=i,n=!1},l=function(e){e.preventDefault(),n||(i=window.requestAnimationFrame(function(){return a(e)}),n=!0)},c=function u(e){e.preventDefault(),t.element_.removeEventListener("mousemove",l),t.element_.removeEventListener("touchmove",l),window.removeEventListener("mouseup",u),window.removeEventListener("touchend",u),window.cancelAnimationFrame(i);var n=H(s);M(n),t.emitSelectEvent_("click",null,n)};this.element_.addEventListener("mousemove",l),this.element_.addEventListener("touchmove",l),window.addEventListener("mouseup",c),window.addEventListener("touchend",c)},k.prototype.focusHandler_=function(e){var t=H(e.target);t&&(this.setAriaSelected_(t),t.classList.add(b))},k.prototype.blurHandler_=function(e){var t=H(e.target);t&&t.classList.remove(b)},k.prototype.emitSelectEvent_=function(e,t,n){if(n){this.moveSlideIntoViewport_(n);var i=(0,u.createCustomEvent)("select",{bubbles:!0,cancelable:!0,detail:{command:e,keyCode:t,source:n}});this.element_.dispatchEvent(i)}},k.prototype.getSlidesInViewport_=function(){var e=this.element_.getBoundingClientRect(),t=[].concat((0,a["default"])(this.element_.querySelectorAll("."+g))).filter(function(t){var n=t.getBoundingClientRect();return n.left>=e.left&&n.right<=e.right});return t},k.prototype.moveSlideIntoViewport_=function(e){var t=this.element_.getBoundingClientRect(),n=e.getBoundingClientRect();if(n.leftt.right){var r=this.element_.scrollLeft-(t.right-n.right);this.animateScroll_(r)}},k.prototype.setAriaSelected_=function(e){e&&([].concat((0,a["default"])(this.element_.querySelectorAll("."+g+"[aria-selected]"))).forEach(function(e){return e.removeAttribute("aria-selected")}),e.setAttribute("aria-selected",""))};var H=function(e){return e.closest("."+g)},M=function(e){e&&e.focus()},D=function(e){if(!e.querySelector("."+L)){var t=document.createElement("span");t.classList.add(L),t.classList.add(A);var n=document.createElement("span");n.classList.add(S),t.appendChild(n);var i=e.querySelector("img");i&&(t.title=i.title),e.appendChild(t),componentHandler.upgradeElement(t,E)}};k.prototype.stopAnimation=function(){this.config_.animationLoop.stop()},k.prototype.stopAnimation=k.prototype.stopAnimation,k.prototype.upgradeSlides=function(){var e=this,t=this.element_.classList.contains(A);[].concat((0,a["default"])(this.element_.querySelectorAll("."+g))).forEach(function(n){n.setAttribute("role",w),e.config_.interactive?(n.getAttribute("tabindex")||n.setAttribute("tabindex","0"),t&&D(n)):n.setAttribute("tabindex","-1")})},k.prototype.upgradeSlides=k.prototype.upgradeSlides,k.prototype.getConfig=function(){return this.config_},k.prototype.getConfig=k.prototype.getConfig,k.prototype.init=function(){if(this.element_){if(this.element_.hasAttribute("data-config")){var e=this.element_.getAttribute("data-config").replace(/'/g,'"');try{var t=JSON.parse(e);(0,c["default"])(this.config_,t)}catch(n){throw new Error('Failed to parse "data-config = '+e+'". Error: '+n.message)}}if(this.element_.setAttribute("role",x),(0,o["default"])(this.element_.getAttribute("tabindex"))||this.element_.setAttribute("tabindex",-1),this.config_.interactive){var i=this.element_.classList.contains(A);i&&this.element_.classList.add(C),this.element_.addEventListener("focus",this.focusHandler_.bind(this),!0),this.element_.addEventListener("blur",this.blurHandler_.bind(this),!0),this.element_.addEventListener("keydown",this.keyDownHandler_.bind(this),!1),this.element_.addEventListener("mousedown",this.dragHandler_.bind(this),!1),this.element_.addEventListener("touchstart",this.dragHandler_.bind(this),!1),this.element_.addEventListener("click",function(e){return e.preventDefault()},!1)}this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),this.upgradeSlides(),this.element_.classList.add(y),this.config_.autostart&&this.startSlideShow_()}},componentHandler.register({constructor:k,classAsString:"MaterialExtCarousel",cssClass:"mdlext-js-carousel",widget:!0})}()},function(e,t,n){"use strict";n(6),n(24),n(25),n(48),n(47),n(42),n(45),n(46),n(43)},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var r=n(11),o=i(r);n(15);var s=n(6);/** * @license * Copyright 2016 Leif Olsen. All Rights Reserved. * @@ -52,7 +52,7 @@ function n(e){var t=arguments.length<=1||void 0===arguments[1]?{bubbles:!1,cance * This code is built with Google Material Design Lite, * which is Licensed under the Apache License, Version 2.0 */ -!function(){var e=13,t=32,n=35,i=36,r=37,a=38,l=39,c=40,u="is-upgraded",d="grid",f="mdlext-lightboard__slide",h="gridcell",p="mdlext-lightboard__slide__frame",_="MaterialRipple",m="mdl-ripple",v="mdlext-lightboard__slide__ripple-container",y="mdl-js-ripple-effect",b="mdl-js-ripple-effect--ignore-events",g=function(e){this.element_=e,this.init()};window.MaterialExtLightboard=g;var w=function(e){return e?e.closest("."+f):null};g.prototype.init=function(){var o=this,s=function(s){if(s.target!==o.element_){var u=void 0,d=void 0;switch(s.keyCode){case i:u="first";break;case n:u="last";break;case a:case r:u="prev";break;case c:case l:u="next";break;case e:case t:u="select",d=s.target}u&&(s.preventDefault(),s.stopPropagation(),o.command({action:u,target:d}))}},f=function(e){e.preventDefault(),e.stopPropagation(),e.target!==o.element_&&o.command({action:"select",target:e.target})},h=function(e){e.preventDefault(),e.stopPropagation(),e.target!==o.element_&&o.selectSlide_(e.target)};this.element_&&(this.element_.setAttribute("role",d),this.element_.classList.contains(y)&&this.element_.classList.add(b),this.element_.removeEventListener("command",this.commandHandler_),this.element_.removeEventListener("keydown",s),this.element_.removeEventListener("click",f),this.element_.removeEventListener("focus",h),this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),this.element_.addEventListener("keydown",s,!0),this.element_.addEventListener("click",f,!0),this.element_.addEventListener("focus",h,!0),this.upgradeSlides(),this.element_.classList.add(u))},g.prototype.selectSlide_=function(e){var t=w(e);t&&!t.hasAttribute("aria-selected")&&([].concat((0,o["default"])(this.element_.querySelectorAll("."+f+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute("aria-selected")}),t.setAttribute("aria-selected","true"))},g.prototype.dispatchSelectEvent_=function(e){this.element_.dispatchEvent((0,s.createCustomEvent)("select",{bubbles:!0,cancelable:!0,detail:{source:e}}))},g.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e&&e.detail&&this.command(e.detail)},g.prototype.upgradeSlides=function(){var e=function(e){if(!e.querySelector("."+v)){var t=e.querySelector("."+p);if(t){var n=t;n.classList.add(v),n.classList.add(y);var i=document.createElement("span");i.classList.add(m),n.appendChild(i),componentHandler.upgradeElement(n,_)}}},t=this.element_.classList.contains(y);[].concat((0,o["default"])(this.element_.querySelectorAll("."+f))).forEach(function(n){n.setAttribute("role",h),n.querySelector("a")||n.setAttribute("tabindex","0"),t&&e(n)})},g.prototype.upgradeSlides=g.prototype.upgradeSlides,g.prototype.command=function(e){var t=this,n=function(){return t.element_.querySelector("."+f+":first-child")},i=function(){return t.element_.querySelector("."+f+":last-child")},r=function(){var e=t.element_.querySelector("."+f+'[aria-selected="true"]').nextElementSibling;return e?e:n()},o=function(){var e=t.element_.querySelector("."+f+'[aria-selected="true"]').previousElementSibling;return e?e:i()};if(e&&e.action){var s=e.action,a=e.target,l=void 0;switch(s.toLowerCase()){case"select":l=w(a),this.dispatchSelectEvent_(l);break;case"first":l=n();break;case"next":l=r();break;case"prev":l=o();break;case"last":l=i();break;case"upgrade":this.upgradeSlides();break;default:throw new Error('Unknown action "'+s+'". Action must be one of "first", "next", "prev", "last", "select" or "upgrade"')}if(l){var c=l.querySelector("a");c?c.focus():l.focus(),l.hasAttribute("aria-selected")||this.selectSlide_(l)}}},g.prototype.command=g.prototype.command,componentHandler.register({constructor:g,classAsString:"MaterialExtLightboard",cssClass:"mdlext-js-lightboard",widget:!0})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var r=n(11),o=i(r),s=n(27),a=i(s),l=n(56),c=i(l),u=n(53),d=i(u),f=n(26),h=i(f);n(15);var p=n(6);/** +!function(){var e=13,t=32,n=35,i=36,r=37,a=38,l=39,c=40,u="is-upgraded",d="grid",f="mdlext-lightboard__slide",h="gridcell",p="mdlext-lightboard__slide__frame",_="MaterialRipple",m="mdl-ripple",v="mdlext-lightboard__slide__ripple-container",y="mdl-js-ripple-effect",b="mdl-js-ripple-effect--ignore-events",g=function(e){this.element_=e,this.init()};window.MaterialExtLightboard=g;var x=function(e){return e?e.closest("."+f):null};g.prototype.init=function(){var o=this,s=function(s){if(s.target!==o.element_){var u=void 0,d=void 0;switch(s.keyCode){case i:u="first";break;case n:u="last";break;case a:case r:u="prev";break;case c:case l:u="next";break;case e:case t:u="select",d=s.target}u&&(s.preventDefault(),s.stopPropagation(),o.command({action:u,target:d}))}},f=function(e){e.preventDefault(),e.stopPropagation(),e.target!==o.element_&&o.command({action:"select",target:e.target})},h=function(e){e.preventDefault(),e.stopPropagation(),e.target!==o.element_&&o.selectSlide_(e.target)};this.element_&&(this.element_.setAttribute("role",d),this.element_.classList.contains(y)&&this.element_.classList.add(b),this.element_.removeEventListener("command",this.commandHandler_),this.element_.removeEventListener("keydown",s),this.element_.removeEventListener("click",f),this.element_.removeEventListener("focus",h),this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),this.element_.addEventListener("keydown",s,!0),this.element_.addEventListener("click",f,!0),this.element_.addEventListener("focus",h,!0),this.upgradeSlides(),this.element_.classList.add(u))},g.prototype.selectSlide_=function(e){var t=x(e);t&&!t.hasAttribute("aria-selected")&&([].concat((0,o["default"])(this.element_.querySelectorAll("."+f+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute("aria-selected")}),t.setAttribute("aria-selected","true"))},g.prototype.dispatchSelectEvent_=function(e){this.element_.dispatchEvent((0,s.createCustomEvent)("select",{bubbles:!0,cancelable:!0,detail:{source:e}}))},g.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e&&e.detail&&this.command(e.detail)},g.prototype.upgradeSlides=function(){var e=function(e){if(!e.querySelector("."+v)){var t=e.querySelector("."+p);if(t){var n=t;n.classList.add(v),n.classList.add(y);var i=document.createElement("span");i.classList.add(m),n.appendChild(i),componentHandler.upgradeElement(n,_)}}},t=this.element_.classList.contains(y);[].concat((0,o["default"])(this.element_.querySelectorAll("."+f))).forEach(function(n){n.setAttribute("role",h),n.querySelector("a")||n.setAttribute("tabindex","0"),t&&e(n)})},g.prototype.upgradeSlides=g.prototype.upgradeSlides,g.prototype.command=function(e){var t=this,n=function(){return t.element_.querySelector("."+f+":first-child")},i=function(){return t.element_.querySelector("."+f+":last-child")},r=function(){var e=t.element_.querySelector("."+f+'[aria-selected="true"]').nextElementSibling;return e?e:n()},o=function(){var e=t.element_.querySelector("."+f+'[aria-selected="true"]').previousElementSibling;return e?e:i()};if(e&&e.action){var s=e.action,a=e.target,l=void 0;switch(s.toLowerCase()){case"select":l=x(a),this.dispatchSelectEvent_(l);break;case"first":l=n();break;case"next":l=r();break;case"prev":l=o();break;case"last":l=i();break;case"upgrade":this.upgradeSlides();break;default:throw new Error('Unknown action "'+s+'". Action must be one of "first", "next", "prev", "last", "select" or "upgrade"')}if(l){var c=l.querySelector("a");c?c.focus():l.focus(),l.hasAttribute("aria-selected")||this.selectSlide_(l)}}},g.prototype.command=g.prototype.command,componentHandler.register({constructor:g,classAsString:"MaterialExtLightboard",cssClass:"mdlext-js-lightboard",widget:!0})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var r=n(11),o=i(r),s=n(27),a=i(s),l=n(56),c=i(l),u=n(53),d=i(u),f=n(26),h=i(f);n(15);var p=n(6);/** * @license * Copyright 2016 Leif Olsen. All Rights Reserved. * @@ -71,7 +71,7 @@ function n(e){var t=arguments.length<=1||void 0===arguments[1]?{bubbles:!1,cance * This code is built with Google Material Design Lite, * which is Licensed under the Apache License, Version 2.0 */ -!function(){var e=27,t=32,n=35,i=36,r=37,s=38,l=39,u=40,f="is-upgraded",_="mdlext-lightbox",m="mdlext-lightbox__slider",v="mdlext-lightbox__slider__slide",y="mdlext-lightbox--sticky-footer",b="mdl-button",g=function(e){this.element_=e,this.drawing_=!1,this.init()};window.MaterialExtLightbox=g,g.prototype.keyDownHandler_=function(o){if(o&&(o.keyCode===e||o.keyCode===t||o.keyCode===n||o.keyCode===i||o.keyCode===s||o.keyCode===r||o.keyCode===u||o.keyCode===l)){o.keyCode!==e&&(o.preventDefault(),o.stopPropagation());var a="first";o.keyCode===n?a="last":o.keyCode===s||o.keyCode===r?a="prev":o.keyCode===u||o.keyCode===l?a="next":o.keyCode===t?a="select":o.keyCode===e&&(a="cancel"),w(a,this)}},g.prototype.buttonClickHandler_=function(e){if(e){e.preventDefault(),e.stopPropagation(),w(this.getAttribute("data-action")||"",this);var t=this.closest("."+_);t&&t.focus()}};var w=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?t:arguments[2];n.dispatchEvent((0,p.createCustomEvent)("action",{bubbles:!0,cancelable:!0,detail:{action:e||"",source:t}}))},x=function(e){var t=function(e,t){return t&&e?e.offsetHeight:0},n=function(e,t){if("absolute"===window.getComputedStyle(e).position){var n=document.body.scrollTop||document.documentElement.scrollTop,i=n+(window.innerHeight-e.offsetHeight-t)/2;e.style.top=Math.max(n,i)+"px"}},i="DIALOG"===e.parentNode.nodeName?e.parentNode:null;if(i&&i.hasAttribute("open")){e.style.width="auto",e.style.maxWidth="100%";var r=e.querySelector("img");r&&(e.style.maxWidth="undefined"!==r.naturalWidth?r.naturalWidth+"px":r.width+"px"||"100%");var o=t(e.querySelector("footer"),e.classList.contains(y)),s=Math.max(document.documentElement.clientHeight,window.innerHeight||0)-o;if(i.offsetHeight>s)for(var a=0;i.offsetHeight>s&&++a<4;)e.style.width=e.offsetWidth*s/e.offsetHeight+"px";n(i,o)}};g.prototype.imgLoadHandler_=function(){x(this)},g.prototype.imgDragHandler_=function(e){var t=function(e,t){var n=!0,i=!1,r=void 0;try{for(var o,s=(0,h["default"])((0,d["default"])(t));!(n=(o=s.next()).done);n=!0){var a=(0,c["default"])(o.value,2),l=a[0],u=a[1];e.style[l]=u}}catch(f){i=!0,r=f}finally{try{!n&&s["return"]&&s["return"]()}finally{if(i)throw r}}};e.preventDefault();var n=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),i=this;i.style.opacity="0.2";var r=document.createElement("div");r.classList.add(m),t(r,{width:i.offsetWidth+"px",height:i.offsetHeight+"px"});var o=document.createElement("div");o.classList.add(v),o.textContent=">",t(o,{width:i.offsetWidth+"px",height:i.offsetHeight+"px","line-height":i.offsetHeight+"px","font-size":i.offsetHeight/4+"px","text-align":"right","background-image":'url("'+(i.getAttribute("data-img-url-prev")||"")+'")'}),r.appendChild(o),o=document.createElement("div"),o.classList.add(v),t(o,{width:i.offsetWidth+"px",height:i.offsetHeight+"px","background-image":'url("'+i.src+'")'}),r.appendChild(o),o=document.createElement("div"),o.classList.add(v),o.textContent="<",t(o,{width:i.offsetWidth+"px",height:i.offsetHeight+"px","line-height":i.offsetHeight+"px","font-size":i.offsetHeight/4+"px","text-align":"left","background-image":'url("'+(i.getAttribute("data-img-url-next")||"")+'")'}),r.appendChild(o),i.parentNode.appendChild(r);var s=function(e){e.preventDefault();var t=(e.clientX||(void 0!==e.touches?e.touches[0].clientX:0))-n;r.offsetWidth-Math.abs(t)>19&&(r.style.left=t+"px")},a=function l(e){e.preventDefault(),window.removeEventListener("mousemove",s),window.removeEventListener("touchmove",s),window.removeEventListener("mouseup",l),window.removeEventListener("touchend",l);var t=r.offsetLeft;i.parentNode.removeChild(r),i.style.opacity="1.0",Math.abs(t)>19&&w(t>0?"prev":"next",i)};window.addEventListener("mousemove",s),window.addEventListener("touchmove",s),window.addEventListener("mouseup",a),window.addEventListener("touchend",a)},g.prototype.init=function(){var e=this;if(this.element_){this.element_.addEventListener("keydown",this.keyDownHandler_.bind(this.element_),!0),(0,a["default"])(this.element_.getAttribute("tabindex"))||this.element_.setAttribute("tabindex",1),[].concat((0,o["default"])(this.element_.querySelectorAll("."+b))).forEach(function(t){return t.addEventListener("click",e.buttonClickHandler_.bind(t),!1)});var t=this.element_.querySelector("figcaption");t&&t.addEventListener("click",this.buttonClickHandler_.bind(t),!1);var n=this.element_.querySelector("footer");n&&n.addEventListener("click",this.buttonClickHandler_.bind(n),!1);var i=this.element_.querySelector("img");i&&(i.addEventListener("load",this.imgLoadHandler_.bind(this.element_),!1),i.addEventListener("click",function(e){return e.preventDefault()},!0),i.addEventListener("mousedown",this.imgDragHandler_.bind(i),!0),i.addEventListener("touchstart",this.imgDragHandler_.bind(i),!0)),window.addEventListener("resize",function(){e.drawing_||window.requestAnimationFrame(function(){x(e.element_),e.drawing_=!1}),e.drawing_=!0}),window.addEventListener("orientationchange",function(){return x(e.element_)}),this.element_.classList.add(f)}},componentHandler.register({constructor:g,classAsString:"MaterialExtLightbox",cssClass:"mdlext-js-lightbox"})}()},function(e,t){"use strict";/** +!function(){var e=27,t=32,n=35,i=36,r=37,s=38,l=39,u=40,f="is-upgraded",_="mdlext-lightbox",m="mdlext-lightbox__slider",v="mdlext-lightbox__slider__slide",y="mdlext-lightbox--sticky-footer",b="mdl-button",g=function(e){this.element_=e,this.drawing_=!1,this.init()};window.MaterialExtLightbox=g,g.prototype.keyDownHandler_=function(o){if(o&&(o.keyCode===e||o.keyCode===t||o.keyCode===n||o.keyCode===i||o.keyCode===s||o.keyCode===r||o.keyCode===u||o.keyCode===l)){o.keyCode!==e&&(o.preventDefault(),o.stopPropagation());var a="first";o.keyCode===n?a="last":o.keyCode===s||o.keyCode===r?a="prev":o.keyCode===u||o.keyCode===l?a="next":o.keyCode===t?a="select":o.keyCode===e&&(a="cancel"),x(a,this)}},g.prototype.buttonClickHandler_=function(e){if(e){e.preventDefault(),e.stopPropagation(),x(this.getAttribute("data-action")||"",this);var t=this.closest("."+_);t&&t.focus()}};var x=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?t:arguments[2];n.dispatchEvent((0,p.createCustomEvent)("action",{bubbles:!0,cancelable:!0,detail:{action:e||"",source:t}}))},w=function(e){var t=function(e,t){return t&&e?e.offsetHeight:0},n=function(e,t){if("absolute"===window.getComputedStyle(e).position){var n=document.body.scrollTop||document.documentElement.scrollTop,i=n+(window.innerHeight-e.offsetHeight-t)/2;e.style.top=Math.max(n,i)+"px"}},i="DIALOG"===e.parentNode.nodeName?e.parentNode:null;if(i&&i.hasAttribute("open")){e.style.width="auto",e.style.maxWidth="100%";var r=e.querySelector("img");r&&(e.style.maxWidth="undefined"!==r.naturalWidth?r.naturalWidth+"px":r.width+"px"||"100%");var o=t(e.querySelector("footer"),e.classList.contains(y)),s=Math.max(document.documentElement.clientHeight,window.innerHeight||0)-o;if(i.offsetHeight>s)for(var a=0;i.offsetHeight>s&&++a<4;)e.style.width=e.offsetWidth*s/e.offsetHeight+"px";n(i,o)}};g.prototype.imgLoadHandler_=function(){w(this)},g.prototype.imgDragHandler_=function(e){var t=function(e,t){var n=!0,i=!1,r=void 0;try{for(var o,s=(0,h["default"])((0,d["default"])(t));!(n=(o=s.next()).done);n=!0){var a=(0,c["default"])(o.value,2),l=a[0],u=a[1];e.style[l]=u}}catch(f){i=!0,r=f}finally{try{!n&&s["return"]&&s["return"]()}finally{if(i)throw r}}};e.preventDefault();var n=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),i=this;i.style.opacity="0.2";var r=document.createElement("div");r.classList.add(m),t(r,{width:i.offsetWidth+"px",height:i.offsetHeight+"px"});var o=document.createElement("div");o.classList.add(v),o.textContent=">",t(o,{width:i.offsetWidth+"px",height:i.offsetHeight+"px","line-height":i.offsetHeight+"px","font-size":i.offsetHeight/4+"px","text-align":"right","background-image":'url("'+(i.getAttribute("data-img-url-prev")||"")+'")'}),r.appendChild(o),o=document.createElement("div"),o.classList.add(v),t(o,{width:i.offsetWidth+"px",height:i.offsetHeight+"px","background-image":'url("'+i.src+'")'}),r.appendChild(o),o=document.createElement("div"),o.classList.add(v),o.textContent="<",t(o,{width:i.offsetWidth+"px",height:i.offsetHeight+"px","line-height":i.offsetHeight+"px","font-size":i.offsetHeight/4+"px","text-align":"left","background-image":'url("'+(i.getAttribute("data-img-url-next")||"")+'")'}),r.appendChild(o),i.parentNode.appendChild(r);var s=function(e){e.preventDefault();var t=(e.clientX||(void 0!==e.touches?e.touches[0].clientX:0))-n;r.offsetWidth-Math.abs(t)>19&&(r.style.left=t+"px")},a=function l(e){e.preventDefault(),window.removeEventListener("mousemove",s),window.removeEventListener("touchmove",s),window.removeEventListener("mouseup",l),window.removeEventListener("touchend",l);var t=r.offsetLeft;i.parentNode.removeChild(r),i.style.opacity="1.0",Math.abs(t)>19&&x(t>0?"prev":"next",i)};window.addEventListener("mousemove",s),window.addEventListener("touchmove",s),window.addEventListener("mouseup",a),window.addEventListener("touchend",a)},g.prototype.init=function(){var e=this;if(this.element_){this.element_.addEventListener("keydown",this.keyDownHandler_.bind(this.element_),!0),(0,a["default"])(this.element_.getAttribute("tabindex"))||this.element_.setAttribute("tabindex",1),[].concat((0,o["default"])(this.element_.querySelectorAll("."+b))).forEach(function(t){return t.addEventListener("click",e.buttonClickHandler_.bind(t),!1)});var t=this.element_.querySelector("figcaption");t&&t.addEventListener("click",this.buttonClickHandler_.bind(t),!1);var n=this.element_.querySelector("footer");n&&n.addEventListener("click",this.buttonClickHandler_.bind(n),!1);var i=this.element_.querySelector("img");i&&(i.addEventListener("load",this.imgLoadHandler_.bind(this.element_),!1),i.addEventListener("click",function(e){return e.preventDefault()},!0),i.addEventListener("mousedown",this.imgDragHandler_.bind(i),!0),i.addEventListener("touchstart",this.imgDragHandler_.bind(i),!0)),window.addEventListener("resize",function(){e.drawing_||window.requestAnimationFrame(function(){w(e.element_),e.drawing_=!1}),e.drawing_=!0}),window.addEventListener("orientationchange",function(){return w(e.element_)}),this.element_.classList.add(f)}},componentHandler.register({constructor:g,classAsString:"MaterialExtLightbox",cssClass:"mdlext-js-lightbox"})}()},function(e,t){"use strict";/** * @license * Copyright 2016 Leif Olsen. All Rights Reserved. * diff --git a/lib/mdl-ext.min.js.map b/lib/mdl-ext.min.js.map index 11edbf0..1d01ddc 100644 --- a/lib/mdl-ext.min.js.map +++ b/lib/mdl-ext.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///mdl-ext.min.js?c961","webpack:///webpack/bootstrap c5ca49f245b32caeccb5?b16d","webpack:///./~/core-js/library/modules/_core.js?1b62","webpack:///./~/core-js/library/modules/_wks.js?3027","webpack:///./~/core-js/library/modules/_export.js?ece2","webpack:///./~/core-js/library/modules/_global.js?77aa","webpack:///./~/core-js/library/modules/_iterators.js?aff7","webpack:///./src/utils/custom-event.js?bfbd","webpack:///./~/core-js/library/modules/_an-object.js?0da3","webpack:///./~/core-js/library/modules/_descriptors.js?7051","webpack:///./~/core-js/library/modules/_hide.js?a6da","webpack:///./~/core-js/library/modules/_object-dp.js?4116","webpack:///./~/babel-runtime/helpers/toConsumableArray.js?1825","webpack:///./~/core-js/library/modules/_has.js?d850","webpack:///./~/core-js/library/modules/_is-object.js?24c8","webpack:///./~/core-js/library/modules/_to-iobject.js?6946","webpack:///./src/utils/closest-polyfill.js?bd65","webpack:///./~/core-js/library/modules/_defined.js?45d3","webpack:///./~/core-js/library/modules/_fails.js?935d","webpack:///./~/core-js/library/modules/_object-keys.js?f5bc","webpack:///./~/core-js/library/modules/_property-desc.js?1e86","webpack:///./~/core-js/library/modules/_shared-key.js?2a6c","webpack:///./~/core-js/library/modules/_to-integer.js?f65f","webpack:///./~/core-js/library/modules/_to-object.js?b5c0","webpack:///./~/core-js/library/modules/es6.string.iterator.js?fe18","webpack:///./src/utils/animationloop.js?92de","webpack:///./src/utils/easing.js?f6e9","webpack:///./~/babel-runtime/core-js/get-iterator.js?1b08","webpack:///./~/babel-runtime/core-js/number/is-integer.js?14ca","webpack:///./~/core-js/library/modules/_classof.js?b4b3","webpack:///./~/core-js/library/modules/_cof.js?48ea","webpack:///./~/core-js/library/modules/_ctx.js?ce00","webpack:///./~/core-js/library/modules/_dom-create.js?ab44","webpack:///./~/core-js/library/modules/_enum-bug-keys.js?7598","webpack:///./~/core-js/library/modules/_iobject.js?5cf9","webpack:///./~/core-js/library/modules/_iter-define.js?9a94","webpack:///./~/core-js/library/modules/_object-pie.js?d0d2","webpack:///./~/core-js/library/modules/_set-to-string-tag.js?c945","webpack:///./~/core-js/library/modules/_shared.js?7b6c","webpack:///./~/core-js/library/modules/_to-length.js?62a7","webpack:///./~/core-js/library/modules/_uid.js?e8cd","webpack:///./~/core-js/library/modules/core.get-iterator-method.js?9c88","webpack:///./~/core-js/library/modules/web.dom.iterable.js?bf0e","webpack:///./src/accordion/accordion.js?021c","webpack:///./src/carousel/carousel.js?7189","webpack:///./src/index.js?9552","webpack:///./src/lightboard/lightboard.js?4a51","webpack:///./src/lightbox/lightbox.js?4a9b","webpack:///./src/selectfield/selectfield.js?4310","webpack:///./src/sticky-header/sticky-header.js?0ce9","webpack:///./~/babel-runtime/core-js/array/from.js?efc2","webpack:///./~/babel-runtime/core-js/is-iterable.js?350e","webpack:///./~/babel-runtime/core-js/object/assign.js?e6ca","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/babel-runtime/core-js/object/entries.js?41f9","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/helpers/slicedToArray.js?39c4","webpack:///./~/core-js/library/fn/array/from.js?669d","webpack:///./~/core-js/library/fn/get-iterator.js?2cf7","webpack:///./~/core-js/library/fn/is-iterable.js?0bd2","webpack:///./~/core-js/library/fn/number/is-integer.js?0be2","webpack:///./~/core-js/library/fn/object/assign.js?80e4","webpack:///./~/core-js/library/fn/object/define-property.js?b7d8","webpack:///./~/core-js/library/fn/object/entries.js?390f","webpack:///./~/core-js/library/modules/_a-function.js?d53e","webpack:///./~/core-js/library/modules/_add-to-unscopables.js?d5e8","webpack:///./~/core-js/library/modules/_array-includes.js?6199","webpack:///./~/core-js/library/modules/_create-property.js?1ad1","webpack:///./~/core-js/library/modules/_html.js?e5af","webpack:///./~/core-js/library/modules/_ie8-dom-define.js?bd1f","webpack:///./~/core-js/library/modules/_is-array-iter.js?a4b3","webpack:///./~/core-js/library/modules/_is-integer.js?0b73","webpack:///./~/core-js/library/modules/_iter-call.js?5189","webpack:///./~/core-js/library/modules/_iter-create.js?0127","webpack:///./~/core-js/library/modules/_iter-detect.js?0a91","webpack:///./~/core-js/library/modules/_iter-step.js?e209","webpack:///./~/core-js/library/modules/_library.js?2c80","webpack:///./~/core-js/library/modules/_object-assign.js?5c0c","webpack:///./~/core-js/library/modules/_object-create.js?d8cf","webpack:///./~/core-js/library/modules/_object-dps.js?47fd","webpack:///./~/core-js/library/modules/_object-gops.js?a5fb","webpack:///./~/core-js/library/modules/_object-gpo.js?d47d","webpack:///./~/core-js/library/modules/_object-keys-internal.js?fcea","webpack:///./~/core-js/library/modules/_object-to-array.js?ae83","webpack:///./~/core-js/library/modules/_redefine.js?1455","webpack:///./~/core-js/library/modules/_string-at.js?413a","webpack:///./~/core-js/library/modules/_to-index.js?9fd4","webpack:///./~/core-js/library/modules/_to-primitive.js?49a4","webpack:///./~/core-js/library/modules/core.get-iterator.js?aca7","webpack:///./~/core-js/library/modules/core.is-iterable.js?77cc","webpack:///./~/core-js/library/modules/es6.array.from.js?ce7d","webpack:///./~/core-js/library/modules/es6.array.iterator.js?1e09","webpack:///./~/core-js/library/modules/es6.number.is-integer.js?bf65","webpack:///./~/core-js/library/modules/es6.object.assign.js?9007","webpack:///./~/core-js/library/modules/es6.object.define-property.js?c82c","webpack:///./~/core-js/library/modules/es7.object.entries.js?86f8"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","core","version","__e","store","uid","Symbol","USE_SYMBOL","$exports","name","global","ctx","hide","PROTOTYPE","$export","type","source","key","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","target","undefined","C","a","b","arguments","length","apply","Function","virtual","R","U","window","Math","self","__g","createCustomEvent","typeArg","customEventInit","bubbles","cancelable","detail","CustomEvent","e","ce","document","createEvent","initCustomEvent","preventDefault","Object","defineProperty","get","value","isObject","it","TypeError","dP","createDesc","object","f","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","_interopRequireDefault","obj","__esModule","default","_from","_from2","arr","Array","isArray","i","arr2","hasOwnProperty","IObject","defined","Element","prototype","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","element","elements","ownerDocument","querySelectorAll","item","closest","nodeType","Node","ELEMENT_NODE","parentNode","exec","$keys","enumBugKeys","keys","bitmap","enumerable","configurable","writable","shared","ceil","floor","isNaN","$at","String","iterated","_t","_i","point","index","done","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","MdlExtAnimationLoop","interval","running_","rAFId_","timeElapsed_","cancelAnimationFrame","tick","_this","timeStart","Date","now","loop","requestAnimationFrame","interval_","cancelRAF","set","easeInOutQuad","t","d","inOutQuintic","ts","tc","cof","TAG","ARG","tryGet","T","callee","toString","slice","aFunction","fn","that","is","createElement","split","propertyIsEnumerable","LIBRARY","redefine","has","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","def","tag","stat","SHARED","toInteger","min","px","random","concat","classof","getIteratorMethod","TO_STRING_TAG","collections","Collection","_toConsumableArray2","_toConsumableArray3","_customEvent","VK_ENTER","VK_SPACE","VK_END","VK_HOME","VK_ARROW_LEFT","VK_ARROW_UP","VK_ARROW_RIGHT","VK_ARROW_DOWN","ACCORDION","ACCORDION_VERTICAL","ACCORDION_HORIZONTAL","PANEL","PANEL_ROLE","TAB","TAB_CAPTION","TAB_ROLE","TABPANEL","TABPANEL_ROLE","ARIA_MULTISELECTABLE","ARIA_EXPANDED","ARIA_HIDDEN","ARIA_SELECTED","IS_EXPANDED","IS_UPGRADED","RIPPLE_EFFECT","RIPPLE","ANIMATION_EFFECT","ANIMATION","MaterialExtAccordion","element_","init","classList","contains","Error","setAttribute","hasAttribute","removeEventListener","commandHandler_","addEventListener","bind","forEach","panel","upgradeTab","add","accordionPanelElements","tab","querySelector","tabpanel","event","stopPropagation","command","dispatchToggleEvent_","state","dispatchEvent","openTab_","removeAttribute","closeTab_","remove","toggleTab_","getAttribute","toLowerCase","closeTabs_","openTabs_","_this2","filter","closedItem","_this3","tabElement","_this4","_accordionPanelElemen","disableTab","enableTab","calcMaxTabCaptionWidth","tabCaption","w","children","el","reduce","v","offsetWidth","maxWidth","clientHeight","style","selectTab","selectedTab","tabClickHandler","tabFocusHandler","tabpanelClickHandler","tabpanelFocusHandler","tabKeydownHandler","keyCode","nextTab","nextPanel","previousElementSibling","nextElementSibling","focus","_this5","openTab","_accordionPanelElemen2","closeTab","_accordionPanelElemen3","toggleTab","_accordionPanelElemen4","action","componentHandler","register","constructor","classAsString","cssClass","widget","_isInteger","_isInteger2","_assign","_assign2","_animationloop","_animationloop2","_easing","VK_TAB","VK_ESC","VK_PAGE_UP","VK_PAGE_DOWN","IS_FOCUSED","SLIDE","ROLE","SLIDE_ROLE","RIPPLE_COMPONENT","RIPPLE_CONTAINER","RIPPLE_EFFECT_IGNORE_EVENTS","MaterialExtCarousel","config_","interactive","autostart","animationLoop","scrollAnimation_","drawing_","startSlideShow_","nextSlide","slide","animateScroll_","moveSlideIntoViewport_","emitSelectEvent_","nextScroll","direction","nextDirection","scrollLeft","scrollWidth","clientWidth","x","max","running","start","cancelSlideShow_","stop","newPosition","newDuration","completedCallback","distance","duration","abs","timeElapsed","command_","setAriaSelected_","slides","getSlidesInViewport_","keyDownHandler_","getSlide_","shiftKey","setFocus_","dragHandler_","updating","rAFDragId","startX","clientX","touches","prevX","targetElement","update","currentX","dx","drag","endDrag","focusHandler_","blurHandler_","evt","carouselRect","getBoundingClientRect","slidesInViewport","slideRect","left","right","_x","addRipple_","rippleContainer","ripple","appendChild","img","title","upgradeElement","stopAnimation","upgradeSlides","hasRippleEffect","getConfig","_this6","s","replace","JSON","parse","message","MutationObserver","WebKitMutationObserver","MozMutationObserver","mutations","mutation","addedNodes","observe","attributes","childList","characterData","subtree","LIGHTBOARD_ROLE","SLIDE_TABSTOP","MaterialExtLightboard","getSlide","keydownHandler","clickHandler","focusHandler","selectSlide_","selectedSlide","dispatchSelectEvent_","addRipple","firstSlide","lastSlide","prevSlide","_slicedToArray2","_slicedToArray3","_entries","_entries2","_getIterator2","_getIterator3","LIGHTBOX","LIGHTBOX_SLIDER","LIGHTBOX_SLIDER_SLIDE","STICKY_FOOTER","BUTTON","MaterialExtLightbox","dispatchAction_","buttonClickHandler_","n","repositionDialog_","lightboxElement","footerHeight","footer","isSticky","offsetHeight","reposition","dialog","fh","getComputedStyle","position","scrollTop","body","documentElement","topValue","innerHeight","top","nodeName","width","naturalWidth","vh","imgLoadHandler_","imgDragHandler_","setStyles","properties","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_step$value","err","opacity","slider","height","textContent","line-height","font-size","text-align","background-image","src","offsetLeft","removeChild","button","figcaption","MaterialExtSelectfield","Constant_","CssClasses_","LABEL","INPUT","IS_DIRTY","IS_DISABLED","IS_INVALID","onFocus_","onBlur_","onReset_","updateClasses_","checkDisabled","checkValidity","checkDirty","checkFocus","select_","disabled","Boolean","disable","enable","change","label_","boundUpdateClassesHandler","boundFocusHandler","boundBlurHandler","boundResetHandler","invalid","CONTENT_CLASS","IS_SCROLL_CLASS","MaterialExtStickyHeader","header_","content_","lastScrollTop_","recalcWidth_","resizeHandler_","reposition_","currentContentScrollTop","scrollDiff","headerTop","parseInt","getPropertyValue","_headerTop","scrollHeight","scrollHandler_","updatePosition_","paddingTop","instance","_defineProperty","_defineProperty2","defineProperties","props","descriptor","protoProps","staticProps","_isIterable2","_isIterable3","sliceIterator","_arr","_n","_d","_e","_s","push","from","Number","isInteger","assign","$Object","desc","toIObject","toLength","toIndex","IS_INCLUDES","$this","fromIndex","$defineProperty","ArrayProto","isFinite","iterator","ret","create","SAFE_CLOSING","riter","skipClosing","safe","iter","getKeys","gOPS","pIE","toObject","$assign","A","K","k","join","aLen","getSymbols","isEnum","j","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","lt","gt","display","contentWindow","open","write","close","Properties","result","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","isEntries","TO_STRING","pos","l","charCodeAt","charAt","val","valueOf","getIterator","iterFn","isIterable","isArrayIter","createProperty","getIterFn","arrayLike","step","mapfn","mapping","addToUnscopables","_k","Arguments"],"mappings":"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","file":"mdl-ext.min.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 **/","(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 /******/ (function(modules) { // webpackBootstrap\n/******/ \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/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(96);\n\tmodule.exports = __webpack_require__(44);\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tvar core = module.exports = {version: '2.4.0'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar store = __webpack_require__(37)('wks')\n\t , uid = __webpack_require__(39)\n\t , Symbol = __webpack_require__(4).Symbol\n\t , USE_SYMBOL = typeof Symbol == 'function';\n\t\n\tvar $exports = module.exports = function(name){\n\t return store[name] || (store[name] =\n\t USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n\t};\n\t\n\t$exports.store = store;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(4)\n\t , core = __webpack_require__(1)\n\t , ctx = __webpack_require__(30)\n\t , hide = __webpack_require__(9)\n\t , PROTOTYPE = 'prototype';\n\t\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , expProto = exports[PROTOTYPE]\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && target[key] !== undefined;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(a, b, c){\n\t if(this instanceof C){\n\t switch(arguments.length){\n\t case 0: return new C;\n\t case 1: return new C(a);\n\t case 2: return new C(a, b);\n\t } return new C(a, b, c);\n\t } return C.apply(this, arguments);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n\t if(IS_PROTO){\n\t (exports.virtual || (exports.virtual = {}))[key] = out;\n\t // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n\t if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n\t }\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\t$export.U = 64; // safe\n\t$export.R = 128; // real proto method for `library` \n\tmodule.exports = $export;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = {};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.createCustomEvent = createCustomEvent;\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/**\n\t * Due to a bug in mdl-1.1.3 it is not possible to use a globally polyfilled CustomEvent constructor\n\t * Since I do not care too much about IE11, a brute force approach is sufficient.\n\t *\n\t * @param {string} typeArg Is a String representing the name of the event.\n\t * @param {Object} customEventInit Is an EventInit dictionary, having the following fields:\n\t * \"bubbles\", optional and defaulting to false, of type Boolean, indicating if the event bubbles or not.\n\t * \"cancelable\", optional and defaulting to false, of type Boolean, indicating if the event can be canceled or not.\n\t * \"detail\", optional and defaulting to null, of type any, that is an event-dependent value associated with the event.\n\t */\n\t\n\tfunction createCustomEvent(typeArg) {\n\t var customEventInit = arguments.length <= 1 || arguments[1] === undefined ? { bubbles: false, cancelable: false, detail: null } : arguments[1];\n\t\n\t\n\t try {\n\t // Modern browsers\n\t return new window.CustomEvent(typeArg, customEventInit);\n\t } catch (e) {\n\t // Copied from https://github.com/webcomponents/webcomponentsjs/blob/v0.7.12/CustomElements.js#L950\n\t // Copied from http://stackoverflow.com/questions/23349191/event-preventdefault-is-not-working-in-ie-11-for-custom-events\n\t var ce = document.createEvent('CustomEvent');\n\t ce.initCustomEvent(typeArg, customEventInit.bubbles, customEventInit.cancelable, customEventInit.detail);\n\t\n\t ce.preventDefault = function () {\n\t Object.defineProperty(this, 'defaultPrevented', {\n\t get: function get() {\n\t return true;\n\t }\n\t });\n\t };\n\t return ce;\n\t }\n\t // Let old browsers throw whatewer they want to throw\n\t}\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(13);\n\tmodule.exports = function(it){\n\t if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t return it;\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(17)(function(){\n\t return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP = __webpack_require__(10)\n\t , createDesc = __webpack_require__(19);\n\tmodule.exports = __webpack_require__(8) ? function(object, key, value){\n\t return dP.f(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t object[key] = value;\n\t return object;\n\t};\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(7)\n\t , IE8_DOM_DEFINE = __webpack_require__(69)\n\t , toPrimitive = __webpack_require__(87)\n\t , dP = Object.defineProperty;\n\t\n\texports.f = __webpack_require__(8) ? Object.defineProperty : function defineProperty(O, P, Attributes){\n\t anObject(O);\n\t P = toPrimitive(P, true);\n\t anObject(Attributes);\n\t if(IE8_DOM_DEFINE)try {\n\t return dP(O, P, Attributes);\n\t } catch(e){ /* empty */ }\n\t if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n\t if('value' in Attributes)O[P] = Attributes.value;\n\t return O;\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _from = __webpack_require__(49);\n\t\n\tvar _from2 = _interopRequireDefault(_from);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (arr) {\n\t if (Array.isArray(arr)) {\n\t for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n\t arr2[i] = arr[i];\n\t }\n\t\n\t return arr2;\n\t } else {\n\t return (0, _from2.default)(arr);\n\t }\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t return hasOwnProperty.call(it, key);\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(33)\n\t , defined = __webpack_require__(16);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/*\n\t * Code pulled from:\n\t * https://github.com/jonathantneal/closest/blob/master/closest.js\n\t * https://plainjs.com/javascript/traversing/get-closest-element-by-selector-39/\n\t * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n\t * http://stackoverflow.com/questions/18663941/finding-closest-element-without-jquery\n\t */\n\t\n\t/**\n\t * Element.matches() polyfill\n\t * The Element.matches() method returns true if the element would be selected by the specified selector string;\n\t * otherwise, returns false.\n\t */\n\tif (typeof Element.prototype.matches !== 'function') {\n\t Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.webkitMatchesSelector || function matches(selector) {\n\t var element = this;\n\t var elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t var i = elements.length;\n\t while (--i >= 0 && elements.item(i) !== element) {}\n\t return i > -1;\n\t };\n\t}\n\t\n\t/**\n\t * Element.closest() polyfill\n\t * The Element.closest() method returns the closest ancestor of the current element (or the current element itself)\n\t * which matches the selectors given in parameter. If there isn't such an ancestor, it returns null.\n\t */\n\tif (typeof Element.prototype.closest !== 'function') {\n\t Element.prototype.closest = function closest(selector) {\n\t var element = this;\n\t\n\t while (element && element.nodeType === Node.ELEMENT_NODE) {\n\t if (element.matches(selector)) {\n\t return element;\n\t }\n\t element = element.parentNode;\n\t }\n\t return null;\n\t };\n\t}\n\n/***/ },\n/* 16 */\n/***/ function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 / 15.2.3.14 Object.keys(O)\n\tvar $keys = __webpack_require__(82)\n\t , enumBugKeys = __webpack_require__(32);\n\t\n\tmodule.exports = Object.keys || function keys(O){\n\t return $keys(O, enumBugKeys);\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar shared = __webpack_require__(37)('keys')\n\t , uid = __webpack_require__(39);\n\tmodule.exports = function(key){\n\t return shared[key] || (shared[key] = uid(key));\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil\n\t , floor = Math.floor;\n\tmodule.exports = function(it){\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(16);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(85)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(34)(String, 'String', function(iterated){\n\t this._t = String(iterated); // target\n\t this._i = 0; // next index\n\t// 21.1.5.2.1 %StringIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , index = this._i\n\t , point;\n\t if(index >= O.length)return {value: undefined, done: true};\n\t point = $at(O, index);\n\t this._i += point.length;\n\t return {value: point, done: false};\n\t});\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(54);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(55);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * rAF based animation loop\n\t */\n\t\n\tvar MdlExtAnimationLoop = function () {\n\t\n\t /**\n\t * @constructor\n\t *\n\t * @param interval\n\t */\n\t function MdlExtAnimationLoop() {\n\t var interval = arguments.length <= 0 || arguments[0] === undefined ? 17 : arguments[0];\n\t (0, _classCallCheck3.default)(this, MdlExtAnimationLoop);\n\t\n\t this.interval = interval;\n\t this.running_ = false;\n\t this.rAFId_ = 0;\n\t this.timeElapsed_ = 0;\n\t }\n\t\n\t /**\n\t * Set interval between each rAF tick\n\t * @param interval\n\t */\n\t\n\t\n\t (0, _createClass3.default)(MdlExtAnimationLoop, [{\n\t key: \"cancelRAF\",\n\t\n\t\n\t /**\n\t * Cancels animation loop\n\t */\n\t value: function cancelRAF() {\n\t if (this.rAFId_ !== 0) {\n\t window.cancelAnimationFrame(this.rAFId_);\n\t this.rAFId_ = 0;\n\t }\n\t this.running_ = false;\n\t this.timeElapsed_ = 0;\n\t }\n\t\n\t /**\n\t * Start rAF animation loop\n\t * @param tick callback function\n\t */\n\t\n\t }, {\n\t key: \"start\",\n\t value: function start(tick) {\n\t var _this = this;\n\t\n\t this.running_ = true;\n\t var timeStart = Date.now();\n\t\n\t var loop = function loop(now) {\n\t if (_this.running_) {\n\t _this.rAFId_ = window.requestAnimationFrame(function () {\n\t return loop(Date.now());\n\t });\n\t _this.timeElapsed_ += now - timeStart;\n\t\n\t if (_this.timeElapsed_ >= _this.interval_) {\n\t _this.running_ = tick(_this.timeElapsed_);\n\t if ((_this.timeElapsed_ -= _this.interval_) > _this.interval_) {\n\t // time elapsed - interval > interval , indicates inactivity\n\t // Could be due to browser minimized, tab changed, screen saver started, computer sleep, and so on\n\t _this.timeElapsed_ = 0;\n\t }\n\t }\n\t timeStart = now;\n\t }\n\t };\n\t loop(timeStart);\n\t return this;\n\t }\n\t\n\t /**\n\t * Stops animation\n\t */\n\t\n\t }, {\n\t key: \"stop\",\n\t value: function stop() {\n\t this.cancelRAF();\n\t return this;\n\t }\n\t }, {\n\t key: \"interval\",\n\t set: function set(interval) {\n\t this.interval_ = interval < 17 ? 17 : interval; // 17 ~ 60fps\n\t }\n\t\n\t /**\n\t * @returns {boolean|*} true if animation is running\n\t */\n\t\n\t }, {\n\t key: \"running\",\n\t get: function get() {\n\t return this.running_;\n\t }\n\t }]);\n\t return MdlExtAnimationLoop;\n\t}();\n\t\n\texports.default = MdlExtAnimationLoop;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t// See: http://robertpenner.com/easing/\n\t\n\tvar easeInOutQuad = exports.easeInOutQuad = function easeInOutQuad(t, b, c, d) {\n\t t /= d / 2;\n\t if (t < 1) return c / 2 * t * t + b;\n\t t--;\n\t return -c / 2 * (t * (t - 2) - 1) + b;\n\t};\n\t\n\tvar inOutQuintic = exports.inOutQuintic = function inOutQuintic(t, b, c, d) {\n\t var ts = (t /= d) * t;\n\t var tc = ts * t;\n\t return b + c * (6 * tc * ts + -15 * ts * ts + 10 * tc);\n\t};\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(58), __esModule: true };\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(60), __esModule: true };\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// getting tag from 19.1.3.6 Object.prototype.toString()\n\tvar cof = __webpack_require__(29)\n\t , TAG = __webpack_require__(2)('toStringTag')\n\t // ES3 wrong here\n\t , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\t\n\t// fallback for IE11 Script Access Denied error\n\tvar tryGet = function(it, key){\n\t try {\n\t return it[key];\n\t } catch(e){ /* empty */ }\n\t};\n\t\n\tmodule.exports = function(it){\n\t var O, T, B;\n\t return it === undefined ? 'Undefined' : it === null ? 'Null'\n\t // @@toStringTag case\n\t : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n\t // builtinTag case\n\t : ARG ? cof(O)\n\t // ES3 arguments fallback\n\t : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(64);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(13)\n\t , document = __webpack_require__(4).document\n\t // in old IE typeof document.createElement is 'object'\n\t , is = isObject(document) && isObject(document.createElement);\n\tmodule.exports = function(it){\n\t return is ? document.createElement(it) : {};\n\t};\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\t// IE 8- don't enum bug keys\n\tmodule.exports = (\n\t 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n\t).split(',');\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(29);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(76)\n\t , $export = __webpack_require__(3)\n\t , redefine = __webpack_require__(84)\n\t , hide = __webpack_require__(9)\n\t , has = __webpack_require__(12)\n\t , Iterators = __webpack_require__(5)\n\t , $iterCreate = __webpack_require__(73)\n\t , setToStringTag = __webpack_require__(36)\n\t , getPrototypeOf = __webpack_require__(81)\n\t , ITERATOR = __webpack_require__(2)('iterator')\n\t , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n\t , FF_ITERATOR = '@@iterator'\n\t , KEYS = 'keys'\n\t , VALUES = 'values';\n\t\n\tvar returnThis = function(){ return this; };\n\t\n\tmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n\t $iterCreate(Constructor, NAME, next);\n\t var getMethod = function(kind){\n\t if(!BUGGY && kind in proto)return proto[kind];\n\t switch(kind){\n\t case KEYS: return function keys(){ return new Constructor(this, kind); };\n\t case VALUES: return function values(){ return new Constructor(this, kind); };\n\t } return function entries(){ return new Constructor(this, kind); };\n\t };\n\t var TAG = NAME + ' Iterator'\n\t , DEF_VALUES = DEFAULT == VALUES\n\t , VALUES_BUG = false\n\t , proto = Base.prototype\n\t , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n\t , $default = $native || getMethod(DEFAULT)\n\t , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n\t , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n\t , methods, key, IteratorPrototype;\n\t // Fix native\n\t if($anyNative){\n\t IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n\t if(IteratorPrototype !== Object.prototype){\n\t // Set @@toStringTag to native iterators\n\t setToStringTag(IteratorPrototype, TAG, true);\n\t // fix for some old engines\n\t if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n\t }\n\t }\n\t // fix Array#{values, @@iterator}.name in V8 / FF\n\t if(DEF_VALUES && $native && $native.name !== VALUES){\n\t VALUES_BUG = true;\n\t $default = function values(){ return $native.call(this); };\n\t }\n\t // Define iterator\n\t if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n\t hide(proto, ITERATOR, $default);\n\t }\n\t // Plug for library\n\t Iterators[NAME] = $default;\n\t Iterators[TAG] = returnThis;\n\t if(DEFAULT){\n\t methods = {\n\t values: DEF_VALUES ? $default : getMethod(VALUES),\n\t keys: IS_SET ? $default : getMethod(KEYS),\n\t entries: $entries\n\t };\n\t if(FORCED)for(key in methods){\n\t if(!(key in proto))redefine(proto, key, methods[key]);\n\t } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n\t }\n\t return methods;\n\t};\n\n/***/ },\n/* 35 */\n/***/ function(module, exports) {\n\n\texports.f = {}.propertyIsEnumerable;\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(10).f\n\t , has = __webpack_require__(12)\n\t , TAG = __webpack_require__(2)('toStringTag');\n\t\n\tmodule.exports = function(it, tag, stat){\n\t if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(4)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.15 ToLength\n\tvar toInteger = __webpack_require__(21)\n\t , min = Math.min;\n\tmodule.exports = function(it){\n\t return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(28)\n\t , ITERATOR = __webpack_require__(2)('iterator')\n\t , Iterators = __webpack_require__(5);\n\tmodule.exports = __webpack_require__(1).getIteratorMethod = function(it){\n\t if(it != undefined)return it[ITERATOR]\n\t || it['@@iterator']\n\t || Iterators[classof(it)];\n\t};\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(91);\n\tvar global = __webpack_require__(4)\n\t , hide = __webpack_require__(9)\n\t , Iterators = __webpack_require__(5)\n\t , TO_STRING_TAG = __webpack_require__(2)('toStringTag');\n\t\n\tfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n\t var NAME = collections[i]\n\t , Collection = global[NAME]\n\t , proto = Collection && Collection.prototype;\n\t if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n\t Iterators[NAME] = Iterators.Array;\n\t}\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _toConsumableArray2 = __webpack_require__(11);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var VK_ENTER = 13;\n\t var VK_SPACE = 32;\n\t var VK_END = 35;\n\t var VK_HOME = 36;\n\t var VK_ARROW_LEFT = 37;\n\t var VK_ARROW_UP = 38;\n\t var VK_ARROW_RIGHT = 39;\n\t var VK_ARROW_DOWN = 40;\n\t var ACCORDION = 'mdlext-accordion';\n\t var ACCORDION_VERTICAL = 'mdlext-accordion--vertical';\n\t var ACCORDION_HORIZONTAL = 'mdlext-accordion--horizontal';\n\t var PANEL = 'mdlext-accordion__panel';\n\t var PANEL_ROLE = 'presentation';\n\t var TAB = 'mdlext-accordion__tab';\n\t var TAB_CAPTION = 'mdlext-accordion__tab__caption';\n\t var TAB_ROLE = 'tab';\n\t var TABPANEL = 'mdlext-accordion__tabpanel';\n\t var TABPANEL_ROLE = 'tabpanel';\n\t var ARIA_MULTISELECTABLE = 'aria-multiselectable';\n\t var ARIA_EXPANDED = 'aria-expanded';\n\t var ARIA_HIDDEN = 'aria-hidden';\n\t var ARIA_SELECTED = 'aria-selected';\n\t var IS_EXPANDED = 'is-expanded';\n\t var IS_UPGRADED = 'is-upgraded';\n\t var RIPPLE_EFFECT = 'mdlext-js-ripple-effect';\n\t var RIPPLE = 'mdlext-accordion__tab--ripple';\n\t var ANIMATION_EFFECT = 'mdlext-js-animation-effect';\n\t var ANIMATION = 'mdlext-accordion__tabpanel--animation';\n\t\n\t /**\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtAccordion = function MaterialExtAccordion(element) {\n\t\n\t // Stores the Accordion HTML element.\n\t this.element_ = element;\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t window['MaterialExtAccordion'] = MaterialExtAccordion;\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtAccordion.prototype.init = function () {\n\t var _this = this;\n\t\n\t if (this.element_) {\n\t // Do the init required for this component to work\n\t if (!(this.element_.classList.contains(ACCORDION_HORIZONTAL) || this.element_.classList.contains(ACCORDION_VERTICAL))) {\n\t throw new Error('Accordion must have one of the classes \"' + ACCORDION_HORIZONTAL + '\" or \"' + ACCORDION_VERTICAL + '\"');\n\t }\n\t\n\t this.element_.setAttribute('role', 'tablist');\n\t\n\t if (!this.element_.hasAttribute(ARIA_MULTISELECTABLE)) {\n\t this.element_.setAttribute(ARIA_MULTISELECTABLE, 'false');\n\t }\n\t\n\t this.element_.removeEventListener('command', this.commandHandler_);\n\t this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL))).forEach(function (panel) {\n\t return _this.upgradeTab(panel);\n\t });\n\t\n\t // Set upgraded flag\n\t this.element_.classList.add(IS_UPGRADED);\n\t }\n\t };\n\t\n\t // Helpers\n\t var accordionPanelElements = function accordionPanelElements(element) {\n\t if (!element) {\n\t return {\n\t panel: null,\n\t tab: null,\n\t tabpanel: null\n\t };\n\t } else if (element.classList.contains(PANEL)) {\n\t return {\n\t panel: element,\n\t tab: element.querySelector('.' + TAB),\n\t tabpanel: element.querySelector('.' + TABPANEL)\n\t };\n\t } else {\n\t return {\n\t panel: element.parentNode,\n\t tab: element.parentNode.querySelector('.' + TAB),\n\t tabpanel: element.parentNode.querySelector('.' + TABPANEL)\n\t };\n\t }\n\t };\n\t\n\t // Private methods.\n\t\n\t /**\n\t * Handles custom command event, 'open', 'close', 'toggle' or upgrade\n\t * @param event. A custom event\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.commandHandler_ = function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event && event.detail) {\n\t this.command(event.detail);\n\t }\n\t };\n\t\n\t /**\n\t * Dispatch toggle event\n\t * @param {string} state\n\t * @param {Element} tab\n\t * @param {Element} tabpanel\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.dispatchToggleEvent_ = function (state, tab, tabpanel) {\n\t var ce = (0, _customEvent.createCustomEvent)('toggle', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: { state: state, tab: tab, tabpanel: tabpanel }\n\t });\n\t this.element_.dispatchEvent(ce);\n\t };\n\t\n\t /**\n\t * Open tab\n\t * @param {Element} panel\n\t * @param {Element} tab\n\t * @param {Element} tabpanel\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.openTab_ = function (panel, tab, tabpanel) {\n\t panel.classList.add(IS_EXPANDED);\n\t tab.setAttribute(ARIA_EXPANDED, 'true');\n\t tabpanel.removeAttribute('hidden');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n\t this.dispatchToggleEvent_('open', tab, tabpanel);\n\t };\n\t\n\t /**\n\t * Close tab\n\t * @param {Element} panel\n\t * @param {Element} tab\n\t * @param {Element} tabpanel\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.closeTab_ = function (panel, tab, tabpanel) {\n\t panel.classList.remove(IS_EXPANDED);\n\t tab.setAttribute(ARIA_EXPANDED, 'false');\n\t tabpanel.setAttribute('hidden', '');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n\t this.dispatchToggleEvent_('close', tab, tabpanel);\n\t };\n\t\n\t /**\n\t * Toggle tab\n\t * @param {Element} panel\n\t * @param {Element} tab\n\t * @param {Element} tabpanel\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.toggleTab_ = function (panel, tab, tabpanel) {\n\t if (!(this.element_.hasAttribute('disabled') || tab.hasAttribute('disabled'))) {\n\t if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n\t this.closeTab_(panel, tab, tabpanel);\n\t } else {\n\t if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() !== 'true') {\n\t this.closeTabs_();\n\t }\n\t this.openTab_(panel, tab, tabpanel);\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Open tabs\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.openTabs_ = function () {\n\t var _this2 = this;\n\t\n\t if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() === 'true') {\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL))).filter(function (panel) {\n\t return !panel.classList.contains(IS_EXPANDED);\n\t }).forEach(function (closedItem) {\n\t var tab = closedItem.querySelector('.' + TAB);\n\t if (!tab.hasAttribute('disabled')) {\n\t _this2.openTab_(closedItem, tab, closedItem.querySelector('.' + TABPANEL));\n\t }\n\t });\n\t }\n\t };\n\t\n\t /**\n\t * Close tabs\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.closeTabs_ = function () {\n\t var _this3 = this;\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL + '.' + IS_EXPANDED))).forEach(function (panel) {\n\t var tab = panel.querySelector('.' + TAB);\n\t if (!tab.hasAttribute('disabled')) {\n\t _this3.closeTab_(panel, tab, panel.querySelector('.' + TABPANEL));\n\t }\n\t });\n\t };\n\t\n\t // Public methods.\n\t\n\t /**\n\t * Upgrade an individual accordion tab\n\t * @public\n\t * @param {Element} tabElement The HTML element for the accordion panel.\n\t */\n\t MaterialExtAccordion.prototype.upgradeTab = function (tabElement) {\n\t var _this4 = this;\n\t\n\t var _accordionPanelElemen = accordionPanelElements(tabElement);\n\t\n\t var panel = _accordionPanelElemen.panel;\n\t var tab = _accordionPanelElemen.tab;\n\t var tabpanel = _accordionPanelElemen.tabpanel;\n\t\n\t\n\t var disableTab = function disableTab() {\n\t panel.classList.remove(IS_EXPANDED);\n\t tab.setAttribute('tabindex', '-1');\n\t tab.setAttribute(ARIA_EXPANDED, 'false');\n\t tabpanel.setAttribute('hidden', '');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n\t };\n\t\n\t var enableTab = function enableTab() {\n\t if (!tab.hasAttribute(ARIA_EXPANDED)) {\n\t tab.setAttribute(ARIA_EXPANDED, 'false');\n\t }\n\t\n\t tab.setAttribute('tabindex', '0');\n\t\n\t if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n\t panel.classList.add(IS_EXPANDED);\n\t tabpanel.removeAttribute('hidden');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n\t } else {\n\t panel.classList.remove(IS_EXPANDED);\n\t tabpanel.setAttribute('hidden', '');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n\t }\n\t };\n\t\n\t // In horizontal layout, caption must have a max-width defined to prevent pushing elements to the right of the caption out of view.\n\t // In JsDom, offsetWidth and offsetHeight properties do not work, so this function is not testable.\n\t /* istanbul ignore next */\n\t var calcMaxTabCaptionWidth = function calcMaxTabCaptionWidth() {\n\t\n\t var tabCaption = tab.querySelector('.' + TAB_CAPTION);\n\t if (tabCaption !== null) {\n\t var w = [].concat((0, _toConsumableArray3.default)(tab.children)).filter(function (el) {\n\t return el.classList && !el.classList.contains(TAB_CAPTION);\n\t }).reduce(function (v, el) {\n\t return v + el.offsetWidth;\n\t }, 0);\n\t\n\t var maxWidth = tab.clientHeight - w;\n\t if (maxWidth > 0) {\n\t tabCaption.style['max-width'] = maxWidth + 'px';\n\t }\n\t }\n\t };\n\t\n\t var selectTab = function selectTab() {\n\t if (!tab.hasAttribute(ARIA_SELECTED)) {\n\t [].concat((0, _toConsumableArray3.default)(_this4.element_.querySelectorAll('.' + TAB + '[aria-selected=\"true\"]'))).forEach(function (selectedTab) {\n\t return selectedTab.removeAttribute(ARIA_SELECTED);\n\t });\n\t tab.setAttribute(ARIA_SELECTED, 'true');\n\t }\n\t };\n\t\n\t var tabClickHandler = function tabClickHandler(e) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t _this4.toggleTab_(panel, tab, tabpanel);\n\t selectTab();\n\t };\n\t\n\t var tabFocusHandler = function tabFocusHandler(e) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t selectTab();\n\t };\n\t\n\t var tabpanelClickHandler = function tabpanelClickHandler() {\n\t selectTab();\n\t };\n\t\n\t var tabpanelFocusHandler = function tabpanelFocusHandler() {\n\t selectTab();\n\t };\n\t\n\t var tabKeydownHandler = function tabKeydownHandler(e) {\n\t\n\t if (_this4.element_.hasAttribute('disabled')) {\n\t return;\n\t }\n\t\n\t if (e.keyCode === VK_END || e.keyCode === VK_HOME || e.keyCode === VK_ARROW_UP || e.keyCode === VK_ARROW_LEFT || e.keyCode === VK_ARROW_DOWN || e.keyCode === VK_ARROW_RIGHT) {\n\t\n\t var nextTab = null;\n\t var keyCode = e.keyCode;\n\t\n\t if (keyCode === VK_HOME) {\n\t nextTab = _this4.element_.querySelector('.' + PANEL + ':first-child > .' + TAB);\n\t if (nextTab && nextTab.hasAttribute('disabled')) {\n\t nextTab = null;\n\t keyCode = VK_ARROW_DOWN;\n\t }\n\t } else if (keyCode === VK_END) {\n\t nextTab = _this4.element_.querySelector('.' + PANEL + ':last-child > .' + TAB);\n\t if (nextTab && nextTab.hasAttribute('disabled')) {\n\t nextTab = null;\n\t keyCode = VK_ARROW_UP;\n\t }\n\t }\n\t\n\t if (!nextTab) {\n\t var nextPanel = panel;\n\t\n\t do {\n\t if (keyCode === VK_ARROW_UP || keyCode === VK_ARROW_LEFT) {\n\t nextPanel = nextPanel.previousElementSibling;\n\t if (!nextPanel) {\n\t nextPanel = _this4.element_.querySelector('.' + PANEL + ':last-child');\n\t }\n\t if (nextPanel) {\n\t nextTab = nextPanel.querySelector('.' + PANEL + ' > .' + TAB);\n\t }\n\t } else if (keyCode === VK_ARROW_DOWN || keyCode === VK_ARROW_RIGHT) {\n\t nextPanel = nextPanel.nextElementSibling;\n\t if (!nextPanel) {\n\t nextPanel = _this4.element_.querySelector('.' + PANEL + ':first-child');\n\t }\n\t if (nextPanel) {\n\t nextTab = nextPanel.querySelector('.' + PANEL + ' > .' + TAB);\n\t }\n\t }\n\t\n\t if (nextTab && nextTab.hasAttribute('disabled')) {\n\t nextTab = null;\n\t } else {\n\t break;\n\t }\n\t } while (nextPanel !== panel);\n\t }\n\t\n\t if (nextTab) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t nextTab.focus();\n\t\n\t // Workaround for JSDom testing:\n\t // In JsDom 'element.focus()' does not trigger any focus event\n\t if (!nextTab.hasAttribute(ARIA_SELECTED)) {\n\t\n\t [].concat((0, _toConsumableArray3.default)(_this4.element_.querySelectorAll('.' + TAB + '[aria-selected=\"true\"]'))).forEach(function (selectedTab) {\n\t return selectedTab.removeAttribute(ARIA_SELECTED);\n\t });\n\t\n\t nextTab.setAttribute(ARIA_SELECTED, 'true');\n\t }\n\t }\n\t } else if (e.keyCode === VK_ENTER || e.keyCode === VK_SPACE) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t _this4.toggleTab_(panel, tab, tabpanel);\n\t }\n\t };\n\t\n\t if (tab === null) {\n\t throw new Error('There must be a tab element for each accordion panel.');\n\t }\n\t\n\t if (tabpanel === null) {\n\t throw new Error('There must be a tabpanel element for each accordion panel.');\n\t }\n\t\n\t panel.setAttribute('role', PANEL_ROLE);\n\t tab.setAttribute('role', TAB_ROLE);\n\t tabpanel.setAttribute('role', TABPANEL_ROLE);\n\t\n\t if (tab.hasAttribute('disabled')) {\n\t disableTab();\n\t } else {\n\t enableTab();\n\t }\n\t\n\t if (this.element_.classList.contains(ACCORDION_HORIZONTAL)) {\n\t calcMaxTabCaptionWidth();\n\t }\n\t\n\t if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n\t tab.classList.add(RIPPLE);\n\t }\n\t\n\t if (this.element_.classList.contains(ANIMATION_EFFECT)) {\n\t tabpanel.classList.add(ANIMATION);\n\t }\n\t\n\t tab.removeEventListener('click', tabClickHandler);\n\t tab.removeEventListener('focus', tabFocusHandler);\n\t tab.removeEventListener('keydown', tabKeydownHandler);\n\t tabpanel.removeEventListener('click', tabpanelClickHandler);\n\t tabpanel.removeEventListener('focus', tabpanelFocusHandler);\n\t\n\t tab.addEventListener('click', tabClickHandler);\n\t tab.addEventListener('focus', tabFocusHandler);\n\t tab.addEventListener('keydown', tabKeydownHandler);\n\t tabpanel.addEventListener('click', tabpanelClickHandler, true);\n\t tabpanel.addEventListener('focus', tabpanelFocusHandler, true);\n\t };\n\t MaterialExtAccordion.prototype['upgradeTab'] = MaterialExtAccordion.prototype.upgradeTab;\n\t\n\t /**\n\t * Execute command\n\t * @param detail\n\t */\n\t MaterialExtAccordion.prototype.command = function (detail) {\n\t var _this5 = this;\n\t\n\t var openTab = function openTab(tabElement) {\n\t\n\t if (tabElement === undefined) {\n\t _this5.openTabs_();\n\t } else if (tabElement !== null) {\n\t var _accordionPanelElemen2 = accordionPanelElements(tabElement);\n\t\n\t var panel = _accordionPanelElemen2.panel;\n\t var tab = _accordionPanelElemen2.tab;\n\t var tabpanel = _accordionPanelElemen2.tabpanel;\n\t\n\t if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() !== 'true') {\n\t _this5.toggleTab_(panel, tab, tabpanel);\n\t }\n\t }\n\t };\n\t\n\t var closeTab = function closeTab(tabElement) {\n\t if (tabElement === undefined) {\n\t _this5.closeTabs_();\n\t } else if (tabElement !== null) {\n\t var _accordionPanelElemen3 = accordionPanelElements(tabElement);\n\t\n\t var panel = _accordionPanelElemen3.panel;\n\t var tab = _accordionPanelElemen3.tab;\n\t var tabpanel = _accordionPanelElemen3.tabpanel;\n\t\n\t\n\t if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n\t _this5.toggleTab_(panel, tab, tabpanel);\n\t }\n\t }\n\t };\n\t\n\t var toggleTab = function toggleTab(tabElement) {\n\t if (tabElement) {\n\t var _accordionPanelElemen4 = accordionPanelElements(tabElement);\n\t\n\t var panel = _accordionPanelElemen4.panel;\n\t var tab = _accordionPanelElemen4.tab;\n\t var tabpanel = _accordionPanelElemen4.tabpanel;\n\t\n\t _this5.toggleTab_(panel, tab, tabpanel);\n\t }\n\t };\n\t\n\t if (detail && detail.action) {\n\t var action = detail.action;\n\t var target = detail.target;\n\t\n\t\n\t switch (action.toLowerCase()) {\n\t case 'open':\n\t openTab(target);\n\t break;\n\t case 'close':\n\t closeTab(target);\n\t break;\n\t case 'toggle':\n\t toggleTab(target);\n\t break;\n\t case 'upgrade':\n\t if (target) {\n\t this.upgradeTab(target);\n\t }\n\t break;\n\t default:\n\t throw new Error('Unknown action \"' + action + '\". Action must be one of \"open\", \"close\", \"toggle\" or \"upgrade\"');\n\t }\n\t }\n\t };\n\t MaterialExtAccordion.prototype['command'] = MaterialExtAccordion.prototype.command;\n\t\n\t /*\n\t * Downgrade component\n\t * E.g remove listeners and clean up resources\n\t *\n\t * Note: There is a bug i material component container; downgrade is never called!\n\t * Disables method temporarly to keep code coverage at 100% for functions.\n\t *\n\t MaterialExtAccordion.prototype.mdlDowngrade_ = function() {\n\t 'use strict';\n\t console.log('***** MaterialExtAccordion.mdlDowngrade');\n\t };\n\t */\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /* eslint no-undef: 0 */\n\t componentHandler.register({\n\t constructor: MaterialExtAccordion,\n\t classAsString: 'MaterialExtAccordion',\n\t cssClass: 'mdlext-js-accordion',\n\t widget: true\n\t });\n\t})(); /**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * A WAI-ARIA friendly accordion component.\n\t * An accordion is a collection of expandable panels associated with a common outer container. Panels consist\n\t * of a header and an associated content region or tabpanel. The primary use of an Accordion is to present multiple sections\n\t * of content on a single page without scrolling, where all of the sections are peers in the application or object hierarchy.\n\t * The general look is similar to a tree where each root tree node is an expandable accordion header. The user navigates\n\t * and makes the contents of each panel visible (or not) by interacting with the Accordion Header\n\t */\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _isInteger = __webpack_require__(27);\n\t\n\tvar _isInteger2 = _interopRequireDefault(_isInteger);\n\t\n\tvar _toConsumableArray2 = __webpack_require__(11);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _assign = __webpack_require__(51);\n\t\n\tvar _assign2 = _interopRequireDefault(_assign);\n\t\n\t__webpack_require__(15);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tvar _animationloop = __webpack_require__(24);\n\t\n\tvar _animationloop2 = _interopRequireDefault(_animationloop);\n\t\n\tvar _easing = __webpack_require__(25);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * Image carousel\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var VK_TAB = 9;\n\t var VK_ENTER = 13;\n\t var VK_ESC = 27;\n\t var VK_SPACE = 32;\n\t var VK_PAGE_UP = 33;\n\t var VK_PAGE_DOWN = 34;\n\t var VK_END = 35;\n\t var VK_HOME = 36;\n\t var VK_ARROW_LEFT = 37;\n\t var VK_ARROW_UP = 38;\n\t var VK_ARROW_RIGHT = 39;\n\t var VK_ARROW_DOWN = 40;\n\t\n\t var IS_UPGRADED = 'is-upgraded';\n\t var IS_FOCUSED = 'is-focused';\n\t //const CAROUSEL = 'mdlext-carousel';\n\t var SLIDE = 'mdlext-carousel__slide';\n\t var ROLE = 'list';\n\t var SLIDE_ROLE = 'listitem';\n\t\n\t var RIPPLE = 'mdl-ripple';\n\t var RIPPLE_COMPONENT = 'MaterialRipple';\n\t var RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n\t var RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n\t var RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\t\n\t /**\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtCarousel = function MaterialExtCarousel(element) {\n\t // Stores the element.\n\t this.element_ = element;\n\t\n\t // Default config\n\t this.config_ = {\n\t interactive: true,\n\t autostart: false,\n\t type: 'slide',\n\t interval: 1000,\n\t animationLoop: new _animationloop2.default(1000)\n\t };\n\t\n\t this.scrollAnimation_ = new _animationloop2.default(33);\n\t\n\t this.drawing_ = false; // Used by MutationObserver\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t\n\t window['MaterialExtCarousel'] = MaterialExtCarousel;\n\t\n\t /**\n\t * Start slideshow animation\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.startSlideShow_ = function () {\n\t var _this = this;\n\t\n\t var nextSlide = function nextSlide() {\n\t var slide = _this.element_.querySelector('.' + SLIDE + '[aria-selected]');\n\t if (slide) {\n\t slide.removeAttribute('aria-selected');\n\t slide = slide.nextElementSibling;\n\t }\n\t if (!slide) {\n\t slide = _this.element_.querySelector('.' + SLIDE + ':first-child');\n\t _this.animateScroll_(0);\n\t }\n\t if (slide) {\n\t _this.moveSlideIntoViewport_(slide);\n\t slide.setAttribute('aria-selected', '');\n\t _this.emitSelectEvent_('next', null, slide);\n\t return true;\n\t }\n\t return false;\n\t };\n\t\n\t var nextScroll = function nextScroll(direction) {\n\t var nextDirection = direction;\n\t\n\t if ('next' === direction && _this.element_.scrollLeft === _this.element_.scrollWidth - _this.element_.clientWidth) {\n\t nextDirection = 'prev';\n\t } else if (_this.element_.scrollLeft === 0) {\n\t nextDirection = 'next';\n\t }\n\t var x = 'next' === nextDirection ? Math.min(_this.element_.scrollLeft + _this.element_.clientWidth, _this.element_.scrollWidth - _this.element_.clientWidth) : Math.max(_this.element_.scrollLeft - _this.element_.clientWidth, 0);\n\t\n\t _this.animateScroll_(x, 1000);\n\t return nextDirection;\n\t };\n\t\n\t if (!this.config_.animationLoop.running) {\n\t (function () {\n\t _this.config_.animationLoop.interval = _this.config_.interval;\n\t var direction = 'next';\n\t\n\t if ('scroll' === _this.config_.type) {\n\t _this.config_.animationLoop.start(function () {\n\t direction = nextScroll(direction);\n\t return true; // It runs until cancelSlideShow_ is triggered\n\t });\n\t } else {\n\t nextSlide();\n\t _this.config_.animationLoop.start(function () {\n\t return nextSlide(); // It runs until cancelSlideShow_ is triggered\n\t });\n\t }\n\t })();\n\t }\n\t\n\t // TODO: Pause animation when carousel is not in browser viewport or user changes tab\n\t };\n\t\n\t /**\n\t * Cancel slideshow if running. Emmits a 'pause' event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.cancelSlideShow_ = function () {\n\t if (this.config_.animationLoop.running) {\n\t this.config_.animationLoop.stop();\n\t this.emitSelectEvent_('pause', VK_ESC, this.element_.querySelector('.' + SLIDE + '[aria-selected]'));\n\t }\n\t };\n\t\n\t /**\n\t * Animate scroll\n\t * @param newPosition\n\t * @param newDuration\n\t * @param completedCallback\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.animateScroll_ = function (newPosition, newDuration, completedCallback) {\n\t var _this2 = this;\n\t\n\t var start = this.element_.scrollLeft;\n\t var distance = newPosition - start;\n\t\n\t if (distance !== 0) {\n\t (function () {\n\t var duration = Math.max(Math.min(Math.abs(distance), newDuration || 400), 100); // duration is between 100 and newDuration||400ms||distance\n\t var t = 0;\n\t _this2.scrollAnimation_.stop().start(function (timeElapsed) {\n\t t += timeElapsed;\n\t if (t < duration) {\n\t _this2.element_.scrollLeft = (0, _easing.inOutQuintic)(t, start, distance, duration);\n\t return true;\n\t } else {\n\t _this2.element_.scrollLeft = newPosition;\n\t if (completedCallback) {\n\t completedCallback();\n\t }\n\t return false;\n\t }\n\t });\n\t })();\n\t } else {\n\t if (completedCallback) {\n\t completedCallback();\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Execute commend\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.command_ = function (event) {\n\t var _this3 = this;\n\t\n\t var x = 0;\n\t var slide = null;\n\t var a = event.detail.action.toLowerCase();\n\t\n\t // Cancel slideshow if running\n\t this.cancelSlideShow_();\n\t\n\t switch (a) {\n\t case 'first':\n\t slide = this.element_.querySelector('.' + SLIDE + ':first-child');\n\t break;\n\t\n\t case 'last':\n\t x = this.element_.scrollWidth - this.element_.clientWidth;\n\t slide = this.element_.querySelector('.' + SLIDE + ':last-child');\n\t break;\n\t\n\t case 'scroll-prev':\n\t x = Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);\n\t break;\n\t\n\t case 'scroll-next':\n\t x = Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth);\n\t break;\n\t\n\t case 'next':\n\t case 'prev':\n\t slide = this.element_.querySelector('.' + SLIDE + '[aria-selected]');\n\t if (slide) {\n\t slide = a === 'next' ? slide.nextElementSibling : slide.previousElementSibling;\n\t this.setAriaSelected_(slide);\n\t this.emitSelectEvent_(a, null, slide);\n\t }\n\t return;\n\t\n\t case 'play':\n\t (0, _assign2.default)(this.config_, event.detail);\n\t this.startSlideShow_();\n\t return;\n\t\n\t case 'pause':\n\t return;\n\t\n\t default:\n\t return;\n\t }\n\t\n\t this.animateScroll_(x, undefined, function () {\n\t if ('scroll-next' === a || 'scroll-prev' === a) {\n\t var slides = _this3.getSlidesInViewport_();\n\t if (slides.length > 0) {\n\t slide = 'scroll-next' === a ? slides[0] : slides[slides.length - 1];\n\t }\n\t }\n\t _this3.setAriaSelected_(slide);\n\t _this3.emitSelectEvent_(a, null, slide);\n\t });\n\t };\n\t\n\t /**\n\t * Handles custom command event, 'scroll-prev', 'scroll-next', 'first', 'last', next, prev, play, pause\n\t * @param event. A custom event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.commandHandler_ = function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t if (event.detail && event.detail.action) {\n\t this.command_(event);\n\t }\n\t };\n\t\n\t /**\n\t * Handle keypress\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.keyDownHandler_ = function (event) {\n\t\n\t if (event && event.target && event.target !== this.element_) {\n\t\n\t var action = 'first';\n\t\n\t if (event.keyCode === VK_HOME || event.keyCode === VK_END || event.keyCode === VK_PAGE_UP || event.keyCode === VK_PAGE_DOWN) {\n\t\n\t event.preventDefault();\n\t if (event.keyCode === VK_END) {\n\t action = 'last';\n\t } else if (event.keyCode === VK_PAGE_UP) {\n\t action = 'scroll-prev';\n\t } else if (event.keyCode === VK_PAGE_DOWN) {\n\t action = 'scroll-next';\n\t }\n\t this.command_(action);\n\t } else if (event.keyCode === VK_TAB || event.keyCode === VK_ENTER || event.keyCode === VK_SPACE || event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t\n\t var slide = getSlide_(event.target);\n\t\n\t if (!slide) {\n\t return;\n\t }\n\t\n\t // Cancel slideshow if running\n\t this.cancelSlideShow_();\n\t\n\t switch (event.keyCode) {\n\t case VK_ARROW_UP:\n\t case VK_ARROW_LEFT:\n\t action = 'prev';\n\t slide = slide.previousElementSibling;\n\t break;\n\t\n\t case VK_ARROW_DOWN:\n\t case VK_ARROW_RIGHT:\n\t action = 'next';\n\t slide = slide.nextElementSibling;\n\t break;\n\t\n\t case VK_TAB:\n\t if (event.shiftKey) {\n\t action = 'prev';\n\t slide = slide.previousElementSibling;\n\t } else {\n\t action = 'next';\n\t slide = slide.nextElementSibling;\n\t }\n\t break;\n\t\n\t case VK_SPACE:\n\t case VK_ENTER:\n\t action = 'select';\n\t break;\n\t }\n\t\n\t if (slide) {\n\t event.preventDefault();\n\t setFocus_(slide);\n\t this.emitSelectEvent_(action, event.keyCode, slide);\n\t }\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Handle dragging\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.dragHandler_ = function (event) {\n\t var _this4 = this;\n\t\n\t event.preventDefault();\n\t\n\t // Cancel slideshow if running\n\t this.cancelSlideShow_();\n\t\n\t var updating = false;\n\t var rAFDragId = 0;\n\t\n\t var startX = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n\t var prevX = startX;\n\t var targetElement = event.target;\n\t\n\t var update = function update(e) {\n\t var currentX = e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0);\n\t var dx = prevX - currentX;\n\t\n\t if (dx < 0) {\n\t _this4.element_.scrollLeft = Math.max(_this4.element_.scrollLeft + dx, 0);\n\t } else if (dx > 0) {\n\t _this4.element_.scrollLeft = Math.min(_this4.element_.scrollLeft + dx, _this4.element_.scrollWidth - _this4.element_.clientWidth);\n\t }\n\t\n\t prevX = currentX;\n\t updating = false;\n\t };\n\t\n\t // drag handler\n\t var drag = function drag(e) {\n\t e.preventDefault();\n\t\n\t if (!updating) {\n\t rAFDragId = window.requestAnimationFrame(function () {\n\t return update(e);\n\t });\n\t updating = true;\n\t }\n\t };\n\t\n\t // end drag handler\n\t var endDrag = function endDrag(e) {\n\t e.preventDefault();\n\t\n\t _this4.element_.removeEventListener('mousemove', drag);\n\t _this4.element_.removeEventListener('touchmove', drag);\n\t window.removeEventListener('mouseup', endDrag);\n\t window.removeEventListener('touchend', endDrag);\n\t\n\t // cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/\n\t window.cancelAnimationFrame(rAFDragId);\n\t\n\t var slide = getSlide_(targetElement);\n\t setFocus_(slide);\n\t _this4.emitSelectEvent_('click', null, slide);\n\t };\n\t\n\t this.element_.addEventListener('mousemove', drag);\n\t this.element_.addEventListener('touchmove', drag);\n\t window.addEventListener('mouseup', endDrag);\n\t window.addEventListener('touchend', endDrag);\n\t };\n\t\n\t /**\n\t * Handle focus\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.focusHandler_ = function (event) {\n\t var slide = getSlide_(event.target);\n\t if (slide) {\n\t // The last focused/selected slide has 'aria-selected', even if focus is lost\n\t this.setAriaSelected_(slide);\n\t slide.classList.add(IS_FOCUSED);\n\t }\n\t };\n\t\n\t /**\n\t * Handle blur\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.blurHandler_ = function (event) {\n\t var slide = getSlide_(event.target);\n\t if (slide) {\n\t slide.classList.remove(IS_FOCUSED);\n\t }\n\t };\n\t\n\t /**\n\t * Emits a custeom 'select' event\n\t * @param command\n\t * @param keyCode\n\t * @param slide\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.emitSelectEvent_ = function (command, keyCode, slide) {\n\t\n\t if (slide) {\n\t this.moveSlideIntoViewport_(slide);\n\t\n\t var evt = (0, _customEvent.createCustomEvent)('select', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: {\n\t command: command,\n\t keyCode: keyCode,\n\t source: slide\n\t }\n\t });\n\t this.element_.dispatchEvent(evt);\n\t }\n\t };\n\t\n\t /**\n\t * Get the first visible slide in component viewport\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.getSlidesInViewport_ = function () {\n\t var carouselRect = this.element_.getBoundingClientRect();\n\t\n\t var slidesInViewport = [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).filter(function (slide) {\n\t var slideRect = slide.getBoundingClientRect();\n\t return slideRect.left >= carouselRect.left && slideRect.right <= carouselRect.right;\n\t });\n\t return slidesInViewport;\n\t };\n\t\n\t /**\n\t * Move slide into component viewport - if needed\n\t * @param slide\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.moveSlideIntoViewport_ = function (slide) {\n\t var carouselRect = this.element_.getBoundingClientRect();\n\t var slideRect = slide.getBoundingClientRect();\n\t\n\t if (slideRect.left < carouselRect.left) {\n\t var x = this.element_.scrollLeft - (carouselRect.left - slideRect.left);\n\t this.animateScroll_(x);\n\t } else if (slideRect.right > carouselRect.right) {\n\t var _x = this.element_.scrollLeft - (carouselRect.right - slideRect.right);\n\t this.animateScroll_(_x);\n\t }\n\t };\n\t\n\t /**\n\t * Removes 'aria-selected' from all slides in carousel\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.setAriaSelected_ = function (slide) {\n\t if (slide) {\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE + '[aria-selected]'))).forEach(function (slide) {\n\t return slide.removeAttribute('aria-selected');\n\t });\n\t slide.setAttribute('aria-selected', '');\n\t }\n\t };\n\t\n\t // Helpers\n\t var getSlide_ = function getSlide_(element) {\n\t return element.closest('.' + SLIDE);\n\t };\n\t\n\t var setFocus_ = function setFocus_(slide) {\n\t if (slide) {\n\t slide.focus();\n\t }\n\t };\n\t\n\t var addRipple_ = function addRipple_(slide) {\n\t if (!slide.querySelector('.' + RIPPLE_CONTAINER)) {\n\t var rippleContainer = document.createElement('span');\n\t rippleContainer.classList.add(RIPPLE_CONTAINER);\n\t rippleContainer.classList.add(RIPPLE_EFFECT);\n\t var ripple = document.createElement('span');\n\t ripple.classList.add(RIPPLE);\n\t rippleContainer.appendChild(ripple);\n\t\n\t var img = slide.querySelector('img');\n\t if (img) {\n\t // rippleContainer blocks image title\n\t rippleContainer.title = img.title;\n\t }\n\t slide.appendChild(rippleContainer);\n\t componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n\t }\n\t };\n\t // End helpers\n\t\n\t\n\t // Public methods.\n\t\n\t /**\n\t * Cancel animation - if running.\n\t *\n\t * @public\n\t */\n\t MaterialExtCarousel.prototype.stopAnimation = function () {\n\t this.config_.animationLoop.stop();\n\t };\n\t MaterialExtCarousel.prototype['stopAnimation'] = MaterialExtCarousel.prototype.stopAnimation;\n\t\n\t /**\n\t * Upgrade slides\n\t * Use if more list elements are added later (dynamically)\n\t *\n\t * @public\n\t */\n\t MaterialExtCarousel.prototype.upgradeSlides = function () {\n\t var _this5 = this;\n\t\n\t var hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t\n\t slide.setAttribute('role', SLIDE_ROLE);\n\t\n\t if (_this5.config_.interactive) {\n\t if (!slide.getAttribute('tabindex')) {\n\t slide.setAttribute('tabindex', '0');\n\t }\n\t if (hasRippleEffect) {\n\t addRipple_(slide);\n\t }\n\t } else {\n\t slide.setAttribute('tabindex', '-1');\n\t }\n\t });\n\t };\n\t MaterialExtCarousel.prototype['upgradeSlides'] = MaterialExtCarousel.prototype.upgradeSlides;\n\t\n\t /**\n\t * Get config object\n\t *\n\t * @public\n\t */\n\t MaterialExtCarousel.prototype.getConfig = function () {\n\t return this.config_;\n\t };\n\t MaterialExtCarousel.prototype['getConfig'] = MaterialExtCarousel.prototype.getConfig;\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtCarousel.prototype.init = function () {\n\t var _this6 = this;\n\t\n\t if (this.element_) {\n\t // Config\n\t if (this.element_.hasAttribute('data-config')) {\n\t var s = this.element_.getAttribute('data-config').replace(/'/g, '\"');\n\t try {\n\t var c = JSON.parse(s);\n\t (0, _assign2.default)(this.config_, c);\n\t } catch (e) {\n\t throw new Error('Failed to parse \"data-config = ' + s + '\". Error: ' + e.message);\n\t }\n\t }\n\t\n\t // Wai-Aria\n\t this.element_.setAttribute('role', ROLE);\n\t\n\t // Prefer tabindex -1\n\t if (!(0, _isInteger2.default)(this.element_.getAttribute('tabindex'))) {\n\t this.element_.setAttribute('tabindex', -1);\n\t }\n\t\n\t if (this.config_.interactive) {\n\t\n\t // Ripple\n\t var hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n\t if (hasRippleEffect) {\n\t this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n\t }\n\t\n\t // Listen to focus/blur events\n\t this.element_.addEventListener('focus', this.focusHandler_.bind(this), true);\n\t this.element_.addEventListener('blur', this.blurHandler_.bind(this), true);\n\t\n\t // Listen to keyboard events\n\t this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this), false);\n\t\n\t // Listen to drag events\n\t this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), false);\n\t this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), false);\n\t\n\t // Click is handled by drag\n\t this.element_.addEventListener('click', function (e) {\n\t return e.preventDefault();\n\t }, false);\n\t }\n\t\n\t // Listen to custom 'command' event\n\t this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t\n\t // Detect insertions into components DOM\n\t var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\t\n\t // jsdom does not support MutationObserver - so this is not testable\n\t /* istanbul ignore next */\n\t new MutationObserver(function (mutations) {\n\t mutations.forEach(function (mutation) {\n\t if (mutation.addedNodes.length > 0) {\n\t window.requestAnimationFrame(function () {\n\t return _this6.upgradeSlides();\n\t });\n\t }\n\t });\n\t }).observe(this.element_, {\n\t attributes: false,\n\t childList: true,\n\t characterData: false,\n\t subtree: false\n\t });\n\t\n\t // Slides collection\n\t this.upgradeSlides();\n\t\n\t // Set upgraded flag\n\t this.element_.classList.add(IS_UPGRADED);\n\t\n\t if (this.config_.autostart) {\n\t // Start slideshow\n\t this.startSlideShow_();\n\t }\n\t }\n\t };\n\t\n\t /*\n\t * Downgrade component\n\t * E.g remove listeners and clean up resources\n\t *\n\t * Note: There is a bug i material component container; downgrade is never called!\n\t * Disables method temporarly to keep code coverage at 100% for functions.\n\t *\n\t MaterialExtCarousel.prototype.mdlDowngrade_ = function() {\n\t 'use strict';\n\t console.log('***** MaterialExtCarousel.mdlDowngrade');\n\t };\n\t */\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /* eslint no-undef: 0 */\n\t componentHandler.register({\n\t constructor: MaterialExtCarousel,\n\t classAsString: 'MaterialExtCarousel',\n\t cssClass: 'mdlext-js-carousel',\n\t widget: true\n\t });\n\t})();\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t//import 'utils/closest-polyfill';\n\t\n\t__webpack_require__(6);\n\t\n\t__webpack_require__(24);\n\t\n\t__webpack_require__(25);\n\t\n\t__webpack_require__(48);\n\t\n\t__webpack_require__(47);\n\t\n\t__webpack_require__(42);\n\t\n\t__webpack_require__(45);\n\t\n\t__webpack_require__(46);\n\t\n\t__webpack_require__(43);\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _toConsumableArray2 = __webpack_require__(11);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\t__webpack_require__(15);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * A lightboard is a translucent surface illuminated from behind, used for situations\n\t * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n\t * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n\t * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var VK_ENTER = 13;\n\t var VK_SPACE = 32;\n\t var VK_END = 35;\n\t var VK_HOME = 36;\n\t var VK_ARROW_LEFT = 37;\n\t var VK_ARROW_UP = 38;\n\t var VK_ARROW_RIGHT = 39;\n\t var VK_ARROW_DOWN = 40;\n\t\n\t var IS_UPGRADED = 'is-upgraded';\n\t //const LIGHTBOARD = 'mdlext-lightboard';\n\t var LIGHTBOARD_ROLE = 'grid';\n\t var SLIDE = 'mdlext-lightboard__slide';\n\t var SLIDE_ROLE = 'gridcell';\n\t var SLIDE_TABSTOP = 'mdlext-lightboard__slide__frame';\n\t var RIPPLE_COMPONENT = 'MaterialRipple';\n\t var RIPPLE = 'mdl-ripple';\n\t var RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container';\n\t var RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n\t var RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\t\n\t /**\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtLightboard = function MaterialExtLightboard(element) {\n\t // Stores the element.\n\t this.element_ = element;\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t window['MaterialExtLightboard'] = MaterialExtLightboard;\n\t\n\t // Helpers\n\t var getSlide = function getSlide(element) {\n\t return element ? element.closest('.' + SLIDE) : null;\n\t };\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtLightboard.prototype.init = function () {\n\t var _this = this;\n\t\n\t var keydownHandler = function keydownHandler(event) {\n\t\n\t if (event.target !== _this.element_) {\n\t var action = void 0;\n\t var target = void 0;\n\t switch (event.keyCode) {\n\t case VK_HOME:\n\t action = 'first';\n\t break;\n\t case VK_END:\n\t action = 'last';\n\t break;\n\t case VK_ARROW_UP:\n\t case VK_ARROW_LEFT:\n\t action = 'prev';\n\t break;\n\t case VK_ARROW_DOWN:\n\t case VK_ARROW_RIGHT:\n\t action = 'next';\n\t break;\n\t case VK_ENTER:\n\t case VK_SPACE:\n\t action = 'select';\n\t target = event.target;\n\t break;\n\t }\n\t if (action) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t _this.command({ action: action, target: target });\n\t }\n\t }\n\t };\n\t\n\t var clickHandler = function clickHandler(event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event.target !== _this.element_) {\n\t _this.command({ action: 'select', target: event.target });\n\t }\n\t };\n\t\n\t var focusHandler = function focusHandler(event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event.target !== _this.element_) {\n\t _this.selectSlide_(event.target);\n\t }\n\t };\n\t\n\t if (this.element_) {\n\t this.element_.setAttribute('role', LIGHTBOARD_ROLE);\n\t\n\t if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n\t this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n\t }\n\t\n\t this.element_.removeEventListener('command', this.commandHandler_);\n\t this.element_.removeEventListener('keydown', keydownHandler);\n\t this.element_.removeEventListener('click', clickHandler);\n\t this.element_.removeEventListener('focus', focusHandler);\n\t\n\t this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t this.element_.addEventListener('keydown', keydownHandler, true);\n\t this.element_.addEventListener('click', clickHandler, true);\n\t this.element_.addEventListener('focus', focusHandler, true);\n\t\n\t this.upgradeSlides();\n\t\n\t this.element_.classList.add(IS_UPGRADED);\n\t }\n\t };\n\t\n\t // Private methods.\n\t\n\t /**\n\t * Select a slide, i.e. set aria-selected=\"true\"\n\t * @param element\n\t * @private\n\t */\n\t MaterialExtLightboard.prototype.selectSlide_ = function (element) {\n\t var slide = getSlide(element);\n\t if (slide && !slide.hasAttribute('aria-selected')) {\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE + '[aria-selected=\"true\"]'))).forEach(function (selectedSlide) {\n\t return selectedSlide.removeAttribute('aria-selected');\n\t });\n\t\n\t slide.setAttribute('aria-selected', 'true');\n\t }\n\t };\n\t\n\t /**\n\t * Dispatch select event\n\t * @param {Element} slide The slide that caused the event\n\t * @private\n\t */\n\t MaterialExtLightboard.prototype.dispatchSelectEvent_ = function (slide) {\n\t this.element_.dispatchEvent((0, _customEvent.createCustomEvent)('select', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: { source: slide }\n\t }));\n\t };\n\t\n\t /**\n\t * Handles custom command event, 'first', 'next', 'prev', 'last', 'select' or upgrade\n\t * @param event. A custom event\n\t * @private\n\t */\n\t MaterialExtLightboard.prototype.commandHandler_ = function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event && event.detail) {\n\t this.command(event.detail);\n\t }\n\t };\n\t\n\t // Public methods\n\t\n\t /**\n\t * Initialize lightboard slides\n\t * @public\n\t */\n\t MaterialExtLightboard.prototype.upgradeSlides = function () {\n\t\n\t var addRipple = function addRipple(slide) {\n\t // Use slide frame as ripple container\n\t if (!slide.querySelector('.' + RIPPLE_CONTAINER)) {\n\t var a = slide.querySelector('.' + SLIDE_TABSTOP);\n\t if (a) {\n\t var rippleContainer = a;\n\t rippleContainer.classList.add(RIPPLE_CONTAINER);\n\t rippleContainer.classList.add(RIPPLE_EFFECT);\n\t var ripple = document.createElement('span');\n\t ripple.classList.add(RIPPLE);\n\t rippleContainer.appendChild(ripple);\n\t componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n\t }\n\t }\n\t };\n\t\n\t var hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t\n\t slide.setAttribute('role', SLIDE_ROLE);\n\t\n\t if (!slide.querySelector('a')) {\n\t slide.setAttribute('tabindex', '0');\n\t }\n\t if (hasRippleEffect) {\n\t addRipple(slide);\n\t }\n\t });\n\t };\n\t MaterialExtLightboard.prototype['upgradeSlides'] = MaterialExtLightboard.prototype.upgradeSlides;\n\t\n\t /**\n\t * Execute command\n\t * @param detail\n\t * @public\n\t */\n\t MaterialExtLightboard.prototype.command = function (detail) {\n\t var _this2 = this;\n\t\n\t var firstSlide = function firstSlide() {\n\t return _this2.element_.querySelector('.' + SLIDE + ':first-child');\n\t };\n\t\n\t var lastSlide = function lastSlide() {\n\t return _this2.element_.querySelector('.' + SLIDE + ':last-child');\n\t };\n\t\n\t var nextSlide = function nextSlide() {\n\t var slide = _this2.element_.querySelector('.' + SLIDE + '[aria-selected=\"true\"]').nextElementSibling;\n\t return slide ? slide : firstSlide();\n\t };\n\t\n\t var prevSlide = function prevSlide() {\n\t var slide = _this2.element_.querySelector('.' + SLIDE + '[aria-selected=\"true\"]').previousElementSibling;\n\t return slide ? slide : lastSlide();\n\t };\n\t\n\t if (detail && detail.action) {\n\t var action = detail.action;\n\t var target = detail.target;\n\t\n\t\n\t var slide = void 0;\n\t switch (action.toLowerCase()) {\n\t case 'select':\n\t slide = getSlide(target);\n\t this.dispatchSelectEvent_(slide);\n\t break;\n\t case 'first':\n\t slide = firstSlide();\n\t break;\n\t case 'next':\n\t slide = nextSlide();\n\t break;\n\t case 'prev':\n\t slide = prevSlide();\n\t break;\n\t case 'last':\n\t slide = lastSlide();\n\t break;\n\t case 'upgrade':\n\t this.upgradeSlides();\n\t break;\n\t default:\n\t throw new Error('Unknown action \"' + action + '\". Action must be one of \"first\", \"next\", \"prev\", \"last\", \"select\" or \"upgrade\"');\n\t }\n\t\n\t if (slide) {\n\t var a = slide.querySelector('a');\n\t if (a) {\n\t a.focus();\n\t } else {\n\t slide.focus();\n\t }\n\t\n\t // Workaround for JSDom testing:\n\t // In JsDom 'element.focus()' does not trigger any focus event\n\t if (!slide.hasAttribute('aria-selected')) {\n\t this.selectSlide_(slide);\n\t }\n\t }\n\t }\n\t };\n\t MaterialExtLightboard.prototype['command'] = MaterialExtLightboard.prototype.command;\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /* eslint no-undef: 0 */\n\t /* jshint undef:false */\n\t componentHandler.register({\n\t constructor: MaterialExtLightboard,\n\t classAsString: 'MaterialExtLightboard',\n\t cssClass: 'mdlext-js-lightboard',\n\t widget: true\n\t });\n\t})();\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _toConsumableArray2 = __webpack_require__(11);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _isInteger = __webpack_require__(27);\n\t\n\tvar _isInteger2 = _interopRequireDefault(_isInteger);\n\t\n\tvar _slicedToArray2 = __webpack_require__(56);\n\t\n\tvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\t\n\tvar _entries = __webpack_require__(53);\n\t\n\tvar _entries2 = _interopRequireDefault(_entries);\n\t\n\tvar _getIterator2 = __webpack_require__(26);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\t\n\t__webpack_require__(15);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * Responsive Lightbox\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var VK_ESC = 27;\n\t var VK_SPACE = 32;\n\t var VK_END = 35;\n\t var VK_HOME = 36;\n\t var VK_ARROW_LEFT = 37;\n\t var VK_ARROW_UP = 38;\n\t var VK_ARROW_RIGHT = 39;\n\t var VK_ARROW_DOWN = 40;\n\t\n\t var IS_UPGRADED = 'is-upgraded';\n\t var LIGHTBOX = 'mdlext-lightbox';\n\t var LIGHTBOX_SLIDER = 'mdlext-lightbox__slider';\n\t var LIGHTBOX_SLIDER_SLIDE = 'mdlext-lightbox__slider__slide';\n\t var STICKY_FOOTER = 'mdlext-lightbox--sticky-footer';\n\t var BUTTON = 'mdl-button';\n\t\n\t /**\n\t * https://github.com/google/material-design-lite/issues/4205\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtLightbox = function MaterialExtLightbox(element) {\n\t // Stores the element.\n\t this.element_ = element;\n\t\n\t // false: allow rAF to be called, true: blocks rAF\n\t this.drawing_ = false;\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t window['MaterialExtLightbox'] = MaterialExtLightbox;\n\t\n\t /**\n\t * Handle keypress\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtLightbox.prototype.keyDownHandler_ = function (event) {\n\t\n\t if (event) {\n\t if (event.keyCode === VK_ESC || event.keyCode === VK_SPACE || event.keyCode === VK_END || event.keyCode === VK_HOME || event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t\n\t if (event.keyCode !== VK_ESC) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t }\n\t\n\t var action = 'first';\n\t if (event.keyCode === VK_END) {\n\t action = 'last';\n\t } else if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n\t action = 'prev';\n\t } else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t action = 'next';\n\t } else if (event.keyCode === VK_SPACE) {\n\t action = 'select';\n\t } else if (event.keyCode === VK_ESC) {\n\t action = 'cancel';\n\t }\n\t\n\t dispatchAction_(action, this);\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Handle button clicks\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtLightbox.prototype.buttonClickHandler_ = function (event) {\n\t\n\t if (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t dispatchAction_(this.getAttribute('data-action') || '', this);\n\t\n\t var n = this.closest('.' + LIGHTBOX);\n\t if (n) {\n\t n.focus();\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Dispatches an action custom event\n\t * @param action\n\t * @param source\n\t * @param target\n\t * @private\n\t */\n\t var dispatchAction_ = function dispatchAction_(action, source) {\n\t var target = arguments.length <= 2 || arguments[2] === undefined ? source : arguments[2];\n\t\n\t\n\t target.dispatchEvent((0, _customEvent.createCustomEvent)('action', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: {\n\t action: action || '',\n\t source: source\n\t }\n\t }));\n\t };\n\t\n\t /**\n\t * Reposition dialog if component parent element is \"DIALOG\"\n\t * @param lightboxElement\n\t * @private\n\t */\n\t var repositionDialog_ = function repositionDialog_(lightboxElement) {\n\t var footerHeight = function footerHeight(footer, isSticky) {\n\t return isSticky && footer ? footer.offsetHeight : 0;\n\t };\n\t\n\t var reposition = function reposition(dialog, fh) {\n\t if (window.getComputedStyle(dialog).position === 'absolute') {\n\t var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;\n\t var topValue = scrollTop + (window.innerHeight - dialog.offsetHeight - fh) / 2;\n\t dialog.style.top = Math.max(scrollTop, topValue) + 'px';\n\t }\n\t };\n\t\n\t var dialog = lightboxElement.parentNode.nodeName === 'DIALOG' ? lightboxElement.parentNode : null;\n\t if (dialog && dialog.hasAttribute('open')) {\n\t lightboxElement.style.width = 'auto';\n\t lightboxElement.style.maxWidth = '100%';\n\t var img = lightboxElement.querySelector('img');\n\t if (img) {\n\t lightboxElement.style.maxWidth = img.naturalWidth !== 'undefined' ? img.naturalWidth + 'px' : img.width + 'px' || '100%';\n\t }\n\t\n\t var fh = footerHeight(lightboxElement.querySelector('footer'), lightboxElement.classList.contains(STICKY_FOOTER));\n\t var vh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - fh;\n\t if (dialog.offsetHeight > vh) {\n\t var n = 0;\n\t while (dialog.offsetHeight > vh && ++n < 4) {\n\t lightboxElement.style.width = lightboxElement.offsetWidth * vh / lightboxElement.offsetHeight + 'px';\n\t }\n\t }\n\t reposition(dialog, fh);\n\t }\n\t };\n\t\n\t /**\n\t * Handle image load\n\t * @param event\n\t * @private\n\t */\n\t\n\t MaterialExtLightbox.prototype.imgLoadHandler_ = function () /*event*/{\n\t repositionDialog_(this);\n\t };\n\t\n\t /**\n\t * Handle image drag\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtLightbox.prototype.imgDragHandler_ = function (event) {\n\t\n\t var setStyles = function setStyles(element, properties) {\n\t //noinspection JSAnnotator\n\t var _iteratorNormalCompletion = true;\n\t var _didIteratorError = false;\n\t var _iteratorError = undefined;\n\t\n\t try {\n\t for (var _iterator = (0, _getIterator3.default)((0, _entries2.default)(properties)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t var _step$value = (0, _slicedToArray3.default)(_step.value, 2);\n\t\n\t var key = _step$value[0];\n\t var value = _step$value[1];\n\t\n\t element.style[key] = value;\n\t }\n\t // ... or:\n\t //for (const key in properties) {\n\t // element.style[key] = properties[key];\n\t //}\n\t } catch (err) {\n\t _didIteratorError = true;\n\t _iteratorError = err;\n\t } finally {\n\t try {\n\t if (!_iteratorNormalCompletion && _iterator.return) {\n\t _iterator.return();\n\t }\n\t } finally {\n\t if (_didIteratorError) {\n\t throw _iteratorError;\n\t }\n\t }\n\t }\n\t };\n\t\n\t event.preventDefault();\n\t //event.stopPropagation();\n\t\n\t var x = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n\t\n\t var img = this;\n\t img.style.opacity = '0.2';\n\t\n\t var slider = document.createElement('div');\n\t slider.classList.add(LIGHTBOX_SLIDER);\n\t setStyles(slider, { 'width': img.offsetWidth + 'px', 'height': img.offsetHeight + 'px' });\n\t\n\t var slide = document.createElement('div');\n\t slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n\t slide.textContent = '>';\n\t setStyles(slide, {\n\t 'width': img.offsetWidth + 'px',\n\t 'height': img.offsetHeight + 'px',\n\t 'line-height': img.offsetHeight + 'px',\n\t 'font-size': img.offsetHeight / 4 + 'px',\n\t 'text-align': 'right',\n\t 'background-image': 'url(\"' + (img.getAttribute('data-img-url-prev') || '') + '\")'\n\t });\n\t slider.appendChild(slide);\n\t\n\t slide = document.createElement('div');\n\t slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n\t setStyles(slide, {\n\t 'width': img.offsetWidth + 'px',\n\t 'height': img.offsetHeight + 'px',\n\t 'background-image': 'url(\"' + img.src + '\")'\n\t });\n\t slider.appendChild(slide);\n\t\n\t slide = document.createElement('div');\n\t slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n\t slide.textContent = '<';\n\t setStyles(slide, {\n\t 'width': img.offsetWidth + 'px',\n\t 'height': img.offsetHeight + 'px',\n\t 'line-height': img.offsetHeight + 'px',\n\t 'font-size': img.offsetHeight / 4 + 'px',\n\t 'text-align': 'left',\n\t 'background-image': 'url(\"' + (img.getAttribute('data-img-url-next') || '') + '\")'\n\t });\n\t slider.appendChild(slide);\n\t\n\t img.parentNode.appendChild(slider);\n\t\n\t // drag handler\n\t var drag = function drag(e) {\n\t e.preventDefault();\n\t var dx = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0)) - x; // TODO: maybe rewrite to improve performance\n\t\n\t if (slider.offsetWidth - Math.abs(dx) > 19) {\n\t slider.style.left = dx + 'px';\n\t }\n\t };\n\t\n\t // end drag handler\n\t var endDrag = function endDrag(e) {\n\t e.preventDefault();\n\t //e.stopPropagation();\n\t\n\t window.removeEventListener('mousemove', drag);\n\t window.removeEventListener('touchmove', drag);\n\t window.removeEventListener('mouseup', endDrag);\n\t window.removeEventListener('touchend', endDrag);\n\t\n\t var dx = slider.offsetLeft;\n\t img.parentNode.removeChild(slider);\n\t img.style.opacity = '1.0';\n\t\n\t if (Math.abs(dx) > 19) {\n\t dispatchAction_(dx > 0 ? 'prev' : 'next', img);\n\t }\n\t };\n\t\n\t window.addEventListener('mousemove', drag);\n\t window.addEventListener('touchmove', drag);\n\t window.addEventListener('mouseup', endDrag); // .bind(this) does not work here\n\t window.addEventListener('touchend', endDrag);\n\t };\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtLightbox.prototype.init = function () {\n\t var _this = this;\n\t\n\t if (this.element_) {\n\t // Do the init required for this component to work\n\t this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this.element_), true);\n\t\n\t if (!(0, _isInteger2.default)(this.element_.getAttribute('tabindex'))) {\n\t this.element_.setAttribute('tabindex', 1);\n\t }\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + BUTTON))).forEach(function (button) {\n\t return button.addEventListener('click', _this.buttonClickHandler_.bind(button), false);\n\t });\n\t\n\t var figcaption = this.element_.querySelector('figcaption');\n\t if (figcaption) {\n\t figcaption.addEventListener('click', this.buttonClickHandler_.bind(figcaption), false);\n\t }\n\t\n\t var footer = this.element_.querySelector('footer');\n\t if (footer) {\n\t footer.addEventListener('click', this.buttonClickHandler_.bind(footer), false);\n\t }\n\t\n\t var img = this.element_.querySelector('img');\n\t if (img) {\n\t img.addEventListener('load', this.imgLoadHandler_.bind(this.element_), false);\n\t img.addEventListener('click', function (e) {\n\t return e.preventDefault();\n\t }, true);\n\t img.addEventListener('mousedown', this.imgDragHandler_.bind(img), true);\n\t img.addEventListener('touchstart', this.imgDragHandler_.bind(img), true);\n\t }\n\t\n\t // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n\t window.addEventListener('resize', function () {\n\t if (!_this.drawing_) {\n\t // Assumes MDL has polyfilled rAF\n\t window.requestAnimationFrame(function () {\n\t repositionDialog_(_this.element_);\n\t _this.drawing_ = false;\n\t });\n\t }\n\t _this.drawing_ = true;\n\t });\n\t\n\t window.addEventListener('orientationchange', function () {\n\t return repositionDialog_(_this.element_);\n\t });\n\t\n\t // Set upgraded flag\n\t this.element_.classList.add(IS_UPGRADED);\n\t }\n\t };\n\t\n\t /*\n\t * Downgrade component\n\t * E.g remove listeners and clean up resources\n\t * Note: There is a bug i material component container; downgrade is never called!\n\t * Disables method temporarly to keep code coverage at 100% for functions.\n\t *\n\t MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n\t if (this.element_) {\n\t [...this.element_.querySelectorAll(`.${BUTTON}`)].forEach(\n\t button => button.removeEventListener('click', this.buttonClickHandler_)\n\t );\n\t this.element_.removeEventListener('keydown', this.keyDownHandler_);\n\t }\n\t };\n\t */\n\t\n\t /**\n\t * The component registers itself. It can assume componentHandler is available in the global scope.\n\t */\n\t /* jshint undef:false */\n\t componentHandler.register({\n\t constructor: MaterialExtLightbox,\n\t classAsString: 'MaterialExtLightbox',\n\t cssClass: 'mdlext-js-lightbox'\n\t });\n\t})();\n\n/***/ },\n/* 47 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/*\n\t * Copied/Modified from https://github.com/google/material-design-lite/tree/master/src/textfield\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t /**\n\t * Class constructor for Selectfield MDLEXT component.\n\t * Implements MDL component design pattern defined at:\n\t * https://github.com/jasonmayes/mdl-component-design-pattern\n\t *\n\t * @constructor\n\t * @param {HTMLElement} element The element that will be upgraded.\n\t */\n\t\n\t var MaterialExtSelectfield = function MaterialExtSelectfield(element) {\n\t this.element_ = element;\n\t this.init(); // Initialize instance.\n\t };\n\t\n\t window['MaterialExtSelectfield'] = MaterialExtSelectfield;\n\t\n\t /**\n\t * Store constants in one place so they can be updated easily.\n\t *\n\t * @enum {string | number}\n\t * @private\n\t */\n\t MaterialExtSelectfield.prototype.Constant_ = {};\n\t\n\t /**\n\t * Store strings for class names defined by this component that are used in\n\t * JavaScript. This allows us to simply change it in one place should we\n\t * decide to modify at a later date.\n\t *\n\t * @enum {string}\n\t * @private\n\t */\n\t MaterialExtSelectfield.prototype.CssClasses_ = {\n\t LABEL: 'mdlext-selectfield__label',\n\t INPUT: 'mdlext-selectfield__select',\n\t IS_DIRTY: 'is-dirty',\n\t IS_FOCUSED: 'is-focused',\n\t IS_DISABLED: 'is-disabled',\n\t IS_INVALID: 'is-invalid',\n\t IS_UPGRADED: 'is-upgraded'\n\t };\n\t\n\t /**\n\t * Handle focus.\n\t *\n\t * @param {Event} event The event that fired.\n\t * @private\n\t */\n\t /*eslint no-unused-vars: 0*/\n\t MaterialExtSelectfield.prototype.onFocus_ = function () /*event*/{\n\t this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n\t };\n\t\n\t /**\n\t * Handle lost focus.\n\t *\n\t * @param {Event} event The event that fired.\n\t * @private\n\t */\n\t /*eslint no-unused-vars: 0*/\n\t MaterialExtSelectfield.prototype.onBlur_ = function () /*event*/{\n\t this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n\t };\n\t\n\t /**\n\t * Handle reset event from out side.\n\t *\n\t * @param {Event} event The event that fired.\n\t * @private\n\t */\n\t MaterialExtSelectfield.prototype.onReset_ = function () /*event*/{\n\t this.updateClasses_();\n\t };\n\t\n\t /**\n\t * Handle class updates.\n\t *\n\t * @private\n\t */\n\t MaterialExtSelectfield.prototype.updateClasses_ = function () {\n\t this.checkDisabled();\n\t this.checkValidity();\n\t this.checkDirty();\n\t this.checkFocus();\n\t };\n\t\n\t // Public methods.\n\t\n\t /**\n\t * Check the disabled state and update field accordingly.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.checkDisabled = function () {\n\t if (this.select_.disabled) {\n\t this.element_.classList.add(this.CssClasses_.IS_DISABLED);\n\t } else {\n\t this.element_.classList.remove(this.CssClasses_.IS_DISABLED);\n\t }\n\t };\n\t MaterialExtSelectfield.prototype['checkDisabled'] = MaterialExtSelectfield.prototype.checkDisabled;\n\t\n\t /**\n\t * Check the focus state and update field accordingly.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.checkFocus = function () {\n\t /*eslint no-extra-boolean-cast: 0*/\n\t if (Boolean(this.element_.querySelector(':focus'))) {\n\t this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n\t } else {\n\t this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n\t }\n\t };\n\t\n\t MaterialExtSelectfield.prototype['checkFocus'] = MaterialExtSelectfield.prototype.checkFocus;\n\t\n\t /**\n\t * Check the validity state and update field accordingly.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.checkValidity = function () {\n\t\n\t /* Don't think it makes any sense to check validity.\n\t Tests I've done, so far, indicates that setting an illegal value via JS returns selectedIndex=0\n\t if (this.select_.validity) {\n\t if (this.select_.validity.valid) {\n\t this.element_.classList.remove(this.CssClasses_.IS_INVALID);\n\t } else {\n\t this.element_.classList.add(this.CssClasses_.IS_INVALID);\n\t }\n\t }\n\t */\n\t };\n\t\n\t MaterialExtSelectfield.prototype['checkValidity'] = MaterialExtSelectfield.prototype.checkValidity;\n\t\n\t /**\n\t * Check the dirty state and update field accordingly.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.checkDirty = function () {\n\t if (this.select_.value && this.select_.value.length > 0) {\n\t this.element_.classList.add(this.CssClasses_.IS_DIRTY);\n\t } else {\n\t this.element_.classList.remove(this.CssClasses_.IS_DIRTY);\n\t }\n\t };\n\t\n\t MaterialExtSelectfield.prototype['checkDirty'] = MaterialExtSelectfield.prototype.checkDirty;\n\t\n\t /**\n\t * Disable select field.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.disable = function () {\n\t this.select_.disabled = true;\n\t this.updateClasses_();\n\t };\n\t\n\t MaterialExtSelectfield.prototype['disable'] = MaterialExtSelectfield.prototype.disable;\n\t\n\t /**\n\t * Enable select field.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.enable = function () {\n\t this.select_.disabled = false;\n\t this.updateClasses_();\n\t };\n\t\n\t MaterialExtSelectfield.prototype['enable'] = MaterialExtSelectfield.prototype.enable;\n\t\n\t /**\n\t * Update select field value.\n\t *\n\t * @param {string} value The value to which to set the control (optional).\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.change = function (value) {\n\t this.select_.value = value || '';\n\t this.updateClasses_();\n\t };\n\t MaterialExtSelectfield.prototype['change'] = MaterialExtSelectfield.prototype.change;\n\t\n\t /**\n\t * Initialize element.\n\t */\n\t MaterialExtSelectfield.prototype.init = function () {\n\t if (this.element_) {\n\t this.label_ = this.element_.querySelector('.' + this.CssClasses_.LABEL);\n\t this.select_ = this.element_.querySelector('.' + this.CssClasses_.INPUT);\n\t\n\t if (this.select_) {\n\t this.boundUpdateClassesHandler = this.updateClasses_.bind(this);\n\t this.boundFocusHandler = this.onFocus_.bind(this);\n\t this.boundBlurHandler = this.onBlur_.bind(this);\n\t this.boundResetHandler = this.onReset_.bind(this);\n\t this.select_.addEventListener('change', this.boundUpdateClassesHandler);\n\t this.select_.addEventListener('focus', this.boundFocusHandler);\n\t this.select_.addEventListener('blur', this.boundBlurHandler);\n\t this.select_.addEventListener('reset', this.boundResetHandler);\n\t\n\t var invalid = this.element_.classList.contains(this.CssClasses_.IS_INVALID);\n\t this.updateClasses_();\n\t this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n\t\n\t if (invalid) {\n\t this.element_.classList.add(this.CssClasses_.IS_INVALID);\n\t }\n\t if (this.select_.hasAttribute('autofocus')) {\n\t this.element_.focus();\n\t this.checkFocus();\n\t }\n\t }\n\t }\n\t };\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /*eslint no-undef: 0*/\n\t componentHandler.register({\n\t constructor: MaterialExtSelectfield,\n\t classAsString: 'MaterialExtSelectfield',\n\t cssClass: 'mdlext-js-selectfield',\n\t widget: true\n\t });\n\t})();\n\n/***/ },\n/* 48 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * A sticky header makes site navigation easily accessible anywhere on the page and saves content space at the same.\n\t * The header should auto-hide, i.e. hiding the header automatically when a user starts scrolling down the page and\n\t * bringing the header back when a user might need it: they reach the bottom of the page or start scrolling up.\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var IS_UPGRADED = 'is-upgraded';\n\t var CONTENT_CLASS = 'mdl-layout__content';\n\t var IS_SCROLL_CLASS = 'mdlext-is-scroll';\n\t //const STICKY_HEADER_CLASS = 'mdlext-layout__sticky-header';\n\t\n\t\n\t /**\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtStickyHeader = function MaterialExtStickyHeader(element) {\n\t // Stores the element.\n\t this.header_ = element;\n\t\n\t // Heder listens to scroll events from content\n\t this.content_ = null;\n\t this.lastScrollTop_ = 0;\n\t\n\t // false: allow rAF to be called, true: blocks rAF\n\t this.drawing_ = false;\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t\n\t window['MaterialExtStickyHeader'] = MaterialExtStickyHeader;\n\t\n\t /**\n\t * Update header width\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.recalcWidth_ = function () {\n\t this.header_.style.width = this.content_.clientWidth + 'px';\n\t };\n\t\n\t /**\n\t * Adjust header width when window resizes or oreientation changes\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.resizeHandler_ = function () /* event */{\n\t var _this = this;\n\t\n\t // See: https://developer.mozilla.org/en-US/docs/Web/Events/resize\n\t if (!this.drawing_) {\n\t // Assumes MDL has polyfilled rAF\n\t window.requestAnimationFrame(function () {\n\t _this.recalcWidth_();\n\t _this.drawing_ = false;\n\t });\n\t }\n\t this.drawing_ = true;\n\t };\n\t\n\t /**\n\t * Update header position\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.reposition_ = function () {\n\t\n\t var currentContentScrollTop = this.content_.scrollTop;\n\t var scrollDiff = this.lastScrollTop_ - currentContentScrollTop;\n\t\n\t if (currentContentScrollTop <= 0) {\n\t // Scrolled to the top. Header sticks to the top\n\t this.header_.style.top = '0';\n\t this.header_.classList.remove(IS_SCROLL_CLASS);\n\t } else if (scrollDiff > 0) {\n\t\n\t if (scrollDiff >= this.header_.offsetHeight) {\n\t\n\t // Scrolled up. Header slides in\n\t var headerTop = parseInt(window.getComputedStyle(this.header_).getPropertyValue('top')) || 0;\n\t if (headerTop != 0) {\n\t this.header_.style.top = '0';\n\t this.header_.classList.add(IS_SCROLL_CLASS);\n\t }\n\t this.lastScrollTop_ = currentContentScrollTop;\n\t }\n\t return;\n\t } else if (scrollDiff < 0) {\n\t // Scrolled down\n\t this.header_.classList.add(IS_SCROLL_CLASS);\n\t var _headerTop = parseInt(window.getComputedStyle(this.header_).getPropertyValue('top')) || 0;\n\t\n\t if (this.content_.scrollHeight - this.content_.scrollTop <= this.content_.offsetHeight) {\n\t // Bottom of content\n\t if (_headerTop != 0) {\n\t this.header_.style.top = '0';\n\t }\n\t } else {\n\t _headerTop += scrollDiff;\n\t var offsetHeight = this.header_.offsetHeight;\n\t this.header_.style.top = (Math.abs(_headerTop) > offsetHeight ? -offsetHeight : _headerTop) + 'px';\n\t }\n\t }\n\t\n\t this.lastScrollTop_ = currentContentScrollTop;\n\t };\n\t\n\t /**\n\t * Scroll header when content scrolls\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.scrollHandler_ = function () /* event */{\n\t var _this2 = this;\n\t\n\t // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n\t if (!this.drawing_) {\n\t window.requestAnimationFrame(function () {\n\t _this2.reposition_();\n\t _this2.drawing_ = false;\n\t });\n\t }\n\t this.drawing_ = true;\n\t };\n\t\n\t /**\n\t * Init header position\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.updatePosition_ = function () /* event */{\n\t this.recalcWidth_();\n\t this.reposition_();\n\t };\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtStickyHeader.prototype.init = function () {\n\t var _this3 = this;\n\t\n\t if (this.header_) {\n\t this.content_ = this.header_.parentNode.querySelector('.' + CONTENT_CLASS) || null;\n\t\n\t if (this.content_) {\n\t this.content_.style.paddingTop = this.header_.offsetHeight + 'px'; // Make room for sticky header\n\t this.lastScrollTop_ = this.content_.scrollTop;\n\t\n\t this.content_.addEventListener('scroll', this.scrollHandler_.bind(this));\n\t window.addEventListener('resize', this.resizeHandler_.bind(this));\n\t window.addEventListener('orientationchange', this.resizeHandler_.bind(this));\n\t\n\t // Adjust header width if content changes (e.g. in a SPA)\n\t var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\t\n\t // jsdom does not support MutationObserver - so this is not testable\n\t /* istanbul ignore next */\n\t new MutationObserver(function () /*mutations*/{\n\t\n\t if (!_this3.drawing_) {\n\t window.requestAnimationFrame(function () {\n\t _this3.updatePosition_();\n\t _this3.drawing_ = false;\n\t });\n\t }\n\t _this3.drawing_ = true;\n\t }).observe(this.content_, {\n\t attributes: false,\n\t childList: true,\n\t characterData: false,\n\t subtree: true\n\t });\n\t\n\t // Set initial position\n\t this.updatePosition_();\n\t\n\t // Set upgraded flag\n\t this.header_.classList.add(IS_UPGRADED);\n\t }\n\t }\n\t };\n\t\n\t /*\n\t * Downgrade component\n\t * E.g remove listeners and clean up resources\n\t * Note: There is a bug i material component container; downgrade is never called!\n\t * Disables method temporarly to keep code coverage at 100% for functions.\n\t *\n\t MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n\t 'use strict';\n\t };\n\t */\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /* eslint no-undef: 0 */\n\t componentHandler.register({\n\t constructor: MaterialExtStickyHeader,\n\t classAsString: 'MaterialExtStickyHeader',\n\t cssClass: 'mdlext-js-sticky-header'\n\t });\n\t})();\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(57), __esModule: true };\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(59), __esModule: true };\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(61), __esModule: true };\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(62), __esModule: true };\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(63), __esModule: true };\n\n/***/ },\n/* 54 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\texports.default = function (instance, Constructor) {\n\t if (!(instance instanceof Constructor)) {\n\t throw new TypeError(\"Cannot call a class as a function\");\n\t }\n\t};\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(52);\n\t\n\tvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t function defineProperties(target, props) {\n\t for (var i = 0; i < props.length; i++) {\n\t var descriptor = props[i];\n\t descriptor.enumerable = descriptor.enumerable || false;\n\t descriptor.configurable = true;\n\t if (\"value\" in descriptor) descriptor.writable = true;\n\t (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n\t }\n\t }\n\t\n\t return function (Constructor, protoProps, staticProps) {\n\t if (protoProps) defineProperties(Constructor.prototype, protoProps);\n\t if (staticProps) defineProperties(Constructor, staticProps);\n\t return Constructor;\n\t };\n\t}();\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _isIterable2 = __webpack_require__(50);\n\t\n\tvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\t\n\tvar _getIterator2 = __webpack_require__(26);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t function sliceIterator(arr, i) {\n\t var _arr = [];\n\t var _n = true;\n\t var _d = false;\n\t var _e = undefined;\n\t\n\t try {\n\t for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n\t _arr.push(_s.value);\n\t\n\t if (i && _arr.length === i) break;\n\t }\n\t } catch (err) {\n\t _d = true;\n\t _e = err;\n\t } finally {\n\t try {\n\t if (!_n && _i[\"return\"]) _i[\"return\"]();\n\t } finally {\n\t if (_d) throw _e;\n\t }\n\t }\n\t\n\t return _arr;\n\t }\n\t\n\t return function (arr, i) {\n\t if (Array.isArray(arr)) {\n\t return arr;\n\t } else if ((0, _isIterable3.default)(Object(arr))) {\n\t return sliceIterator(arr, i);\n\t } else {\n\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n\t }\n\t };\n\t}();\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(23);\n\t__webpack_require__(90);\n\tmodule.exports = __webpack_require__(1).Array.from;\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(41);\n\t__webpack_require__(23);\n\tmodule.exports = __webpack_require__(88);\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(41);\n\t__webpack_require__(23);\n\tmodule.exports = __webpack_require__(89);\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(92);\n\tmodule.exports = __webpack_require__(1).Number.isInteger;\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(93);\n\tmodule.exports = __webpack_require__(1).Object.assign;\n\n/***/ },\n/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(94);\n\tvar $Object = __webpack_require__(1).Object;\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $Object.defineProperty(it, key, desc);\n\t};\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(95);\n\tmodule.exports = __webpack_require__(1).Object.entries;\n\n/***/ },\n/* 64 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 65 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// false -> Array#indexOf\n\t// true -> Array#includes\n\tvar toIObject = __webpack_require__(14)\n\t , toLength = __webpack_require__(38)\n\t , toIndex = __webpack_require__(86);\n\tmodule.exports = function(IS_INCLUDES){\n\t return function($this, el, fromIndex){\n\t var O = toIObject($this)\n\t , length = toLength(O.length)\n\t , index = toIndex(fromIndex, length)\n\t , value;\n\t // Array#includes uses SameValueZero equality algorithm\n\t if(IS_INCLUDES && el != el)while(length > index){\n\t value = O[index++];\n\t if(value != value)return true;\n\t // Array#toIndex ignores holes, Array#includes - not\n\t } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n\t if(O[index] === el)return IS_INCLUDES || index || 0;\n\t } return !IS_INCLUDES && -1;\n\t };\n\t};\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $defineProperty = __webpack_require__(10)\n\t , createDesc = __webpack_require__(19);\n\t\n\tmodule.exports = function(object, index, value){\n\t if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n\t else object[index] = value;\n\t};\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(4).document && document.documentElement;\n\n/***/ },\n/* 69 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = !__webpack_require__(8) && !__webpack_require__(17)(function(){\n\t return Object.defineProperty(__webpack_require__(31)('div'), 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// check on default Array iterator\n\tvar Iterators = __webpack_require__(5)\n\t , ITERATOR = __webpack_require__(2)('iterator')\n\t , ArrayProto = Array.prototype;\n\t\n\tmodule.exports = function(it){\n\t return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n\t};\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.3 Number.isInteger(number)\n\tvar isObject = __webpack_require__(13)\n\t , floor = Math.floor;\n\tmodule.exports = function isInteger(it){\n\t return !isObject(it) && isFinite(it) && floor(it) === it;\n\t};\n\n/***/ },\n/* 72 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// call something on iterator step with safe closing on error\n\tvar anObject = __webpack_require__(7);\n\tmodule.exports = function(iterator, fn, value, entries){\n\t try {\n\t return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n\t // 7.4.6 IteratorClose(iterator, completion)\n\t } catch(e){\n\t var ret = iterator['return'];\n\t if(ret !== undefined)anObject(ret.call(iterator));\n\t throw e;\n\t }\n\t};\n\n/***/ },\n/* 73 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar create = __webpack_require__(78)\n\t , descriptor = __webpack_require__(19)\n\t , setToStringTag = __webpack_require__(36)\n\t , IteratorPrototype = {};\n\t\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\t__webpack_require__(9)(IteratorPrototype, __webpack_require__(2)('iterator'), function(){ return this; });\n\t\n\tmodule.exports = function(Constructor, NAME, next){\n\t Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n\t setToStringTag(Constructor, NAME + ' Iterator');\n\t};\n\n/***/ },\n/* 74 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar ITERATOR = __webpack_require__(2)('iterator')\n\t , SAFE_CLOSING = false;\n\t\n\ttry {\n\t var riter = [7][ITERATOR]();\n\t riter['return'] = function(){ SAFE_CLOSING = true; };\n\t Array.from(riter, function(){ throw 2; });\n\t} catch(e){ /* empty */ }\n\t\n\tmodule.exports = function(exec, skipClosing){\n\t if(!skipClosing && !SAFE_CLOSING)return false;\n\t var safe = false;\n\t try {\n\t var arr = [7]\n\t , iter = arr[ITERATOR]();\n\t iter.next = function(){ return {done: safe = true}; };\n\t arr[ITERATOR] = function(){ return iter; };\n\t exec(arr);\n\t } catch(e){ /* empty */ }\n\t return safe;\n\t};\n\n/***/ },\n/* 75 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 76 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 77 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// 19.1.2.1 Object.assign(target, source, ...)\n\tvar getKeys = __webpack_require__(18)\n\t , gOPS = __webpack_require__(80)\n\t , pIE = __webpack_require__(35)\n\t , toObject = __webpack_require__(22)\n\t , IObject = __webpack_require__(33)\n\t , $assign = Object.assign;\n\t\n\t// should work with symbols and should have deterministic property order (V8 bug)\n\tmodule.exports = !$assign || __webpack_require__(17)(function(){\n\t var A = {}\n\t , B = {}\n\t , S = Symbol()\n\t , K = 'abcdefghijklmnopqrst';\n\t A[S] = 7;\n\t K.split('').forEach(function(k){ B[k] = k; });\n\t return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n\t}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n\t var T = toObject(target)\n\t , aLen = arguments.length\n\t , index = 1\n\t , getSymbols = gOPS.f\n\t , isEnum = pIE.f;\n\t while(aLen > index){\n\t var S = IObject(arguments[index++])\n\t , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n\t , length = keys.length\n\t , j = 0\n\t , key;\n\t while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n\t } return T;\n\t} : $assign;\n\n/***/ },\n/* 78 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n\tvar anObject = __webpack_require__(7)\n\t , dPs = __webpack_require__(79)\n\t , enumBugKeys = __webpack_require__(32)\n\t , IE_PROTO = __webpack_require__(20)('IE_PROTO')\n\t , Empty = function(){ /* empty */ }\n\t , PROTOTYPE = 'prototype';\n\t\n\t// Create object with fake `null` prototype: use iframe Object with cleared prototype\n\tvar createDict = function(){\n\t // Thrash, waste and sodomy: IE GC bug\n\t var iframe = __webpack_require__(31)('iframe')\n\t , i = enumBugKeys.length\n\t , lt = '<'\n\t , gt = '>'\n\t , iframeDocument;\n\t iframe.style.display = 'none';\n\t __webpack_require__(68).appendChild(iframe);\n\t iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n\t // createDict = iframe.contentWindow.Object;\n\t // html.removeChild(iframe);\n\t iframeDocument = iframe.contentWindow.document;\n\t iframeDocument.open();\n\t iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n\t iframeDocument.close();\n\t createDict = iframeDocument.F;\n\t while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n\t return createDict();\n\t};\n\t\n\tmodule.exports = Object.create || function create(O, Properties){\n\t var result;\n\t if(O !== null){\n\t Empty[PROTOTYPE] = anObject(O);\n\t result = new Empty;\n\t Empty[PROTOTYPE] = null;\n\t // add \"__proto__\" for Object.getPrototypeOf polyfill\n\t result[IE_PROTO] = O;\n\t } else result = createDict();\n\t return Properties === undefined ? result : dPs(result, Properties);\n\t};\n\n\n/***/ },\n/* 79 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP = __webpack_require__(10)\n\t , anObject = __webpack_require__(7)\n\t , getKeys = __webpack_require__(18);\n\t\n\tmodule.exports = __webpack_require__(8) ? Object.defineProperties : function defineProperties(O, Properties){\n\t anObject(O);\n\t var keys = getKeys(Properties)\n\t , length = keys.length\n\t , i = 0\n\t , P;\n\t while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n\t return O;\n\t};\n\n/***/ },\n/* 80 */\n/***/ function(module, exports) {\n\n\texports.f = Object.getOwnPropertySymbols;\n\n/***/ },\n/* 81 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\n\tvar has = __webpack_require__(12)\n\t , toObject = __webpack_require__(22)\n\t , IE_PROTO = __webpack_require__(20)('IE_PROTO')\n\t , ObjectProto = Object.prototype;\n\t\n\tmodule.exports = Object.getPrototypeOf || function(O){\n\t O = toObject(O);\n\t if(has(O, IE_PROTO))return O[IE_PROTO];\n\t if(typeof O.constructor == 'function' && O instanceof O.constructor){\n\t return O.constructor.prototype;\n\t } return O instanceof Object ? ObjectProto : null;\n\t};\n\n/***/ },\n/* 82 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar has = __webpack_require__(12)\n\t , toIObject = __webpack_require__(14)\n\t , arrayIndexOf = __webpack_require__(66)(false)\n\t , IE_PROTO = __webpack_require__(20)('IE_PROTO');\n\t\n\tmodule.exports = function(object, names){\n\t var O = toIObject(object)\n\t , i = 0\n\t , result = []\n\t , key;\n\t for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n\t // Don't enum bug & hidden keys\n\t while(names.length > i)if(has(O, key = names[i++])){\n\t ~arrayIndexOf(result, key) || result.push(key);\n\t }\n\t return result;\n\t};\n\n/***/ },\n/* 83 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getKeys = __webpack_require__(18)\n\t , toIObject = __webpack_require__(14)\n\t , isEnum = __webpack_require__(35).f;\n\tmodule.exports = function(isEntries){\n\t return function(it){\n\t var O = toIObject(it)\n\t , keys = getKeys(O)\n\t , length = keys.length\n\t , i = 0\n\t , result = []\n\t , key;\n\t while(length > i)if(isEnum.call(O, key = keys[i++])){\n\t result.push(isEntries ? [key, O[key]] : O[key]);\n\t } return result;\n\t };\n\t};\n\n/***/ },\n/* 84 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(9);\n\n/***/ },\n/* 85 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(21)\n\t , defined = __webpack_require__(16);\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tmodule.exports = function(TO_STRING){\n\t return function(that, pos){\n\t var s = String(defined(that))\n\t , i = toInteger(pos)\n\t , l = s.length\n\t , a, b;\n\t if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n/***/ },\n/* 86 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(21)\n\t , max = Math.max\n\t , min = Math.min;\n\tmodule.exports = function(index, length){\n\t index = toInteger(index);\n\t return index < 0 ? max(index + length, 0) : min(index, length);\n\t};\n\n/***/ },\n/* 87 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.1 ToPrimitive(input [, PreferredType])\n\tvar isObject = __webpack_require__(13);\n\t// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n\t// and the second argument - flag - preferred type is a string\n\tmodule.exports = function(it, S){\n\t if(!isObject(it))return it;\n\t var fn, val;\n\t if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n\t if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t throw TypeError(\"Can't convert object to primitive value\");\n\t};\n\n/***/ },\n/* 88 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(7)\n\t , get = __webpack_require__(40);\n\tmodule.exports = __webpack_require__(1).getIterator = function(it){\n\t var iterFn = get(it);\n\t if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n\t return anObject(iterFn.call(it));\n\t};\n\n/***/ },\n/* 89 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(28)\n\t , ITERATOR = __webpack_require__(2)('iterator')\n\t , Iterators = __webpack_require__(5);\n\tmodule.exports = __webpack_require__(1).isIterable = function(it){\n\t var O = Object(it);\n\t return O[ITERATOR] !== undefined\n\t || '@@iterator' in O\n\t || Iterators.hasOwnProperty(classof(O));\n\t};\n\n/***/ },\n/* 90 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar ctx = __webpack_require__(30)\n\t , $export = __webpack_require__(3)\n\t , toObject = __webpack_require__(22)\n\t , call = __webpack_require__(72)\n\t , isArrayIter = __webpack_require__(70)\n\t , toLength = __webpack_require__(38)\n\t , createProperty = __webpack_require__(67)\n\t , getIterFn = __webpack_require__(40);\n\t\n\t$export($export.S + $export.F * !__webpack_require__(74)(function(iter){ Array.from(iter); }), 'Array', {\n\t // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n\t from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n\t var O = toObject(arrayLike)\n\t , C = typeof this == 'function' ? this : Array\n\t , aLen = arguments.length\n\t , mapfn = aLen > 1 ? arguments[1] : undefined\n\t , mapping = mapfn !== undefined\n\t , index = 0\n\t , iterFn = getIterFn(O)\n\t , length, result, step, iterator;\n\t if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n\t // if object isn't iterable or it's array with default iterator - use simple case\n\t if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n\t for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n\t createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n\t }\n\t } else {\n\t length = toLength(O.length);\n\t for(result = new C(length); length > index; index++){\n\t createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n\t }\n\t }\n\t result.length = index;\n\t return result;\n\t }\n\t});\n\n\n/***/ },\n/* 91 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(65)\n\t , step = __webpack_require__(75)\n\t , Iterators = __webpack_require__(5)\n\t , toIObject = __webpack_require__(14);\n\t\n\t// 22.1.3.4 Array.prototype.entries()\n\t// 22.1.3.13 Array.prototype.keys()\n\t// 22.1.3.29 Array.prototype.values()\n\t// 22.1.3.30 Array.prototype[@@iterator]()\n\tmodule.exports = __webpack_require__(34)(Array, 'Array', function(iterated, kind){\n\t this._t = toIObject(iterated); // target\n\t this._i = 0; // next index\n\t this._k = kind; // kind\n\t// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , kind = this._k\n\t , index = this._i++;\n\t if(!O || index >= O.length){\n\t this._t = undefined;\n\t return step(1);\n\t }\n\t if(kind == 'keys' )return step(0, index);\n\t if(kind == 'values')return step(0, O[index]);\n\t return step(0, [index, O[index]]);\n\t}, 'values');\n\t\n\t// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\tIterators.Arguments = Iterators.Array;\n\t\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n/***/ },\n/* 92 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.3 Number.isInteger(number)\n\tvar $export = __webpack_require__(3);\n\t\n\t$export($export.S, 'Number', {isInteger: __webpack_require__(71)});\n\n/***/ },\n/* 93 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.1 Object.assign(target, source)\n\tvar $export = __webpack_require__(3);\n\t\n\t$export($export.S + $export.F, 'Object', {assign: __webpack_require__(77)});\n\n/***/ },\n/* 94 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(3);\n\t// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n\t$export($export.S + $export.F * !__webpack_require__(8), 'Object', {defineProperty: __webpack_require__(10).f});\n\n/***/ },\n/* 95 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/tc39/proposal-object-values-entries\n\tvar $export = __webpack_require__(3)\n\t , $entries = __webpack_require__(83)(true);\n\t\n\t$export($export.S, 'Object', {\n\t entries: function entries(it){\n\t return $entries(it);\n\t }\n\t});\n\n/***/ },\n/* 96 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** mdl-ext.min.js\n **/"," \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 c5ca49f245b32caeccb5\n **/","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 ** ./~/core-js/library/modules/_core.js\n ** module id = 1\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_wks.js\n ** module id = 2\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_export.js\n ** module id = 3\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_global.js\n ** module id = 4\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iterators.js\n ** module id = 5\n ** module chunks = 0 1\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/**\n * Due to a bug in mdl-1.1.3 it is not possible to use a globally polyfilled CustomEvent constructor\n * Since I do not care too much about IE11, a brute force approach is sufficient.\n *\n * @param {string} typeArg Is a String representing the name of the event.\n * @param {Object} customEventInit Is an EventInit dictionary, having the following fields:\n * \"bubbles\", optional and defaulting to false, of type Boolean, indicating if the event bubbles or not.\n * \"cancelable\", optional and defaulting to false, of type Boolean, indicating if the event can be canceled or not.\n * \"detail\", optional and defaulting to null, of type any, that is an event-dependent value associated with the event.\n */\n\nexport function createCustomEvent( typeArg, customEventInit = { bubbles: false, cancelable: false, detail: null } ) {\n\n try {\n // Modern browsers\n return new window.CustomEvent(typeArg, customEventInit);\n }\n catch(e) {\n // Copied from https://github.com/webcomponents/webcomponentsjs/blob/v0.7.12/CustomElements.js#L950\n // Copied from http://stackoverflow.com/questions/23349191/event-preventdefault-is-not-working-in-ie-11-for-custom-events\n const ce = document.createEvent('CustomEvent');\n ce.initCustomEvent(typeArg, customEventInit.bubbles, customEventInit.cancelable, customEventInit.detail);\n\n ce.preventDefault = function() {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n };\n return ce;\n }\n // Let old browsers throw whatewer they want to throw\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/custom-event.js\n **/","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 ** ./~/core-js/library/modules/_an-object.js\n ** module id = 7\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_descriptors.js\n ** module id = 8\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_hide.js\n ** module id = 9\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-dp.js\n ** module id = 10\n ** module chunks = 0 1\n **/","\"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 = 11\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_has.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-object.js\n ** module id = 13\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-iobject.js\n ** module id = 14\n ** module chunks = 0 1\n **/","/*\n * Code pulled from:\n * https://github.com/jonathantneal/closest/blob/master/closest.js\n * https://plainjs.com/javascript/traversing/get-closest-element-by-selector-39/\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n * http://stackoverflow.com/questions/18663941/finding-closest-element-without-jquery\n */\n\n/**\n * Element.matches() polyfill\n * The Element.matches() method returns true if the element would be selected by the specified selector string;\n * otherwise, returns false.\n */\nif (typeof Element.prototype.matches !== 'function') {\n Element.prototype.matches = Element.prototype.msMatchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n\n function matches(selector) {\n const element = this;\n const elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n let i = elements.length;\n while (--i >= 0 && elements.item(i) !== element);\n return i > -1;\n };\n}\n\n/**\n * Element.closest() polyfill\n * The Element.closest() method returns the closest ancestor of the current element (or the current element itself)\n * which matches the selectors given in parameter. If there isn't such an ancestor, it returns null.\n */\nif (typeof Element.prototype.closest !== 'function') {\n Element.prototype.closest = function closest(selector) {\n let element = this;\n\n while (element && element.nodeType === Node.ELEMENT_NODE) {\n if(element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n return null;\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/closest-polyfill.js\n **/","// 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 ** ./~/core-js/library/modules/_defined.js\n ** module id = 16\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_fails.js\n ** module id = 17\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 18\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_property-desc.js\n ** module id = 19\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 20\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-integer.js\n ** module id = 21\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-object.js\n ** module id = 22\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\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 * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * rAF based animation loop\n */\n\nclass MdlExtAnimationLoop {\n\n /**\n * @constructor\n *\n * @param interval\n */\n constructor(interval = 17) {\n this.interval = interval;\n this.running_ = false;\n this.rAFId_ = 0;\n this.timeElapsed_ = 0;\n }\n\n /**\n * Set interval between each rAF tick\n * @param interval\n */\n set interval(interval) {\n this.interval_ = interval < 17 ? 17 : interval; // 17 ~ 60fps\n }\n\n /**\n * @returns {boolean|*} true if animation is running\n */\n get running() {\n return this.running_;\n }\n\n /**\n * Cancels animation loop\n */\n cancelRAF() {\n if(this.rAFId_ !== 0) {\n window.cancelAnimationFrame(this.rAFId_);\n this.rAFId_ = 0;\n }\n this.running_ = false;\n this.timeElapsed_ = 0;\n }\n\n /**\n * Start rAF animation loop\n * @param tick callback function\n */\n start( tick ) {\n this.running_ = true;\n let timeStart = Date.now();\n\n const loop = now => {\n if (this.running_) {\n this.rAFId_ = window.requestAnimationFrame( () => loop( Date.now() ));\n this.timeElapsed_ += now - timeStart;\n\n if(this.timeElapsed_ >= this.interval_) {\n this.running_ = tick( this.timeElapsed_ );\n if( (this.timeElapsed_ -= this.interval_) > this.interval_) {\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 this.timeElapsed_ = 0;\n }\n }\n timeStart = now;\n }\n };\n loop(timeStart);\n return this;\n }\n\n /**\n * Stops animation\n */\n stop() {\n this.cancelRAF();\n return this;\n }\n}\n\nexport default MdlExtAnimationLoop;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/animationloop.js\n **/","// See: http://robertpenner.com/easing/\n\nexport const 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\nexport const 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\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/easing.js\n **/","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 = 26\n ** module chunks = 0 1\n **/","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 = 27\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_classof.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_cof.js\n ** module id = 29\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_ctx.js\n ** module id = 30\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_dom-create.js\n ** module id = 31\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 32\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_iobject.js\n ** module id = 33\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_iter-define.js\n ** module id = 34\n ** module chunks = 0 1\n **/","exports.f = {}.propertyIsEnumerable;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-pie.js\n ** module id = 35\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_set-to-string-tag.js\n ** module id = 36\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-length.js\n ** module id = 38\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_uid.js\n ** module id = 39\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 40\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 41\n ** module chunks = 0 1\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 * 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 { createCustomEvent } from '../utils/custom-event';\n\n\n(function() {\n 'use strict';\n\n const VK_ENTER = 13;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\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 ARIA_MULTISELECTABLE = 'aria-multiselectable';\n const ARIA_EXPANDED = 'aria-expanded';\n const ARIA_HIDDEN = 'aria-hidden';\n const ARIA_SELECTED = 'aria-selected';\n const IS_EXPANDED = 'is-expanded';\n const IS_UPGRADED = 'is-upgraded';\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 /**\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 // 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 = createCustomEvent('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 = e => {\n e.preventDefault();\n e.stopPropagation();\n this.toggleTab_(panel, tab, tabpanel);\n selectTab();\n };\n\n const tabFocusHandler = e => {\n e.preventDefault();\n e.stopPropagation();\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 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 * Downgrade component\n * E.g remove listeners and clean up resources\n *\n * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\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 * @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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\nimport MdlExtAnimationLoop from '../utils/animationloop';\nimport { inOutQuintic } from '../utils/easing';\n\n(function() {\n 'use strict';\n\n const VK_TAB = 9;\n const VK_ENTER = 13;\n const VK_ESC = 27;\n const VK_SPACE = 32;\n const VK_PAGE_UP = 33;\n const VK_PAGE_DOWN = 34;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\n const IS_FOCUSED = 'is-focused';\n //const CAROUSEL = 'mdlext-carousel';\n const SLIDE = 'mdlext-carousel__slide';\n const ROLE = 'list';\n const SLIDE_ROLE = 'listitem';\n\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_COMPONENT = 'MaterialRipple';\n const RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n const RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n const RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\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: new MdlExtAnimationLoop(1000)\n };\n\n this.scrollAnimation_ = new MdlExtAnimationLoop(33);\n\n this.drawing_ = false; // Used by MutationObserver\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.running) {\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.running) {\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().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 this.command_(action);\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 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 = createCustomEvent('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 // 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(`.${RIPPLE_CONTAINER}`)) {\n const rippleContainer = document.createElement('span');\n rippleContainer.classList.add(RIPPLE_CONTAINER);\n rippleContainer.classList.add(RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(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, 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(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 const s = this.element_.getAttribute('data-config').replace(/'/g, '\"');\n try {\n const c = JSON.parse(s);\n Object.assign(this.config_, c);\n }\n catch (e) {\n throw new Error(`Failed to parse \"data-config = ${s}\". Error: ${e.message}`);\n }\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 if(this.config_.interactive) {\n\n // Ripple\n const hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n if (hasRippleEffect) {\n this.element_.classList.add(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 // Click is handled by drag\n this.element_.addEventListener('click', e => e.preventDefault(), false);\n }\n\n // Listen to custom 'command' event\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n // Detect insertions into components DOM\n const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n // jsdom does not support MutationObserver - so this is not testable\n /* istanbul ignore next */\n new MutationObserver( mutations => {\n mutations.forEach( mutation => {\n if (mutation.addedNodes.length > 0) {\n window.requestAnimationFrame(() => this.upgradeSlides() );\n }\n });\n }).observe( this.element_, {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: false\n });\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n MaterialExtCarousel.prototype.mdlDowngrade_ = function() {\n 'use strict';\n console.log('***** MaterialExtCarousel.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: MaterialExtCarousel,\n classAsString: 'MaterialExtCarousel',\n cssClass: 'mdlext-js-carousel',\n widget: true\n });\n\n})();\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/carousel/carousel.js\n **/","'use strict';\n//import 'utils/closest-polyfill';\nimport 'utils/custom-event';\nimport 'utils/animationloop';\nimport 'utils/easing';\nimport 'sticky-header/sticky-header';\nimport 'selectfield/selectfield';\nimport 'accordion/accordion';\nimport 'lightboard/lightboard';\nimport 'lightbox/lightbox';\nimport 'carousel/carousel';\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\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 * 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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_ENTER = 13;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\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 const RIPPLE_COMPONENT = 'MaterialRipple';\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container';\n const RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n const RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\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 * 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(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n\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\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 createCustomEvent('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(`.${RIPPLE_CONTAINER}`)) {\n const a = slide.querySelector(`.${SLIDE_TABSTOP}`);\n if(a) {\n const rippleContainer = a;\n rippleContainer.classList.add(RIPPLE_CONTAINER);\n rippleContainer.classList.add(RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(RIPPLE);\n rippleContainer.appendChild(ripple);\n componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n }\n }\n };\n\n const hasRippleEffect = this.element_.classList.contains(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 // 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 * @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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_ESC = 27;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\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 // false: allow rAF to be called, true: blocks rAF\n this.drawing_ = false;\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(createCustomEvent('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 dialog = lightboxElement.parentNode.nodeName === 'DIALOG' ? lightboxElement.parentNode : null;\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); // .bind(this) does not work here\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\n // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n window.addEventListener('resize', () => {\n if(!this.drawing_) {\n // Assumes MDL has polyfilled rAF\n window.requestAnimationFrame( () => {\n repositionDialog_(this.element_);\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\n });\n\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n\n MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n\n if (this.element_) {\n [...this.element_.querySelectorAll(`.${BUTTON}`)].forEach(\n button => button.removeEventListener('click', this.buttonClickHandler_)\n );\n\n this.element_.removeEventListener('keydown', this.keyDownHandler_);\n }\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/** WEBPACK FOOTER **\n ** ./src/lightbox/lightbox.js\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 * 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\n(function() {\n 'use strict';\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 * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\n MaterialExtSelectfield.prototype.Constant_ = {\n };\n\n /**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\n MaterialExtSelectfield.prototype.CssClasses_ = {\n LABEL: 'mdlext-selectfield__label',\n INPUT: 'mdlext-selectfield__select',\n IS_DIRTY: 'is-dirty',\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_INVALID: 'is-invalid',\n IS_UPGRADED: 'is-upgraded'\n };\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(this.CssClasses_.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(this.CssClasses_.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(this.CssClasses_.IS_DISABLED);\n } else {\n this.element_.classList.remove(this.CssClasses_.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 /*eslint no-extra-boolean-cast: 0*/\n if (Boolean(this.element_.querySelector(':focus'))) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n } else {\n this.element_.classList.remove(this.CssClasses_.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(this.CssClasses_.IS_DIRTY);\n } else {\n this.element_.classList.remove(this.CssClasses_.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(`.${this.CssClasses_.LABEL}`);\n this.select_ = this.element_.querySelector(`.${this.CssClasses_.INPUT}`);\n\n if (this.select_) {\n this.boundUpdateClassesHandler = this.updateClasses_.bind(this);\n this.boundFocusHandler = this.onFocus_.bind(this);\n this.boundBlurHandler = this.onBlur_.bind(this);\n this.boundResetHandler = this.onReset_.bind(this);\n this.select_.addEventListener('change', this.boundUpdateClassesHandler);\n this.select_.addEventListener('focus', this.boundFocusHandler);\n this.select_.addEventListener('blur', this.boundBlurHandler);\n this.select_.addEventListener('reset', this.boundResetHandler);\n\n const invalid = this.element_.classList.contains(this.CssClasses_.IS_INVALID);\n this.updateClasses_();\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n\n if (invalid) {\n this.element_.classList.add(this.CssClasses_.IS_INVALID);\n }\n if (this.select_.hasAttribute('autofocus')) {\n this.element_.focus();\n this.checkFocus();\n }\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: 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 * @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\n(function() {\n 'use strict';\n\n const IS_UPGRADED = 'is-upgraded';\n const CONTENT_CLASS = 'mdl-layout__content';\n const IS_SCROLL_CLASS = 'mdlext-is-scroll';\n //const STICKY_HEADER_CLASS = 'mdlext-layout__sticky-header';\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 // false: allow rAF to be called, true: blocks rAF\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 /**\n * Adjust header width when window resizes or oreientation changes\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.resizeHandler_ = function( /* event */ ) {\n\n // See: https://developer.mozilla.org/en-US/docs/Web/Events/resize\n if(!this.drawing_) {\n // Assumes MDL has polyfilled rAF\n window.requestAnimationFrame( () => {\n this.recalcWidth_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\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 = '0';\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 * Scroll header when content scrolls\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.scrollHandler_ = function( /* event */ ) {\n // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n if(!this.drawing_) {\n window.requestAnimationFrame( () => {\n this.reposition_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\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 * Initialize component\n */\n MaterialExtStickyHeader.prototype.init = function() {\n\n if (this.header_) {\n this.content_ = this.header_.parentNode.querySelector(`.${CONTENT_CLASS}`) || 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 // Adjust header width if content changes (e.g. in a SPA)\n const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n\n // jsdom does not support MutationObserver - so this is not testable\n /* istanbul ignore next */\n new MutationObserver( ( /*mutations*/ ) => {\n\n if(!this.drawing_) {\n window.requestAnimationFrame( () => {\n this.updatePosition_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\n\n }).observe( this.content_, {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: true\n });\n\n // Set initial position\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n 'use strict';\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 **/","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 = 49\n ** module chunks = 0 1\n **/","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 = 50\n ** module chunks = 0 1\n **/","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 = 51\n ** module chunks = 0 1\n **/","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 = 52\n ** module chunks = 0 1\n **/","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 = 53\n ** module chunks = 0 1\n **/","\"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 = 54\n ** module chunks = 0 1\n **/","\"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 = 55\n ** module chunks = 0 1\n **/","\"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 = 56\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/array/from.js\n ** module id = 57\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 58\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 59\n ** module chunks = 0 1\n **/","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/number/is-integer.js\n ** module id = 60\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 61\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 62\n ** module chunks = 0 1\n **/","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/entries.js\n ** module id = 63\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_a-function.js\n ** module id = 64\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_add-to-unscopables.js\n ** module id = 65\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_array-includes.js\n ** module id = 66\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_create-property.js\n ** module id = 67\n ** module chunks = 0 1\n **/","module.exports = require('./_global').document && document.documentElement;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_html.js\n ** module id = 68\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 69\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_is-array-iter.js\n ** module id = 70\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_is-integer.js\n ** module id = 71\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_iter-call.js\n ** module id = 72\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_iter-create.js\n ** module id = 73\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_iter-detect.js\n ** module id = 74\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-step.js\n ** module id = 75\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_library.js\n ** module id = 76\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_object-assign.js\n ** module id = 77\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-create.js\n ** module id = 78\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 79\n ** module chunks = 0 1\n **/","exports.f = Object.getOwnPropertySymbols;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gops.js\n ** module id = 80\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 81\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 82\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-to-array.js\n ** module id = 83\n ** module chunks = 0 1\n **/","module.exports = require('./_hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_redefine.js\n ** module id = 84\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_string-at.js\n ** module id = 85\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_to-index.js\n ** module id = 86\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-primitive.js\n ** module id = 87\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 88\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 89\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.array.from.js\n ** module id = 90\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 91\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es6.number.is-integer.js\n ** module id = 92\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 93\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/es6.object.define-property.js\n ** module id = 94\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es7.object.entries.js\n ** module id = 95\n ** module chunks = 0 1\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///mdl-ext.min.js?c961","webpack:///webpack/bootstrap 8d566557da459e6b0e58?7941","webpack:///./~/core-js/library/modules/_core.js?1b62","webpack:///./~/core-js/library/modules/_wks.js?3027","webpack:///./~/core-js/library/modules/_export.js?ece2","webpack:///./~/core-js/library/modules/_global.js?77aa","webpack:///./~/core-js/library/modules/_iterators.js?aff7","webpack:///./src/utils/custom-event.js?bfbd","webpack:///./~/core-js/library/modules/_an-object.js?0da3","webpack:///./~/core-js/library/modules/_descriptors.js?7051","webpack:///./~/core-js/library/modules/_hide.js?a6da","webpack:///./~/core-js/library/modules/_object-dp.js?4116","webpack:///./~/babel-runtime/helpers/toConsumableArray.js?1825","webpack:///./~/core-js/library/modules/_has.js?d850","webpack:///./~/core-js/library/modules/_is-object.js?24c8","webpack:///./~/core-js/library/modules/_to-iobject.js?6946","webpack:///./src/utils/closest-polyfill.js?bd65","webpack:///./~/core-js/library/modules/_defined.js?45d3","webpack:///./~/core-js/library/modules/_fails.js?935d","webpack:///./~/core-js/library/modules/_object-keys.js?f5bc","webpack:///./~/core-js/library/modules/_property-desc.js?1e86","webpack:///./~/core-js/library/modules/_shared-key.js?2a6c","webpack:///./~/core-js/library/modules/_to-integer.js?f65f","webpack:///./~/core-js/library/modules/_to-object.js?b5c0","webpack:///./~/core-js/library/modules/es6.string.iterator.js?fe18","webpack:///./src/utils/animationloop.js?92de","webpack:///./src/utils/easing.js?f6e9","webpack:///./~/babel-runtime/core-js/get-iterator.js?1b08","webpack:///./~/babel-runtime/core-js/number/is-integer.js?14ca","webpack:///./~/core-js/library/modules/_classof.js?b4b3","webpack:///./~/core-js/library/modules/_cof.js?48ea","webpack:///./~/core-js/library/modules/_ctx.js?ce00","webpack:///./~/core-js/library/modules/_dom-create.js?ab44","webpack:///./~/core-js/library/modules/_enum-bug-keys.js?7598","webpack:///./~/core-js/library/modules/_iobject.js?5cf9","webpack:///./~/core-js/library/modules/_iter-define.js?9a94","webpack:///./~/core-js/library/modules/_object-pie.js?d0d2","webpack:///./~/core-js/library/modules/_set-to-string-tag.js?c945","webpack:///./~/core-js/library/modules/_shared.js?7b6c","webpack:///./~/core-js/library/modules/_to-length.js?62a7","webpack:///./~/core-js/library/modules/_uid.js?e8cd","webpack:///./~/core-js/library/modules/core.get-iterator-method.js?9c88","webpack:///./~/core-js/library/modules/web.dom.iterable.js?bf0e","webpack:///./src/accordion/accordion.js?021c","webpack:///./src/carousel/carousel.js?7189","webpack:///./src/index.js?9552","webpack:///./src/lightboard/lightboard.js?4a51","webpack:///./src/lightbox/lightbox.js?4a9b","webpack:///./src/selectfield/selectfield.js?4310","webpack:///./src/sticky-header/sticky-header.js?0ce9","webpack:///./~/babel-runtime/core-js/array/from.js?efc2","webpack:///./~/babel-runtime/core-js/is-iterable.js?350e","webpack:///./~/babel-runtime/core-js/object/assign.js?e6ca","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/babel-runtime/core-js/object/entries.js?41f9","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/helpers/slicedToArray.js?39c4","webpack:///./~/core-js/library/fn/array/from.js?669d","webpack:///./~/core-js/library/fn/get-iterator.js?2cf7","webpack:///./~/core-js/library/fn/is-iterable.js?0bd2","webpack:///./~/core-js/library/fn/number/is-integer.js?0be2","webpack:///./~/core-js/library/fn/object/assign.js?80e4","webpack:///./~/core-js/library/fn/object/define-property.js?b7d8","webpack:///./~/core-js/library/fn/object/entries.js?390f","webpack:///./~/core-js/library/modules/_a-function.js?d53e","webpack:///./~/core-js/library/modules/_add-to-unscopables.js?d5e8","webpack:///./~/core-js/library/modules/_array-includes.js?6199","webpack:///./~/core-js/library/modules/_create-property.js?1ad1","webpack:///./~/core-js/library/modules/_html.js?e5af","webpack:///./~/core-js/library/modules/_ie8-dom-define.js?bd1f","webpack:///./~/core-js/library/modules/_is-array-iter.js?a4b3","webpack:///./~/core-js/library/modules/_is-integer.js?0b73","webpack:///./~/core-js/library/modules/_iter-call.js?5189","webpack:///./~/core-js/library/modules/_iter-create.js?0127","webpack:///./~/core-js/library/modules/_iter-detect.js?0a91","webpack:///./~/core-js/library/modules/_iter-step.js?e209","webpack:///./~/core-js/library/modules/_library.js?2c80","webpack:///./~/core-js/library/modules/_object-assign.js?5c0c","webpack:///./~/core-js/library/modules/_object-create.js?d8cf","webpack:///./~/core-js/library/modules/_object-dps.js?47fd","webpack:///./~/core-js/library/modules/_object-gops.js?a5fb","webpack:///./~/core-js/library/modules/_object-gpo.js?d47d","webpack:///./~/core-js/library/modules/_object-keys-internal.js?fcea","webpack:///./~/core-js/library/modules/_object-to-array.js?ae83","webpack:///./~/core-js/library/modules/_redefine.js?1455","webpack:///./~/core-js/library/modules/_string-at.js?413a","webpack:///./~/core-js/library/modules/_to-index.js?9fd4","webpack:///./~/core-js/library/modules/_to-primitive.js?49a4","webpack:///./~/core-js/library/modules/core.get-iterator.js?aca7","webpack:///./~/core-js/library/modules/core.is-iterable.js?77cc","webpack:///./~/core-js/library/modules/es6.array.from.js?ce7d","webpack:///./~/core-js/library/modules/es6.array.iterator.js?1e09","webpack:///./~/core-js/library/modules/es6.number.is-integer.js?bf65","webpack:///./~/core-js/library/modules/es6.object.assign.js?9007","webpack:///./~/core-js/library/modules/es6.object.define-property.js?c82c","webpack:///./~/core-js/library/modules/es7.object.entries.js?86f8"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","core","version","__e","store","uid","Symbol","USE_SYMBOL","$exports","name","global","ctx","hide","PROTOTYPE","$export","type","source","key","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","target","undefined","C","a","b","arguments","length","apply","Function","virtual","R","U","window","Math","self","__g","createCustomEvent","typeArg","customEventInit","bubbles","cancelable","detail","CustomEvent","e","ce","document","createEvent","initCustomEvent","preventDefault","Object","defineProperty","get","value","isObject","it","TypeError","dP","createDesc","object","f","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","_interopRequireDefault","obj","__esModule","default","_from","_from2","arr","Array","isArray","i","arr2","hasOwnProperty","IObject","defined","Element","prototype","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","element","elements","ownerDocument","querySelectorAll","item","closest","nodeType","Node","ELEMENT_NODE","parentNode","exec","$keys","enumBugKeys","keys","bitmap","enumerable","configurable","writable","shared","ceil","floor","isNaN","$at","String","iterated","_t","_i","point","index","done","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","MdlExtAnimationLoop","interval","running_","rAFId_","timeElapsed_","cancelAnimationFrame","tick","_this","timeStart","Date","now","loop","requestAnimationFrame","interval_","cancelRAF","set","easeInOutQuad","t","d","inOutQuintic","ts","tc","cof","TAG","ARG","tryGet","T","callee","toString","slice","aFunction","fn","that","is","createElement","split","propertyIsEnumerable","LIBRARY","redefine","has","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","def","tag","stat","SHARED","toInteger","min","px","random","concat","classof","getIteratorMethod","TO_STRING_TAG","collections","Collection","_toConsumableArray2","_toConsumableArray3","_customEvent","VK_ENTER","VK_SPACE","VK_END","VK_HOME","VK_ARROW_LEFT","VK_ARROW_UP","VK_ARROW_RIGHT","VK_ARROW_DOWN","ACCORDION","ACCORDION_VERTICAL","ACCORDION_HORIZONTAL","PANEL","PANEL_ROLE","TAB","TAB_CAPTION","TAB_ROLE","TABPANEL","TABPANEL_ROLE","ARIA_MULTISELECTABLE","ARIA_EXPANDED","ARIA_HIDDEN","ARIA_SELECTED","IS_EXPANDED","IS_UPGRADED","RIPPLE_EFFECT","RIPPLE","ANIMATION_EFFECT","ANIMATION","MaterialExtAccordion","element_","init","classList","contains","Error","setAttribute","hasAttribute","removeEventListener","commandHandler_","addEventListener","bind","forEach","panel","upgradeTab","add","accordionPanelElements","tab","querySelector","tabpanel","event","stopPropagation","command","dispatchToggleEvent_","state","dispatchEvent","openTab_","removeAttribute","closeTab_","remove","toggleTab_","getAttribute","toLowerCase","closeTabs_","openTabs_","_this2","filter","closedItem","_this3","tabElement","_this4","_accordionPanelElemen","disableTab","enableTab","calcMaxTabCaptionWidth","tabCaption","w","children","el","reduce","v","offsetWidth","maxWidth","clientHeight","style","selectTab","selectedTab","tabClickHandler","tabFocusHandler","tabpanelClickHandler","tabpanelFocusHandler","tabKeydownHandler","keyCode","nextTab","nextPanel","previousElementSibling","nextElementSibling","focus","_this5","openTab","_accordionPanelElemen2","closeTab","_accordionPanelElemen3","toggleTab","_accordionPanelElemen4","action","componentHandler","register","constructor","classAsString","cssClass","widget","_isInteger","_isInteger2","_assign","_assign2","_animationloop","_animationloop2","_easing","VK_TAB","VK_ESC","VK_PAGE_UP","VK_PAGE_DOWN","IS_FOCUSED","SLIDE","ROLE","SLIDE_ROLE","RIPPLE_COMPONENT","RIPPLE_CONTAINER","RIPPLE_EFFECT_IGNORE_EVENTS","MaterialExtCarousel","config_","interactive","autostart","animationLoop","scrollAnimation_","startSlideShow_","nextSlide","slide","animateScroll_","moveSlideIntoViewport_","emitSelectEvent_","nextScroll","direction","nextDirection","scrollLeft","scrollWidth","clientWidth","x","max","running","start","cancelSlideShow_","stop","newPosition","newDuration","completedCallback","distance","duration","abs","timeElapsed","command_","setAriaSelected_","slides","getSlidesInViewport_","keyDownHandler_","getSlide_","shiftKey","setFocus_","dragHandler_","updating","rAFDragId","startX","clientX","touches","prevX","targetElement","update","currentX","dx","drag","endDrag","focusHandler_","blurHandler_","evt","carouselRect","getBoundingClientRect","slidesInViewport","slideRect","left","right","_x","addRipple_","rippleContainer","ripple","appendChild","img","title","upgradeElement","stopAnimation","upgradeSlides","hasRippleEffect","getConfig","s","replace","JSON","parse","message","LIGHTBOARD_ROLE","SLIDE_TABSTOP","MaterialExtLightboard","getSlide","keydownHandler","clickHandler","focusHandler","selectSlide_","selectedSlide","dispatchSelectEvent_","addRipple","firstSlide","lastSlide","prevSlide","_slicedToArray2","_slicedToArray3","_entries","_entries2","_getIterator2","_getIterator3","LIGHTBOX","LIGHTBOX_SLIDER","LIGHTBOX_SLIDER_SLIDE","STICKY_FOOTER","BUTTON","MaterialExtLightbox","drawing_","dispatchAction_","buttonClickHandler_","n","repositionDialog_","lightboxElement","footerHeight","footer","isSticky","offsetHeight","reposition","dialog","fh","getComputedStyle","position","scrollTop","body","documentElement","topValue","innerHeight","top","nodeName","width","naturalWidth","vh","imgLoadHandler_","imgDragHandler_","setStyles","properties","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_step$value","err","opacity","slider","height","textContent","line-height","font-size","text-align","background-image","src","offsetLeft","removeChild","button","figcaption","MaterialExtSelectfield","Constant_","CssClasses_","LABEL","INPUT","IS_DIRTY","IS_DISABLED","IS_INVALID","onFocus_","onBlur_","onReset_","updateClasses_","checkDisabled","checkValidity","checkDirty","checkFocus","select_","disabled","Boolean","disable","enable","change","label_","boundUpdateClassesHandler","boundFocusHandler","boundBlurHandler","boundResetHandler","invalid","CONTENT_CLASS","IS_SCROLL_CLASS","MaterialExtStickyHeader","header_","content_","lastScrollTop_","recalcWidth_","resizeHandler_","reposition_","currentContentScrollTop","scrollDiff","headerTop","parseInt","getPropertyValue","_headerTop","scrollHeight","scrollHandler_","updatePosition_","paddingTop","MutationObserver","WebKitMutationObserver","MozMutationObserver","observe","attributes","childList","characterData","subtree","instance","_defineProperty","_defineProperty2","defineProperties","props","descriptor","protoProps","staticProps","_isIterable2","_isIterable3","sliceIterator","_arr","_n","_d","_e","_s","push","from","Number","isInteger","assign","$Object","desc","toIObject","toLength","toIndex","IS_INCLUDES","$this","fromIndex","$defineProperty","ArrayProto","isFinite","iterator","ret","create","SAFE_CLOSING","riter","skipClosing","safe","iter","getKeys","gOPS","pIE","toObject","$assign","A","K","k","join","aLen","getSymbols","isEnum","j","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","lt","gt","display","contentWindow","open","write","close","Properties","result","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","isEntries","TO_STRING","pos","l","charCodeAt","charAt","val","valueOf","getIterator","iterFn","isIterable","isArrayIter","createProperty","getIterFn","arrayLike","step","mapfn","mapping","addToUnscopables","_k","Arguments"],"mappings":"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","file":"mdl-ext.min.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 **/","(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 /******/ (function(modules) { // webpackBootstrap\n/******/ \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/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(96);\n\tmodule.exports = __webpack_require__(44);\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tvar core = module.exports = {version: '2.4.0'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar store = __webpack_require__(37)('wks')\n\t , uid = __webpack_require__(39)\n\t , Symbol = __webpack_require__(4).Symbol\n\t , USE_SYMBOL = typeof Symbol == 'function';\n\t\n\tvar $exports = module.exports = function(name){\n\t return store[name] || (store[name] =\n\t USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n\t};\n\t\n\t$exports.store = store;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(4)\n\t , core = __webpack_require__(1)\n\t , ctx = __webpack_require__(30)\n\t , hide = __webpack_require__(9)\n\t , PROTOTYPE = 'prototype';\n\t\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , expProto = exports[PROTOTYPE]\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && target[key] !== undefined;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(a, b, c){\n\t if(this instanceof C){\n\t switch(arguments.length){\n\t case 0: return new C;\n\t case 1: return new C(a);\n\t case 2: return new C(a, b);\n\t } return new C(a, b, c);\n\t } return C.apply(this, arguments);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n\t if(IS_PROTO){\n\t (exports.virtual || (exports.virtual = {}))[key] = out;\n\t // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n\t if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n\t }\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\t$export.U = 64; // safe\n\t$export.R = 128; // real proto method for `library` \n\tmodule.exports = $export;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = {};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.createCustomEvent = createCustomEvent;\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/**\n\t * Due to a bug in mdl-1.1.3 it is not possible to use a globally polyfilled CustomEvent constructor\n\t * Since I do not care too much about IE11, a brute force approach is sufficient.\n\t *\n\t * @param {string} typeArg Is a String representing the name of the event.\n\t * @param {Object} customEventInit Is an EventInit dictionary, having the following fields:\n\t * \"bubbles\", optional and defaulting to false, of type Boolean, indicating if the event bubbles or not.\n\t * \"cancelable\", optional and defaulting to false, of type Boolean, indicating if the event can be canceled or not.\n\t * \"detail\", optional and defaulting to null, of type any, that is an event-dependent value associated with the event.\n\t */\n\t\n\tfunction createCustomEvent(typeArg) {\n\t var customEventInit = arguments.length <= 1 || arguments[1] === undefined ? { bubbles: false, cancelable: false, detail: null } : arguments[1];\n\t\n\t\n\t try {\n\t // Modern browsers\n\t return new window.CustomEvent(typeArg, customEventInit);\n\t } catch (e) {\n\t // Copied from https://github.com/webcomponents/webcomponentsjs/blob/v0.7.12/CustomElements.js#L950\n\t // Copied from http://stackoverflow.com/questions/23349191/event-preventdefault-is-not-working-in-ie-11-for-custom-events\n\t var ce = document.createEvent('CustomEvent');\n\t ce.initCustomEvent(typeArg, customEventInit.bubbles, customEventInit.cancelable, customEventInit.detail);\n\t\n\t ce.preventDefault = function () {\n\t Object.defineProperty(this, 'defaultPrevented', {\n\t get: function get() {\n\t return true;\n\t }\n\t });\n\t };\n\t return ce;\n\t }\n\t // Let old browsers throw whatewer they want to throw\n\t}\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(13);\n\tmodule.exports = function(it){\n\t if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t return it;\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(17)(function(){\n\t return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP = __webpack_require__(10)\n\t , createDesc = __webpack_require__(19);\n\tmodule.exports = __webpack_require__(8) ? function(object, key, value){\n\t return dP.f(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t object[key] = value;\n\t return object;\n\t};\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(7)\n\t , IE8_DOM_DEFINE = __webpack_require__(69)\n\t , toPrimitive = __webpack_require__(87)\n\t , dP = Object.defineProperty;\n\t\n\texports.f = __webpack_require__(8) ? Object.defineProperty : function defineProperty(O, P, Attributes){\n\t anObject(O);\n\t P = toPrimitive(P, true);\n\t anObject(Attributes);\n\t if(IE8_DOM_DEFINE)try {\n\t return dP(O, P, Attributes);\n\t } catch(e){ /* empty */ }\n\t if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n\t if('value' in Attributes)O[P] = Attributes.value;\n\t return O;\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _from = __webpack_require__(49);\n\t\n\tvar _from2 = _interopRequireDefault(_from);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (arr) {\n\t if (Array.isArray(arr)) {\n\t for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n\t arr2[i] = arr[i];\n\t }\n\t\n\t return arr2;\n\t } else {\n\t return (0, _from2.default)(arr);\n\t }\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t return hasOwnProperty.call(it, key);\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(33)\n\t , defined = __webpack_require__(16);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/*\n\t * Code pulled from:\n\t * https://github.com/jonathantneal/closest/blob/master/closest.js\n\t * https://plainjs.com/javascript/traversing/get-closest-element-by-selector-39/\n\t * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n\t * http://stackoverflow.com/questions/18663941/finding-closest-element-without-jquery\n\t */\n\t\n\t/**\n\t * Element.matches() polyfill\n\t * The Element.matches() method returns true if the element would be selected by the specified selector string;\n\t * otherwise, returns false.\n\t */\n\tif (typeof Element.prototype.matches !== 'function') {\n\t Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.webkitMatchesSelector || function matches(selector) {\n\t var element = this;\n\t var elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t var i = elements.length;\n\t while (--i >= 0 && elements.item(i) !== element) {}\n\t return i > -1;\n\t };\n\t}\n\t\n\t/**\n\t * Element.closest() polyfill\n\t * The Element.closest() method returns the closest ancestor of the current element (or the current element itself)\n\t * which matches the selectors given in parameter. If there isn't such an ancestor, it returns null.\n\t */\n\tif (typeof Element.prototype.closest !== 'function') {\n\t Element.prototype.closest = function closest(selector) {\n\t var element = this;\n\t\n\t while (element && element.nodeType === Node.ELEMENT_NODE) {\n\t if (element.matches(selector)) {\n\t return element;\n\t }\n\t element = element.parentNode;\n\t }\n\t return null;\n\t };\n\t}\n\n/***/ },\n/* 16 */\n/***/ function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 / 15.2.3.14 Object.keys(O)\n\tvar $keys = __webpack_require__(82)\n\t , enumBugKeys = __webpack_require__(32);\n\t\n\tmodule.exports = Object.keys || function keys(O){\n\t return $keys(O, enumBugKeys);\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar shared = __webpack_require__(37)('keys')\n\t , uid = __webpack_require__(39);\n\tmodule.exports = function(key){\n\t return shared[key] || (shared[key] = uid(key));\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil\n\t , floor = Math.floor;\n\tmodule.exports = function(it){\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(16);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(85)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(34)(String, 'String', function(iterated){\n\t this._t = String(iterated); // target\n\t this._i = 0; // next index\n\t// 21.1.5.2.1 %StringIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , index = this._i\n\t , point;\n\t if(index >= O.length)return {value: undefined, done: true};\n\t point = $at(O, index);\n\t this._i += point.length;\n\t return {value: point, done: false};\n\t});\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _classCallCheck2 = __webpack_require__(54);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(55);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * rAF based animation loop\n\t */\n\t\n\tvar MdlExtAnimationLoop = function () {\n\t\n\t /**\n\t * @constructor\n\t *\n\t * @param interval\n\t */\n\t function MdlExtAnimationLoop() {\n\t var interval = arguments.length <= 0 || arguments[0] === undefined ? 17 : arguments[0];\n\t (0, _classCallCheck3.default)(this, MdlExtAnimationLoop);\n\t\n\t this.interval = interval;\n\t this.running_ = false;\n\t this.rAFId_ = 0;\n\t this.timeElapsed_ = 0;\n\t }\n\t\n\t /**\n\t * Set interval between each rAF tick\n\t * @param interval\n\t */\n\t\n\t\n\t (0, _createClass3.default)(MdlExtAnimationLoop, [{\n\t key: \"cancelRAF\",\n\t\n\t\n\t /**\n\t * Cancels animation loop\n\t */\n\t value: function cancelRAF() {\n\t if (this.rAFId_ !== 0) {\n\t window.cancelAnimationFrame(this.rAFId_);\n\t this.rAFId_ = 0;\n\t }\n\t this.running_ = false;\n\t this.timeElapsed_ = 0;\n\t }\n\t\n\t /**\n\t * Start rAF animation loop\n\t * @param tick callback function\n\t */\n\t\n\t }, {\n\t key: \"start\",\n\t value: function start(tick) {\n\t var _this = this;\n\t\n\t this.running_ = true;\n\t var timeStart = Date.now();\n\t\n\t var loop = function loop(now) {\n\t if (_this.running_) {\n\t _this.rAFId_ = window.requestAnimationFrame(function () {\n\t return loop(Date.now());\n\t });\n\t _this.timeElapsed_ += now - timeStart;\n\t\n\t if (_this.timeElapsed_ >= _this.interval_) {\n\t _this.running_ = tick(_this.timeElapsed_);\n\t if ((_this.timeElapsed_ -= _this.interval_) > _this.interval_) {\n\t // time elapsed - interval > interval , indicates inactivity\n\t // Could be due to browser minimized, tab changed, screen saver started, computer sleep, and so on\n\t _this.timeElapsed_ = 0;\n\t }\n\t }\n\t timeStart = now;\n\t }\n\t };\n\t loop(timeStart);\n\t return this;\n\t }\n\t\n\t /**\n\t * Stops animation\n\t */\n\t\n\t }, {\n\t key: \"stop\",\n\t value: function stop() {\n\t this.cancelRAF();\n\t return this;\n\t }\n\t }, {\n\t key: \"interval\",\n\t set: function set(interval) {\n\t this.interval_ = interval < 17 ? 17 : interval; // 17 ~ 60fps\n\t }\n\t\n\t /**\n\t * @returns {boolean|*} true if animation is running\n\t */\n\t\n\t }, {\n\t key: \"running\",\n\t get: function get() {\n\t return this.running_;\n\t }\n\t }]);\n\t return MdlExtAnimationLoop;\n\t}();\n\t\n\texports.default = MdlExtAnimationLoop;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t// See: http://robertpenner.com/easing/\n\t\n\tvar easeInOutQuad = exports.easeInOutQuad = function easeInOutQuad(t, b, c, d) {\n\t t /= d / 2;\n\t if (t < 1) return c / 2 * t * t + b;\n\t t--;\n\t return -c / 2 * (t * (t - 2) - 1) + b;\n\t};\n\t\n\tvar inOutQuintic = exports.inOutQuintic = function inOutQuintic(t, b, c, d) {\n\t var ts = (t /= d) * t;\n\t var tc = ts * t;\n\t return b + c * (6 * tc * ts + -15 * ts * ts + 10 * tc);\n\t};\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(58), __esModule: true };\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(60), __esModule: true };\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// getting tag from 19.1.3.6 Object.prototype.toString()\n\tvar cof = __webpack_require__(29)\n\t , TAG = __webpack_require__(2)('toStringTag')\n\t // ES3 wrong here\n\t , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\t\n\t// fallback for IE11 Script Access Denied error\n\tvar tryGet = function(it, key){\n\t try {\n\t return it[key];\n\t } catch(e){ /* empty */ }\n\t};\n\t\n\tmodule.exports = function(it){\n\t var O, T, B;\n\t return it === undefined ? 'Undefined' : it === null ? 'Null'\n\t // @@toStringTag case\n\t : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n\t // builtinTag case\n\t : ARG ? cof(O)\n\t // ES3 arguments fallback\n\t : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(64);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(13)\n\t , document = __webpack_require__(4).document\n\t // in old IE typeof document.createElement is 'object'\n\t , is = isObject(document) && isObject(document.createElement);\n\tmodule.exports = function(it){\n\t return is ? document.createElement(it) : {};\n\t};\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\t// IE 8- don't enum bug keys\n\tmodule.exports = (\n\t 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n\t).split(',');\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(29);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(76)\n\t , $export = __webpack_require__(3)\n\t , redefine = __webpack_require__(84)\n\t , hide = __webpack_require__(9)\n\t , has = __webpack_require__(12)\n\t , Iterators = __webpack_require__(5)\n\t , $iterCreate = __webpack_require__(73)\n\t , setToStringTag = __webpack_require__(36)\n\t , getPrototypeOf = __webpack_require__(81)\n\t , ITERATOR = __webpack_require__(2)('iterator')\n\t , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n\t , FF_ITERATOR = '@@iterator'\n\t , KEYS = 'keys'\n\t , VALUES = 'values';\n\t\n\tvar returnThis = function(){ return this; };\n\t\n\tmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n\t $iterCreate(Constructor, NAME, next);\n\t var getMethod = function(kind){\n\t if(!BUGGY && kind in proto)return proto[kind];\n\t switch(kind){\n\t case KEYS: return function keys(){ return new Constructor(this, kind); };\n\t case VALUES: return function values(){ return new Constructor(this, kind); };\n\t } return function entries(){ return new Constructor(this, kind); };\n\t };\n\t var TAG = NAME + ' Iterator'\n\t , DEF_VALUES = DEFAULT == VALUES\n\t , VALUES_BUG = false\n\t , proto = Base.prototype\n\t , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n\t , $default = $native || getMethod(DEFAULT)\n\t , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n\t , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n\t , methods, key, IteratorPrototype;\n\t // Fix native\n\t if($anyNative){\n\t IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n\t if(IteratorPrototype !== Object.prototype){\n\t // Set @@toStringTag to native iterators\n\t setToStringTag(IteratorPrototype, TAG, true);\n\t // fix for some old engines\n\t if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n\t }\n\t }\n\t // fix Array#{values, @@iterator}.name in V8 / FF\n\t if(DEF_VALUES && $native && $native.name !== VALUES){\n\t VALUES_BUG = true;\n\t $default = function values(){ return $native.call(this); };\n\t }\n\t // Define iterator\n\t if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n\t hide(proto, ITERATOR, $default);\n\t }\n\t // Plug for library\n\t Iterators[NAME] = $default;\n\t Iterators[TAG] = returnThis;\n\t if(DEFAULT){\n\t methods = {\n\t values: DEF_VALUES ? $default : getMethod(VALUES),\n\t keys: IS_SET ? $default : getMethod(KEYS),\n\t entries: $entries\n\t };\n\t if(FORCED)for(key in methods){\n\t if(!(key in proto))redefine(proto, key, methods[key]);\n\t } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n\t }\n\t return methods;\n\t};\n\n/***/ },\n/* 35 */\n/***/ function(module, exports) {\n\n\texports.f = {}.propertyIsEnumerable;\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(10).f\n\t , has = __webpack_require__(12)\n\t , TAG = __webpack_require__(2)('toStringTag');\n\t\n\tmodule.exports = function(it, tag, stat){\n\t if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(4)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.15 ToLength\n\tvar toInteger = __webpack_require__(21)\n\t , min = Math.min;\n\tmodule.exports = function(it){\n\t return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(28)\n\t , ITERATOR = __webpack_require__(2)('iterator')\n\t , Iterators = __webpack_require__(5);\n\tmodule.exports = __webpack_require__(1).getIteratorMethod = function(it){\n\t if(it != undefined)return it[ITERATOR]\n\t || it['@@iterator']\n\t || Iterators[classof(it)];\n\t};\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(91);\n\tvar global = __webpack_require__(4)\n\t , hide = __webpack_require__(9)\n\t , Iterators = __webpack_require__(5)\n\t , TO_STRING_TAG = __webpack_require__(2)('toStringTag');\n\t\n\tfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n\t var NAME = collections[i]\n\t , Collection = global[NAME]\n\t , proto = Collection && Collection.prototype;\n\t if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n\t Iterators[NAME] = Iterators.Array;\n\t}\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _toConsumableArray2 = __webpack_require__(11);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var VK_ENTER = 13;\n\t var VK_SPACE = 32;\n\t var VK_END = 35;\n\t var VK_HOME = 36;\n\t var VK_ARROW_LEFT = 37;\n\t var VK_ARROW_UP = 38;\n\t var VK_ARROW_RIGHT = 39;\n\t var VK_ARROW_DOWN = 40;\n\t var ACCORDION = 'mdlext-accordion';\n\t var ACCORDION_VERTICAL = 'mdlext-accordion--vertical';\n\t var ACCORDION_HORIZONTAL = 'mdlext-accordion--horizontal';\n\t var PANEL = 'mdlext-accordion__panel';\n\t var PANEL_ROLE = 'presentation';\n\t var TAB = 'mdlext-accordion__tab';\n\t var TAB_CAPTION = 'mdlext-accordion__tab__caption';\n\t var TAB_ROLE = 'tab';\n\t var TABPANEL = 'mdlext-accordion__tabpanel';\n\t var TABPANEL_ROLE = 'tabpanel';\n\t var ARIA_MULTISELECTABLE = 'aria-multiselectable';\n\t var ARIA_EXPANDED = 'aria-expanded';\n\t var ARIA_HIDDEN = 'aria-hidden';\n\t var ARIA_SELECTED = 'aria-selected';\n\t var IS_EXPANDED = 'is-expanded';\n\t var IS_UPGRADED = 'is-upgraded';\n\t var RIPPLE_EFFECT = 'mdlext-js-ripple-effect';\n\t var RIPPLE = 'mdlext-accordion__tab--ripple';\n\t var ANIMATION_EFFECT = 'mdlext-js-animation-effect';\n\t var ANIMATION = 'mdlext-accordion__tabpanel--animation';\n\t\n\t /**\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtAccordion = function MaterialExtAccordion(element) {\n\t\n\t // Stores the Accordion HTML element.\n\t this.element_ = element;\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t window['MaterialExtAccordion'] = MaterialExtAccordion;\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtAccordion.prototype.init = function () {\n\t var _this = this;\n\t\n\t if (this.element_) {\n\t // Do the init required for this component to work\n\t if (!(this.element_.classList.contains(ACCORDION_HORIZONTAL) || this.element_.classList.contains(ACCORDION_VERTICAL))) {\n\t throw new Error('Accordion must have one of the classes \"' + ACCORDION_HORIZONTAL + '\" or \"' + ACCORDION_VERTICAL + '\"');\n\t }\n\t\n\t this.element_.setAttribute('role', 'tablist');\n\t\n\t if (!this.element_.hasAttribute(ARIA_MULTISELECTABLE)) {\n\t this.element_.setAttribute(ARIA_MULTISELECTABLE, 'false');\n\t }\n\t\n\t this.element_.removeEventListener('command', this.commandHandler_);\n\t this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL))).forEach(function (panel) {\n\t return _this.upgradeTab(panel);\n\t });\n\t\n\t // Set upgraded flag\n\t this.element_.classList.add(IS_UPGRADED);\n\t }\n\t };\n\t\n\t // Helpers\n\t var accordionPanelElements = function accordionPanelElements(element) {\n\t if (!element) {\n\t return {\n\t panel: null,\n\t tab: null,\n\t tabpanel: null\n\t };\n\t } else if (element.classList.contains(PANEL)) {\n\t return {\n\t panel: element,\n\t tab: element.querySelector('.' + TAB),\n\t tabpanel: element.querySelector('.' + TABPANEL)\n\t };\n\t } else {\n\t return {\n\t panel: element.parentNode,\n\t tab: element.parentNode.querySelector('.' + TAB),\n\t tabpanel: element.parentNode.querySelector('.' + TABPANEL)\n\t };\n\t }\n\t };\n\t\n\t // Private methods.\n\t\n\t /**\n\t * Handles custom command event, 'open', 'close', 'toggle' or upgrade\n\t * @param event. A custom event\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.commandHandler_ = function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event && event.detail) {\n\t this.command(event.detail);\n\t }\n\t };\n\t\n\t /**\n\t * Dispatch toggle event\n\t * @param {string} state\n\t * @param {Element} tab\n\t * @param {Element} tabpanel\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.dispatchToggleEvent_ = function (state, tab, tabpanel) {\n\t var ce = (0, _customEvent.createCustomEvent)('toggle', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: { state: state, tab: tab, tabpanel: tabpanel }\n\t });\n\t this.element_.dispatchEvent(ce);\n\t };\n\t\n\t /**\n\t * Open tab\n\t * @param {Element} panel\n\t * @param {Element} tab\n\t * @param {Element} tabpanel\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.openTab_ = function (panel, tab, tabpanel) {\n\t panel.classList.add(IS_EXPANDED);\n\t tab.setAttribute(ARIA_EXPANDED, 'true');\n\t tabpanel.removeAttribute('hidden');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n\t this.dispatchToggleEvent_('open', tab, tabpanel);\n\t };\n\t\n\t /**\n\t * Close tab\n\t * @param {Element} panel\n\t * @param {Element} tab\n\t * @param {Element} tabpanel\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.closeTab_ = function (panel, tab, tabpanel) {\n\t panel.classList.remove(IS_EXPANDED);\n\t tab.setAttribute(ARIA_EXPANDED, 'false');\n\t tabpanel.setAttribute('hidden', '');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n\t this.dispatchToggleEvent_('close', tab, tabpanel);\n\t };\n\t\n\t /**\n\t * Toggle tab\n\t * @param {Element} panel\n\t * @param {Element} tab\n\t * @param {Element} tabpanel\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.toggleTab_ = function (panel, tab, tabpanel) {\n\t if (!(this.element_.hasAttribute('disabled') || tab.hasAttribute('disabled'))) {\n\t if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n\t this.closeTab_(panel, tab, tabpanel);\n\t } else {\n\t if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() !== 'true') {\n\t this.closeTabs_();\n\t }\n\t this.openTab_(panel, tab, tabpanel);\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Open tabs\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.openTabs_ = function () {\n\t var _this2 = this;\n\t\n\t if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() === 'true') {\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL))).filter(function (panel) {\n\t return !panel.classList.contains(IS_EXPANDED);\n\t }).forEach(function (closedItem) {\n\t var tab = closedItem.querySelector('.' + TAB);\n\t if (!tab.hasAttribute('disabled')) {\n\t _this2.openTab_(closedItem, tab, closedItem.querySelector('.' + TABPANEL));\n\t }\n\t });\n\t }\n\t };\n\t\n\t /**\n\t * Close tabs\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.closeTabs_ = function () {\n\t var _this3 = this;\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL + '.' + IS_EXPANDED))).forEach(function (panel) {\n\t var tab = panel.querySelector('.' + TAB);\n\t if (!tab.hasAttribute('disabled')) {\n\t _this3.closeTab_(panel, tab, panel.querySelector('.' + TABPANEL));\n\t }\n\t });\n\t };\n\t\n\t // Public methods.\n\t\n\t /**\n\t * Upgrade an individual accordion tab\n\t * @public\n\t * @param {Element} tabElement The HTML element for the accordion panel.\n\t */\n\t MaterialExtAccordion.prototype.upgradeTab = function (tabElement) {\n\t var _this4 = this;\n\t\n\t var _accordionPanelElemen = accordionPanelElements(tabElement);\n\t\n\t var panel = _accordionPanelElemen.panel;\n\t var tab = _accordionPanelElemen.tab;\n\t var tabpanel = _accordionPanelElemen.tabpanel;\n\t\n\t\n\t var disableTab = function disableTab() {\n\t panel.classList.remove(IS_EXPANDED);\n\t tab.setAttribute('tabindex', '-1');\n\t tab.setAttribute(ARIA_EXPANDED, 'false');\n\t tabpanel.setAttribute('hidden', '');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n\t };\n\t\n\t var enableTab = function enableTab() {\n\t if (!tab.hasAttribute(ARIA_EXPANDED)) {\n\t tab.setAttribute(ARIA_EXPANDED, 'false');\n\t }\n\t\n\t tab.setAttribute('tabindex', '0');\n\t\n\t if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n\t panel.classList.add(IS_EXPANDED);\n\t tabpanel.removeAttribute('hidden');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n\t } else {\n\t panel.classList.remove(IS_EXPANDED);\n\t tabpanel.setAttribute('hidden', '');\n\t tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n\t }\n\t };\n\t\n\t // In horizontal layout, caption must have a max-width defined to prevent pushing elements to the right of the caption out of view.\n\t // In JsDom, offsetWidth and offsetHeight properties do not work, so this function is not testable.\n\t /* istanbul ignore next */\n\t var calcMaxTabCaptionWidth = function calcMaxTabCaptionWidth() {\n\t\n\t var tabCaption = tab.querySelector('.' + TAB_CAPTION);\n\t if (tabCaption !== null) {\n\t var w = [].concat((0, _toConsumableArray3.default)(tab.children)).filter(function (el) {\n\t return el.classList && !el.classList.contains(TAB_CAPTION);\n\t }).reduce(function (v, el) {\n\t return v + el.offsetWidth;\n\t }, 0);\n\t\n\t var maxWidth = tab.clientHeight - w;\n\t if (maxWidth > 0) {\n\t tabCaption.style['max-width'] = maxWidth + 'px';\n\t }\n\t }\n\t };\n\t\n\t var selectTab = function selectTab() {\n\t if (!tab.hasAttribute(ARIA_SELECTED)) {\n\t [].concat((0, _toConsumableArray3.default)(_this4.element_.querySelectorAll('.' + TAB + '[aria-selected=\"true\"]'))).forEach(function (selectedTab) {\n\t return selectedTab.removeAttribute(ARIA_SELECTED);\n\t });\n\t tab.setAttribute(ARIA_SELECTED, 'true');\n\t }\n\t };\n\t\n\t var tabClickHandler = function tabClickHandler(e) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t _this4.toggleTab_(panel, tab, tabpanel);\n\t selectTab();\n\t };\n\t\n\t var tabFocusHandler = function tabFocusHandler(e) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t selectTab();\n\t };\n\t\n\t var tabpanelClickHandler = function tabpanelClickHandler() {\n\t selectTab();\n\t };\n\t\n\t var tabpanelFocusHandler = function tabpanelFocusHandler() {\n\t selectTab();\n\t };\n\t\n\t var tabKeydownHandler = function tabKeydownHandler(e) {\n\t\n\t if (_this4.element_.hasAttribute('disabled')) {\n\t return;\n\t }\n\t\n\t if (e.keyCode === VK_END || e.keyCode === VK_HOME || e.keyCode === VK_ARROW_UP || e.keyCode === VK_ARROW_LEFT || e.keyCode === VK_ARROW_DOWN || e.keyCode === VK_ARROW_RIGHT) {\n\t\n\t var nextTab = null;\n\t var keyCode = e.keyCode;\n\t\n\t if (keyCode === VK_HOME) {\n\t nextTab = _this4.element_.querySelector('.' + PANEL + ':first-child > .' + TAB);\n\t if (nextTab && nextTab.hasAttribute('disabled')) {\n\t nextTab = null;\n\t keyCode = VK_ARROW_DOWN;\n\t }\n\t } else if (keyCode === VK_END) {\n\t nextTab = _this4.element_.querySelector('.' + PANEL + ':last-child > .' + TAB);\n\t if (nextTab && nextTab.hasAttribute('disabled')) {\n\t nextTab = null;\n\t keyCode = VK_ARROW_UP;\n\t }\n\t }\n\t\n\t if (!nextTab) {\n\t var nextPanel = panel;\n\t\n\t do {\n\t if (keyCode === VK_ARROW_UP || keyCode === VK_ARROW_LEFT) {\n\t nextPanel = nextPanel.previousElementSibling;\n\t if (!nextPanel) {\n\t nextPanel = _this4.element_.querySelector('.' + PANEL + ':last-child');\n\t }\n\t if (nextPanel) {\n\t nextTab = nextPanel.querySelector('.' + PANEL + ' > .' + TAB);\n\t }\n\t } else if (keyCode === VK_ARROW_DOWN || keyCode === VK_ARROW_RIGHT) {\n\t nextPanel = nextPanel.nextElementSibling;\n\t if (!nextPanel) {\n\t nextPanel = _this4.element_.querySelector('.' + PANEL + ':first-child');\n\t }\n\t if (nextPanel) {\n\t nextTab = nextPanel.querySelector('.' + PANEL + ' > .' + TAB);\n\t }\n\t }\n\t\n\t if (nextTab && nextTab.hasAttribute('disabled')) {\n\t nextTab = null;\n\t } else {\n\t break;\n\t }\n\t } while (nextPanel !== panel);\n\t }\n\t\n\t if (nextTab) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t nextTab.focus();\n\t\n\t // Workaround for JSDom testing:\n\t // In JsDom 'element.focus()' does not trigger any focus event\n\t if (!nextTab.hasAttribute(ARIA_SELECTED)) {\n\t\n\t [].concat((0, _toConsumableArray3.default)(_this4.element_.querySelectorAll('.' + TAB + '[aria-selected=\"true\"]'))).forEach(function (selectedTab) {\n\t return selectedTab.removeAttribute(ARIA_SELECTED);\n\t });\n\t\n\t nextTab.setAttribute(ARIA_SELECTED, 'true');\n\t }\n\t }\n\t } else if (e.keyCode === VK_ENTER || e.keyCode === VK_SPACE) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t _this4.toggleTab_(panel, tab, tabpanel);\n\t }\n\t };\n\t\n\t if (tab === null) {\n\t throw new Error('There must be a tab element for each accordion panel.');\n\t }\n\t\n\t if (tabpanel === null) {\n\t throw new Error('There must be a tabpanel element for each accordion panel.');\n\t }\n\t\n\t panel.setAttribute('role', PANEL_ROLE);\n\t tab.setAttribute('role', TAB_ROLE);\n\t tabpanel.setAttribute('role', TABPANEL_ROLE);\n\t\n\t if (tab.hasAttribute('disabled')) {\n\t disableTab();\n\t } else {\n\t enableTab();\n\t }\n\t\n\t if (this.element_.classList.contains(ACCORDION_HORIZONTAL)) {\n\t calcMaxTabCaptionWidth();\n\t }\n\t\n\t if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n\t tab.classList.add(RIPPLE);\n\t }\n\t\n\t if (this.element_.classList.contains(ANIMATION_EFFECT)) {\n\t tabpanel.classList.add(ANIMATION);\n\t }\n\t\n\t tab.removeEventListener('click', tabClickHandler);\n\t tab.removeEventListener('focus', tabFocusHandler);\n\t tab.removeEventListener('keydown', tabKeydownHandler);\n\t tabpanel.removeEventListener('click', tabpanelClickHandler);\n\t tabpanel.removeEventListener('focus', tabpanelFocusHandler);\n\t\n\t tab.addEventListener('click', tabClickHandler);\n\t tab.addEventListener('focus', tabFocusHandler);\n\t tab.addEventListener('keydown', tabKeydownHandler);\n\t tabpanel.addEventListener('click', tabpanelClickHandler, true);\n\t tabpanel.addEventListener('focus', tabpanelFocusHandler, true);\n\t };\n\t MaterialExtAccordion.prototype['upgradeTab'] = MaterialExtAccordion.prototype.upgradeTab;\n\t\n\t /**\n\t * Execute command\n\t * @param detail\n\t */\n\t MaterialExtAccordion.prototype.command = function (detail) {\n\t var _this5 = this;\n\t\n\t var openTab = function openTab(tabElement) {\n\t\n\t if (tabElement === undefined) {\n\t _this5.openTabs_();\n\t } else if (tabElement !== null) {\n\t var _accordionPanelElemen2 = accordionPanelElements(tabElement);\n\t\n\t var panel = _accordionPanelElemen2.panel;\n\t var tab = _accordionPanelElemen2.tab;\n\t var tabpanel = _accordionPanelElemen2.tabpanel;\n\t\n\t if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() !== 'true') {\n\t _this5.toggleTab_(panel, tab, tabpanel);\n\t }\n\t }\n\t };\n\t\n\t var closeTab = function closeTab(tabElement) {\n\t if (tabElement === undefined) {\n\t _this5.closeTabs_();\n\t } else if (tabElement !== null) {\n\t var _accordionPanelElemen3 = accordionPanelElements(tabElement);\n\t\n\t var panel = _accordionPanelElemen3.panel;\n\t var tab = _accordionPanelElemen3.tab;\n\t var tabpanel = _accordionPanelElemen3.tabpanel;\n\t\n\t\n\t if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n\t _this5.toggleTab_(panel, tab, tabpanel);\n\t }\n\t }\n\t };\n\t\n\t var toggleTab = function toggleTab(tabElement) {\n\t if (tabElement) {\n\t var _accordionPanelElemen4 = accordionPanelElements(tabElement);\n\t\n\t var panel = _accordionPanelElemen4.panel;\n\t var tab = _accordionPanelElemen4.tab;\n\t var tabpanel = _accordionPanelElemen4.tabpanel;\n\t\n\t _this5.toggleTab_(panel, tab, tabpanel);\n\t }\n\t };\n\t\n\t if (detail && detail.action) {\n\t var action = detail.action;\n\t var target = detail.target;\n\t\n\t\n\t switch (action.toLowerCase()) {\n\t case 'open':\n\t openTab(target);\n\t break;\n\t case 'close':\n\t closeTab(target);\n\t break;\n\t case 'toggle':\n\t toggleTab(target);\n\t break;\n\t case 'upgrade':\n\t if (target) {\n\t this.upgradeTab(target);\n\t }\n\t break;\n\t default:\n\t throw new Error('Unknown action \"' + action + '\". Action must be one of \"open\", \"close\", \"toggle\" or \"upgrade\"');\n\t }\n\t }\n\t };\n\t MaterialExtAccordion.prototype['command'] = MaterialExtAccordion.prototype.command;\n\t\n\t /*\n\t * Downgrade component\n\t * E.g remove listeners and clean up resources\n\t *\n\t * Note: There is a bug i material component container; downgrade is never called!\n\t * Disables method temporarly to keep code coverage at 100% for functions.\n\t *\n\t MaterialExtAccordion.prototype.mdlDowngrade_ = function() {\n\t 'use strict';\n\t console.log('***** MaterialExtAccordion.mdlDowngrade');\n\t };\n\t */\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /* eslint no-undef: 0 */\n\t componentHandler.register({\n\t constructor: MaterialExtAccordion,\n\t classAsString: 'MaterialExtAccordion',\n\t cssClass: 'mdlext-js-accordion',\n\t widget: true\n\t });\n\t})(); /**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * A WAI-ARIA friendly accordion component.\n\t * An accordion is a collection of expandable panels associated with a common outer container. Panels consist\n\t * of a header and an associated content region or tabpanel. The primary use of an Accordion is to present multiple sections\n\t * of content on a single page without scrolling, where all of the sections are peers in the application or object hierarchy.\n\t * The general look is similar to a tree where each root tree node is an expandable accordion header. The user navigates\n\t * and makes the contents of each panel visible (or not) by interacting with the Accordion Header\n\t */\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _isInteger = __webpack_require__(27);\n\t\n\tvar _isInteger2 = _interopRequireDefault(_isInteger);\n\t\n\tvar _toConsumableArray2 = __webpack_require__(11);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _assign = __webpack_require__(51);\n\t\n\tvar _assign2 = _interopRequireDefault(_assign);\n\t\n\t__webpack_require__(15);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tvar _animationloop = __webpack_require__(24);\n\t\n\tvar _animationloop2 = _interopRequireDefault(_animationloop);\n\t\n\tvar _easing = __webpack_require__(25);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * Image carousel\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var VK_TAB = 9;\n\t var VK_ENTER = 13;\n\t var VK_ESC = 27;\n\t var VK_SPACE = 32;\n\t var VK_PAGE_UP = 33;\n\t var VK_PAGE_DOWN = 34;\n\t var VK_END = 35;\n\t var VK_HOME = 36;\n\t var VK_ARROW_LEFT = 37;\n\t var VK_ARROW_UP = 38;\n\t var VK_ARROW_RIGHT = 39;\n\t var VK_ARROW_DOWN = 40;\n\t\n\t var IS_UPGRADED = 'is-upgraded';\n\t var IS_FOCUSED = 'is-focused';\n\t //const CAROUSEL = 'mdlext-carousel';\n\t var SLIDE = 'mdlext-carousel__slide';\n\t var ROLE = 'list';\n\t var SLIDE_ROLE = 'listitem';\n\t\n\t var RIPPLE = 'mdl-ripple';\n\t var RIPPLE_COMPONENT = 'MaterialRipple';\n\t var RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n\t var RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n\t var RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\t\n\t /**\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtCarousel = function MaterialExtCarousel(element) {\n\t // Stores the element.\n\t this.element_ = element;\n\t\n\t // Default config\n\t this.config_ = {\n\t interactive: true,\n\t autostart: false,\n\t type: 'slide',\n\t interval: 1000,\n\t animationLoop: new _animationloop2.default(1000)\n\t };\n\t\n\t this.scrollAnimation_ = new _animationloop2.default(33);\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t\n\t window['MaterialExtCarousel'] = MaterialExtCarousel;\n\t\n\t /**\n\t * Start slideshow animation\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.startSlideShow_ = function () {\n\t var _this = this;\n\t\n\t var nextSlide = function nextSlide() {\n\t var slide = _this.element_.querySelector('.' + SLIDE + '[aria-selected]');\n\t if (slide) {\n\t slide.removeAttribute('aria-selected');\n\t slide = slide.nextElementSibling;\n\t }\n\t if (!slide) {\n\t slide = _this.element_.querySelector('.' + SLIDE + ':first-child');\n\t _this.animateScroll_(0);\n\t }\n\t if (slide) {\n\t _this.moveSlideIntoViewport_(slide);\n\t slide.setAttribute('aria-selected', '');\n\t _this.emitSelectEvent_('next', null, slide);\n\t return true;\n\t }\n\t return false;\n\t };\n\t\n\t var nextScroll = function nextScroll(direction) {\n\t var nextDirection = direction;\n\t\n\t if ('next' === direction && _this.element_.scrollLeft === _this.element_.scrollWidth - _this.element_.clientWidth) {\n\t nextDirection = 'prev';\n\t } else if (_this.element_.scrollLeft === 0) {\n\t nextDirection = 'next';\n\t }\n\t var x = 'next' === nextDirection ? Math.min(_this.element_.scrollLeft + _this.element_.clientWidth, _this.element_.scrollWidth - _this.element_.clientWidth) : Math.max(_this.element_.scrollLeft - _this.element_.clientWidth, 0);\n\t\n\t _this.animateScroll_(x, 1000);\n\t return nextDirection;\n\t };\n\t\n\t if (!this.config_.animationLoop.running) {\n\t (function () {\n\t _this.config_.animationLoop.interval = _this.config_.interval;\n\t var direction = 'next';\n\t\n\t if ('scroll' === _this.config_.type) {\n\t _this.config_.animationLoop.start(function () {\n\t direction = nextScroll(direction);\n\t return true; // It runs until cancelSlideShow_ is triggered\n\t });\n\t } else {\n\t nextSlide();\n\t _this.config_.animationLoop.start(function () {\n\t return nextSlide(); // It runs until cancelSlideShow_ is triggered\n\t });\n\t }\n\t })();\n\t }\n\t\n\t // TODO: Pause animation when carousel is not in browser viewport or user changes tab\n\t };\n\t\n\t /**\n\t * Cancel slideshow if running. Emmits a 'pause' event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.cancelSlideShow_ = function () {\n\t if (this.config_.animationLoop.running) {\n\t this.config_.animationLoop.stop();\n\t this.emitSelectEvent_('pause', VK_ESC, this.element_.querySelector('.' + SLIDE + '[aria-selected]'));\n\t }\n\t };\n\t\n\t /**\n\t * Animate scroll\n\t * @param newPosition\n\t * @param newDuration\n\t * @param completedCallback\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.animateScroll_ = function (newPosition, newDuration, completedCallback) {\n\t var _this2 = this;\n\t\n\t var start = this.element_.scrollLeft;\n\t var distance = newPosition - start;\n\t\n\t if (distance !== 0) {\n\t (function () {\n\t var duration = Math.max(Math.min(Math.abs(distance), newDuration || 400), 100); // duration is between 100 and newDuration||400ms||distance\n\t var t = 0;\n\t _this2.scrollAnimation_.stop().start(function (timeElapsed) {\n\t t += timeElapsed;\n\t if (t < duration) {\n\t _this2.element_.scrollLeft = (0, _easing.inOutQuintic)(t, start, distance, duration);\n\t return true;\n\t } else {\n\t _this2.element_.scrollLeft = newPosition;\n\t if (completedCallback) {\n\t completedCallback();\n\t }\n\t return false;\n\t }\n\t });\n\t })();\n\t } else {\n\t if (completedCallback) {\n\t completedCallback();\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Execute commend\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.command_ = function (event) {\n\t var _this3 = this;\n\t\n\t var x = 0;\n\t var slide = null;\n\t var a = event.detail.action.toLowerCase();\n\t\n\t // Cancel slideshow if running\n\t this.cancelSlideShow_();\n\t\n\t switch (a) {\n\t case 'first':\n\t slide = this.element_.querySelector('.' + SLIDE + ':first-child');\n\t break;\n\t\n\t case 'last':\n\t x = this.element_.scrollWidth - this.element_.clientWidth;\n\t slide = this.element_.querySelector('.' + SLIDE + ':last-child');\n\t break;\n\t\n\t case 'scroll-prev':\n\t x = Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);\n\t break;\n\t\n\t case 'scroll-next':\n\t x = Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth);\n\t break;\n\t\n\t case 'next':\n\t case 'prev':\n\t slide = this.element_.querySelector('.' + SLIDE + '[aria-selected]');\n\t if (slide) {\n\t slide = a === 'next' ? slide.nextElementSibling : slide.previousElementSibling;\n\t this.setAriaSelected_(slide);\n\t this.emitSelectEvent_(a, null, slide);\n\t }\n\t return;\n\t\n\t case 'play':\n\t (0, _assign2.default)(this.config_, event.detail);\n\t this.startSlideShow_();\n\t return;\n\t\n\t case 'pause':\n\t return;\n\t\n\t default:\n\t return;\n\t }\n\t\n\t this.animateScroll_(x, undefined, function () {\n\t if ('scroll-next' === a || 'scroll-prev' === a) {\n\t var slides = _this3.getSlidesInViewport_();\n\t if (slides.length > 0) {\n\t slide = 'scroll-next' === a ? slides[0] : slides[slides.length - 1];\n\t }\n\t }\n\t _this3.setAriaSelected_(slide);\n\t _this3.emitSelectEvent_(a, null, slide);\n\t });\n\t };\n\t\n\t /**\n\t * Handles custom command event, 'scroll-prev', 'scroll-next', 'first', 'last', next, prev, play, pause\n\t * @param event. A custom event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.commandHandler_ = function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t if (event.detail && event.detail.action) {\n\t this.command_(event);\n\t }\n\t };\n\t\n\t /**\n\t * Handle keypress\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.keyDownHandler_ = function (event) {\n\t\n\t if (event && event.target && event.target !== this.element_) {\n\t\n\t var action = 'first';\n\t\n\t if (event.keyCode === VK_HOME || event.keyCode === VK_END || event.keyCode === VK_PAGE_UP || event.keyCode === VK_PAGE_DOWN) {\n\t\n\t event.preventDefault();\n\t if (event.keyCode === VK_END) {\n\t action = 'last';\n\t } else if (event.keyCode === VK_PAGE_UP) {\n\t action = 'scroll-prev';\n\t } else if (event.keyCode === VK_PAGE_DOWN) {\n\t action = 'scroll-next';\n\t }\n\t this.command_(action);\n\t } else if (event.keyCode === VK_TAB || event.keyCode === VK_ENTER || event.keyCode === VK_SPACE || event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t\n\t var slide = getSlide_(event.target);\n\t\n\t if (!slide) {\n\t return;\n\t }\n\t\n\t // Cancel slideshow if running\n\t this.cancelSlideShow_();\n\t\n\t switch (event.keyCode) {\n\t case VK_ARROW_UP:\n\t case VK_ARROW_LEFT:\n\t action = 'prev';\n\t slide = slide.previousElementSibling;\n\t break;\n\t\n\t case VK_ARROW_DOWN:\n\t case VK_ARROW_RIGHT:\n\t action = 'next';\n\t slide = slide.nextElementSibling;\n\t break;\n\t\n\t case VK_TAB:\n\t if (event.shiftKey) {\n\t action = 'prev';\n\t slide = slide.previousElementSibling;\n\t } else {\n\t action = 'next';\n\t slide = slide.nextElementSibling;\n\t }\n\t break;\n\t\n\t case VK_SPACE:\n\t case VK_ENTER:\n\t action = 'select';\n\t break;\n\t }\n\t\n\t if (slide) {\n\t event.preventDefault();\n\t setFocus_(slide);\n\t this.emitSelectEvent_(action, event.keyCode, slide);\n\t }\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Handle dragging\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.dragHandler_ = function (event) {\n\t var _this4 = this;\n\t\n\t event.preventDefault();\n\t\n\t // Cancel slideshow if running\n\t this.cancelSlideShow_();\n\t\n\t var updating = false;\n\t var rAFDragId = 0;\n\t\n\t var startX = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n\t var prevX = startX;\n\t var targetElement = event.target;\n\t\n\t var update = function update(e) {\n\t var currentX = e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0);\n\t var dx = prevX - currentX;\n\t\n\t if (dx < 0) {\n\t _this4.element_.scrollLeft = Math.max(_this4.element_.scrollLeft + dx, 0);\n\t } else if (dx > 0) {\n\t _this4.element_.scrollLeft = Math.min(_this4.element_.scrollLeft + dx, _this4.element_.scrollWidth - _this4.element_.clientWidth);\n\t }\n\t\n\t prevX = currentX;\n\t updating = false;\n\t };\n\t\n\t // drag handler\n\t var drag = function drag(e) {\n\t e.preventDefault();\n\t\n\t if (!updating) {\n\t rAFDragId = window.requestAnimationFrame(function () {\n\t return update(e);\n\t });\n\t updating = true;\n\t }\n\t };\n\t\n\t // end drag handler\n\t var endDrag = function endDrag(e) {\n\t e.preventDefault();\n\t\n\t _this4.element_.removeEventListener('mousemove', drag);\n\t _this4.element_.removeEventListener('touchmove', drag);\n\t window.removeEventListener('mouseup', endDrag);\n\t window.removeEventListener('touchend', endDrag);\n\t\n\t // cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/\n\t window.cancelAnimationFrame(rAFDragId);\n\t\n\t var slide = getSlide_(targetElement);\n\t setFocus_(slide);\n\t _this4.emitSelectEvent_('click', null, slide);\n\t };\n\t\n\t this.element_.addEventListener('mousemove', drag);\n\t this.element_.addEventListener('touchmove', drag);\n\t window.addEventListener('mouseup', endDrag);\n\t window.addEventListener('touchend', endDrag);\n\t };\n\t\n\t /**\n\t * Handle focus\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.focusHandler_ = function (event) {\n\t var slide = getSlide_(event.target);\n\t if (slide) {\n\t // The last focused/selected slide has 'aria-selected', even if focus is lost\n\t this.setAriaSelected_(slide);\n\t slide.classList.add(IS_FOCUSED);\n\t }\n\t };\n\t\n\t /**\n\t * Handle blur\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.blurHandler_ = function (event) {\n\t var slide = getSlide_(event.target);\n\t if (slide) {\n\t slide.classList.remove(IS_FOCUSED);\n\t }\n\t };\n\t\n\t /**\n\t * Emits a custeom 'select' event\n\t * @param command\n\t * @param keyCode\n\t * @param slide\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.emitSelectEvent_ = function (command, keyCode, slide) {\n\t\n\t if (slide) {\n\t this.moveSlideIntoViewport_(slide);\n\t\n\t var evt = (0, _customEvent.createCustomEvent)('select', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: {\n\t command: command,\n\t keyCode: keyCode,\n\t source: slide\n\t }\n\t });\n\t this.element_.dispatchEvent(evt);\n\t }\n\t };\n\t\n\t /**\n\t * Get the first visible slide in component viewport\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.getSlidesInViewport_ = function () {\n\t var carouselRect = this.element_.getBoundingClientRect();\n\t\n\t var slidesInViewport = [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).filter(function (slide) {\n\t var slideRect = slide.getBoundingClientRect();\n\t return slideRect.left >= carouselRect.left && slideRect.right <= carouselRect.right;\n\t });\n\t return slidesInViewport;\n\t };\n\t\n\t /**\n\t * Move slide into component viewport - if needed\n\t * @param slide\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.moveSlideIntoViewport_ = function (slide) {\n\t var carouselRect = this.element_.getBoundingClientRect();\n\t var slideRect = slide.getBoundingClientRect();\n\t\n\t if (slideRect.left < carouselRect.left) {\n\t var x = this.element_.scrollLeft - (carouselRect.left - slideRect.left);\n\t this.animateScroll_(x);\n\t } else if (slideRect.right > carouselRect.right) {\n\t var _x = this.element_.scrollLeft - (carouselRect.right - slideRect.right);\n\t this.animateScroll_(_x);\n\t }\n\t };\n\t\n\t /**\n\t * Removes 'aria-selected' from all slides in carousel\n\t * @private\n\t */\n\t MaterialExtCarousel.prototype.setAriaSelected_ = function (slide) {\n\t if (slide) {\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE + '[aria-selected]'))).forEach(function (slide) {\n\t return slide.removeAttribute('aria-selected');\n\t });\n\t slide.setAttribute('aria-selected', '');\n\t }\n\t };\n\t\n\t // Helpers\n\t var getSlide_ = function getSlide_(element) {\n\t return element.closest('.' + SLIDE);\n\t };\n\t\n\t var setFocus_ = function setFocus_(slide) {\n\t if (slide) {\n\t slide.focus();\n\t }\n\t };\n\t\n\t var addRipple_ = function addRipple_(slide) {\n\t if (!slide.querySelector('.' + RIPPLE_CONTAINER)) {\n\t var rippleContainer = document.createElement('span');\n\t rippleContainer.classList.add(RIPPLE_CONTAINER);\n\t rippleContainer.classList.add(RIPPLE_EFFECT);\n\t var ripple = document.createElement('span');\n\t ripple.classList.add(RIPPLE);\n\t rippleContainer.appendChild(ripple);\n\t\n\t var img = slide.querySelector('img');\n\t if (img) {\n\t // rippleContainer blocks image title\n\t rippleContainer.title = img.title;\n\t }\n\t slide.appendChild(rippleContainer);\n\t componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n\t }\n\t };\n\t // End helpers\n\t\n\t\n\t // Public methods.\n\t\n\t /**\n\t * Cancel animation - if running.\n\t *\n\t * @public\n\t */\n\t MaterialExtCarousel.prototype.stopAnimation = function () {\n\t this.config_.animationLoop.stop();\n\t };\n\t MaterialExtCarousel.prototype['stopAnimation'] = MaterialExtCarousel.prototype.stopAnimation;\n\t\n\t /**\n\t * Upgrade slides\n\t * Use if more list elements are added later (dynamically)\n\t *\n\t * @public\n\t */\n\t MaterialExtCarousel.prototype.upgradeSlides = function () {\n\t var _this5 = this;\n\t\n\t var hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t\n\t slide.setAttribute('role', SLIDE_ROLE);\n\t\n\t if (_this5.config_.interactive) {\n\t if (!slide.getAttribute('tabindex')) {\n\t slide.setAttribute('tabindex', '0');\n\t }\n\t if (hasRippleEffect) {\n\t addRipple_(slide);\n\t }\n\t } else {\n\t slide.setAttribute('tabindex', '-1');\n\t }\n\t });\n\t };\n\t MaterialExtCarousel.prototype['upgradeSlides'] = MaterialExtCarousel.prototype.upgradeSlides;\n\t\n\t /**\n\t * Get config object\n\t *\n\t * @public\n\t */\n\t MaterialExtCarousel.prototype.getConfig = function () {\n\t return this.config_;\n\t };\n\t MaterialExtCarousel.prototype['getConfig'] = MaterialExtCarousel.prototype.getConfig;\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtCarousel.prototype.init = function () {\n\t\n\t if (this.element_) {\n\t // Config\n\t if (this.element_.hasAttribute('data-config')) {\n\t var s = this.element_.getAttribute('data-config').replace(/'/g, '\"');\n\t try {\n\t var c = JSON.parse(s);\n\t (0, _assign2.default)(this.config_, c);\n\t } catch (e) {\n\t throw new Error('Failed to parse \"data-config = ' + s + '\". Error: ' + e.message);\n\t }\n\t }\n\t\n\t // Wai-Aria\n\t this.element_.setAttribute('role', ROLE);\n\t\n\t // Prefer tabindex -1\n\t if (!(0, _isInteger2.default)(this.element_.getAttribute('tabindex'))) {\n\t this.element_.setAttribute('tabindex', -1);\n\t }\n\t\n\t if (this.config_.interactive) {\n\t\n\t // Ripple\n\t var hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n\t if (hasRippleEffect) {\n\t this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n\t }\n\t\n\t // Listen to focus/blur events\n\t this.element_.addEventListener('focus', this.focusHandler_.bind(this), true);\n\t this.element_.addEventListener('blur', this.blurHandler_.bind(this), true);\n\t\n\t // Listen to keyboard events\n\t this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this), false);\n\t\n\t // Listen to drag events\n\t this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), false);\n\t this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), false);\n\t\n\t // Click is handled by drag\n\t this.element_.addEventListener('click', function (e) {\n\t return e.preventDefault();\n\t }, false);\n\t }\n\t\n\t // Listen to custom 'command' event\n\t this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t\n\t /* Not needed. Difficult to test. Call upgradeSlides() from client instead.\n\t // Detect insertions into components DOM\n\t const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\t // jsdom does not support MutationObserver - so this is not testable\n\t new MutationObserver( mutations => {\n\t mutations.forEach( mutation => {\n\t if (mutation.addedNodes.length > 0) {\n\t window.requestAnimationFrame(() => this.upgradeSlides() );\n\t }\n\t });\n\t }).observe( this.element_, {\n\t attributes: false,\n\t childList: true,\n\t characterData: false,\n\t subtree: false\n\t });\n\t */\n\t\n\t // Slides collection\n\t this.upgradeSlides();\n\t\n\t // Set upgraded flag\n\t this.element_.classList.add(IS_UPGRADED);\n\t\n\t if (this.config_.autostart) {\n\t // Start slideshow\n\t this.startSlideShow_();\n\t }\n\t }\n\t };\n\t\n\t /*\n\t * Downgrade component\n\t * E.g remove listeners and clean up resources\n\t *\n\t * Note: There is a bug i material component container; downgrade is never called!\n\t * Disables method temporarly to keep code coverage at 100% for functions.\n\t *\n\t MaterialExtCarousel.prototype.mdlDowngrade_ = function() {\n\t 'use strict';\n\t console.log('***** MaterialExtCarousel.mdlDowngrade');\n\t };\n\t */\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /* eslint no-undef: 0 */\n\t componentHandler.register({\n\t constructor: MaterialExtCarousel,\n\t classAsString: 'MaterialExtCarousel',\n\t cssClass: 'mdlext-js-carousel',\n\t widget: true\n\t });\n\t})();\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t//import 'utils/closest-polyfill';\n\t\n\t__webpack_require__(6);\n\t\n\t__webpack_require__(24);\n\t\n\t__webpack_require__(25);\n\t\n\t__webpack_require__(48);\n\t\n\t__webpack_require__(47);\n\t\n\t__webpack_require__(42);\n\t\n\t__webpack_require__(45);\n\t\n\t__webpack_require__(46);\n\t\n\t__webpack_require__(43);\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _toConsumableArray2 = __webpack_require__(11);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\t__webpack_require__(15);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * A lightboard is a translucent surface illuminated from behind, used for situations\n\t * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n\t * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n\t * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var VK_ENTER = 13;\n\t var VK_SPACE = 32;\n\t var VK_END = 35;\n\t var VK_HOME = 36;\n\t var VK_ARROW_LEFT = 37;\n\t var VK_ARROW_UP = 38;\n\t var VK_ARROW_RIGHT = 39;\n\t var VK_ARROW_DOWN = 40;\n\t\n\t var IS_UPGRADED = 'is-upgraded';\n\t //const LIGHTBOARD = 'mdlext-lightboard';\n\t var LIGHTBOARD_ROLE = 'grid';\n\t var SLIDE = 'mdlext-lightboard__slide';\n\t var SLIDE_ROLE = 'gridcell';\n\t var SLIDE_TABSTOP = 'mdlext-lightboard__slide__frame';\n\t var RIPPLE_COMPONENT = 'MaterialRipple';\n\t var RIPPLE = 'mdl-ripple';\n\t var RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container';\n\t var RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n\t var RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\t\n\t /**\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtLightboard = function MaterialExtLightboard(element) {\n\t // Stores the element.\n\t this.element_ = element;\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t window['MaterialExtLightboard'] = MaterialExtLightboard;\n\t\n\t // Helpers\n\t var getSlide = function getSlide(element) {\n\t return element ? element.closest('.' + SLIDE) : null;\n\t };\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtLightboard.prototype.init = function () {\n\t var _this = this;\n\t\n\t var keydownHandler = function keydownHandler(event) {\n\t\n\t if (event.target !== _this.element_) {\n\t var action = void 0;\n\t var target = void 0;\n\t switch (event.keyCode) {\n\t case VK_HOME:\n\t action = 'first';\n\t break;\n\t case VK_END:\n\t action = 'last';\n\t break;\n\t case VK_ARROW_UP:\n\t case VK_ARROW_LEFT:\n\t action = 'prev';\n\t break;\n\t case VK_ARROW_DOWN:\n\t case VK_ARROW_RIGHT:\n\t action = 'next';\n\t break;\n\t case VK_ENTER:\n\t case VK_SPACE:\n\t action = 'select';\n\t target = event.target;\n\t break;\n\t }\n\t if (action) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t _this.command({ action: action, target: target });\n\t }\n\t }\n\t };\n\t\n\t var clickHandler = function clickHandler(event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event.target !== _this.element_) {\n\t _this.command({ action: 'select', target: event.target });\n\t }\n\t };\n\t\n\t var focusHandler = function focusHandler(event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event.target !== _this.element_) {\n\t _this.selectSlide_(event.target);\n\t }\n\t };\n\t\n\t if (this.element_) {\n\t this.element_.setAttribute('role', LIGHTBOARD_ROLE);\n\t\n\t if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n\t this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n\t }\n\t\n\t this.element_.removeEventListener('command', this.commandHandler_);\n\t this.element_.removeEventListener('keydown', keydownHandler);\n\t this.element_.removeEventListener('click', clickHandler);\n\t this.element_.removeEventListener('focus', focusHandler);\n\t\n\t this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t this.element_.addEventListener('keydown', keydownHandler, true);\n\t this.element_.addEventListener('click', clickHandler, true);\n\t this.element_.addEventListener('focus', focusHandler, true);\n\t\n\t this.upgradeSlides();\n\t\n\t this.element_.classList.add(IS_UPGRADED);\n\t }\n\t };\n\t\n\t // Private methods.\n\t\n\t /**\n\t * Select a slide, i.e. set aria-selected=\"true\"\n\t * @param element\n\t * @private\n\t */\n\t MaterialExtLightboard.prototype.selectSlide_ = function (element) {\n\t var slide = getSlide(element);\n\t if (slide && !slide.hasAttribute('aria-selected')) {\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE + '[aria-selected=\"true\"]'))).forEach(function (selectedSlide) {\n\t return selectedSlide.removeAttribute('aria-selected');\n\t });\n\t\n\t slide.setAttribute('aria-selected', 'true');\n\t }\n\t };\n\t\n\t /**\n\t * Dispatch select event\n\t * @param {Element} slide The slide that caused the event\n\t * @private\n\t */\n\t MaterialExtLightboard.prototype.dispatchSelectEvent_ = function (slide) {\n\t this.element_.dispatchEvent((0, _customEvent.createCustomEvent)('select', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: { source: slide }\n\t }));\n\t };\n\t\n\t /**\n\t * Handles custom command event, 'first', 'next', 'prev', 'last', 'select' or upgrade\n\t * @param event. A custom event\n\t * @private\n\t */\n\t MaterialExtLightboard.prototype.commandHandler_ = function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event && event.detail) {\n\t this.command(event.detail);\n\t }\n\t };\n\t\n\t // Public methods\n\t\n\t /**\n\t * Initialize lightboard slides\n\t * @public\n\t */\n\t MaterialExtLightboard.prototype.upgradeSlides = function () {\n\t\n\t var addRipple = function addRipple(slide) {\n\t // Use slide frame as ripple container\n\t if (!slide.querySelector('.' + RIPPLE_CONTAINER)) {\n\t var a = slide.querySelector('.' + SLIDE_TABSTOP);\n\t if (a) {\n\t var rippleContainer = a;\n\t rippleContainer.classList.add(RIPPLE_CONTAINER);\n\t rippleContainer.classList.add(RIPPLE_EFFECT);\n\t var ripple = document.createElement('span');\n\t ripple.classList.add(RIPPLE);\n\t rippleContainer.appendChild(ripple);\n\t componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n\t }\n\t }\n\t };\n\t\n\t var hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t\n\t slide.setAttribute('role', SLIDE_ROLE);\n\t\n\t if (!slide.querySelector('a')) {\n\t slide.setAttribute('tabindex', '0');\n\t }\n\t if (hasRippleEffect) {\n\t addRipple(slide);\n\t }\n\t });\n\t };\n\t MaterialExtLightboard.prototype['upgradeSlides'] = MaterialExtLightboard.prototype.upgradeSlides;\n\t\n\t /**\n\t * Execute command\n\t * @param detail\n\t * @public\n\t */\n\t MaterialExtLightboard.prototype.command = function (detail) {\n\t var _this2 = this;\n\t\n\t var firstSlide = function firstSlide() {\n\t return _this2.element_.querySelector('.' + SLIDE + ':first-child');\n\t };\n\t\n\t var lastSlide = function lastSlide() {\n\t return _this2.element_.querySelector('.' + SLIDE + ':last-child');\n\t };\n\t\n\t var nextSlide = function nextSlide() {\n\t var slide = _this2.element_.querySelector('.' + SLIDE + '[aria-selected=\"true\"]').nextElementSibling;\n\t return slide ? slide : firstSlide();\n\t };\n\t\n\t var prevSlide = function prevSlide() {\n\t var slide = _this2.element_.querySelector('.' + SLIDE + '[aria-selected=\"true\"]').previousElementSibling;\n\t return slide ? slide : lastSlide();\n\t };\n\t\n\t if (detail && detail.action) {\n\t var action = detail.action;\n\t var target = detail.target;\n\t\n\t\n\t var slide = void 0;\n\t switch (action.toLowerCase()) {\n\t case 'select':\n\t slide = getSlide(target);\n\t this.dispatchSelectEvent_(slide);\n\t break;\n\t case 'first':\n\t slide = firstSlide();\n\t break;\n\t case 'next':\n\t slide = nextSlide();\n\t break;\n\t case 'prev':\n\t slide = prevSlide();\n\t break;\n\t case 'last':\n\t slide = lastSlide();\n\t break;\n\t case 'upgrade':\n\t this.upgradeSlides();\n\t break;\n\t default:\n\t throw new Error('Unknown action \"' + action + '\". Action must be one of \"first\", \"next\", \"prev\", \"last\", \"select\" or \"upgrade\"');\n\t }\n\t\n\t if (slide) {\n\t var a = slide.querySelector('a');\n\t if (a) {\n\t a.focus();\n\t } else {\n\t slide.focus();\n\t }\n\t\n\t // Workaround for JSDom testing:\n\t // In JsDom 'element.focus()' does not trigger any focus event\n\t if (!slide.hasAttribute('aria-selected')) {\n\t this.selectSlide_(slide);\n\t }\n\t }\n\t }\n\t };\n\t MaterialExtLightboard.prototype['command'] = MaterialExtLightboard.prototype.command;\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /* eslint no-undef: 0 */\n\t /* jshint undef:false */\n\t componentHandler.register({\n\t constructor: MaterialExtLightboard,\n\t classAsString: 'MaterialExtLightboard',\n\t cssClass: 'mdlext-js-lightboard',\n\t widget: true\n\t });\n\t})();\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _toConsumableArray2 = __webpack_require__(11);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _isInteger = __webpack_require__(27);\n\t\n\tvar _isInteger2 = _interopRequireDefault(_isInteger);\n\t\n\tvar _slicedToArray2 = __webpack_require__(56);\n\t\n\tvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\t\n\tvar _entries = __webpack_require__(53);\n\t\n\tvar _entries2 = _interopRequireDefault(_entries);\n\t\n\tvar _getIterator2 = __webpack_require__(26);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\t\n\t__webpack_require__(15);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * Responsive Lightbox\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var VK_ESC = 27;\n\t var VK_SPACE = 32;\n\t var VK_END = 35;\n\t var VK_HOME = 36;\n\t var VK_ARROW_LEFT = 37;\n\t var VK_ARROW_UP = 38;\n\t var VK_ARROW_RIGHT = 39;\n\t var VK_ARROW_DOWN = 40;\n\t\n\t var IS_UPGRADED = 'is-upgraded';\n\t var LIGHTBOX = 'mdlext-lightbox';\n\t var LIGHTBOX_SLIDER = 'mdlext-lightbox__slider';\n\t var LIGHTBOX_SLIDER_SLIDE = 'mdlext-lightbox__slider__slide';\n\t var STICKY_FOOTER = 'mdlext-lightbox--sticky-footer';\n\t var BUTTON = 'mdl-button';\n\t\n\t /**\n\t * https://github.com/google/material-design-lite/issues/4205\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtLightbox = function MaterialExtLightbox(element) {\n\t // Stores the element.\n\t this.element_ = element;\n\t\n\t // false: allow rAF to be called, true: blocks rAF\n\t this.drawing_ = false;\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t window['MaterialExtLightbox'] = MaterialExtLightbox;\n\t\n\t /**\n\t * Handle keypress\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtLightbox.prototype.keyDownHandler_ = function (event) {\n\t\n\t if (event) {\n\t if (event.keyCode === VK_ESC || event.keyCode === VK_SPACE || event.keyCode === VK_END || event.keyCode === VK_HOME || event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t\n\t if (event.keyCode !== VK_ESC) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t }\n\t\n\t var action = 'first';\n\t if (event.keyCode === VK_END) {\n\t action = 'last';\n\t } else if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n\t action = 'prev';\n\t } else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t action = 'next';\n\t } else if (event.keyCode === VK_SPACE) {\n\t action = 'select';\n\t } else if (event.keyCode === VK_ESC) {\n\t action = 'cancel';\n\t }\n\t\n\t dispatchAction_(action, this);\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Handle button clicks\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtLightbox.prototype.buttonClickHandler_ = function (event) {\n\t\n\t if (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t dispatchAction_(this.getAttribute('data-action') || '', this);\n\t\n\t var n = this.closest('.' + LIGHTBOX);\n\t if (n) {\n\t n.focus();\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Dispatches an action custom event\n\t * @param action\n\t * @param source\n\t * @param target\n\t * @private\n\t */\n\t var dispatchAction_ = function dispatchAction_(action, source) {\n\t var target = arguments.length <= 2 || arguments[2] === undefined ? source : arguments[2];\n\t\n\t\n\t target.dispatchEvent((0, _customEvent.createCustomEvent)('action', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: {\n\t action: action || '',\n\t source: source\n\t }\n\t }));\n\t };\n\t\n\t /**\n\t * Reposition dialog if component parent element is \"DIALOG\"\n\t * @param lightboxElement\n\t * @private\n\t */\n\t var repositionDialog_ = function repositionDialog_(lightboxElement) {\n\t var footerHeight = function footerHeight(footer, isSticky) {\n\t return isSticky && footer ? footer.offsetHeight : 0;\n\t };\n\t\n\t var reposition = function reposition(dialog, fh) {\n\t if (window.getComputedStyle(dialog).position === 'absolute') {\n\t var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;\n\t var topValue = scrollTop + (window.innerHeight - dialog.offsetHeight - fh) / 2;\n\t dialog.style.top = Math.max(scrollTop, topValue) + 'px';\n\t }\n\t };\n\t\n\t var dialog = lightboxElement.parentNode.nodeName === 'DIALOG' ? lightboxElement.parentNode : null;\n\t if (dialog && dialog.hasAttribute('open')) {\n\t lightboxElement.style.width = 'auto';\n\t lightboxElement.style.maxWidth = '100%';\n\t var img = lightboxElement.querySelector('img');\n\t if (img) {\n\t lightboxElement.style.maxWidth = img.naturalWidth !== 'undefined' ? img.naturalWidth + 'px' : img.width + 'px' || '100%';\n\t }\n\t\n\t var fh = footerHeight(lightboxElement.querySelector('footer'), lightboxElement.classList.contains(STICKY_FOOTER));\n\t var vh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - fh;\n\t if (dialog.offsetHeight > vh) {\n\t var n = 0;\n\t while (dialog.offsetHeight > vh && ++n < 4) {\n\t lightboxElement.style.width = lightboxElement.offsetWidth * vh / lightboxElement.offsetHeight + 'px';\n\t }\n\t }\n\t reposition(dialog, fh);\n\t }\n\t };\n\t\n\t /**\n\t * Handle image load\n\t * @param event\n\t * @private\n\t */\n\t\n\t MaterialExtLightbox.prototype.imgLoadHandler_ = function () /*event*/{\n\t repositionDialog_(this);\n\t };\n\t\n\t /**\n\t * Handle image drag\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtLightbox.prototype.imgDragHandler_ = function (event) {\n\t\n\t var setStyles = function setStyles(element, properties) {\n\t //noinspection JSAnnotator\n\t var _iteratorNormalCompletion = true;\n\t var _didIteratorError = false;\n\t var _iteratorError = undefined;\n\t\n\t try {\n\t for (var _iterator = (0, _getIterator3.default)((0, _entries2.default)(properties)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t var _step$value = (0, _slicedToArray3.default)(_step.value, 2);\n\t\n\t var key = _step$value[0];\n\t var value = _step$value[1];\n\t\n\t element.style[key] = value;\n\t }\n\t // ... or:\n\t //for (const key in properties) {\n\t // element.style[key] = properties[key];\n\t //}\n\t } catch (err) {\n\t _didIteratorError = true;\n\t _iteratorError = err;\n\t } finally {\n\t try {\n\t if (!_iteratorNormalCompletion && _iterator.return) {\n\t _iterator.return();\n\t }\n\t } finally {\n\t if (_didIteratorError) {\n\t throw _iteratorError;\n\t }\n\t }\n\t }\n\t };\n\t\n\t event.preventDefault();\n\t //event.stopPropagation();\n\t\n\t var x = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n\t\n\t var img = this;\n\t img.style.opacity = '0.2';\n\t\n\t var slider = document.createElement('div');\n\t slider.classList.add(LIGHTBOX_SLIDER);\n\t setStyles(slider, { 'width': img.offsetWidth + 'px', 'height': img.offsetHeight + 'px' });\n\t\n\t var slide = document.createElement('div');\n\t slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n\t slide.textContent = '>';\n\t setStyles(slide, {\n\t 'width': img.offsetWidth + 'px',\n\t 'height': img.offsetHeight + 'px',\n\t 'line-height': img.offsetHeight + 'px',\n\t 'font-size': img.offsetHeight / 4 + 'px',\n\t 'text-align': 'right',\n\t 'background-image': 'url(\"' + (img.getAttribute('data-img-url-prev') || '') + '\")'\n\t });\n\t slider.appendChild(slide);\n\t\n\t slide = document.createElement('div');\n\t slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n\t setStyles(slide, {\n\t 'width': img.offsetWidth + 'px',\n\t 'height': img.offsetHeight + 'px',\n\t 'background-image': 'url(\"' + img.src + '\")'\n\t });\n\t slider.appendChild(slide);\n\t\n\t slide = document.createElement('div');\n\t slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n\t slide.textContent = '<';\n\t setStyles(slide, {\n\t 'width': img.offsetWidth + 'px',\n\t 'height': img.offsetHeight + 'px',\n\t 'line-height': img.offsetHeight + 'px',\n\t 'font-size': img.offsetHeight / 4 + 'px',\n\t 'text-align': 'left',\n\t 'background-image': 'url(\"' + (img.getAttribute('data-img-url-next') || '') + '\")'\n\t });\n\t slider.appendChild(slide);\n\t\n\t img.parentNode.appendChild(slider);\n\t\n\t // drag handler\n\t var drag = function drag(e) {\n\t e.preventDefault();\n\t var dx = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0)) - x; // TODO: maybe rewrite to improve performance\n\t\n\t if (slider.offsetWidth - Math.abs(dx) > 19) {\n\t slider.style.left = dx + 'px';\n\t }\n\t };\n\t\n\t // end drag handler\n\t var endDrag = function endDrag(e) {\n\t e.preventDefault();\n\t //e.stopPropagation();\n\t\n\t window.removeEventListener('mousemove', drag);\n\t window.removeEventListener('touchmove', drag);\n\t window.removeEventListener('mouseup', endDrag);\n\t window.removeEventListener('touchend', endDrag);\n\t\n\t var dx = slider.offsetLeft;\n\t img.parentNode.removeChild(slider);\n\t img.style.opacity = '1.0';\n\t\n\t if (Math.abs(dx) > 19) {\n\t dispatchAction_(dx > 0 ? 'prev' : 'next', img);\n\t }\n\t };\n\t\n\t window.addEventListener('mousemove', drag);\n\t window.addEventListener('touchmove', drag);\n\t window.addEventListener('mouseup', endDrag); // .bind(this) does not work here\n\t window.addEventListener('touchend', endDrag);\n\t };\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtLightbox.prototype.init = function () {\n\t var _this = this;\n\t\n\t if (this.element_) {\n\t // Do the init required for this component to work\n\t this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this.element_), true);\n\t\n\t if (!(0, _isInteger2.default)(this.element_.getAttribute('tabindex'))) {\n\t this.element_.setAttribute('tabindex', 1);\n\t }\n\t\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + BUTTON))).forEach(function (button) {\n\t return button.addEventListener('click', _this.buttonClickHandler_.bind(button), false);\n\t });\n\t\n\t var figcaption = this.element_.querySelector('figcaption');\n\t if (figcaption) {\n\t figcaption.addEventListener('click', this.buttonClickHandler_.bind(figcaption), false);\n\t }\n\t\n\t var footer = this.element_.querySelector('footer');\n\t if (footer) {\n\t footer.addEventListener('click', this.buttonClickHandler_.bind(footer), false);\n\t }\n\t\n\t var img = this.element_.querySelector('img');\n\t if (img) {\n\t img.addEventListener('load', this.imgLoadHandler_.bind(this.element_), false);\n\t img.addEventListener('click', function (e) {\n\t return e.preventDefault();\n\t }, true);\n\t img.addEventListener('mousedown', this.imgDragHandler_.bind(img), true);\n\t img.addEventListener('touchstart', this.imgDragHandler_.bind(img), true);\n\t }\n\t\n\t // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n\t window.addEventListener('resize', function () {\n\t if (!_this.drawing_) {\n\t // Assumes MDL has polyfilled rAF\n\t window.requestAnimationFrame(function () {\n\t repositionDialog_(_this.element_);\n\t _this.drawing_ = false;\n\t });\n\t }\n\t _this.drawing_ = true;\n\t });\n\t\n\t window.addEventListener('orientationchange', function () {\n\t return repositionDialog_(_this.element_);\n\t });\n\t\n\t // Set upgraded flag\n\t this.element_.classList.add(IS_UPGRADED);\n\t }\n\t };\n\t\n\t /*\n\t * Downgrade component\n\t * E.g remove listeners and clean up resources\n\t * Note: There is a bug i material component container; downgrade is never called!\n\t * Disables method temporarly to keep code coverage at 100% for functions.\n\t *\n\t MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n\t if (this.element_) {\n\t [...this.element_.querySelectorAll(`.${BUTTON}`)].forEach(\n\t button => button.removeEventListener('click', this.buttonClickHandler_)\n\t );\n\t this.element_.removeEventListener('keydown', this.keyDownHandler_);\n\t }\n\t };\n\t */\n\t\n\t /**\n\t * The component registers itself. It can assume componentHandler is available in the global scope.\n\t */\n\t /* jshint undef:false */\n\t componentHandler.register({\n\t constructor: MaterialExtLightbox,\n\t classAsString: 'MaterialExtLightbox',\n\t cssClass: 'mdlext-js-lightbox'\n\t });\n\t})();\n\n/***/ },\n/* 47 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/*\n\t * Copied/Modified from https://github.com/google/material-design-lite/tree/master/src/textfield\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t /**\n\t * Class constructor for Selectfield MDLEXT component.\n\t * Implements MDL component design pattern defined at:\n\t * https://github.com/jasonmayes/mdl-component-design-pattern\n\t *\n\t * @constructor\n\t * @param {HTMLElement} element The element that will be upgraded.\n\t */\n\t\n\t var MaterialExtSelectfield = function MaterialExtSelectfield(element) {\n\t this.element_ = element;\n\t this.init(); // Initialize instance.\n\t };\n\t\n\t window['MaterialExtSelectfield'] = MaterialExtSelectfield;\n\t\n\t /**\n\t * Store constants in one place so they can be updated easily.\n\t *\n\t * @enum {string | number}\n\t * @private\n\t */\n\t MaterialExtSelectfield.prototype.Constant_ = {};\n\t\n\t /**\n\t * Store strings for class names defined by this component that are used in\n\t * JavaScript. This allows us to simply change it in one place should we\n\t * decide to modify at a later date.\n\t *\n\t * @enum {string}\n\t * @private\n\t */\n\t MaterialExtSelectfield.prototype.CssClasses_ = {\n\t LABEL: 'mdlext-selectfield__label',\n\t INPUT: 'mdlext-selectfield__select',\n\t IS_DIRTY: 'is-dirty',\n\t IS_FOCUSED: 'is-focused',\n\t IS_DISABLED: 'is-disabled',\n\t IS_INVALID: 'is-invalid',\n\t IS_UPGRADED: 'is-upgraded'\n\t };\n\t\n\t /**\n\t * Handle focus.\n\t *\n\t * @param {Event} event The event that fired.\n\t * @private\n\t */\n\t /*eslint no-unused-vars: 0*/\n\t MaterialExtSelectfield.prototype.onFocus_ = function () /*event*/{\n\t this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n\t };\n\t\n\t /**\n\t * Handle lost focus.\n\t *\n\t * @param {Event} event The event that fired.\n\t * @private\n\t */\n\t /*eslint no-unused-vars: 0*/\n\t MaterialExtSelectfield.prototype.onBlur_ = function () /*event*/{\n\t this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n\t };\n\t\n\t /**\n\t * Handle reset event from out side.\n\t *\n\t * @param {Event} event The event that fired.\n\t * @private\n\t */\n\t MaterialExtSelectfield.prototype.onReset_ = function () /*event*/{\n\t this.updateClasses_();\n\t };\n\t\n\t /**\n\t * Handle class updates.\n\t *\n\t * @private\n\t */\n\t MaterialExtSelectfield.prototype.updateClasses_ = function () {\n\t this.checkDisabled();\n\t this.checkValidity();\n\t this.checkDirty();\n\t this.checkFocus();\n\t };\n\t\n\t // Public methods.\n\t\n\t /**\n\t * Check the disabled state and update field accordingly.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.checkDisabled = function () {\n\t if (this.select_.disabled) {\n\t this.element_.classList.add(this.CssClasses_.IS_DISABLED);\n\t } else {\n\t this.element_.classList.remove(this.CssClasses_.IS_DISABLED);\n\t }\n\t };\n\t MaterialExtSelectfield.prototype['checkDisabled'] = MaterialExtSelectfield.prototype.checkDisabled;\n\t\n\t /**\n\t * Check the focus state and update field accordingly.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.checkFocus = function () {\n\t /*eslint no-extra-boolean-cast: 0*/\n\t if (Boolean(this.element_.querySelector(':focus'))) {\n\t this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n\t } else {\n\t this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n\t }\n\t };\n\t\n\t MaterialExtSelectfield.prototype['checkFocus'] = MaterialExtSelectfield.prototype.checkFocus;\n\t\n\t /**\n\t * Check the validity state and update field accordingly.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.checkValidity = function () {\n\t\n\t /* Don't think it makes any sense to check validity.\n\t Tests I've done, so far, indicates that setting an illegal value via JS returns selectedIndex=0\n\t if (this.select_.validity) {\n\t if (this.select_.validity.valid) {\n\t this.element_.classList.remove(this.CssClasses_.IS_INVALID);\n\t } else {\n\t this.element_.classList.add(this.CssClasses_.IS_INVALID);\n\t }\n\t }\n\t */\n\t };\n\t\n\t MaterialExtSelectfield.prototype['checkValidity'] = MaterialExtSelectfield.prototype.checkValidity;\n\t\n\t /**\n\t * Check the dirty state and update field accordingly.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.checkDirty = function () {\n\t if (this.select_.value && this.select_.value.length > 0) {\n\t this.element_.classList.add(this.CssClasses_.IS_DIRTY);\n\t } else {\n\t this.element_.classList.remove(this.CssClasses_.IS_DIRTY);\n\t }\n\t };\n\t\n\t MaterialExtSelectfield.prototype['checkDirty'] = MaterialExtSelectfield.prototype.checkDirty;\n\t\n\t /**\n\t * Disable select field.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.disable = function () {\n\t this.select_.disabled = true;\n\t this.updateClasses_();\n\t };\n\t\n\t MaterialExtSelectfield.prototype['disable'] = MaterialExtSelectfield.prototype.disable;\n\t\n\t /**\n\t * Enable select field.\n\t *\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.enable = function () {\n\t this.select_.disabled = false;\n\t this.updateClasses_();\n\t };\n\t\n\t MaterialExtSelectfield.prototype['enable'] = MaterialExtSelectfield.prototype.enable;\n\t\n\t /**\n\t * Update select field value.\n\t *\n\t * @param {string} value The value to which to set the control (optional).\n\t * @public\n\t */\n\t MaterialExtSelectfield.prototype.change = function (value) {\n\t this.select_.value = value || '';\n\t this.updateClasses_();\n\t };\n\t MaterialExtSelectfield.prototype['change'] = MaterialExtSelectfield.prototype.change;\n\t\n\t /**\n\t * Initialize element.\n\t */\n\t MaterialExtSelectfield.prototype.init = function () {\n\t if (this.element_) {\n\t this.label_ = this.element_.querySelector('.' + this.CssClasses_.LABEL);\n\t this.select_ = this.element_.querySelector('.' + this.CssClasses_.INPUT);\n\t\n\t if (this.select_) {\n\t this.boundUpdateClassesHandler = this.updateClasses_.bind(this);\n\t this.boundFocusHandler = this.onFocus_.bind(this);\n\t this.boundBlurHandler = this.onBlur_.bind(this);\n\t this.boundResetHandler = this.onReset_.bind(this);\n\t this.select_.addEventListener('change', this.boundUpdateClassesHandler);\n\t this.select_.addEventListener('focus', this.boundFocusHandler);\n\t this.select_.addEventListener('blur', this.boundBlurHandler);\n\t this.select_.addEventListener('reset', this.boundResetHandler);\n\t\n\t var invalid = this.element_.classList.contains(this.CssClasses_.IS_INVALID);\n\t this.updateClasses_();\n\t this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n\t\n\t if (invalid) {\n\t this.element_.classList.add(this.CssClasses_.IS_INVALID);\n\t }\n\t if (this.select_.hasAttribute('autofocus')) {\n\t this.element_.focus();\n\t this.checkFocus();\n\t }\n\t }\n\t }\n\t };\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /*eslint no-undef: 0*/\n\t componentHandler.register({\n\t constructor: MaterialExtSelectfield,\n\t classAsString: 'MaterialExtSelectfield',\n\t cssClass: 'mdlext-js-selectfield',\n\t widget: true\n\t });\n\t})();\n\n/***/ },\n/* 48 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t * http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * A sticky header makes site navigation easily accessible anywhere on the page and saves content space at the same.\n\t * The header should auto-hide, i.e. hiding the header automatically when a user starts scrolling down the page and\n\t * bringing the header back when a user might need it: they reach the bottom of the page or start scrolling up.\n\t */\n\t\n\t(function () {\n\t 'use strict';\n\t\n\t var IS_UPGRADED = 'is-upgraded';\n\t var CONTENT_CLASS = 'mdl-layout__content';\n\t var IS_SCROLL_CLASS = 'mdlext-is-scroll';\n\t //const STICKY_HEADER_CLASS = 'mdlext-layout__sticky-header';\n\t\n\t\n\t /**\n\t * @constructor\n\t * @param {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtStickyHeader = function MaterialExtStickyHeader(element) {\n\t // Stores the element.\n\t this.header_ = element;\n\t\n\t // Heder listens to scroll events from content\n\t this.content_ = null;\n\t this.lastScrollTop_ = 0;\n\t\n\t // false: allow rAF to be called, true: blocks rAF\n\t this.drawing_ = false;\n\t\n\t // Initialize instance.\n\t this.init();\n\t };\n\t\n\t window['MaterialExtStickyHeader'] = MaterialExtStickyHeader;\n\t\n\t /**\n\t * Update header width\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.recalcWidth_ = function () {\n\t this.header_.style.width = this.content_.clientWidth + 'px';\n\t };\n\t\n\t /**\n\t * Adjust header width when window resizes or oreientation changes\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.resizeHandler_ = function () /* event */{\n\t var _this = this;\n\t\n\t // See: https://developer.mozilla.org/en-US/docs/Web/Events/resize\n\t if (!this.drawing_) {\n\t // Assumes MDL has polyfilled rAF\n\t window.requestAnimationFrame(function () {\n\t _this.recalcWidth_();\n\t _this.drawing_ = false;\n\t });\n\t }\n\t this.drawing_ = true;\n\t };\n\t\n\t /**\n\t * Update header position\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.reposition_ = function () {\n\t\n\t var currentContentScrollTop = this.content_.scrollTop;\n\t var scrollDiff = this.lastScrollTop_ - currentContentScrollTop;\n\t\n\t if (currentContentScrollTop <= 0) {\n\t // Scrolled to the top. Header sticks to the top\n\t this.header_.style.top = '0';\n\t this.header_.classList.remove(IS_SCROLL_CLASS);\n\t } else if (scrollDiff > 0) {\n\t\n\t if (scrollDiff >= this.header_.offsetHeight) {\n\t\n\t // Scrolled up. Header slides in\n\t var headerTop = parseInt(window.getComputedStyle(this.header_).getPropertyValue('top')) || 0;\n\t if (headerTop != 0) {\n\t this.header_.style.top = '0';\n\t this.header_.classList.add(IS_SCROLL_CLASS);\n\t }\n\t this.lastScrollTop_ = currentContentScrollTop;\n\t }\n\t return;\n\t } else if (scrollDiff < 0) {\n\t // Scrolled down\n\t this.header_.classList.add(IS_SCROLL_CLASS);\n\t var _headerTop = parseInt(window.getComputedStyle(this.header_).getPropertyValue('top')) || 0;\n\t\n\t if (this.content_.scrollHeight - this.content_.scrollTop <= this.content_.offsetHeight) {\n\t // Bottom of content\n\t if (_headerTop != 0) {\n\t this.header_.style.top = '0';\n\t }\n\t } else {\n\t _headerTop += scrollDiff;\n\t var offsetHeight = this.header_.offsetHeight;\n\t this.header_.style.top = (Math.abs(_headerTop) > offsetHeight ? -offsetHeight : _headerTop) + 'px';\n\t }\n\t }\n\t\n\t this.lastScrollTop_ = currentContentScrollTop;\n\t };\n\t\n\t /**\n\t * Scroll header when content scrolls\n\t * @param event\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.scrollHandler_ = function () /* event */{\n\t var _this2 = this;\n\t\n\t // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n\t if (!this.drawing_) {\n\t window.requestAnimationFrame(function () {\n\t _this2.reposition_();\n\t _this2.drawing_ = false;\n\t });\n\t }\n\t this.drawing_ = true;\n\t };\n\t\n\t /**\n\t * Init header position\n\t * @private\n\t */\n\t MaterialExtStickyHeader.prototype.updatePosition_ = function () /* event */{\n\t this.recalcWidth_();\n\t this.reposition_();\n\t };\n\t\n\t /**\n\t * Initialize component\n\t */\n\t MaterialExtStickyHeader.prototype.init = function () {\n\t var _this3 = this;\n\t\n\t if (this.header_) {\n\t this.content_ = this.header_.parentNode.querySelector('.' + CONTENT_CLASS) || null;\n\t\n\t if (this.content_) {\n\t this.content_.style.paddingTop = this.header_.offsetHeight + 'px'; // Make room for sticky header\n\t this.lastScrollTop_ = this.content_.scrollTop;\n\t\n\t this.content_.addEventListener('scroll', this.scrollHandler_.bind(this));\n\t window.addEventListener('resize', this.resizeHandler_.bind(this));\n\t window.addEventListener('orientationchange', this.resizeHandler_.bind(this));\n\t\n\t // Adjust header width if content changes (e.g. in a SPA)\n\t var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\t\n\t // jsdom does not support MutationObserver - so this is not testable\n\t /* istanbul ignore next */\n\t new MutationObserver(function () /*mutations*/{\n\t\n\t if (!_this3.drawing_) {\n\t window.requestAnimationFrame(function () {\n\t _this3.updatePosition_();\n\t _this3.drawing_ = false;\n\t });\n\t }\n\t _this3.drawing_ = true;\n\t }).observe(this.content_, {\n\t attributes: false,\n\t childList: true,\n\t characterData: false,\n\t subtree: true\n\t });\n\t\n\t // Set initial position\n\t this.updatePosition_();\n\t\n\t // Set upgraded flag\n\t this.header_.classList.add(IS_UPGRADED);\n\t }\n\t }\n\t };\n\t\n\t /*\n\t * Downgrade component\n\t * E.g remove listeners and clean up resources\n\t * Note: There is a bug i material component container; downgrade is never called!\n\t * Disables method temporarly to keep code coverage at 100% for functions.\n\t *\n\t MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n\t 'use strict';\n\t };\n\t */\n\t\n\t // The component registers itself. It can assume componentHandler is available\n\t // in the global scope.\n\t /* eslint no-undef: 0 */\n\t componentHandler.register({\n\t constructor: MaterialExtStickyHeader,\n\t classAsString: 'MaterialExtStickyHeader',\n\t cssClass: 'mdlext-js-sticky-header'\n\t });\n\t})();\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(57), __esModule: true };\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(59), __esModule: true };\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(61), __esModule: true };\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(62), __esModule: true };\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(63), __esModule: true };\n\n/***/ },\n/* 54 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\texports.default = function (instance, Constructor) {\n\t if (!(instance instanceof Constructor)) {\n\t throw new TypeError(\"Cannot call a class as a function\");\n\t }\n\t};\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(52);\n\t\n\tvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t function defineProperties(target, props) {\n\t for (var i = 0; i < props.length; i++) {\n\t var descriptor = props[i];\n\t descriptor.enumerable = descriptor.enumerable || false;\n\t descriptor.configurable = true;\n\t if (\"value\" in descriptor) descriptor.writable = true;\n\t (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n\t }\n\t }\n\t\n\t return function (Constructor, protoProps, staticProps) {\n\t if (protoProps) defineProperties(Constructor.prototype, protoProps);\n\t if (staticProps) defineProperties(Constructor, staticProps);\n\t return Constructor;\n\t };\n\t}();\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _isIterable2 = __webpack_require__(50);\n\t\n\tvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\t\n\tvar _getIterator2 = __webpack_require__(26);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t function sliceIterator(arr, i) {\n\t var _arr = [];\n\t var _n = true;\n\t var _d = false;\n\t var _e = undefined;\n\t\n\t try {\n\t for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n\t _arr.push(_s.value);\n\t\n\t if (i && _arr.length === i) break;\n\t }\n\t } catch (err) {\n\t _d = true;\n\t _e = err;\n\t } finally {\n\t try {\n\t if (!_n && _i[\"return\"]) _i[\"return\"]();\n\t } finally {\n\t if (_d) throw _e;\n\t }\n\t }\n\t\n\t return _arr;\n\t }\n\t\n\t return function (arr, i) {\n\t if (Array.isArray(arr)) {\n\t return arr;\n\t } else if ((0, _isIterable3.default)(Object(arr))) {\n\t return sliceIterator(arr, i);\n\t } else {\n\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n\t }\n\t };\n\t}();\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(23);\n\t__webpack_require__(90);\n\tmodule.exports = __webpack_require__(1).Array.from;\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(41);\n\t__webpack_require__(23);\n\tmodule.exports = __webpack_require__(88);\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(41);\n\t__webpack_require__(23);\n\tmodule.exports = __webpack_require__(89);\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(92);\n\tmodule.exports = __webpack_require__(1).Number.isInteger;\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(93);\n\tmodule.exports = __webpack_require__(1).Object.assign;\n\n/***/ },\n/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(94);\n\tvar $Object = __webpack_require__(1).Object;\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $Object.defineProperty(it, key, desc);\n\t};\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(95);\n\tmodule.exports = __webpack_require__(1).Object.entries;\n\n/***/ },\n/* 64 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 65 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// false -> Array#indexOf\n\t// true -> Array#includes\n\tvar toIObject = __webpack_require__(14)\n\t , toLength = __webpack_require__(38)\n\t , toIndex = __webpack_require__(86);\n\tmodule.exports = function(IS_INCLUDES){\n\t return function($this, el, fromIndex){\n\t var O = toIObject($this)\n\t , length = toLength(O.length)\n\t , index = toIndex(fromIndex, length)\n\t , value;\n\t // Array#includes uses SameValueZero equality algorithm\n\t if(IS_INCLUDES && el != el)while(length > index){\n\t value = O[index++];\n\t if(value != value)return true;\n\t // Array#toIndex ignores holes, Array#includes - not\n\t } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n\t if(O[index] === el)return IS_INCLUDES || index || 0;\n\t } return !IS_INCLUDES && -1;\n\t };\n\t};\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $defineProperty = __webpack_require__(10)\n\t , createDesc = __webpack_require__(19);\n\t\n\tmodule.exports = function(object, index, value){\n\t if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n\t else object[index] = value;\n\t};\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(4).document && document.documentElement;\n\n/***/ },\n/* 69 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = !__webpack_require__(8) && !__webpack_require__(17)(function(){\n\t return Object.defineProperty(__webpack_require__(31)('div'), 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// check on default Array iterator\n\tvar Iterators = __webpack_require__(5)\n\t , ITERATOR = __webpack_require__(2)('iterator')\n\t , ArrayProto = Array.prototype;\n\t\n\tmodule.exports = function(it){\n\t return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n\t};\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.3 Number.isInteger(number)\n\tvar isObject = __webpack_require__(13)\n\t , floor = Math.floor;\n\tmodule.exports = function isInteger(it){\n\t return !isObject(it) && isFinite(it) && floor(it) === it;\n\t};\n\n/***/ },\n/* 72 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// call something on iterator step with safe closing on error\n\tvar anObject = __webpack_require__(7);\n\tmodule.exports = function(iterator, fn, value, entries){\n\t try {\n\t return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n\t // 7.4.6 IteratorClose(iterator, completion)\n\t } catch(e){\n\t var ret = iterator['return'];\n\t if(ret !== undefined)anObject(ret.call(iterator));\n\t throw e;\n\t }\n\t};\n\n/***/ },\n/* 73 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar create = __webpack_require__(78)\n\t , descriptor = __webpack_require__(19)\n\t , setToStringTag = __webpack_require__(36)\n\t , IteratorPrototype = {};\n\t\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\t__webpack_require__(9)(IteratorPrototype, __webpack_require__(2)('iterator'), function(){ return this; });\n\t\n\tmodule.exports = function(Constructor, NAME, next){\n\t Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n\t setToStringTag(Constructor, NAME + ' Iterator');\n\t};\n\n/***/ },\n/* 74 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar ITERATOR = __webpack_require__(2)('iterator')\n\t , SAFE_CLOSING = false;\n\t\n\ttry {\n\t var riter = [7][ITERATOR]();\n\t riter['return'] = function(){ SAFE_CLOSING = true; };\n\t Array.from(riter, function(){ throw 2; });\n\t} catch(e){ /* empty */ }\n\t\n\tmodule.exports = function(exec, skipClosing){\n\t if(!skipClosing && !SAFE_CLOSING)return false;\n\t var safe = false;\n\t try {\n\t var arr = [7]\n\t , iter = arr[ITERATOR]();\n\t iter.next = function(){ return {done: safe = true}; };\n\t arr[ITERATOR] = function(){ return iter; };\n\t exec(arr);\n\t } catch(e){ /* empty */ }\n\t return safe;\n\t};\n\n/***/ },\n/* 75 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 76 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 77 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// 19.1.2.1 Object.assign(target, source, ...)\n\tvar getKeys = __webpack_require__(18)\n\t , gOPS = __webpack_require__(80)\n\t , pIE = __webpack_require__(35)\n\t , toObject = __webpack_require__(22)\n\t , IObject = __webpack_require__(33)\n\t , $assign = Object.assign;\n\t\n\t// should work with symbols and should have deterministic property order (V8 bug)\n\tmodule.exports = !$assign || __webpack_require__(17)(function(){\n\t var A = {}\n\t , B = {}\n\t , S = Symbol()\n\t , K = 'abcdefghijklmnopqrst';\n\t A[S] = 7;\n\t K.split('').forEach(function(k){ B[k] = k; });\n\t return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n\t}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n\t var T = toObject(target)\n\t , aLen = arguments.length\n\t , index = 1\n\t , getSymbols = gOPS.f\n\t , isEnum = pIE.f;\n\t while(aLen > index){\n\t var S = IObject(arguments[index++])\n\t , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n\t , length = keys.length\n\t , j = 0\n\t , key;\n\t while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n\t } return T;\n\t} : $assign;\n\n/***/ },\n/* 78 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n\tvar anObject = __webpack_require__(7)\n\t , dPs = __webpack_require__(79)\n\t , enumBugKeys = __webpack_require__(32)\n\t , IE_PROTO = __webpack_require__(20)('IE_PROTO')\n\t , Empty = function(){ /* empty */ }\n\t , PROTOTYPE = 'prototype';\n\t\n\t// Create object with fake `null` prototype: use iframe Object with cleared prototype\n\tvar createDict = function(){\n\t // Thrash, waste and sodomy: IE GC bug\n\t var iframe = __webpack_require__(31)('iframe')\n\t , i = enumBugKeys.length\n\t , lt = '<'\n\t , gt = '>'\n\t , iframeDocument;\n\t iframe.style.display = 'none';\n\t __webpack_require__(68).appendChild(iframe);\n\t iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n\t // createDict = iframe.contentWindow.Object;\n\t // html.removeChild(iframe);\n\t iframeDocument = iframe.contentWindow.document;\n\t iframeDocument.open();\n\t iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n\t iframeDocument.close();\n\t createDict = iframeDocument.F;\n\t while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n\t return createDict();\n\t};\n\t\n\tmodule.exports = Object.create || function create(O, Properties){\n\t var result;\n\t if(O !== null){\n\t Empty[PROTOTYPE] = anObject(O);\n\t result = new Empty;\n\t Empty[PROTOTYPE] = null;\n\t // add \"__proto__\" for Object.getPrototypeOf polyfill\n\t result[IE_PROTO] = O;\n\t } else result = createDict();\n\t return Properties === undefined ? result : dPs(result, Properties);\n\t};\n\n\n/***/ },\n/* 79 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP = __webpack_require__(10)\n\t , anObject = __webpack_require__(7)\n\t , getKeys = __webpack_require__(18);\n\t\n\tmodule.exports = __webpack_require__(8) ? Object.defineProperties : function defineProperties(O, Properties){\n\t anObject(O);\n\t var keys = getKeys(Properties)\n\t , length = keys.length\n\t , i = 0\n\t , P;\n\t while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n\t return O;\n\t};\n\n/***/ },\n/* 80 */\n/***/ function(module, exports) {\n\n\texports.f = Object.getOwnPropertySymbols;\n\n/***/ },\n/* 81 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\n\tvar has = __webpack_require__(12)\n\t , toObject = __webpack_require__(22)\n\t , IE_PROTO = __webpack_require__(20)('IE_PROTO')\n\t , ObjectProto = Object.prototype;\n\t\n\tmodule.exports = Object.getPrototypeOf || function(O){\n\t O = toObject(O);\n\t if(has(O, IE_PROTO))return O[IE_PROTO];\n\t if(typeof O.constructor == 'function' && O instanceof O.constructor){\n\t return O.constructor.prototype;\n\t } return O instanceof Object ? ObjectProto : null;\n\t};\n\n/***/ },\n/* 82 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar has = __webpack_require__(12)\n\t , toIObject = __webpack_require__(14)\n\t , arrayIndexOf = __webpack_require__(66)(false)\n\t , IE_PROTO = __webpack_require__(20)('IE_PROTO');\n\t\n\tmodule.exports = function(object, names){\n\t var O = toIObject(object)\n\t , i = 0\n\t , result = []\n\t , key;\n\t for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n\t // Don't enum bug & hidden keys\n\t while(names.length > i)if(has(O, key = names[i++])){\n\t ~arrayIndexOf(result, key) || result.push(key);\n\t }\n\t return result;\n\t};\n\n/***/ },\n/* 83 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getKeys = __webpack_require__(18)\n\t , toIObject = __webpack_require__(14)\n\t , isEnum = __webpack_require__(35).f;\n\tmodule.exports = function(isEntries){\n\t return function(it){\n\t var O = toIObject(it)\n\t , keys = getKeys(O)\n\t , length = keys.length\n\t , i = 0\n\t , result = []\n\t , key;\n\t while(length > i)if(isEnum.call(O, key = keys[i++])){\n\t result.push(isEntries ? [key, O[key]] : O[key]);\n\t } return result;\n\t };\n\t};\n\n/***/ },\n/* 84 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(9);\n\n/***/ },\n/* 85 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(21)\n\t , defined = __webpack_require__(16);\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tmodule.exports = function(TO_STRING){\n\t return function(that, pos){\n\t var s = String(defined(that))\n\t , i = toInteger(pos)\n\t , l = s.length\n\t , a, b;\n\t if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n/***/ },\n/* 86 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(21)\n\t , max = Math.max\n\t , min = Math.min;\n\tmodule.exports = function(index, length){\n\t index = toInteger(index);\n\t return index < 0 ? max(index + length, 0) : min(index, length);\n\t};\n\n/***/ },\n/* 87 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.1 ToPrimitive(input [, PreferredType])\n\tvar isObject = __webpack_require__(13);\n\t// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n\t// and the second argument - flag - preferred type is a string\n\tmodule.exports = function(it, S){\n\t if(!isObject(it))return it;\n\t var fn, val;\n\t if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n\t if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t throw TypeError(\"Can't convert object to primitive value\");\n\t};\n\n/***/ },\n/* 88 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(7)\n\t , get = __webpack_require__(40);\n\tmodule.exports = __webpack_require__(1).getIterator = function(it){\n\t var iterFn = get(it);\n\t if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n\t return anObject(iterFn.call(it));\n\t};\n\n/***/ },\n/* 89 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(28)\n\t , ITERATOR = __webpack_require__(2)('iterator')\n\t , Iterators = __webpack_require__(5);\n\tmodule.exports = __webpack_require__(1).isIterable = function(it){\n\t var O = Object(it);\n\t return O[ITERATOR] !== undefined\n\t || '@@iterator' in O\n\t || Iterators.hasOwnProperty(classof(O));\n\t};\n\n/***/ },\n/* 90 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar ctx = __webpack_require__(30)\n\t , $export = __webpack_require__(3)\n\t , toObject = __webpack_require__(22)\n\t , call = __webpack_require__(72)\n\t , isArrayIter = __webpack_require__(70)\n\t , toLength = __webpack_require__(38)\n\t , createProperty = __webpack_require__(67)\n\t , getIterFn = __webpack_require__(40);\n\t\n\t$export($export.S + $export.F * !__webpack_require__(74)(function(iter){ Array.from(iter); }), 'Array', {\n\t // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n\t from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n\t var O = toObject(arrayLike)\n\t , C = typeof this == 'function' ? this : Array\n\t , aLen = arguments.length\n\t , mapfn = aLen > 1 ? arguments[1] : undefined\n\t , mapping = mapfn !== undefined\n\t , index = 0\n\t , iterFn = getIterFn(O)\n\t , length, result, step, iterator;\n\t if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n\t // if object isn't iterable or it's array with default iterator - use simple case\n\t if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n\t for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n\t createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n\t }\n\t } else {\n\t length = toLength(O.length);\n\t for(result = new C(length); length > index; index++){\n\t createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n\t }\n\t }\n\t result.length = index;\n\t return result;\n\t }\n\t});\n\n\n/***/ },\n/* 91 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(65)\n\t , step = __webpack_require__(75)\n\t , Iterators = __webpack_require__(5)\n\t , toIObject = __webpack_require__(14);\n\t\n\t// 22.1.3.4 Array.prototype.entries()\n\t// 22.1.3.13 Array.prototype.keys()\n\t// 22.1.3.29 Array.prototype.values()\n\t// 22.1.3.30 Array.prototype[@@iterator]()\n\tmodule.exports = __webpack_require__(34)(Array, 'Array', function(iterated, kind){\n\t this._t = toIObject(iterated); // target\n\t this._i = 0; // next index\n\t this._k = kind; // kind\n\t// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , kind = this._k\n\t , index = this._i++;\n\t if(!O || index >= O.length){\n\t this._t = undefined;\n\t return step(1);\n\t }\n\t if(kind == 'keys' )return step(0, index);\n\t if(kind == 'values')return step(0, O[index]);\n\t return step(0, [index, O[index]]);\n\t}, 'values');\n\t\n\t// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\tIterators.Arguments = Iterators.Array;\n\t\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n/***/ },\n/* 92 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.3 Number.isInteger(number)\n\tvar $export = __webpack_require__(3);\n\t\n\t$export($export.S, 'Number', {isInteger: __webpack_require__(71)});\n\n/***/ },\n/* 93 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.1 Object.assign(target, source)\n\tvar $export = __webpack_require__(3);\n\t\n\t$export($export.S + $export.F, 'Object', {assign: __webpack_require__(77)});\n\n/***/ },\n/* 94 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(3);\n\t// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n\t$export($export.S + $export.F * !__webpack_require__(8), 'Object', {defineProperty: __webpack_require__(10).f});\n\n/***/ },\n/* 95 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/tc39/proposal-object-values-entries\n\tvar $export = __webpack_require__(3)\n\t , $entries = __webpack_require__(83)(true);\n\t\n\t$export($export.S, 'Object', {\n\t entries: function entries(it){\n\t return $entries(it);\n\t }\n\t});\n\n/***/ },\n/* 96 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** mdl-ext.min.js\n **/"," \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 8d566557da459e6b0e58\n **/","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 ** ./~/core-js/library/modules/_core.js\n ** module id = 1\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_wks.js\n ** module id = 2\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_export.js\n ** module id = 3\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_global.js\n ** module id = 4\n ** module chunks = 0 1\n **/","module.exports = {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iterators.js\n ** module id = 5\n ** module chunks = 0 1\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/**\n * Due to a bug in mdl-1.1.3 it is not possible to use a globally polyfilled CustomEvent constructor\n * Since I do not care too much about IE11, a brute force approach is sufficient.\n *\n * @param {string} typeArg Is a String representing the name of the event.\n * @param {Object} customEventInit Is an EventInit dictionary, having the following fields:\n * \"bubbles\", optional and defaulting to false, of type Boolean, indicating if the event bubbles or not.\n * \"cancelable\", optional and defaulting to false, of type Boolean, indicating if the event can be canceled or not.\n * \"detail\", optional and defaulting to null, of type any, that is an event-dependent value associated with the event.\n */\n\nexport function createCustomEvent( typeArg, customEventInit = { bubbles: false, cancelable: false, detail: null } ) {\n\n try {\n // Modern browsers\n return new window.CustomEvent(typeArg, customEventInit);\n }\n catch(e) {\n // Copied from https://github.com/webcomponents/webcomponentsjs/blob/v0.7.12/CustomElements.js#L950\n // Copied from http://stackoverflow.com/questions/23349191/event-preventdefault-is-not-working-in-ie-11-for-custom-events\n const ce = document.createEvent('CustomEvent');\n ce.initCustomEvent(typeArg, customEventInit.bubbles, customEventInit.cancelable, customEventInit.detail);\n\n ce.preventDefault = function() {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n };\n return ce;\n }\n // Let old browsers throw whatewer they want to throw\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/custom-event.js\n **/","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 ** ./~/core-js/library/modules/_an-object.js\n ** module id = 7\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_descriptors.js\n ** module id = 8\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_hide.js\n ** module id = 9\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-dp.js\n ** module id = 10\n ** module chunks = 0 1\n **/","\"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 = 11\n ** module chunks = 0 1\n **/","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_has.js\n ** module id = 12\n ** module chunks = 0 1\n **/","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-object.js\n ** module id = 13\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-iobject.js\n ** module id = 14\n ** module chunks = 0 1\n **/","/*\n * Code pulled from:\n * https://github.com/jonathantneal/closest/blob/master/closest.js\n * https://plainjs.com/javascript/traversing/get-closest-element-by-selector-39/\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n * http://stackoverflow.com/questions/18663941/finding-closest-element-without-jquery\n */\n\n/**\n * Element.matches() polyfill\n * The Element.matches() method returns true if the element would be selected by the specified selector string;\n * otherwise, returns false.\n */\nif (typeof Element.prototype.matches !== 'function') {\n Element.prototype.matches = Element.prototype.msMatchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n\n function matches(selector) {\n const element = this;\n const elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n let i = elements.length;\n while (--i >= 0 && elements.item(i) !== element);\n return i > -1;\n };\n}\n\n/**\n * Element.closest() polyfill\n * The Element.closest() method returns the closest ancestor of the current element (or the current element itself)\n * which matches the selectors given in parameter. If there isn't such an ancestor, it returns null.\n */\nif (typeof Element.prototype.closest !== 'function') {\n Element.prototype.closest = function closest(selector) {\n let element = this;\n\n while (element && element.nodeType === Node.ELEMENT_NODE) {\n if(element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n return null;\n };\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/closest-polyfill.js\n **/","// 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 ** ./~/core-js/library/modules/_defined.js\n ** module id = 16\n ** module chunks = 0 1\n **/","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_fails.js\n ** module id = 17\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 18\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_property-desc.js\n ** module id = 19\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 20\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-integer.js\n ** module id = 21\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-object.js\n ** module id = 22\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 23\n ** module chunks = 0 1\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 * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * rAF based animation loop\n */\n\nclass MdlExtAnimationLoop {\n\n /**\n * @constructor\n *\n * @param interval\n */\n constructor(interval = 17) {\n this.interval = interval;\n this.running_ = false;\n this.rAFId_ = 0;\n this.timeElapsed_ = 0;\n }\n\n /**\n * Set interval between each rAF tick\n * @param interval\n */\n set interval(interval) {\n this.interval_ = interval < 17 ? 17 : interval; // 17 ~ 60fps\n }\n\n /**\n * @returns {boolean|*} true if animation is running\n */\n get running() {\n return this.running_;\n }\n\n /**\n * Cancels animation loop\n */\n cancelRAF() {\n if(this.rAFId_ !== 0) {\n window.cancelAnimationFrame(this.rAFId_);\n this.rAFId_ = 0;\n }\n this.running_ = false;\n this.timeElapsed_ = 0;\n }\n\n /**\n * Start rAF animation loop\n * @param tick callback function\n */\n start( tick ) {\n this.running_ = true;\n let timeStart = Date.now();\n\n const loop = now => {\n if (this.running_) {\n this.rAFId_ = window.requestAnimationFrame( () => loop( Date.now() ));\n this.timeElapsed_ += now - timeStart;\n\n if(this.timeElapsed_ >= this.interval_) {\n this.running_ = tick( this.timeElapsed_ );\n if( (this.timeElapsed_ -= this.interval_) > this.interval_) {\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 this.timeElapsed_ = 0;\n }\n }\n timeStart = now;\n }\n };\n loop(timeStart);\n return this;\n }\n\n /**\n * Stops animation\n */\n stop() {\n this.cancelRAF();\n return this;\n }\n}\n\nexport default MdlExtAnimationLoop;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/animationloop.js\n **/","// See: http://robertpenner.com/easing/\n\nexport const 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\nexport const 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\n\n\n/** WEBPACK FOOTER **\n ** ./src/utils/easing.js\n **/","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 = 26\n ** module chunks = 0 1\n **/","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 = 27\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_classof.js\n ** module id = 28\n ** module chunks = 0 1\n **/","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_cof.js\n ** module id = 29\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_ctx.js\n ** module id = 30\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_dom-create.js\n ** module id = 31\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 32\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_iobject.js\n ** module id = 33\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_iter-define.js\n ** module id = 34\n ** module chunks = 0 1\n **/","exports.f = {}.propertyIsEnumerable;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-pie.js\n ** module id = 35\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_set-to-string-tag.js\n ** module id = 36\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_shared.js\n ** module id = 37\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-length.js\n ** module id = 38\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_uid.js\n ** module id = 39\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.get-iterator-method.js\n ** module id = 40\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 41\n ** module chunks = 0 1\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 * 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 { createCustomEvent } from '../utils/custom-event';\n\n\n(function() {\n 'use strict';\n\n const VK_ENTER = 13;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\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 ARIA_MULTISELECTABLE = 'aria-multiselectable';\n const ARIA_EXPANDED = 'aria-expanded';\n const ARIA_HIDDEN = 'aria-hidden';\n const ARIA_SELECTED = 'aria-selected';\n const IS_EXPANDED = 'is-expanded';\n const IS_UPGRADED = 'is-upgraded';\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 /**\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 // 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 = createCustomEvent('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 = e => {\n e.preventDefault();\n e.stopPropagation();\n this.toggleTab_(panel, tab, tabpanel);\n selectTab();\n };\n\n const tabFocusHandler = e => {\n e.preventDefault();\n e.stopPropagation();\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 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 * Downgrade component\n * E.g remove listeners and clean up resources\n *\n * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\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 * @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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\nimport MdlExtAnimationLoop from '../utils/animationloop';\nimport { inOutQuintic } from '../utils/easing';\n\n(function() {\n 'use strict';\n\n const VK_TAB = 9;\n const VK_ENTER = 13;\n const VK_ESC = 27;\n const VK_SPACE = 32;\n const VK_PAGE_UP = 33;\n const VK_PAGE_DOWN = 34;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\n const IS_FOCUSED = 'is-focused';\n //const CAROUSEL = 'mdlext-carousel';\n const SLIDE = 'mdlext-carousel__slide';\n const ROLE = 'list';\n const SLIDE_ROLE = 'listitem';\n\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_COMPONENT = 'MaterialRipple';\n const RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n const RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n const RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\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: new MdlExtAnimationLoop(1000)\n };\n\n this.scrollAnimation_ = new MdlExtAnimationLoop(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.running) {\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.running) {\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().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 this.command_(action);\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 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 = createCustomEvent('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 // 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(`.${RIPPLE_CONTAINER}`)) {\n const rippleContainer = document.createElement('span');\n rippleContainer.classList.add(RIPPLE_CONTAINER);\n rippleContainer.classList.add(RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(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, 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(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 const s = this.element_.getAttribute('data-config').replace(/'/g, '\"');\n try {\n const c = JSON.parse(s);\n Object.assign(this.config_, c);\n }\n catch (e) {\n throw new Error(`Failed to parse \"data-config = ${s}\". Error: ${e.message}`);\n }\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 if(this.config_.interactive) {\n\n // Ripple\n const hasRippleEffect = this.element_.classList.contains(RIPPLE_EFFECT);\n if (hasRippleEffect) {\n this.element_.classList.add(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 // Click is handled by drag\n this.element_.addEventListener('click', e => e.preventDefault(), false);\n }\n\n // Listen to custom 'command' event\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n /* Not needed. Difficult to test. Call upgradeSlides() from client instead.\n // Detect insertions into components DOM\n const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n // jsdom does not support MutationObserver - so this is not testable\n new MutationObserver( mutations => {\n mutations.forEach( mutation => {\n if (mutation.addedNodes.length > 0) {\n window.requestAnimationFrame(() => this.upgradeSlides() );\n }\n });\n }).observe( this.element_, {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: false\n });\n */\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n MaterialExtCarousel.prototype.mdlDowngrade_ = function() {\n 'use strict';\n console.log('***** MaterialExtCarousel.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: MaterialExtCarousel,\n classAsString: 'MaterialExtCarousel',\n cssClass: 'mdlext-js-carousel',\n widget: true\n });\n\n})();\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/carousel/carousel.js\n **/","'use strict';\n//import 'utils/closest-polyfill';\nimport 'utils/custom-event';\nimport 'utils/animationloop';\nimport 'utils/easing';\nimport 'sticky-header/sticky-header';\nimport 'selectfield/selectfield';\nimport 'accordion/accordion';\nimport 'lightboard/lightboard';\nimport 'lightbox/lightbox';\nimport 'carousel/carousel';\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\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 * 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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_ENTER = 13;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\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 const RIPPLE_COMPONENT = 'MaterialRipple';\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container';\n const RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n const RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\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 * 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(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n\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\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 createCustomEvent('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(`.${RIPPLE_CONTAINER}`)) {\n const a = slide.querySelector(`.${SLIDE_TABSTOP}`);\n if(a) {\n const rippleContainer = a;\n rippleContainer.classList.add(RIPPLE_CONTAINER);\n rippleContainer.classList.add(RIPPLE_EFFECT);\n const ripple = document.createElement('span');\n ripple.classList.add(RIPPLE);\n rippleContainer.appendChild(ripple);\n componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n }\n }\n };\n\n const hasRippleEffect = this.element_.classList.contains(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 // 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 * @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 '../utils/closest-polyfill';\nimport { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_ESC = 27;\n const VK_SPACE = 32;\n const VK_END = 35;\n const VK_HOME = 36;\n const VK_ARROW_LEFT = 37;\n const VK_ARROW_UP = 38;\n const VK_ARROW_RIGHT = 39;\n const VK_ARROW_DOWN = 40;\n\n const IS_UPGRADED = 'is-upgraded';\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 // false: allow rAF to be called, true: blocks rAF\n this.drawing_ = false;\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(createCustomEvent('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 dialog = lightboxElement.parentNode.nodeName === 'DIALOG' ? lightboxElement.parentNode : null;\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); // .bind(this) does not work here\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\n // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n window.addEventListener('resize', () => {\n if(!this.drawing_) {\n // Assumes MDL has polyfilled rAF\n window.requestAnimationFrame( () => {\n repositionDialog_(this.element_);\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\n });\n\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n\n MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n\n if (this.element_) {\n [...this.element_.querySelectorAll(`.${BUTTON}`)].forEach(\n button => button.removeEventListener('click', this.buttonClickHandler_)\n );\n\n this.element_.removeEventListener('keydown', this.keyDownHandler_);\n }\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/** WEBPACK FOOTER **\n ** ./src/lightbox/lightbox.js\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 * 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\n(function() {\n 'use strict';\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 * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\n MaterialExtSelectfield.prototype.Constant_ = {\n };\n\n /**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\n MaterialExtSelectfield.prototype.CssClasses_ = {\n LABEL: 'mdlext-selectfield__label',\n INPUT: 'mdlext-selectfield__select',\n IS_DIRTY: 'is-dirty',\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_INVALID: 'is-invalid',\n IS_UPGRADED: 'is-upgraded'\n };\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(this.CssClasses_.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(this.CssClasses_.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(this.CssClasses_.IS_DISABLED);\n } else {\n this.element_.classList.remove(this.CssClasses_.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 /*eslint no-extra-boolean-cast: 0*/\n if (Boolean(this.element_.querySelector(':focus'))) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n } else {\n this.element_.classList.remove(this.CssClasses_.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(this.CssClasses_.IS_DIRTY);\n } else {\n this.element_.classList.remove(this.CssClasses_.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(`.${this.CssClasses_.LABEL}`);\n this.select_ = this.element_.querySelector(`.${this.CssClasses_.INPUT}`);\n\n if (this.select_) {\n this.boundUpdateClassesHandler = this.updateClasses_.bind(this);\n this.boundFocusHandler = this.onFocus_.bind(this);\n this.boundBlurHandler = this.onBlur_.bind(this);\n this.boundResetHandler = this.onReset_.bind(this);\n this.select_.addEventListener('change', this.boundUpdateClassesHandler);\n this.select_.addEventListener('focus', this.boundFocusHandler);\n this.select_.addEventListener('blur', this.boundBlurHandler);\n this.select_.addEventListener('reset', this.boundResetHandler);\n\n const invalid = this.element_.classList.contains(this.CssClasses_.IS_INVALID);\n this.updateClasses_();\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n\n if (invalid) {\n this.element_.classList.add(this.CssClasses_.IS_INVALID);\n }\n if (this.select_.hasAttribute('autofocus')) {\n this.element_.focus();\n this.checkFocus();\n }\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: 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 * @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\n(function() {\n 'use strict';\n\n const IS_UPGRADED = 'is-upgraded';\n const CONTENT_CLASS = 'mdl-layout__content';\n const IS_SCROLL_CLASS = 'mdlext-is-scroll';\n //const STICKY_HEADER_CLASS = 'mdlext-layout__sticky-header';\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 // false: allow rAF to be called, true: blocks rAF\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 /**\n * Adjust header width when window resizes or oreientation changes\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.resizeHandler_ = function( /* event */ ) {\n\n // See: https://developer.mozilla.org/en-US/docs/Web/Events/resize\n if(!this.drawing_) {\n // Assumes MDL has polyfilled rAF\n window.requestAnimationFrame( () => {\n this.recalcWidth_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\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 = '0';\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 * Scroll header when content scrolls\n * @param event\n * @private\n */\n MaterialExtStickyHeader.prototype.scrollHandler_ = function( /* event */ ) {\n // See: https://developer.mozilla.org/ru/docs/Web/Events/resize\n if(!this.drawing_) {\n window.requestAnimationFrame( () => {\n this.reposition_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\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 * Initialize component\n */\n MaterialExtStickyHeader.prototype.init = function() {\n\n if (this.header_) {\n this.content_ = this.header_.parentNode.querySelector(`.${CONTENT_CLASS}`) || 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 // Adjust header width if content changes (e.g. in a SPA)\n const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n\n // jsdom does not support MutationObserver - so this is not testable\n /* istanbul ignore next */\n new MutationObserver( ( /*mutations*/ ) => {\n\n if(!this.drawing_) {\n window.requestAnimationFrame( () => {\n this.updatePosition_();\n this.drawing_ = false;\n });\n }\n this.drawing_ = true;\n\n }).observe( this.content_, {\n attributes: false,\n childList: true,\n characterData: false,\n subtree: true\n });\n\n // Set initial position\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 * Note: There is a bug i material component container; downgrade is never called!\n * Disables method temporarly to keep code coverage at 100% for functions.\n *\n MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n 'use strict';\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 **/","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 = 49\n ** module chunks = 0 1\n **/","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 = 50\n ** module chunks = 0 1\n **/","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 = 51\n ** module chunks = 0 1\n **/","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 = 52\n ** module chunks = 0 1\n **/","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 = 53\n ** module chunks = 0 1\n **/","\"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 = 54\n ** module chunks = 0 1\n **/","\"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 = 55\n ** module chunks = 0 1\n **/","\"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 = 56\n ** module chunks = 0 1\n **/","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/array/from.js\n ** module id = 57\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.js\n ** module id = 58\n ** module chunks = 0 1\n **/","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 59\n ** module chunks = 0 1\n **/","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/number/is-integer.js\n ** module id = 60\n ** module chunks = 0 1\n **/","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 61\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 62\n ** module chunks = 0 1\n **/","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/entries.js\n ** module id = 63\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_a-function.js\n ** module id = 64\n ** module chunks = 0 1\n **/","module.exports = function(){ /* empty */ };\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_add-to-unscopables.js\n ** module id = 65\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_array-includes.js\n ** module id = 66\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_create-property.js\n ** module id = 67\n ** module chunks = 0 1\n **/","module.exports = require('./_global').document && document.documentElement;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_html.js\n ** module id = 68\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 69\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_is-array-iter.js\n ** module id = 70\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_is-integer.js\n ** module id = 71\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_iter-call.js\n ** module id = 72\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_iter-create.js\n ** module id = 73\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_iter-detect.js\n ** module id = 74\n ** module chunks = 0 1\n **/","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-step.js\n ** module id = 75\n ** module chunks = 0 1\n **/","module.exports = true;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_library.js\n ** module id = 76\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/_object-assign.js\n ** module id = 77\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-create.js\n ** module id = 78\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 79\n ** module chunks = 0 1\n **/","exports.f = Object.getOwnPropertySymbols;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gops.js\n ** module id = 80\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 81\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 82\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_object-to-array.js\n ** module id = 83\n ** module chunks = 0 1\n **/","module.exports = require('./_hide');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_redefine.js\n ** module id = 84\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_string-at.js\n ** module id = 85\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/_to-index.js\n ** module id = 86\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/_to-primitive.js\n ** module id = 87\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 88\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 89\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.array.from.js\n ** module id = 90\n ** module chunks = 0 1\n **/","'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 ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 91\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es6.number.is-integer.js\n ** module id = 92\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 93\n ** module chunks = 0 1\n **/","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 ** ./~/core-js/library/modules/es6.object.define-property.js\n ** module id = 94\n ** module chunks = 0 1\n **/","// 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 ** ./~/core-js/library/modules/es7.object.entries.js\n ** module id = 95\n ** module chunks = 0 1\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 8425301..ea038dd 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "doctrine": "1.2.2", "eq.js": "1.9.0", "es6-promise": "3.2.1", - "eslint": "3.1.1", + "eslint": "3.2.0", "eslint-loader": "1.5.0", "extract-text-webpack-plugin": "1.0.1", "file-loader": "0.9.0", diff --git a/src/accordion/readme.md b/src/accordion/readme.md index 39a8b0a..ee55e53 100644 --- a/src/accordion/readme.md +++ b/src/accordion/readme.md @@ -293,6 +293,16 @@ Refer to [snippets/accordion.html](./snippets/accordion.html) or the [tests](../ ## Public methods +### upgradeTab(tabOrPanelElement) +Upgrade a targeted panel with aria attributes and ripple effects. If you add a panel to the accordion after the page has +loaded, you must call `upgrade` to notify the accordion component about the newly added panel. + +```javascript +var accordion = document.querySelector('#my-accordion'); +var panel3 = document.querySelector('#my-accordion .mdlext-accordion__panel:nth-child(3)'); +accordion.MaterialExtAccordion.upgradeTab( panel3 ); +``` + ### command(detail) Executes an action, targeting a specific tab. The actions corresponds to the custom events defined for this component. diff --git a/src/carousel/carousel.js b/src/carousel/carousel.js index b753bf4..41b8b0b 100644 --- a/src/carousel/carousel.js +++ b/src/carousel/carousel.js @@ -75,8 +75,6 @@ import { inOutQuintic } from '../utils/easing'; this.scrollAnimation_ = new MdlExtAnimationLoop(33); - this.drawing_ = false; // Used by MutationObserver - // Initialize instance. this.init(); }; @@ -655,11 +653,11 @@ import { inOutQuintic } from '../utils/easing'; // Listen to custom 'command' event this.element_.addEventListener('command', this.commandHandler_.bind(this), false); + /* Not needed. Difficult to test. Call upgradeSlides() from client instead. // Detect insertions into components DOM const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; // jsdom does not support MutationObserver - so this is not testable - /* istanbul ignore next */ new MutationObserver( mutations => { mutations.forEach( mutation => { if (mutation.addedNodes.length > 0) { @@ -672,6 +670,7 @@ import { inOutQuintic } from '../utils/easing'; characterData: false, subtree: false }); + */ // Slides collection this.upgradeSlides(); diff --git a/src/carousel/readme.md b/src/carousel/readme.md index e9d9e7b..68b94fb 100644 --- a/src/carousel/readme.md +++ b/src/carousel/readme.md @@ -23,7 +23,6 @@ interchangeably. * User interactions via keyboard, mouse or touch events may be blocked, if configured * Start slideshow at component initialization using a data attribute * The carousel emits custom events reflecting a user action. E.g. clicking an image will emit a 'select' event with a detail object holding a reference to the selected image. -* Listen to mutation events, to detect insertions of elements into components DOM tree ### Limitations: * The carousel should pause any running animation on window.bur or tab.blur - not implemented @@ -223,8 +222,13 @@ componentHandler.downgradeElements([...content]); ``` ### `upgradeSlides()` -The component uses a mutation observer to upgrade slides inserted into the components DOM tree after component -initialization. If the observer, for some reason, does not work, call `upgradeSlides()` to upgrade newly inserted slides. +Upgrade slides. If you add slides to the carousel after the page has loaded, you must call `upgradeSlides` to +notify the component about the newly inserted slides. + +```javascript +myCarousel = document.querySelector('#my-carousel'); +myCarousel.MaterialExtCarousel.upgradeSlides(); +``` ### `getConfig()` Returns the `config` object. @@ -250,16 +254,6 @@ Attributes. | `listitem` | The component add the role `listitem` to `mdlext-carousel__slide` items | | -SASS variables. - -| SASS variable | -|----------------| -| `$mdlext-carousel-slide-border-top-width` | -| `$mdlext-carousel-slide-border-top-color` | -| `$mdlext-carousel-slide-margin-horizontal` | -| `$mdlext-carousel-slide-figcaption-color` | -| `$mdlext-carousel-slide-ripple-color` | - ## How to use the component programmatically The [tests](../../test/carousel/carousel.spec.js) and the [snippets/lightbox.html](./snippets/carousel.html) code provides examples on how to use the component programmatically. diff --git a/src/carousel/snippets/carousel.html b/src/carousel/snippets/carousel.html index 080f203..0ef3085 100644 --- a/src/carousel/snippets/carousel.html +++ b/src/carousel/snippets/carousel.html @@ -509,7 +509,7 @@
Carousel
Add image to carousel

- Verify that the MutationObserver works: Click the button to add a new image to the carousel. Move to the inserted + Click the button to add a new image to the carousel. Move to the inserted image and click it. It should have ripple effect if upgraded correctly.

@@ -598,6 +598,7 @@
Carousel
var slide_fragment = ''; var carousel = document.querySelector('#mdlext-carousel-demo2'); carousel.insertAdjacentHTML('beforeend', slide_fragment); + carousel.MaterialExtCarousel.upgradeSlides(); }); }); diff --git a/src/lightboard/readme.md b/src/lightboard/readme.md index 4f1ab50..429e88e 100644 --- a/src/lightboard/readme.md +++ b/src/lightboard/readme.md @@ -322,6 +322,26 @@ myLightboard.dispatchEvent(ce); ## Public methods +### upgradeSlides() +Upgrade slides. If you add slides to the lightboard after the page has loaded, you must call `upgradeSlides` to +notify the component about the new slides. + +```javascript +slide = + '
  • ' + +' ' + +'
    ' + +' ' + +'
    _D802181.jpg
    ' + +'
    ' + +'
    ' + +'
  • '; + +myLightboard = document.querySelector('#my-lightboard'); +myLightboard.insertAdjacentHTML('beforeend', slide); +myLightboard.MaterialExtLightboard.upgradeSlides(); +``` + ### command( detail ) Executes an action, optionally targeting a specific slide. The actions corresponds to the custom events defined for this component. diff --git a/test/carousel/carousel.spec.js b/test/carousel/carousel.spec.js index 93947d0..cc25d87 100644 --- a/test/carousel/carousel.spec.js +++ b/test/carousel/carousel.spec.js @@ -153,7 +153,7 @@ describe('MaterialExtCarousel', () => { window.cancelAnimationFrame = mockRaf.raf.cancel; rAFStub = sinon.stub(window, 'requestAnimationFrame', mockRaf.raf); - + /* Not needed. Difficult to test. Call upgradeSlides() from client instead. // Stub unsupported jsdom window.MutationObserver window.MutationObserver = window.MutationObserver || (function(undefined) { "use strict"; @@ -180,9 +180,8 @@ describe('MaterialExtCarousel', () => { return MutationObserver; })(void 0); - // TODO: Use mutationobserver-polyfill.js - //requireUncached('../testutils/mutationobserver-polyfill'); global.MutationObserver = window.MutationObserver; + */ }); @@ -332,6 +331,7 @@ describe('MaterialExtCarousel', () => { // Insert a new slide after component has been upgraded element.insertAdjacentHTML('beforeend', carousel_slide_fragment); + element.MaterialExtCarousel.upgradeSlides(); [...document.querySelectorAll('#mount-2 mdlext-carousel__slide')].forEach( slide => {