diff --git a/demo/accordion.html b/demo/accordion.html
index f055395..c92da24 100644
--- a/demo/accordion.html
+++ b/demo/accordion.html
@@ -11,7 +11,7 @@
-
+
Material Design Lite Extensions - Accordion
@@ -811,7 +811,7 @@ Fifth
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
i)dP.f(O, P = keys[i++], Properties[P]);\r\n return O;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 78\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 78\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 = 79\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gops.js\n ** module id = 79\n ** module chunks = 0 1\n **/","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\r\nvar has = require('./_has')\r\n , toObject = require('./_to-object')\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\r\n , ObjectProto = Object.prototype;\r\n\r\nmodule.exports = Object.getPrototypeOf || function(O){\r\n O = toObject(O);\r\n if(has(O, IE_PROTO))return O[IE_PROTO];\r\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\r\n return O.constructor.prototype;\r\n } return O instanceof Object ? ObjectProto : null;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 80\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 80\n ** module chunks = 0 1\n **/","var has = require('./_has')\r\n , toIObject = require('./_to-iobject')\r\n , arrayIndexOf = require('./_array-includes')(false)\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\r\n\r\nmodule.exports = function(object, names){\r\n var O = toIObject(object)\r\n , i = 0\r\n , result = []\r\n , key;\r\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\r\n // Don't enum bug & hidden keys\r\n while(names.length > i)if(has(O, key = names[i++])){\r\n ~arrayIndexOf(result, key) || result.push(key);\r\n }\r\n return result;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 81\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 81\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 = 82\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-to-array.js\n ** module id = 82\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 = 83\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_redefine.js\n ** module id = 83\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 = 84\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_string-at.js\n ** module id = 84\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 = 85\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-index.js\n ** module id = 85\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 = 86\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-primitive.js\n ** module id = 86\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 = 87\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 87\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 = 88\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 88\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 = 89\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.from.js\n ** module id = 89\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 = 90\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 90\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 = 91\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 = 91\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 = 92\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 92\n ** module chunks = 0 1\n **/","var $export = require('./_export');\r\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\r\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 = 93\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 = 93\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 = 94\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es7.object.entries.js\n ** module id = 94\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 = 95\n ** module chunks = 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/mdl-ext-build.scss\n ** module id = 95\n ** module chunks = 1\n **/"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap ed36d7ec6ebc2119539b?8d8a","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:///./~/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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AAU,CAAV,EAAgB;AAC1C,OAAM,KAAK,CAAC,KAAG,CAAJ,IAAO,CAAlB;AACA,OAAM,KAAK,KAAG,CAAd;AACA,UAAO,IAAE,KAAG,IAAE,EAAF,GAAK,EAAL,GAAU,CAAC,EAAD,GAAI,EAAJ,GAAO,EAAjB,GAAsB,KAAG,EAA5B,CAAT;AACD,EAJM,C;;;;;;ACTP,mBAAkB,wD;;;;;;ACAlB,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA,IAAG,UAAU;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACtBA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA,c;;;;;;ACHA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACrEA,eAAc,sB;;;;;;ACAd;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;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MD,I;;;;;;AC1BA,mBAAkB,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,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,G;;;;;;ACvCA;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 ed36d7ec6ebc2119539b\n **/\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap ed36d7ec6ebc2119539b\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 'use strict';\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 **/","// 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 = 15\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_defined.js\n ** module id = 15\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 = 16\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_fails.js\n ** module id = 16\n ** module chunks = 0 1\n **/","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\r\nvar $keys = require('./_object-keys-internal')\r\n , enumBugKeys = require('./_enum-bug-keys');\r\n\r\nmodule.exports = Object.keys || function keys(O){\r\n return $keys(O, enumBugKeys);\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 17\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 17\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 = 18\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_property-desc.js\n ** module id = 18\n ** module chunks = 0 1\n **/","var shared = require('./_shared')('keys')\r\n , uid = require('./_uid');\r\nmodule.exports = function(key){\r\n return shared[key] || (shared[key] = uid(key));\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 19\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 19\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 = 20\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-integer.js\n ** module id = 20\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 = 21\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-object.js\n ** module id = 21\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 = 22\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.string.iterator.js\n ** module id = 22\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 }\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 = 25\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/get-iterator.js\n ** module id = 25\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 = 26\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/number/is-integer.js\n ** module id = 26\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 = 27\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_classof.js\n ** module id = 27\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 = 28\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_cof.js\n ** module id = 28\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 = 29\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ctx.js\n ** module id = 29\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 = 30\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_dom-create.js\n ** module id = 30\n ** module chunks = 0 1\n **/","// IE 8- don't enum bug keys\r\nmodule.exports = (\r\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\r\n).split(',');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 31\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 31\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 = 32\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iobject.js\n ** module id = 32\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 = 33\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-define.js\n ** module id = 33\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 = 34\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-pie.js\n ** module id = 34\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 = 35\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 = 35\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 = 36\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_shared.js\n ** module id = 36\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 = 37\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-length.js\n ** module id = 37\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 = 38\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_uid.js\n ** module id = 38\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 = 39\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 = 39\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 = 40\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/web.dom.iterable.js\n ** module id = 40\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 panel. 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(function() {\n 'use strict';\n\n\n const RIPPLE_COMPONENT = 'MaterialRipple';\n const VK_TAB = 9;\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 PANEL = 'mdlext-accordion__panel';\n const HEADER = 'mdlext-accordion__panel__header';\n const HEADER_TABSTOP = 'mdlext-accordion__panel__header__tabstop';\n const IS_UPGRADED = 'is-upgraded';\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_CONTAINER = 'mdlext-accordion__panel__header__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 /**\n * Class constructor for Accordion MDLEXT component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\n const MaterialExtAccordion = function MaterialExtAccordion(element) {\n // Stores the Accordion HTML element.\n this.element_ = element;\n\n // Initialize instance.\n this.init();\n };\n\n window['MaterialExtAccordion'] = MaterialExtAccordion;\n\n\n /**\n * Handles custom command event, 'open', 'close', or 'toggle'\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.detail && event.detail.action) {\n const action = event.detail.action.toLowerCase();\n\n if('open' === action || 'close' === action || 'toggle' === action) {\n\n if(event.detail.target === undefined) {\n\n if(this.element_.hasAttribute('aria-multiselectable') &&\n 'false' !== this.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\n [...this.element_.querySelectorAll(`.${PANEL}`)].forEach(panel => {\n panel.dispatchEvent(\n createCustomEvent('command_', {\n detail: {action: action}\n })\n );\n });\n }\n }\n else if (event.detail.target !== null) {\n\n event.detail.target.dispatchEvent(\n // Let the even bubble, in case the evnt is dispatched to a child element of the panel\n createCustomEvent('command_', {\n bubbles: true, detail: { action: action }\n })\n );\n }\n }\n }\n };\n\n /**\n * Initialize accordion's panels\n *\n * @private\n */\n MaterialExtAccordion.prototype.initAccordion_ = function() {\n\n this.element_.setAttribute('role', 'tablist');\n\n if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n\n [...this.element_.querySelectorAll(`.${PANEL}`)].forEach( panel => {\n new MaterialExtAccordionPanel(panel, this);\n });\n\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n this.element_.classList.add(IS_UPGRADED);\n };\n\n /**\n * Initialize Accordion element.\n */\n MaterialExtAccordion.prototype.init = function() {\n if (this.element_) {\n this.initAccordion_();\n }\n };\n\n\n /**\n * Constructor for an individual accordion panel.\n *\n * @constructor\n * @param {Element} panel The HTML element for the tab.\n * @param {MaterialExtAccordion} ctx The MaterialExtAccordion object that owns the panel.\n */\n function MaterialExtAccordionPanel(panel, ctx) {\n\n const header = panel.querySelector(`.${HEADER}`);\n if(header === null) {\n throw new Error('There must be a header element for each accordion panel.');\n }\n\n header.setAttribute('role', 'tab');\n\n let a = header.querySelector(`a.${HEADER_TABSTOP}`);\n if(a === null) {\n // An anchor is required for focus/tab stop\n a = document.createElement('a');\n a.href = '#';\n a.classList.add(HEADER_TABSTOP);\n header.appendChild(a);\n }\n\n panel.setAttribute('role', 'tabpanel');\n\n if(panel.hasAttribute('open')) {\n header.setAttribute('aria-expanded', '');\n }\n else {\n header.setAttribute('aria-hidden', '');\n }\n\n if (ctx.element_.classList.contains(RIPPLE_EFFECT)) {\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 header.addEventListener('click', ( event => {\n\n event.preventDefault();\n event.stopPropagation();\n\n if(!panel.hasAttribute('disabled')) {\n\n if(panel.hasAttribute('open')) {\n\n closePanel(panel, header);\n\n // Dispatch toggle event to accordion element\n dispatchToggleEvent('close', panel, ctx.element_);\n }\n else {\n if(ctx.element_.hasAttribute('aria-multiselectable') &&\n 'false' === ctx.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\n const openPanel = ctx.element_.querySelector(`.${PANEL}[open]`);\n if (openPanel) {\n closePanel(openPanel, openPanel.querySelector(`.${HEADER}`));\n\n // Dispatch toggle event to accordion element\n dispatchToggleEvent('close', openPanel, ctx.element_);\n }\n removeAriaSelectedAttribute();\n }\n\n openPanel(panel, header);\n\n // Dispatch toggle event to accordion element\n dispatchToggleEvent('open', panel, ctx.element_);\n }\n focus(panel);\n }\n }), true);\n\n\n header.addEventListener('keydown', ( event => {\n if (event.keyCode === VK_TAB\n || event.keyCode === VK_ENTER || 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 const panels = panel.parentNode.children;\n let nextPanel = null;\n const n = panel.parentNode.childElementCount - 1;\n\n for (let i = 0; i <= n; i++) {\n\n if (event.keyCode === VK_HOME) {\n nextPanel = panels[0];\n break;\n }\n else if (event.keyCode === VK_END) {\n nextPanel = panels[n];\n break;\n }\n\n if(panels[i] == panel) {\n if(event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n nextPanel = i > 0 ? panels[i-1] : panels[n];\n }\n else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n nextPanel = i < n ? panels[i+1] : panels[0];\n }\n else if (event.keyCode === VK_TAB) {\n if(event.shiftKey) {\n if(i > 0 && !panels[i-1].hasAttribute('open')) {\n nextPanel = panels[i-1];\n }\n }\n else if (i < n) {\n if(!panel.hasAttribute('open')) {\n nextPanel = panels[i+1];\n }\n }\n }\n else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n event.preventDefault();\n event.stopPropagation();\n\n // Trigger mouse click event for any attached listeners.\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n header.dispatchEvent(evt);\n }\n break;\n }\n }\n if(nextPanel) {\n event.preventDefault();\n event.stopPropagation();\n focus(nextPanel);\n }\n }\n }), true);\n\n panel.addEventListener('command_', ( event => {\n event.preventDefault();\n event.stopPropagation();\n\n if(event.detail && event.detail.action) {\n const action = event.detail.action.toLowerCase();\n switch (action) {\n case 'open':\n openPanel(panel, header);\n break;\n case 'close':\n closePanel(panel, header);\n break;\n case 'toggle':\n togglePanel(panel, header);\n break;\n }\n }\n }));\n\n\n function togglePanel(panel, header) {\n if(panel.hasAttribute('open')) {\n closePanel(panel, header);\n }\n else {\n openPanel(panel, header);\n }\n }\n\n function openPanel(panel, header) {\n if(!panel.hasAttribute('disabled')) {\n panel.setAttribute('open', '');\n header.setAttribute('aria-expanded', '');\n header.setAttribute('aria-selected', '');\n header.removeAttribute('aria-hidden', '');\n }\n }\n\n function closePanel(panel, header) {\n if(!panel.hasAttribute('disabled')) {\n panel.removeAttribute('open');\n header.removeAttribute('aria-expanded');\n header.setAttribute('aria-hidden', '');\n }\n }\n\n function removeAriaSelectedAttribute() {\n const selectedHeader = ctx.element_.querySelector(`.${HEADER}[aria-selected]`);\n if(selectedHeader) {\n selectedHeader.removeAttribute('aria-selected');\n }\n }\n\n function focus(nextPanel) {\n const a = nextPanel.querySelector(`.${HEADER} a`);\n if(a) {\n removeAriaSelectedAttribute();\n a.focus();\n nextPanel.querySelector(`.${HEADER}`).setAttribute('aria-selected', '');\n }\n }\n\n function dispatchToggleEvent(state, source, target) {\n const evt = createCustomEvent('toggle', {\n bubbles: true,\n cancelable: true,\n detail: { state: state, source: source }\n });\n target.dispatchEvent(evt);\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 { 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.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 * @private\n */\n MaterialExtCarousel.prototype.animateScroll_ = function( newPosition, newDuration ) {\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 new MdlExtAnimationLoop(33).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 return false;\n }\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 break;\n\n case 'last':\n x = this.element_.scrollWidth - this.element_.clientWidth;\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 setFocus_(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);\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 update(e);\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 const x = e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0);\n\n window.removeEventListener('mousemove', drag);\n window.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 // If mouse did not move, trigger custom select event\n if(Math.abs(startX-x) < 2) {\n const slide = getSlide_(targetElement);\n setFocus_(slide);\n this.emitSelectEvent_('click', null, slide);\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 * 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 slide has 'aria-selected', even if focus is lost\n [...this.element_.querySelectorAll(`.${SLIDE}[aria-selected]`)].forEach(\n slide => slide.removeAttribute('aria-selected')\n );\n slide.setAttribute('aria-selected', '');\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 * 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 // Helpers\n const getSlide_ = element => {\n if (!element || element.parentNode.tagName === undefined || element.classList.contains(CAROUSEL)) {\n return null;\n }\n return element.classList.contains(SLIDE) ? element : getSlide_(element.parentNode);\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\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 * @TODO Use mutation observer\n *\n * @public\n */\n MaterialExtCarousel.prototype.upgradeSlides = function() {\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 (!Number.isInteger(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 // 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 // Slides collection\n this.upgradeSlides();\n\n if(this.config_.interactive) {\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), true);\n\n // Listen to drag events\n this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), true);\n this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), true);\n\n // Click is handled by drag\n this.element_.addEventListener('click', e => e.preventDefault(), true);\n }\n\n // Listen to custom 'command' event\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n // Detect insertions in 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\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';\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 { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_TAB = 9;\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 SLIDE = 'mdlext-lightboard__slide';\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 * Initialize lightboard slides\n *\n * @private\n */\n MaterialExtLightboard.prototype.initLightboard_ = function() {\n\n this.element_.setAttribute('role', 'grid');\n [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach(\n slide => slide.setAttribute('role', 'cell')\n );\n\n if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n\n [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach(\n slide => addRipple(slide)\n );\n }\n\n /**\n * Trigger when user cliks on a slide\n */\n this.element_.addEventListener('click', ( function(event) {\n event.preventDefault();\n event.stopPropagation();\n const slide = getSlide(event.target);\n\n if(event.target !== this) {\n focus(slide);\n\n // Remove 'aria-selected' attribute\n [...this.children] // Should I use querySelectorAll ???\n .filter( panel => panel.hasAttribute('aria-selected'))\n .forEach( selected => selected.removeAttribute('aria-selected'));\n\n // Set 'aria-selected' on current slide\n slide.setAttribute('aria-selected', '');\n\n const evt = createCustomEvent('select', {\n bubbles: true,\n cancelable: true,\n detail: { source: slide }\n });\n this.dispatchEvent(evt);\n }\n }).bind(this.element_), true);\n\n /**\n * Trigger when user presses a keboard key\n */\n this.element_.addEventListener('keydown', ( function(event) {\n // Maybe this function should be throttled??\n if (event.keyCode === VK_TAB\n || event.keyCode === VK_ENTER || 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.target !== this) {\n const panel = getSlide(event.target);\n const panels = this.children;\n let nextPanel = null;\n const n = this.childElementCount - 1;\n\n for (let i = 0; i <= n; i++) {\n if (event.keyCode === VK_HOME) {\n nextPanel = panels[0];\n break;\n }\n else if (event.keyCode === VK_END) {\n nextPanel = panels[n];\n break;\n }\n\n if (panels[i] === panel) {\n if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n nextPanel = i > 0 ? panels[i - 1] : panels[n];\n }\n else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n nextPanel = i < n ? panels[i + 1] : panels[0];\n }\n else if (event.keyCode === VK_TAB) {\n if (event.shiftKey) {\n if (i > 0) {\n nextPanel = panels[i - 1];\n }\n }\n else if (i < n) {\n nextPanel = panels[i + 1];\n }\n }\n else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n event.preventDefault();\n event.stopPropagation();\n\n // Trigger mouse click event for any attached listeners.\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n panel.dispatchEvent(evt);\n }\n break;\n }\n }\n if (nextPanel) {\n event.preventDefault();\n event.stopPropagation();\n focus(nextPanel);\n }\n }\n }\n }).bind(this.element_), true);\n\n this.element_.classList.add(IS_UPGRADED);\n };\n\n function getSlide(element) {\n if (!element || element.classList.contains(LIGHTBOARD)) {\n return null;\n }\n return element.classList.contains(SLIDE) ? element : getSlide(element.parentNode);\n }\n\n function focus(slide) {\n if(slide) {\n const a = slide.querySelector(`a.${SLIDE_TABSTOP}`);\n if (a) {\n a.focus();\n }\n }\n }\n\n function addRipple(slide) {\n // Use anchor as ripple container\n const a = slide.querySelector(`a.${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 * Initialize component\n */\n MaterialExtLightboard.prototype.init = function() {\n if (this.element_) {\n this.initLightboard_();\n }\n };\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n /* jshint undef:false */\n componentHandler.register({\n constructor: MaterialExtLightboard,\n classAsString: 'MaterialExtLightboard',\n cssClass: 'mdlext-js-lightboard',\n widget: true\n });\n})();\n\n\n\n/** 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 { 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_CLASS = 'mdlext-lightbox';\n const STICKY_FOOTER_CLASS = 'mdlext-lightbox--sticky-footer';\n const BUTTON_CLASS = '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 let n = this;\n while((n = n.parentNode) != null) {\n if(n.classList.contains(LIGHTBOX_CLASS)) {\n n.focus();\n break;\n }\n }\n }\n };\n\n /**\n * Dispatches an action custom event\n * @param action\n * @param source\n * @param target\n * @private\n */\n function 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 function 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_CLASS));\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('mdlext-lightbox__slider');\n setStyles(slider, {'width': `${img.offsetWidth}px`, 'height': `${img.offsetHeight}px`} );\n\n let slide = document.createElement('div');\n slide.classList.add('mdlext-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('mdlext-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('mdlext-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_CLASS}`)].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_CLASS}`)].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 /*jshint undef:false */\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/ru/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 = 48\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/array/from.js\n ** module id = 48\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 = 49\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/is-iterable.js\n ** module id = 49\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 = 50\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/assign.js\n ** module id = 50\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 = 51\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/define-property.js\n ** module id = 51\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 = 52\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/core-js/object/entries.js\n ** module id = 52\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 = 53\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/classCallCheck.js\n ** module id = 53\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 = 54\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/createClass.js\n ** module id = 54\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 = 55\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/babel-runtime/helpers/slicedToArray.js\n ** module id = 55\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 = 56\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/array/from.js\n ** module id = 56\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 = 57\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/get-iterator.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.is-iterable');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 58\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/is-iterable.js\n ** module id = 58\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 = 59\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/number/is-integer.js\n ** module id = 59\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 = 60\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/assign.js\n ** module id = 60\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 = 61\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/define-property.js\n ** module id = 61\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 = 62\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/fn/object/entries.js\n ** module id = 62\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 = 63\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_a-function.js\n ** module id = 63\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 = 64\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_add-to-unscopables.js\n ** module id = 64\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 = 65\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_array-includes.js\n ** module id = 65\n ** module chunks = 0 1\n **/","'use strict';\r\nvar $defineProperty = require('./_object-dp')\r\n , createDesc = require('./_property-desc');\r\n\r\nmodule.exports = function(object, index, value){\r\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\r\n else object[index] = value;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_create-property.js\n ** module id = 66\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_create-property.js\n ** module id = 66\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 = 67\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_html.js\n ** module id = 67\n ** module chunks = 0 1\n **/","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\r\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\r\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 68\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 68\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 = 69\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-array-iter.js\n ** module id = 69\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 = 70\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_is-integer.js\n ** module id = 70\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 = 71\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-call.js\n ** module id = 71\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 = 72\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-create.js\n ** module id = 72\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 = 73\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-detect.js\n ** module id = 73\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 = 74\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_iter-step.js\n ** module id = 74\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 = 75\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_library.js\n ** module id = 75\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 = 76\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-assign.js\n ** module id = 76\n ** module chunks = 0 1\n **/","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\r\nvar anObject = require('./_an-object')\r\n , dPs = require('./_object-dps')\r\n , enumBugKeys = require('./_enum-bug-keys')\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\r\n , Empty = function(){ /* empty */ }\r\n , PROTOTYPE = 'prototype';\r\n\r\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\r\nvar createDict = function(){\r\n // Thrash, waste and sodomy: IE GC bug\r\n var iframe = require('./_dom-create')('iframe')\r\n , i = enumBugKeys.length\r\n , gt = '>'\r\n , iframeDocument;\r\n iframe.style.display = 'none';\r\n require('./_html').appendChild(iframe);\r\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\r\n // createDict = iframe.contentWindow.Object;\r\n // html.removeChild(iframe);\r\n iframeDocument = iframe.contentWindow.document;\r\n iframeDocument.open();\r\n iframeDocument.write(' i)dP.f(O, P = keys[i++], Properties[P]);\r\n return O;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 78\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 78\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 = 79\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gops.js\n ** module id = 79\n ** module chunks = 0 1\n **/","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\r\nvar has = require('./_has')\r\n , toObject = require('./_to-object')\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\r\n , ObjectProto = Object.prototype;\r\n\r\nmodule.exports = Object.getPrototypeOf || function(O){\r\n O = toObject(O);\r\n if(has(O, IE_PROTO))return O[IE_PROTO];\r\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\r\n return O.constructor.prototype;\r\n } return O instanceof Object ? ObjectProto : null;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 80\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 80\n ** module chunks = 0 1\n **/","var has = require('./_has')\r\n , toIObject = require('./_to-iobject')\r\n , arrayIndexOf = require('./_array-includes')(false)\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\r\n\r\nmodule.exports = function(object, names){\r\n var O = toIObject(object)\r\n , i = 0\r\n , result = []\r\n , key;\r\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\r\n // Don't enum bug & hidden keys\r\n while(names.length > i)if(has(O, key = names[i++])){\r\n ~arrayIndexOf(result, key) || result.push(key);\r\n }\r\n return result;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 81\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 81\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 = 82\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-to-array.js\n ** module id = 82\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 = 83\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_redefine.js\n ** module id = 83\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 = 84\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_string-at.js\n ** module id = 84\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 = 85\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-index.js\n ** module id = 85\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 = 86\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_to-primitive.js\n ** module id = 86\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 = 87\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.get-iterator.js\n ** module id = 87\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 = 88\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/core.is-iterable.js\n ** module id = 88\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 = 89\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.from.js\n ** module id = 89\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 = 90\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.array.iterator.js\n ** module id = 90\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 = 91\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 = 91\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 = 92\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es6.object.assign.js\n ** module id = 92\n ** module chunks = 0 1\n **/","var $export = require('./_export');\r\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\r\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 = 93\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 = 93\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 = 94\n ** module chunks = 0 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/es7.object.entries.js\n ** module id = 94\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 = 95\n ** module chunks = 1\n **/\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/mdl-ext-build.scss\n ** module id = 95\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 b448dd4..4f16e3c 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(16)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(10),r=n(18);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(68),o=n(86),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(48),o=i(r);t["default"]=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0?i:n)(e)}},function(e,t,n){var i=n(15);e.exports=function(e){return Object(i(e))}},function(e,t,n){"use strict";var i=n(84)(!0);n(33)(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(53),o=i(r),s=n(54),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(){this.cancelRAF()}},{key:"interval",set:function(e){this.interval_=17>e?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,1>e?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(57),__esModule:!0}},function(e,t,n){e.exports={"default":n(59),__esModule:!0}},function(e,t,n){var i=n(28),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(63);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(28);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(75),r=n(3),o=n(83),s=n(9),a=n(12),l=n(5),c=n(72),u=n(35),d=n(80),f=n(2)("iterator"),h=!([].keys&&"next"in[].keys()),p="@@iterator",_="keys",v="values",m=function(){return this};e.exports=function(e,t,n,y,b,g,w){c(n,t,y);var x,C,E,k=function(e){if(!h&&e in M)return M[e];switch(e){case _:return function(){return new n(this,e)};case v:return function(){return new n(this,e)}}return function(){return new n(this,e)}},L=t+" Iterator",S=b==v,A=!1,M=e.prototype,H=M[f]||M[p]||b&&M[b],D=H||k(b),O=b?S?k("entries"):D:void 0,I="Array"==t?M.entries||H:H;if(I&&(E=d(I.call(new e)),E!==Object.prototype&&(u(E,L,!0),i||a(E,f)||s(E,f,m))),S&&H&&H.name!==v&&(A=!0,D=function(){return H.call(this)}),i&&!w||!h&&!A&&M[f]||s(M,f,D),l[t]=D,l[L]=m,b)if(x={values:S?D:k(v),keys:g?D:k(_),entries:O},w)for(C in x)C in M||o(M,C,x[C]);else r(r.P+r.F*(h||A),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(20),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(27),r=n(2)("iterator"),o=n(5);e.exports=n(1).getIteratorMethod=function(e){return void 0!=e?e[r]||e["@@iterator"]||o[i(e)]:void 0}},function(e,t,n){n(90);for(var i=n(4),r=n(9),o=n(5),s=n(2)("toStringTag"),a=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],l=0;5>l;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(){function e(e,o){function v(e,t){e.hasAttribute("open")?w(e,t):g(e,t)}function g(e,t){e.hasAttribute("disabled")||(e.setAttribute("open",""),t.setAttribute("aria-expanded",""),t.setAttribute("aria-selected",""),t.removeAttribute("aria-hidden",""))}function w(e,t){e.hasAttribute("disabled")||(e.removeAttribute("open"),t.removeAttribute("aria-expanded"),t.setAttribute("aria-hidden",""))}function x(){var e=o.element_.querySelector("."+p+"[aria-selected]");e&&e.removeAttribute("aria-selected")}function C(e){var t=e.querySelector("."+p+" a");t&&(x(),t.focus(),e.querySelector("."+p).setAttribute("aria-selected",""))}function E(e,t,n){var i=(0,s.createCustomEvent)("toggle",{bubbles:!0,cancelable:!0,detail:{state:e,source:t}});n.dispatchEvent(i)}var k=e.querySelector("."+p);if(null===k)throw new Error("There must be a header element for each accordion panel.");k.setAttribute("role","tab");var L=k.querySelector("a."+_);if(null===L&&(L=document.createElement("a"),L.href="#",L.classList.add(_),k.appendChild(L)),e.setAttribute("role","tabpanel"),e.hasAttribute("open")?k.setAttribute("aria-expanded",""):k.setAttribute("aria-hidden",""),o.element_.classList.contains(b)){var S=L;S.classList.add(y),S.classList.add(b);var A=document.createElement("span");A.classList.add(m),S.appendChild(A),componentHandler.upgradeElement(S,t)}k.addEventListener("click",function(t){if(t.preventDefault(),t.stopPropagation(),!e.hasAttribute("disabled")){if(e.hasAttribute("open"))w(e,k),E("close",e,o.element_);else{if(o.element_.hasAttribute("aria-multiselectable")&&"false"===o.element_.getAttribute("aria-multiselectable").toLowerCase()){var n=o.element_.querySelector("."+h+"[open]");n&&(w(n,n.querySelector("."+p)),E("close",n,o.element_)),x()}g(e,k),E("open",e,o.element_)}C(e)}},!0),k.addEventListener("keydown",function(t){if(t.keyCode===n||t.keyCode===i||t.keyCode===r||t.keyCode===a||t.keyCode===l||t.keyCode===u||t.keyCode===c||t.keyCode===f||t.keyCode===d){for(var o=e.parentNode.children,s=null,h=e.parentNode.childElementCount-1,p=0;h>=p;p++){if(t.keyCode===l){s=o[0];break}if(t.keyCode===a){s=o[h];break}if(o[p]==e){if(t.keyCode===u||t.keyCode===c)s=p>0?o[p-1]:o[h];else if(t.keyCode===f||t.keyCode===d)s=h>p?o[p+1]:o[0];else if(t.keyCode===n)t.shiftKey?p>0&&!o[p-1].hasAttribute("open")&&(s=o[p-1]):h>p&&(e.hasAttribute("open")||(s=o[p+1]));else if(t.keyCode===i||t.keyCode===r){t.preventDefault(),t.stopPropagation();var _=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});k.dispatchEvent(_)}break}}s&&(t.preventDefault(),t.stopPropagation(),C(s))}},!0),e.addEventListener("command_",function(t){if(t.preventDefault(),t.stopPropagation(),t.detail&&t.detail.action){var n=t.detail.action.toLowerCase();switch(n){case"open":g(e,k);break;case"close":w(e,k);break;case"toggle":v(e,k)}}})}var t="MaterialRipple",n=9,i=13,r=32,a=35,l=36,c=37,u=38,d=39,f=40,h="mdlext-accordion__panel",p="mdlext-accordion__panel__header",_="mdlext-accordion__panel__header__tabstop",v="is-upgraded",m="mdl-ripple",y="mdlext-accordion__panel__header__ripple-container",b="mdl-js-ripple-effect",g="mdl-js-ripple-effect--ignore-events",w=function(e){this.element_=e,this.init()};window.MaterialExtAccordion=w,w.prototype.commandHandler_=function(e){var t=this;e.preventDefault(),e.stopPropagation(),e.detail&&e.detail.action&&!function(){var n=e.detail.action.toLowerCase();"open"!==n&&"close"!==n&&"toggle"!==n||(void 0===e.detail.target?t.element_.hasAttribute("aria-multiselectable")&&"false"!==t.element_.getAttribute("aria-multiselectable").toLowerCase()&&[].concat((0,o["default"])(t.element_.querySelectorAll("."+h))).forEach(function(e){e.dispatchEvent((0,s.createCustomEvent)("command_",{detail:{action:n}}))}):null!==e.detail.target&&e.detail.target.dispatchEvent((0,s.createCustomEvent)("command_",{bubbles:!0,detail:{action:n}})))}()},w.prototype.initAccordion_=function(){var t=this;this.element_.setAttribute("role","tablist"),this.element_.classList.contains(b)&&this.element_.classList.add(g),[].concat((0,o["default"])(this.element_.querySelectorAll("."+h))).forEach(function(n){new e(n,t)}),this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),this.element_.classList.add(v)},w.prototype.init=function(){this.element_&&this.initAccordion_()},componentHandler.register({constructor:w,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(26),o=i(r),s=n(11),a=i(s),l=n(50),c=i(l),u=n(6),d=n(23),f=i(d),h=n(24);!function(){var e=9,t=13,n=27,i=32,r=33,s=34,l=35,d=36,p=37,_=38,v=39,m=40,y="is-upgraded",b="is-focused",g="mdlext-carousel",w="mdlext-carousel__slide",x="list",C="listitem",E="mdl-ripple",k="MaterialRipple",L="mdlext-carousel__slide__ripple-container",S="mdl-js-ripple-effect",A="mdl-js-ripple-effect--ignore-events",M=function(e){this.element_=e,this.config_={interactive:!0,autostart:!1,type:"slide",interval:1e3,animationLoop:new f["default"](1e3)},this.drawing_=!1,this.init()};window.MaterialExtCarousel=M,M.prototype.startSlideShow_=function(){var e=this,t=function(){var t=e.element_.querySelector("."+w+"[aria-selected]");return t&&(t.removeAttribute("aria-selected"),t=t.nextElementSibling),t||(t=e.element_.querySelector("."+w+":first-child"),e.animateScroll_(0)),t?(e.moveSlideIntoViewport_(t),t.setAttribute("aria-selected",""),e.emitSelectEvent_("next",null,t),!0):!1},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()}))}()},M.prototype.cancelSlideShow_=function(){this.config_.animationLoop.running&&(this.config_.animationLoop.stop(),this.emitSelectEvent_("pause",n,this.element_.querySelector("."+w+"[aria-selected]")))},M.prototype.animateScroll_=function(e,t){var n=this,i=this.element_.scrollLeft,r=e-i;0!==r&&!function(){var o=Math.max(Math.min(Math.abs(r),t||400),100),s=0;new f["default"](33).start(function(t){return s+=t,o>s?(n.element_.scrollLeft=(0,h.inOutQuintic)(s,i,r,o),!0):(n.element_.scrollLeft=e,!1)})}()},M.prototype.command_=function(e){var t=0,n=null,i=e.detail.action.toLowerCase();switch(this.cancelSlideShow_(),i){case"first":break;case"last":t=this.element_.scrollWidth-this.element_.clientWidth;break;case"scroll-prev":t=Math.max(this.element_.scrollLeft-this.element_.clientWidth,0);break;case"scroll-next":t=Math.min(this.element_.scrollLeft+this.element_.clientWidth,this.element_.scrollWidth-this.element_.clientWidth);break;case"next":case"prev":return n=this.element_.querySelector("."+w+"[aria-selected]"),void(n&&(n="next"===i?n.nextElementSibling:n.previousElementSibling,D(n),this.emitSelectEvent_(i,null,n)));case"play":return(0,c["default"])(this.config_,e.detail),void this.startSlideShow_();case"pause":return;default:return}this.animateScroll_(t)},M.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e.detail&&e.detail.action&&this.command_(e)},M.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===m||n.keyCode===v){var a=H(n.target);if(!a)return;switch(this.cancelSlideShow_(),n.keyCode){case _:case p:o="prev",a=a.previousElementSibling;break;case m:case v: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(),D(a),this.emitSelectEvent_(o,n.keyCode,a))}}},M.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;0>r?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();var n=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0);if(window.removeEventListener("mousemove",l),window.removeEventListener("touchmove",l),window.removeEventListener("mouseup",u),window.removeEventListener("touchend",u),window.cancelAnimationFrame(i),Math.abs(r-n)<2){var o=H(s);D(o),t.emitSelectEvent_("click",null,o)}};window.addEventListener("mousemove",l),window.addEventListener("touchmove",l),window.addEventListener("mouseup",c),window.addEventListener("touchend",c)},M.prototype.focusHandler_=function(e){var t=H(e.target);t&&([].concat((0,a["default"])(this.element_.querySelectorAll("."+w+"[aria-selected]"))).forEach(function(e){return e.removeAttribute("aria-selected")}),t.setAttribute("aria-selected",""),t.classList.add(b))},M.prototype.blurHandler_=function(e){var t=H(e.target);t&&t.classList.remove(b)},M.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)}},M.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)}};var H=function I(e){return!e||void 0===e.parentNode.tagName||e.classList.contains(g)?null:e.classList.contains(w)?e:I(e.parentNode)},D=function(e){e&&e.focus()},O=function(e){if(!e.querySelector("."+L)){var t=document.createElement("span");t.classList.add(L),t.classList.add(S);var n=document.createElement("span");n.classList.add(E),t.appendChild(n);var i=e.querySelector("img");i&&(t.title=i.title),e.appendChild(t),componentHandler.upgradeElement(t,k)}};M.prototype.stopAnimation=function(){this.config_.animationLoop.stop()},M.prototype.stopAnimation=M.prototype.stopAnimation,M.prototype.upgradeSlides=function(){var e=this,t=this.element_.classList.contains(S);[].concat((0,a["default"])(this.element_.querySelectorAll("."+w))).forEach(function(n){n.setAttribute("role",C),e.config_.interactive?((0,o["default"])(n.getAttribute("tabindex"))||n.setAttribute("tabindex",0),t&&O(n)):n.setAttribute("tabindex",-1)})},M.prototype.upgradeSlides=M.prototype.upgradeSlides,M.prototype.getConfig=function(){return this.config_},M.prototype.getConfig=M.prototype.getConfig,M.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)}}this.element_.setAttribute("role",x),(0,o["default"])(this.element_.getAttribute("tabindex"))||this.element_.setAttribute("tabindex",-1);var r=this.element_.classList.contains(S);r&&this.element_.classList.add(A),this.upgradeSlides(),this.config_.interactive&&(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),!0),this.element_.addEventListener("mousedown",this.dragHandler_.bind(this),!0),this.element_.addEventListener("touchstart",this.dragHandler_.bind(this),!0),this.element_.addEventListener("click",function(e){return e.preventDefault()},!0)),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.element_.classList.add(y),this.config_.autostart&&this.startSlideShow_()}},componentHandler.register({constructor:M,classAsString:"MaterialExtCarousel",cssClass:"mdlext-js-carousel",widget:!0})}()},function(e,t,n){"use strict";n(6),n(23),n(24),n(47),n(46),n(41),n(44),n(45),n(42)},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(){function e(t){return!t||t.classList.contains(_)?null:t.classList.contains(v)?t:e(t.parentNode)}function t(e){if(e){var t=e.querySelector("a."+m);t&&t.focus()}}function n(e){var t=e.querySelector("a."+m);if(t){var n=t;n.classList.add(g),n.classList.add(w);var i=document.createElement("span");i.classList.add(b),n.appendChild(i),componentHandler.upgradeElement(n,y)}}var i=9,r=13,a=32,l=35,c=36,u=37,d=38,f=39,h=40,p="is-upgraded",_="mdlext-lightboard",v="mdlext-lightboard__slide",m="mdlext-lightboard__slide__frame",y="MaterialRipple",b="mdl-ripple",g="mdlext-lightboard__slide__ripple-container",w="mdl-js-ripple-effect",x="mdl-js-ripple-effect--ignore-events",C=function(e){this.element_=e,this.init()};window.MaterialExtLightboard=C,C.prototype.initLightboard_=function(){this.element_.setAttribute("role","grid"),[].concat((0,o["default"])(this.element_.querySelectorAll("."+v))).forEach(function(e){return e.setAttribute("role","cell")}),this.element_.classList.contains(w)&&(this.element_.classList.add(x),[].concat((0,o["default"])(this.element_.querySelectorAll("."+v))).forEach(function(e){return n(e)})),this.element_.addEventListener("click",function(n){n.preventDefault(),n.stopPropagation();var i=e(n.target);if(n.target!==this){t(i),[].concat((0,o["default"])(this.children)).filter(function(e){return e.hasAttribute("aria-selected")}).forEach(function(e){return e.removeAttribute("aria-selected")}),i.setAttribute("aria-selected","");var r=(0,s.createCustomEvent)("select",{bubbles:!0,cancelable:!0,detail:{source:i}});this.dispatchEvent(r)}}.bind(this.element_),!0),this.element_.addEventListener("keydown",function(n){if((n.keyCode===i||n.keyCode===r||n.keyCode===a||n.keyCode===l||n.keyCode===c||n.keyCode===d||n.keyCode===u||n.keyCode===h||n.keyCode===f)&&n.target!==this){for(var o=e(n.target),s=this.children,p=null,_=this.childElementCount-1,v=0;_>=v;v++){if(n.keyCode===c){p=s[0];break}if(n.keyCode===l){p=s[_];break}if(s[v]===o){if(n.keyCode===d||n.keyCode===u)p=v>0?s[v-1]:s[_];else if(n.keyCode===h||n.keyCode===f)p=_>v?s[v+1]:s[0];else if(n.keyCode===i)n.shiftKey?v>0&&(p=s[v-1]):_>v&&(p=s[v+1]);else if(n.keyCode===r||n.keyCode===a){n.preventDefault(),n.stopPropagation();var m=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});o.dispatchEvent(m)}break}}p&&(n.preventDefault(),n.stopPropagation(),t(p))}}.bind(this.element_),!0),this.element_.classList.add(p)},C.prototype.init=function(){this.element_&&this.initLightboard_()},componentHandler.register({constructor:C,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(26),a=i(s),l=n(55),c=i(l),u=n(52),d=i(u),f=n(25),h=i(f),p=n(6);!function(){function e(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}}))}function t(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)}}var n=27,i=32,r=35,s=36,l=37,u=38,f=39,_=40,v="is-upgraded",m="mdlext-lightbox",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(t){if(t&&(t.keyCode===n||t.keyCode===i||t.keyCode===r||t.keyCode===s||t.keyCode===u||t.keyCode===l||t.keyCode===_||t.keyCode===f)){t.keyCode!==n&&(t.preventDefault(),t.stopPropagation());var o="first";t.keyCode===r?o="last":t.keyCode===u||t.keyCode===l?o="prev":t.keyCode===_||t.keyCode===f?o="next":t.keyCode===i?o="select":t.keyCode===n&&(o="cancel"),e(o,this)}},g.prototype.buttonClickHandler_=function(t){if(t){t.preventDefault(),t.stopPropagation(),e(this.getAttribute("data-action")||"",this);for(var n=this;null!=(n=n.parentNode);)if(n.classList.contains(m)){n.focus();break}}},g.prototype.imgLoadHandler_=function(){t(this)},g.prototype.imgDragHandler_=function(t){var n=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}}};t.preventDefault();var i=t.clientX||(void 0!==t.touches?t.touches[0].clientX:0),r=this;r.style.opacity="0.2";var o=document.createElement("div");o.classList.add("mdlext-lightbox__slider"),n(o,{width:r.offsetWidth+"px",height:r.offsetHeight+"px"});var s=document.createElement("div");s.classList.add("mdlext-lightbox__slider__slide"),s.textContent=">",n(s,{width:r.offsetWidth+"px",height:r.offsetHeight+"px","line-height":r.offsetHeight+"px","font-size":r.offsetHeight/4+"px","text-align":"right","background-image":'url("'+(r.getAttribute("data-img-url-prev")||"")+'")'}),o.appendChild(s),s=document.createElement("div"),s.classList.add("mdlext-lightbox__slider__slide"),n(s,{width:r.offsetWidth+"px",height:r.offsetHeight+"px","background-image":'url("'+r.src+'")'}),o.appendChild(s),s=document.createElement("div"),s.classList.add("mdlext-lightbox__slider__slide"),s.textContent="<",n(s,{width:r.offsetWidth+"px",height:r.offsetHeight+"px","line-height":r.offsetHeight+"px","font-size":r.offsetHeight/4+"px","text-align":"left","background-image":'url("'+(r.getAttribute("data-img-url-next")||"")+'")'}),o.appendChild(s),r.parentNode.appendChild(o);var a=function(e){e.preventDefault();var t=(e.clientX||(void 0!==e.touches?e.touches[0].clientX:0))-i;o.offsetWidth-Math.abs(t)>19&&(o.style.left=t+"px")},l=function u(t){t.preventDefault(),window.removeEventListener("mousemove",a),window.removeEventListener("touchmove",a),window.removeEventListener("mouseup",u),window.removeEventListener("touchend",u);var n=o.offsetLeft;r.parentNode.removeChild(o),r.style.opacity="1.0",Math.abs(n)>19&&e(n>0?"prev":"next",r)};window.addEventListener("mousemove",a),window.addEventListener("touchmove",a),window.addEventListener("mouseup",l),window.addEventListener("touchend",l)},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 n=this.element_.querySelector("figcaption");n&&n.addEventListener("click",this.buttonClickHandler_.bind(n),!1);var i=this.element_.querySelector("footer");i&&i.addEventListener("click",this.buttonClickHandler_.bind(i),!1);var r=this.element_.querySelector("img");r&&(r.addEventListener("load",this.imgLoadHandler_.bind(this.element_),!1),r.addEventListener("click",function(e){return e.preventDefault()},!0),r.addEventListener("mousedown",this.imgDragHandler_.bind(r),!0),r.addEventListener("touchstart",this.imgDragHandler_.bind(r),!0)),window.addEventListener("resize",function(){e.drawing_||window.requestAnimationFrame(function(){t(e.element_),e.drawing_=!1}),e.drawing_=!0}),window.addEventListener("orientationchange",function(){return t(e.element_)}),this.element_.classList.add(v)}},componentHandler.register({constructor:g,classAsString:"MaterialExtLightbox",cssClass:"mdlext-js-lightbox"})}()},function(e,t){"use strict";/**
+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(16)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(10),r=n(18);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(68),o=n(86),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(48),o=i(r);t["default"]=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0?i:n)(e)}},function(e,t,n){var i=n(15);e.exports=function(e){return Object(i(e))}},function(e,t,n){"use strict";var i=n(84)(!0);n(33)(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(53),o=i(r),s=n(54),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(){this.cancelRAF()}},{key:"interval",set:function(e){this.interval_=17>e?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,1>e?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(57),__esModule:!0}},function(e,t,n){e.exports={"default":n(59),__esModule:!0}},function(e,t,n){var i=n(28),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(63);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(28);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(75),r=n(3),o=n(83),s=n(9),a=n(12),l=n(5),c=n(72),u=n(35),d=n(80),f=n(2)("iterator"),h=!([].keys&&"next"in[].keys()),p="@@iterator",_="keys",v="values",m=function(){return this};e.exports=function(e,t,n,y,b,g,w){c(n,t,y);var x,C,E,k=function(e){if(!h&&e in M)return M[e];switch(e){case _:return function(){return new n(this,e)};case v:return function(){return new n(this,e)}}return function(){return new n(this,e)}},L=t+" Iterator",S=b==v,A=!1,M=e.prototype,H=M[f]||M[p]||b&&M[b],D=H||k(b),O=b?S?k("entries"):D:void 0,I="Array"==t?M.entries||H:H;if(I&&(E=d(I.call(new e)),E!==Object.prototype&&(u(E,L,!0),i||a(E,f)||s(E,f,m))),S&&H&&H.name!==v&&(A=!0,D=function(){return H.call(this)}),i&&!w||!h&&!A&&M[f]||s(M,f,D),l[t]=D,l[L]=m,b)if(x={values:S?D:k(v),keys:g?D:k(_),entries:O},w)for(C in x)C in M||o(M,C,x[C]);else r(r.P+r.F*(h||A),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(20),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(27),r=n(2)("iterator"),o=n(5);e.exports=n(1).getIteratorMethod=function(e){return void 0!=e?e[r]||e["@@iterator"]||o[i(e)]:void 0}},function(e,t,n){n(90);for(var i=n(4),r=n(9),o=n(5),s=n(2)("toStringTag"),a=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],l=0;5>l;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(){function e(e,o){function v(e,t){e.hasAttribute("open")?w(e,t):g(e,t)}function g(e,t){e.hasAttribute("disabled")||(e.setAttribute("open",""),t.setAttribute("aria-expanded",""),t.setAttribute("aria-selected",""),t.removeAttribute("aria-hidden",""))}function w(e,t){e.hasAttribute("disabled")||(e.removeAttribute("open"),t.removeAttribute("aria-expanded"),t.setAttribute("aria-hidden",""))}function x(){var e=o.element_.querySelector("."+p+"[aria-selected]");e&&e.removeAttribute("aria-selected")}function C(e){var t=e.querySelector("."+p+" a");t&&(x(),t.focus(),e.querySelector("."+p).setAttribute("aria-selected",""))}function E(e,t,n){var i=(0,s.createCustomEvent)("toggle",{bubbles:!0,cancelable:!0,detail:{state:e,source:t}});n.dispatchEvent(i)}var k=e.querySelector("."+p);if(null===k)throw new Error("There must be a header element for each accordion panel.");k.setAttribute("role","tab");var L=k.querySelector("a."+_);if(null===L&&(L=document.createElement("a"),L.href="#",L.classList.add(_),k.appendChild(L)),e.setAttribute("role","tabpanel"),e.hasAttribute("open")?k.setAttribute("aria-expanded",""):k.setAttribute("aria-hidden",""),o.element_.classList.contains(b)){var S=L;S.classList.add(y),S.classList.add(b);var A=document.createElement("span");A.classList.add(m),S.appendChild(A),componentHandler.upgradeElement(S,t)}k.addEventListener("click",function(t){if(t.preventDefault(),t.stopPropagation(),!e.hasAttribute("disabled")){if(e.hasAttribute("open"))w(e,k),E("close",e,o.element_);else{if(o.element_.hasAttribute("aria-multiselectable")&&"false"===o.element_.getAttribute("aria-multiselectable").toLowerCase()){var n=o.element_.querySelector("."+h+"[open]");n&&(w(n,n.querySelector("."+p)),E("close",n,o.element_)),x()}g(e,k),E("open",e,o.element_)}C(e)}},!0),k.addEventListener("keydown",function(t){if(t.keyCode===n||t.keyCode===i||t.keyCode===r||t.keyCode===a||t.keyCode===l||t.keyCode===u||t.keyCode===c||t.keyCode===f||t.keyCode===d){for(var o=e.parentNode.children,s=null,h=e.parentNode.childElementCount-1,p=0;h>=p;p++){if(t.keyCode===l){s=o[0];break}if(t.keyCode===a){s=o[h];break}if(o[p]==e){if(t.keyCode===u||t.keyCode===c)s=p>0?o[p-1]:o[h];else if(t.keyCode===f||t.keyCode===d)s=h>p?o[p+1]:o[0];else if(t.keyCode===n)t.shiftKey?p>0&&!o[p-1].hasAttribute("open")&&(s=o[p-1]):h>p&&(e.hasAttribute("open")||(s=o[p+1]));else if(t.keyCode===i||t.keyCode===r){t.preventDefault(),t.stopPropagation();var _=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});k.dispatchEvent(_)}break}}s&&(t.preventDefault(),t.stopPropagation(),C(s))}},!0),e.addEventListener("command_",function(t){if(t.preventDefault(),t.stopPropagation(),t.detail&&t.detail.action){var n=t.detail.action.toLowerCase();switch(n){case"open":g(e,k);break;case"close":w(e,k);break;case"toggle":v(e,k)}}})}var t="MaterialRipple",n=9,i=13,r=32,a=35,l=36,c=37,u=38,d=39,f=40,h="mdlext-accordion__panel",p="mdlext-accordion__panel__header",_="mdlext-accordion__panel__header__tabstop",v="is-upgraded",m="mdl-ripple",y="mdlext-accordion__panel__header__ripple-container",b="mdl-js-ripple-effect",g="mdl-js-ripple-effect--ignore-events",w=function(e){this.element_=e,this.init()};window.MaterialExtAccordion=w,w.prototype.commandHandler_=function(e){var t=this;e.preventDefault(),e.stopPropagation(),e.detail&&e.detail.action&&!function(){var n=e.detail.action.toLowerCase();"open"!==n&&"close"!==n&&"toggle"!==n||(void 0===e.detail.target?t.element_.hasAttribute("aria-multiselectable")&&"false"!==t.element_.getAttribute("aria-multiselectable").toLowerCase()&&[].concat((0,o["default"])(t.element_.querySelectorAll("."+h))).forEach(function(e){e.dispatchEvent((0,s.createCustomEvent)("command_",{detail:{action:n}}))}):null!==e.detail.target&&e.detail.target.dispatchEvent((0,s.createCustomEvent)("command_",{bubbles:!0,detail:{action:n}})))}()},w.prototype.initAccordion_=function(){var t=this;this.element_.setAttribute("role","tablist"),this.element_.classList.contains(b)&&this.element_.classList.add(g),[].concat((0,o["default"])(this.element_.querySelectorAll("."+h))).forEach(function(n){new e(n,t)}),this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),this.element_.classList.add(v)},w.prototype.init=function(){this.element_&&this.initAccordion_()},componentHandler.register({constructor:w,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(26),o=i(r),s=n(11),a=i(s),l=n(50),c=i(l),u=n(6),d=n(23),f=i(d),h=n(24);!function(){var e=9,t=13,n=27,i=32,r=33,s=34,l=35,d=36,p=37,_=38,v=39,m=40,y="is-upgraded",b="is-focused",g="mdlext-carousel",w="mdlext-carousel__slide",x="list",C="listitem",E="mdl-ripple",k="MaterialRipple",L="mdlext-carousel__slide__ripple-container",S="mdl-js-ripple-effect",A="mdl-js-ripple-effect--ignore-events",M=function(e){this.element_=e,this.config_={interactive:!0,autostart:!1,type:"slide",interval:1e3,animationLoop:new f["default"](1e3)},this.drawing_=!1,this.init()};window.MaterialExtCarousel=M,M.prototype.startSlideShow_=function(){var e=this,t=function(){var t=e.element_.querySelector("."+w+"[aria-selected]");return t&&(t.removeAttribute("aria-selected"),t=t.nextElementSibling),t||(t=e.element_.querySelector("."+w+":first-child"),e.animateScroll_(0)),t?(e.moveSlideIntoViewport_(t),t.setAttribute("aria-selected",""),e.emitSelectEvent_("next",null,t),!0):!1},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()}))}()},M.prototype.cancelSlideShow_=function(){this.config_.animationLoop.running&&(this.config_.animationLoop.stop(),this.emitSelectEvent_("pause",n,this.element_.querySelector("."+w+"[aria-selected]")))},M.prototype.animateScroll_=function(e,t){var n=this,i=this.element_.scrollLeft,r=e-i;0!==r&&!function(){var o=Math.max(Math.min(Math.abs(r),t||400),100),s=0;new f["default"](33).start(function(t){return s+=t,o>s?(n.element_.scrollLeft=(0,h.inOutQuintic)(s,i,r,o),!0):(n.element_.scrollLeft=e,!1)})}()},M.prototype.command_=function(e){var t=0,n=null,i=e.detail.action.toLowerCase();switch(this.cancelSlideShow_(),i){case"first":break;case"last":t=this.element_.scrollWidth-this.element_.clientWidth;break;case"scroll-prev":t=Math.max(this.element_.scrollLeft-this.element_.clientWidth,0);break;case"scroll-next":t=Math.min(this.element_.scrollLeft+this.element_.clientWidth,this.element_.scrollWidth-this.element_.clientWidth);break;case"next":case"prev":return n=this.element_.querySelector("."+w+"[aria-selected]"),void(n&&(n="next"===i?n.nextElementSibling:n.previousElementSibling,D(n),this.emitSelectEvent_(i,null,n)));case"play":return(0,c["default"])(this.config_,e.detail),void this.startSlideShow_();case"pause":return;default:return}this.animateScroll_(t)},M.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e.detail&&e.detail.action&&this.command_(e)},M.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===m||n.keyCode===v){var a=H(n.target);if(!a)return;switch(this.cancelSlideShow_(),n.keyCode){case _:case p:o="prev",a=a.previousElementSibling;break;case m:case v: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(),D(a),this.emitSelectEvent_(o,n.keyCode,a))}}},M.prototype.dragHandler_=function(e){var t=this;e.preventDefault(),this.cancelSlideShow_();var n=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),i=n,r=e.target,o=function(e){var n=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),r=i-n;0>r?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)),i=n},s=function(e){e.preventDefault(),o(e)},a=function l(e){e.preventDefault();var i=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0);if(window.removeEventListener("mousemove",s),window.removeEventListener("touchmove",s),window.removeEventListener("mouseup",l),window.removeEventListener("touchend",l),Math.abs(n-i)<2){var o=H(r);D(o),t.emitSelectEvent_("click",null,o)}};window.addEventListener("mousemove",s),window.addEventListener("touchmove",s),window.addEventListener("mouseup",a),window.addEventListener("touchend",a)},M.prototype.focusHandler_=function(e){var t=H(e.target);t&&([].concat((0,a["default"])(this.element_.querySelectorAll("."+w+"[aria-selected]"))).forEach(function(e){return e.removeAttribute("aria-selected")}),t.setAttribute("aria-selected",""),t.classList.add(b))},M.prototype.blurHandler_=function(e){var t=H(e.target);t&&t.classList.remove(b)},M.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)}},M.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)}};var H=function I(e){return!e||void 0===e.parentNode.tagName||e.classList.contains(g)?null:e.classList.contains(w)?e:I(e.parentNode)},D=function(e){e&&e.focus()},O=function(e){if(!e.querySelector("."+L)){var t=document.createElement("span");t.classList.add(L),t.classList.add(S);var n=document.createElement("span");n.classList.add(E),t.appendChild(n);var i=e.querySelector("img");i&&(t.title=i.title),e.appendChild(t),componentHandler.upgradeElement(t,k)}};M.prototype.stopAnimation=function(){this.config_.animationLoop.stop()},M.prototype.stopAnimation=M.prototype.stopAnimation,M.prototype.upgradeSlides=function(){var e=this,t=this.element_.classList.contains(S);[].concat((0,a["default"])(this.element_.querySelectorAll("."+w))).forEach(function(n){n.setAttribute("role",C),e.config_.interactive?((0,o["default"])(n.getAttribute("tabindex"))||n.setAttribute("tabindex",0),t&&O(n)):n.setAttribute("tabindex",-1)})},M.prototype.upgradeSlides=M.prototype.upgradeSlides,M.prototype.getConfig=function(){return this.config_},M.prototype.getConfig=M.prototype.getConfig,M.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)}}this.element_.setAttribute("role",x),(0,o["default"])(this.element_.getAttribute("tabindex"))||this.element_.setAttribute("tabindex",-1);var r=this.element_.classList.contains(S);r&&this.element_.classList.add(A),this.upgradeSlides(),this.config_.interactive&&(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),!0),this.element_.addEventListener("mousedown",this.dragHandler_.bind(this),!0),this.element_.addEventListener("touchstart",this.dragHandler_.bind(this),!0),this.element_.addEventListener("click",function(e){return e.preventDefault()},!0)),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.element_.classList.add(y),this.config_.autostart&&this.startSlideShow_()}},componentHandler.register({constructor:M,classAsString:"MaterialExtCarousel",cssClass:"mdlext-js-carousel",widget:!0})}()},function(e,t,n){"use strict";n(6),n(23),n(24),n(47),n(46),n(41),n(44),n(45),n(42)},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(){function e(t){return!t||t.classList.contains(_)?null:t.classList.contains(v)?t:e(t.parentNode)}function t(e){if(e){var t=e.querySelector("a."+m);t&&t.focus()}}function n(e){var t=e.querySelector("a."+m);if(t){var n=t;n.classList.add(g),n.classList.add(w);var i=document.createElement("span");i.classList.add(b),n.appendChild(i),componentHandler.upgradeElement(n,y)}}var i=9,r=13,a=32,l=35,c=36,u=37,d=38,f=39,h=40,p="is-upgraded",_="mdlext-lightboard",v="mdlext-lightboard__slide",m="mdlext-lightboard__slide__frame",y="MaterialRipple",b="mdl-ripple",g="mdlext-lightboard__slide__ripple-container",w="mdl-js-ripple-effect",x="mdl-js-ripple-effect--ignore-events",C=function(e){this.element_=e,this.init()};window.MaterialExtLightboard=C,C.prototype.initLightboard_=function(){this.element_.setAttribute("role","grid"),[].concat((0,o["default"])(this.element_.querySelectorAll("."+v))).forEach(function(e){return e.setAttribute("role","cell")}),this.element_.classList.contains(w)&&(this.element_.classList.add(x),[].concat((0,o["default"])(this.element_.querySelectorAll("."+v))).forEach(function(e){return n(e)})),this.element_.addEventListener("click",function(n){n.preventDefault(),n.stopPropagation();var i=e(n.target);if(n.target!==this){t(i),[].concat((0,o["default"])(this.children)).filter(function(e){return e.hasAttribute("aria-selected")}).forEach(function(e){return e.removeAttribute("aria-selected")}),i.setAttribute("aria-selected","");var r=(0,s.createCustomEvent)("select",{bubbles:!0,cancelable:!0,detail:{source:i}});this.dispatchEvent(r)}}.bind(this.element_),!0),this.element_.addEventListener("keydown",function(n){if((n.keyCode===i||n.keyCode===r||n.keyCode===a||n.keyCode===l||n.keyCode===c||n.keyCode===d||n.keyCode===u||n.keyCode===h||n.keyCode===f)&&n.target!==this){for(var o=e(n.target),s=this.children,p=null,_=this.childElementCount-1,v=0;_>=v;v++){if(n.keyCode===c){p=s[0];break}if(n.keyCode===l){p=s[_];break}if(s[v]===o){if(n.keyCode===d||n.keyCode===u)p=v>0?s[v-1]:s[_];else if(n.keyCode===h||n.keyCode===f)p=_>v?s[v+1]:s[0];else if(n.keyCode===i)n.shiftKey?v>0&&(p=s[v-1]):_>v&&(p=s[v+1]);else if(n.keyCode===r||n.keyCode===a){n.preventDefault(),n.stopPropagation();var m=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});o.dispatchEvent(m)}break}}p&&(n.preventDefault(),n.stopPropagation(),t(p))}}.bind(this.element_),!0),this.element_.classList.add(p)},C.prototype.init=function(){this.element_&&this.initLightboard_()},componentHandler.register({constructor:C,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(26),a=i(s),l=n(55),c=i(l),u=n(52),d=i(u),f=n(25),h=i(f),p=n(6);!function(){function e(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}}))}function t(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)}}var n=27,i=32,r=35,s=36,l=37,u=38,f=39,_=40,v="is-upgraded",m="mdlext-lightbox",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(t){if(t&&(t.keyCode===n||t.keyCode===i||t.keyCode===r||t.keyCode===s||t.keyCode===u||t.keyCode===l||t.keyCode===_||t.keyCode===f)){t.keyCode!==n&&(t.preventDefault(),t.stopPropagation());var o="first";t.keyCode===r?o="last":t.keyCode===u||t.keyCode===l?o="prev":t.keyCode===_||t.keyCode===f?o="next":t.keyCode===i?o="select":t.keyCode===n&&(o="cancel"),e(o,this)}},g.prototype.buttonClickHandler_=function(t){if(t){t.preventDefault(),t.stopPropagation(),e(this.getAttribute("data-action")||"",this);for(var n=this;null!=(n=n.parentNode);)if(n.classList.contains(m)){n.focus();break}}},g.prototype.imgLoadHandler_=function(){t(this)},g.prototype.imgDragHandler_=function(t){var n=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}}};t.preventDefault();var i=t.clientX||(void 0!==t.touches?t.touches[0].clientX:0),r=this;r.style.opacity="0.2";var o=document.createElement("div");o.classList.add("mdlext-lightbox__slider"),n(o,{width:r.offsetWidth+"px",height:r.offsetHeight+"px"});var s=document.createElement("div");s.classList.add("mdlext-lightbox__slider__slide"),s.textContent=">",n(s,{width:r.offsetWidth+"px",height:r.offsetHeight+"px","line-height":r.offsetHeight+"px","font-size":r.offsetHeight/4+"px","text-align":"right","background-image":'url("'+(r.getAttribute("data-img-url-prev")||"")+'")'}),o.appendChild(s),s=document.createElement("div"),s.classList.add("mdlext-lightbox__slider__slide"),n(s,{width:r.offsetWidth+"px",height:r.offsetHeight+"px","background-image":'url("'+r.src+'")'}),o.appendChild(s),s=document.createElement("div"),s.classList.add("mdlext-lightbox__slider__slide"),s.textContent="<",n(s,{width:r.offsetWidth+"px",height:r.offsetHeight+"px","line-height":r.offsetHeight+"px","font-size":r.offsetHeight/4+"px","text-align":"left","background-image":'url("'+(r.getAttribute("data-img-url-next")||"")+'")'}),o.appendChild(s),r.parentNode.appendChild(o);var a=function(e){e.preventDefault();var t=(e.clientX||(void 0!==e.touches?e.touches[0].clientX:0))-i;o.offsetWidth-Math.abs(t)>19&&(o.style.left=t+"px")},l=function u(t){t.preventDefault(),window.removeEventListener("mousemove",a),window.removeEventListener("touchmove",a),window.removeEventListener("mouseup",u),window.removeEventListener("touchend",u);var n=o.offsetLeft;r.parentNode.removeChild(o),r.style.opacity="1.0",Math.abs(n)>19&&e(n>0?"prev":"next",r)};window.addEventListener("mousemove",a),window.addEventListener("touchmove",a),window.addEventListener("mouseup",l),window.addEventListener("touchend",l)},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 n=this.element_.querySelector("figcaption");n&&n.addEventListener("click",this.buttonClickHandler_.bind(n),!1);var i=this.element_.querySelector("footer");i&&i.addEventListener("click",this.buttonClickHandler_.bind(i),!1);var r=this.element_.querySelector("img");r&&(r.addEventListener("load",this.imgLoadHandler_.bind(this.element_),!1),r.addEventListener("click",function(e){return e.preventDefault()},!0),r.addEventListener("mousedown",this.imgDragHandler_.bind(r),!0),r.addEventListener("touchstart",this.imgDragHandler_.bind(r),!0)),window.addEventListener("resize",function(){e.drawing_||window.requestAnimationFrame(function(){t(e.element_),e.drawing_=!1}),e.drawing_=!0}),window.addEventListener("orientationchange",function(){return t(e.element_)}),this.element_.classList.add(v)}},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 50af4e1..c763400 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 cf20fcafe0840a60d57a?a404","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:///./~/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","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","prototype","$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","MaterialExtAccordionPanel","panel","togglePanel","header","hasAttribute","closePanel","openPanel","setAttribute","removeAttribute","removeAriaSelectedAttribute","selectedHeader","element_","querySelector","HEADER","focus","nextPanel","dispatchToggleEvent","state","evt","dispatchEvent","Error","HEADER_TABSTOP","href","classList","add","appendChild","contains","RIPPLE_EFFECT","rippleContainer","RIPPLE_CONTAINER","ripple","RIPPLE","componentHandler","upgradeElement","RIPPLE_COMPONENT","addEventListener","event","stopPropagation","getAttribute","toLowerCase","_openPanel","PANEL","keyCode","VK_TAB","VK_ENTER","VK_SPACE","VK_END","VK_HOME","VK_ARROW_UP","VK_ARROW_LEFT","VK_ARROW_DOWN","VK_ARROW_RIGHT","panels","parentNode","children","n","childElementCount","shiftKey","MouseEvent","view","action","IS_UPGRADED","RIPPLE_EFFECT_IGNORE_EVENTS","MaterialExtAccordion","element","init","commandHandler_","querySelectorAll","forEach","initAccordion_","_this2","bind","register","constructor","classAsString","cssClass","widget","_isInteger","_isInteger2","_assign","_assign2","_animationloop","_animationloop2","_easing","VK_ESC","VK_PAGE_UP","VK_PAGE_DOWN","IS_FOCUSED","CAROUSEL","SLIDE","ROLE","SLIDE_ROLE","MaterialExtCarousel","config_","interactive","autostart","animationLoop","drawing_","startSlideShow_","nextSlide","slide","nextElementSibling","animateScroll_","moveSlideIntoViewport_","emitSelectEvent_","nextScroll","direction","nextDirection","scrollLeft","scrollWidth","clientWidth","x","max","running","start","cancelSlideShow_","stop","newPosition","newDuration","distance","duration","abs","timeElapsed","command_","previousElementSibling","setFocus_","keyDownHandler_","getSlide_","dragHandler_","_this3","updating","rAFDragId","startX","clientX","touches","prevX","targetElement","update","currentX","dx","drag","endDrag","removeEventListener","focusHandler_","blurHandler_","remove","command","carouselRect","getBoundingClientRect","slideRect","left","right","_x","tagName","addRipple_","img","title","stopAnimation","upgradeSlides","_this4","hasRippleEffect","getConfig","_this5","s","replace","JSON","parse","message","MutationObserver","WebKitMutationObserver","MozMutationObserver","mutations","mutation","addedNodes","observe","attributes","childList","characterData","subtree","getSlide","LIGHTBOARD","SLIDE_TABSTOP","addRipple","MaterialExtLightboard","initLightboard_","filter","selected","_slicedToArray2","_slicedToArray3","_entries","_entries2","_getIterator2","_getIterator3","dispatchAction_","repositionDialog_","lightboxElement","footerHeight","footer","isSticky","offsetHeight","reposition","dialog","fh","getComputedStyle","position","scrollTop","body","documentElement","topValue","innerHeight","style","top","nodeName","width","maxWidth","naturalWidth","STICKY_FOOTER_CLASS","vh","clientHeight","offsetWidth","LIGHTBOX_CLASS","BUTTON_CLASS","MaterialExtLightbox","buttonClickHandler_","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","el","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","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":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,OAAA,aAAAH,GACA,gBAAAC,SACAA,QAAA,WAAAD,IAEAD,EAAA,WAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,UAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,UAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAASL,EAAQD,EAASM,GAE/BA,EAAoB,IACpBL,EAAOD,QAAUM,EAAoB,KAKhC,SAASL,EAAQD,GE9DvB,GAAAe,GAAAd,EAAAD,SAA6BgB,QAAA,QAC7B,iBAAAC,WAAAF,IFoEM,SAASd,EAAQD,EAASM,GGrEhC,GAAAY,GAAAZ,EAAA,WACAa,EAAAb,EAAA,IACAc,EAAAd,EAAA,GAAAc,OACAC,EAAA,kBAAAD,GAEAE,EAAArB,EAAAD,QAAA,SAAAuB,GACA,MAAAL,GAAAK,KAAAL,EAAAK,GACAF,GAAAD,EAAAG,KAAAF,EAAAD,EAAAD,GAAA,UAAAI,IAGAD,GAAAJ,SH2EM,SAASjB,EAAQD,EAASM,GIrFhC,GAAAkB,GAAAlB,EAAA,GACAS,EAAAT,EAAA,GACAmB,EAAAnB,EAAA,IACAoB,EAAApB,EAAA,GACAqB,EAAA,YAEAC,EAAA,SAAAC,EAAAN,EAAAO,GACA,GASAC,GAAAC,EAAAC,EATAC,EAAAL,EAAAD,EAAAO,EACAC,EAAAP,EAAAD,EAAAS,EACAC,EAAAT,EAAAD,EAAAW,EACAC,EAAAX,EAAAD,EAAAa,EACAC,EAAAb,EAAAD,EAAAe,EACAC,EAAAf,EAAAD,EAAAiB,EACA7C,EAAAoC,EAAArB,IAAAQ,KAAAR,EAAAQ,OACAuB,EAAA9C,EAAA2B,GACAoB,EAAAX,EAAAZ,EAAAc,EAAAd,EAAAD,IAAAC,EAAAD,QAAqFI,EAErFS,KAAAN,EAAAP,EACA,KAAAQ,IAAAD,GAEAE,GAAAE,GAAAa,GAAAC,SAAAD,EAAAhB,GACAC,GAAAD,IAAA/B,KAEAiC,EAAAD,EAAAe,EAAAhB,GAAAD,EAAAC,GAEA/B,EAAA+B,GAAAK,GAAA,kBAAAW,GAAAhB,GAAAD,EAAAC,GAEAW,GAAAV,EAAAP,EAAAQ,EAAAT,GAEAoB,GAAAG,EAAAhB,IAAAE,EAAA,SAAAgB,GACA,GAAAd,GAAA,SAAAe,EAAAC,EAAAtC,GACA,GAAAT,eAAA6C,GAAA,CACA,OAAAG,UAAAC,QACA,iBAAAJ,EACA,kBAAAA,GAAAC,EACA,kBAAAD,GAAAC,EAAAC,GACW,UAAAF,GAAAC,EAAAC,EAAAtC,GACF,MAAAoC,GAAAK,MAAAlD,KAAAgD,WAGT,OADAjB,GAAAR,GAAAsB,EAAAtB,GACAQ,GAEKF,GAAAO,GAAA,kBAAAP,GAAAR,EAAA8B,SAAA5C,KAAAsB,KAELO,KACAxC,EAAAwD,UAAAxD,EAAAwD,aAA+CzB,GAAAE,EAE/CJ,EAAAD,EAAA6B,GAAAX,MAAAf,IAAAL,EAAAoB,EAAAf,EAAAE,KAKAL,GAAAO,EAAA,EACAP,EAAAS,EAAA,EACAT,EAAAW,EAAA,EACAX,EAAAa,EAAA,EACAb,EAAAe,EAAA,GACAf,EAAAiB,EAAA,GACAjB,EAAA8B,EAAA,GACA9B,EAAA6B,EAAA,IACAxD,EAAAD,QAAA4B,GJ2FM,SAAS3B,EAAQD,GKtJvB,GAAAwB,GAAAvB,EAAAD,QAAA,mBAAA2D,gBAAAC,WACAD,OAAA,mBAAAE,YAAAD,WAAAC,KAAAN,SAAA,gBACA,iBAAAO,WAAAtC,IL6JM,SAASvB,EAAQD,GMhKvBC,EAAAD,YNsKM,SAASC,EAAQD,GAEtB;;;;;;;;;;;;;;;;AO3IM,QAAS+D,GAAmBC,GAAiF,GAAxEC,GAAwEb,UAAAC,QAAA,GAAAL,SAAAI,UAAA,IAApDc,WAAgBC,cAAmBC,OAAQ,MAAShB,UAAA,EAGlH,KAEE,MAAO,IAAIO,QAAOU,YAAYL,EAASC,GAEzC,MAAMK,GAGJ,GAAMC,GAAKC,SAASC,YAAY,cAUhC,OATAF,GAAGG,gBAAgBV,EAASC,EAAgBC,QAASD,EAAgBE,WAAYF,EAAgBG,QAEjGG,EAAGI,eAAiB,WAClBC,OAAOC,eAAezE,KAAM,oBAC1B0E,IAAK,WACH,aAICP,GPyHVK,OAAOC,eAAe7E,EAAS,cAC7B+E,WAEF/E,EOhJe+D,qBPwMV,SAAS9D,EAAQD,EAASM,GQrOhC,GAAA0E,GAAA1E,EAAA,GACAL,GAAAD,QAAA,SAAAiF,GACA,IAAAD,EAAAC,GAAA,KAAAC,WAAAD,EAAA,qBACA,OAAAA,KR4OM,SAAShF,EAAQD,EAASM,GS9OhCL,EAAAD,SAAAM,EAAA,eACA,MAAsE,IAAtEsE,OAAAC,kBAAiC,KAAQC,IAAA,WAAgB,YAAa5B,KTsPhE,SAASjD,EAAQD,EAASM,GUxPhC,GAAA6E,GAAA7E,EAAA,IACA8E,EAAA9E,EAAA,GACAL,GAAAD,QAAAM,EAAA,YAAA+E,EAAAtD,EAAAgD,GACA,MAAAI,GAAAG,EAAAD,EAAAtD,EAAAqD,EAAA,EAAAL,KACC,SAAAM,EAAAtD,EAAAgD,GAED,MADAM,GAAAtD,GAAAgD,EACAM,IV+PM,SAASpF,EAAQD,EAASM,GWrQhC,GAAAiF,GAAAjF,EAAA,GACAkF,EAAAlF,EAAA,IACAmF,EAAAnF,EAAA,IACA6E,EAAAP,OAAAC,cAEA7E,GAAAsF,EAAAhF,EAAA,GAAAsE,OAAAC,eAAA,SAAAa,EAAAjD,EAAAkD,GAIA,GAHAJ,EAAAG,GACAjD,EAAAgD,EAAAhD,MACA8C,EAAAI,GACAH,EAAA,IACA,MAAAL,GAAAO,EAAAjD,EAAAkD,GACG,MAAArB,IACH,UAAAqB,IAAA,OAAAA,GAAA,KAAAT,WAAA,2BAEA,OADA,SAAAS,KAAAD,EAAAjD,GAAAkD,EAAAZ,OACAW,IX4QM,SAASzF,EAAQD,EAASM,GY1RhC,YAQA,SAAAsF,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAN7E7F,EAAA8F,aAEA,IAAAE,GAAA1F,EAAA,IAEA2F,EAAAL,EAAAI,EAIAhG,cAAA,SAAAkG,GACA,GAAAC,MAAAC,QAAAF,GAAA,CACA,OAAAG,GAAA,EAAAC,EAAAH,MAAAD,EAAA7C,QAA6CgD,EAAAH,EAAA7C,OAAgBgD,IAC7DC,EAAAD,GAAAH,EAAAG,EAGA,OAAAC,GAEA,SAAAL,cAAAC,KZkSM,SAASjG,EAAQD,GapTvB,GAAAuG,MAAuBA,cACvBtG,GAAAD,QAAA,SAAAiF,EAAAlD,GACA,MAAAwE,GAAA5F,KAAAsE,EAAAlD,Kb2TM,SAAS9B,EAAQD,Gc7TvBC,EAAAD,QAAA,SAAAiF,GACA,sBAAAA,GAAA,OAAAA,EAAA,kBAAAA,KdoUM,SAAShF,EAAQD,EAASM,GepUhC,GAAAkG,GAAAlG,EAAA,IACAmG,EAAAnG,EAAA,GACAL,GAAAD,QAAA,SAAAiF,GACA,MAAAuB,GAAAC,EAAAxB,Mf4UM,SAAShF,EAAQD,GgB/UvBC,EAAAD,QAAA,SAAAiF,GACA,GAAAjC,QAAAiC,EAAA,KAAAC,WAAA,yBAAAD,EACA,OAAAA,KhBuVM,SAAShF,EAAQD,GiB1VvBC,EAAAD,QAAA,SAAA0G,GACA,IACA,QAAAA,IACG,MAAApC,GACH,YjBkWM,SAASrE,EAAQD,EAASM,GkBrWhC,GAAAqG,GAAArG,EAAA,IACAsG,EAAAtG,EAAA,GAEAL,GAAAD,QAAA4E,OAAAiC,MAAA,SAAAnB,GACA,MAAAiB,GAAAjB,EAAAkB,KlB6WM,SAAS3G,EAAQD,GmBlXvBC,EAAAD,QAAA,SAAA8G,EAAA/B,GACA,OACAgC,aAAA,EAAAD,GACAE,eAAA,EAAAF,GACAG,WAAA,EAAAH,GACA/B,WnB0XM,SAAS9E,EAAQD,EAASM,GoB/XhC,GAAA4G,GAAA5G,EAAA,YACAa,EAAAb,EAAA,GACAL,GAAAD,QAAA,SAAA+B,GACA,MAAAmF,GAAAnF,KAAAmF,EAAAnF,GAAAZ,EAAAY,MpBsYM,SAAS9B,EAAQD,GqBxYvB,GAAAmH,GAAAvD,KAAAuD,KACAC,EAAAxD,KAAAwD,KACAnH,GAAAD,QAAA,SAAAiF,GACA,MAAAoC,OAAApC,MAAA,GAAAA,EAAA,EAAAmC,EAAAD,GAAAlC,KrBgZM,SAAShF,EAAQD,EAASM,GsBnZhC,GAAAmG,GAAAnG,EAAA,GACAL,GAAAD,QAAA,SAAAiF,GACA,MAAAL,QAAA6B,EAAAxB,MtB2ZM,SAAShF,EAAQD,EAASM,GuB9ZhC,YACA,IAAAgH,GAAAhH,EAAA,OAGAA,GAAA,IAAAiH,OAAA,kBAAAC,GACApH,KAAAqH,GAAAF,OAAAC,GACApH,KAAAsH,GAAA,GAEC,WACD,GAEAC,GAFAjC,EAAAtF,KAAAqH,GACAG,EAAAxH,KAAAsH,EAEA,OAAAE,IAAAlC,EAAArC,QAA+B0B,MAAA/B,OAAA6E,UAC/BF,EAAAL,EAAA5B,EAAAkC,GACAxH,KAAAsH,IAAAC,EAAAtE,QACU0B,MAAA4C,EAAAE,avBqaJ,SAAS5H,EAAQD,EAASM,GAE/B,YAcA,SAASsF,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAZvFjB,OAAOC,eAAe7E,EAAS,cAC7B+E,UAGF,IAAI+C,GAAmBxH,EAAoB,IAEvCyH,EAAmBnC,EAAuBkC,GAE1CE,EAAgB1H,EAAoB,IAEpC2H,EAAgBrC,EAAuBoC,GwB1atCE,ExBscqB,WwB/bzB,QAAAA,KAA2B,GAAfC,GAAe/E,UAAAC,QAAA,GAAAL,SAAAI,UAAA,GAAJ,GAAIA,UAAA,MAAA2E,cAAA3H,KAAA8H,GACzB9H,KAAK+H,SAAeA,EACpB/H,KAAKgI,YACLhI,KAAKiI,OAAe,EACpBjI,KAAKkI,aAAe,ExB+hBrB,SA5EIL,cAAuBC,IACzBnG,IAAK,YAMLgD,MAAO,WwBpcW,IAAhB3E,KAAKiI,SACN1E,OAAO4E,qBAAqBnI,KAAKiI,QACjCjI,KAAKiI,OAAS,GAEhBjI,KAAKgI,YACLhI,KAAKkI,aAAe,KxB8cnBvG,IAAK,QACLgD,MAAO,SwBxcHyD,GAAO,GAAAC,GAAArI,IACZA,MAAKgI,WACL,IAAIM,GAAYC,KAAKC,MAEfC,EAAO,QAAPA,GAAOD,GACPH,EAAKL,WACPK,EAAKJ,OAAS1E,OAAOmF,sBAAuB,iBAAMD,GAAMF,KAAKC,SAC7DH,EAAKH,cAAgBM,EAAMF,EAExBD,EAAKH,cAAgBG,EAAKM,YAC3BN,EAAKL,SAAWI,EAAMC,EAAKH,eACtBG,EAAKH,cAAgBG,EAAKM,WAAaN,EAAKM,YAG/CN,EAAKH,aAAe,IAGxBI,EAAYE,GAIhB,OADAC,GAAKH,GACEtI,QxBodN2B,IAAK,OACLgD,MAAO,WwB9cR3E,KAAK4I,exBkdJjH,IAAK,WACLkH,IAAK,SwB1gBKd,GACX/H,KAAK2I,UAAuB,GAAXZ,EAAgB,GAAKA,KxBkhBrCpG,IAAK,UACL+C,IAAK,WwB5gBN,MAAO1E,MAAKgI,axBghBNF,IAGTlI,cwBheckI,ExBiedjI,EAAOD,QAAUA,EAAQ,YAIpB,SAASC,EAAQD,GAEtB,YAEA4E,QAAOC,eAAe7E,EAAS,cAC7B+E,WyB7kBU/E,EAAAkJ,cAAgB,SAACC,EAAGhG,EAAGtC,EAAGuI,GAErC,MADAD,IAAKC,EAAI,EACF,EAAJD,EAActI,EAAI,EAAIsI,EAAIA,EAAIhG,GACjCgG,KACQtI,EAAI,GAAKsI,GAAKA,EAAI,GAAK,GAAKhG,IAGzBnD,EAAAqJ,aAAe,SAACF,EAAGhG,EAAGtC,EAAGuI,GACpC,GAAME,IAAMH,GAAGC,GAAGD,EACZI,EAAKD,EAAGH,CACd,OAAOhG,GAAEtC,GAAG,EAAE0I,EAAGD,EAAK,IAAIA,EAAGA,EAAK,GAAGC,KzBslBjC,SAAStJ,EAAQD,EAASM,G0BlmBhCL,EAAAD,SAAkB+F,UAAAzF,EAAA,IAAAwF,gB1BwmBZ,SAAS7F,EAAQD,EAASM,G2BxmBhCL,EAAAD,SAAkB+F,UAAAzF,EAAA,IAAAwF,gB3B8mBZ,SAAS7F,EAAQD,EAASM,G4B7mBhC,GAAAkJ,GAAAlJ,EAAA,IACAmJ,EAAAnJ,EAAA,kBAEAoJ,EAA6C,aAA7CF,EAAA,WAAyB,MAAApG,eAGzBuG,EAAA,SAAA1E,EAAAlD,GACA,IACA,MAAAkD,GAAAlD,GACG,MAAAuC,KAGHrE,GAAAD,QAAA,SAAAiF,GACA,GAAAS,GAAAkE,EAAAjH,CACA,OAAAK,UAAAiC,EAAA,mBAAAA,EAAA,OAEA,iBAAA2E,EAAAD,EAAAjE,EAAAd,OAAAK,GAAAwE,IAAAG,EAEAF,EAAAF,EAAA9D,GAEA,WAAA/C,EAAA6G,EAAA9D,KAAA,kBAAAA,GAAAmE,OAAA,YAAAlH,I5BqnBM,SAAS1C,EAAQD,G6B1oBvB,GAAA8J,MAAiBA,QAEjB7J,GAAAD,QAAA,SAAAiF,GACA,MAAA6E,GAAAnJ,KAAAsE,GAAA8E,MAAA,Q7BipBM,SAAS9J,EAAQD,EAASM,G8BnpBhC,GAAA0J,GAAA1J,EAAA,GACAL,GAAAD,QAAA,SAAAiK,EAAAC,EAAA7G,GAEA,GADA2G,EAAAC,GACAjH,SAAAkH,EAAA,MAAAD,EACA,QAAA5G,GACA,uBAAAH,GACA,MAAA+G,GAAAtJ,KAAAuJ,EAAAhH,GAEA,wBAAAA,EAAAC,GACA,MAAA8G,GAAAtJ,KAAAuJ,EAAAhH,EAAAC,GAEA,wBAAAD,EAAAC,EAAAtC,GACA,MAAAoJ,GAAAtJ,KAAAuJ,EAAAhH,EAAAC,EAAAtC,IAGA,kBACA,MAAAoJ,GAAA3G,MAAA4G,EAAA9G,c9B4pBM,SAASnD,EAAQD,EAASM,G+B7qBhC,GAAA0E,GAAA1E,EAAA,IACAkE,EAAAlE,EAAA,GAAAkE,SAEA2F,EAAAnF,EAAAR,IAAAQ,EAAAR,EAAA4F,cACAnK,GAAAD,QAAA,SAAAiF,GACA,MAAAkF,GAAA3F,EAAA4F,cAAAnF,Q/BorBM,SAAShF,EAAQD,GgCxrBvBC,EAAAD,QAAA,gGAEAqK,MAAA,MhC+rBM,SAASpK,EAAQD,EAASM,GiCjsBhC,GAAAkJ,GAAAlJ,EAAA,GACAL,GAAAD,QAAA4E,OAAA,KAAA0F,qBAAA,GAAA1F,OAAA,SAAAK,GACA,gBAAAuE,EAAAvE,KAAAoF,MAAA,IAAAzF,OAAAK,KjCysBM,SAAShF,EAAQD,EAASM,GkC5sBhC,YACA,IAAAiK,GAAAjK,EAAA,IACAsB,EAAAtB,EAAA,GACAkK,EAAAlK,EAAA,IACAoB,EAAApB,EAAA,GACAmK,EAAAnK,EAAA,IACAoK,EAAApK,EAAA,GACAqK,EAAArK,EAAA,IACAsK,EAAAtK,EAAA,IACAuK,EAAAvK,EAAA,IACAwK,EAAAxK,EAAA,eACAyK,OAAAlE,MAAA,WAAAA,QACAmE,EAAA,aACAC,EAAA,OACAC,EAAA,SAEAC,EAAA,WAA4B,MAAA/K,MAE5BH,GAAAD,QAAA,SAAAoL,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACAf,EAAAW,EAAAD,EAAAE,EACA,IAeAI,GAAA5J,EAAA6J,EAfAC,EAAA,SAAAC,GACA,IAAAf,GAAAe,IAAAC,GAAA,MAAAA,GAAAD,EACA,QAAAA,GACA,IAAAb,GAAA,kBAAwC,UAAAK,GAAAlL,KAAA0L,GACxC,KAAAZ,GAAA,kBAA4C,UAAAI,GAAAlL,KAAA0L,IACvC,kBAA2B,UAAAR,GAAAlL,KAAA0L,KAEhCrC,EAAA4B,EAAA,YACAW,EAAAR,GAAAN,EACAe,KACAF,EAAAX,EAAAc,UACAC,EAAAJ,EAAAjB,IAAAiB,EAAAf,IAAAQ,GAAAO,EAAAP,GACAY,EAAAD,GAAAN,EAAAL,GACAa,EAAAb,EAAAQ,EAAAH,EAAA,WAAAO,EAAApJ,OACAsJ,EAAA,SAAAjB,EAAAU,EAAAQ,SAAAJ,GAwBA,IArBAG,IACAV,EAAAf,EAAAyB,EAAA3L,KAAA,GAAAyK,KACAQ,IAAAhH,OAAAsH,YAEAtB,EAAAgB,EAAAnC,MAEAc,GAAAE,EAAAmB,EAAAd,IAAApJ,EAAAkK,EAAAd,EAAAK,KAIAa,GAAAG,KAAA5K,OAAA2J,IACAe,KACAG,EAAA,WAAiC,MAAAD,GAAAxL,KAAAP,QAGjCmK,IAAAmB,IAAAX,IAAAkB,GAAAF,EAAAjB,IACApJ,EAAAqK,EAAAjB,EAAAsB,GAGA1B,EAAAW,GAAAe,EACA1B,EAAAjB,GAAA0B,EACAK,EAMA,GALAG,GACAa,OAAAR,EAAAI,EAAAP,EAAAX,GACArE,KAAA4E,EAAAW,EAAAP,EAAAZ,GACAsB,QAAAF,GAEAX,EAAA,IAAA3J,IAAA4J,GACA5J,IAAAgK,IAAAvB,EAAAuB,EAAAhK,EAAA4J,EAAA5J,QACKH,KAAAa,EAAAb,EAAAO,GAAA4I,GAAAkB,GAAAZ,EAAAM,EAEL,OAAAA,KlCmtBM,SAAS1L,EAAQD,GmCvxBvBA,EAAAsF,KAAcgF,sBnC6xBR,SAASrK,EAAQD,EAASM,GoC7xBhC,GAAAmM,GAAAnM,EAAA,IAAAgF,EACAmF,EAAAnK,EAAA,IACAmJ,EAAAnJ,EAAA,iBAEAL,GAAAD,QAAA,SAAAiF,EAAAyH,EAAAC,GACA1H,IAAAwF,EAAAxF,EAAA0H,EAAA1H,IAAAiH,UAAAzC,IAAAgD,EAAAxH,EAAAwE,GAAkEzC,gBAAAjC,MAAA2H,MpCoyB5D,SAASzM,EAAQD,EAASM,GqCzyBhC,GAAAkB,GAAAlB,EAAA,GACAsM,EAAA,qBACA1L,EAAAM,EAAAoL,KAAApL,EAAAoL,MACA3M,GAAAD,QAAA,SAAA+B,GACA,MAAAb,GAAAa,KAAAb,EAAAa,SrCgzBM,SAAS9B,EAAQD,EAASM,GsCnzBhC,GAAAuM,GAAAvM,EAAA,IACAwM,EAAAlJ,KAAAkJ,GACA7M,GAAAD,QAAA,SAAAiF,GACA,MAAAA,GAAA,EAAA6H,EAAAD,EAAA5H,GAAA,sBtC2zBM,SAAShF,EAAQD,GuC/zBvB,GAAAS,GAAA,EACAsM,EAAAnJ,KAAAoJ,QACA/M,GAAAD,QAAA,SAAA+B,GACA,gBAAAkL,OAAAjK,SAAAjB,EAAA,GAAAA,EAAA,QAAAtB,EAAAsM,GAAAjD,SAAA,OvCs0BM,SAAS7J,EAAQD,EAASM,GwCz0BhC,GAAA4M,GAAA5M,EAAA,IACAwK,EAAAxK,EAAA,eACAoK,EAAApK,EAAA,EACAL,GAAAD,QAAAM,EAAA,GAAA6M,kBAAA,SAAAlI,GACA,MAAAjC,SAAAiC,IAAA6F,IACA7F,EAAA,eACAyF,EAAAwC,EAAAjI,IAFA,SxCk1BM,SAAShF,EAAQD,EAASM,GyCt1BhCA,EAAA,GAMA,QALAkB,GAAAlB,EAAA,GACAoB,EAAApB,EAAA,GACAoK,EAAApK,EAAA,GACA8M,EAAA9M,EAAA,kBAEA+M,GAAA,sEAAAhH,EAAA,EAAwG,EAAAA,EAAOA,IAAA,CAC/G,GAAAgF,GAAAgC,EAAAhH,GACAiH,EAAA9L,EAAA6J,GACAU,EAAAuB,KAAApB,SACAH,OAAAqB,IAAA1L,EAAAqK,EAAAqB,EAAA/B,GACAX,EAAAW,GAAAX,EAAAvE,QzC61BM,SAASlG,EAAQD,EAASM,GAE/B,YAQA,SAASsF,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GANvF,GAAI0H,GAAsBjN,EAAoB,IAE1CkN,EAAsB5H,EAAuB2H,G0Cj1BlDE,EAAAnN,EAAA,IAEA,WA4HE,QAASoN,GAA0BC,EAAOlM,GAgKxC,QAASmM,GAAYD,EAAOE,GACvBF,EAAMG,aAAa,QACpBC,EAAWJ,EAAOE,GAGlBG,EAAUL,EAAOE,GAIrB,QAASG,GAAUL,EAAOE,GACpBF,EAAMG,aAAa,cACrBH,EAAMM,aAAa,OAAQ,IAC3BJ,EAAOI,aAAa,gBAAiB,IACrCJ,EAAOI,aAAa,gBAAiB,IACrCJ,EAAOK,gBAAgB,cAAe,KAI1C,QAASH,GAAWJ,EAAOE,GACrBF,EAAMG,aAAa,cACrBH,EAAMO,gBAAgB,QACtBL,EAAOK,gBAAgB,iBACvBL,EAAOI,aAAa,cAAe,KAIvC,QAASE,KACP,GAAMC,GAAiB3M,EAAI4M,SAASC,cAAb,IAA+BC,EAA/B,kBACpBH,IACDA,EAAeF,gBAAgB,iBAInC,QAASM,GAAMC,GACb,GAAMvL,GAAIuL,EAAUH,cAAV,IAA4BC,EAA5B,KACPrL,KACDiL,IACAjL,EAAEsL,QACFC,EAAUH,cAAV,IAA4BC,GAAUN,aAAa,gBAAiB,KAIxE,QAASS,GAAoBC,EAAO7M,EAAQiB,GAC1C,GAAM6L,MAAMnB,EAAA1J,mBAAkB,UAC5BG,WACAC,cACAC,QAAUuK,MAAOA,EAAO7M,OAAQA,IAElCiB,GAAO8L,cAAcD,GA9MvB,GAAMf,GAASF,EAAMW,cAAN,IAAwBC,EACvC,IAAc,OAAXV,EACD,KAAM,IAAIiB,OAAM,2DAGlBjB,GAAOI,aAAa,OAAQ,MAE5B,IAAI/K,GAAI2K,EAAOS,cAAP,KAA0BS,EAkBlC,IAjBS,OAAN7L,IAEDA,EAAIsB,SAAS4F,cAAc,KAC3BlH,EAAE8L,KAAO,IACT9L,EAAE+L,UAAUC,IAAIH,GAChBlB,EAAOsB,YAAYjM,IAGrByK,EAAMM,aAAa,OAAQ,YAExBN,EAAMG,aAAa,QACpBD,EAAOI,aAAa,gBAAiB,IAGrCJ,EAAOI,aAAa,cAAe,IAGjCxM,EAAI4M,SAASY,UAAUG,SAASC,GAAgB,CAClD,GAAMC,GAAkBpM,CACxBoM,GAAgBL,UAAUC,IAAIK,GAC9BD,EAAgBL,UAAUC,IAAIG,EAC9B,IAAMG,GAAShL,SAAS4F,cAAc,OACtCoF,GAAOP,UAAUC,IAAIO,GACrBH,EAAgBH,YAAYK,GAC5BE,iBAAiBC,eAAeL,EAAiBM,GAGnD/B,EAAOgC,iBAAiB,QAAW,SAAAC,GAKjC,GAHAA,EAAMnL,iBACNmL,EAAMC,mBAEFpC,EAAMG,aAAa,YAAa,CAElC,GAAGH,EAAMG,aAAa,QAEpBC,EAAWJ,EAAOE,GAGlBa,EAAoB,QAASf,EAAOlM,EAAI4M,cAErC,CACH,GAAG5M,EAAI4M,SAASP,aAAa,yBAC3B,UAAYrM,EAAI4M,SAAS2B,aAAa,wBAAwBC,cAAe,CAE7E,GAAMC,GAAYzO,EAAI4M,SAASC,cAAb,IAA+B6B,EAA/B,SACdD,KACFnC,EAAWmC,EAAWA,EAAU5B,cAAV,IAA4BC,IAGlDG,EAAoB,QAASwB,EAAWzO,EAAI4M,WAE9CF,IAGFH,EAAUL,EAAOE,GAGjBa,EAAoB,OAAQf,EAAOlM,EAAI4M,UAEzCG,EAAMb,SAKVE,EAAOgC,iBAAiB,UAAa,SAAAC,GACnC,GAAIA,EAAMM,UAAYC,GACjBP,EAAMM,UAAYE,GAAYR,EAAMM,UAAYG,GAChDT,EAAMM,UAAYI,GAAUV,EAAMM,UAAYK,GAC9CX,EAAMM,UAAYM,GAAeZ,EAAMM,UAAYO,GACnDb,EAAMM,UAAYQ,GAAiBd,EAAMM,UAAYS,EAAgB,CAMxE,IAAK,GAJCC,GAASnD,EAAMoD,WAAWC,SAC5BvC,EAAY,KACVwC,EAAItD,EAAMoD,WAAWG,kBAAoB,EAEtC7K,EAAI,EAAQ4K,GAAL5K,EAAQA,IAAK,CAE3B,GAAIyJ,EAAMM,UAAYK,EAAS,CAC7BhC,EAAYqC,EAAO,EACnB,OAEG,GAAIhB,EAAMM,UAAYI,EAAQ,CACjC/B,EAAYqC,EAAOG,EACnB,OAGF,GAAGH,EAAOzK,IAAMsH,EAAO,CACrB,GAAGmC,EAAMM,UAAYM,GAAeZ,EAAMM,UAAYO,EACpDlC,EAAYpI,EAAI,EAAIyK,EAAOzK,EAAE,GAAMyK,EAAOG,OAEvC,IAAInB,EAAMM,UAAYQ,GAAiBd,EAAMM,UAAYS,EAC5DpC,EAAgBwC,EAAJ5K,EAAQyK,EAAOzK,EAAE,GAAKyK,EAAO,OAEtC,IAAIhB,EAAMM,UAAYC,EACtBP,EAAMqB,SACJ9K,EAAI,IAAMyK,EAAOzK,EAAE,GAAGyH,aAAa,UACpCW,EAAYqC,EAAOzK,EAAE,IAGZ4K,EAAJ5K,IACHsH,EAAMG,aAAa,UACrBW,EAAYqC,EAAOzK,EAAE,SAItB,IAAIyJ,EAAMM,UAAYE,GAAYR,EAAMM,UAAYG,EAAU,CACjET,EAAMnL,iBACNmL,EAAMC,iBAGN,IAAMnB,GAAM,GAAIwC,YAAW,SACzBlN,WACAC,cACAkN,KAAM1N,QAERkK,GAAOgB,cAAcD,GAEvB,OAGDH,IACDqB,EAAMnL,iBACNmL,EAAMC,kBACNvB,EAAMC,UAKZd,EAAMkC,iBAAiB,WAAc,SAAAC,GAInC,GAHAA,EAAMnL,iBACNmL,EAAMC,kBAEHD,EAAM1L,QAAU0L,EAAM1L,OAAOkN,OAAQ,CACtC,GAAMA,GAASxB,EAAM1L,OAAOkN,OAAOrB,aACnC,QAAQqB,GACN,IAAK,OACHtD,EAAUL,EAAOE,EACjB,MACF,KAAK,QACHE,EAAWJ,EAAOE,EAClB,MACF,KAAK,SACHD,EAAYD,EAAOE,OAjR7B,GAAM+B,GAAmB,iBACnBS,EAAS,EACTC,EAAW,GACXC,EAAW,GACXC,EAAS,GACTC,EAAU,GACVE,EAAgB,GAChBD,EAAc,GACdG,EAAiB,GACjBD,EAAgB,GAEhBT,EAAQ,0BACR5B,EAAS,kCACTQ,EAAiB,2CACjBwC,EAAc,cACd9B,EAAS,aACTF,EAAmB,oDACnBF,EAAgB,uBAChBmC,EAA8B,sCAW9BC,EAAuB,SAA8BC,GAEzDtR,KAAKiO,SAAWqD,EAGhBtR,KAAKuR,OAGPhO,QAAA8N,qBAAiCA,EAQjCA,EAAqBvF,UAAU0F,gBAAkB,SAAU9B,GAAQ,GAAArH,GAAArI,IACjE0P,GAAMnL,iBACNmL,EAAMC,kBAEHD,EAAM1L,QAAU0L,EAAM1L,OAAOkN,SAAQ,WACtC,GAAMA,GAASxB,EAAM1L,OAAOkN,OAAOrB,aAEhC,UAAWqB,GAAU,UAAYA,GAAU,WAAaA,IAE9BtO,SAAxB8M,EAAM1L,OAAOrB,OAEX0F,EAAK4F,SAASP,aAAa,yBAC5B,UAAYrF,EAAK4F,SAAS2B,aAAa,wBAAwBC,kBAE/DhD,UAAAO,cAAI/E,EAAK4F,SAASwD,iBAAd,IAAmC1B,KAAU2B,QAAQ,SAAAnE,GACvDA,EAAMkB,iBACJpB,EAAA1J,mBAAkB,YAChBK,QAASkN,OAAQA,QAMM,OAAxBxB,EAAM1L,OAAOrB,QAEpB+M,EAAM1L,OAAOrB,OAAO8L,iBAElBpB,EAAA1J,mBAAkB,YAChBG,WAAeE,QAAUkN,OAAQA,WAa7CG,EAAqBvF,UAAU6F,eAAiB,WAAW,GAAAC,GAAA5R,IAEzDA,MAAKiO,SAASJ,aAAa,OAAQ,WAE/B7N,KAAKiO,SAASY,UAAUG,SAASC,IACnCjP,KAAKiO,SAASY,UAAUC,IAAIsC,MAG9BvE,UAAAO,cAAIpN,KAAKiO,SAASwD,iBAAd,IAAmC1B,KAAU2B,QAAS,SAAAnE,GACxD,GAAID,GAA0BC,EAA9BqE,KAGF5R,KAAKiO,SAASwB,iBAAiB,UAAWzP,KAAKwR,gBAAgBK,KAAK7R,UAEpEA,KAAKiO,SAASY,UAAUC,IAAIqC,IAM9BE,EAAqBvF,UAAUyF,KAAO,WAChCvR,KAAKiO,UACPjO,KAAK2R,kBAmOTrC,iBAAiBwC,UACfC,YAAaV,EACbW,cAAe,uBACfC,SAAU,sBACVC,gB1Cm2BE,SAASrS,EAAQD,EAASM,GAE/B,YAsBA,SAASsF,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GApBvF,GAAI0M,GAAajS,EAAoB,IAEjCkS,EAAc5M,EAAuB2M,GAErChF,EAAsBjN,EAAoB,IAE1CkN,EAAsB5H,EAAuB2H,GAE7CkF,EAAUnS,EAAoB,IAE9BoS,EAAW9M,EAAuB6M,G2C/sCvChF,EAAAnN,EAAA,GACAqS,EAAArS,EAAA,I3CotCKsS,EAAkBhN,EAAuB+M,G2CntC9CE,EAAAvS,EAAA,KAEA,WAGE,GAAM+P,GAAiB,EACjBC,EAAiB,GACjBwC,EAAiB,GACjBvC,EAAiB,GACjBwC,EAAiB,GACjBC,EAAiB,GACjBxC,EAAiB,GACjBC,EAAiB,GACjBE,EAAiB,GACjBD,EAAiB,GACjBG,EAAiB,GACjBD,EAAiB,GAEjBW,EAAiB,cACjB0B,EAAiB,aACjBC,EAAiB,kBACjBC,EAAiB,yBACjBC,EAAiB,OACjBC,EAAiB,WAEjB5D,EAAmB,aACnBG,EAAmB,iBACnBL,EAAmB,2CACnBF,EAAmB,uBACnBmC,EAA8B,sCAM9B8B,EAAsB,SAA6B5B,GAEvDtR,KAAKiO,SAAWqD,EAGhBtR,KAAKmT,SACHC,eACAC,aACA5R,KAAe,QACfsG,SAAe,IACfuL,cAAe,GAAAd,cAAwB,MAGzCxS,KAAKuT,YAGLvT,KAAKuR,OAGPhO,QAAA2P,oBAAgCA,EAOhCA,EAAoBpH,UAAU0H,gBAAkB,WAAW,GAAAnL,GAAArI,KAEnDyT,EAAY,WAChB,GAAIC,GAAQrL,EAAK4F,SAASC,cAAd,IAAgC6E,EAAhC,kBASZ,OARGW,KACDA,EAAM5F,gBAAgB,iBACtB4F,EAAQA,EAAMC,oBAEZD,IACFA,EAAQrL,EAAK4F,SAASC,cAAd,IAAgC6E,EAAhC,gBACR1K,EAAKuL,eAAe,IAEnBF,GACDrL,EAAKwL,uBAAuBH,GAC5BA,EAAM7F,aAAa,gBAAiB,IACpCxF,EAAKyL,iBAAiB,OAAQ,KAAMJ,QAC7B,GAKLK,EAAa,SAAAC,GACjB,GAAIC,GAAgBD,CAEjB,UAAWA,GAAc3L,EAAK4F,SAASiG,aAAe7L,EAAK4F,SAASkG,YAAc9L,EAAK4F,SAASmG,YACjGH,EAAgB,OAEmB,IAA7B5L,EAAK4F,SAASiG,aACpBD,EAAgB,OAElB,IAAMI,GAAI,SAAWJ,EAChBzQ,KAAKkJ,IAAIrE,EAAK4F,SAASiG,WAAa7L,EAAK4F,SAASmG,YAAa/L,EAAK4F,SAASkG,YAAc9L,EAAK4F,SAASmG,aACzG5Q,KAAK8Q,IAAIjM,EAAK4F,SAASiG,WAAa7L,EAAK4F,SAASmG,YAAa,EAGpE,OADA/L,GAAKuL,eAAeS,EAAG,KAChBJ,EAILjU,MAAKmT,QAAQG,cAAciB,UAAS,WACtClM,EAAK8K,QAAQG,cAAcvL,SAAWM,EAAK8K,QAAQpL,QACnD,IAAIiM,GAAY,MAEb,YAAa3L,EAAK8K,QAAQ1R,KAC3B4G,EAAK8K,QAAQG,cAAckB,MAAM,WAE/B,MADAR,GAAYD,EAAWC,SAKzBP,IACApL,EAAK8K,QAAQG,cAAckB,MAAM,WAC/B,MAAOf,YAYfP,EAAoBpH,UAAU2I,iBAAmB,WAC5CzU,KAAKmT,QAAQG,cAAciB,UAC5BvU,KAAKmT,QAAQG,cAAcoB,OAC3B1U,KAAK8T,iBAAiB,QAASpB,EAAQ1S,KAAKiO,SAASC,cAAd,IAAgC6E,EAAhC,sBAU3CG,EAAoBpH,UAAU8H,eAAiB,SAAUe,EAAaC,GAAc,GAAAhD,GAAA5R,KAE5EwU,EAAQxU,KAAKiO,SAASiG,WACtBW,EAAWF,EAAcH,CAEf,KAAbK,IAAgB,WACjB,GAAMC,GAAWtR,KAAK8Q,IAAI9Q,KAAKkJ,IAAIlJ,KAAKuR,IAAIF,GAAWD,GAAa,KAAM,KACtE7L,EAAI,CACR,IAAAyJ,cAAwB,IAAIgC,MAAO,SAAAQ,GAEjC,MADAjM,IAAKiM,EACEF,EAAJ/L,GACD6I,EAAK3D,SAASiG,cAAazB,EAAAxJ,cAAaF,EAAGyL,EAAOK,EAAUC,QAI5DlD,EAAK3D,SAASiG,WAAaS,YAYnCzB,EAAoBpH,UAAUmJ,SAAW,SAAUvF,GACjD,GAAI2E,GAAI,EACJX,EAAQ,KACN5Q,EAAI4M,EAAM1L,OAAOkN,OAAOrB,aAK9B,QAFA7P,KAAKyU,mBAEG3R,GACN,IAAK,QACH,KAEF,KAAK,OACHuR,EAAIrU,KAAKiO,SAASkG,YAAcnU,KAAKiO,SAASmG,WAC9C,MAEF,KAAK,cACHC,EAAI7Q,KAAK8Q,IAAItU,KAAKiO,SAASiG,WAAalU,KAAKiO,SAASmG,YAAa,EACnE,MAEF,KAAK,cACHC,EAAI7Q,KAAKkJ,IAAI1M,KAAKiO,SAASiG,WAAalU,KAAKiO,SAASmG,YAAapU,KAAKiO,SAASkG,YAAcnU,KAAKiO,SAASmG,YAC7G,MAEF,KAAK,OACL,IAAK,OAOH,MANAV,GAAQ1T,KAAKiO,SAASC,cAAd,IAAgC6E,EAAhC,wBACLW,IACDA,EAAc,SAAN5Q,EAAe4Q,EAAMC,mBAAqBD,EAAMwB,uBACxDC,EAAUzB,GACV1T,KAAK8T,iBAAiBhR,EAAG,KAAO4Q,IAIpC,KAAK,OAGH,SAFApB,cAActS,KAAKmT,QAASzD,EAAM1L,YAClChE,MAAKwT,iBAGP,KAAK,QACH,MAEF,SACE,OAGJxT,KAAK4T,eAAeS,IAQtBnB,EAAoBpH,UAAU0F,gBAAkB,SAAU9B,GACxDA,EAAMnL,iBACNmL,EAAMC,kBACHD,EAAM1L,QAAU0L,EAAM1L,OAAOkN,QAC9BlR,KAAKiV,SAASvF,IASlBwD,EAAoBpH,UAAUsJ,gBAAkB,SAAS1F,GAEvD,GAAIA,GAASA,EAAM/M,QAAU+M,EAAM/M,SAAW3C,KAAKiO,SAAU,CAE3D,GAAIiD,GAAS,OAEb,IAAKxB,EAAMM,UAAYK,GAAcX,EAAMM,UAAYI,GAClDV,EAAMM,UAAY2C,GAAcjD,EAAMM,UAAY4C,EAErDlD,EAAMnL,iBACFmL,EAAMM,UAAYI,EACpBc,EAAS,OAEFxB,EAAMM,UAAY2C,EACzBzB,EAAS,cAEFxB,EAAMM,UAAY4C,IACzB1B,EAAS,eAEXlR,KAAKiV,SAAS/D,OAEX,IAAKxB,EAAMM,UAAYC,GACvBP,EAAMM,UAAYE,GAAiBR,EAAMM,UAAYG,GACrDT,EAAMM,UAAYM,GAAiBZ,EAAMM,UAAYO,GACrDb,EAAMM,UAAYQ,GAAiBd,EAAMM,UAAYS,EAAgB,CAExE,GAAIiD,GAAQ2B,EAAU3F,EAAM/M,OAE5B,KAAI+Q,EACF,MAMF,QAFA1T,KAAKyU,mBAEG/E,EAAMM,SACZ,IAAKM,GACL,IAAKC,GACHW,EAAS,OACTwC,EAAQA,EAAMwB,sBACd,MAEF,KAAK1E,GACL,IAAKC,GACHS,EAAS,OACTwC,EAAQA,EAAMC,kBACd,MAEF,KAAK1D,GACCP,EAAMqB,UACRG,EAAS,OACTwC,EAAQA,EAAMwB,yBAGdhE,EAAS,OACTwC,EAAQA,EAAMC,mBAEhB,MAEF,KAAKxD,GACL,IAAKD,GACHgB,EAAS,SAIVwC,IACDhE,EAAMnL,iBACN4Q,EAAUzB,GACV1T,KAAK8T,iBAAiB5C,EAAQxB,EAAMM,QAAS0D,OAWrDR,EAAoBpH,UAAUwJ,aAAe,SAAS5F,GAAQ,GAAA6F,GAAAvV,IAC5D0P,GAAMnL,iBAGNvE,KAAKyU,kBAEL,IAAIe,MACAC,EAAY,EACVC,EAAShG,EAAMiG,UAA8B/S,SAAlB8M,EAAMkG,QAAwBlG,EAAMkG,QAAQ,GAAGD,QAAU,GACtFE,EAAQH,EACNI,EAAgBpG,EAAM/M,OAEtBoT,EAAS,SAAA7R,GACb,GAAM8R,GAAY9R,EAAEyR,UAA0B/S,SAAdsB,EAAE0R,QAAwB1R,EAAE0R,QAAQ,GAAGD,QAAU,GAC3EM,EAAKJ,EAAQG,CAEX,GAALC,EACDV,EAAKtH,SAASiG,WAAa1Q,KAAK8Q,IAAIiB,EAAKtH,SAASiG,WAAa+B,EAAI,GAE7DA,EAAK,IACXV,EAAKtH,SAASiG,WAAa1Q,KAAKkJ,IAAI6I,EAAKtH,SAASiG,WAAa+B,EAAIV,EAAKtH,SAASkG,YAAcoB,EAAKtH,SAASmG,cAG/GyB,EAAQG,EACRR,MAIIU,EAAO,SAAAhS,GACXA,EAAEK,iBACEiR,IACFC,EAAYlS,OAAOmF,sBAAuB,iBAAMqN,GAAO7R,KACvDsR,OAKEW,EAAU,QAAVA,GAAUjS,GACdA,EAAEK,gBACF,IAAM8P,GAAInQ,EAAEyR,UAA0B/S,SAAdsB,EAAE0R,QAAwB1R,EAAE0R,QAAQ,GAAGD,QAAU,EAWzE,IATApS,OAAO6S,oBAAoB,YAAaF,GACxC3S,OAAO6S,oBAAoB,YAAaF,GACxC3S,OAAO6S,oBAAoB,UAAWD,GACtC5S,OAAO6S,oBAAoB,WAAYD,GAGvC5S,OAAO4E,qBAAqBsN,GAGzBjS,KAAKuR,IAAIW,EAAOrB,GAAK,EAAG,CACzB,GAAMX,GAAQ2B,EAAUS,EACxBX,GAAUzB,GACV6B,EAAKzB,iBAAiB,QAAS,KAAOJ,IAI1CnQ,QAAOkM,iBAAiB,YAAayG,GACrC3S,OAAOkM,iBAAiB,YAAayG,GACrC3S,OAAOkM,iBAAiB,UAAW0G,GACnC5S,OAAOkM,iBAAiB,WAAW0G,IAQrCjD,EAAoBpH,UAAUuK,cAAgB,SAAS3G,GACrD,GAAMgE,GAAQ2B,EAAU3F,EAAM/M,OAC3B+Q,QAED7G,UAAAO,cAAIpN,KAAKiO,SAASwD,iBAAd,IAAmCsB,EAAnC,qBAA4DrB,QAC9D,SAAAgC,GAAA,MAASA,GAAM5F,gBAAgB,mBAEjC4F,EAAM7F,aAAa,gBAAiB,IACpC6F,EAAM7E,UAAUC,IAAI+D,KASxBK,EAAoBpH,UAAUwK,aAAe,SAAS5G,GACpD,GAAMgE,GAAQ2B,EAAU3F,EAAM/M,OAC3B+Q,IACDA,EAAM7E,UAAU0H,OAAO1D,IAW3BK,EAAoBpH,UAAUgI,iBAAmB,SAAS0C,EAASxG,EAAS0D,GAE1E,GAAGA,EAAO,CACR1T,KAAK6T,uBAAuBH,EAE5B,IAAMlF,MAAMnB,EAAA1J,mBAAkB,UAC5BG,WACAC,cACAC,QACEwS,QAASA,EACTxG,QAASA,EACTtO,OAAQgS,IAGZ1T,MAAKiO,SAASQ,cAAcD,KAShC0E,EAAoBpH,UAAU+H,uBAAyB,SAASH,GAC9D,GAAM+C,GAAezW,KAAKiO,SAASyI,wBAC7BC,EAAYjD,EAAMgD,uBAExB,IAAGC,EAAUC,KAAOH,EAAaG,KAAM,CACrC,GAAMvC,GAAIrU,KAAKiO,SAASiG,YAAcuC,EAAaG,KAAOD,EAAUC,KACpE5W,MAAK4T,eAAeS,OAEjB,IAAGsC,EAAUE,MAAQJ,EAAaI,MAAO,CAC5C,GAAMC,GAAI9W,KAAKiO,SAASiG,YAAcuC,EAAaI,MAAQF,EAAUE,MACrE7W,MAAK4T,eAAekD,IAMxB,IAAMzB,GAAY,QAAZA,GAAY/D,GAChB,OAAKA,GAA2C1O,SAA/B0O,EAAQX,WAAWoG,SAAyBzF,EAAQzC,UAAUG,SAAS8D,GAC/E,KAEFxB,EAAQzC,UAAUG,SAAS+D,GAASzB,EAAU+D,EAAU/D,EAAQX,aAGnEwE,EAAY,SAAAzB,GACbA,GACDA,EAAMtF,SAIJ4I,EAAa,SAAAtD,GACjB,IAAIA,EAAMxF,cAAN,IAAwBiB,GAAqB,CAC/C,GAAMD,GAAkB9K,SAAS4F,cAAc,OAC/CkF,GAAgBL,UAAUC,IAAIK,GAC9BD,EAAgBL,UAAUC,IAAIG,EAC9B,IAAMG,GAAShL,SAAS4F,cAAc,OACtCoF,GAAOP,UAAUC,IAAIO,GACrBH,EAAgBH,YAAYK,EAE5B,IAAM6H,GAAMvD,EAAMxF,cAAc,MAC5B+I,KAEF/H,EAAgBgI,MAAQD,EAAIC,OAG9BxD,EAAM3E,YAAYG,GAClBI,iBAAiBC,eAAeL,EAAiBM,IAarD0D,GAAoBpH,UAAUqL,cAAgB,WAC5CnX,KAAKmT,QAAQG,cAAcoB,QAE7BxB,EAAoBpH,UAApBqL,cAAiDjE,EAAoBpH,UAAUqL,cAU/EjE,EAAoBpH,UAAUsL,cAAgB,WAAW,GAAAC,GAAArX,KACjDsX,EAAkBtX,KAAKiO,SAASY,UAAUG,SAASC,MAEzDpC,UAAAO,cAAIpN,KAAKiO,SAASwD,iBAAd,IAAmCsB,KAAUrB,QAAS,SAAAgC,GAExDA,EAAM7F,aAAa,OAAQoF,GAExBoE,EAAKlE,QAAQC,gBACThB,cAAiBsB,EAAM9D,aAAa,cACvC8D,EAAM7F,aAAa,WAAY,GAE7ByJ,GACFN,EAAWtD,IAIbA,EAAM7F,aAAa,WAAY,OAIrCqF,EAAoBpH,UAApBsL,cAAiDlE,EAAoBpH,UAAUsL,cAQ/ElE,EAAoBpH,UAAUyL,UAAY,WACxC,MAAOvX,MAAKmT,SAEdD,EAAoBpH,UAApByL,UAA6CrE,EAAoBpH,UAAUyL,UAK3ErE,EAAoBpH,UAAUyF,KAAO,WAAW,GAAAiG,GAAAxX,IAE9C,IAAIA,KAAKiO,SAAU,CAEjB,GAAGjO,KAAKiO,SAASP,aAAa,eAAgB,CAC5C,GAAM+J,GAAIzX,KAAKiO,SAAS2B,aAAa,eAAe8H,QAAQ,KAAM,IAClE,KACE,GAAMjX,GAAIkX,KAAKC,MAAMH,MACrBnF,cAActS,KAAKmT,QAAS1S,GAE9B,MAAOyD,GACL,KAAM,IAAIwK,OAAJ,kCAA4C+I,EAA5C,aAA0DvT,EAAE2T,UAKtE7X,KAAKiO,SAASJ,aAAa,OAAQmF,MAG/BZ,cAAiBpS,KAAKiO,SAAS2B,aAAa,cAC9C5P,KAAKiO,SAASJ,aAAa,WAAY,GAIzC,IAAMyJ,GAAkBtX,KAAKiO,SAASY,UAAUG,SAASC,EACrDqI,IACFtX,KAAKiO,SAASY,UAAUC,IAAIsC,GAI9BpR,KAAKoX,gBAEFpX,KAAKmT,QAAQC,cAEdpT,KAAKiO,SAASwB,iBAAiB,QAASzP,KAAKqW,cAAcxE,KAAK7R,UAChEA,KAAKiO,SAASwB,iBAAiB,OAAQzP,KAAKsW,aAAazE,KAAK7R,UAG9DA,KAAKiO,SAASwB,iBAAiB,UAAWzP,KAAKoV,gBAAgBvD,KAAK7R,UAGpEA,KAAKiO,SAASwB,iBAAiB,YAAazP,KAAKsV,aAAazD,KAAK7R,UACnEA,KAAKiO,SAASwB,iBAAiB,aAAczP,KAAKsV,aAAazD,KAAK7R,UAGpEA,KAAKiO,SAASwB,iBAAiB,QAAS,SAAAvL,GAAA,MAAKA,GAAEK,uBAIjDvE,KAAKiO,SAASwB,iBAAiB,UAAWzP,KAAKwR,gBAAgBK,KAAK7R,SAGpE,IAAM8X,GAAmBvU,OAAOuU,kBAAoBvU,OAAOwU,wBAA0BxU,OAAOyU,mBAI5F,IAAIF,GAAkB,SAAAG,GACpBA,EAAUvG,QAAS,SAAAwG,GACbA,EAASC,WAAWlV,OAAS,GAC/BM,OAAOmF,sBAAsB,iBAAM8O,GAAKJ,sBAG3CgB,QAASpY,KAAKiO,UACfoK,cACAC,aACAC,iBACAC,aAKFxY,KAAKiO,SAASY,UAAUC,IAAIqC,GAEzBnR,KAAKmT,QAAQE,WAEdrT,KAAKwT,oBAqBXlE,iBAAiBwC,UACfC,YAAamB,EACblB,cAAe,sBACfC,SAAU,qBACVC,gB3C4uCE,SAASrS,EAAQD,EAASM,G4Ct4DhC,YACAA,GAAA,GACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,K5Cq5DM,SAASL,EAAQD,EAASM,GAE/B,YAQA,SAASsF,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GANvF,GAAI0H,GAAsBjN,EAAoB,IAE1CkN,EAAsB5H,EAAuB2H,G6Cz4DlDE,EAAAnN,EAAA,IAEA,WA2JE,QAASuY,GAASnH,GAChB,OAAKA,GAAYA,EAAQzC,UAAUG,SAAS0J,GACnC,KAEFpH,EAAQzC,UAAUG,SAAS+D,GAASzB,EAAUmH,EAASnH,EAAQX,YAGxE,QAASvC,GAAMsF,GACb,GAAGA,EAAO,CACR,GAAM5Q,GAAI4Q,EAAMxF,cAAN,KAAyByK,EAC/B7V,IACFA,EAAEsL,SAKR,QAASwK,GAAUlF,GAEjB,GAAM5Q,GAAI4Q,EAAMxF,cAAN,KAAyByK,EACnC,IAAG7V,EAAG,CACJ,GAAMoM,GAAkBpM,CACxBoM,GAAgBL,UAAUC,IAAIK,GAC9BD,EAAgBL,UAAUC,IAAIG,EAC9B,IAAMG,GAAShL,SAAS4F,cAAc,OACtCoF,GAAOP,UAAUC,IAAIO,GACrBH,EAAgBH,YAAYK,GAC5BE,iBAAiBC,eAAeL,EAAiBM,IAlLrD,GAAMS,GAAS,EACTC,EAAW,GACXC,EAAW,GACXC,EAAS,GACTC,EAAU,GACVE,EAAgB,GAChBD,EAAc,GACdG,EAAiB,GACjBD,EAAgB,GAEhBW,EAAc,cACduH,EAAa,oBACb3F,EAAQ,2BACR4F,EAAgB,kCAChBnJ,EAAmB,iBACnBH,EAAS,aACTF,EAAmB,6CACnBF,EAAgB,uBAChBmC,EAA8B,sCAM9ByH,EAAwB,SAA+BvH,GAE3DtR,KAAKiO,SAAWqD,EAGhBtR,KAAKuR,OAEPhO,QAAAsV,sBAAkCA,EAOlCA,EAAsB/M,UAAUgN,gBAAkB,WAEhD9Y,KAAKiO,SAASJ,aAAa,OAAQ,WACnChB,UAAAO,cAAIpN,KAAKiO,SAASwD,iBAAd,IAAmCsB,KAAUrB,QAC/C,SAAAgC,GAAA,MAASA,GAAM7F,aAAa,OAAQ,UAGlC7N,KAAKiO,SAASY,UAAUG,SAASC,KACnCjP,KAAKiO,SAASY,UAAUC,IAAIsC,MAE5BvE,UAAAO,cAAIpN,KAAKiO,SAASwD,iBAAd,IAAmCsB,KAAUrB,QAC/C,SAAAgC,GAAA,MAASkF,GAAUlF,MAOvB1T,KAAKiO,SAASwB,iBAAiB,QAAW,SAASC,GACjDA,EAAMnL,iBACNmL,EAAMC,iBACN,IAAM+D,GAAQ+E,EAAS/I,EAAM/M,OAE7B,IAAG+M,EAAM/M,SAAW3C,KAAM,CACxBoO,EAAMsF,MAGN7G,UAAAO,cAAIpN,KAAK4Q,WACNmI,OAAQ,SAAAxL,GAAA,MAASA,GAAMG,aAAa,mBACpCgE,QAAS,SAAAsH,GAAA,MAAYA,GAASlL,gBAAgB,mBAGjD4F,EAAM7F,aAAa,gBAAiB,GAEpC,IAAMW,MAAMnB,EAAA1J,mBAAkB,UAC5BG,WACAC,cACAC,QAAUtC,OAAQgS,IAEpB1T,MAAKyO,cAAcD,KAEpBqD,KAAK7R,KAAKiO,cAKbjO,KAAKiO,SAASwB,iBAAiB,UAAa,SAASC,GAEnD,IAAIA,EAAMM,UAAYC,GACjBP,EAAMM,UAAYE,GAAYR,EAAMM,UAAYG,GAChDT,EAAMM,UAAYI,GAAUV,EAAMM,UAAYK,GAC9CX,EAAMM,UAAYM,GAAeZ,EAAMM,UAAYO,GACnDb,EAAMM,UAAYQ,GAAiBd,EAAMM,UAAYS,IAErDf,EAAM/M,SAAW3C,KAAM,CAMxB,IAAK,GALCuN,GAAQkL,EAAS/I,EAAM/M,QACvB+N,EAAS1Q,KAAK4Q,SAChBvC,EAAY,KACVwC,EAAI7Q,KAAK8Q,kBAAoB,EAE1B7K,EAAI,EAAQ4K,GAAL5K,EAAQA,IAAK,CAC3B,GAAIyJ,EAAMM,UAAYK,EAAS,CAC7BhC,EAAYqC,EAAO,EACnB,OAEG,GAAIhB,EAAMM,UAAYI,EAAQ,CACjC/B,EAAYqC,EAAOG,EACnB,OAGF,GAAIH,EAAOzK,KAAOsH,EAAO,CACvB,GAAImC,EAAMM,UAAYM,GAAeZ,EAAMM,UAAYO,EACrDlC,EAAapI,EAAI,EAAIyK,EAAOzK,EAAI,GAAKyK,EAAOG,OAEzC,IAAInB,EAAMM,UAAYQ,GAAiBd,EAAMM,UAAYS,EAC5DpC,EAAgBwC,EAAJ5K,EAAQyK,EAAOzK,EAAI,GAAKyK,EAAO,OAExC,IAAIhB,EAAMM,UAAYC,EACrBP,EAAMqB,SACJ9K,EAAI,IACNoI,EAAYqC,EAAOzK,EAAI,IAGd4K,EAAJ5K,IACPoI,EAAYqC,EAAOzK,EAAI,QAGtB,IAAIyJ,EAAMM,UAAYE,GAAYR,EAAMM,UAAYG,EAAU,CACjET,EAAMnL,iBACNmL,EAAMC,iBAGN,IAAMnB,GAAM,GAAIwC,YAAW,SACzBlN,WACAC,cACAkN,KAAM1N,QAERgK,GAAMkB,cAAcD,GAEtB,OAGAH,IACFqB,EAAMnL,iBACNmL,EAAMC,kBACNvB,EAAMC,MAIXwD,KAAK7R,KAAKiO,cAEbjO,KAAKiO,SAASY,UAAUC,IAAIqC,IAoC9B0H,EAAsB/M,UAAUyF,KAAO,WACjCvR,KAAKiO,UACPjO,KAAK8Y,mBAQTxJ,iBAAiBwC,UACfC,YAAa8G,EACb7G,cAAe,wBACfC,SAAU,uBACVC,gB7Cs6DE,SAASrS,EAAQD,EAASM,GAE/B,YAwBA,SAASsF,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAtBvF,GAAI0H,GAAsBjN,EAAoB,IAE1CkN,EAAsB5H,EAAuB2H,GAE7CgF,EAAajS,EAAoB,IAEjCkS,EAAc5M,EAAuB2M,GAErC8G,EAAkB/Y,EAAoB,IAEtCgZ,EAAkB1T,EAAuByT,GAEzCE,EAAWjZ,EAAoB,IAE/BkZ,EAAY5T,EAAuB2T,GAEnCE,EAAgBnZ,EAAoB,IAEpCoZ,EAAgB9T,EAAuB6T,G8C1oE5ChM,EAAAnN,EAAA,IAEA,WAyGE,QAASqZ,GAAgBrI,EAAQxP,GAAyB,GAAjBiB,GAAiBK,UAAAC,QAAA,GAAAL,SAAAI,UAAA,GAARtB,EAAQsB,UAAA,EAExDL,GAAO8L,iBAAcpB,EAAA1J,mBAAkB,UACrCG,WACAC,cACAC,QACEkN,OAAQA,GAAU,GAClBxP,OAAQA,MAUd,QAAS8X,GAAkBC,GACzB,GAAMC,GAAe,SAACC,EAAQC,GAAT,MAAsBA,IAAYD,EAASA,EAAOE,aAAe,GAEhFC,EAAa,SAACC,EAAQC,GAC1B,GAAiD,aAA7CzW,OAAO0W,iBAAiBF,GAAQG,SAAyB,CAC3D,GAAMC,GAAY/V,SAASgW,KAAKD,WAAa/V,SAASiW,gBAAgBF,UAChEG,EAAWH,GAAa5W,OAAOgX,YAAcR,EAAOF,aAAeG,GAAM,CAC/ED,GAAOS,MAAMC,IAASjX,KAAK8Q,IAAI6F,EAAWG,GAA1C,OAIEP,EAAiD,WAAxCN,EAAgB9I,WAAW+J,SAAwBjB,EAAgB9I,WAAa,IAC/F,IAAGoJ,GAAUA,EAAOrM,aAAa,QAAS,CACxC+L,EAAgBe,MAAMG,MAAQ,OAC9BlB,EAAgBe,MAAMI,SAAW,MACjC,IAAM3D,GAAMwC,EAAgBvL,cAAc,MACvC+I,KACDwC,EAAgBe,MAAMI,SAAgC,cAArB3D,EAAI4D,aAAkC5D,EAAI4D,aAA1C,KAAgE5D,EAAI0D,MAAP,MAAoB,OAGpH,IAAMX,GAAKN,EAAaD,EAAgBvL,cAAc,UAAWuL,EAAgB5K,UAAUG,SAAS8L,IAC9FC,EAAKvX,KAAK8Q,IAAIlQ,SAASiW,gBAAgBW,aAAczX,OAAOgX,aAAe,GAAKP,CACtF,IAAID,EAAOF,aAAekB,EAExB,IADA,GAAIlK,GAAI,EACFkJ,EAAOF,aAAekB,KAAQlK,EAAI,GACtC4I,EAAgBe,MAAMG,MAAWlB,EAAgBwB,YAAcF,EAAKtB,EAAgBI,aAApF,IAGJC,GAAWC,EAAQC,IAnJvB,GAAMtH,GAAS,GACTvC,EAAW,GACXC,EAAS,GACTC,EAAU,GACVE,EAAgB,GAChBD,EAAc,GACdG,EAAiB,GACjBD,EAAgB,GAEhBW,EAAc,cACd+J,EAAiB,kBACjBJ,EAAsB,iCACtBK,EAAe,aAOfC,EAAsB,SAA6B9J,GAEvDtR,KAAKiO,SAAWqD,EAGhBtR,KAAKuT,YAGLvT,KAAKuR,OAEPhO,QAAA6X,oBAAgCA,EAQhCA,EAAoBtP,UAAUsJ,gBAAkB,SAAS1F,GAEvD,GAAIA,IACGA,EAAMM,UAAY0C,GAAUhD,EAAMM,UAAYG,GAC9CT,EAAMM,UAAYI,GAAUV,EAAMM,UAAYK,GAC9CX,EAAMM,UAAYM,GAAeZ,EAAMM,UAAYO,GACnDb,EAAMM,UAAYQ,GAAiBd,EAAMM,UAAYS,GAAgB,CAErEf,EAAMM,UAAY0C,IACnBhD,EAAMnL,iBACNmL,EAAMC,kBAGR,IAAIuB,GAAS,OACTxB,GAAMM,UAAYI,EACpBc,EAAS,OAEFxB,EAAMM,UAAYM,GAAeZ,EAAMM,UAAYO,EAC1DW,EAAS,OAEFxB,EAAMM,UAAYQ,GAAiBd,EAAMM,UAAYS,EAC5DS,EAAS,OAEFxB,EAAMM,UAAYG,EACzBe,EAAS,SAEFxB,EAAMM,UAAY0C,IACzBxB,EAAS,UAGXqI,EAAgBrI,EAAQlR,QAU9Bob,EAAoBtP,UAAUuP,oBAAsB,SAAS3L,GAE3D,GAAIA,EAAO,CACTA,EAAMnL,iBACNmL,EAAMC,kBAEN4J,EAAgBvZ,KAAK4P,aAAa,gBAAkB,GAAI5P,KAGxD,KADA,GAAI6Q,GAAI7Q,KACoB,OAArB6Q,EAAIA,EAAEF,aACX,GAAGE,EAAEhC,UAAUG,SAASkM,GAAiB,CACvCrK,EAAEzC,OACF,UAoERgN,EAAoBtP,UAAUwP,gBAAkB,WAC9C9B,EAAkBxZ,OASpBob,EAAoBtP,UAAUyP,gBAAkB,SAAS7L,GAEvD,GAAM8L,GAAY,SAAElK,EAASmK,GAAgB,GAAAC,MAAAC,KAAAC,EAAAhZ,MAAA,KAE3C,OAAAiZ,GAAAC,KAAAxC,iBAA0BF,cAAeqC,MAAzCC,GAAAG,EAAAC,EAAA3Q,QAAA1D,MAAAiU,KAAsD,IAAAK,MAAA7C,cAAA2C,EAAAlX,MAAA,GAA3ChD,EAA2Coa,EAAA,GAAtCpX,EAAsCoX,EAAA,EACpDzK,GAAQkJ,MAAM7Y,GAAOgD,GAHoB,MAAAqX,GAAAL,KAAAC,EAAAI,EAAA,aAAAN,GAAAI,2BAAA,WAAAH,EAAA,KAAAC,KAW7ClM,GAAMnL,gBAGN,IAAM8P,GAAI3E,EAAMiG,UAA8B/S,SAAlB8M,EAAMkG,QAAwBlG,EAAMkG,QAAQ,GAAGD,QAAU,GAE/EsB,EAAMjX,IACZiX,GAAIuD,MAAMyB,QAAU,KAEpB,IAAMC,GAAS9X,SAAS4F,cAAc,MACtCkS,GAAOrN,UAAUC,IAAI,2BACrB0M,EAAUU,GAASvB,MAAY1D,EAAIgE,YAAhB,KAAiCkB,OAAalF,EAAI4C,aAAjB,MAEpD,IAAInG,GAAStP,SAAS4F,cAAc,MACpC0J,GAAM7E,UAAUC,IAAI,kCACpB4E,EAAM0I,YAAc,IACpBZ,EAAU9H,GACRiH,MAAuB1D,EAAIgE,YAA3B,KACAkB,OAAuBlF,EAAI4C,aAA3B,KACAwC,cAAuBpF,EAAI4C,aAA3B,KACAyC,YAAuBrF,EAAI4C,aAAa,EAAxC,KACA0C,aAAoB,QACpBC,mBAAA,SAA4BvF,EAAIrH,aAAa,sBAAwB,IAArE,OAEFsM,EAAOnN,YAAY2E,GAEnBA,EAAStP,SAAS4F,cAAc,OAChC0J,EAAM7E,UAAUC,IAAI,kCACpB0M,EAAU9H,GACRiH,MAAuB1D,EAAIgE,YAA3B,KACAkB,OAAuBlF,EAAI4C,aAA3B,KACA2C,mBAAA,QAA4BvF,EAAIwF,IAAhC,OAEFP,EAAOnN,YAAY2E,GAEnBA,EAAStP,SAAS4F,cAAc,OAChC0J,EAAM7E,UAAUC,IAAI,kCACpB4E,EAAM0I,YAAc,IACpBZ,EAAU9H,GACRiH,MAAuB1D,EAAIgE,YAA3B,KACAkB,OAAuBlF,EAAI4C,aAA3B,KACAwC,cAAuBpF,EAAI4C,aAA3B,KACAyC,YAAuBrF,EAAI4C,aAAa,EAAxC,KACA0C,aAAoB,OACpBC,mBAAA,SAA4BvF,EAAIrH,aAAa,sBAAwB,IAArE,OAEFsM,EAAOnN,YAAY2E,GAEnBuD,EAAItG,WAAW5B,YAAYmN,EAI3B,IAAMhG,GAAO,SAAAhS,GACXA,EAAEK,gBACF,IAAM0R,IAAM/R,EAAEyR,UAA0B/S,SAAdsB,EAAE0R,QAAwB1R,EAAE0R,QAAQ,GAAGD,QAAU,IAAMtB,CAE9E6H,GAAOjB,YAAczX,KAAKuR,IAAIkB,GAAM,KACrCiG,EAAO1B,MAAM5D,KAAUX,EAAvB,OAKEE,EAAU,QAAVA,GAAUjS,GACdA,EAAEK,iBAGFhB,OAAO6S,oBAAoB,YAAaF,GACxC3S,OAAO6S,oBAAoB,YAAaF,GACxC3S,OAAO6S,oBAAoB,UAAWD,GACtC5S,OAAO6S,oBAAoB,WAAYD,EAEvC,IAAMF,GAAKiG,EAAOQ,UAClBzF,GAAItG,WAAWgM,YAAYT,GAC3BjF,EAAIuD,MAAMyB,QAAU,MAEjBzY,KAAKuR,IAAIkB,GAAM,IAChBsD,EAAkBtD,EAAK,EAAI,OAAS,OAAUgB,GAIlD1T,QAAOkM,iBAAiB,YAAayG,GACrC3S,OAAOkM,iBAAiB,YAAayG,GACrC3S,OAAOkM,iBAAiB,UAAW0G,GACnC5S,OAAOkM,iBAAiB,WAAW0G,IAOrCiF,EAAoBtP,UAAUyF,KAAO,WAAW,GAAAlJ,GAAArI,IAE9C,IAAIA,KAAKiO,SAAU,CAEjBjO,KAAKiO,SAASwB,iBAAiB,UAAWzP,KAAKoV,gBAAgBvD,KAAK7R,KAAKiO,eAAW,EAEhFmE,cAAiBpS,KAAKiO,SAAS2B,aAAa,cAC9C5P,KAAKiO,SAASJ,aAAa,WAAY,MAGzChB,UAAAO,cAAIpN,KAAKiO,SAASwD,iBAAd,IAAmC0J,KAAiBzJ,QAAS,SAAAkL,GAAA,MAC/DA,GAAOnN,iBAAiB,QAASpH,EAAKgT,oBAAoBxJ,KAAK+K,QAGjE,IAAMC,GAAa7c,KAAKiO,SAASC,cAAc,aAC5C2O,IACDA,EAAWpN,iBAAiB,QAASzP,KAAKqb,oBAAoBxJ,KAAKgL,MAGrE,IAAMlD,GAAS3Z,KAAKiO,SAASC,cAAc,SACxCyL,IACDA,EAAOlK,iBAAiB,QAASzP,KAAKqb,oBAAoBxJ,KAAK8H,MAGjE,IAAM1C,GAAMjX,KAAKiO,SAASC,cAAc,MACrC+I,KACDA,EAAIxH,iBAAiB,OAAQzP,KAAKsb,gBAAgBzJ,KAAK7R,KAAKiO,cAC5DgJ,EAAIxH,iBAAiB,QAAS,SAAAvL,GAAA,MAAKA,GAAEK,sBACrC0S,EAAIxH,iBAAiB,YAAazP,KAAKub,gBAAgB1J,KAAKoF,OAC5DA,EAAIxH,iBAAiB,aAAczP,KAAKub,gBAAgB1J,KAAKoF,QAI/D1T,OAAOkM,iBAAiB,SAAU,WAC5BpH,EAAKkL,UAEPhQ,OAAOmF,sBAAuB,WAC5B8Q,EAAkBnR,EAAK4F,UACvB5F,EAAKkL,cAGTlL,EAAKkL,cAGPhQ,OAAOkM,iBAAiB,oBAAqB,iBAAM+J,GAAkBnR,EAAK4F,YAG1EjO,KAAKiO,SAASY,UAAUC,IAAIqC,KA2BhC7B,iBAAiBwC,UACfC,YAAaqJ,EACbpJ,cAAe,sBACfC,SAAU,2B9C6rER,SAASpS,EAAQD,GAEtB;;;;;;;;;;;;;;;;;;;C+C/hFD,WAWE,GAAMkd,GAAyB,SAAgCxL,GAC7DtR,KAAKiO,SAAWqD,EAChBtR,KAAKuR,OAGPhO,QAAAuZ,uBAAmCA,EAQnCA,EAAuBhR,UAAUiR,aAWjCD,EAAuBhR,UAAUkR,aAC/BC,MAAO,4BACPC,MAAO,6BACPC,SAAU,WACVtK,WAAY,aACZuK,YAAa,cACbC,WAAY,aACZlM,YAAa,eAUf2L,EAAuBhR,UAAUwR,SAAW,SAAS5N,GACnD1P,KAAKiO,SAASY,UAAUC,IAAI9O,KAAKgd,YAAYnK,aAU/CiK,EAAuBhR,UAAUyR,QAAU,SAAS7N,GAClD1P,KAAKiO,SAASY,UAAU0H,OAAOvW,KAAKgd,YAAYnK,aASlDiK,EAAuBhR,UAAU0R,SAAW,SAAS9N,GACnD1P,KAAKyd,kBAQPX,EAAuBhR,UAAU2R,eAAiB,WAChDzd,KAAK0d,gBACL1d,KAAK2d,gBACL3d,KAAK4d,aACL5d,KAAK6d,cAUPf,EAAuBhR,UAAU4R,cAAgB,WAC3C1d,KAAK8d,QAAQC,SACf/d,KAAKiO,SAASY,UAAUC,IAAI9O,KAAKgd,YAAYI,aAE7Cpd,KAAKiO,SAASY,UAAU0H,OAAOvW,KAAKgd,YAAYI,cAGpDN,EAAuBhR,UAAvB4R,cAAoDZ,EAAuBhR,UAAU4R,cAQrFZ,EAAuBhR,UAAU+R,WAAa,WAExCG,QAAQhe,KAAKiO,SAASC,cAAc,WACtClO,KAAKiO,SAASY,UAAUC,IAAI9O,KAAKgd,YAAYnK,YAE7C7S,KAAKiO,SAASY,UAAU0H,OAAOvW,KAAKgd,YAAYnK,aAIpDiK,EAAuBhR,UAAvB+R,WAAiDf,EAAuBhR,UAAU+R,WAQlFf,EAAuBhR,UAAU6R,cAAgB,aAejDb,EAAuBhR,UAAvB6R,cAAoDb,EAAuBhR,UAAU6R,cAOrFb,EAAuBhR,UAAU8R,WAAa,WACxC5d,KAAK8d,QAAQnZ,OAAS3E,KAAK8d,QAAQnZ,MAAM1B,OAAS,EACpDjD,KAAKiO,SAASY,UAAUC,IAAI9O,KAAKgd,YAAYG,UAE7Cnd,KAAKiO,SAASY,UAAU0H,OAAOvW,KAAKgd,YAAYG,WAIpDL,EAAuBhR,UAAvB8R,WAAiDd,EAAuBhR,UAAU8R,WAOlFd,EAAuBhR,UAAUmS,QAAU,WACzCje,KAAK8d,QAAQC,YACb/d,KAAKyd,kBAGPX,EAAuBhR,UAAvBmS,QAA8CnB,EAAuBhR,UAAUmS,QAO/EnB,EAAuBhR,UAAUoS,OAAS,WACxCle,KAAK8d,QAAQC,YACb/d,KAAKyd,kBAGPX,EAAuBhR,UAAvBoS,OAA6CpB,EAAuBhR,UAAUoS,OAQ9EpB,EAAuBhR,UAAUqS,OAAS,SAASxZ,GACjD3E,KAAK8d,QAAQnZ,MAAQA,GAAS,GAC9B3E,KAAKyd,kBAEPX,EAAuBhR,UAAvBqS,OAA6CrB,EAAuBhR,UAAUqS,OAK9ErB,EAAuBhR,UAAUyF,KAAO,WACtC,GAAIvR,KAAKiO,WACPjO,KAAKoe,OAASpe,KAAKiO,SAASC,cAAd,IAAgClO,KAAKgd,YAAYC,OAC/Djd,KAAK8d,QAAU9d,KAAKiO,SAASC,cAAd,IAAgClO,KAAKgd,YAAYE,OAE5Dld,KAAK8d,SAAS,CAChB9d,KAAKqe,0BAA4Bre,KAAKyd,eAAe5L,KAAK7R,MAC1DA,KAAKse,kBAAoBte,KAAKsd,SAASzL,KAAK7R,MAC5CA,KAAKue,iBAAmBve,KAAKud,QAAQ1L,KAAK7R,MAC1CA,KAAKwe,kBAAoBxe,KAAKwd,SAAS3L,KAAK7R,MAC5CA,KAAK8d,QAAQrO,iBAAiB,SAAUzP,KAAKqe,2BAC7Cre,KAAK8d,QAAQrO,iBAAiB,QAASzP,KAAKse,mBAC5Cte,KAAK8d,QAAQrO,iBAAiB,OAAQzP,KAAKue,kBAC3Cve,KAAK8d,QAAQrO,iBAAiB,QAASzP,KAAKwe,kBAE5C,IAAMC,GAAUze,KAAKiO,SAASY,UAAUG,SAAShP,KAAKgd,YAAYK,WAClErd,MAAKyd,iBACLzd,KAAKiO,SAASY,UAAUC,IAAI9O,KAAKgd,YAAY7L,aAEzCsN,GACFze,KAAKiO,SAASY,UAAUC,IAAI9O,KAAKgd,YAAYK,YAE3Crd,KAAK8d,QAAQpQ,aAAa,eAC5B1N,KAAKiO,SAASG,QACdpO,KAAK6d,gBAUbvO,iBAAiBwC,UACfC,YAAa+K,EACb9K,cAAe,yBACfC,SAAU,wBACVC,gB/C4jFE,SAASrS,EAAQD,GAEtB;;;;;;;;;;;;;;;;;;;CgDzyFD,WAGE,GAAMuR,GAAc,cACduN,EAAiB,sBACjBC,EAAmB,mBAQnBC,EAA0B,SAAiCtN,GAE/DtR,KAAK6e,QAAUvN,EAGftR,KAAK8e,SAAW,KAChB9e,KAAK+e,eAAiB,EAGtB/e,KAAKuT,YAGLvT,KAAKuR,OAGPhO,QAAAqb,wBAAoCA,EAOpCA,EAAwB9S,UAAUkT,aAAe,WAC/Chf,KAAK6e,QAAQrE,MAAMG,MAAW3a,KAAK8e,SAAS1K,YAA5C,MAQFwK,EAAwB9S,UAAUmT,eAAiB,WAAwB,GAAA5W,GAAArI,IAGrEA,MAAKuT,UAEPhQ,OAAOmF,sBAAuB,WAC5BL,EAAK2W,eACL3W,EAAKkL,cAGTvT,KAAKuT,aAQPqL,EAAwB9S,UAAUoT,YAAc,WAE9C,GAAMC,GAA0Bnf,KAAK8e,SAAS3E,UACxCiF,EAAapf,KAAK+e,eAAiBI,CAEzC,IAA8B,GAA3BA,EAEDnf,KAAK6e,QAAQrE,MAAMC,IAAM,IACzBza,KAAK6e,QAAQhQ,UAAU0H,OAAOoI,OAE3B,IAAGS,EAAa,EAAG,CAEtB,GAAGA,GAAcpf,KAAK6e,QAAQhF,aAAc,CAG1C,GAAMwF,GAAaC,SAAU/b,OAAO0W,iBAAkBja,KAAK6e,SAAUU,iBAAkB,SAAa,CACpF,IAAbF,IACDrf,KAAK6e,QAAQrE,MAAMC,IAAM,IACzBza,KAAK6e,QAAQhQ,UAAUC,IAAI6P,IAE7B3e,KAAK+e,eAAiBI,EAExB,OAEG,GAAgB,EAAbC,EAAgB,CAEtBpf,KAAK6e,QAAQhQ,UAAUC,IAAI6P,EAC3B,IAAIa,GAAaF,SAAU/b,OAAO0W,iBAAkBja,KAAK6e,SAAUU,iBAAkB,SAAa,CAElG,IAAIvf,KAAK8e,SAASW,aAAezf,KAAK8e,SAAS3E,WAAana,KAAK8e,SAASjF,aAExD,GAAb2F,IACDxf,KAAK6e,QAAQrE,MAAMC,IAAM,SAGxB,CACH+E,GAAaJ,CACb,IAAMvF,GAAe7Z,KAAK6e,QAAQhF,YAClC7Z,MAAK6e,QAAQrE,MAAMC,KAAWjX,KAAKuR,IAAKyK,GAAc3F,GAAgBA,EAAe2F,GAArF,OAIJxf,KAAK+e,eAAiBI,GAQxBP,EAAwB9S,UAAU4T,eAAiB,WAAwB,GAAA9N,GAAA5R,IAErEA,MAAKuT,UACPhQ,OAAOmF,sBAAuB,WAC5BkJ,EAAKsN,cACLtN,EAAK2B,cAGTvT,KAAKuT,aAOPqL,EAAwB9S,UAAU6T,gBAAkB,WAClD3f,KAAKgf,eACLhf,KAAKkf,eAMPN,EAAwB9S,UAAUyF,KAAO,WAAW,GAAAgE,GAAAvV,IAElD,IAAIA,KAAK6e,UACP7e,KAAK8e,SAAW9e,KAAK6e,QAAQlO,WAAWzC,cAAxB,IAA0CwQ,IAAoB,KAE3E1e,KAAK8e,UAAU,CAChB9e,KAAK8e,SAAStE,MAAMoF,WAAgB5f,KAAK6e,QAAQhF,aAAjD,KACA7Z,KAAK+e,eAAiB/e,KAAK8e,SAAS3E,UAEpCna,KAAK8e,SAASrP,iBAAiB,SAAUzP,KAAK0f,eAAe7N,KAAK7R,OAClEuD,OAAOkM,iBAAiB,SAAUzP,KAAKif,eAAepN,KAAK7R,OAC3DuD,OAAOkM,iBAAiB,oBAAqBzP,KAAKif,eAAepN,KAAK7R,MAGtE,IAAM8X,GAAmBvU,OAAOuU,kBAAoBvU,OAAOwU,wBAA0BxU,OAAOyU,mBAK5F,IAAIF,GAAkB,WAEhBvC,EAAKhC,UACPhQ,OAAOmF,sBAAuB,WAC5B6M,EAAKoK,kBACLpK,EAAKhC,cAGTgC,EAAKhC,cAEJ6E,QAASpY,KAAK8e,UACfzG,cACAC,aACAC,iBACAC,aAIFxY,KAAK2f,kBAGL3f,KAAK6e,QAAQhQ,UAAUC,IAAIqC,KAoBjC7B,iBAAiBwC,UACfC,YAAa6M,EACb5M,cAAe,0BACfC,SAAU,gChDs0FR,SAASpS,EAAQD,EAASM,GiDtiGhCL,EAAAD,SAAkB+F,UAAAzF,EAAA,IAAAwF,gBjD4iGZ,SAAS7F,EAAQD,EAASM,GkD5iGhCL,EAAAD,SAAkB+F,UAAAzF,EAAA,IAAAwF,gBlDkjGZ,SAAS7F,EAAQD,EAASM,GmDljGhCL,EAAAD,SAAkB+F,UAAAzF,EAAA,IAAAwF,gBnDwjGZ,SAAS7F,EAAQD,EAASM,GoDxjGhCL,EAAAD,SAAkB+F,UAAAzF,EAAA,IAAAwF,gBpD8jGZ,SAAS7F,EAAQD,EAASM,GqD9jGhCL,EAAAD,SAAkB+F,UAAAzF,EAAA,IAAAwF,gBrDokGZ,SAAS7F,EAAQD,GsDpkGvB,YAEAA,GAAA8F,cAEA9F,aAAA,SAAAigB,EAAA3U,GACA,KAAA2U,YAAA3U,IACA,SAAApG,WAAA,uCtD4kGM,SAASjF,EAAQD,EAASM,GuDllGhC,YAQA,SAAAsF,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAN7E7F,EAAA8F,aAEA,IAAAoa,GAAA5f,EAAA,IAEA6f,EAAAva,EAAAsa,EAIAlgB,cAAA,WACA,QAAAogB,GAAArd,EAAAsd,GACA,OAAAha,GAAA,EAAmBA,EAAAga,EAAAhd,OAAkBgD,IAAA,CACrC,GAAAia,GAAAD,EAAAha,EACAia,GAAAvZ,WAAAuZ,EAAAvZ,eACAuZ,EAAAtZ,gBACA,SAAAsZ,OAAArZ,cAAA,EACAkZ,cAAApd,EAAAud,EAAAve,IAAAue,IAIA,gBAAAhV,EAAAiV,EAAAC,GAGA,MAFAD,IAAAH,EAAA9U,EAAAY,UAAAqU,GACAC,GAAAJ,EAAA9U,EAAAkV,GACAlV,OvD0lGM,SAASrL,EAAQD,EAASM,GwDlnGhC,YAYA,SAAAsF,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,UAAAF,GAV7E7F,EAAA8F,aAEA,IAAA2a,GAAAngB,EAAA,IAEAogB,EAAA9a,EAAA6a,GAEAhH,EAAAnZ,EAAA,IAEAoZ,EAAA9T,EAAA6T,EAIAzZ,cAAA,WACA,QAAA2gB,GAAAza,EAAAG,GACA,GAAAua,MACAC,KACAC,KACAC,EAAA/d,MAEA,KACA,OAAAge,GAAAtZ,KAAAgS,cAAAxT,KAAwD2a,GAAAG,EAAAtZ,EAAA6D,QAAA1D,QACxD+Y,EAAAK,KAAAD,EAAAjc,QAEAsB,GAAAua,EAAAvd,SAAAgD,GAHuFwa,OAKlF,MAAAzE,GACL0E,KACAC,EAAA3E,EACK,QACL,KACAyE,GAAAnZ,EAAA,WAAAA,EAAA,YACO,QACP,GAAAoZ,EAAA,KAAAC,IAIA,MAAAH,GAGA,gBAAA1a,EAAAG,GACA,GAAAF,MAAAC,QAAAF,GACA,MAAAA,EACK,OAAAwa,cAAA9b,OAAAsB,IACL,MAAAya,GAAAza,EAAAG,EAEA,UAAAnB,WAAA,6DxD2nGM,SAASjF,EAAQD,EAASM,GyD1qGhCA,EAAA,IACAA,EAAA,IACAL,EAAAD,QAAAM,EAAA,GAAA6F,MAAA+a,MzDgrGM,SAASjhB,EAAQD,EAASM,G0DlrGhCA,EAAA,IACAA,EAAA,IACAL,EAAAD,QAAAM,EAAA,K1DwrGM,SAASL,EAAQD,EAASM,G2D1rGhCA,EAAA,IACAA,EAAA,IACAL,EAAAD,QAAAM,EAAA,K3DgsGM,SAASL,EAAQD,EAASM,G4DlsGhCA,EAAA,IACAL,EAAAD,QAAAM,EAAA,GAAA6gB,OAAAC,W5DwsGM,SAASnhB,EAAQD,EAASM,G6DzsGhCA,EAAA,IACAL,EAAAD,QAAAM,EAAA,GAAAsE,OAAAyc,Q7D+sGM,SAASphB,EAAQD,EAASM,G8DhtGhCA,EAAA,GACA,IAAAghB,GAAAhhB,EAAA,GAAAsE,MACA3E,GAAAD,QAAA,SAAAiF,EAAAlD,EAAAwf,GACA,MAAAD,GAAAzc,eAAAI,EAAAlD,EAAAwf,K9DutGM,SAASthB,EAAQD,EAASM,G+D1tGhCA,EAAA,IACAL,EAAAD,QAAAM,EAAA,GAAAsE,OAAA2H,S/DguGM,SAAStM,EAAQD,GgEjuGvBC,EAAAD,QAAA,SAAAiF,GACA,qBAAAA,GAAA,KAAAC,WAAAD,EAAA,sBACA,OAAAA,KhEwuGM,SAAShF,EAAQD,GiE1uGvBC,EAAAD,QAAA,cjEgvGM,SAASC,EAAQD,EAASM,GkE9uGhC,GAAAkhB,GAAAlhB,EAAA,IACAmhB,EAAAnhB,EAAA,IACAohB,EAAAphB,EAAA,GACAL,GAAAD,QAAA,SAAA2hB,GACA,gBAAAC,EAAAC,EAAAC,GACA,GAGA/c,GAHAW,EAAA8b,EAAAI,GACAve,EAAAoe,EAAA/b,EAAArC,QACAuE,EAAA8Z,EAAAI,EAAAze,EAGA,IAAAse,GAAAE,MAAA,KAAAxe,EAAAuE,GAEA,GADA7C,EAAAW,EAAAkC,KACA7C,KAAA,aAEK,MAAW1B,EAAAuE,EAAeA,IAAA,IAAA+Z,GAAA/Z,IAAAlC,KAC/BA,EAAAkC,KAAAia,EAAA,MAAAF,IAAA/Z,GAAA,CACK,QAAA+Z,GAAA,MlEwvGC,SAAS1hB,EAAQD,EAASM,GmE1wGhC,YACA,IAAAyhB,GAAAzhB,EAAA,IACA8E,EAAA9E,EAAA,GAEAL,GAAAD,QAAA,SAAAqF,EAAAuC,EAAA7C,GACA6C,IAAAvC,GAAA0c,EAAAzc,EAAAD,EAAAuC,EAAAxC,EAAA,EAAAL,IACAM,EAAAuC,GAAA7C,InEixGM,SAAS9E,EAAQD,EAASM,GoEvxGhCL,EAAAD,QAAAM,EAAA,GAAAkE,mBAAAiW,iBpE6xGM,SAASxa,EAAQD,EAASM,GqE7xGhCL,EAAAD,SAAAM,EAAA,KAAAA,EAAA,eACA,MAAmG,IAAnGsE,OAAAC,eAAAvE,EAAA,gBAAsEwE,IAAA,WAAgB,YAAa5B,KrEoyG7F,SAASjD,EAAQD,EAASM,GsEpyGhC,GAAAoK,GAAApK,EAAA,GACAwK,EAAAxK,EAAA,eACA0hB,EAAA7b,MAAA+F,SAEAjM,GAAAD,QAAA,SAAAiF,GACA,MAAAjC,UAAAiC,IAAAyF,EAAAvE,QAAAlB,GAAA+c,EAAAlX,KAAA7F,KtE4yGM,SAAShF,EAAQD,EAASM,GuEjzGhC,GAAA0E,GAAA1E,EAAA,IACA8G,EAAAxD,KAAAwD,KACAnH,GAAAD,QAAA,SAAAiF,GACA,OAAAD,EAAAC,IAAAgd,SAAAhd,IAAAmC,EAAAnC,SvEyzGM,SAAShF,EAAQD,EAASM,GwE5zGhC,GAAAiF,GAAAjF,EAAA,EACAL,GAAAD,QAAA,SAAAkiB,EAAAjY,EAAAlF,EAAAwH,GACA,IACA,MAAAA,GAAAtC,EAAA1E,EAAAR,GAAA,GAAAA,EAAA,IAAAkF,EAAAlF,GAEG,MAAAT,GACH,GAAA6d,GAAAD,EAAA,SAEA,MADAlf,UAAAmf,GAAA5c,EAAA4c,EAAAxhB,KAAAuhB,IACA5d,KxEq0GM,SAASrE,EAAQD,EAASM,GyE90GhC,YACA,IAAA8hB,GAAA9hB,EAAA,IACAggB,EAAAhgB,EAAA,IACAsK,EAAAtK,EAAA,IACAsL,IAGAtL,GAAA,GAAAsL,EAAAtL,EAAA,0BAAgF,MAAAF,QAEhFH,EAAAD,QAAA,SAAAsL,EAAAD,EAAAE,GACAD,EAAAY,UAAAkW,EAAAxW,GAAqDL,KAAA+U,EAAA,EAAA/U,KACrDX,EAAAU,EAAAD,EAAA,ezEq1GM,SAASpL,EAAQD,EAASM,G0Eh2GhC,GAAAwK,GAAAxK,EAAA,eACA+hB,IAEA,KACA,GAAAC,IAAA,GAAAxX,IACAwX,GAAA,qBAA+BD,MAC/Blc,MAAA+a,KAAAoB,EAAA,WAA+B,UAC9B,MAAAhe,IAEDrE,EAAAD,QAAA,SAAA0G,EAAA6b,GACA,IAAAA,IAAAF,EAAA,QACA,IAAAG,KACA,KACA,GAAAtc,IAAA,GACAuc,EAAAvc,EAAA4E,IACA2X,GAAAlX,KAAA,WAA2B,OAAS1D,KAAA2a,OACpCtc,EAAA4E,GAAA,WAA+B,MAAA2X,IAC/B/b,EAAAR,GACG,MAAA5B,IACH,MAAAke,K1Eu2GM,SAASviB,EAAQD,G2E13GvBC,EAAAD,QAAA,SAAA6H,EAAA9C,GACA,OAAUA,QAAA8C,Y3Ei4GJ,SAAS5H,EAAQD,G4El4GvBC,EAAAD,Y5Ew4GM,SAASC,EAAQD,EAASM,G6Ex4GhC,YAEA,IAAAoiB,GAAApiB,EAAA,IACAqiB,EAAAriB,EAAA,IACAsiB,EAAAtiB,EAAA,IACAuiB,EAAAviB,EAAA,IACAkG,EAAAlG,EAAA,IACAwiB,EAAAle,OAAAyc,MAGAphB,GAAAD,SAAA8iB,GAAAxiB,EAAA,eACA,GAAAyiB,MACApgB,KACAJ,EAAAnB,SACA4hB,EAAA,sBAGA,OAFAD,GAAAxgB,GAAA,EACAygB,EAAA3Y,MAAA,IAAAyH,QAAA,SAAAmR,GAAkCtgB,EAAAsgB,OACf,GAAnBH,KAAmBC,GAAAxgB,IAAAqC,OAAAiC,KAAAic,KAAsCngB,IAAAugB,KAAA,KAAAF,IACxD,SAAAjgB,EAAAjB,GAMD,IALA,GAAA8H,GAAAiZ,EAAA9f,GACAogB,EAAA/f,UAAAC,OACAuE,EAAA,EACAwb,EAAAT,EAAArd,EACA+d,EAAAT,EAAAtd,EACA6d,EAAAvb,GAMA,IALA,GAIA7F,GAJAQ,EAAAiE,EAAApD,UAAAwE,MACAf,EAAAuc,EAAAV,EAAAngB,GAAA0K,OAAAmW,EAAA7gB,IAAAmgB,EAAAngB,GACAc,EAAAwD,EAAAxD,OACAigB,EAAA,EAEAjgB,EAAAigB,GAAAD,EAAA1iB,KAAA4B,EAAAR,EAAA8E,EAAAyc,QAAA1Z,EAAA7H,GAAAQ,EAAAR,GACG,OAAA6H,IACFkZ,G7E84GK,SAAS7iB,EAAQD,EAASM,G8E76GhC,GAAAiF,GAAAjF,EAAA,GACAijB,EAAAjjB,EAAA,IACAsG,EAAAtG,EAAA,IACAkjB,EAAAljB,EAAA,gBACAmjB,EAAA,aACA9hB,EAAA,YAGA+hB,EAAA,WAEA,GAGAC,GAHAC,EAAAtjB,EAAA,cACA+F,EAAAO,EAAAvD,OACAwgB,EAAA,GAYA,KAVAD,EAAAhJ,MAAAkJ,QAAA,OACAxjB,EAAA,IAAA6O,YAAAyU,GACAA,EAAA/G,IAAA,cAGA8G,EAAAC,EAAAG,cAAAvf,SACAmf,EAAAK,OACAL,EAAAM,MAAA,oCAAAJ,GACAF,EAAAO,QACAR,EAAAC,EAAAxhB,EACAkE,WAAAqd,GAAA/hB,GAAAiF,EAAAP,GACA,OAAAqd,KAGAzjB,GAAAD,QAAA4E,OAAAwd,QAAA,SAAA1c,EAAAye,GACA,GAAAC,EAQA,OAPA,QAAA1e,GACA+d,EAAA9hB,GAAA4D,EAAAG,GACA0e,EAAA,GAAAX,GACAA,EAAA9hB,GAAA,KAEAyiB,EAAAZ,GAAA9d,GACG0e,EAAAV,IACH1gB,SAAAmhB,EAAAC,EAAAb,EAAAa,EAAAD,K9Eq7GM,SAASlkB,EAAQD,EAASM,G+E39GhC,GAAA6E,GAAA7E,EAAA,IACAiF,EAAAjF,EAAA,GACAoiB,EAAApiB,EAAA,GAEAL,GAAAD,QAAAM,EAAA,GAAAsE,OAAAwb,iBAAA,SAAA1a,EAAAye,GACA5e,EAAAG,EAKA,KAJA,GAGAjD,GAHAoE,EAAA6b,EAAAyB,GACA9gB,EAAAwD,EAAAxD,OACAgD,EAAA,EAEAhD,EAAAgD,GAAAlB,EAAAG,EAAAI,EAAAjD,EAAAoE,EAAAR,KAAA8d,EAAA1hB,GACA,OAAAiD,K/Ek+GM,SAASzF,EAAQD,GgF7+GvBA,EAAAsF,EAAAV,OAAAyf,uBhFm/GM,SAASpkB,EAAQD,EAASM,GiFl/GhC,GAAAmK,GAAAnK,EAAA,IACAuiB,EAAAviB,EAAA,IACAkjB,EAAAljB,EAAA,gBACAgkB,EAAA1f,OAAAsH,SAEAjM,GAAAD,QAAA4E,OAAAiG,gBAAA,SAAAnF,GAEA,MADAA,GAAAmd,EAAAnd,GACA+E,EAAA/E,EAAA8d,GAAA9d,EAAA8d,GACA,kBAAA9d,GAAAyM,aAAAzM,eAAAyM,YACAzM,EAAAyM,YAAAjG,UACGxG,YAAAd,QAAA0f,EAAA,OjF0/GG,SAASrkB,EAAQD,EAASM,GkFrgHhC,GAAAmK,GAAAnK,EAAA,IACAkhB,EAAAlhB,EAAA,IACAikB,EAAAjkB,EAAA,QACAkjB,EAAAljB,EAAA,eAEAL,GAAAD,QAAA,SAAAqF,EAAAmf,GACA,GAGAziB,GAHA2D,EAAA8b,EAAAnc,GACAgB,EAAA,EACA+d,IAEA,KAAAriB,IAAA2D,GAAA3D,GAAAyhB,GAAA/Y,EAAA/E,EAAA3D,IAAAqiB,EAAAnD,KAAAlf,EAEA,MAAAyiB,EAAAnhB,OAAAgD,GAAAoE,EAAA/E,EAAA3D,EAAAyiB,EAAAne,SACAke,EAAAH,EAAAriB,IAAAqiB,EAAAnD,KAAAlf,GAEA,OAAAqiB,KlF4gHM,SAASnkB,EAAQD,EAASM,GmF3hHhC,GAAAoiB,GAAApiB,EAAA,IACAkhB,EAAAlhB,EAAA,IACA+iB,EAAA/iB,EAAA,IAAAgF,CACArF,GAAAD,QAAA,SAAAykB,GACA,gBAAAxf,GAOA,IANA,GAKAlD,GALA2D,EAAA8b,EAAAvc,GACA4B,EAAA6b,EAAAhd,GACArC,EAAAwD,EAAAxD,OACAgD,EAAA,EACA+d,KAEA/gB,EAAAgD,GAAAgd,EAAA1iB,KAAA+E,EAAA3D,EAAA8E,EAAAR,OACA+d,EAAAnD,KAAAwD,GAAA1iB,EAAA2D,EAAA3D,IAAA2D,EAAA3D,GACK,OAAAqiB,MnFmiHC,SAASnkB,EAAQD,EAASM,GoFhjHhCL,EAAAD,QAAAM,EAAA,IpFsjHM,SAASL,EAAQD,EAASM,GqFtjHhC,GAAAuM,GAAAvM,EAAA,IACAmG,EAAAnG,EAAA,GAGAL,GAAAD,QAAA,SAAA0kB,GACA,gBAAAxa,EAAAya,GACA,GAGAzhB,GAAAC,EAHA0U,EAAAtQ,OAAAd,EAAAyD,IACA7D,EAAAwG,EAAA8X,GACAC,EAAA/M,EAAAxU,MAEA,UAAAgD,MAAAue,EAAAF,EAAA,GAAA1hB,QACAE,EAAA2U,EAAAgN,WAAAxe,GACA,MAAAnD,KAAA,OAAAmD,EAAA,IAAAue,IAAAzhB,EAAA0U,EAAAgN,WAAAxe,EAAA,WAAAlD,EAAA,MACAuhB,EAAA7M,EAAAiN,OAAAze,GAAAnD,EACAwhB,EAAA7M,EAAA9N,MAAA1D,IAAA,IAAAnD,EAAA,YAAAC,EAAA,iBrF8jHM,SAASlD,EAAQD,EAASM,GsF5kHhC,GAAAuM,GAAAvM,EAAA,IACAoU,EAAA9Q,KAAA8Q,IACA5H,EAAAlJ,KAAAkJ,GACA7M,GAAAD,QAAA,SAAA4H,EAAAvE,GAEA,MADAuE,GAAAiF,EAAAjF,GACA,EAAAA,EAAA8M,EAAA9M,EAAAvE,EAAA,GAAAyJ,EAAAlF,EAAAvE,KtFmlHM,SAASpD,EAAQD,EAASM,GuFvlHhC,GAAA0E,GAAA1E,EAAA,GAGAL,GAAAD,QAAA,SAAAiF,EAAA1C,GACA,IAAAyC,EAAAC,GAAA,MAAAA,EACA,IAAAgF,GAAA8a,CACA,IAAAxiB,GAAA,mBAAA0H,EAAAhF,EAAA6E,YAAA9E,EAAA+f,EAAA9a,EAAAtJ,KAAAsE,IAAA,MAAA8f,EACA,uBAAA9a,EAAAhF,EAAA+f,WAAAhgB,EAAA+f,EAAA9a,EAAAtJ,KAAAsE,IAAA,MAAA8f,EACA,KAAAxiB,GAAA,mBAAA0H,EAAAhF,EAAA6E,YAAA9E,EAAA+f,EAAA9a,EAAAtJ,KAAAsE,IAAA,MAAA8f,EACA,MAAA7f,WAAA,6CvF+lHM,SAASjF,EAAQD,EAASM,GwFzmHhC,GAAAiF,GAAAjF,EAAA,GACAwE,EAAAxE,EAAA,GACAL,GAAAD,QAAAM,EAAA,GAAA2kB,YAAA,SAAAhgB,GACA,GAAAigB,GAAApgB,EAAAG,EACA,sBAAAigB,GAAA,KAAAhgB,WAAAD,EAAA,oBACA,OAAAM,GAAA2f,EAAAvkB,KAAAsE,MxFgnHM,SAAShF,EAAQD,EAASM,GyFrnHhC,GAAA4M,GAAA5M,EAAA,IACAwK,EAAAxK,EAAA,eACAoK,EAAApK,EAAA,EACAL,GAAAD,QAAAM,EAAA,GAAA6kB,WAAA,SAAAlgB,GACA,GAAAS,GAAAd,OAAAK,EACA,OAAAjC,UAAA0C,EAAAoF,IACA,cAAApF,IACAgF,EAAAnE,eAAA2G,EAAAxH,MzF4nHM,SAASzF,EAAQD,EAASM,G0FnoHhC,YACA,IAAAmB,GAAAnB,EAAA,IACAsB,EAAAtB,EAAA,GACAuiB,EAAAviB,EAAA,IACAK,EAAAL,EAAA,IACA8kB,EAAA9kB,EAAA,IACAmhB,EAAAnhB,EAAA,IACA+kB,EAAA/kB,EAAA,IACAglB,EAAAhlB,EAAA,GAEAsB,KAAAW,EAAAX,EAAAO,GAAA7B,EAAA,aAAAmiB,GAA0Etc,MAAA+a,KAAAuB,KAAoB,SAE9FvB,KAAA,SAAAqE,GACA,GAOAliB,GAAA+gB,EAAAoB,EAAAtD,EAPAxc,EAAAmd,EAAA0C,GACAtiB,EAAA,kBAAA7C,WAAA+F,MACAgd,EAAA/f,UAAAC,OACAoiB,EAAAtC,EAAA,EAAA/f,UAAA,GAAAJ,OACA0iB,EAAA1iB,SAAAyiB,EACA7d,EAAA,EACAsd,EAAAI,EAAA5f,EAIA,IAFAggB,IAAAD,EAAAhkB,EAAAgkB,EAAAtC,EAAA,EAAA/f,UAAA,GAAAJ,OAAA,IAEAA,QAAAkiB,GAAAjiB,GAAAkD,OAAAif,EAAAF,GAMA,IADA7hB,EAAAoe,EAAA/b,EAAArC,QACA+gB,EAAA,GAAAnhB,GAAAI,GAAiCA,EAAAuE,EAAgBA,IACjDyd,EAAAjB,EAAAxc,EAAA8d,EAAAD,EAAA/f,EAAAkC,MAAAlC,EAAAkC,QANA,KAAAsa,EAAAgD,EAAAvkB,KAAA+E,GAAA0e,EAAA,GAAAnhB,KAAoDuiB,EAAAtD,EAAA3W,QAAA1D,KAAgCD,IACpFyd,EAAAjB,EAAAxc,EAAA8d,EAAA/kB,EAAAuhB,EAAAuD,GAAAD,EAAAzgB,MAAA6C,OAAA4d,EAAAzgB,MASA,OADAqf,GAAA/gB,OAAAuE,EACAwc,M1F4oHM,SAASnkB,EAAQD,EAASM,G2F9qHhC,YACA,IAAAqlB,GAAArlB,EAAA,IACAklB,EAAAllB,EAAA,IACAoK,EAAApK,EAAA,GACAkhB,EAAAlhB,EAAA,GAMAL,GAAAD,QAAAM,EAAA,IAAA6F,MAAA,iBAAAqB,EAAAsE,GACA1L,KAAAqH,GAAA+Z,EAAAha,GACApH,KAAAsH,GAAA,EACAtH,KAAAwlB,GAAA9Z,GAEC,WACD,GAAApG,GAAAtF,KAAAqH,GACAqE,EAAA1L,KAAAwlB,GACAhe,EAAAxH,KAAAsH,IACA,QAAAhC,GAAAkC,GAAAlC,EAAArC,QACAjD,KAAAqH,GAAAzE,OACAwiB,EAAA,IAEA,QAAA1Z,EAAA0Z,EAAA,EAAA5d,GACA,UAAAkE,EAAA0Z,EAAA,EAAA9f,EAAAkC,IACA4d,EAAA,GAAA5d,EAAAlC,EAAAkC,MACC,UAGD8C,EAAAmb,UAAAnb,EAAAvE,MAEAwf,EAAA,QACAA,EAAA,UACAA,EAAA,Y3ForHM,SAAS1lB,EAAQD,EAASM,G4FptHhC,GAAAsB,GAAAtB,EAAA,EAEAsB,KAAAW,EAAA,UAA8B6e,UAAA9gB,EAAA,O5F2tHxB,SAASL,EAAQD,EAASM,G6F7tHhC,GAAAsB,GAAAtB,EAAA,EAEAsB,KAAAW,EAAAX,EAAAO,EAAA,UAA0Ckf,OAAA/gB,EAAA,O7FouHpC,SAASL,EAAQD,EAASM,G8FvuHhC,GAAAsB,GAAAtB,EAAA,EAEAsB,KAAAW,EAAAX,EAAAO,GAAA7B,EAAA,aAAuEuE,eAAAvE,EAAA,IAAAgF,K9F6uHjE,SAASrF,EAAQD,EAASM,G+F9uHhC,GAAAsB,GAAAtB,EAAA,GACA+L,EAAA/L,EAAA,OAEAsB,KAAAW,EAAA,UACAgK,QAAA,SAAAtH,GACA,MAAAoH,GAAApH,O/FuvHM,SAAShF,EAAQD","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__(95);\n\tmodule.exports = __webpack_require__(43);\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__(36)('wks')\n\t , uid = __webpack_require__(38)\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__(29)\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 'use strict';\n\t\n\t var customEventInit = arguments.length <= 1 || arguments[1] === undefined ? { bubbles: false, cancelable: false, detail: null } : arguments[1];\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__(16)(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__(18);\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__(68)\n\t , toPrimitive = __webpack_require__(86)\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__(48);\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__(32)\n\t , defined = __webpack_require__(15);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 15 */\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/* 16 */\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/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 / 15.2.3.14 Object.keys(O)\r\n\tvar $keys = __webpack_require__(81)\r\n\t , enumBugKeys = __webpack_require__(31);\r\n\t\r\n\tmodule.exports = Object.keys || function keys(O){\r\n\t return $keys(O, enumBugKeys);\r\n\t};\n\n/***/ },\n/* 18 */\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/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar shared = __webpack_require__(36)('keys')\r\n\t , uid = __webpack_require__(38);\r\n\tmodule.exports = function(key){\r\n\t return shared[key] || (shared[key] = uid(key));\r\n\t};\n\n/***/ },\n/* 20 */\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/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(15);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(84)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(33)(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/* 23 */\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__(53);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(54);\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\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 }\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/* 24 */\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/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(57), __esModule: true };\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(59), __esModule: true };\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// getting tag from 19.1.3.6 Object.prototype.toString()\n\tvar cof = __webpack_require__(28)\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/* 28 */\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/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(63);\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/* 30 */\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/* 31 */\n/***/ function(module, exports) {\n\n\t// IE 8- don't enum bug keys\r\n\tmodule.exports = (\r\n\t 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\r\n\t).split(',');\n\n/***/ },\n/* 32 */\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__(28);\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/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(75)\n\t , $export = __webpack_require__(3)\n\t , redefine = __webpack_require__(83)\n\t , hide = __webpack_require__(9)\n\t , has = __webpack_require__(12)\n\t , Iterators = __webpack_require__(5)\n\t , $iterCreate = __webpack_require__(72)\n\t , setToStringTag = __webpack_require__(35)\n\t , getPrototypeOf = __webpack_require__(80)\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/* 34 */\n/***/ function(module, exports) {\n\n\texports.f = {}.propertyIsEnumerable;\n\n/***/ },\n/* 35 */\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/* 36 */\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/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.15 ToLength\n\tvar toInteger = __webpack_require__(20)\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/* 38 */\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/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(27)\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/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(90);\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/* 41 */\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 RIPPLE_COMPONENT = 'MaterialRipple';\n\t var VK_TAB = 9;\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 PANEL = 'mdlext-accordion__panel';\n\t var HEADER = 'mdlext-accordion__panel__header';\n\t var HEADER_TABSTOP = 'mdlext-accordion__panel__header__tabstop';\n\t var IS_UPGRADED = 'is-upgraded';\n\t var RIPPLE = 'mdl-ripple';\n\t var RIPPLE_CONTAINER = 'mdlext-accordion__panel__header__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 * Class constructor for Accordion 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 {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtAccordion = function MaterialExtAccordion(element) {\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\n\t window['MaterialExtAccordion'] = MaterialExtAccordion;\n\t\n\t /**\n\t * Handles custom command event, 'open', 'close', or 'toggle'\n\t * @param event. A custom event\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.commandHandler_ = function (event) {\n\t var _this = this;\n\t\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event.detail && event.detail.action) {\n\t (function () {\n\t var action = event.detail.action.toLowerCase();\n\t\n\t if ('open' === action || 'close' === action || 'toggle' === action) {\n\t\n\t if (event.detail.target === undefined) {\n\t\n\t if (_this.element_.hasAttribute('aria-multiselectable') && 'false' !== _this.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\t\n\t [].concat((0, _toConsumableArray3.default)(_this.element_.querySelectorAll('.' + PANEL))).forEach(function (panel) {\n\t panel.dispatchEvent((0, _customEvent.createCustomEvent)('command_', {\n\t detail: { action: action }\n\t }));\n\t });\n\t }\n\t } else if (event.detail.target !== null) {\n\t\n\t event.detail.target.dispatchEvent(\n\t // Let the even bubble, in case the evnt is dispatched to a child element of the panel\n\t (0, _customEvent.createCustomEvent)('command_', {\n\t bubbles: true, detail: { action: action }\n\t }));\n\t }\n\t }\n\t })();\n\t }\n\t };\n\t\n\t /**\n\t * Initialize accordion's panels\n\t *\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.initAccordion_ = function () {\n\t var _this2 = this;\n\t\n\t this.element_.setAttribute('role', 'tablist');\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 [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + PANEL))).forEach(function (panel) {\n\t new MaterialExtAccordionPanel(panel, _this2);\n\t });\n\t\n\t this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t\n\t this.element_.classList.add(IS_UPGRADED);\n\t };\n\t\n\t /**\n\t * Initialize Accordion element.\n\t */\n\t MaterialExtAccordion.prototype.init = function () {\n\t if (this.element_) {\n\t this.initAccordion_();\n\t }\n\t };\n\t\n\t /**\n\t * Constructor for an individual accordion panel.\n\t *\n\t * @constructor\n\t * @param {Element} panel The HTML element for the tab.\n\t * @param {MaterialExtAccordion} ctx The MaterialExtAccordion object that owns the panel.\n\t */\n\t function MaterialExtAccordionPanel(panel, ctx) {\n\t\n\t var header = panel.querySelector('.' + HEADER);\n\t if (header === null) {\n\t throw new Error('There must be a header element for each accordion panel.');\n\t }\n\t\n\t header.setAttribute('role', 'tab');\n\t\n\t var a = header.querySelector('a.' + HEADER_TABSTOP);\n\t if (a === null) {\n\t // An anchor is required for focus/tab stop\n\t a = document.createElement('a');\n\t a.href = '#';\n\t a.classList.add(HEADER_TABSTOP);\n\t header.appendChild(a);\n\t }\n\t\n\t panel.setAttribute('role', 'tabpanel');\n\t\n\t if (panel.hasAttribute('open')) {\n\t header.setAttribute('aria-expanded', '');\n\t } else {\n\t header.setAttribute('aria-hidden', '');\n\t }\n\t\n\t if (ctx.element_.classList.contains(RIPPLE_EFFECT)) {\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 header.addEventListener('click', function (event) {\n\t\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (!panel.hasAttribute('disabled')) {\n\t\n\t if (panel.hasAttribute('open')) {\n\t\n\t closePanel(panel, header);\n\t\n\t // Dispatch toggle event to accordion element\n\t dispatchToggleEvent('close', panel, ctx.element_);\n\t } else {\n\t if (ctx.element_.hasAttribute('aria-multiselectable') && 'false' === ctx.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\t\n\t var _openPanel = ctx.element_.querySelector('.' + PANEL + '[open]');\n\t if (_openPanel) {\n\t closePanel(_openPanel, _openPanel.querySelector('.' + HEADER));\n\t\n\t // Dispatch toggle event to accordion element\n\t dispatchToggleEvent('close', _openPanel, ctx.element_);\n\t }\n\t removeAriaSelectedAttribute();\n\t }\n\t\n\t openPanel(panel, header);\n\t\n\t // Dispatch toggle event to accordion element\n\t dispatchToggleEvent('open', panel, ctx.element_);\n\t }\n\t focus(panel);\n\t }\n\t }, true);\n\t\n\t header.addEventListener('keydown', function (event) {\n\t if (event.keyCode === VK_TAB || event.keyCode === VK_ENTER || 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 var panels = panel.parentNode.children;\n\t var nextPanel = null;\n\t var n = panel.parentNode.childElementCount - 1;\n\t\n\t for (var i = 0; i <= n; i++) {\n\t\n\t if (event.keyCode === VK_HOME) {\n\t nextPanel = panels[0];\n\t break;\n\t } else if (event.keyCode === VK_END) {\n\t nextPanel = panels[n];\n\t break;\n\t }\n\t\n\t if (panels[i] == panel) {\n\t if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n\t nextPanel = i > 0 ? panels[i - 1] : panels[n];\n\t } else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t nextPanel = i < n ? panels[i + 1] : panels[0];\n\t } else if (event.keyCode === VK_TAB) {\n\t if (event.shiftKey) {\n\t if (i > 0 && !panels[i - 1].hasAttribute('open')) {\n\t nextPanel = panels[i - 1];\n\t }\n\t } else if (i < n) {\n\t if (!panel.hasAttribute('open')) {\n\t nextPanel = panels[i + 1];\n\t }\n\t }\n\t } else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t // Trigger mouse click event for any attached listeners.\n\t var evt = new MouseEvent('click', {\n\t bubbles: true,\n\t cancelable: true,\n\t view: window\n\t });\n\t header.dispatchEvent(evt);\n\t }\n\t break;\n\t }\n\t }\n\t if (nextPanel) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t focus(nextPanel);\n\t }\n\t }\n\t }, true);\n\t\n\t panel.addEventListener('command_', function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event.detail && event.detail.action) {\n\t var action = event.detail.action.toLowerCase();\n\t switch (action) {\n\t case 'open':\n\t openPanel(panel, header);\n\t break;\n\t case 'close':\n\t closePanel(panel, header);\n\t break;\n\t case 'toggle':\n\t togglePanel(panel, header);\n\t break;\n\t }\n\t }\n\t });\n\t\n\t function togglePanel(panel, header) {\n\t if (panel.hasAttribute('open')) {\n\t closePanel(panel, header);\n\t } else {\n\t openPanel(panel, header);\n\t }\n\t }\n\t\n\t function openPanel(panel, header) {\n\t if (!panel.hasAttribute('disabled')) {\n\t panel.setAttribute('open', '');\n\t header.setAttribute('aria-expanded', '');\n\t header.setAttribute('aria-selected', '');\n\t header.removeAttribute('aria-hidden', '');\n\t }\n\t }\n\t\n\t function closePanel(panel, header) {\n\t if (!panel.hasAttribute('disabled')) {\n\t panel.removeAttribute('open');\n\t header.removeAttribute('aria-expanded');\n\t header.setAttribute('aria-hidden', '');\n\t }\n\t }\n\t\n\t function removeAriaSelectedAttribute() {\n\t var selectedHeader = ctx.element_.querySelector('.' + HEADER + '[aria-selected]');\n\t if (selectedHeader) {\n\t selectedHeader.removeAttribute('aria-selected');\n\t }\n\t }\n\t\n\t function focus(nextPanel) {\n\t var a = nextPanel.querySelector('.' + HEADER + ' a');\n\t if (a) {\n\t removeAriaSelectedAttribute();\n\t a.focus();\n\t nextPanel.querySelector('.' + HEADER).setAttribute('aria-selected', '');\n\t }\n\t }\n\t\n\t function dispatchToggleEvent(state, source, target) {\n\t var evt = (0, _customEvent.createCustomEvent)('toggle', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: { state: state, source: source }\n\t });\n\t target.dispatchEvent(evt);\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\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 panel. 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/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _isInteger = __webpack_require__(26);\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__(50);\n\t\n\tvar _assign2 = _interopRequireDefault(_assign);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tvar _animationloop = __webpack_require__(23);\n\t\n\tvar _animationloop2 = _interopRequireDefault(_animationloop);\n\t\n\tvar _easing = __webpack_require__(24);\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_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 var 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.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 * @private\n\t */\n\t MaterialExtCarousel.prototype.animateScroll_ = function (newPosition, newDuration) {\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 new _animationloop2.default(33).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 return false;\n\t }\n\t });\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 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 break;\n\t\n\t case 'last':\n\t x = this.element_.scrollWidth - this.element_.clientWidth;\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 setFocus_(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);\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 _this3 = 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 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 _this3.element_.scrollLeft = Math.max(_this3.element_.scrollLeft + dx, 0);\n\t } else if (dx > 0) {\n\t _this3.element_.scrollLeft = Math.min(_this3.element_.scrollLeft + dx, _this3.element_.scrollWidth - _this3.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 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 var x = e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0);\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 // cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/\n\t window.cancelAnimationFrame(rAFDragId);\n\t\n\t // If mouse did not move, trigger custom select event\n\t if (Math.abs(startX - x) < 2) {\n\t var slide = getSlide_(targetElement);\n\t setFocus_(slide);\n\t _this3.emitSelectEvent_('click', null, slide);\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 * 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 slide has 'aria-selected', even if focus is lost\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 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 * 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 // Helpers\n\t var getSlide_ = function getSlide_(element) {\n\t if (!element || element.parentNode.tagName === undefined || element.classList.contains(CAROUSEL)) {\n\t return null;\n\t }\n\t return element.classList.contains(SLIDE) ? element : getSlide_(element.parentNode);\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\n\t slide.appendChild(rippleContainer);\n\t componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n\t }\n\t };\n\t // End helpers\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 * @TODO Use mutation observer\n\t *\n\t * @public\n\t */\n\t MaterialExtCarousel.prototype.upgradeSlides = function () {\n\t var _this4 = 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 (_this4.config_.interactive) {\n\t if (!(0, _isInteger2.default)(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 _this5 = 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 // 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 // Slides collection\n\t this.upgradeSlides();\n\t\n\t if (this.config_.interactive) {\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), true);\n\t\n\t // Listen to drag events\n\t this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), true);\n\t this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), true);\n\t\n\t // Click is handled by drag\n\t this.element_.addEventListener('click', function (e) {\n\t return e.preventDefault();\n\t }, true);\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 in 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 _this5.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 // 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\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\n\t/**\n\t * Image carousel\n\t */\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t__webpack_require__(6);\n\t\n\t__webpack_require__(23);\n\t\n\t__webpack_require__(24);\n\t\n\t__webpack_require__(47);\n\t\n\t__webpack_require__(46);\n\t\n\t__webpack_require__(41);\n\t\n\t__webpack_require__(44);\n\t\n\t__webpack_require__(45);\n\t\n\t__webpack_require__(42);\n\n/***/ },\n/* 44 */\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_TAB = 9;\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 var LIGHTBOARD = 'mdlext-lightboard';\n\t var SLIDE = 'mdlext-lightboard__slide';\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 /**\n\t * Initialize lightboard slides\n\t *\n\t * @private\n\t */\n\t MaterialExtLightboard.prototype.initLightboard_ = function () {\n\t\n\t this.element_.setAttribute('role', 'grid');\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t return slide.setAttribute('role', 'cell');\n\t });\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 [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t return addRipple(slide);\n\t });\n\t }\n\t\n\t /**\n\t * Trigger when user cliks on a slide\n\t */\n\t this.element_.addEventListener('click', function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t var slide = getSlide(event.target);\n\t\n\t if (event.target !== this) {\n\t focus(slide);\n\t\n\t // Remove 'aria-selected' attribute\n\t [].concat((0, _toConsumableArray3.default)(this.children)) // Should I use querySelectorAll ???\n\t .filter(function (panel) {\n\t return panel.hasAttribute('aria-selected');\n\t }).forEach(function (selected) {\n\t return selected.removeAttribute('aria-selected');\n\t });\n\t\n\t // Set 'aria-selected' on current slide\n\t slide.setAttribute('aria-selected', '');\n\t\n\t var evt = (0, _customEvent.createCustomEvent)('select', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: { source: slide }\n\t });\n\t this.dispatchEvent(evt);\n\t }\n\t }.bind(this.element_), true);\n\t\n\t /**\n\t * Trigger when user presses a keboard key\n\t */\n\t this.element_.addEventListener('keydown', function (event) {\n\t // Maybe this function should be throttled??\n\t if (event.keyCode === VK_TAB || event.keyCode === VK_ENTER || 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.target !== this) {\n\t var panel = getSlide(event.target);\n\t var panels = this.children;\n\t var nextPanel = null;\n\t var n = this.childElementCount - 1;\n\t\n\t for (var i = 0; i <= n; i++) {\n\t if (event.keyCode === VK_HOME) {\n\t nextPanel = panels[0];\n\t break;\n\t } else if (event.keyCode === VK_END) {\n\t nextPanel = panels[n];\n\t break;\n\t }\n\t\n\t if (panels[i] === panel) {\n\t if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n\t nextPanel = i > 0 ? panels[i - 1] : panels[n];\n\t } else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t nextPanel = i < n ? panels[i + 1] : panels[0];\n\t } else if (event.keyCode === VK_TAB) {\n\t if (event.shiftKey) {\n\t if (i > 0) {\n\t nextPanel = panels[i - 1];\n\t }\n\t } else if (i < n) {\n\t nextPanel = panels[i + 1];\n\t }\n\t } else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t // Trigger mouse click event for any attached listeners.\n\t var evt = new MouseEvent('click', {\n\t bubbles: true,\n\t cancelable: true,\n\t view: window\n\t });\n\t panel.dispatchEvent(evt);\n\t }\n\t break;\n\t }\n\t }\n\t if (nextPanel) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t focus(nextPanel);\n\t }\n\t }\n\t }\n\t }.bind(this.element_), true);\n\t\n\t this.element_.classList.add(IS_UPGRADED);\n\t };\n\t\n\t function getSlide(element) {\n\t if (!element || element.classList.contains(LIGHTBOARD)) {\n\t return null;\n\t }\n\t return element.classList.contains(SLIDE) ? element : getSlide(element.parentNode);\n\t }\n\t\n\t function focus(slide) {\n\t if (slide) {\n\t var a = slide.querySelector('a.' + SLIDE_TABSTOP);\n\t if (a) {\n\t a.focus();\n\t }\n\t }\n\t }\n\t\n\t function addRipple(slide) {\n\t // Use anchor as ripple container\n\t var a = slide.querySelector('a.' + 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 * Initialize component\n\t */\n\t MaterialExtLightboard.prototype.init = function () {\n\t if (this.element_) {\n\t this.initLightboard_();\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 /* 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\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\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\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\tvar _isInteger = __webpack_require__(26);\n\t\n\tvar _isInteger2 = _interopRequireDefault(_isInteger);\n\t\n\tvar _slicedToArray2 = __webpack_require__(55);\n\t\n\tvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\t\n\tvar _entries = __webpack_require__(52);\n\t\n\tvar _entries2 = _interopRequireDefault(_entries);\n\t\n\tvar _getIterator2 = __webpack_require__(25);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\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_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_CLASS = 'mdlext-lightbox';\n\t var STICKY_FOOTER_CLASS = 'mdlext-lightbox--sticky-footer';\n\t var BUTTON_CLASS = '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;\n\t while ((n = n.parentNode) != null) {\n\t if (n.classList.contains(LIGHTBOX_CLASS)) {\n\t n.focus();\n\t break;\n\t }\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 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 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_CLASS));\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('mdlext-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('mdlext-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('mdlext-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('mdlext-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_CLASS))).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_CLASS}`)].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\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\n\t/**\n\t * Responsive Lightbox\n\t */\n\n/***/ },\n/* 46 */\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 /*jshint undef:false */\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/* 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 * 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 * @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/ru/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/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(56), __esModule: true };\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(58), __esModule: true };\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(60), __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) {\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/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(51);\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/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _isIterable2 = __webpack_require__(49);\n\t\n\tvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\t\n\tvar _getIterator2 = __webpack_require__(25);\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/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(22);\n\t__webpack_require__(89);\n\tmodule.exports = __webpack_require__(1).Array.from;\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(40);\n\t__webpack_require__(22);\n\tmodule.exports = __webpack_require__(87);\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(40);\n\t__webpack_require__(22);\n\tmodule.exports = __webpack_require__(88);\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(91);\n\tmodule.exports = __webpack_require__(1).Number.isInteger;\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(92);\n\tmodule.exports = __webpack_require__(1).Object.assign;\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(93);\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/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(94);\n\tmodule.exports = __webpack_require__(1).Object.entries;\n\n/***/ },\n/* 63 */\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/* 64 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 65 */\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__(37)\n\t , toIndex = __webpack_require__(85);\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/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $defineProperty = __webpack_require__(10)\r\n\t , createDesc = __webpack_require__(18);\r\n\t\r\n\tmodule.exports = function(object, index, value){\r\n\t if(index in object)$defineProperty.f(object, index, createDesc(0, value));\r\n\t else object[index] = value;\r\n\t};\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(4).document && document.documentElement;\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = !__webpack_require__(8) && !__webpack_require__(16)(function(){\r\n\t return Object.defineProperty(__webpack_require__(30)('div'), 'a', {get: function(){ return 7; }}).a != 7;\r\n\t});\n\n/***/ },\n/* 69 */\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/* 70 */\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/* 71 */\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/* 72 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar create = __webpack_require__(77)\n\t , descriptor = __webpack_require__(18)\n\t , setToStringTag = __webpack_require__(35)\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/* 73 */\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/* 74 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 75 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 76 */\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__(17)\n\t , gOPS = __webpack_require__(79)\n\t , pIE = __webpack_require__(34)\n\t , toObject = __webpack_require__(21)\n\t , IObject = __webpack_require__(32)\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__(16)(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/* 77 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\r\n\tvar anObject = __webpack_require__(7)\r\n\t , dPs = __webpack_require__(78)\r\n\t , enumBugKeys = __webpack_require__(31)\r\n\t , IE_PROTO = __webpack_require__(19)('IE_PROTO')\r\n\t , Empty = function(){ /* empty */ }\r\n\t , PROTOTYPE = 'prototype';\r\n\t\r\n\t// Create object with fake `null` prototype: use iframe Object with cleared prototype\r\n\tvar createDict = function(){\r\n\t // Thrash, waste and sodomy: IE GC bug\r\n\t var iframe = __webpack_require__(30)('iframe')\r\n\t , i = enumBugKeys.length\r\n\t , gt = '>'\r\n\t , iframeDocument;\r\n\t iframe.style.display = 'none';\r\n\t __webpack_require__(67).appendChild(iframe);\r\n\t iframe.src = 'javascript:'; // eslint-disable-line no-script-url\r\n\t // createDict = iframe.contentWindow.Object;\r\n\t // html.removeChild(iframe);\r\n\t iframeDocument = iframe.contentWindow.document;\r\n\t iframeDocument.open();\r\n\t iframeDocument.write(' i)dP.f(O, P = keys[i++], Properties[P]);\r\n\t return O;\r\n\t};\n\n/***/ },\n/* 79 */\n/***/ function(module, exports) {\n\n\texports.f = Object.getOwnPropertySymbols;\n\n/***/ },\n/* 80 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\r\n\tvar has = __webpack_require__(12)\r\n\t , toObject = __webpack_require__(21)\r\n\t , IE_PROTO = __webpack_require__(19)('IE_PROTO')\r\n\t , ObjectProto = Object.prototype;\r\n\t\r\n\tmodule.exports = Object.getPrototypeOf || function(O){\r\n\t O = toObject(O);\r\n\t if(has(O, IE_PROTO))return O[IE_PROTO];\r\n\t if(typeof O.constructor == 'function' && O instanceof O.constructor){\r\n\t return O.constructor.prototype;\r\n\t } return O instanceof Object ? ObjectProto : null;\r\n\t};\n\n/***/ },\n/* 81 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar has = __webpack_require__(12)\r\n\t , toIObject = __webpack_require__(14)\r\n\t , arrayIndexOf = __webpack_require__(65)(false)\r\n\t , IE_PROTO = __webpack_require__(19)('IE_PROTO');\r\n\t\r\n\tmodule.exports = function(object, names){\r\n\t var O = toIObject(object)\r\n\t , i = 0\r\n\t , result = []\r\n\t , key;\r\n\t for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\r\n\t // Don't enum bug & hidden keys\r\n\t while(names.length > i)if(has(O, key = names[i++])){\r\n\t ~arrayIndexOf(result, key) || result.push(key);\r\n\t }\r\n\t return result;\r\n\t};\n\n/***/ },\n/* 82 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getKeys = __webpack_require__(17)\n\t , toIObject = __webpack_require__(14)\n\t , isEnum = __webpack_require__(34).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/* 83 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(9);\n\n/***/ },\n/* 84 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(20)\n\t , defined = __webpack_require__(15);\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/* 85 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(20)\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/* 86 */\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/* 87 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(7)\n\t , get = __webpack_require__(39);\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/* 88 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(27)\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/* 89 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar ctx = __webpack_require__(29)\n\t , $export = __webpack_require__(3)\n\t , toObject = __webpack_require__(21)\n\t , call = __webpack_require__(71)\n\t , isArrayIter = __webpack_require__(69)\n\t , toLength = __webpack_require__(37)\n\t , createProperty = __webpack_require__(66)\n\t , getIterFn = __webpack_require__(39);\n\t\n\t$export($export.S + $export.F * !__webpack_require__(73)(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/* 90 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(64)\n\t , step = __webpack_require__(74)\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__(33)(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/* 91 */\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__(70)});\n\n/***/ },\n/* 92 */\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__(76)});\n\n/***/ },\n/* 93 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(3);\r\n\t// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\r\n\t$export($export.S + $export.F * !__webpack_require__(8), 'Object', {defineProperty: __webpack_require__(10).f});\n\n/***/ },\n/* 94 */\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__(82)(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/* 95 */\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 cf20fcafe0840a60d57a\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 'use strict';\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 **/","// 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 = 15\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 = 16\n ** module chunks = 0 1\n **/","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\r\nvar $keys = require('./_object-keys-internal')\r\n , enumBugKeys = require('./_enum-bug-keys');\r\n\r\nmodule.exports = Object.keys || function keys(O){\r\n return $keys(O, enumBugKeys);\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 17\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 = 18\n ** module chunks = 0 1\n **/","var shared = require('./_shared')('keys')\r\n , uid = require('./_uid');\r\nmodule.exports = function(key){\r\n return shared[key] || (shared[key] = uid(key));\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 19\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 = 20\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 = 21\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 = 22\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 }\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 = 25\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 = 26\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 = 27\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 = 28\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 = 29\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 = 30\n ** module chunks = 0 1\n **/","// IE 8- don't enum bug keys\r\nmodule.exports = (\r\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\r\n).split(',');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 31\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 = 32\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 = 33\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 = 34\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 = 35\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 = 36\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 = 37\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 = 38\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 = 39\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 = 40\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 panel. 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(function() {\n 'use strict';\n\n\n const RIPPLE_COMPONENT = 'MaterialRipple';\n const VK_TAB = 9;\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 PANEL = 'mdlext-accordion__panel';\n const HEADER = 'mdlext-accordion__panel__header';\n const HEADER_TABSTOP = 'mdlext-accordion__panel__header__tabstop';\n const IS_UPGRADED = 'is-upgraded';\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_CONTAINER = 'mdlext-accordion__panel__header__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 /**\n * Class constructor for Accordion MDLEXT component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\n const MaterialExtAccordion = function MaterialExtAccordion(element) {\n // Stores the Accordion HTML element.\n this.element_ = element;\n\n // Initialize instance.\n this.init();\n };\n\n window['MaterialExtAccordion'] = MaterialExtAccordion;\n\n\n /**\n * Handles custom command event, 'open', 'close', or 'toggle'\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.detail && event.detail.action) {\n const action = event.detail.action.toLowerCase();\n\n if('open' === action || 'close' === action || 'toggle' === action) {\n\n if(event.detail.target === undefined) {\n\n if(this.element_.hasAttribute('aria-multiselectable') &&\n 'false' !== this.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\n [...this.element_.querySelectorAll(`.${PANEL}`)].forEach(panel => {\n panel.dispatchEvent(\n createCustomEvent('command_', {\n detail: {action: action}\n })\n );\n });\n }\n }\n else if (event.detail.target !== null) {\n\n event.detail.target.dispatchEvent(\n // Let the even bubble, in case the evnt is dispatched to a child element of the panel\n createCustomEvent('command_', {\n bubbles: true, detail: { action: action }\n })\n );\n }\n }\n }\n };\n\n /**\n * Initialize accordion's panels\n *\n * @private\n */\n MaterialExtAccordion.prototype.initAccordion_ = function() {\n\n this.element_.setAttribute('role', 'tablist');\n\n if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n\n [...this.element_.querySelectorAll(`.${PANEL}`)].forEach( panel => {\n new MaterialExtAccordionPanel(panel, this);\n });\n\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n this.element_.classList.add(IS_UPGRADED);\n };\n\n /**\n * Initialize Accordion element.\n */\n MaterialExtAccordion.prototype.init = function() {\n if (this.element_) {\n this.initAccordion_();\n }\n };\n\n\n /**\n * Constructor for an individual accordion panel.\n *\n * @constructor\n * @param {Element} panel The HTML element for the tab.\n * @param {MaterialExtAccordion} ctx The MaterialExtAccordion object that owns the panel.\n */\n function MaterialExtAccordionPanel(panel, ctx) {\n\n const header = panel.querySelector(`.${HEADER}`);\n if(header === null) {\n throw new Error('There must be a header element for each accordion panel.');\n }\n\n header.setAttribute('role', 'tab');\n\n let a = header.querySelector(`a.${HEADER_TABSTOP}`);\n if(a === null) {\n // An anchor is required for focus/tab stop\n a = document.createElement('a');\n a.href = '#';\n a.classList.add(HEADER_TABSTOP);\n header.appendChild(a);\n }\n\n panel.setAttribute('role', 'tabpanel');\n\n if(panel.hasAttribute('open')) {\n header.setAttribute('aria-expanded', '');\n }\n else {\n header.setAttribute('aria-hidden', '');\n }\n\n if (ctx.element_.classList.contains(RIPPLE_EFFECT)) {\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 header.addEventListener('click', ( event => {\n\n event.preventDefault();\n event.stopPropagation();\n\n if(!panel.hasAttribute('disabled')) {\n\n if(panel.hasAttribute('open')) {\n\n closePanel(panel, header);\n\n // Dispatch toggle event to accordion element\n dispatchToggleEvent('close', panel, ctx.element_);\n }\n else {\n if(ctx.element_.hasAttribute('aria-multiselectable') &&\n 'false' === ctx.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\n const openPanel = ctx.element_.querySelector(`.${PANEL}[open]`);\n if (openPanel) {\n closePanel(openPanel, openPanel.querySelector(`.${HEADER}`));\n\n // Dispatch toggle event to accordion element\n dispatchToggleEvent('close', openPanel, ctx.element_);\n }\n removeAriaSelectedAttribute();\n }\n\n openPanel(panel, header);\n\n // Dispatch toggle event to accordion element\n dispatchToggleEvent('open', panel, ctx.element_);\n }\n focus(panel);\n }\n }), true);\n\n\n header.addEventListener('keydown', ( event => {\n if (event.keyCode === VK_TAB\n || event.keyCode === VK_ENTER || 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 const panels = panel.parentNode.children;\n let nextPanel = null;\n const n = panel.parentNode.childElementCount - 1;\n\n for (let i = 0; i <= n; i++) {\n\n if (event.keyCode === VK_HOME) {\n nextPanel = panels[0];\n break;\n }\n else if (event.keyCode === VK_END) {\n nextPanel = panels[n];\n break;\n }\n\n if(panels[i] == panel) {\n if(event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n nextPanel = i > 0 ? panels[i-1] : panels[n];\n }\n else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n nextPanel = i < n ? panels[i+1] : panels[0];\n }\n else if (event.keyCode === VK_TAB) {\n if(event.shiftKey) {\n if(i > 0 && !panels[i-1].hasAttribute('open')) {\n nextPanel = panels[i-1];\n }\n }\n else if (i < n) {\n if(!panel.hasAttribute('open')) {\n nextPanel = panels[i+1];\n }\n }\n }\n else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n event.preventDefault();\n event.stopPropagation();\n\n // Trigger mouse click event for any attached listeners.\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n header.dispatchEvent(evt);\n }\n break;\n }\n }\n if(nextPanel) {\n event.preventDefault();\n event.stopPropagation();\n focus(nextPanel);\n }\n }\n }), true);\n\n panel.addEventListener('command_', ( event => {\n event.preventDefault();\n event.stopPropagation();\n\n if(event.detail && event.detail.action) {\n const action = event.detail.action.toLowerCase();\n switch (action) {\n case 'open':\n openPanel(panel, header);\n break;\n case 'close':\n closePanel(panel, header);\n break;\n case 'toggle':\n togglePanel(panel, header);\n break;\n }\n }\n }));\n\n\n function togglePanel(panel, header) {\n if(panel.hasAttribute('open')) {\n closePanel(panel, header);\n }\n else {\n openPanel(panel, header);\n }\n }\n\n function openPanel(panel, header) {\n if(!panel.hasAttribute('disabled')) {\n panel.setAttribute('open', '');\n header.setAttribute('aria-expanded', '');\n header.setAttribute('aria-selected', '');\n header.removeAttribute('aria-hidden', '');\n }\n }\n\n function closePanel(panel, header) {\n if(!panel.hasAttribute('disabled')) {\n panel.removeAttribute('open');\n header.removeAttribute('aria-expanded');\n header.setAttribute('aria-hidden', '');\n }\n }\n\n function removeAriaSelectedAttribute() {\n const selectedHeader = ctx.element_.querySelector(`.${HEADER}[aria-selected]`);\n if(selectedHeader) {\n selectedHeader.removeAttribute('aria-selected');\n }\n }\n\n function focus(nextPanel) {\n const a = nextPanel.querySelector(`.${HEADER} a`);\n if(a) {\n removeAriaSelectedAttribute();\n a.focus();\n nextPanel.querySelector(`.${HEADER}`).setAttribute('aria-selected', '');\n }\n }\n\n function dispatchToggleEvent(state, source, target) {\n const evt = createCustomEvent('toggle', {\n bubbles: true,\n cancelable: true,\n detail: { state: state, source: source }\n });\n target.dispatchEvent(evt);\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 { 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.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 * @private\n */\n MaterialExtCarousel.prototype.animateScroll_ = function( newPosition, newDuration ) {\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 new MdlExtAnimationLoop(33).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 return false;\n }\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 break;\n\n case 'last':\n x = this.element_.scrollWidth - this.element_.clientWidth;\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 setFocus_(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);\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 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 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 const x = e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0);\n\n window.removeEventListener('mousemove', drag);\n window.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 // If mouse did not move, trigger custom select event\n if(Math.abs(startX-x) < 2) {\n const slide = getSlide_(targetElement);\n setFocus_(slide);\n this.emitSelectEvent_('click', null, slide);\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 * 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 slide has 'aria-selected', even if focus is lost\n [...this.element_.querySelectorAll(`.${SLIDE}[aria-selected]`)].forEach(\n slide => slide.removeAttribute('aria-selected')\n );\n slide.setAttribute('aria-selected', '');\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 * 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 // Helpers\n const getSlide_ = element => {\n if (!element || element.parentNode.tagName === undefined || element.classList.contains(CAROUSEL)) {\n return null;\n }\n return element.classList.contains(SLIDE) ? element : getSlide_(element.parentNode);\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\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 * @TODO Use mutation observer\n *\n * @public\n */\n MaterialExtCarousel.prototype.upgradeSlides = function() {\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 (!Number.isInteger(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 // 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 // Slides collection\n this.upgradeSlides();\n\n if(this.config_.interactive) {\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), true);\n\n // Listen to drag events\n this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), true);\n this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), true);\n\n // Click is handled by drag\n this.element_.addEventListener('click', e => e.preventDefault(), true);\n }\n\n // Listen to custom 'command' event\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n // Detect insertions in 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\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';\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 { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_TAB = 9;\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 SLIDE = 'mdlext-lightboard__slide';\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 * Initialize lightboard slides\n *\n * @private\n */\n MaterialExtLightboard.prototype.initLightboard_ = function() {\n\n this.element_.setAttribute('role', 'grid');\n [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach(\n slide => slide.setAttribute('role', 'cell')\n );\n\n if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n\n [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach(\n slide => addRipple(slide)\n );\n }\n\n /**\n * Trigger when user cliks on a slide\n */\n this.element_.addEventListener('click', ( function(event) {\n event.preventDefault();\n event.stopPropagation();\n const slide = getSlide(event.target);\n\n if(event.target !== this) {\n focus(slide);\n\n // Remove 'aria-selected' attribute\n [...this.children] // Should I use querySelectorAll ???\n .filter( panel => panel.hasAttribute('aria-selected'))\n .forEach( selected => selected.removeAttribute('aria-selected'));\n\n // Set 'aria-selected' on current slide\n slide.setAttribute('aria-selected', '');\n\n const evt = createCustomEvent('select', {\n bubbles: true,\n cancelable: true,\n detail: { source: slide }\n });\n this.dispatchEvent(evt);\n }\n }).bind(this.element_), true);\n\n /**\n * Trigger when user presses a keboard key\n */\n this.element_.addEventListener('keydown', ( function(event) {\n // Maybe this function should be throttled??\n if (event.keyCode === VK_TAB\n || event.keyCode === VK_ENTER || 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.target !== this) {\n const panel = getSlide(event.target);\n const panels = this.children;\n let nextPanel = null;\n const n = this.childElementCount - 1;\n\n for (let i = 0; i <= n; i++) {\n if (event.keyCode === VK_HOME) {\n nextPanel = panels[0];\n break;\n }\n else if (event.keyCode === VK_END) {\n nextPanel = panels[n];\n break;\n }\n\n if (panels[i] === panel) {\n if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n nextPanel = i > 0 ? panels[i - 1] : panels[n];\n }\n else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n nextPanel = i < n ? panels[i + 1] : panels[0];\n }\n else if (event.keyCode === VK_TAB) {\n if (event.shiftKey) {\n if (i > 0) {\n nextPanel = panels[i - 1];\n }\n }\n else if (i < n) {\n nextPanel = panels[i + 1];\n }\n }\n else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n event.preventDefault();\n event.stopPropagation();\n\n // Trigger mouse click event for any attached listeners.\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n panel.dispatchEvent(evt);\n }\n break;\n }\n }\n if (nextPanel) {\n event.preventDefault();\n event.stopPropagation();\n focus(nextPanel);\n }\n }\n }\n }).bind(this.element_), true);\n\n this.element_.classList.add(IS_UPGRADED);\n };\n\n function getSlide(element) {\n if (!element || element.classList.contains(LIGHTBOARD)) {\n return null;\n }\n return element.classList.contains(SLIDE) ? element : getSlide(element.parentNode);\n }\n\n function focus(slide) {\n if(slide) {\n const a = slide.querySelector(`a.${SLIDE_TABSTOP}`);\n if (a) {\n a.focus();\n }\n }\n }\n\n function addRipple(slide) {\n // Use anchor as ripple container\n const a = slide.querySelector(`a.${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 * Initialize component\n */\n MaterialExtLightboard.prototype.init = function() {\n if (this.element_) {\n this.initLightboard_();\n }\n };\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n /* jshint undef:false */\n componentHandler.register({\n constructor: MaterialExtLightboard,\n classAsString: 'MaterialExtLightboard',\n cssClass: 'mdlext-js-lightboard',\n widget: true\n });\n})();\n\n\n\n/** 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 { 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_CLASS = 'mdlext-lightbox';\n const STICKY_FOOTER_CLASS = 'mdlext-lightbox--sticky-footer';\n const BUTTON_CLASS = '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 let n = this;\n while((n = n.parentNode) != null) {\n if(n.classList.contains(LIGHTBOX_CLASS)) {\n n.focus();\n break;\n }\n }\n }\n };\n\n /**\n * Dispatches an action custom event\n * @param action\n * @param source\n * @param target\n * @private\n */\n function 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 function 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_CLASS));\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('mdlext-lightbox__slider');\n setStyles(slider, {'width': `${img.offsetWidth}px`, 'height': `${img.offsetHeight}px`} );\n\n let slide = document.createElement('div');\n slide.classList.add('mdlext-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('mdlext-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('mdlext-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_CLASS}`)].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_CLASS}`)].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 /*jshint undef:false */\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/ru/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 = 48\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 = 49\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 = 50\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 = 51\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 = 52\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 = 53\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 = 54\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 = 55\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 = 56\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 = 57\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 = 58\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 = 59\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 = 60\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 = 61\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 = 62\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 = 63\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 = 64\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 = 65\n ** module chunks = 0 1\n **/","'use strict';\r\nvar $defineProperty = require('./_object-dp')\r\n , createDesc = require('./_property-desc');\r\n\r\nmodule.exports = function(object, index, value){\r\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\r\n else object[index] = value;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_create-property.js\n ** module id = 66\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 = 67\n ** module chunks = 0 1\n **/","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\r\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\r\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 68\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 = 69\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 = 70\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 = 71\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 = 72\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 = 73\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 = 74\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 = 75\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 = 76\n ** module chunks = 0 1\n **/","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\r\nvar anObject = require('./_an-object')\r\n , dPs = require('./_object-dps')\r\n , enumBugKeys = require('./_enum-bug-keys')\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\r\n , Empty = function(){ /* empty */ }\r\n , PROTOTYPE = 'prototype';\r\n\r\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\r\nvar createDict = function(){\r\n // Thrash, waste and sodomy: IE GC bug\r\n var iframe = require('./_dom-create')('iframe')\r\n , i = enumBugKeys.length\r\n , gt = '>'\r\n , iframeDocument;\r\n iframe.style.display = 'none';\r\n require('./_html').appendChild(iframe);\r\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\r\n // createDict = iframe.contentWindow.Object;\r\n // html.removeChild(iframe);\r\n iframeDocument = iframe.contentWindow.document;\r\n iframeDocument.open();\r\n iframeDocument.write(' i)dP.f(O, P = keys[i++], Properties[P]);\r\n return O;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 78\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 = 79\n ** module chunks = 0 1\n **/","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\r\nvar has = require('./_has')\r\n , toObject = require('./_to-object')\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\r\n , ObjectProto = Object.prototype;\r\n\r\nmodule.exports = Object.getPrototypeOf || function(O){\r\n O = toObject(O);\r\n if(has(O, IE_PROTO))return O[IE_PROTO];\r\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\r\n return O.constructor.prototype;\r\n } return O instanceof Object ? ObjectProto : null;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 80\n ** module chunks = 0 1\n **/","var has = require('./_has')\r\n , toIObject = require('./_to-iobject')\r\n , arrayIndexOf = require('./_array-includes')(false)\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\r\n\r\nmodule.exports = function(object, names){\r\n var O = toIObject(object)\r\n , i = 0\r\n , result = []\r\n , key;\r\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\r\n // Don't enum bug & hidden keys\r\n while(names.length > i)if(has(O, key = names[i++])){\r\n ~arrayIndexOf(result, key) || result.push(key);\r\n }\r\n return result;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 81\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 = 82\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 = 83\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 = 84\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 = 85\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 = 86\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 = 87\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 = 88\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 = 89\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 = 90\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 = 91\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 = 92\n ** module chunks = 0 1\n **/","var $export = require('./_export');\r\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\r\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 = 93\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 = 94\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 f2f092a30f1c6877444a?9b99","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:///./~/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","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","prototype","$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","MaterialExtAccordionPanel","panel","togglePanel","header","hasAttribute","closePanel","openPanel","setAttribute","removeAttribute","removeAriaSelectedAttribute","selectedHeader","element_","querySelector","HEADER","focus","nextPanel","dispatchToggleEvent","state","evt","dispatchEvent","Error","HEADER_TABSTOP","href","classList","add","appendChild","contains","RIPPLE_EFFECT","rippleContainer","RIPPLE_CONTAINER","ripple","RIPPLE","componentHandler","upgradeElement","RIPPLE_COMPONENT","addEventListener","event","stopPropagation","getAttribute","toLowerCase","_openPanel","PANEL","keyCode","VK_TAB","VK_ENTER","VK_SPACE","VK_END","VK_HOME","VK_ARROW_UP","VK_ARROW_LEFT","VK_ARROW_DOWN","VK_ARROW_RIGHT","panels","parentNode","children","n","childElementCount","shiftKey","MouseEvent","view","action","IS_UPGRADED","RIPPLE_EFFECT_IGNORE_EVENTS","MaterialExtAccordion","element","init","commandHandler_","querySelectorAll","forEach","initAccordion_","_this2","bind","register","constructor","classAsString","cssClass","widget","_isInteger","_isInteger2","_assign","_assign2","_animationloop","_animationloop2","_easing","VK_ESC","VK_PAGE_UP","VK_PAGE_DOWN","IS_FOCUSED","CAROUSEL","SLIDE","ROLE","SLIDE_ROLE","MaterialExtCarousel","config_","interactive","autostart","animationLoop","drawing_","startSlideShow_","nextSlide","slide","nextElementSibling","animateScroll_","moveSlideIntoViewport_","emitSelectEvent_","nextScroll","direction","nextDirection","scrollLeft","scrollWidth","clientWidth","x","max","running","start","cancelSlideShow_","stop","newPosition","newDuration","distance","duration","abs","timeElapsed","command_","previousElementSibling","setFocus_","keyDownHandler_","getSlide_","dragHandler_","_this3","startX","clientX","touches","prevX","targetElement","update","currentX","dx","drag","endDrag","removeEventListener","focusHandler_","blurHandler_","remove","command","carouselRect","getBoundingClientRect","slideRect","left","right","_x","tagName","addRipple_","img","title","stopAnimation","upgradeSlides","_this4","hasRippleEffect","getConfig","_this5","s","replace","JSON","parse","message","MutationObserver","WebKitMutationObserver","MozMutationObserver","mutations","mutation","addedNodes","observe","attributes","childList","characterData","subtree","getSlide","LIGHTBOARD","SLIDE_TABSTOP","addRipple","MaterialExtLightboard","initLightboard_","filter","selected","_slicedToArray2","_slicedToArray3","_entries","_entries2","_getIterator2","_getIterator3","dispatchAction_","repositionDialog_","lightboxElement","footerHeight","footer","isSticky","offsetHeight","reposition","dialog","fh","getComputedStyle","position","scrollTop","body","documentElement","topValue","innerHeight","style","top","nodeName","width","maxWidth","naturalWidth","STICKY_FOOTER_CLASS","vh","clientHeight","offsetWidth","LIGHTBOX_CLASS","BUTTON_CLASS","MaterialExtLightbox","buttonClickHandler_","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","el","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","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__(95);\n\tmodule.exports = __webpack_require__(43);\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__(36)('wks')\n\t , uid = __webpack_require__(38)\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__(29)\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 'use strict';\n\t\n\t var customEventInit = arguments.length <= 1 || arguments[1] === undefined ? { bubbles: false, cancelable: false, detail: null } : arguments[1];\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__(16)(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__(18);\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__(68)\n\t , toPrimitive = __webpack_require__(86)\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__(48);\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__(32)\n\t , defined = __webpack_require__(15);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 15 */\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/* 16 */\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/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 / 15.2.3.14 Object.keys(O)\r\n\tvar $keys = __webpack_require__(81)\r\n\t , enumBugKeys = __webpack_require__(31);\r\n\t\r\n\tmodule.exports = Object.keys || function keys(O){\r\n\t return $keys(O, enumBugKeys);\r\n\t};\n\n/***/ },\n/* 18 */\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/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar shared = __webpack_require__(36)('keys')\r\n\t , uid = __webpack_require__(38);\r\n\tmodule.exports = function(key){\r\n\t return shared[key] || (shared[key] = uid(key));\r\n\t};\n\n/***/ },\n/* 20 */\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/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(15);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(84)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(33)(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/* 23 */\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__(53);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(54);\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\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 }\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/* 24 */\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/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(57), __esModule: true };\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(59), __esModule: true };\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// getting tag from 19.1.3.6 Object.prototype.toString()\n\tvar cof = __webpack_require__(28)\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/* 28 */\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/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(63);\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/* 30 */\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/* 31 */\n/***/ function(module, exports) {\n\n\t// IE 8- don't enum bug keys\r\n\tmodule.exports = (\r\n\t 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\r\n\t).split(',');\n\n/***/ },\n/* 32 */\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__(28);\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/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(75)\n\t , $export = __webpack_require__(3)\n\t , redefine = __webpack_require__(83)\n\t , hide = __webpack_require__(9)\n\t , has = __webpack_require__(12)\n\t , Iterators = __webpack_require__(5)\n\t , $iterCreate = __webpack_require__(72)\n\t , setToStringTag = __webpack_require__(35)\n\t , getPrototypeOf = __webpack_require__(80)\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/* 34 */\n/***/ function(module, exports) {\n\n\texports.f = {}.propertyIsEnumerable;\n\n/***/ },\n/* 35 */\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/* 36 */\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/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.15 ToLength\n\tvar toInteger = __webpack_require__(20)\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/* 38 */\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/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(27)\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/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(90);\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/* 41 */\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 RIPPLE_COMPONENT = 'MaterialRipple';\n\t var VK_TAB = 9;\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 PANEL = 'mdlext-accordion__panel';\n\t var HEADER = 'mdlext-accordion__panel__header';\n\t var HEADER_TABSTOP = 'mdlext-accordion__panel__header__tabstop';\n\t var IS_UPGRADED = 'is-upgraded';\n\t var RIPPLE = 'mdl-ripple';\n\t var RIPPLE_CONTAINER = 'mdlext-accordion__panel__header__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 * Class constructor for Accordion 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 {Element} element The element that will be upgraded.\n\t */\n\t var MaterialExtAccordion = function MaterialExtAccordion(element) {\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\n\t window['MaterialExtAccordion'] = MaterialExtAccordion;\n\t\n\t /**\n\t * Handles custom command event, 'open', 'close', or 'toggle'\n\t * @param event. A custom event\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.commandHandler_ = function (event) {\n\t var _this = this;\n\t\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event.detail && event.detail.action) {\n\t (function () {\n\t var action = event.detail.action.toLowerCase();\n\t\n\t if ('open' === action || 'close' === action || 'toggle' === action) {\n\t\n\t if (event.detail.target === undefined) {\n\t\n\t if (_this.element_.hasAttribute('aria-multiselectable') && 'false' !== _this.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\t\n\t [].concat((0, _toConsumableArray3.default)(_this.element_.querySelectorAll('.' + PANEL))).forEach(function (panel) {\n\t panel.dispatchEvent((0, _customEvent.createCustomEvent)('command_', {\n\t detail: { action: action }\n\t }));\n\t });\n\t }\n\t } else if (event.detail.target !== null) {\n\t\n\t event.detail.target.dispatchEvent(\n\t // Let the even bubble, in case the evnt is dispatched to a child element of the panel\n\t (0, _customEvent.createCustomEvent)('command_', {\n\t bubbles: true, detail: { action: action }\n\t }));\n\t }\n\t }\n\t })();\n\t }\n\t };\n\t\n\t /**\n\t * Initialize accordion's panels\n\t *\n\t * @private\n\t */\n\t MaterialExtAccordion.prototype.initAccordion_ = function () {\n\t var _this2 = this;\n\t\n\t this.element_.setAttribute('role', 'tablist');\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 [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + PANEL))).forEach(function (panel) {\n\t new MaterialExtAccordionPanel(panel, _this2);\n\t });\n\t\n\t this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t\n\t this.element_.classList.add(IS_UPGRADED);\n\t };\n\t\n\t /**\n\t * Initialize Accordion element.\n\t */\n\t MaterialExtAccordion.prototype.init = function () {\n\t if (this.element_) {\n\t this.initAccordion_();\n\t }\n\t };\n\t\n\t /**\n\t * Constructor for an individual accordion panel.\n\t *\n\t * @constructor\n\t * @param {Element} panel The HTML element for the tab.\n\t * @param {MaterialExtAccordion} ctx The MaterialExtAccordion object that owns the panel.\n\t */\n\t function MaterialExtAccordionPanel(panel, ctx) {\n\t\n\t var header = panel.querySelector('.' + HEADER);\n\t if (header === null) {\n\t throw new Error('There must be a header element for each accordion panel.');\n\t }\n\t\n\t header.setAttribute('role', 'tab');\n\t\n\t var a = header.querySelector('a.' + HEADER_TABSTOP);\n\t if (a === null) {\n\t // An anchor is required for focus/tab stop\n\t a = document.createElement('a');\n\t a.href = '#';\n\t a.classList.add(HEADER_TABSTOP);\n\t header.appendChild(a);\n\t }\n\t\n\t panel.setAttribute('role', 'tabpanel');\n\t\n\t if (panel.hasAttribute('open')) {\n\t header.setAttribute('aria-expanded', '');\n\t } else {\n\t header.setAttribute('aria-hidden', '');\n\t }\n\t\n\t if (ctx.element_.classList.contains(RIPPLE_EFFECT)) {\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 header.addEventListener('click', function (event) {\n\t\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (!panel.hasAttribute('disabled')) {\n\t\n\t if (panel.hasAttribute('open')) {\n\t\n\t closePanel(panel, header);\n\t\n\t // Dispatch toggle event to accordion element\n\t dispatchToggleEvent('close', panel, ctx.element_);\n\t } else {\n\t if (ctx.element_.hasAttribute('aria-multiselectable') && 'false' === ctx.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\t\n\t var _openPanel = ctx.element_.querySelector('.' + PANEL + '[open]');\n\t if (_openPanel) {\n\t closePanel(_openPanel, _openPanel.querySelector('.' + HEADER));\n\t\n\t // Dispatch toggle event to accordion element\n\t dispatchToggleEvent('close', _openPanel, ctx.element_);\n\t }\n\t removeAriaSelectedAttribute();\n\t }\n\t\n\t openPanel(panel, header);\n\t\n\t // Dispatch toggle event to accordion element\n\t dispatchToggleEvent('open', panel, ctx.element_);\n\t }\n\t focus(panel);\n\t }\n\t }, true);\n\t\n\t header.addEventListener('keydown', function (event) {\n\t if (event.keyCode === VK_TAB || event.keyCode === VK_ENTER || 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 var panels = panel.parentNode.children;\n\t var nextPanel = null;\n\t var n = panel.parentNode.childElementCount - 1;\n\t\n\t for (var i = 0; i <= n; i++) {\n\t\n\t if (event.keyCode === VK_HOME) {\n\t nextPanel = panels[0];\n\t break;\n\t } else if (event.keyCode === VK_END) {\n\t nextPanel = panels[n];\n\t break;\n\t }\n\t\n\t if (panels[i] == panel) {\n\t if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n\t nextPanel = i > 0 ? panels[i - 1] : panels[n];\n\t } else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t nextPanel = i < n ? panels[i + 1] : panels[0];\n\t } else if (event.keyCode === VK_TAB) {\n\t if (event.shiftKey) {\n\t if (i > 0 && !panels[i - 1].hasAttribute('open')) {\n\t nextPanel = panels[i - 1];\n\t }\n\t } else if (i < n) {\n\t if (!panel.hasAttribute('open')) {\n\t nextPanel = panels[i + 1];\n\t }\n\t }\n\t } else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t // Trigger mouse click event for any attached listeners.\n\t var evt = new MouseEvent('click', {\n\t bubbles: true,\n\t cancelable: true,\n\t view: window\n\t });\n\t header.dispatchEvent(evt);\n\t }\n\t break;\n\t }\n\t }\n\t if (nextPanel) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t focus(nextPanel);\n\t }\n\t }\n\t }, true);\n\t\n\t panel.addEventListener('command_', function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t if (event.detail && event.detail.action) {\n\t var action = event.detail.action.toLowerCase();\n\t switch (action) {\n\t case 'open':\n\t openPanel(panel, header);\n\t break;\n\t case 'close':\n\t closePanel(panel, header);\n\t break;\n\t case 'toggle':\n\t togglePanel(panel, header);\n\t break;\n\t }\n\t }\n\t });\n\t\n\t function togglePanel(panel, header) {\n\t if (panel.hasAttribute('open')) {\n\t closePanel(panel, header);\n\t } else {\n\t openPanel(panel, header);\n\t }\n\t }\n\t\n\t function openPanel(panel, header) {\n\t if (!panel.hasAttribute('disabled')) {\n\t panel.setAttribute('open', '');\n\t header.setAttribute('aria-expanded', '');\n\t header.setAttribute('aria-selected', '');\n\t header.removeAttribute('aria-hidden', '');\n\t }\n\t }\n\t\n\t function closePanel(panel, header) {\n\t if (!panel.hasAttribute('disabled')) {\n\t panel.removeAttribute('open');\n\t header.removeAttribute('aria-expanded');\n\t header.setAttribute('aria-hidden', '');\n\t }\n\t }\n\t\n\t function removeAriaSelectedAttribute() {\n\t var selectedHeader = ctx.element_.querySelector('.' + HEADER + '[aria-selected]');\n\t if (selectedHeader) {\n\t selectedHeader.removeAttribute('aria-selected');\n\t }\n\t }\n\t\n\t function focus(nextPanel) {\n\t var a = nextPanel.querySelector('.' + HEADER + ' a');\n\t if (a) {\n\t removeAriaSelectedAttribute();\n\t a.focus();\n\t nextPanel.querySelector('.' + HEADER).setAttribute('aria-selected', '');\n\t }\n\t }\n\t\n\t function dispatchToggleEvent(state, source, target) {\n\t var evt = (0, _customEvent.createCustomEvent)('toggle', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: { state: state, source: source }\n\t });\n\t target.dispatchEvent(evt);\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\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 panel. 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/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _isInteger = __webpack_require__(26);\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__(50);\n\t\n\tvar _assign2 = _interopRequireDefault(_assign);\n\t\n\tvar _customEvent = __webpack_require__(6);\n\t\n\tvar _animationloop = __webpack_require__(23);\n\t\n\tvar _animationloop2 = _interopRequireDefault(_animationloop);\n\t\n\tvar _easing = __webpack_require__(24);\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_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 var 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.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 * @private\n\t */\n\t MaterialExtCarousel.prototype.animateScroll_ = function (newPosition, newDuration) {\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 new _animationloop2.default(33).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 return false;\n\t }\n\t });\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 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 break;\n\t\n\t case 'last':\n\t x = this.element_.scrollWidth - this.element_.clientWidth;\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 setFocus_(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);\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 _this3 = this;\n\t\n\t event.preventDefault();\n\t\n\t // Cancel slideshow if running\n\t this.cancelSlideShow_();\n\t\n\t //let updating = false;\n\t //let 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 _this3.element_.scrollLeft = Math.max(_this3.element_.scrollLeft + dx, 0);\n\t } else if (dx > 0) {\n\t _this3.element_.scrollLeft = Math.min(_this3.element_.scrollLeft + dx, _this3.element_.scrollWidth - _this3.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 update(e);\n\t\n\t //if(!updating) {\n\t // rAFDragId = window.requestAnimationFrame( () => update(e));\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 var x = e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0);\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 // cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/\n\t //window.cancelAnimationFrame(rAFDragId);\n\t\n\t // If mouse did not move, trigger custom select event\n\t if (Math.abs(startX - x) < 2) {\n\t var slide = getSlide_(targetElement);\n\t setFocus_(slide);\n\t _this3.emitSelectEvent_('click', null, slide);\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 * 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 slide has 'aria-selected', even if focus is lost\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 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 * 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 // Helpers\n\t var getSlide_ = function getSlide_(element) {\n\t if (!element || element.parentNode.tagName === undefined || element.classList.contains(CAROUSEL)) {\n\t return null;\n\t }\n\t return element.classList.contains(SLIDE) ? element : getSlide_(element.parentNode);\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\n\t slide.appendChild(rippleContainer);\n\t componentHandler.upgradeElement(rippleContainer, RIPPLE_COMPONENT);\n\t }\n\t };\n\t // End helpers\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 * @TODO Use mutation observer\n\t *\n\t * @public\n\t */\n\t MaterialExtCarousel.prototype.upgradeSlides = function () {\n\t var _this4 = 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 (_this4.config_.interactive) {\n\t if (!(0, _isInteger2.default)(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 _this5 = 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 // 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 // Slides collection\n\t this.upgradeSlides();\n\t\n\t if (this.config_.interactive) {\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), true);\n\t\n\t // Listen to drag events\n\t this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), true);\n\t this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), true);\n\t\n\t // Click is handled by drag\n\t this.element_.addEventListener('click', function (e) {\n\t return e.preventDefault();\n\t }, true);\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 in 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 _this5.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 // 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\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\n\t/**\n\t * Image carousel\n\t */\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t__webpack_require__(6);\n\t\n\t__webpack_require__(23);\n\t\n\t__webpack_require__(24);\n\t\n\t__webpack_require__(47);\n\t\n\t__webpack_require__(46);\n\t\n\t__webpack_require__(41);\n\t\n\t__webpack_require__(44);\n\t\n\t__webpack_require__(45);\n\t\n\t__webpack_require__(42);\n\n/***/ },\n/* 44 */\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_TAB = 9;\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 var LIGHTBOARD = 'mdlext-lightboard';\n\t var SLIDE = 'mdlext-lightboard__slide';\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 /**\n\t * Initialize lightboard slides\n\t *\n\t * @private\n\t */\n\t MaterialExtLightboard.prototype.initLightboard_ = function () {\n\t\n\t this.element_.setAttribute('role', 'grid');\n\t [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t return slide.setAttribute('role', 'cell');\n\t });\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 [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t return addRipple(slide);\n\t });\n\t }\n\t\n\t /**\n\t * Trigger when user cliks on a slide\n\t */\n\t this.element_.addEventListener('click', function (event) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t var slide = getSlide(event.target);\n\t\n\t if (event.target !== this) {\n\t focus(slide);\n\t\n\t // Remove 'aria-selected' attribute\n\t [].concat((0, _toConsumableArray3.default)(this.children)) // Should I use querySelectorAll ???\n\t .filter(function (panel) {\n\t return panel.hasAttribute('aria-selected');\n\t }).forEach(function (selected) {\n\t return selected.removeAttribute('aria-selected');\n\t });\n\t\n\t // Set 'aria-selected' on current slide\n\t slide.setAttribute('aria-selected', '');\n\t\n\t var evt = (0, _customEvent.createCustomEvent)('select', {\n\t bubbles: true,\n\t cancelable: true,\n\t detail: { source: slide }\n\t });\n\t this.dispatchEvent(evt);\n\t }\n\t }.bind(this.element_), true);\n\t\n\t /**\n\t * Trigger when user presses a keboard key\n\t */\n\t this.element_.addEventListener('keydown', function (event) {\n\t // Maybe this function should be throttled??\n\t if (event.keyCode === VK_TAB || event.keyCode === VK_ENTER || 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.target !== this) {\n\t var panel = getSlide(event.target);\n\t var panels = this.children;\n\t var nextPanel = null;\n\t var n = this.childElementCount - 1;\n\t\n\t for (var i = 0; i <= n; i++) {\n\t if (event.keyCode === VK_HOME) {\n\t nextPanel = panels[0];\n\t break;\n\t } else if (event.keyCode === VK_END) {\n\t nextPanel = panels[n];\n\t break;\n\t }\n\t\n\t if (panels[i] === panel) {\n\t if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n\t nextPanel = i > 0 ? panels[i - 1] : panels[n];\n\t } else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\t nextPanel = i < n ? panels[i + 1] : panels[0];\n\t } else if (event.keyCode === VK_TAB) {\n\t if (event.shiftKey) {\n\t if (i > 0) {\n\t nextPanel = panels[i - 1];\n\t }\n\t } else if (i < n) {\n\t nextPanel = panels[i + 1];\n\t }\n\t } else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t\n\t // Trigger mouse click event for any attached listeners.\n\t var evt = new MouseEvent('click', {\n\t bubbles: true,\n\t cancelable: true,\n\t view: window\n\t });\n\t panel.dispatchEvent(evt);\n\t }\n\t break;\n\t }\n\t }\n\t if (nextPanel) {\n\t event.preventDefault();\n\t event.stopPropagation();\n\t focus(nextPanel);\n\t }\n\t }\n\t }\n\t }.bind(this.element_), true);\n\t\n\t this.element_.classList.add(IS_UPGRADED);\n\t };\n\t\n\t function getSlide(element) {\n\t if (!element || element.classList.contains(LIGHTBOARD)) {\n\t return null;\n\t }\n\t return element.classList.contains(SLIDE) ? element : getSlide(element.parentNode);\n\t }\n\t\n\t function focus(slide) {\n\t if (slide) {\n\t var a = slide.querySelector('a.' + SLIDE_TABSTOP);\n\t if (a) {\n\t a.focus();\n\t }\n\t }\n\t }\n\t\n\t function addRipple(slide) {\n\t // Use anchor as ripple container\n\t var a = slide.querySelector('a.' + 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 * Initialize component\n\t */\n\t MaterialExtLightboard.prototype.init = function () {\n\t if (this.element_) {\n\t this.initLightboard_();\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 /* 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\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\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\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\tvar _isInteger = __webpack_require__(26);\n\t\n\tvar _isInteger2 = _interopRequireDefault(_isInteger);\n\t\n\tvar _slicedToArray2 = __webpack_require__(55);\n\t\n\tvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\t\n\tvar _entries = __webpack_require__(52);\n\t\n\tvar _entries2 = _interopRequireDefault(_entries);\n\t\n\tvar _getIterator2 = __webpack_require__(25);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\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_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_CLASS = 'mdlext-lightbox';\n\t var STICKY_FOOTER_CLASS = 'mdlext-lightbox--sticky-footer';\n\t var BUTTON_CLASS = '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;\n\t while ((n = n.parentNode) != null) {\n\t if (n.classList.contains(LIGHTBOX_CLASS)) {\n\t n.focus();\n\t break;\n\t }\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 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 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_CLASS));\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('mdlext-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('mdlext-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('mdlext-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('mdlext-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_CLASS))).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_CLASS}`)].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\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\n\t/**\n\t * Responsive Lightbox\n\t */\n\n/***/ },\n/* 46 */\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 /*jshint undef:false */\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/* 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 * 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 * @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/ru/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/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(56), __esModule: true };\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(58), __esModule: true };\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(60), __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) {\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/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(51);\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/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _isIterable2 = __webpack_require__(49);\n\t\n\tvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\t\n\tvar _getIterator2 = __webpack_require__(25);\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/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(22);\n\t__webpack_require__(89);\n\tmodule.exports = __webpack_require__(1).Array.from;\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(40);\n\t__webpack_require__(22);\n\tmodule.exports = __webpack_require__(87);\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(40);\n\t__webpack_require__(22);\n\tmodule.exports = __webpack_require__(88);\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(91);\n\tmodule.exports = __webpack_require__(1).Number.isInteger;\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(92);\n\tmodule.exports = __webpack_require__(1).Object.assign;\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(93);\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/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(94);\n\tmodule.exports = __webpack_require__(1).Object.entries;\n\n/***/ },\n/* 63 */\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/* 64 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 65 */\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__(37)\n\t , toIndex = __webpack_require__(85);\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/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $defineProperty = __webpack_require__(10)\r\n\t , createDesc = __webpack_require__(18);\r\n\t\r\n\tmodule.exports = function(object, index, value){\r\n\t if(index in object)$defineProperty.f(object, index, createDesc(0, value));\r\n\t else object[index] = value;\r\n\t};\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(4).document && document.documentElement;\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = !__webpack_require__(8) && !__webpack_require__(16)(function(){\r\n\t return Object.defineProperty(__webpack_require__(30)('div'), 'a', {get: function(){ return 7; }}).a != 7;\r\n\t});\n\n/***/ },\n/* 69 */\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/* 70 */\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/* 71 */\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/* 72 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar create = __webpack_require__(77)\n\t , descriptor = __webpack_require__(18)\n\t , setToStringTag = __webpack_require__(35)\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/* 73 */\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/* 74 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 75 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 76 */\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__(17)\n\t , gOPS = __webpack_require__(79)\n\t , pIE = __webpack_require__(34)\n\t , toObject = __webpack_require__(21)\n\t , IObject = __webpack_require__(32)\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__(16)(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/* 77 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\r\n\tvar anObject = __webpack_require__(7)\r\n\t , dPs = __webpack_require__(78)\r\n\t , enumBugKeys = __webpack_require__(31)\r\n\t , IE_PROTO = __webpack_require__(19)('IE_PROTO')\r\n\t , Empty = function(){ /* empty */ }\r\n\t , PROTOTYPE = 'prototype';\r\n\t\r\n\t// Create object with fake `null` prototype: use iframe Object with cleared prototype\r\n\tvar createDict = function(){\r\n\t // Thrash, waste and sodomy: IE GC bug\r\n\t var iframe = __webpack_require__(30)('iframe')\r\n\t , i = enumBugKeys.length\r\n\t , gt = '>'\r\n\t , iframeDocument;\r\n\t iframe.style.display = 'none';\r\n\t __webpack_require__(67).appendChild(iframe);\r\n\t iframe.src = 'javascript:'; // eslint-disable-line no-script-url\r\n\t // createDict = iframe.contentWindow.Object;\r\n\t // html.removeChild(iframe);\r\n\t iframeDocument = iframe.contentWindow.document;\r\n\t iframeDocument.open();\r\n\t iframeDocument.write(' i)dP.f(O, P = keys[i++], Properties[P]);\r\n\t return O;\r\n\t};\n\n/***/ },\n/* 79 */\n/***/ function(module, exports) {\n\n\texports.f = Object.getOwnPropertySymbols;\n\n/***/ },\n/* 80 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\r\n\tvar has = __webpack_require__(12)\r\n\t , toObject = __webpack_require__(21)\r\n\t , IE_PROTO = __webpack_require__(19)('IE_PROTO')\r\n\t , ObjectProto = Object.prototype;\r\n\t\r\n\tmodule.exports = Object.getPrototypeOf || function(O){\r\n\t O = toObject(O);\r\n\t if(has(O, IE_PROTO))return O[IE_PROTO];\r\n\t if(typeof O.constructor == 'function' && O instanceof O.constructor){\r\n\t return O.constructor.prototype;\r\n\t } return O instanceof Object ? ObjectProto : null;\r\n\t};\n\n/***/ },\n/* 81 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar has = __webpack_require__(12)\r\n\t , toIObject = __webpack_require__(14)\r\n\t , arrayIndexOf = __webpack_require__(65)(false)\r\n\t , IE_PROTO = __webpack_require__(19)('IE_PROTO');\r\n\t\r\n\tmodule.exports = function(object, names){\r\n\t var O = toIObject(object)\r\n\t , i = 0\r\n\t , result = []\r\n\t , key;\r\n\t for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\r\n\t // Don't enum bug & hidden keys\r\n\t while(names.length > i)if(has(O, key = names[i++])){\r\n\t ~arrayIndexOf(result, key) || result.push(key);\r\n\t }\r\n\t return result;\r\n\t};\n\n/***/ },\n/* 82 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getKeys = __webpack_require__(17)\n\t , toIObject = __webpack_require__(14)\n\t , isEnum = __webpack_require__(34).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/* 83 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(9);\n\n/***/ },\n/* 84 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(20)\n\t , defined = __webpack_require__(15);\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/* 85 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(20)\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/* 86 */\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/* 87 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(7)\n\t , get = __webpack_require__(39);\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/* 88 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(27)\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/* 89 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar ctx = __webpack_require__(29)\n\t , $export = __webpack_require__(3)\n\t , toObject = __webpack_require__(21)\n\t , call = __webpack_require__(71)\n\t , isArrayIter = __webpack_require__(69)\n\t , toLength = __webpack_require__(37)\n\t , createProperty = __webpack_require__(66)\n\t , getIterFn = __webpack_require__(39);\n\t\n\t$export($export.S + $export.F * !__webpack_require__(73)(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/* 90 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(64)\n\t , step = __webpack_require__(74)\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__(33)(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/* 91 */\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__(70)});\n\n/***/ },\n/* 92 */\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__(76)});\n\n/***/ },\n/* 93 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(3);\r\n\t// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\r\n\t$export($export.S + $export.F * !__webpack_require__(8), 'Object', {defineProperty: __webpack_require__(10).f});\n\n/***/ },\n/* 94 */\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__(82)(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/* 95 */\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 f2f092a30f1c6877444a\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 'use strict';\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 **/","// 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 = 15\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 = 16\n ** module chunks = 0 1\n **/","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\r\nvar $keys = require('./_object-keys-internal')\r\n , enumBugKeys = require('./_enum-bug-keys');\r\n\r\nmodule.exports = Object.keys || function keys(O){\r\n return $keys(O, enumBugKeys);\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys.js\n ** module id = 17\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 = 18\n ** module chunks = 0 1\n **/","var shared = require('./_shared')('keys')\r\n , uid = require('./_uid');\r\nmodule.exports = function(key){\r\n return shared[key] || (shared[key] = uid(key));\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_shared-key.js\n ** module id = 19\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 = 20\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 = 21\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 = 22\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 }\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 = 25\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 = 26\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 = 27\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 = 28\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 = 29\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 = 30\n ** module chunks = 0 1\n **/","// IE 8- don't enum bug keys\r\nmodule.exports = (\r\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\r\n).split(',');\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_enum-bug-keys.js\n ** module id = 31\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 = 32\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 = 33\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 = 34\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 = 35\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 = 36\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 = 37\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 = 38\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 = 39\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 = 40\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 panel. 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(function() {\n 'use strict';\n\n\n const RIPPLE_COMPONENT = 'MaterialRipple';\n const VK_TAB = 9;\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 PANEL = 'mdlext-accordion__panel';\n const HEADER = 'mdlext-accordion__panel__header';\n const HEADER_TABSTOP = 'mdlext-accordion__panel__header__tabstop';\n const IS_UPGRADED = 'is-upgraded';\n const RIPPLE = 'mdl-ripple';\n const RIPPLE_CONTAINER = 'mdlext-accordion__panel__header__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 /**\n * Class constructor for Accordion MDLEXT component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\n const MaterialExtAccordion = function MaterialExtAccordion(element) {\n // Stores the Accordion HTML element.\n this.element_ = element;\n\n // Initialize instance.\n this.init();\n };\n\n window['MaterialExtAccordion'] = MaterialExtAccordion;\n\n\n /**\n * Handles custom command event, 'open', 'close', or 'toggle'\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.detail && event.detail.action) {\n const action = event.detail.action.toLowerCase();\n\n if('open' === action || 'close' === action || 'toggle' === action) {\n\n if(event.detail.target === undefined) {\n\n if(this.element_.hasAttribute('aria-multiselectable') &&\n 'false' !== this.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\n [...this.element_.querySelectorAll(`.${PANEL}`)].forEach(panel => {\n panel.dispatchEvent(\n createCustomEvent('command_', {\n detail: {action: action}\n })\n );\n });\n }\n }\n else if (event.detail.target !== null) {\n\n event.detail.target.dispatchEvent(\n // Let the even bubble, in case the evnt is dispatched to a child element of the panel\n createCustomEvent('command_', {\n bubbles: true, detail: { action: action }\n })\n );\n }\n }\n }\n };\n\n /**\n * Initialize accordion's panels\n *\n * @private\n */\n MaterialExtAccordion.prototype.initAccordion_ = function() {\n\n this.element_.setAttribute('role', 'tablist');\n\n if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n\n [...this.element_.querySelectorAll(`.${PANEL}`)].forEach( panel => {\n new MaterialExtAccordionPanel(panel, this);\n });\n\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n this.element_.classList.add(IS_UPGRADED);\n };\n\n /**\n * Initialize Accordion element.\n */\n MaterialExtAccordion.prototype.init = function() {\n if (this.element_) {\n this.initAccordion_();\n }\n };\n\n\n /**\n * Constructor for an individual accordion panel.\n *\n * @constructor\n * @param {Element} panel The HTML element for the tab.\n * @param {MaterialExtAccordion} ctx The MaterialExtAccordion object that owns the panel.\n */\n function MaterialExtAccordionPanel(panel, ctx) {\n\n const header = panel.querySelector(`.${HEADER}`);\n if(header === null) {\n throw new Error('There must be a header element for each accordion panel.');\n }\n\n header.setAttribute('role', 'tab');\n\n let a = header.querySelector(`a.${HEADER_TABSTOP}`);\n if(a === null) {\n // An anchor is required for focus/tab stop\n a = document.createElement('a');\n a.href = '#';\n a.classList.add(HEADER_TABSTOP);\n header.appendChild(a);\n }\n\n panel.setAttribute('role', 'tabpanel');\n\n if(panel.hasAttribute('open')) {\n header.setAttribute('aria-expanded', '');\n }\n else {\n header.setAttribute('aria-hidden', '');\n }\n\n if (ctx.element_.classList.contains(RIPPLE_EFFECT)) {\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 header.addEventListener('click', ( event => {\n\n event.preventDefault();\n event.stopPropagation();\n\n if(!panel.hasAttribute('disabled')) {\n\n if(panel.hasAttribute('open')) {\n\n closePanel(panel, header);\n\n // Dispatch toggle event to accordion element\n dispatchToggleEvent('close', panel, ctx.element_);\n }\n else {\n if(ctx.element_.hasAttribute('aria-multiselectable') &&\n 'false' === ctx.element_.getAttribute('aria-multiselectable').toLowerCase()) {\n\n const openPanel = ctx.element_.querySelector(`.${PANEL}[open]`);\n if (openPanel) {\n closePanel(openPanel, openPanel.querySelector(`.${HEADER}`));\n\n // Dispatch toggle event to accordion element\n dispatchToggleEvent('close', openPanel, ctx.element_);\n }\n removeAriaSelectedAttribute();\n }\n\n openPanel(panel, header);\n\n // Dispatch toggle event to accordion element\n dispatchToggleEvent('open', panel, ctx.element_);\n }\n focus(panel);\n }\n }), true);\n\n\n header.addEventListener('keydown', ( event => {\n if (event.keyCode === VK_TAB\n || event.keyCode === VK_ENTER || 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 const panels = panel.parentNode.children;\n let nextPanel = null;\n const n = panel.parentNode.childElementCount - 1;\n\n for (let i = 0; i <= n; i++) {\n\n if (event.keyCode === VK_HOME) {\n nextPanel = panels[0];\n break;\n }\n else if (event.keyCode === VK_END) {\n nextPanel = panels[n];\n break;\n }\n\n if(panels[i] == panel) {\n if(event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n nextPanel = i > 0 ? panels[i-1] : panels[n];\n }\n else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n nextPanel = i < n ? panels[i+1] : panels[0];\n }\n else if (event.keyCode === VK_TAB) {\n if(event.shiftKey) {\n if(i > 0 && !panels[i-1].hasAttribute('open')) {\n nextPanel = panels[i-1];\n }\n }\n else if (i < n) {\n if(!panel.hasAttribute('open')) {\n nextPanel = panels[i+1];\n }\n }\n }\n else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n event.preventDefault();\n event.stopPropagation();\n\n // Trigger mouse click event for any attached listeners.\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n header.dispatchEvent(evt);\n }\n break;\n }\n }\n if(nextPanel) {\n event.preventDefault();\n event.stopPropagation();\n focus(nextPanel);\n }\n }\n }), true);\n\n panel.addEventListener('command_', ( event => {\n event.preventDefault();\n event.stopPropagation();\n\n if(event.detail && event.detail.action) {\n const action = event.detail.action.toLowerCase();\n switch (action) {\n case 'open':\n openPanel(panel, header);\n break;\n case 'close':\n closePanel(panel, header);\n break;\n case 'toggle':\n togglePanel(panel, header);\n break;\n }\n }\n }));\n\n\n function togglePanel(panel, header) {\n if(panel.hasAttribute('open')) {\n closePanel(panel, header);\n }\n else {\n openPanel(panel, header);\n }\n }\n\n function openPanel(panel, header) {\n if(!panel.hasAttribute('disabled')) {\n panel.setAttribute('open', '');\n header.setAttribute('aria-expanded', '');\n header.setAttribute('aria-selected', '');\n header.removeAttribute('aria-hidden', '');\n }\n }\n\n function closePanel(panel, header) {\n if(!panel.hasAttribute('disabled')) {\n panel.removeAttribute('open');\n header.removeAttribute('aria-expanded');\n header.setAttribute('aria-hidden', '');\n }\n }\n\n function removeAriaSelectedAttribute() {\n const selectedHeader = ctx.element_.querySelector(`.${HEADER}[aria-selected]`);\n if(selectedHeader) {\n selectedHeader.removeAttribute('aria-selected');\n }\n }\n\n function focus(nextPanel) {\n const a = nextPanel.querySelector(`.${HEADER} a`);\n if(a) {\n removeAriaSelectedAttribute();\n a.focus();\n nextPanel.querySelector(`.${HEADER}`).setAttribute('aria-selected', '');\n }\n }\n\n function dispatchToggleEvent(state, source, target) {\n const evt = createCustomEvent('toggle', {\n bubbles: true,\n cancelable: true,\n detail: { state: state, source: source }\n });\n target.dispatchEvent(evt);\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 { 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.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 * @private\n */\n MaterialExtCarousel.prototype.animateScroll_ = function( newPosition, newDuration ) {\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 new MdlExtAnimationLoop(33).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 return false;\n }\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 break;\n\n case 'last':\n x = this.element_.scrollWidth - this.element_.clientWidth;\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 setFocus_(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);\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 update(e);\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 const x = e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0);\n\n window.removeEventListener('mousemove', drag);\n window.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 // If mouse did not move, trigger custom select event\n if(Math.abs(startX-x) < 2) {\n const slide = getSlide_(targetElement);\n setFocus_(slide);\n this.emitSelectEvent_('click', null, slide);\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 * 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 slide has 'aria-selected', even if focus is lost\n [...this.element_.querySelectorAll(`.${SLIDE}[aria-selected]`)].forEach(\n slide => slide.removeAttribute('aria-selected')\n );\n slide.setAttribute('aria-selected', '');\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 * 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 // Helpers\n const getSlide_ = element => {\n if (!element || element.parentNode.tagName === undefined || element.classList.contains(CAROUSEL)) {\n return null;\n }\n return element.classList.contains(SLIDE) ? element : getSlide_(element.parentNode);\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\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 * @TODO Use mutation observer\n *\n * @public\n */\n MaterialExtCarousel.prototype.upgradeSlides = function() {\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 (!Number.isInteger(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 // 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 // Slides collection\n this.upgradeSlides();\n\n if(this.config_.interactive) {\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), true);\n\n // Listen to drag events\n this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), true);\n this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), true);\n\n // Click is handled by drag\n this.element_.addEventListener('click', e => e.preventDefault(), true);\n }\n\n // Listen to custom 'command' event\n this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n // Detect insertions in 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\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';\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 { createCustomEvent } from '../utils/custom-event';\n\n(function() {\n 'use strict';\n\n const VK_TAB = 9;\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 SLIDE = 'mdlext-lightboard__slide';\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 * Initialize lightboard slides\n *\n * @private\n */\n MaterialExtLightboard.prototype.initLightboard_ = function() {\n\n this.element_.setAttribute('role', 'grid');\n [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach(\n slide => slide.setAttribute('role', 'cell')\n );\n\n if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n this.element_.classList.add(RIPPLE_EFFECT_IGNORE_EVENTS);\n\n [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach(\n slide => addRipple(slide)\n );\n }\n\n /**\n * Trigger when user cliks on a slide\n */\n this.element_.addEventListener('click', ( function(event) {\n event.preventDefault();\n event.stopPropagation();\n const slide = getSlide(event.target);\n\n if(event.target !== this) {\n focus(slide);\n\n // Remove 'aria-selected' attribute\n [...this.children] // Should I use querySelectorAll ???\n .filter( panel => panel.hasAttribute('aria-selected'))\n .forEach( selected => selected.removeAttribute('aria-selected'));\n\n // Set 'aria-selected' on current slide\n slide.setAttribute('aria-selected', '');\n\n const evt = createCustomEvent('select', {\n bubbles: true,\n cancelable: true,\n detail: { source: slide }\n });\n this.dispatchEvent(evt);\n }\n }).bind(this.element_), true);\n\n /**\n * Trigger when user presses a keboard key\n */\n this.element_.addEventListener('keydown', ( function(event) {\n // Maybe this function should be throttled??\n if (event.keyCode === VK_TAB\n || event.keyCode === VK_ENTER || 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.target !== this) {\n const panel = getSlide(event.target);\n const panels = this.children;\n let nextPanel = null;\n const n = this.childElementCount - 1;\n\n for (let i = 0; i <= n; i++) {\n if (event.keyCode === VK_HOME) {\n nextPanel = panels[0];\n break;\n }\n else if (event.keyCode === VK_END) {\n nextPanel = panels[n];\n break;\n }\n\n if (panels[i] === panel) {\n if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n nextPanel = i > 0 ? panels[i - 1] : panels[n];\n }\n else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n nextPanel = i < n ? panels[i + 1] : panels[0];\n }\n else if (event.keyCode === VK_TAB) {\n if (event.shiftKey) {\n if (i > 0) {\n nextPanel = panels[i - 1];\n }\n }\n else if (i < n) {\n nextPanel = panels[i + 1];\n }\n }\n else if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n event.preventDefault();\n event.stopPropagation();\n\n // Trigger mouse click event for any attached listeners.\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n panel.dispatchEvent(evt);\n }\n break;\n }\n }\n if (nextPanel) {\n event.preventDefault();\n event.stopPropagation();\n focus(nextPanel);\n }\n }\n }\n }).bind(this.element_), true);\n\n this.element_.classList.add(IS_UPGRADED);\n };\n\n function getSlide(element) {\n if (!element || element.classList.contains(LIGHTBOARD)) {\n return null;\n }\n return element.classList.contains(SLIDE) ? element : getSlide(element.parentNode);\n }\n\n function focus(slide) {\n if(slide) {\n const a = slide.querySelector(`a.${SLIDE_TABSTOP}`);\n if (a) {\n a.focus();\n }\n }\n }\n\n function addRipple(slide) {\n // Use anchor as ripple container\n const a = slide.querySelector(`a.${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 * Initialize component\n */\n MaterialExtLightboard.prototype.init = function() {\n if (this.element_) {\n this.initLightboard_();\n }\n };\n\n // The component registers itself. It can assume componentHandler is available\n // in the global scope.\n /* eslint no-undef: 0 */\n /* jshint undef:false */\n componentHandler.register({\n constructor: MaterialExtLightboard,\n classAsString: 'MaterialExtLightboard',\n cssClass: 'mdlext-js-lightboard',\n widget: true\n });\n})();\n\n\n\n/** 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 { 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_CLASS = 'mdlext-lightbox';\n const STICKY_FOOTER_CLASS = 'mdlext-lightbox--sticky-footer';\n const BUTTON_CLASS = '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 let n = this;\n while((n = n.parentNode) != null) {\n if(n.classList.contains(LIGHTBOX_CLASS)) {\n n.focus();\n break;\n }\n }\n }\n };\n\n /**\n * Dispatches an action custom event\n * @param action\n * @param source\n * @param target\n * @private\n */\n function 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 function 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_CLASS));\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('mdlext-lightbox__slider');\n setStyles(slider, {'width': `${img.offsetWidth}px`, 'height': `${img.offsetHeight}px`} );\n\n let slide = document.createElement('div');\n slide.classList.add('mdlext-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('mdlext-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('mdlext-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_CLASS}`)].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_CLASS}`)].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 /*jshint undef:false */\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/ru/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 = 48\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 = 49\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 = 50\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 = 51\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 = 52\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 = 53\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 = 54\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 = 55\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 = 56\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 = 57\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 = 58\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 = 59\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 = 60\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 = 61\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 = 62\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 = 63\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 = 64\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 = 65\n ** module chunks = 0 1\n **/","'use strict';\r\nvar $defineProperty = require('./_object-dp')\r\n , createDesc = require('./_property-desc');\r\n\r\nmodule.exports = function(object, index, value){\r\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\r\n else object[index] = value;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_create-property.js\n ** module id = 66\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 = 67\n ** module chunks = 0 1\n **/","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\r\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\r\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_ie8-dom-define.js\n ** module id = 68\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 = 69\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 = 70\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 = 71\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 = 72\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 = 73\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 = 74\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 = 75\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 = 76\n ** module chunks = 0 1\n **/","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\r\nvar anObject = require('./_an-object')\r\n , dPs = require('./_object-dps')\r\n , enumBugKeys = require('./_enum-bug-keys')\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\r\n , Empty = function(){ /* empty */ }\r\n , PROTOTYPE = 'prototype';\r\n\r\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\r\nvar createDict = function(){\r\n // Thrash, waste and sodomy: IE GC bug\r\n var iframe = require('./_dom-create')('iframe')\r\n , i = enumBugKeys.length\r\n , gt = '>'\r\n , iframeDocument;\r\n iframe.style.display = 'none';\r\n require('./_html').appendChild(iframe);\r\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\r\n // createDict = iframe.contentWindow.Object;\r\n // html.removeChild(iframe);\r\n iframeDocument = iframe.contentWindow.document;\r\n iframeDocument.open();\r\n iframeDocument.write(' i)dP.f(O, P = keys[i++], Properties[P]);\r\n return O;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-dps.js\n ** module id = 78\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 = 79\n ** module chunks = 0 1\n **/","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\r\nvar has = require('./_has')\r\n , toObject = require('./_to-object')\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\r\n , ObjectProto = Object.prototype;\r\n\r\nmodule.exports = Object.getPrototypeOf || function(O){\r\n O = toObject(O);\r\n if(has(O, IE_PROTO))return O[IE_PROTO];\r\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\r\n return O.constructor.prototype;\r\n } return O instanceof Object ? ObjectProto : null;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-gpo.js\n ** module id = 80\n ** module chunks = 0 1\n **/","var has = require('./_has')\r\n , toIObject = require('./_to-iobject')\r\n , arrayIndexOf = require('./_array-includes')(false)\r\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\r\n\r\nmodule.exports = function(object, names){\r\n var O = toIObject(object)\r\n , i = 0\r\n , result = []\r\n , key;\r\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\r\n // Don't enum bug & hidden keys\r\n while(names.length > i)if(has(O, key = names[i++])){\r\n ~arrayIndexOf(result, key) || result.push(key);\r\n }\r\n return result;\r\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/library/modules/_object-keys-internal.js\n ** module id = 81\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 = 82\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 = 83\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 = 84\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 = 85\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 = 86\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 = 87\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 = 88\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 = 89\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 = 90\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 = 91\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 = 92\n ** module chunks = 0 1\n **/","var $export = require('./_export');\r\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\r\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 = 93\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 = 94\n ** module chunks = 0 1\n **/"],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/carousel/carousel.js b/src/carousel/carousel.js
index 37cd872..2934cd7 100644
--- a/src/carousel/carousel.js
+++ b/src/carousel/carousel.js
@@ -341,8 +341,9 @@ import { inOutQuintic } from '../utils/easing';
// Cancel slideshow if running
this.cancelSlideShow_();
- let updating = false;
- let rAFDragId = 0;
+ //let updating = false;
+ //let rAFDragId = 0;
+
const startX = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);
let prevX = startX;
const targetElement = event.target;
@@ -359,16 +360,18 @@ import { inOutQuintic } from '../utils/easing';
}
prevX = currentX;
- updating = false;
+ //updating = false;
};
// drag handler
const drag = e => {
e.preventDefault();
- if(!updating) {
- rAFDragId = window.requestAnimationFrame( () => update(e));
- updating = true;
- }
+ update(e);
+
+ //if(!updating) {
+ // rAFDragId = window.requestAnimationFrame( () => update(e));
+ // updating = true;
+ //}
};
// end drag handler
@@ -382,7 +385,7 @@ import { inOutQuintic } from '../utils/easing';
window.removeEventListener('touchend', endDrag);
// cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/
- window.cancelAnimationFrame(rAFDragId);
+ //window.cancelAnimationFrame(rAFDragId);
// If mouse did not move, trigger custom select event
if(Math.abs(startX-x) < 2) {
diff --git a/src/carousel/snippets/carousel.html b/src/carousel/snippets/carousel.html
index 1143b77..63ee4c6 100644
--- a/src/carousel/snippets/carousel.html
+++ b/src/carousel/snippets/carousel.html
@@ -504,7 +504,7 @@ Carousel
-