epfl-elements 4.9.2 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/content-types/study-plan/study-plan.yml +0 -2
- package/dist/css/elements.css +903 -3141
- package/dist/css/elements.min.css +1 -1
- package/dist/css/elements.min.css.map +1 -1
- package/dist/css/reader.css +33 -128
- package/dist/css/reader.min.css +1 -1
- package/dist/css/reader.min.css.map +1 -1
- package/dist/docs/contribute/support-and-request.html +7 -8
- package/dist/icons/icons.svg +1 -1
- package/dist/js/elements.js +1 -251
- package/dist/js/elements.min.js +1 -1
- package/dist/js/elements.min.js.LICENSE.txt +0 -2
- package/dist/js/elements.min.js.map +1 -1
- package/dist/js/reader.js +225 -215
- package/dist/js/reader.min.js +1 -1
- package/dist/js/reader.min.js.map +1 -1
- package/dist/package.json +12 -12
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js/elements.min.js","mappings":"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","sources":["webpack://epfl-elements/./node_modules/core-js/internals/a-function.js","webpack://epfl-elements/./node_modules/core-js/internals/a-possible-prototype.js","webpack://epfl-elements/./node_modules/core-js/internals/add-to-unscopables.js","webpack://epfl-elements/./node_modules/core-js/internals/advance-string-index.js","webpack://epfl-elements/./node_modules/core-js/internals/an-object.js","webpack://epfl-elements/./node_modules/core-js/internals/array-from.js","webpack://epfl-elements/./node_modules/core-js/internals/array-includes.js","webpack://epfl-elements/./node_modules/core-js/internals/array-iteration.js","webpack://epfl-elements/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://epfl-elements/./node_modules/core-js/internals/array-method-is-strict.js","webpack://epfl-elements/./node_modules/core-js/internals/array-species-create.js","webpack://epfl-elements/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://epfl-elements/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://epfl-elements/./node_modules/core-js/internals/classof-raw.js","webpack://epfl-elements/./node_modules/core-js/internals/classof.js","webpack://epfl-elements/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://epfl-elements/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://epfl-elements/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://epfl-elements/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://epfl-elements/./node_modules/core-js/internals/create-property-descriptor.js","webpack://epfl-elements/./node_modules/core-js/internals/create-property.js","webpack://epfl-elements/./node_modules/core-js/internals/define-iterator.js","webpack://epfl-elements/./node_modules/core-js/internals/descriptors.js","webpack://epfl-elements/./node_modules/core-js/internals/document-create-element.js","webpack://epfl-elements/./node_modules/core-js/internals/engine-user-agent.js","webpack://epfl-elements/./node_modules/core-js/internals/engine-v8-version.js","webpack://epfl-elements/./node_modules/core-js/internals/enum-bug-keys.js","webpack://epfl-elements/./node_modules/core-js/internals/export.js","webpack://epfl-elements/./node_modules/core-js/internals/fails.js","webpack://epfl-elements/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://epfl-elements/./node_modules/core-js/internals/function-bind-context.js","webpack://epfl-elements/./node_modules/core-js/internals/get-built-in.js","webpack://epfl-elements/./node_modules/core-js/internals/get-iterator-method.js","webpack://epfl-elements/./node_modules/core-js/internals/get-substitution.js","webpack://epfl-elements/./node_modules/core-js/internals/global.js","webpack://epfl-elements/./node_modules/core-js/internals/has.js","webpack://epfl-elements/./node_modules/core-js/internals/hidden-keys.js","webpack://epfl-elements/./node_modules/core-js/internals/html.js","webpack://epfl-elements/./node_modules/core-js/internals/ie8-dom-define.js","webpack://epfl-elements/./node_modules/core-js/internals/indexed-object.js","webpack://epfl-elements/./node_modules/core-js/internals/inspect-source.js","webpack://epfl-elements/./node_modules/core-js/internals/internal-state.js","webpack://epfl-elements/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://epfl-elements/./node_modules/core-js/internals/is-array.js","webpack://epfl-elements/./node_modules/core-js/internals/is-forced.js","webpack://epfl-elements/./node_modules/core-js/internals/is-object.js","webpack://epfl-elements/./node_modules/core-js/internals/is-pure.js","webpack://epfl-elements/./node_modules/core-js/internals/is-regexp.js","webpack://epfl-elements/./node_modules/core-js/internals/iterator-close.js","webpack://epfl-elements/./node_modules/core-js/internals/iterators-core.js","webpack://epfl-elements/./node_modules/core-js/internals/iterators.js","webpack://epfl-elements/./node_modules/core-js/internals/native-symbol.js","webpack://epfl-elements/./node_modules/core-js/internals/native-weak-map.js","webpack://epfl-elements/./node_modules/core-js/internals/object-create.js","webpack://epfl-elements/./node_modules/core-js/internals/object-define-properties.js","webpack://epfl-elements/./node_modules/core-js/internals/object-define-property.js","webpack://epfl-elements/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://epfl-elements/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://epfl-elements/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://epfl-elements/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://epfl-elements/./node_modules/core-js/internals/object-keys-internal.js","webpack://epfl-elements/./node_modules/core-js/internals/object-keys.js","webpack://epfl-elements/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://epfl-elements/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://epfl-elements/./node_modules/core-js/internals/object-to-string.js","webpack://epfl-elements/./node_modules/core-js/internals/own-keys.js","webpack://epfl-elements/./node_modules/core-js/internals/path.js","webpack://epfl-elements/./node_modules/core-js/internals/redefine.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-exec.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-flags.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://epfl-elements/./node_modules/core-js/internals/require-object-coercible.js","webpack://epfl-elements/./node_modules/core-js/internals/set-global.js","webpack://epfl-elements/./node_modules/core-js/internals/set-to-string-tag.js","webpack://epfl-elements/./node_modules/core-js/internals/shared-key.js","webpack://epfl-elements/./node_modules/core-js/internals/shared-store.js","webpack://epfl-elements/./node_modules/core-js/internals/shared.js","webpack://epfl-elements/./node_modules/core-js/internals/species-constructor.js","webpack://epfl-elements/./node_modules/core-js/internals/string-multibyte.js","webpack://epfl-elements/./node_modules/core-js/internals/to-absolute-index.js","webpack://epfl-elements/./node_modules/core-js/internals/to-indexed-object.js","webpack://epfl-elements/./node_modules/core-js/internals/to-integer.js","webpack://epfl-elements/./node_modules/core-js/internals/to-length.js","webpack://epfl-elements/./node_modules/core-js/internals/to-object.js","webpack://epfl-elements/./node_modules/core-js/internals/to-primitive.js","webpack://epfl-elements/./node_modules/core-js/internals/to-string-tag-support.js","webpack://epfl-elements/./node_modules/core-js/internals/uid.js","webpack://epfl-elements/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://epfl-elements/./node_modules/core-js/internals/well-known-symbol.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.concat.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.find.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.from.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.join.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.map.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.slice.js","webpack://epfl-elements/./node_modules/core-js/modules/es.function.name.js","webpack://epfl-elements/./node_modules/core-js/modules/es.object.to-string.js","webpack://epfl-elements/./node_modules/core-js/modules/es.regexp.exec.js","webpack://epfl-elements/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://epfl-elements/./node_modules/core-js/modules/es.string.iterator.js","webpack://epfl-elements/./node_modules/core-js/modules/es.string.match.js","webpack://epfl-elements/./node_modules/core-js/modules/es.string.replace.js","webpack://epfl-elements/./node_modules/core-js/modules/es.string.split.js","webpack://epfl-elements/./node_modules/desandro-matches-selector/matches-selector.js","webpack://epfl-elements/./node_modules/ev-emitter/ev-emitter.js","webpack://epfl-elements/./node_modules/fizzy-ui-utils/utils.js","webpack://epfl-elements/./node_modules/flickity-as-nav-for/as-nav-for.js","webpack://epfl-elements/./node_modules/flickity-fullscreen/fullscreen.js","webpack://epfl-elements/./node_modules/flickity/js/add-remove-cell.js","webpack://epfl-elements/./node_modules/flickity/js/animate.js","webpack://epfl-elements/./node_modules/flickity/js/cell.js","webpack://epfl-elements/./node_modules/flickity/js/drag.js","webpack://epfl-elements/./node_modules/flickity/js/flickity.js","webpack://epfl-elements/./node_modules/flickity/js/index.js","webpack://epfl-elements/./node_modules/flickity/js/lazyload.js","webpack://epfl-elements/./node_modules/flickity/js/page-dots.js","webpack://epfl-elements/./node_modules/flickity/js/player.js","webpack://epfl-elements/./node_modules/flickity/js/prev-next-button.js","webpack://epfl-elements/./node_modules/flickity/js/slide.js","webpack://epfl-elements/./node_modules/get-size/get-size.js","webpack://epfl-elements/./node_modules/imagesloaded/imagesloaded.js","webpack://epfl-elements/./node_modules/object-fit-images/dist/ofi.common-js.js","webpack://epfl-elements/./node_modules/unidragger/unidragger.js","webpack://epfl-elements/./node_modules/unipointer/unipointer.js","webpack://epfl-elements/webpack/bootstrap","webpack://epfl-elements/webpack/runtime/compat get default export","webpack://epfl-elements/webpack/runtime/define property getters","webpack://epfl-elements/webpack/runtime/global","webpack://epfl-elements/webpack/runtime/hasOwnProperty shorthand","webpack://epfl-elements/./assets/components/molecules/datepicker/datepicker-fancy.js","webpack://epfl-elements/./assets/icons/svg-icons.js","webpack://epfl-elements/./assets/components/organisms/nav-main/nav-main.js","webpack://epfl-elements/./assets/components/organisms/cookie-consent/cookie-consent.js","webpack://epfl-elements/./assets/components/organisms/footer/back-to-top-button.js","webpack://epfl-elements/./assets/components/organisms/restauration/restauration.js","webpack://epfl-elements/./assets/components/entrypoint.js","webpack://epfl-elements/./assets/components/content-types/coursebook/coursebook.js","webpack://epfl-elements/./assets/components/molecules/breadcrumb/breadcrumb.js","webpack://epfl-elements/./assets/components/atoms/range/range.js","webpack://epfl-elements/./assets/components/molecules/gallery/gallery.js","webpack://epfl-elements/./assets/components/atoms/upload/upload.js","webpack://epfl-elements/./assets/components/atoms/select/select-multiple.js","webpack://epfl-elements/./assets/components/atoms/tag/tag-input.js","webpack://epfl-elements/./assets/components/molecules/datepicker/datepicker.js","webpack://epfl-elements/./assets/components/atoms/popover/popover.js","webpack://epfl-elements/./assets/components/molecules/search/search.js","webpack://epfl-elements/./assets/components/molecules/search/search-mobile.js","webpack://epfl-elements/./assets/components/molecules/social/social.js","webpack://epfl-elements/./assets/components/organisms/card-slider/card-slider.js","webpack://epfl-elements/./assets/components/atoms/drawer/drawer.js","webpack://epfl-elements/./assets/components/content-types/study-plan/study-plan.js","webpack://epfl-elements/./assets/components/pages/lab-homepage/lab-homepage.js","webpack://epfl-elements/./assets/components/anchors.js"],"sourcesContent":["module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(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 (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\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","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\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","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $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 $defineProperty(O, P, Attributes);\n } catch (error) { /* 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","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\n/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(str) {\n var re = this;\n var state = getInternalState(re);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = patchedExec.call(raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\nvar RE = function (s, f) {\n return RegExp(s, f);\n};\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\n var re = RegExp('.', (typeof '').charAt(0));\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError\n var re = RegExp('(?<a>b)', (typeof '').charAt(5));\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.15.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\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 (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var res = maybeCallNative(nativeMatch, this, string);\n if (res.done) return res.value;\n\n var rx = anObject(this);\n var S = String(string);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n if (\n typeof replaceValue === 'string' &&\n replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, this, string, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(this);\n var S = String(string);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var res = maybeCallNative(internalSplit, this, string, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(this);\n var S = String(string);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","/*!\n * Flickity asNavFor v2.0.1\n * enable asNavFor for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'fizzy-ui-utils/utils'\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( Flickity, utils ) {\n\n'use strict';\n\n// -------------------------- asNavFor prototype -------------------------- //\n\n// Flickity.defaults.asNavFor = null;\n\nFlickity.createMethods.push('_createAsNavFor');\n\nvar proto = Flickity.prototype;\n\nproto._createAsNavFor = function() {\n this.on( 'activate', this.activateAsNavFor );\n this.on( 'deactivate', this.deactivateAsNavFor );\n this.on( 'destroy', this.destroyAsNavFor );\n\n var asNavForOption = this.options.asNavFor;\n if ( !asNavForOption ) {\n return;\n }\n // HACK do async, give time for other flickity to be initalized\n var _this = this;\n setTimeout( function initNavCompanion() {\n _this.setNavCompanion( asNavForOption );\n });\n};\n\nproto.setNavCompanion = function( elem ) {\n elem = utils.getQueryElement( elem );\n var companion = Flickity.data( elem );\n // stop if no companion or companion is self\n if ( !companion || companion == this ) {\n return;\n }\n\n this.navCompanion = companion;\n // companion select\n var _this = this;\n this.onNavCompanionSelect = function() {\n _this.navCompanionSelect();\n };\n companion.on( 'select', this.onNavCompanionSelect );\n // click\n this.on( 'staticClick', this.onNavStaticClick );\n\n this.navCompanionSelect( true );\n};\n\nproto.navCompanionSelect = function( isInstant ) {\n if ( !this.navCompanion ) {\n return;\n }\n // select slide that matches first cell of slide\n var selectedCell = this.navCompanion.selectedCells[0];\n var firstIndex = this.navCompanion.cells.indexOf( selectedCell );\n var lastIndex = firstIndex + this.navCompanion.selectedCells.length - 1;\n var selectIndex = Math.floor( lerp( firstIndex, lastIndex,\n this.navCompanion.cellAlign ) );\n this.selectCell( selectIndex, false, isInstant );\n // set nav selected class\n this.removeNavSelectedElements();\n // stop if companion has more cells than this one\n if ( selectIndex >= this.cells.length ) {\n return;\n }\n\n var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 );\n this.navSelectedElements = selectedCells.map( function( cell ) {\n return cell.element;\n });\n this.changeNavSelectedClass('add');\n};\n\nfunction lerp( a, b, t ) {\n return ( b - a ) * t + a;\n}\n\nproto.changeNavSelectedClass = function( method ) {\n this.navSelectedElements.forEach( function( navElem ) {\n navElem.classList[ method ]('is-nav-selected');\n });\n};\n\nproto.activateAsNavFor = function() {\n this.navCompanionSelect( true );\n};\n\nproto.removeNavSelectedElements = function() {\n if ( !this.navSelectedElements ) {\n return;\n }\n this.changeNavSelectedClass('remove');\n delete this.navSelectedElements;\n};\n\nproto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) {\n if ( typeof cellIndex == 'number' ) {\n this.navCompanion.selectCell( cellIndex );\n }\n};\n\nproto.deactivateAsNavFor = function() {\n this.removeNavSelectedElements();\n};\n\nproto.destroyAsNavFor = function() {\n if ( !this.navCompanion ) {\n return;\n }\n this.navCompanion.off( 'select', this.onNavCompanionSelect );\n this.off( 'staticClick', this.onNavStaticClick );\n delete this.navCompanion;\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n}));\n","/*!\n * Flickity fullscreen v1.1.1\n * Enable fullscreen view for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity')\n );\n } else {\n // browser global\n factory(\n window.Flickity\n );\n }\n\n}( window, function factory( Flickity ) {\n\n'use strict';\n\nFlickity.createMethods.push('_createFullscreen');\nvar proto = Flickity.prototype;\n\n\nproto._createFullscreen = function() {\n this.isFullscreen = false;\n\n if ( !this.options.fullscreen ) {\n return;\n }\n // buttons\n this.viewFullscreenButton = new FullscreenButton( 'view', this );\n this.exitFullscreenButton = new FullscreenButton( 'exit', this );\n\n this.on( 'activate', this._changeFullscreenActive );\n this.on( 'deactivate', this._changeFullscreenActive );\n};\n\n// ----- activation ----- //\n\nproto._changeFullscreenActive = function() {\n var childMethod = this.isActive ? 'appendChild' : 'removeChild';\n this.element[ childMethod ]( this.viewFullscreenButton.element );\n this.element[ childMethod ]( this.exitFullscreenButton.element );\n // activate or deactivate buttons\n var activeMethod = this.isActive ? 'activate' : 'deactivate';\n this.viewFullscreenButton[ activeMethod ]();\n this.exitFullscreenButton[ activeMethod ]();\n};\n\n// ----- view, exit, toggle ----- //\n\nproto.viewFullscreen = function() {\n this._changeFullscreen( true );\n this.focus();\n};\n\nproto.exitFullscreen = function() {\n this._changeFullscreen( false );\n};\n\nproto._changeFullscreen = function( isView ) {\n if ( this.isFullscreen == isView ) {\n return;\n }\n this.isFullscreen = isView;\n var classMethod = isView ? 'add' : 'remove';\n document.documentElement.classList[ classMethod ]('is-flickity-fullscreen');\n this.element.classList[ classMethod ]('is-fullscreen');\n this.resize();\n // HACK extra reposition on fullscreen for images\n if ( this.isFullscreen ) {\n this.reposition();\n }\n this.dispatchEvent( 'fullscreenChange', null, [ isView ] );\n};\n\nproto.toggleFullscreen = function() {\n this._changeFullscreen( !this.isFullscreen );\n};\n\n// ----- setGallerySize ----- //\n\n// overwrite so fullscreen cells are full height\nvar setGallerySize = proto.setGallerySize;\nproto.setGallerySize = function() {\n if ( !this.options.setGallerySize ) {\n return;\n }\n if ( this.isFullscreen ) {\n // remove height style on fullscreen\n this.viewport.style.height = '';\n } else {\n // otherwise, do normal\n setGallerySize.call( this );\n }\n};\n\n// ----- keyboard ----- //\n\n// ESC key closes full screen\nFlickity.keyboardHandlers[27] = function() {\n this.exitFullscreen();\n};\n\n// ----- FullscreenButton ----- //\n\nfunction FullscreenButton( name, flickity ) {\n this.name = name;\n this.createButton();\n this.createIcon();\n // events\n // trigger viewFullscreen or exitFullscreen on click\n this.onClick = function() {\n flickity[ name + 'Fullscreen' ]();\n };\n this.clickHandler = this.onClick.bind( this );\n}\n\nFullscreenButton.prototype.createButton = function() {\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-fullscreen-button ' +\n 'flickity-fullscreen-button-' + this.name;\n // prevent button from submitting form\n element.setAttribute( 'type', 'button' );\n // set label\n var label = capitalize( this.name + ' full-screen' );\n element.setAttribute( 'aria-label', label );\n element.title = label;\n};\n\nfunction capitalize( text ) {\n return text[0].toUpperCase() + text.slice(1);\n}\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\nvar pathDirections = {\n view: 'M15,20,7,28h5v4H0V20H4v5l8-8Zm5-5,8-8v5h4V0H20V4h5l-8,8Z',\n exit: 'M32,3l-7,7h5v4H18V2h4V7l7-7ZM3,32l7-7v5h4V18H2v4H7L0,29Z',\n};\n\nFullscreenButton.prototype.createIcon = function() {\n var svg = document.createElementNS( svgURI, 'svg');\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 32 32' );\n // path & direction\n var path = document.createElementNS( svgURI, 'path');\n var direction = pathDirections[ this.name ];\n path.setAttribute( 'd', direction );\n // put it together\n svg.appendChild( path );\n this.element.appendChild( svg );\n};\n\nFullscreenButton.prototype.activate = function() {\n this.element.addEventListener( 'click', this.clickHandler );\n};\n\nFullscreenButton.prototype.deactivate = function() {\n this.element.removeEventListener( 'click', this.clickHandler );\n};\n\nFlickity.FullscreenButton = FullscreenButton;\n\n// ----- fin ----- //\n\nreturn Flickity;\n\n}));\n","// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n'use strict';\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\n if ( index === 0 ) {\n // prepend, add to start\n this.cells = cells.concat( this.cells );\n } else if ( isAppend ) {\n // append, add to end\n this.cells = this.cells.concat( cells );\n } else {\n // insert in this.cells\n var endCells = this.cells.splice( index, len - index );\n this.cells = this.cells.concat( cells ).concat( endCells );\n }\n\n this._sizeCells( cells );\n this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach( function( cell ) {\n cell.remove();\n var index = this.cells.indexOf( cell );\n minCellIndex = Math.min( index, minCellIndex );\n utils.removeFrom( this.cells, cell );\n }, this );\n\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n'use strict';\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n if ( this.options.percentPosition ) {\n // percent position, round to 2 digits, like 12.34%\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n } else {\n // pixel positioning\n return Math.round( position ) + 'px';\n }\n};\n\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n for ( var i = 0; i < cells.length; i++ ) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift( cellShift );\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n","// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n'use strict';\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n this.element.style.position = 'absolute';\n this.element.setAttribute( 'aria-hidden', 'true' );\n this.x = 0;\n this.shift = 0;\n};\n\nproto.destroy = function() {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[ side ] = '';\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n // render position of cell with in slider\n var side = this.parent.originSide;\n this.element.style[ side ] = this.parent.getPositionValue( x );\n};\n\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n","// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unidragger, utils ) {\n return factory( window, Flickity, Unidragger, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n'use strict';\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nvar isTouch = 'createTouch' in document;\nvar isTouchmoveScrollCanceled = false;\n\nproto._createDrag = function() {\n this.on( 'activate', this.onActivateDrag );\n this.on( 'uiChange', this._uiChangeDrag );\n this.on( 'deactivate', this.onDeactivateDrag );\n this.on( 'cellChange', this.updateDraggable );\n // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n if ( isTouch && !isTouchmoveScrollCanceled ) {\n window.addEventListener( 'touchmove', function() {} );\n isTouchmoveScrollCanceled = true;\n }\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n // disable dragging if less than 2 slides. #278\n if ( this.options.draggable == '>1' ) {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if ( !this.options.wrapAround && this.slides.length ) {\n // slow drag\n var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if ( this.options.freeScroll && !this.options.wrapAround ) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\n };\n while ( condition( distance, minDistance ) ) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance( -restingX, index );\n if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100 ) {\n return 0;\n }\n\n var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n var delta = this.previousDragX - this.dragX;\n if ( distance > 0 && delta > 0 ) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if ( distance < 0 && delta < 0 ) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell( event.target );\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n'use strict';\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\n for ( var eventName in this.options.on ) {\n var listener = this.options.on[ eventName ];\n this.on( eventName, listener );\n }\n\n Flickity.createMethods.forEach( function( method ) {\n this[ method ]();\n }, this );\n\n if ( this.options.watchCSS ) {\n this.watchCSS();\n } else {\n this.activate();\n }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[ this.originSide ] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for ( var i = index; i < len; i++ ) {\n var cell = this.cells[i];\n cell.setPosition( cellX );\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\n if ( !this.cells.length ) {\n return;\n }\n\n var slide = new Slide( this );\n this.slides.push( slide );\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach( function( cell, i ) {\n // just add cell if first cell in slide\n if ( !slide.cells.length ) {\n slide.addCell( cell );\n return;\n }\n\n var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n if ( canCellFit.call( this, i, slideWidth ) ) {\n slide.addCell( cell );\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\n if ( !groupCells ) {\n return function() {\n return false;\n };\n } else if ( typeof groupCells == 'number' ) {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt( groupCells, 10 );\n return function( i ) {\n return ( i % number ) !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\n this.slides.forEach( function( slide ) {\n if ( isContentSmaller ) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max( slide.target, beginBound );\n slide.target = Math.min( slide.target, endBound );\n }\n }, this );\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery && this.$element ) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\n var delta = Math.abs( wrapIndex - this.selectedIndex );\n var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n // get index of slides that has cell\n for ( var i = 0; i < this.slides.length; i++ ) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf( cell );\n if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n // loop through cells to get the one that matches\n for ( var i = 0; i < this.cells.length; i++ ) {\n var cell = this.cells[i];\n if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n var slide = this.slides[ slideIndex ];\n if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n if ( !this.isActive ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[ leftMethod ]();\n },\n // right arrow\n 39: function() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[ rightMethod ]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Flickity v2.2.2\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n","// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n // check if cell element is lazy image\n if ( cellElem.nodeName == 'IMG' ) {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n","// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n'use strict';\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.prototype.addDots = function( count ) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for ( var i = length; i < max; i++ ) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n fragment.appendChild( dot );\n newDots.push( dot );\n }\n\n this.holder.appendChild( fragment );\n this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n // remove selected class on previous\n if ( this.selectedDot ) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\n }\n this.selectedDot = this.dots[ this.parent.selectedIndex ];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\n if ( target.nodeName != 'LI' ) {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf( target );\n this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\n this.on( 'activate', this.activatePageDots );\n this.on( 'select', this.updateSelectedPageDots );\n this.on( 'cellChange', this.updatePageDots );\n this.on( 'resize', this.updatePageDots );\n this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n","// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], function( EvEmitter, utils, Flickity ) {\n return factory( EvEmitter, utils, Flickity );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n'use strict';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function() {\n // do not tick if not playing\n if ( this.state != 'playing' ) {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\n this.on( 'activate', this.activatePlayer );\n this.on( 'uiChange', this.stopPlayer );\n this.on( 'pointerDown', this.stopPlayer );\n this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n","// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n var svg = document.createElementNS( svgURI, 'svg' );\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 100 100' );\n var path = document.createElementNS( svgURI, 'path' );\n var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n path.setAttribute( 'd', pathMovements );\n path.setAttribute( 'class', 'arrow' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n if ( !this.options.prevNextButtons ) {\n return;\n }\n\n this.prevButton = new PrevNextButton( -1, this );\n this.nextButton = new PrevNextButton( 1, this );\n\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n","// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n'use strict';\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n var queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = extend( {}, this.options );\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName == 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\n _this.progress( image, elem, message );\n });\n }\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount == this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( 'progress: ' + message, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ( 'ontouchstart' in window ) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","/* globals $ */\n\nexport default () => {\n // initialise booleans to enable or disable js mobile features, based on css breakpoints\n let isMobile = false;\n let showLastMonthWeek = false;\n let initialWeek = false;\n const now = new Date();\n const timestamp = new Date(now.getFullYear(), now.getMonth(), now.getDate()) / 1;\n\n /*\n * define if all dates in a row are disabled\n */\n function isRowDisabled(weekNum, container) {\n const disabledCount = $(`tbody tr:nth-child(${weekNum}) .picker__day--outfocus`, container)\n .length;\n if (disabledCount === 7) {\n return true;\n }\n return false;\n }\n\n /*\n * Custom managemet of prev / next on mobile\n */\n function handlePrevNext(container, selected) {\n let weekNum = $('tr', container).index($('tr:has(.picker__day--selected)', container));\n if (initialWeek) {\n weekNum = initialWeek;\n initialWeek = false;\n }\n\n // only setup listeners when on mobile\n if (!isMobile) return container;\n\n if (showLastMonthWeek) {\n // handle display last week of the month after clicking prev\n showLastMonthWeek = false;\n weekNum = 6;\n if (isRowDisabled(6, container)) {\n weekNum = 5;\n }\n }\n\n // initialise data attibute\n $('tbody', container).attr('data-week', weekNum);\n\n $('.picker__nav--next', container).on('click', (e) => {\n if (weekNum < 6 && !isRowDisabled(weekNum + 1, container)) {\n // if we are not displaying the last row:\n // disable built-in behaviour and update data attribute\n e.stopPropagation();\n weekNum += 1;\n $('tbody', container).css('transition', 'left 0.4s');\n $('tbody', container).attr('data-week', weekNum);\n } else {\n // let plugin proceed to next month\n\n // reset week index\n weekNum = 1;\n }\n });\n\n $('.picker__nav--prev', container).on('click', (e) => {\n if (weekNum > 1) {\n // if we are not displaying the first row:\n // disable built-in behaviour and update visual to show previous week\n e.stopPropagation();\n weekNum -= 1;\n $('tbody', container).css('transition', 'left 0.4s');\n $('tbody', container).attr('data-week', weekNum);\n } else {\n // let plugin proceed to previous month\n\n // set flag to display last week of month at next render\n showLastMonthWeek = true;\n }\n });\n\n // enable transitions only when prev/next arrow are clicked\n $('.picker__day', container).each(function () {\n $(this).on('click', function () {\n $(this)\n .parent()\n .parent()\n .parent()\n .css('transition', 'left 0s');\n });\n });\n }\n\n /*\n * Focus today\n */\n function selectToday(picker) {\n // select today's week on initialisation\n picker.set('select', [now.getFullYear(), now.getMonth(), now.getDate()]);\n }\n\n /*\n * Display correct month labels on the side of the desktop version\n */\n function handleMonthLabels(picker, months) {\n const alreadyHandled = $('.nextMonthLabel', picker.$holder).length > 0;\n if (alreadyHandled) {\n return true;\n }\n\n const wrapper = picker.component.$node.parent();\n const next = $('.nextMonthLabel', wrapper);\n const prev = $('.prevMonthLabel', wrapper);\n\n let nextMonthIndex = picker.component.item.view.month + 1;\n if (nextMonthIndex === months.length) nextMonthIndex = 0;\n\n let prevMonthIndex = picker.component.item.view.month - 1;\n if (prevMonthIndex < 0) prevMonthIndex = 11;\n\n next.html(months[nextMonthIndex]);\n prev.html(months[prevMonthIndex]);\n\n $('.picker__box', picker.$root).append(next.clone());\n $('.picker__box', picker.$root).append(prev.clone());\n }\n\n /*\n * handle custom highlights\n */\n function setHighlights(container) {\n // we check all displayed dates, and highlight the ones we want to\n $('.picker__day--infocus', container).each(function () {\n const currentTimestamp = $(this).data('pick');\n const date = new Date(currentTimestamp);\n const dateString = `${date.getFullYear()}-${`0${date.getMonth() + 1}`.slice(-2)}-${`0${date.getDate()}`.slice(-2)}`;\n\n // this is arbitrary. change this with personal logic when needed and add you own class\n if (dateString === '2018-03-28') {\n $(this).addClass('custom-highlight');\n }\n });\n }\n\n /*\n * INIT datepicket-event\n */\n $('.datepicker-fancy').each(function () {\n const monthsShort = [\n 'Jan',\n 'Fév',\n 'Mar',\n 'Avr',\n 'Mai',\n 'Jui',\n 'Jui',\n 'Aoû',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Déc',\n ];\n const container = $(this).parent();\n $(this).pickadate({\n monthsFull: [\n 'Janvier',\n 'Février',\n 'Mars',\n 'Avril',\n 'Mai',\n 'Juin',\n 'Juillet',\n 'Août',\n 'Septembre',\n 'Octobre',\n 'Novembre',\n 'Décembre',\n ],\n monthsShort,\n weekdaysFull: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],\n weekdaysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],\n labelMonthNext: 'Prochain mois',\n labelMonthPrev: 'Mois précédent',\n labelMonthSelect: 'Sélectionnez un mois',\n labelYearSelect: 'Sélectionnez une année',\n format: 'd mmmm yyyy',\n firstDay: 1,\n today: '',\n clear: '',\n close: '',\n onRender() {\n handleMonthLabels(this, monthsShort);\n\n if (isMobile) {\n // refresh listeners after render\n handlePrevNext(container);\n }\n },\n onStart() {\n selectToday(this);\n setHighlights(this);\n\n // focus on today's week on start\n const selected = $('tr:has(.picker__day--selected)', container);\n if (selected.length > 0) {\n initialWeek = $('tr', container).index(selected);\n }\n\n // enable mobile behaviour when needed\n isMobile = $('.datepicker-fancy + .picker table').css('display') === 'block';\n }\n });\n });\n};\n","const svgIcons = () => {\n loadIcons(window.svgPath || 'icons/icons.svg');\n loadIcons(window.featherSvgPath || 'icons/feather-sprite.svg');\n};\n\nexport default svgIcons;\n\nfunction loadIcons (svgPath) {\n const ajax = new XMLHttpRequest();\n ajax.open('GET', svgPath, true);\n ajax.send();\n ajax.onload = function (e) {\n if (e.target.status === 200) {\n const div = document.createElement('div');\n div.setAttribute('style', 'display: none');\n div.innerHTML = ajax.responseText;\n document.body.insertAdjacentElement('beforeend', div);\n }\n };\n}\n","/* global $ */\n\nconst nav = () => {\n // declare classes used to identify current menu and its parents (based on wordpress classes)\n const activeClass = 'current-menu-parent';\n const parentClass = 'current-menu-ancestor';\n\n // toggle mobile navigation\n const toggleMobileMenu = () => {\n // handle correct menu display when on level 0 page on mobile\n const firstLeveItem = $('.nav-main .nav-menu>.current-menu-item');\n if (firstLeveItem.length > 0) {\n const parent = firstLeveItem.parents()[1];\n $(parent).addClass(activeClass);\n }\n\n $('body').toggleClass('mobile-menu-open');\n };\n\n // Open or close desktop toggle navigation, keeping its actual position.\n // Used for the hamburger desktop menu to display current position\n const toggleDesktopMenu = (mustOpen = false) => {\n const navToggle = $('.nav-toggle');\n navToggle.toggleClass('open');\n const offsetX = navToggle.offset().left + navToggle.outerWidth(true);\n const offsetY = navToggle.offset().top - $(window).scrollTop();\n $('.nav-main').css('top', offsetY);\n\n $('body').toggleClass('desktop-menu-open');\n if (mustOpen && $('body').hasClass('desktop-menu-open')) {\n $('.nav-main').css('left', offsetX);\n } else {\n $('.nav-main').css('left', '');\n }\n };\n\n // moves the navigation one level up when clicking a \"back\" link\n // eslint-disable-next-line\n $('.nav-main .nav-back a').on('click', function(e) {\n e.preventDefault();\n\n const parents = $(this).parents();\n\n const parent = parents[2];\n $(parent)\n .removeClass(parentClass)\n .removeClass(activeClass);\n\n const ancestor = parents[4];\n $(ancestor)\n .removeClass(parentClass)\n .addClass(activeClass);\n });\n\n /*\n move the navigation one level down,\n when clicking the \"show children\" arrow on the right of a menu item\n */\n // eslint-disable-next-line\n $('.nav-main .nav-arrow').on('click', function(e) {\n e.preventDefault();\n\n const parents = $(this).parents();\n\n const parent = parents[0];\n $(parent).addClass(activeClass);\n\n const ancestor = parents[2];\n $(ancestor)\n .addClass(parentClass)\n .removeClass(activeClass);\n });\n\n // bind action to mobile menu toggle\n $('.nav-toggle-mobile').on('click', () => {\n toggleMobileMenu();\n });\n\n // Bind action to close toggle navigation, when clicking the white overlay\n $('.overlay').on('click', (e) => {\n e.preventDefault();\n toggleDesktopMenu();\n });\n\n // Bind action to the desktop hamburger (next to breadcrumbs)\n // eslint-disable-next-line\n $('.nav-toggle').on('click', function() {\n if ($(this).hasClass('nav-toggle-async') && !$(this).hasClass('open')) {\n $(this).addClass('is-loading');\n\n // Demo of loading resolution\n if ($('#styleguide').length > 0) {\n setTimeout(() => $('.nav-toggle-async').trigger('loadend'), 700);\n }\n } else {\n toggleDesktopMenu(true);\n }\n });\n\n // eslint-disable-next-line\n $('.nav-toggle').on('loadend', function() {\n $(this).removeClass('is-loading');\n toggleDesktopMenu(true);\n });\n};\n\nexport default nav;\n","/* globals jQuery */\n\nlet bannerElement\nfunction cookieConsent(opt_visible) {\n if (bannerElement) {\n setVisibility(bannerElement, opt_visible)\n } else {\n window.cookieconsent.initialise(\n get_cookieconsent_config(),\n (popup) => {\n bannerElement = popup.element\n setVisibility(bannerElement, opt_visible)\n },\n (err) => console.error(err)\n )\n window.cookieconsent.initialise = (() => { })\n }\n}\n\njQuery.fn.extend({ cookieConsent })\nexport default cookieConsent\n\nfunction setVisibility(cookieBanner, visible) {\n if (visible === true) {\n jQuery(cookieBanner).show().removeClass(\"cc-invisible\")\n } else if (visible === false) {\n jQuery(cookieBanner).hide().addClass(\"cc-invisible\")\n }\n}\n\nfunction get_cookieconsent_config() {\n // Translation\n const cookieI18n = {\n en: {\n msg: 'When you access EPFL websites, we may set cookies on your '\n + 'devices and process personal data about you in accordance with '\n + 'our <a tabindex=\"0\" class=\"cc-link\" target=\"_blank\" '\n + 'href=\"//go.epfl.ch/privacy-policy\">privacy policy</a>. '\n + 'You can block cookies by using your browser settings.'\n },\n fr: {\n msg: 'Lorsque vous accédez aux sites web de l\\'EPFL, nous pouvons '\n + 'installer des cookies sur vos appareils et traiter des données '\n + 'personnelles vous concernant conformément à notre '\n + '<a tabindex=\"0\" class=\"cc-link\" target=\"_blank\" '\n + 'href=\"//go.epfl.ch/protection-des-donnees\">'\n + 'politique de confidentialité</a>. Vous pouvez bloquer les '\n + 'cookies à l\\'aide des paramètres de votre navigateur.'\n },\n de: {\n msg: 'Wenn Sie auf die Websites der EPFL zugreifen, können wir in '\n + 'Übereinstimmung mit unserer '\n + '<a tabindex=\"0\" class=\"cc-link\" target=\"_blank\" '\n + 'href=\"//go.epfl.ch/privacy-policy\">Datenschutzerklärung</a> '\n + 'Cookies auf Ihren Geräten speichern und Personendaten bearbeiten. '\n + 'Über die Einstellungen in Ihrem Browser können Sie Cookies '\n + 'blockieren.',\n }\n };\n // Retrieve language, default 'fr'\n const langAttribute = document.documentElement.lang;\n let lang = langAttribute.substring(0, 2);\n if (!cookieI18n[lang]) {\n lang = 'fr';\n }\n\n // Retrieve the domain\n // Don't work with google.co.uk for example\n let domain_name = 'epfl.ch';\n const hostame = window.location.hostname;\n if (hostame === 'localhost' || hostame === '127.0.0.1') {\n domain_name = hostame;\n } else {\n const hostParts = hostame.split('.').reverse();\n if (hostParts[0] !== undefined && hostParts[1] !== undefined) {\n domain_name = `${hostParts[1]}.${hostParts[0]}`;\n }\n }\n\n const config = {\n theme: 'classic',\n palette: {\n popup: {\n background: 'rgba(69, 69, 69, 0.96)'\n },\n button: {\n background: '#b51f1f'\n }\n },\n content: {\n message: cookieI18n[lang].msg,\n dismiss: 'OK',\n },\n showLink: false,\n cookie: {\n name: 'petitpois', // Chosen by a magical unicorn!\n domain: domain_name,\n autoAttach: false // attach it manually to the end, or SEO will crawl it before any content\n }\n }\n return config;\n}\n","/* globals $ */\n\n\nexport default () => {\n\n const backToTopBtn = $('#back-to-top');\n\n $(window).scroll(function() {\n if ($(window).scrollTop() > 500) {\n backToTopBtn.addClass('show');\n } else {\n backToTopBtn.removeClass('show');\n }\n });\n\n backToTopBtn.on('click', function(e) {\n e.preventDefault();\n $('html, body').animate({scrollTop:0}, '300');\n });\n\n};\n","/* globals $ */\n\nexport const nutrimenuScore = [\n 'E', 'D-', 'D', 'D+', 'C-', 'C', 'C+', 'B-', 'B', 'B+', 'A-', 'A', 'A+'];\n\nexport default () => {\n const slider = $('#nutrimenu-score');\n const output = $(\"output[for='nutrimenu-score']\");\n\n if (slider.length > 0 && output.length > 0) {\n // eslint-disable-next-line radix\n output.val(nutrimenuScore[parseInt(slider.val()) - 1]);\n\n slider.on('input', function () {\n // eslint-disable-next-line radix\n output.val(nutrimenuScore[parseInt($(this).val()) - 1]);\n });\n }\n};\n","/* globals jQuery, Tablesaw */\n\nimport objectFitImages from 'object-fit-images';\nimport upload from './atoms/upload/upload';\nimport breadcrumb from './molecules/breadcrumb/breadcrumb';\nimport datepicker from './molecules/datepicker/datepicker';\nimport datepickerEvent from './molecules/datepicker/datepicker-fancy';\nimport popover from './atoms/popover/popover';\nimport gallery from './molecules/gallery/gallery';\nimport social from './molecules/social/social';\nimport selectMultiple from './atoms/select/select-multiple';\nimport tagInput from './atoms/tag/tag-input';\nimport cardSlider from './organisms/card-slider/card-slider';\nimport svgIcons from '../icons/svg-icons';\nimport nav from './organisms/nav-main/nav-main.js';\nimport drawer from './atoms/drawer/drawer.js';\nimport search from './molecules/search/search.js';\nimport searchMobile from './molecules/search/search-mobile.js';\nimport coursebook from './content-types/coursebook/coursebook.js';\nimport studyplan from './content-types/study-plan/study-plan.js';\nimport cookieconsent from './organisms/cookie-consent/cookie-consent.js';\nimport backToTopBtn from './organisms/footer/back-to-top-button.js';\nimport anchors from './anchors';\nimport rangeSlider from './atoms/range/range.js';\nimport restauration from './organisms/restauration/restauration';\n\nimport guide from './guide.js';\n\njQuery.fn.extend({\n epflElements () {\n upload();\n selectMultiple();\n tagInput();\n datepicker();\n datepickerEvent();\n popover();\n gallery();\n search();\n searchMobile();\n social();\n coursebook();\n Tablesaw.init();\n cardSlider();\n svgIcons();\n nav();\n drawer();\n breadcrumb();\n cookieconsent();\n backToTopBtn();\n rangeSlider();\n restauration();\n studyplan();\n\n guide();\n anchors();\n\n // Init polyfill for Object Fit on IE11\n const isIE11 = !!window.MSInputMethodContext && !!document.documentMode;\n if (isIE11) {\n objectFitImages();\n jQuery('body').addClass('ie');\n }\n\n }\n});\n\n// Run that once the page is done loading:\njQuery(jQuery.fn.epflElements);\n","/* global $ */\n\nexport default () => {\n const id = new Date().getTime().toString(16);\n $('.coursebook-program .tree>li').each((i, collapse) => {\n\n // identify toggle and target\n const toggle = $('.underline a', collapse);\n const target = $('>ul', collapse);\n\n // generate page-unique id\n const itemId = `${id}-${i}`;\n\n // set correct attributes\n target.addClass('collapse collapse-item collapse-item-desktop');\n toggle.addClass('collapse-title collapse-title-desktop collapsed');\n target.attr('id', itemId);\n toggle.attr('data-target', `#${itemId}`);\n toggle.attr('data-toggle', 'collapse');\n\n // automatically add full width buttons at the end of the collapse\n const link = $('<a></a>');\n link.addClass('btn btn-block btn-sm btn-primary my-3');\n link.html(\"Voir le plan d'études\");\n link.attr('href', toggle.attr('href'));\n target.append(link);\n });\n};\n","/* globals $ */\n\nexport default () => {\n const expandBreadcrumb = $('.btn-expand-links');\n const breadcrumbDropToggle = $('.dropdown-toggle');\n\n // add class 'has-expanded-links'\n expandBreadcrumb.on('click', () => {\n $('.breadcrumb-wrapper .breadcrumb').addClass('has-expanded-links');\n });\n\n // improve dropdown position\n breadcrumbDropToggle.on('click', (e) => {\n const btnPos = $(e.currentTarget).offset().left;\n const documentWitdh = $(document).width();\n const dropdown = $(e.currentTarget).siblings('.dropdown-menu');\n const dropdownWidth = dropdown.width();\n const btnOffset = documentWitdh - btnPos;\n\n // remove class 'open-left' from all .dropdown-menu elements\n $('.dropdown-menu').removeClass('open-left');\n // add the class back if the dropdown is too close to the right side of the window\n if (dropdownWidth > btnOffset) {\n dropdown.addClass('open-left');\n }\n });\n};\n","export default () => {\n // Create colored progress bar for damn webkit browsers >.<\n\n const rangeSlider = document.querySelector('input[type=range]');\n\n if (rangeSlider) {\n rangeSlider.style.setProperty('--val', +rangeSlider.value);\n rangeSlider.style.setProperty('--max', +rangeSlider.max);\n rangeSlider.style.setProperty('--min', +rangeSlider.min);\n\n rangeSlider.addEventListener('input', () => {\n rangeSlider.style.setProperty('--val', +rangeSlider.value);\n }, false);\n }\n};\n","/* globals $ */\n\nimport Flickity from 'flickity';\nimport 'flickity-fullscreen';\nimport 'flickity-as-nav-for';\nimport 'imagesloaded';\n\nfunction setFlickityOnGallery($gallery) {\n const $items = $gallery.find('.gallery-item');\n\n // Toggle opacity to avoid load blink\n $gallery.addClass('ready');\n\n // Add counter\n $items.each(function (i) {\n $(this).find('figcaption')\n .append(`\n <span class=\"gallery-counter\">${i + 1}/${$items.length}</span>\n `);\n });\n\n // Instantiate Flickity gallery\n new Flickity($gallery.get(0), {\n pageDots: false,\n fullscreen: true,\n setGallerySize: true,\n arrowShape: 'M14.2,45.8L53,7.1c1.6-1.6,1.6-4.3,0-5.9s-4.3-1.6-5.9,0L1.2,47c-1.6,1.6-1.6,4.3,0,5.9c0,0,0,0,0,0l45.8,45.8c1.6,1.6,4.3,1.6,5.9,0s1.6-4.3,0-5.9L14.2,54.1h81.6c2.3,0,4.2-1.9,4.2-4.2s-1.9-4.2-4.2-4.2H14.2z',\n });\n\n // Replace fullscreen icons\n $('.flickity-fullscreen-button-view svg path')\n .attr(\n 'd',\n 'M32,11.9h-2.7V6.5H24V3.8h8V11.9z M24,28.2v-2.7h5.3v-5.4H32v8.2H24z M0,20.1h2.7v5.4H8v2.7H0V20.1z M8,3.8v2.7H2.7v5.4H0V3.8H8z',\n );\n $('.flickity-fullscreen-button-exit svg path')\n .attr(\n 'd',\n 'M18.1,16l13.4,13.4c0.6,0.6,0.6,1.5,0,2.1c-0.6,0.6-1.5,0.6-2.1,0L16,18.1L2.6,31.6c-0.6,0.6-1.5,0.6-2.1,0c-0.6-0.6-0.6-1.5,0-2.1l0,0L13.9,16L0.4,2.6C-0.1,2-0.1,1,0.4,0.4s1.5-0.6,2.1,0L16,13.9L29.4,0.4c0.6-0.6,1.5-0.6,2.1,0c0.6,0.6,0.6,1.5,0,2.1L18.1,16z',\n );\n\n // Improve prev/next buttons position\n const height = $gallery.find('.gallery-item.is-selected img')\n .height();\n $gallery.find('.flickity-prev-next-button')\n .css('top', `${height / 2}px`);\n}\n\nfunction setFlickityGalleryNav($galleryNav) {\n $galleryNav.imagesLoaded()\n .always(function (instance) {\n const target = $galleryNav.data('gallery');\n\n // Toggle opacity to avoid load blink\n $galleryNav.addClass('ready');\n\n // Instantiate Flickity nav\n new Flickity($galleryNav.get(0), {\n asNavFor: `#${target}`,\n cellAlign: 'left',\n pageDots: false,\n prevNextButtons: false,\n contain: true,\n });\n })\n .fail(function () {\n console.log(`one image is broken for a gallery nav`);\n });\n}\n\nexport default () => {\n const $galleries = $('.gallery');\n\n // Base gallery logic\n if ($galleries.length > 0) {\n console.log('starting to gallerynav');\n $galleries.each(function (i) {\n $(this).imagesLoaded()\n .always(function (instance) {\n setFlickityOnGallery($($galleries[i]));\n\n // once the galary is loaded, try to find any nav linked for the current gallery\n const $galleryNavs = $(`.gallery-nav[data-gallery='${$galleries[i].id}']`);\n\n if ($galleryNavs.length > 0) {\n $galleryNavs.each(function (j) {\n setFlickityGalleryNav($($galleryNavs[j], $galleries[i].id));\n });\n }\n })\n .fail(function () {\n console.log(`one image is broken for a gallery`);\n });\n });\n }\n};\n","/* globals $ */\n\nexport default () => {\n $('.upload').find('input[type=\"file\"]').each(function () {\n const $input = $(this);\n const $preview = $input.next().next('.upload-preview');\n\n $input.on('change', () => {\n const files = $input[0].files;\n let previewContent = files[0].name;\n\n if (files.length > 1) {\n previewContent = `<ul>${Array.from(files).map(file => `<li>${file.name}</li>`).join().replace(/,/g, '')}</ul>`;\n }\n\n $preview.html(previewContent);\n });\n });\n};\n\n","/* globals $ */\n\nexport default () => {\n $('.select-multiple').each((index, element) => {\n $(element).multipleSelect({\n placeholder: $(element).attr('data-placeholder') || '',\n width: '100%',\n });\n });\n};\n","/* globals $ */\n\nexport default () => {\n $('.tag-input').selectize({\n plugins: ['remove_button'],\n render: {\n item: (data, escape) => `<div class=\"tag tag-primary\">${escape(data.text)}</div>`,\n },\n create: input => ({\n value: input,\n text: input,\n }),\n });\n};\n","/* globals $ */\n\nexport default () => {\n $('.datepicker').pickadate({\n monthsFull: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],\n monthsShort: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jui', 'Jui', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc'],\n weekdaysFull: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],\n weekdaysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],\n labelMonthNext: 'Prochain mois',\n labelMonthPrev: 'Mois précédent',\n labelMonthSelect: 'Sélectionnez un mois',\n labelYearSelect: 'Sélectionnez une année',\n format: 'd mmmm yyyy',\n firstDay: 1,\n today: '',\n clear: '',\n close: '',\n });\n};\n","/* globals $ */\n\nexport default () => {\n $(function () {\n $('[data-toggle=\"popover\"]').popover({\n placement: 'top',\n html: true,\n offset: -135,\n template: '<div class=\"popover\" role=\"tooltip\"><div class=\"popover-body\"></div></div>',\n });\n });\n};\n\n","/* global $ */\n\nexport default () => {\n $('.search').on('shown.bs.dropdown', () => {\n $('.search input[type=\"text\"]').trigger('focus');\n });\n};\n","/* global $ */\n\nexport default () => {\n\n $('#search-mobile-toggle').on('click', () => {\n\n const searchContainer = $('.search-mobile');\n const searchField = searchContainer.find('.form-control');\n\n searchContainer.toggleClass('show');\n $('body').toggleClass('search-open');\n\n if (searchContainer.hasClass('show')) {\n searchField.trigger('focus');\n }\n\n });\n\n $('#search-mobile-close').on('click', () => {\n\n const searchContainer = $('.search-mobile');\n\n searchContainer.removeClass('show');\n $('body').removeClass('search-open');\n\n });\n\n};\n","/* globals $, ClipboardJS */\n\nexport default () => {\n $('.social-share-copy').each(function () {\n const copyBtn = $(this);\n const baseText = copyBtn.text();\n const successText = copyBtn.data('success');\n const clipboard = new ClipboardJS(copyBtn[0], {\n target: (trigger) => {\n return $(trigger).prev(\"input\")[0];\n },\n });\n\n clipboard.on('success', (e) => {\n $(e.trigger).text(successText);\n setTimeout(() => $(e.trigger).text(baseText), 3000);\n\n e.clearSelection();\n });\n });\n};\n","/* globals $ */\n\nimport Flickity from 'flickity';\nimport Imagesloaded from 'imagesloaded';\n\nexport default () => {\n if ($('.card-slider-wrapper').length > 0) {\n // Mobile width corresponds to SM breakpoint from Bootstrap.\n const isMobile = $(window).width() < 768;\n\n $( \".card-slider-wrapper\" ).each( ( index, cardSliderWrapper ) => {\n let flkty;\n let cardSlider = $(cardSliderWrapper).find('.card-slider')[0];\n\n Imagesloaded(cardSlider, () => {\n flkty = new Flickity(cardSlider, {\n cellAlign: 'left',\n setGallerySize: true,\n pageDots: isMobile,\n prevNextButtons: false,\n contain: true,\n groupCells: false,\n });\n\n $(cardSliderWrapper).find('#card-slider-prev').on('click', () => {\n flkty.previous();\n });\n\n $(cardSliderWrapper).find('#card-slider-next').on('click', () => {\n flkty.next();\n });\n\n $(cardSliderWrapper).find('.card-slider-cell').css('height', '100%');\n\n flkty.on('select', () => {\n $(cardSliderWrapper).find('.card-slider-btn').removeClass('disabled');\n\n if (flkty.selectedIndex === 0) {\n $(cardSliderWrapper).find('#card-slider-prev').addClass('disabled');\n }\n\n if (\n flkty.selectedIndex + 1 === flkty.slides.length ||\n flkty.selectedIndex + 2 === flkty.slides.length\n ) {\n $(cardSliderWrapper).find('#card-slider-next').addClass('disabled');\n }\n });\n\n });\n });\n }\n};\n","/* global $ */\n\nconst drawer = () => {\n $('.drawer-toggle').click(function () {\n const $drawer = $(this).parent('.drawer');\n const $drawerLink = $drawer.find('.drawer-link');\n const $drawerToggle = $(this);\n const breakpoint = 992;\n\n if ($drawer.hasClass('open')) {\n $drawer.removeClass('open');\n $drawer.css({ width: '' });\n $drawerLink.css({ width: $drawerToggle.width() });\n } else {\n let linkWidth = '100%';\n\n if ($(window).width() > breakpoint) {\n linkWidth = $drawerLink.find('.text').outerWidth();\n $drawer.css({ width: linkWidth });\n }\n $drawer.addClass('open');\n $drawerLink.css({ width: linkWidth });\n }\n });\n};\n\nexport default drawer;\n","/* global $ */\n\nexport default () => {\n\n $('.btn-collapse').click(function(){\n\n const parent = $(this).parent(\".line\");\n const toggleIcon = $(this).find(\"span\")\n\n parent.toggleClass('open');\n toggleIcon.toggleClass('show');\n });\n\n};\n","/* globals $, introJs */\n\nexport default () => {\n if ($('#tour-lab').length > 0) {\n const startIntro = () => {\n const intro = introJs();\n intro.setOptions({\n buttonClass: 'btn btn-secondary btn-sm mt-4',\n tooltipPosition: 'auto',\n positionPrecedence: ['bottom', 'top', 'right', 'left'],\n scrollTo: 'tooltip',\n scrollToElement: true,\n steps: [\n {\n intro:\n \"This is the laboratory's homepage. <b>It serves to guide the visitors to the different sub-contents</b>. The main contents are projects and publications. Here is the hierarchical order that we are proposing.\",\n },\n {\n element: '#tour-hero',\n intro:\n 'Define the <b>laboratory title</b> and a <b>cover image</b> using the <a href=\"#/organisms/hero\" target=\"_blank\">hero</a> component or only <b>a title</b>, if there is no cover, using the following step structure.',\n },\n {\n element: '#tour-intro',\n intro:\n 'Type a <b>succinct introduction paragraph</b> wrapped inside a <code>.container-grid</code> (the title can also be added here)',\n },\n {\n element: '#tour-projects',\n intro: `\n The main objective of a laboratory is to show the projects that are carried out there. In this section, you can use the <a href=\"#/content-types/research-project\" target=\"_blank\">Research project</a> content types to show them. We advise you to put a <b>maximum of 3 projects</b> on the lab’s homepage and then put a link to the page that lists all the projects.\n `,\n },\n {\n element: '#tour-publications',\n intro: `\n Laboratories also produce publications. You can list <b>up to 5</b> here with the <a href=\"#/content-types/publication\" target=\"_blank\">Publication</a> component and add a link to the page that lists all the publications.\n `,\n },\n {\n element: '#tour-news',\n intro: `\n If you have some news about your laboratory, you can list the latest at this location. We advise you not to list too much (maximum 2) and use the component <a href=\"#/content-types/news\" target=\"_blank\">News</a> content-types (<b>Basic teaser</b>) and add a link to all news page.\n `,\n },\n {\n element: '#tour-partof',\n intro: `\n <p>\n This section is intended to <b>provide the context of the laboratory</b>. It is possible for a laboratory to belong to several institutes and/or faculties. If this is the case, we advise you to use a teaser that brings the visitor to a listing page, rather than putting them all on the lab’s homepage. Laboratories can have themes that categorize them. It is recommended to use component “tag” to list them.\n </p>\n <p>\n For this part, you can use some of the <a href=\"#/content-types/school\" target=\"_blank\">School</a> and <a href=\"#/content-types/institute\" target=\"_blank\">Institute</a> content types. The themes are based on the <a href=\"#/atoms/tag\" target=\"_blank\">tag</a> component.\n </p>\n `,\n },\n {\n element: '#tour-contact',\n intro: `\n <b>Several people may want to contact</b> the laboratory: press, potential collaborators, people interested in your work or simply people who want to know where you are located. That’s why we recommend using the <a href=\"#/organisms/contact\" target=\"_blank\">Contact</a> component (<b>Banner</b>) that gives all this information.\n `,\n },\n {\n element: '#tour-team',\n intro: `\n Some visitors may want to ask you questions or <b>see who composes the laboratory's team</b>. It is possible to link to the team page using the <a href=\"#/content-types/basic-page\" target=\"_blank\">Teaser basic page</a> component.\n `,\n },\n {\n element: '#tour-sponsors',\n intro: `\n It is possible that you have sponsors. On a second column, you can list them thanks to the <a href=\"#/molecules/sponsor\" target=\"_blank\">Sponsor</a> component.\n `,\n },\n ],\n });\n intro.start();\n };\n\n $('#tour-start').click(() => startIntro());\n }\n};\n","/* global $ */\n\nexport default () => {\n $('a').on('click', (e) => {\n const target_href = $(e.target).attr('href');\n if (target_href && target_href.length > 1 && target_href.match('^#')) {\n $(e.target)[0].scrollIntoView();\n }\n });\n};\n"],"names":["module","exports","it","TypeError","String","isObject","wellKnownSymbol","create","definePropertyModule","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","f","configurable","value","key","charAt","S","index","unicode","length","bind","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","toLength","createProperty","getIteratorMethod","arrayLike","result","step","iterator","next","O","C","this","argumentsLength","arguments","mapfn","mapping","iteratorMethod","call","done","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","indexOf","IndexedObject","arraySpeciesCreate","push","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","callbackfn","that","specificCreate","self","boundFunction","target","forEach","map","filter","some","every","find","findIndex","filterOut","fails","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","argument","method","isArray","originalArray","anObject","iteratorClose","fn","ENTRIES","error","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","from","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","toString","slice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","Object","callee","has","ownKeys","getOwnPropertyDescriptorModule","source","keys","defineProperty","getOwnPropertyDescriptor","i","F","getPrototypeOf","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","DESCRIPTORS","bitmap","enumerable","writable","toPrimitive","propertyKey","$","createIteratorConstructor","setPrototypeOf","createNonEnumerableProperty","redefine","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","name","values","proto","forced","get","global","document","EXISTS","createElement","getBuiltIn","match","version","userAgent","process","versions","v8","split","setGlobal","copyConstructorProperties","isForced","options","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","regexpExec","RegExpPrototype","RegExp","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","nativeRegExpMethod","nativeMethod","regexp","str","arg2","forceStringMethod","$exec","aFunction","a","b","c","apply","path","variable","namespace","classof","floor","Math","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","n","check","globalThis","window","g","Function","hasOwnProperty","hasOwn","propertyIsEnumerable","store","functionToString","inspectSource","set","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","type","arg","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","MATCH","isRegExp","returnMethod","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","test","getOwnPropertySymbols","symbol","Symbol","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","Properties","objectKeys","IE8_DOM_DEFINE","$defineProperty","P","Attributes","propertyIsEnumerableModule","$getOwnPropertyDescriptor","internalObjectKeys","concat","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","V","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","join","R","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","input","ignoreCase","dotAll","RE","s","TAG","uid","SHARED","mode","copyright","defaultConstructor","toInteger","requireObjectCoercible","CONVERT_TO_STRING","pos","first","second","size","charCodeAt","codeAt","max","min","integer","ceil","isNaN","PREFERRED_STRING","val","valueOf","id","postfix","random","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","k","len","E","A","$find","addToUnscopables","FIND","SKIPS_HOLES","checkCorrectnessOfIteration","iterable","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","separator","$map","HAS_SPECIES_SUPPORT","nativeSlice","start","end","Constructor","fin","FunctionPrototype","FunctionPrototypeToString","nameRE","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","p","rf","defineIterator","STRING_ITERATOR","setInternalState","iterated","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","res","rx","fullUnicode","matchStr","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","j","replacerArgs","speciesConstructor","callRegExpExec","arrayPush","MAX_UINT32","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","e","z","factory","matchesMethod","ElemProto","Element","matches","matchesSelector","prefixes","elem","selector","EvEmitter","on","eventName","listener","events","_events","listeners","once","onceEvents","_onceEvents","off","splice","emitEvent","args","onceListeners","allOff","utils","prop","num","div","arraySlice","makeArray","obj","removeFrom","ary","getParent","parentNode","body","getQueryElement","querySelector","handleEvent","event","filterFindElements","elems","ffElems","HTMLElement","childElems","querySelectorAll","debounceMethod","_class","methodName","threshold","timeoutName","timeout","clearTimeout","_this","setTimeout","docReady","callback","readyState","addEventListener","toDashed","$1","$2","console","htmlInit","WidgetClass","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","jQuery","attr","getAttribute","JSON","parse","className","instance","Flickity","createMethods","_createAsNavFor","activateAsNavFor","deactivateAsNavFor","destroyAsNavFor","asNavForOption","asNavFor","setNavCompanion","companion","navCompanion","onNavCompanionSelect","navCompanionSelect","onNavStaticClick","isInstant","selectedCell","selectedCells","firstIndex","cells","selectIndex","t","cellAlign","selectCell","removeNavSelectedElements","navSelectedElements","cell","element","changeNavSelectedClass","navElem","classList","pointer","cellElement","cellIndex","_createFullscreen","isFullscreen","fullscreen","viewFullscreenButton","FullscreenButton","exitFullscreenButton","_changeFullscreenActive","childMethod","isActive","activeMethod","viewFullscreen","_changeFullscreen","focus","exitFullscreen","isView","classMethod","documentElement","resize","reposition","dispatchEvent","toggleFullscreen","setGallerySize","flickity","createButton","createIcon","onClick","clickHandler","viewport","height","keyboardHandlers","setAttribute","text","label","toUpperCase","title","svgURI","pathDirections","view","exit","svg","createElementNS","direction","activate","deactivate","removeEventListener","insert","_makeCells","fragment","createDocumentFragment","getCellsFragment","isAppend","slider","insertCellElement","insertBefore","endCells","_sizeCells","cellChange","append","prepend","remove","getCells","minCellIndex","cellSizeChange","getCell","getSize","changedCellIndex","isPositioningSlider","prevSelectedElem","selectedElement","_positionCells","_getWrapShiftCells","selectedIndex","getCellSlideIndex","slides","select","positionSliderAtSelected","isAnimating","restingFrames","animate","applyDragForce","applySelectedAttraction","previousX","x","integratePhysics","positionSlider","settle","requestAnimationFrame","wrapAround","modulo","slideableWidth","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","getPositionValue","transform","firstSlide","positionX","progress","slidesWidth","selectedSlide","velocity","percentPosition","round","innerWidth","isPointerDown","isFreeScrolling","beforeGap","_shiftCells","beforeShiftCells","afterGap","afterShiftCells","gap","shift","cellShift","wrapShift","outerWidth","getFrictionFactor","force","isDraggable","dragForce","dragX","applyForce","selectedAttraction","Cell","parent","destroy","unselect","side","originSide","removeAttribute","setPosition","updateTarget","renderPosition","setDefaultTarget","marginProperty","width","add","removeChild","Unidragger","extend","defaults","draggable","dragThreshold","_touchActionValue","isTouch","isTouchmoveScrollCanceled","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","handles","bindHandles","unbindHandles","bindDrag","unbindDrag","pointerDown","okayPointerDown","_pointerDownPreventDefault","pointerDownFocus","activeElement","pointerDownBlur","pointerDownScroll","getScrollPosition","_pointerDownDefault","pointerDownPointer","pageX","pageY","_bindPostStartEvents","focusNodes","INPUT","TEXTAREA","SELECT","pageXOffset","y","pageYOffset","nodeName","isTouchStart","isTouchPointer","pointerType","isFocusNode","preventDefault","hasDragStarted","moveVector","abs","pointerUp","isTouchScrolling","_dragPointerUp","pointerDone","dragStart","dragStartPosition","startAnimation","pointerMove","_dragPointerMove","_dragMove","dragMove","previousDragX","originBound","endBound","getLastSlide","dragMoveTime","Date","dragEnd","freeScroll","dragEndRestingSelect","restingX","getRestingPosition","dragEndBoostSelect","isDragSelect","distance","getSlideDistance","positiveResting","_getClosestResting","negativeResting","increment","minDistance","Infinity","condition","contain","dist","minDist","isWrapAround","slideIndex","slide","wrap","delta","staticClick","clickedCell","getParentCell","cellElem","onscroll","scroll","scrollMoveX","scrollMoveY","_pointerDone","Slide","animatePrototype","getComputedStyle","moveElements","toElem","GUID","instances","queryElement","flickityGUID","option","$element","_create","accessibility","freeScrollFriction","friction","namespaceJQueryEvents","guid","_createSlider","watchCSS","opts","_filterFindCellElements","children","reloadCells","tabIndex","selectInitialIndex","isInitActivated","cellSelector","positionCells","getLastCell","maxCellHeight","cellX","startCell","outerHeight","updateSlides","_containSlides","nextMargin","canCellFit","_getCanCellFit","slideWidth","firstMargin","addCell","updateSelectedSlide","groupCells","number","parseInt","percentMatch","percent","_init","setCellAlign","cellAlignShorthands","center","left","right","shorthand","adaptiveHeight","_unshiftCells","gapX","_getGapCells","isRightToLeft","beginMargin","endMargin","contentWidth","isContentSmaller","beginBound","emitArgs","$event","jQEvent","Event","trigger","isWrap","_wrapSelect","prevIndex","wrapIndex","backWrapDelta","forewardWrapDelta","previous","unselectSelectedSlide","selectedElements","getCellElements","initialIndex","queryCell","getAdjacentCellElements","adjCount","cellElems","uiChange","childUIPointerDown","onresize","onkeydown","isNotFocused","handler","keyCode","leftMethod","rightMethod","prevScrollY","preventScroll","scrollTo","removeData","bridget","setJQuery","jq","LazyLoader","img","load","_createLazyload","lazyLoad","lazyImages","lazyCellImages","lazyloadAttr","srcAttr","srcsetAttr","imgs","getCellLazyImages","srcset","onload","complete","onerror","Unipointer","PageDots","holder","dots","handleClick","setDots","bindStartEvent","unbindStartEvent","addDots","removeDots","count","newDots","dot","updateSelected","selectedDot","onTap","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","Player","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","play","hidden","tick","time","autoPlay","clear","stop","pause","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","PrevNextButton","isEnabled","isPrevious","leftDirection","isLeft","disable","createSVG","update","shape","pathMovements","arrowShape","x0","x1","y1","x2","y2","x3","onclick","enable","disabled","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","isOriginLeft","lastCell","lastMargin","getStyleSize","parseFloat","logError","message","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","padding","borderStyle","borderWidth","boxSizing","setup","nodeType","innerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","ImagesLoaded","onAlways","queryElem","elements","getImages","jqDeferred","Deferred","images","addElementImages","addImage","background","addElementBackgroundImages","elementNodeTypes","childImgs","child","LoadingImage","Background","url","Image","reURL","backgroundImage","addBackground","loadingImage","onProgress","image","progressedCount","hasAnyBroken","isLoaded","notify","debug","log","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","unbindEvents","makeJQueryPlugin","imagesLoaded","promise","OFI","propRegex","testImg","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","placeholder","onImageReady","fixOne","parsed","fontFamily","props","ofi","skipTest","naturalHeight","descriptors","ss","keepSrcUsable","err","warn","picturefill","pf","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","startAutoMode","getElementsByTagName","tagName","watchMQ","getOfiImageMaybe","HTMLImageElement","hijackAttributes","_bindHandles","isAdd","bindMethod","touchAction","handle","_bindStartEvent","PointerEvent","cursorNodes","OPTION","clickTypes","radio","checkbox","button","submit","file","isCursorNode","isClickType","isOkay","_pointerReset","focused","blur","isDragging","_dragStart","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","startEvent","getTouch","touches","touch","identifier","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","definition","o","isMobile","showLastMonthWeek","initialWeek","now","isRowDisabled","weekNum","container","getFullYear","getMonth","getDate","each","monthsShort","pickadate","monthsFull","weekdaysFull","weekdaysShort","labelMonthNext","labelMonthPrev","labelMonthSelect","labelYearSelect","format","firstDay","today","onRender","picker","months","$holder","wrapper","component","$node","prev","nextMonthIndex","item","month","prevMonthIndex","$root","clone","handleMonthLabels","selected","stopPropagation","css","handlePrevNext","onStart","currentTimestamp","date","addClass","setHighlights","loadIcons","svgPath","ajax","XMLHttpRequest","send","status","innerHTML","responseText","insertAdjacentElement","bannerElement","cookieConsent","opt_visible","setVisibility","cookieconsent","initialise","cookieI18n","en","msg","fr","de","lang","substring","domain_name","hostame","location","hostname","hostParts","reverse","theme","palette","popup","dismiss","showLink","cookie","autoAttach","get_cookieconsent_config","cookieBanner","visible","show","removeClass","hide","nutrimenuScore","epflElements","expandBreadcrumb","breadcrumbDropToggle","backToTopBtn","rangeSlider","activeClass","parentClass","toggleDesktopMenu","$galleries","$input","$preview","files","previewContent","multipleSelect","selectize","plugins","render","escape","datepickerEvent","popover","placement","offset","template","always","$gallery","$items","setFlickityOnGallery","$galleryNavs","$galleryNav","fail","searchContainer","searchField","toggleClass","hasClass","copyBtn","baseText","successText","ClipboardJS","clearSelection","getTime","collapse","toggle","itemId","link","Tablesaw","init","cardSliderWrapper","flkty","cardSlider","Imagesloaded","featherSvgPath","mustOpen","navToggle","offsetX","offsetY","top","scrollTop","parents","ancestor","firstLeveItem","toggleMobileMenu","click","$drawer","$drawerLink","$drawerToggle","linkWidth","btnPos","currentTarget","documentWitdh","dropdown","siblings","dropdownWidth","btnOffset","setProperty","toggleIcon","intro","introJs","setOptions","buttonClass","tooltipPosition","positionPrecedence","scrollToElement","steps","target_href","scrollIntoView","MSInputMethodContext","documentMode","objectFitImages"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"js/elements.min.js","mappings":"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","sources":["webpack://epfl-elements/./node_modules/core-js/internals/a-function.js","webpack://epfl-elements/./node_modules/core-js/internals/a-possible-prototype.js","webpack://epfl-elements/./node_modules/core-js/internals/add-to-unscopables.js","webpack://epfl-elements/./node_modules/core-js/internals/advance-string-index.js","webpack://epfl-elements/./node_modules/core-js/internals/an-object.js","webpack://epfl-elements/./node_modules/core-js/internals/array-from.js","webpack://epfl-elements/./node_modules/core-js/internals/array-includes.js","webpack://epfl-elements/./node_modules/core-js/internals/array-iteration.js","webpack://epfl-elements/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://epfl-elements/./node_modules/core-js/internals/array-method-is-strict.js","webpack://epfl-elements/./node_modules/core-js/internals/array-species-create.js","webpack://epfl-elements/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://epfl-elements/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://epfl-elements/./node_modules/core-js/internals/classof-raw.js","webpack://epfl-elements/./node_modules/core-js/internals/classof.js","webpack://epfl-elements/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://epfl-elements/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://epfl-elements/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://epfl-elements/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://epfl-elements/./node_modules/core-js/internals/create-property-descriptor.js","webpack://epfl-elements/./node_modules/core-js/internals/create-property.js","webpack://epfl-elements/./node_modules/core-js/internals/define-iterator.js","webpack://epfl-elements/./node_modules/core-js/internals/descriptors.js","webpack://epfl-elements/./node_modules/core-js/internals/document-create-element.js","webpack://epfl-elements/./node_modules/core-js/internals/engine-user-agent.js","webpack://epfl-elements/./node_modules/core-js/internals/engine-v8-version.js","webpack://epfl-elements/./node_modules/core-js/internals/enum-bug-keys.js","webpack://epfl-elements/./node_modules/core-js/internals/export.js","webpack://epfl-elements/./node_modules/core-js/internals/fails.js","webpack://epfl-elements/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://epfl-elements/./node_modules/core-js/internals/function-bind-context.js","webpack://epfl-elements/./node_modules/core-js/internals/get-built-in.js","webpack://epfl-elements/./node_modules/core-js/internals/get-iterator-method.js","webpack://epfl-elements/./node_modules/core-js/internals/get-substitution.js","webpack://epfl-elements/./node_modules/core-js/internals/global.js","webpack://epfl-elements/./node_modules/core-js/internals/has.js","webpack://epfl-elements/./node_modules/core-js/internals/hidden-keys.js","webpack://epfl-elements/./node_modules/core-js/internals/html.js","webpack://epfl-elements/./node_modules/core-js/internals/ie8-dom-define.js","webpack://epfl-elements/./node_modules/core-js/internals/indexed-object.js","webpack://epfl-elements/./node_modules/core-js/internals/inspect-source.js","webpack://epfl-elements/./node_modules/core-js/internals/internal-state.js","webpack://epfl-elements/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://epfl-elements/./node_modules/core-js/internals/is-array.js","webpack://epfl-elements/./node_modules/core-js/internals/is-forced.js","webpack://epfl-elements/./node_modules/core-js/internals/is-object.js","webpack://epfl-elements/./node_modules/core-js/internals/is-pure.js","webpack://epfl-elements/./node_modules/core-js/internals/is-regexp.js","webpack://epfl-elements/./node_modules/core-js/internals/iterator-close.js","webpack://epfl-elements/./node_modules/core-js/internals/iterators-core.js","webpack://epfl-elements/./node_modules/core-js/internals/iterators.js","webpack://epfl-elements/./node_modules/core-js/internals/native-symbol.js","webpack://epfl-elements/./node_modules/core-js/internals/native-weak-map.js","webpack://epfl-elements/./node_modules/core-js/internals/object-create.js","webpack://epfl-elements/./node_modules/core-js/internals/object-define-properties.js","webpack://epfl-elements/./node_modules/core-js/internals/object-define-property.js","webpack://epfl-elements/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://epfl-elements/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://epfl-elements/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://epfl-elements/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://epfl-elements/./node_modules/core-js/internals/object-keys-internal.js","webpack://epfl-elements/./node_modules/core-js/internals/object-keys.js","webpack://epfl-elements/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://epfl-elements/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://epfl-elements/./node_modules/core-js/internals/object-to-string.js","webpack://epfl-elements/./node_modules/core-js/internals/own-keys.js","webpack://epfl-elements/./node_modules/core-js/internals/path.js","webpack://epfl-elements/./node_modules/core-js/internals/redefine.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-exec.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-flags.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://epfl-elements/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://epfl-elements/./node_modules/core-js/internals/require-object-coercible.js","webpack://epfl-elements/./node_modules/core-js/internals/set-global.js","webpack://epfl-elements/./node_modules/core-js/internals/set-to-string-tag.js","webpack://epfl-elements/./node_modules/core-js/internals/shared-key.js","webpack://epfl-elements/./node_modules/core-js/internals/shared-store.js","webpack://epfl-elements/./node_modules/core-js/internals/shared.js","webpack://epfl-elements/./node_modules/core-js/internals/species-constructor.js","webpack://epfl-elements/./node_modules/core-js/internals/string-multibyte.js","webpack://epfl-elements/./node_modules/core-js/internals/to-absolute-index.js","webpack://epfl-elements/./node_modules/core-js/internals/to-indexed-object.js","webpack://epfl-elements/./node_modules/core-js/internals/to-integer.js","webpack://epfl-elements/./node_modules/core-js/internals/to-length.js","webpack://epfl-elements/./node_modules/core-js/internals/to-object.js","webpack://epfl-elements/./node_modules/core-js/internals/to-primitive.js","webpack://epfl-elements/./node_modules/core-js/internals/to-string-tag-support.js","webpack://epfl-elements/./node_modules/core-js/internals/uid.js","webpack://epfl-elements/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://epfl-elements/./node_modules/core-js/internals/well-known-symbol.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.concat.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.find.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.from.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.join.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.map.js","webpack://epfl-elements/./node_modules/core-js/modules/es.array.slice.js","webpack://epfl-elements/./node_modules/core-js/modules/es.function.name.js","webpack://epfl-elements/./node_modules/core-js/modules/es.object.to-string.js","webpack://epfl-elements/./node_modules/core-js/modules/es.regexp.exec.js","webpack://epfl-elements/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://epfl-elements/./node_modules/core-js/modules/es.string.iterator.js","webpack://epfl-elements/./node_modules/core-js/modules/es.string.match.js","webpack://epfl-elements/./node_modules/core-js/modules/es.string.replace.js","webpack://epfl-elements/./node_modules/core-js/modules/es.string.split.js","webpack://epfl-elements/./node_modules/desandro-matches-selector/matches-selector.js","webpack://epfl-elements/./node_modules/ev-emitter/ev-emitter.js","webpack://epfl-elements/./node_modules/fizzy-ui-utils/utils.js","webpack://epfl-elements/./node_modules/flickity-as-nav-for/as-nav-for.js","webpack://epfl-elements/./node_modules/flickity-fullscreen/fullscreen.js","webpack://epfl-elements/./node_modules/flickity/js/add-remove-cell.js","webpack://epfl-elements/./node_modules/flickity/js/animate.js","webpack://epfl-elements/./node_modules/flickity/js/cell.js","webpack://epfl-elements/./node_modules/flickity/js/drag.js","webpack://epfl-elements/./node_modules/flickity/js/flickity.js","webpack://epfl-elements/./node_modules/flickity/js/index.js","webpack://epfl-elements/./node_modules/flickity/js/lazyload.js","webpack://epfl-elements/./node_modules/flickity/js/page-dots.js","webpack://epfl-elements/./node_modules/flickity/js/player.js","webpack://epfl-elements/./node_modules/flickity/js/prev-next-button.js","webpack://epfl-elements/./node_modules/flickity/js/slide.js","webpack://epfl-elements/./node_modules/get-size/get-size.js","webpack://epfl-elements/./node_modules/imagesloaded/imagesloaded.js","webpack://epfl-elements/./node_modules/unidragger/unidragger.js","webpack://epfl-elements/./node_modules/unipointer/unipointer.js","webpack://epfl-elements/webpack/bootstrap","webpack://epfl-elements/webpack/runtime/compat get default export","webpack://epfl-elements/webpack/runtime/define property getters","webpack://epfl-elements/webpack/runtime/global","webpack://epfl-elements/webpack/runtime/hasOwnProperty shorthand","webpack://epfl-elements/./assets/icons/svg-icons.js","webpack://epfl-elements/./assets/components/organisms/nav-main/nav-main.js","webpack://epfl-elements/./assets/components/organisms/cookie-consent/cookie-consent.js","webpack://epfl-elements/./assets/components/organisms/footer/back-to-top-button.js","webpack://epfl-elements/./assets/components/organisms/restauration/restauration.js","webpack://epfl-elements/./assets/components/entrypoint.js","webpack://epfl-elements/./assets/components/content-types/coursebook/coursebook.js","webpack://epfl-elements/./assets/components/molecules/breadcrumb/breadcrumb.js","webpack://epfl-elements/./assets/components/atoms/range/range.js","webpack://epfl-elements/./assets/components/molecules/gallery/gallery.js","webpack://epfl-elements/./assets/components/atoms/upload/upload.js","webpack://epfl-elements/./assets/components/atoms/select/select-multiple.js","webpack://epfl-elements/./assets/components/atoms/tag/tag-input.js","webpack://epfl-elements/./assets/components/molecules/datepicker/datepicker.js","webpack://epfl-elements/./assets/components/molecules/datepicker/datepicker-fancy.js","webpack://epfl-elements/./assets/components/atoms/popover/popover.js","webpack://epfl-elements/./assets/components/molecules/search/search.js","webpack://epfl-elements/./assets/components/molecules/search/search-mobile.js","webpack://epfl-elements/./assets/components/molecules/social/social.js","webpack://epfl-elements/./assets/components/organisms/card-slider/card-slider.js","webpack://epfl-elements/./assets/components/atoms/drawer/drawer.js","webpack://epfl-elements/./assets/components/content-types/study-plan/study-plan.js","webpack://epfl-elements/./assets/components/pages/lab-homepage/lab-homepage.js","webpack://epfl-elements/./assets/components/anchors.js"],"sourcesContent":["module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(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 (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\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","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\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","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $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 $defineProperty(O, P, Attributes);\n } catch (error) { /* 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","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\n/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(str) {\n var re = this;\n var state = getInternalState(re);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = patchedExec.call(raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\nvar RE = function (s, f) {\n return RegExp(s, f);\n};\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\n var re = RegExp('.', (typeof '').charAt(0));\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('./fails');\n\nmodule.exports = fails(function () {\n // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError\n var re = RegExp('(?<a>b)', (typeof '').charAt(5));\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.15.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\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 (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var res = maybeCallNative(nativeMatch, this, string);\n if (res.done) return res.value;\n\n var rx = anObject(this);\n var S = String(string);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n if (\n typeof replaceValue === 'string' &&\n replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, this, string, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(this);\n var S = String(string);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var res = maybeCallNative(internalSplit, this, string, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(this);\n var S = String(string);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","/*!\n * Flickity asNavFor v2.0.1\n * enable asNavFor for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'fizzy-ui-utils/utils'\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( Flickity, utils ) {\n\n'use strict';\n\n// -------------------------- asNavFor prototype -------------------------- //\n\n// Flickity.defaults.asNavFor = null;\n\nFlickity.createMethods.push('_createAsNavFor');\n\nvar proto = Flickity.prototype;\n\nproto._createAsNavFor = function() {\n this.on( 'activate', this.activateAsNavFor );\n this.on( 'deactivate', this.deactivateAsNavFor );\n this.on( 'destroy', this.destroyAsNavFor );\n\n var asNavForOption = this.options.asNavFor;\n if ( !asNavForOption ) {\n return;\n }\n // HACK do async, give time for other flickity to be initalized\n var _this = this;\n setTimeout( function initNavCompanion() {\n _this.setNavCompanion( asNavForOption );\n });\n};\n\nproto.setNavCompanion = function( elem ) {\n elem = utils.getQueryElement( elem );\n var companion = Flickity.data( elem );\n // stop if no companion or companion is self\n if ( !companion || companion == this ) {\n return;\n }\n\n this.navCompanion = companion;\n // companion select\n var _this = this;\n this.onNavCompanionSelect = function() {\n _this.navCompanionSelect();\n };\n companion.on( 'select', this.onNavCompanionSelect );\n // click\n this.on( 'staticClick', this.onNavStaticClick );\n\n this.navCompanionSelect( true );\n};\n\nproto.navCompanionSelect = function( isInstant ) {\n if ( !this.navCompanion ) {\n return;\n }\n // select slide that matches first cell of slide\n var selectedCell = this.navCompanion.selectedCells[0];\n var firstIndex = this.navCompanion.cells.indexOf( selectedCell );\n var lastIndex = firstIndex + this.navCompanion.selectedCells.length - 1;\n var selectIndex = Math.floor( lerp( firstIndex, lastIndex,\n this.navCompanion.cellAlign ) );\n this.selectCell( selectIndex, false, isInstant );\n // set nav selected class\n this.removeNavSelectedElements();\n // stop if companion has more cells than this one\n if ( selectIndex >= this.cells.length ) {\n return;\n }\n\n var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 );\n this.navSelectedElements = selectedCells.map( function( cell ) {\n return cell.element;\n });\n this.changeNavSelectedClass('add');\n};\n\nfunction lerp( a, b, t ) {\n return ( b - a ) * t + a;\n}\n\nproto.changeNavSelectedClass = function( method ) {\n this.navSelectedElements.forEach( function( navElem ) {\n navElem.classList[ method ]('is-nav-selected');\n });\n};\n\nproto.activateAsNavFor = function() {\n this.navCompanionSelect( true );\n};\n\nproto.removeNavSelectedElements = function() {\n if ( !this.navSelectedElements ) {\n return;\n }\n this.changeNavSelectedClass('remove');\n delete this.navSelectedElements;\n};\n\nproto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) {\n if ( typeof cellIndex == 'number' ) {\n this.navCompanion.selectCell( cellIndex );\n }\n};\n\nproto.deactivateAsNavFor = function() {\n this.removeNavSelectedElements();\n};\n\nproto.destroyAsNavFor = function() {\n if ( !this.navCompanion ) {\n return;\n }\n this.navCompanion.off( 'select', this.onNavCompanionSelect );\n this.off( 'staticClick', this.onNavStaticClick );\n delete this.navCompanion;\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n}));\n","/*!\n * Flickity fullscreen v1.1.1\n * Enable fullscreen view for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity')\n );\n } else {\n // browser global\n factory(\n window.Flickity\n );\n }\n\n}( window, function factory( Flickity ) {\n\n'use strict';\n\nFlickity.createMethods.push('_createFullscreen');\nvar proto = Flickity.prototype;\n\n\nproto._createFullscreen = function() {\n this.isFullscreen = false;\n\n if ( !this.options.fullscreen ) {\n return;\n }\n // buttons\n this.viewFullscreenButton = new FullscreenButton( 'view', this );\n this.exitFullscreenButton = new FullscreenButton( 'exit', this );\n\n this.on( 'activate', this._changeFullscreenActive );\n this.on( 'deactivate', this._changeFullscreenActive );\n};\n\n// ----- activation ----- //\n\nproto._changeFullscreenActive = function() {\n var childMethod = this.isActive ? 'appendChild' : 'removeChild';\n this.element[ childMethod ]( this.viewFullscreenButton.element );\n this.element[ childMethod ]( this.exitFullscreenButton.element );\n // activate or deactivate buttons\n var activeMethod = this.isActive ? 'activate' : 'deactivate';\n this.viewFullscreenButton[ activeMethod ]();\n this.exitFullscreenButton[ activeMethod ]();\n};\n\n// ----- view, exit, toggle ----- //\n\nproto.viewFullscreen = function() {\n this._changeFullscreen( true );\n this.focus();\n};\n\nproto.exitFullscreen = function() {\n this._changeFullscreen( false );\n};\n\nproto._changeFullscreen = function( isView ) {\n if ( this.isFullscreen == isView ) {\n return;\n }\n this.isFullscreen = isView;\n var classMethod = isView ? 'add' : 'remove';\n document.documentElement.classList[ classMethod ]('is-flickity-fullscreen');\n this.element.classList[ classMethod ]('is-fullscreen');\n this.resize();\n // HACK extra reposition on fullscreen for images\n if ( this.isFullscreen ) {\n this.reposition();\n }\n this.dispatchEvent( 'fullscreenChange', null, [ isView ] );\n};\n\nproto.toggleFullscreen = function() {\n this._changeFullscreen( !this.isFullscreen );\n};\n\n// ----- setGallerySize ----- //\n\n// overwrite so fullscreen cells are full height\nvar setGallerySize = proto.setGallerySize;\nproto.setGallerySize = function() {\n if ( !this.options.setGallerySize ) {\n return;\n }\n if ( this.isFullscreen ) {\n // remove height style on fullscreen\n this.viewport.style.height = '';\n } else {\n // otherwise, do normal\n setGallerySize.call( this );\n }\n};\n\n// ----- keyboard ----- //\n\n// ESC key closes full screen\nFlickity.keyboardHandlers[27] = function() {\n this.exitFullscreen();\n};\n\n// ----- FullscreenButton ----- //\n\nfunction FullscreenButton( name, flickity ) {\n this.name = name;\n this.createButton();\n this.createIcon();\n // events\n // trigger viewFullscreen or exitFullscreen on click\n this.onClick = function() {\n flickity[ name + 'Fullscreen' ]();\n };\n this.clickHandler = this.onClick.bind( this );\n}\n\nFullscreenButton.prototype.createButton = function() {\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-fullscreen-button ' +\n 'flickity-fullscreen-button-' + this.name;\n // prevent button from submitting form\n element.setAttribute( 'type', 'button' );\n // set label\n var label = capitalize( this.name + ' full-screen' );\n element.setAttribute( 'aria-label', label );\n element.title = label;\n};\n\nfunction capitalize( text ) {\n return text[0].toUpperCase() + text.slice(1);\n}\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\nvar pathDirections = {\n view: 'M15,20,7,28h5v4H0V20H4v5l8-8Zm5-5,8-8v5h4V0H20V4h5l-8,8Z',\n exit: 'M32,3l-7,7h5v4H18V2h4V7l7-7ZM3,32l7-7v5h4V18H2v4H7L0,29Z',\n};\n\nFullscreenButton.prototype.createIcon = function() {\n var svg = document.createElementNS( svgURI, 'svg');\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 32 32' );\n // path & direction\n var path = document.createElementNS( svgURI, 'path');\n var direction = pathDirections[ this.name ];\n path.setAttribute( 'd', direction );\n // put it together\n svg.appendChild( path );\n this.element.appendChild( svg );\n};\n\nFullscreenButton.prototype.activate = function() {\n this.element.addEventListener( 'click', this.clickHandler );\n};\n\nFullscreenButton.prototype.deactivate = function() {\n this.element.removeEventListener( 'click', this.clickHandler );\n};\n\nFlickity.FullscreenButton = FullscreenButton;\n\n// ----- fin ----- //\n\nreturn Flickity;\n\n}));\n","// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n'use strict';\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\n if ( index === 0 ) {\n // prepend, add to start\n this.cells = cells.concat( this.cells );\n } else if ( isAppend ) {\n // append, add to end\n this.cells = this.cells.concat( cells );\n } else {\n // insert in this.cells\n var endCells = this.cells.splice( index, len - index );\n this.cells = this.cells.concat( cells ).concat( endCells );\n }\n\n this._sizeCells( cells );\n this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach( function( cell ) {\n cell.remove();\n var index = this.cells.indexOf( cell );\n minCellIndex = Math.min( index, minCellIndex );\n utils.removeFrom( this.cells, cell );\n }, this );\n\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n'use strict';\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n if ( this.options.percentPosition ) {\n // percent position, round to 2 digits, like 12.34%\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n } else {\n // pixel positioning\n return Math.round( position ) + 'px';\n }\n};\n\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n for ( var i = 0; i < cells.length; i++ ) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift( cellShift );\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n","// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n'use strict';\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n this.element.style.position = 'absolute';\n this.element.setAttribute( 'aria-hidden', 'true' );\n this.x = 0;\n this.shift = 0;\n};\n\nproto.destroy = function() {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[ side ] = '';\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n // render position of cell with in slider\n var side = this.parent.originSide;\n this.element.style[ side ] = this.parent.getPositionValue( x );\n};\n\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n","// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unidragger, utils ) {\n return factory( window, Flickity, Unidragger, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n'use strict';\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nvar isTouch = 'createTouch' in document;\nvar isTouchmoveScrollCanceled = false;\n\nproto._createDrag = function() {\n this.on( 'activate', this.onActivateDrag );\n this.on( 'uiChange', this._uiChangeDrag );\n this.on( 'deactivate', this.onDeactivateDrag );\n this.on( 'cellChange', this.updateDraggable );\n // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n if ( isTouch && !isTouchmoveScrollCanceled ) {\n window.addEventListener( 'touchmove', function() {} );\n isTouchmoveScrollCanceled = true;\n }\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n // disable dragging if less than 2 slides. #278\n if ( this.options.draggable == '>1' ) {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if ( !this.options.wrapAround && this.slides.length ) {\n // slow drag\n var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if ( this.options.freeScroll && !this.options.wrapAround ) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\n };\n while ( condition( distance, minDistance ) ) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance( -restingX, index );\n if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100 ) {\n return 0;\n }\n\n var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n var delta = this.previousDragX - this.dragX;\n if ( distance > 0 && delta > 0 ) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if ( distance < 0 && delta < 0 ) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell( event.target );\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n'use strict';\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\n for ( var eventName in this.options.on ) {\n var listener = this.options.on[ eventName ];\n this.on( eventName, listener );\n }\n\n Flickity.createMethods.forEach( function( method ) {\n this[ method ]();\n }, this );\n\n if ( this.options.watchCSS ) {\n this.watchCSS();\n } else {\n this.activate();\n }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[ this.originSide ] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for ( var i = index; i < len; i++ ) {\n var cell = this.cells[i];\n cell.setPosition( cellX );\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\n if ( !this.cells.length ) {\n return;\n }\n\n var slide = new Slide( this );\n this.slides.push( slide );\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach( function( cell, i ) {\n // just add cell if first cell in slide\n if ( !slide.cells.length ) {\n slide.addCell( cell );\n return;\n }\n\n var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n if ( canCellFit.call( this, i, slideWidth ) ) {\n slide.addCell( cell );\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\n if ( !groupCells ) {\n return function() {\n return false;\n };\n } else if ( typeof groupCells == 'number' ) {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt( groupCells, 10 );\n return function( i ) {\n return ( i % number ) !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\n this.slides.forEach( function( slide ) {\n if ( isContentSmaller ) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max( slide.target, beginBound );\n slide.target = Math.min( slide.target, endBound );\n }\n }, this );\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery && this.$element ) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\n var delta = Math.abs( wrapIndex - this.selectedIndex );\n var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n // get index of slides that has cell\n for ( var i = 0; i < this.slides.length; i++ ) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf( cell );\n if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n // loop through cells to get the one that matches\n for ( var i = 0; i < this.cells.length; i++ ) {\n var cell = this.cells[i];\n if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n var slide = this.slides[ slideIndex ];\n if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n if ( !this.isActive ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[ leftMethod ]();\n },\n // right arrow\n 39: function() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[ rightMethod ]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Flickity v2.2.2\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n","// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n // check if cell element is lazy image\n if ( cellElem.nodeName == 'IMG' ) {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n","// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n'use strict';\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.prototype.addDots = function( count ) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for ( var i = length; i < max; i++ ) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n fragment.appendChild( dot );\n newDots.push( dot );\n }\n\n this.holder.appendChild( fragment );\n this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n // remove selected class on previous\n if ( this.selectedDot ) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\n }\n this.selectedDot = this.dots[ this.parent.selectedIndex ];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\n if ( target.nodeName != 'LI' ) {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf( target );\n this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\n this.on( 'activate', this.activatePageDots );\n this.on( 'select', this.updateSelectedPageDots );\n this.on( 'cellChange', this.updatePageDots );\n this.on( 'resize', this.updatePageDots );\n this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n","// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], function( EvEmitter, utils, Flickity ) {\n return factory( EvEmitter, utils, Flickity );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n'use strict';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function() {\n // do not tick if not playing\n if ( this.state != 'playing' ) {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\n this.on( 'activate', this.activatePlayer );\n this.on( 'uiChange', this.stopPlayer );\n this.on( 'pointerDown', this.stopPlayer );\n this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n","// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n var svg = document.createElementNS( svgURI, 'svg' );\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 100 100' );\n var path = document.createElementNS( svgURI, 'path' );\n var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n path.setAttribute( 'd', pathMovements );\n path.setAttribute( 'class', 'arrow' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n if ( !this.options.prevNextButtons ) {\n return;\n }\n\n this.prevButton = new PrevNextButton( -1, this );\n this.nextButton = new PrevNextButton( 1, this );\n\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n","// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n'use strict';\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n var queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = extend( {}, this.options );\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName == 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\n _this.progress( image, elem, message );\n });\n }\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount == this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( 'progress: ' + message, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n","/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ( 'ontouchstart' in window ) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","const svgIcons = () => {\n loadIcons(window.svgPath || 'icons/icons.svg');\n loadIcons(window.featherSvgPath || 'icons/feather-sprite.svg');\n};\n\nexport default svgIcons;\n\nfunction loadIcons (svgPath) {\n const ajax = new XMLHttpRequest();\n ajax.open('GET', svgPath, true);\n ajax.send();\n ajax.onload = function (e) {\n if (e.target.status === 200) {\n const div = document.createElement('div');\n div.setAttribute('style', 'display: none');\n div.innerHTML = ajax.responseText;\n document.body.insertAdjacentElement('beforeend', div);\n }\n };\n}\n","/* global $ */\n\nconst nav = () => {\n // declare classes used to identify current menu and its parents (based on wordpress classes)\n const activeClass = 'current-menu-parent';\n const parentClass = 'current-menu-ancestor';\n\n // toggle mobile navigation\n const toggleMobileMenu = () => {\n // handle correct menu display when on level 0 page on mobile\n const firstLeveItem = $('.nav-main .nav-menu>.current-menu-item');\n if (firstLeveItem.length > 0) {\n const parent = firstLeveItem.parents()[1];\n $(parent).addClass(activeClass);\n }\n\n $('body').toggleClass('mobile-menu-open');\n };\n\n // Open or close desktop toggle navigation, keeping its actual position.\n // Used for the hamburger desktop menu to display current position\n const toggleDesktopMenu = (mustOpen = false) => {\n const navToggle = $('.nav-toggle');\n navToggle.toggleClass('open');\n const offsetX = navToggle.offset().left + navToggle.outerWidth(true);\n const offsetY = navToggle.offset().top - $(window).scrollTop();\n $('.nav-main').css('top', offsetY);\n\n $('body').toggleClass('desktop-menu-open');\n if (mustOpen && $('body').hasClass('desktop-menu-open')) {\n $('.nav-main').css('left', offsetX);\n } else {\n $('.nav-main').css('left', '');\n }\n };\n\n // moves the navigation one level up when clicking a \"back\" link\n // eslint-disable-next-line\n $('.nav-main .nav-back a').on('click', function(e) {\n e.preventDefault();\n\n const parents = $(this).parents();\n\n const parent = parents[2];\n $(parent)\n .removeClass(parentClass)\n .removeClass(activeClass);\n\n const ancestor = parents[4];\n $(ancestor)\n .removeClass(parentClass)\n .addClass(activeClass);\n });\n\n /*\n move the navigation one level down,\n when clicking the \"show children\" arrow on the right of a menu item\n */\n // eslint-disable-next-line\n $('.nav-main .nav-arrow').on('click', function(e) {\n e.preventDefault();\n\n const parents = $(this).parents();\n\n const parent = parents[0];\n $(parent).addClass(activeClass);\n\n const ancestor = parents[2];\n $(ancestor)\n .addClass(parentClass)\n .removeClass(activeClass);\n });\n\n // bind action to mobile menu toggle\n $('.nav-toggle-mobile').on('click', () => {\n toggleMobileMenu();\n });\n\n // Bind action to close toggle navigation, when clicking the white overlay\n $('.overlay').on('click', (e) => {\n e.preventDefault();\n toggleDesktopMenu();\n });\n\n // Bind action to the desktop hamburger (next to breadcrumbs)\n // eslint-disable-next-line\n $('.nav-toggle').on('click', function() {\n if ($(this).hasClass('nav-toggle-async') && !$(this).hasClass('open')) {\n $(this).addClass('is-loading');\n\n // Demo of loading resolution\n if ($('#styleguide').length > 0) {\n setTimeout(() => $('.nav-toggle-async').trigger('loadend'), 700);\n }\n } else {\n toggleDesktopMenu(true);\n }\n });\n\n // eslint-disable-next-line\n $('.nav-toggle').on('loadend', function() {\n $(this).removeClass('is-loading');\n toggleDesktopMenu(true);\n });\n};\n\nexport default nav;\n","/* globals jQuery */\n\nlet bannerElement\nfunction cookieConsent(opt_visible) {\n if (bannerElement) {\n setVisibility(bannerElement, opt_visible)\n } else {\n window.cookieconsent.initialise(\n get_cookieconsent_config(),\n (popup) => {\n bannerElement = popup.element\n setVisibility(bannerElement, opt_visible)\n },\n (err) => console.error(err)\n )\n window.cookieconsent.initialise = (() => { })\n }\n}\n\njQuery.fn.extend({ cookieConsent })\nexport default cookieConsent\n\nfunction setVisibility(cookieBanner, visible) {\n if (visible === true) {\n jQuery(cookieBanner).show().removeClass(\"cc-invisible\")\n } else if (visible === false) {\n jQuery(cookieBanner).hide().addClass(\"cc-invisible\")\n }\n}\n\nfunction get_cookieconsent_config() {\n // Translation\n const cookieI18n = {\n en: {\n msg: 'When you access EPFL websites, we may set cookies on your '\n + 'devices and process personal data about you in accordance with '\n + 'our <a tabindex=\"0\" class=\"cc-link\" target=\"_blank\" '\n + 'href=\"//go.epfl.ch/privacy-policy\">privacy policy</a>. '\n + 'You can block cookies by using your browser settings.'\n },\n fr: {\n msg: 'Lorsque vous accédez aux sites web de l\\'EPFL, nous pouvons '\n + 'installer des cookies sur vos appareils et traiter des données '\n + 'personnelles vous concernant conformément à notre '\n + '<a tabindex=\"0\" class=\"cc-link\" target=\"_blank\" '\n + 'href=\"//go.epfl.ch/protection-des-donnees\">'\n + 'politique de confidentialité</a>. Vous pouvez bloquer les '\n + 'cookies à l\\'aide des paramètres de votre navigateur.'\n },\n de: {\n msg: 'Wenn Sie auf die Websites der EPFL zugreifen, können wir in '\n + 'Übereinstimmung mit unserer '\n + '<a tabindex=\"0\" class=\"cc-link\" target=\"_blank\" '\n + 'href=\"//go.epfl.ch/privacy-policy\">Datenschutzerklärung</a> '\n + 'Cookies auf Ihren Geräten speichern und Personendaten bearbeiten. '\n + 'Über die Einstellungen in Ihrem Browser können Sie Cookies '\n + 'blockieren.',\n }\n };\n // Retrieve language, default 'fr'\n const langAttribute = document.documentElement.lang;\n let lang = langAttribute.substring(0, 2);\n if (!cookieI18n[lang]) {\n lang = 'fr';\n }\n\n // Retrieve the domain\n // Don't work with google.co.uk for example\n let domain_name = 'epfl.ch';\n const hostame = window.location.hostname;\n if (hostame === 'localhost' || hostame === '127.0.0.1') {\n domain_name = hostame;\n } else {\n const hostParts = hostame.split('.').reverse();\n if (hostParts[0] !== undefined && hostParts[1] !== undefined) {\n domain_name = `${hostParts[1]}.${hostParts[0]}`;\n }\n }\n\n const config = {\n theme: 'classic',\n palette: {\n popup: {\n background: 'rgba(69, 69, 69, 0.96)'\n },\n button: {\n background: '#b51f1f'\n }\n },\n content: {\n message: cookieI18n[lang].msg,\n dismiss: 'OK',\n },\n showLink: false,\n cookie: {\n name: 'petitpois', // Chosen by a magical unicorn!\n domain: domain_name,\n autoAttach: false // attach it manually to the end, or SEO will crawl it before any content\n }\n }\n return config;\n}\n","/* globals $ */\n\n\nexport default () => {\n\n const backToTopBtn = $('#back-to-top');\n\n $(window).scroll(function() {\n if ($(window).scrollTop() > 500) {\n backToTopBtn.addClass('show');\n } else {\n backToTopBtn.removeClass('show');\n }\n });\n\n backToTopBtn.on('click', function(e) {\n e.preventDefault();\n $('html, body').animate({scrollTop:0}, '300');\n });\n\n};\n","/* globals $ */\n\nexport const nutrimenuScore = [\n 'E', 'D-', 'D', 'D+', 'C-', 'C', 'C+', 'B-', 'B', 'B+', 'A-', 'A', 'A+'];\n\nexport default () => {\n const slider = $('#nutrimenu-score');\n const output = $(\"output[for='nutrimenu-score']\");\n\n if (slider.length > 0 && output.length > 0) {\n // eslint-disable-next-line radix\n output.val(nutrimenuScore[parseInt(slider.val()) - 1]);\n\n slider.on('input', function () {\n // eslint-disable-next-line radix\n output.val(nutrimenuScore[parseInt($(this).val()) - 1]);\n });\n }\n};\n","/* globals jQuery, Tablesaw */\n\nimport upload from './atoms/upload/upload';\nimport breadcrumb from './molecules/breadcrumb/breadcrumb';\nimport datepicker from './molecules/datepicker/datepicker';\nimport datepickerEvent from './molecules/datepicker/datepicker-fancy';\nimport popover from './atoms/popover/popover';\nimport gallery from './molecules/gallery/gallery';\nimport social from './molecules/social/social';\nimport selectMultiple from './atoms/select/select-multiple';\nimport tagInput from './atoms/tag/tag-input';\nimport cardSlider from './organisms/card-slider/card-slider';\nimport svgIcons from '../icons/svg-icons';\nimport nav from './organisms/nav-main/nav-main.js';\nimport drawer from './atoms/drawer/drawer.js';\nimport search from './molecules/search/search.js';\nimport searchMobile from './molecules/search/search-mobile.js';\nimport coursebook from './content-types/coursebook/coursebook.js';\nimport studyplan from './content-types/study-plan/study-plan.js';\nimport cookieconsent from './organisms/cookie-consent/cookie-consent.js';\nimport backToTopBtn from './organisms/footer/back-to-top-button.js';\nimport anchors from './anchors';\nimport rangeSlider from './atoms/range/range.js';\nimport restauration from './organisms/restauration/restauration';\n\nimport guide from './guide.js';\n\njQuery.fn.extend({\n epflElements () {\n upload();\n selectMultiple();\n tagInput();\n datepicker();\n datepickerEvent();\n popover();\n gallery();\n search();\n searchMobile();\n social();\n coursebook();\n Tablesaw.init();\n cardSlider();\n svgIcons();\n nav();\n drawer();\n breadcrumb();\n cookieconsent();\n backToTopBtn();\n rangeSlider();\n restauration();\n studyplan();\n\n guide();\n anchors();\n }\n});\n\n// Run that once the page is done loading:\njQuery(jQuery.fn.epflElements);\n","/* global $ */\n\nexport default () => {\n const id = new Date().getTime().toString(16);\n $('.coursebook-program .tree>li').each((i, collapse) => {\n\n // identify toggle and target\n const toggle = $('.underline a', collapse);\n const target = $('>ul', collapse);\n\n // generate page-unique id\n const itemId = `${id}-${i}`;\n\n // set correct attributes\n target.addClass('collapse collapse-item collapse-item-desktop');\n toggle.addClass('collapse-title collapse-title-desktop collapsed');\n target.attr('id', itemId);\n toggle.attr('data-target', `#${itemId}`);\n toggle.attr('data-toggle', 'collapse');\n\n // automatically add full width buttons at the end of the collapse\n const link = $('<a></a>');\n link.addClass('btn btn-block btn-sm btn-primary my-3');\n link.html(\"Voir le plan d'études\");\n link.attr('href', toggle.attr('href'));\n target.append(link);\n });\n};\n","/* globals $ */\n\nexport default () => {\n const expandBreadcrumb = $('.btn-expand-links');\n const breadcrumbDropToggle = $('.dropdown-toggle');\n\n // add class 'has-expanded-links'\n expandBreadcrumb.on('click', () => {\n $('.breadcrumb-wrapper .breadcrumb').addClass('has-expanded-links');\n });\n\n // improve dropdown position\n breadcrumbDropToggle.on('click', (e) => {\n const btnPos = $(e.currentTarget).offset().left;\n const documentWitdh = $(document).width();\n const dropdown = $(e.currentTarget).siblings('.dropdown-menu');\n const dropdownWidth = dropdown.width();\n const btnOffset = documentWitdh - btnPos;\n\n // remove class 'open-left' from all .dropdown-menu elements\n $('.dropdown-menu').removeClass('open-left');\n // add the class back if the dropdown is too close to the right side of the window\n if (dropdownWidth > btnOffset) {\n dropdown.addClass('open-left');\n }\n });\n};\n","export default () => {\n // Create colored progress bar for damn webkit browsers >.<\n\n const rangeSlider = document.querySelector('input[type=range]');\n\n if (rangeSlider) {\n rangeSlider.style.setProperty('--val', +rangeSlider.value);\n rangeSlider.style.setProperty('--max', +rangeSlider.max);\n rangeSlider.style.setProperty('--min', +rangeSlider.min);\n\n rangeSlider.addEventListener('input', () => {\n rangeSlider.style.setProperty('--val', +rangeSlider.value);\n }, false);\n }\n};\n","/* globals $ */\n\nimport Flickity from 'flickity';\nimport 'flickity-fullscreen';\nimport 'flickity-as-nav-for';\nimport 'imagesloaded';\n\nfunction setFlickityOnGallery($gallery) {\n const $items = $gallery.find('.gallery-item');\n\n // Toggle opacity to avoid load blink\n $gallery.addClass('ready');\n\n // Add counter\n $items.each(function (i) {\n $(this).find('figcaption')\n .append(`\n <span class=\"gallery-counter\">${i + 1}/${$items.length}</span>\n `);\n });\n\n // Instantiate Flickity gallery\n new Flickity($gallery.get(0), {\n pageDots: false,\n fullscreen: true,\n setGallerySize: true,\n arrowShape: 'M14.2,45.8L53,7.1c1.6-1.6,1.6-4.3,0-5.9s-4.3-1.6-5.9,0L1.2,47c-1.6,1.6-1.6,4.3,0,5.9c0,0,0,0,0,0l45.8,45.8c1.6,1.6,4.3,1.6,5.9,0s1.6-4.3,0-5.9L14.2,54.1h81.6c2.3,0,4.2-1.9,4.2-4.2s-1.9-4.2-4.2-4.2H14.2z',\n });\n\n // Replace fullscreen icons\n $('.flickity-fullscreen-button-view svg path')\n .attr(\n 'd',\n 'M32,11.9h-2.7V6.5H24V3.8h8V11.9z M24,28.2v-2.7h5.3v-5.4H32v8.2H24z M0,20.1h2.7v5.4H8v2.7H0V20.1z M8,3.8v2.7H2.7v5.4H0V3.8H8z',\n );\n $('.flickity-fullscreen-button-exit svg path')\n .attr(\n 'd',\n 'M18.1,16l13.4,13.4c0.6,0.6,0.6,1.5,0,2.1c-0.6,0.6-1.5,0.6-2.1,0L16,18.1L2.6,31.6c-0.6,0.6-1.5,0.6-2.1,0c-0.6-0.6-0.6-1.5,0-2.1l0,0L13.9,16L0.4,2.6C-0.1,2-0.1,1,0.4,0.4s1.5-0.6,2.1,0L16,13.9L29.4,0.4c0.6-0.6,1.5-0.6,2.1,0c0.6,0.6,0.6,1.5,0,2.1L18.1,16z',\n );\n\n // Improve prev/next buttons position\n const height = $gallery.find('.gallery-item.is-selected img')\n .height();\n $gallery.find('.flickity-prev-next-button')\n .css('top', `${height / 2}px`);\n}\n\nfunction setFlickityGalleryNav($galleryNav) {\n $galleryNav.imagesLoaded()\n .always(function (instance) {\n const target = $galleryNav.data('gallery');\n\n // Toggle opacity to avoid load blink\n $galleryNav.addClass('ready');\n\n // Instantiate Flickity nav\n new Flickity($galleryNav.get(0), {\n asNavFor: `#${target}`,\n cellAlign: 'left',\n pageDots: false,\n prevNextButtons: false,\n contain: true,\n });\n })\n .fail(function () {\n console.log(`one image is broken for a gallery nav`);\n });\n}\n\nexport default () => {\n const $galleries = $('.gallery');\n\n // Base gallery logic\n if ($galleries.length > 0) {\n console.log('starting to gallerynav');\n $galleries.each(function (i) {\n $(this).imagesLoaded()\n .always(function (instance) {\n setFlickityOnGallery($($galleries[i]));\n\n // once the galary is loaded, try to find any nav linked for the current gallery\n const $galleryNavs = $(`.gallery-nav[data-gallery='${$galleries[i].id}']`);\n\n if ($galleryNavs.length > 0) {\n $galleryNavs.each(function (j) {\n setFlickityGalleryNav($($galleryNavs[j], $galleries[i].id));\n });\n }\n })\n .fail(function () {\n console.log(`one image is broken for a gallery`);\n });\n });\n }\n};\n","/* globals $ */\n\nexport default () => {\n $('.upload').find('input[type=\"file\"]').each(function () {\n const $input = $(this);\n const $preview = $input.next().next('.upload-preview');\n\n $input.on('change', () => {\n const files = $input[0].files;\n let previewContent = files[0].name;\n\n if (files.length > 1) {\n previewContent = `<ul>${Array.from(files).map(file => `<li>${file.name}</li>`).join().replace(/,/g, '')}</ul>`;\n }\n\n $preview.html(previewContent);\n });\n });\n};\n\n","/* globals $ */\n\nexport default () => {\n $('.select-multiple').each((index, element) => {\n $(element).multipleSelect({\n placeholder: $(element).attr('data-placeholder') || '',\n width: '100%',\n });\n });\n};\n","/* globals $ */\n\nexport default () => {\n $('.tag-input').selectize({\n plugins: ['remove_button'],\n render: {\n item: (data, escape) => `<div class=\"tag tag-primary\">${escape(data.text)}</div>`,\n },\n create: input => ({\n value: input,\n text: input,\n }),\n });\n};\n","/* globals $ */\n\nexport default () => {\n $('.datepicker').pickadate({\n monthsFull: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],\n monthsShort: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jui', 'Jui', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc'],\n weekdaysFull: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],\n weekdaysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],\n labelMonthNext: 'Prochain mois',\n labelMonthPrev: 'Mois précédent',\n labelMonthSelect: 'Sélectionnez un mois',\n labelYearSelect: 'Sélectionnez une année',\n format: 'd mmmm yyyy',\n firstDay: 1,\n today: '',\n clear: '',\n close: '',\n });\n};\n","/* globals $ */\n\nexport default () => {\n // initialise booleans to enable or disable js mobile features, based on css breakpoints\n let isMobile = false;\n let showLastMonthWeek = false;\n let initialWeek = false;\n const now = new Date();\n const timestamp = new Date(now.getFullYear(), now.getMonth(), now.getDate()) / 1;\n\n /*\n * define if all dates in a row are disabled\n */\n function isRowDisabled(weekNum, container) {\n const disabledCount = $(`tbody tr:nth-child(${weekNum}) .picker__day--outfocus`, container)\n .length;\n if (disabledCount === 7) {\n return true;\n }\n return false;\n }\n\n /*\n * Custom managemet of prev / next on mobile\n */\n function handlePrevNext(container, selected) {\n let weekNum = $('tr', container).index($('tr:has(.picker__day--selected)', container));\n if (initialWeek) {\n weekNum = initialWeek;\n initialWeek = false;\n }\n\n // only setup listeners when on mobile\n if (!isMobile) return container;\n\n if (showLastMonthWeek) {\n // handle display last week of the month after clicking prev\n showLastMonthWeek = false;\n weekNum = 6;\n if (isRowDisabled(6, container)) {\n weekNum = 5;\n }\n }\n\n // initialise data attibute\n $('tbody', container).attr('data-week', weekNum);\n\n $('.picker__nav--next', container).on('click', (e) => {\n if (weekNum < 6 && !isRowDisabled(weekNum + 1, container)) {\n // if we are not displaying the last row:\n // disable built-in behaviour and update data attribute\n e.stopPropagation();\n weekNum += 1;\n $('tbody', container).css('transition', 'left 0.4s');\n $('tbody', container).attr('data-week', weekNum);\n } else {\n // let plugin proceed to next month\n\n // reset week index\n weekNum = 1;\n }\n });\n\n $('.picker__nav--prev', container).on('click', (e) => {\n if (weekNum > 1) {\n // if we are not displaying the first row:\n // disable built-in behaviour and update visual to show previous week\n e.stopPropagation();\n weekNum -= 1;\n $('tbody', container).css('transition', 'left 0.4s');\n $('tbody', container).attr('data-week', weekNum);\n } else {\n // let plugin proceed to previous month\n\n // set flag to display last week of month at next render\n showLastMonthWeek = true;\n }\n });\n\n // enable transitions only when prev/next arrow are clicked\n $('.picker__day', container).each(function () {\n $(this).on('click', function () {\n $(this)\n .parent()\n .parent()\n .parent()\n .css('transition', 'left 0s');\n });\n });\n }\n\n /*\n * Focus today\n */\n function selectToday(picker) {\n // select today's week on initialisation\n picker.set('select', [now.getFullYear(), now.getMonth(), now.getDate()]);\n }\n\n /*\n * Display correct month labels on the side of the desktop version\n */\n function handleMonthLabels(picker, months) {\n const alreadyHandled = $('.nextMonthLabel', picker.$holder).length > 0;\n if (alreadyHandled) {\n return true;\n }\n\n const wrapper = picker.component.$node.parent();\n const next = $('.nextMonthLabel', wrapper);\n const prev = $('.prevMonthLabel', wrapper);\n\n let nextMonthIndex = picker.component.item.view.month + 1;\n if (nextMonthIndex === months.length) nextMonthIndex = 0;\n\n let prevMonthIndex = picker.component.item.view.month - 1;\n if (prevMonthIndex < 0) prevMonthIndex = 11;\n\n next.html(months[nextMonthIndex]);\n prev.html(months[prevMonthIndex]);\n\n $('.picker__box', picker.$root).append(next.clone());\n $('.picker__box', picker.$root).append(prev.clone());\n }\n\n /*\n * handle custom highlights\n */\n function setHighlights(container) {\n // we check all displayed dates, and highlight the ones we want to\n $('.picker__day--infocus', container).each(function () {\n const currentTimestamp = $(this).data('pick');\n const date = new Date(currentTimestamp);\n const dateString = `${date.getFullYear()}-${`0${date.getMonth() + 1}`.slice(-2)}-${`0${date.getDate()}`.slice(-2)}`;\n\n // this is arbitrary. change this with personal logic when needed and add you own class\n if (dateString === '2018-03-28') {\n $(this).addClass('custom-highlight');\n }\n });\n }\n\n /*\n * INIT datepicket-event\n */\n $('.datepicker-fancy').each(function () {\n const monthsShort = [\n 'Jan',\n 'Fév',\n 'Mar',\n 'Avr',\n 'Mai',\n 'Jui',\n 'Jui',\n 'Aoû',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Déc',\n ];\n const container = $(this).parent();\n $(this).pickadate({\n monthsFull: [\n 'Janvier',\n 'Février',\n 'Mars',\n 'Avril',\n 'Mai',\n 'Juin',\n 'Juillet',\n 'Août',\n 'Septembre',\n 'Octobre',\n 'Novembre',\n 'Décembre',\n ],\n monthsShort,\n weekdaysFull: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],\n weekdaysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],\n labelMonthNext: 'Prochain mois',\n labelMonthPrev: 'Mois précédent',\n labelMonthSelect: 'Sélectionnez un mois',\n labelYearSelect: 'Sélectionnez une année',\n format: 'd mmmm yyyy',\n firstDay: 1,\n today: '',\n clear: '',\n close: '',\n onRender() {\n handleMonthLabels(this, monthsShort);\n\n if (isMobile) {\n // refresh listeners after render\n handlePrevNext(container);\n }\n },\n onStart() {\n selectToday(this);\n setHighlights(this);\n\n // focus on today's week on start\n const selected = $('tr:has(.picker__day--selected)', container);\n if (selected.length > 0) {\n initialWeek = $('tr', container).index(selected);\n }\n\n // enable mobile behaviour when needed\n isMobile = $('.datepicker-fancy + .picker table').css('display') === 'block';\n }\n });\n });\n};\n","/* globals $ */\n\nexport default () => {\n $(function () {\n $('[data-toggle=\"popover\"]').popover({\n placement: 'top',\n html: true,\n offset: -135,\n template: '<div class=\"popover\" role=\"tooltip\"><div class=\"popover-body\"></div></div>',\n });\n });\n};\n\n","/* global $ */\n\nexport default () => {\n $('.search').on('shown.bs.dropdown', () => {\n $('.search input[type=\"text\"]').trigger('focus');\n });\n};\n","/* global $ */\n\nexport default () => {\n\n $('#search-mobile-toggle').on('click', () => {\n\n const searchContainer = $('.search-mobile');\n const searchField = searchContainer.find('.form-control');\n\n searchContainer.toggleClass('show');\n $('body').toggleClass('search-open');\n\n if (searchContainer.hasClass('show')) {\n searchField.trigger('focus');\n }\n\n });\n\n $('#search-mobile-close').on('click', () => {\n\n const searchContainer = $('.search-mobile');\n\n searchContainer.removeClass('show');\n $('body').removeClass('search-open');\n\n });\n\n};\n","/* globals $, ClipboardJS */\n\nexport default () => {\n $('.social-share-copy').each(function () {\n const copyBtn = $(this);\n const baseText = copyBtn.text();\n const successText = copyBtn.data('success');\n const clipboard = new ClipboardJS(copyBtn[0], {\n target: (trigger) => {\n return $(trigger).prev(\"input\")[0];\n },\n });\n\n clipboard.on('success', (e) => {\n $(e.trigger).text(successText);\n setTimeout(() => $(e.trigger).text(baseText), 3000);\n\n e.clearSelection();\n });\n });\n};\n","/* globals $ */\n\nimport Flickity from 'flickity';\nimport Imagesloaded from 'imagesloaded';\n\nexport default () => {\n if ($('.card-slider-wrapper').length > 0) {\n // Mobile width corresponds to SM breakpoint from Bootstrap.\n const isMobile = $(window).width() < 768;\n\n $( \".card-slider-wrapper\" ).each( ( index, cardSliderWrapper ) => {\n let flkty;\n let cardSlider = $(cardSliderWrapper).find('.card-slider')[0];\n\n Imagesloaded(cardSlider, () => {\n flkty = new Flickity(cardSlider, {\n cellAlign: 'left',\n setGallerySize: true,\n pageDots: isMobile,\n prevNextButtons: false,\n contain: true,\n groupCells: false,\n });\n\n $(cardSliderWrapper).find('#card-slider-prev').on('click', () => {\n flkty.previous();\n });\n\n $(cardSliderWrapper).find('#card-slider-next').on('click', () => {\n flkty.next();\n });\n\n $(cardSliderWrapper).find('.card-slider-cell').css('height', '100%');\n\n flkty.on('select', () => {\n $(cardSliderWrapper).find('.card-slider-btn').removeClass('disabled');\n\n if (flkty.selectedIndex === 0) {\n $(cardSliderWrapper).find('#card-slider-prev').addClass('disabled');\n }\n\n if (\n flkty.selectedIndex + 1 === flkty.slides.length ||\n flkty.selectedIndex + 2 === flkty.slides.length\n ) {\n $(cardSliderWrapper).find('#card-slider-next').addClass('disabled');\n }\n });\n\n });\n });\n }\n};\n","/* global $ */\n\nconst drawer = () => {\n $('.drawer-toggle').click(function () {\n const $drawer = $(this).parent('.drawer');\n const $drawerLink = $drawer.find('.drawer-link');\n const $drawerToggle = $(this);\n const breakpoint = 992;\n\n if ($drawer.hasClass('open')) {\n $drawer.removeClass('open');\n $drawer.css({ width: '' });\n $drawerLink.css({ width: $drawerToggle.width() });\n } else {\n let linkWidth = '100%';\n\n if ($(window).width() > breakpoint) {\n linkWidth = $drawerLink.find('.text').outerWidth();\n $drawer.css({ width: linkWidth });\n }\n $drawer.addClass('open');\n $drawerLink.css({ width: linkWidth });\n }\n });\n};\n\nexport default drawer;\n","/* global $ */\n\nexport default () => {\n\n $('.btn-collapse').click(function(){\n\n const parent = $(this).parent(\".line\");\n const toggleIcon = $(this).find(\"span\")\n\n parent.toggleClass('open');\n toggleIcon.toggleClass('show');\n });\n\n};\n","/* globals $, introJs */\n\nexport default () => {\n if ($('#tour-lab').length > 0) {\n const startIntro = () => {\n const intro = introJs();\n intro.setOptions({\n buttonClass: 'btn btn-secondary btn-sm mt-4',\n tooltipPosition: 'auto',\n positionPrecedence: ['bottom', 'top', 'right', 'left'],\n scrollTo: 'tooltip',\n scrollToElement: true,\n steps: [\n {\n intro:\n \"This is the laboratory's homepage. <b>It serves to guide the visitors to the different sub-contents</b>. The main contents are projects and publications. Here is the hierarchical order that we are proposing.\",\n },\n {\n element: '#tour-hero',\n intro:\n 'Define the <b>laboratory title</b> and a <b>cover image</b> using the <a href=\"#/organisms/hero\" target=\"_blank\">hero</a> component or only <b>a title</b>, if there is no cover, using the following step structure.',\n },\n {\n element: '#tour-intro',\n intro:\n 'Type a <b>succinct introduction paragraph</b> wrapped inside a <code>.container-grid</code> (the title can also be added here)',\n },\n {\n element: '#tour-projects',\n intro: `\n The main objective of a laboratory is to show the projects that are carried out there. In this section, you can use the <a href=\"#/content-types/research-project\" target=\"_blank\">Research project</a> content types to show them. We advise you to put a <b>maximum of 3 projects</b> on the lab’s homepage and then put a link to the page that lists all the projects.\n `,\n },\n {\n element: '#tour-publications',\n intro: `\n Laboratories also produce publications. You can list <b>up to 5</b> here with the <a href=\"#/content-types/publication\" target=\"_blank\">Publication</a> component and add a link to the page that lists all the publications.\n `,\n },\n {\n element: '#tour-news',\n intro: `\n If you have some news about your laboratory, you can list the latest at this location. We advise you not to list too much (maximum 2) and use the component <a href=\"#/content-types/news\" target=\"_blank\">News</a> content-types (<b>Basic teaser</b>) and add a link to all news page.\n `,\n },\n {\n element: '#tour-partof',\n intro: `\n <p>\n This section is intended to <b>provide the context of the laboratory</b>. It is possible for a laboratory to belong to several institutes and/or faculties. If this is the case, we advise you to use a teaser that brings the visitor to a listing page, rather than putting them all on the lab’s homepage. Laboratories can have themes that categorize them. It is recommended to use component “tag” to list them.\n </p>\n <p>\n For this part, you can use some of the <a href=\"#/content-types/school\" target=\"_blank\">School</a> and <a href=\"#/content-types/institute\" target=\"_blank\">Institute</a> content types. The themes are based on the <a href=\"#/atoms/tag\" target=\"_blank\">tag</a> component.\n </p>\n `,\n },\n {\n element: '#tour-contact',\n intro: `\n <b>Several people may want to contact</b> the laboratory: press, potential collaborators, people interested in your work or simply people who want to know where you are located. That’s why we recommend using the <a href=\"#/organisms/contact\" target=\"_blank\">Contact</a> component (<b>Banner</b>) that gives all this information.\n `,\n },\n {\n element: '#tour-team',\n intro: `\n Some visitors may want to ask you questions or <b>see who composes the laboratory's team</b>. It is possible to link to the team page using the <a href=\"#/content-types/basic-page\" target=\"_blank\">Teaser basic page</a> component.\n `,\n },\n {\n element: '#tour-sponsors',\n intro: `\n It is possible that you have sponsors. On a second column, you can list them thanks to the <a href=\"#/molecules/sponsor\" target=\"_blank\">Sponsor</a> component.\n `,\n },\n ],\n });\n intro.start();\n };\n\n $('#tour-start').click(() => startIntro());\n }\n};\n","/* global $ */\n\nexport default () => {\n $('a').on('click', (e) => {\n const target_href = $(e.target).attr('href');\n if (target_href && target_href.length > 1 && target_href.match('^#')) {\n $(e.target)[0].scrollIntoView();\n }\n });\n};\n"],"names":["module","exports","it","TypeError","String","isObject","wellKnownSymbol","create","definePropertyModule","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","f","configurable","value","key","charAt","S","index","unicode","length","bind","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","toLength","createProperty","getIteratorMethod","arrayLike","result","step","iterator","next","O","C","this","argumentsLength","arguments","mapfn","mapping","iteratorMethod","call","done","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","indexOf","IndexedObject","arraySpeciesCreate","push","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","callbackfn","that","specificCreate","self","boundFunction","target","forEach","map","filter","some","every","find","findIndex","filterOut","fails","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","argument","method","isArray","originalArray","anObject","iteratorClose","fn","ENTRIES","error","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","from","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","toString","slice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","Object","callee","has","ownKeys","getOwnPropertyDescriptorModule","source","keys","defineProperty","getOwnPropertyDescriptor","i","F","getPrototypeOf","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","DESCRIPTORS","bitmap","enumerable","writable","toPrimitive","propertyKey","$","createIteratorConstructor","setPrototypeOf","createNonEnumerableProperty","redefine","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","name","values","proto","forced","get","global","document","EXISTS","createElement","getBuiltIn","match","version","userAgent","process","versions","v8","split","setGlobal","copyConstructorProperties","isForced","options","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","regexpExec","RegExpPrototype","RegExp","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","nativeRegExpMethod","nativeMethod","regexp","str","arg2","forceStringMethod","$exec","aFunction","a","b","c","apply","path","variable","namespace","classof","floor","Math","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","n","check","globalThis","window","g","Function","hasOwnProperty","hasOwn","propertyIsEnumerable","store","functionToString","inspectSource","set","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","type","arg","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","MATCH","isRegExp","returnMethod","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","test","getOwnPropertySymbols","symbol","Symbol","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","Properties","objectKeys","IE8_DOM_DEFINE","$defineProperty","P","Attributes","propertyIsEnumerableModule","$getOwnPropertyDescriptor","internalObjectKeys","concat","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","V","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","join","R","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","input","ignoreCase","dotAll","RE","s","TAG","uid","SHARED","mode","copyright","defaultConstructor","toInteger","requireObjectCoercible","CONVERT_TO_STRING","pos","first","second","size","charCodeAt","codeAt","max","min","integer","ceil","isNaN","PREFERRED_STRING","val","valueOf","id","postfix","random","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","k","len","E","A","$find","addToUnscopables","FIND","SKIPS_HOLES","checkCorrectnessOfIteration","iterable","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","separator","$map","HAS_SPECIES_SUPPORT","nativeSlice","start","end","Constructor","fin","FunctionPrototype","FunctionPrototypeToString","nameRE","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","p","rf","defineIterator","STRING_ITERATOR","setInternalState","iterated","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","res","rx","fullUnicode","matchStr","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","j","replacerArgs","speciesConstructor","callRegExpExec","arrayPush","MAX_UINT32","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","e","z","factory","matchesMethod","ElemProto","Element","matches","matchesSelector","prefixes","elem","selector","EvEmitter","on","eventName","listener","events","_events","listeners","once","onceEvents","_onceEvents","off","splice","emitEvent","args","onceListeners","allOff","utils","prop","num","div","arraySlice","makeArray","obj","removeFrom","ary","getParent","parentNode","body","getQueryElement","querySelector","handleEvent","event","filterFindElements","elems","ffElems","HTMLElement","childElems","querySelectorAll","debounceMethod","_class","methodName","threshold","timeoutName","timeout","clearTimeout","_this","setTimeout","docReady","callback","readyState","addEventListener","toDashed","$1","$2","console","htmlInit","WidgetClass","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","jQuery","attr","getAttribute","JSON","parse","className","instance","Flickity","createMethods","_createAsNavFor","activateAsNavFor","deactivateAsNavFor","destroyAsNavFor","asNavForOption","asNavFor","setNavCompanion","companion","navCompanion","onNavCompanionSelect","navCompanionSelect","onNavStaticClick","isInstant","selectedCell","selectedCells","firstIndex","cells","selectIndex","t","cellAlign","selectCell","removeNavSelectedElements","navSelectedElements","cell","element","changeNavSelectedClass","navElem","classList","pointer","cellElement","cellIndex","_createFullscreen","isFullscreen","fullscreen","viewFullscreenButton","FullscreenButton","exitFullscreenButton","_changeFullscreenActive","childMethod","isActive","activeMethod","viewFullscreen","_changeFullscreen","focus","exitFullscreen","isView","classMethod","documentElement","resize","reposition","dispatchEvent","toggleFullscreen","setGallerySize","flickity","createButton","createIcon","onClick","clickHandler","viewport","height","keyboardHandlers","setAttribute","text","label","toUpperCase","title","svgURI","pathDirections","view","exit","svg","createElementNS","direction","activate","deactivate","removeEventListener","insert","_makeCells","fragment","createDocumentFragment","getCellsFragment","isAppend","slider","insertCellElement","insertBefore","endCells","_sizeCells","cellChange","append","prepend","remove","getCells","minCellIndex","cellSizeChange","getCell","getSize","changedCellIndex","isPositioningSlider","prevSelectedElem","selectedElement","_positionCells","_getWrapShiftCells","selectedIndex","getCellSlideIndex","slides","select","positionSliderAtSelected","isAnimating","restingFrames","animate","applyDragForce","applySelectedAttraction","previousX","x","integratePhysics","positionSlider","settle","requestAnimationFrame","wrapAround","modulo","slideableWidth","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","getPositionValue","transform","firstSlide","positionX","progress","slidesWidth","selectedSlide","velocity","percentPosition","round","innerWidth","isPointerDown","isFreeScrolling","beforeGap","_shiftCells","beforeShiftCells","afterGap","afterShiftCells","gap","shift","cellShift","wrapShift","outerWidth","getFrictionFactor","force","isDraggable","dragForce","dragX","applyForce","selectedAttraction","Cell","parent","destroy","unselect","side","originSide","removeAttribute","setPosition","updateTarget","renderPosition","setDefaultTarget","marginProperty","width","add","removeChild","Unidragger","extend","defaults","draggable","dragThreshold","_touchActionValue","isTouch","isTouchmoveScrollCanceled","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","handles","bindHandles","unbindHandles","bindDrag","unbindDrag","pointerDown","okayPointerDown","_pointerDownPreventDefault","pointerDownFocus","activeElement","pointerDownBlur","pointerDownScroll","getScrollPosition","_pointerDownDefault","pointerDownPointer","pageX","pageY","_bindPostStartEvents","focusNodes","INPUT","TEXTAREA","SELECT","pageXOffset","y","pageYOffset","nodeName","isTouchStart","isTouchPointer","pointerType","isFocusNode","preventDefault","hasDragStarted","moveVector","abs","pointerUp","isTouchScrolling","_dragPointerUp","pointerDone","dragStart","dragStartPosition","startAnimation","pointerMove","_dragPointerMove","_dragMove","dragMove","previousDragX","originBound","endBound","getLastSlide","dragMoveTime","Date","dragEnd","freeScroll","dragEndRestingSelect","restingX","getRestingPosition","dragEndBoostSelect","isDragSelect","distance","getSlideDistance","positiveResting","_getClosestResting","negativeResting","increment","minDistance","Infinity","condition","contain","dist","minDist","isWrapAround","slideIndex","slide","wrap","delta","staticClick","clickedCell","getParentCell","cellElem","onscroll","scroll","scrollMoveX","scrollMoveY","_pointerDone","Slide","animatePrototype","getComputedStyle","moveElements","toElem","GUID","instances","queryElement","flickityGUID","option","$element","_create","accessibility","freeScrollFriction","friction","namespaceJQueryEvents","guid","_createSlider","watchCSS","opts","_filterFindCellElements","children","reloadCells","tabIndex","selectInitialIndex","isInitActivated","cellSelector","positionCells","getLastCell","maxCellHeight","cellX","startCell","outerHeight","updateSlides","_containSlides","nextMargin","canCellFit","_getCanCellFit","slideWidth","firstMargin","addCell","updateSelectedSlide","groupCells","number","parseInt","percentMatch","percent","_init","setCellAlign","cellAlignShorthands","center","left","right","shorthand","adaptiveHeight","_unshiftCells","gapX","_getGapCells","isRightToLeft","beginMargin","endMargin","contentWidth","isContentSmaller","beginBound","emitArgs","$event","jQEvent","Event","trigger","isWrap","_wrapSelect","prevIndex","wrapIndex","backWrapDelta","forewardWrapDelta","previous","unselectSelectedSlide","selectedElements","getCellElements","initialIndex","queryCell","getAdjacentCellElements","adjCount","cellElems","uiChange","childUIPointerDown","onresize","onkeydown","isNotFocused","handler","keyCode","leftMethod","rightMethod","prevScrollY","preventScroll","scrollTo","removeData","bridget","setJQuery","jq","LazyLoader","img","load","_createLazyload","lazyLoad","lazyImages","lazyCellImages","lazyloadAttr","srcAttr","srcsetAttr","imgs","getCellLazyImages","srcset","onload","complete","onerror","Unipointer","PageDots","holder","dots","handleClick","setDots","bindStartEvent","unbindStartEvent","addDots","removeDots","count","newDots","dot","updateSelected","selectedDot","onTap","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","Player","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","play","hidden","tick","time","autoPlay","clear","stop","pause","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","PrevNextButton","isEnabled","isPrevious","leftDirection","isLeft","disable","createSVG","update","shape","pathMovements","arrowShape","x0","x1","y1","x2","y2","x3","onclick","enable","disabled","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","isOriginLeft","lastCell","lastMargin","getStyleSize","parseFloat","logError","message","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","padding","borderStyle","borderWidth","boxSizing","setup","nodeType","innerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","ImagesLoaded","onAlways","queryElem","elements","getImages","jqDeferred","Deferred","images","addElementImages","addImage","background","addElementBackgroundImages","elementNodeTypes","childImgs","child","LoadingImage","Background","url","Image","reURL","backgroundImage","addBackground","loadingImage","onProgress","image","progressedCount","hasAnyBroken","isLoaded","notify","debug","log","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","unbindEvents","makeJQueryPlugin","imagesLoaded","promise","_bindHandles","isAdd","bindMethod","touchAction","handle","_bindStartEvent","PointerEvent","cursorNodes","OPTION","clickTypes","radio","checkbox","button","submit","file","isCursorNode","isClickType","isOkay","_pointerReset","focused","blur","isDragging","_dragStart","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","startEvent","getTouch","touches","touch","identifier","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointerId","postStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","onmouseup","_pointerUp","onpointerup","ontouchend","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","definition","o","loadIcons","svgPath","ajax","XMLHttpRequest","send","status","innerHTML","responseText","insertAdjacentElement","bannerElement","cookieConsent","opt_visible","setVisibility","cookieconsent","initialise","cookieI18n","en","msg","fr","de","lang","substring","domain_name","hostame","location","hostname","hostParts","reverse","theme","palette","popup","dismiss","showLink","cookie","autoAttach","get_cookieconsent_config","err","cookieBanner","visible","show","removeClass","hide","addClass","nutrimenuScore","epflElements","expandBreadcrumb","breadcrumbDropToggle","backToTopBtn","rangeSlider","activeClass","parentClass","toggleDesktopMenu","$galleries","each","$input","$preview","files","previewContent","multipleSelect","placeholder","selectize","plugins","render","item","escape","pickadate","monthsFull","monthsShort","weekdaysFull","weekdaysShort","labelMonthNext","labelMonthPrev","labelMonthSelect","labelYearSelect","format","firstDay","today","isMobile","showLastMonthWeek","initialWeek","now","isRowDisabled","weekNum","container","getFullYear","getMonth","getDate","onRender","picker","months","$holder","wrapper","component","$node","prev","nextMonthIndex","month","prevMonthIndex","$root","clone","handleMonthLabels","selected","stopPropagation","css","handlePrevNext","onStart","currentTimestamp","date","setHighlights","datepickerEvent","popover","placement","offset","template","always","$gallery","$items","setFlickityOnGallery","$galleryNavs","$galleryNav","fail","searchContainer","searchField","toggleClass","hasClass","copyBtn","baseText","successText","ClipboardJS","clearSelection","getTime","collapse","toggle","itemId","link","Tablesaw","init","cardSliderWrapper","flkty","cardSlider","Imagesloaded","featherSvgPath","mustOpen","navToggle","offsetX","offsetY","top","scrollTop","parents","ancestor","firstLeveItem","toggleMobileMenu","click","$drawer","$drawerLink","$drawerToggle","linkWidth","btnPos","currentTarget","documentWitdh","dropdown","siblings","dropdownWidth","btnOffset","setProperty","toggleIcon","intro","introJs","setOptions","buttonClass","tooltipPosition","positionPrecedence","scrollToElement","steps","target_href","scrollIntoView"],"sourceRoot":""}
|