shepherdjs_rails 2.4.0 → 4.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +0,0 @@
1
- {"version":3,"file":"shepherd.js","sources":["../../node_modules/lodash-es/_baseSlice.js","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/toNumber.js","../../node_modules/lodash-es/toFinite.js","../../node_modules/lodash-es/toInteger.js","../../node_modules/lodash-es/drop.js","../../node_modules/lodash-es/isUndefined.js","../../src/js/evented.js","../../node_modules/lodash-es/_createBaseFor.js","../../node_modules/lodash-es/_baseFor.js","../../node_modules/lodash-es/_baseTimes.js","../../node_modules/lodash-es/_baseIsArguments.js","../../node_modules/lodash-es/isArguments.js","../../node_modules/lodash-es/isArray.js","../../node_modules/lodash-es/stubFalse.js","../../node_modules/lodash-es/isBuffer.js","../../node_modules/lodash-es/_isIndex.js","../../node_modules/lodash-es/isLength.js","../../node_modules/lodash-es/_baseIsTypedArray.js","../../node_modules/lodash-es/_baseUnary.js","../../node_modules/lodash-es/_nodeUtil.js","../../node_modules/lodash-es/isTypedArray.js","../../node_modules/lodash-es/_arrayLikeKeys.js","../../node_modules/lodash-es/_isPrototype.js","../../node_modules/lodash-es/_overArg.js","../../node_modules/lodash-es/_nativeKeys.js","../../node_modules/lodash-es/_baseKeys.js","../../node_modules/lodash-es/isFunction.js","../../node_modules/lodash-es/isArrayLike.js","../../node_modules/lodash-es/keys.js","../../node_modules/lodash-es/_baseForOwn.js","../../node_modules/lodash-es/identity.js","../../node_modules/lodash-es/_castFunction.js","../../node_modules/lodash-es/forOwn.js","../../node_modules/lodash-es/_getPrototype.js","../../node_modules/lodash-es/isPlainObject.js","../../node_modules/lodash-es/isElement.js","../../node_modules/lodash-es/_coreJsData.js","../../node_modules/lodash-es/_isMasked.js","../../node_modules/lodash-es/_toSource.js","../../node_modules/lodash-es/_baseIsNative.js","../../node_modules/lodash-es/_getValue.js","../../node_modules/lodash-es/_getNative.js","../../node_modules/lodash-es/_DataView.js","../../node_modules/lodash-es/_Map.js","../../node_modules/lodash-es/_Promise.js","../../node_modules/lodash-es/_Set.js","../../node_modules/lodash-es/_WeakMap.js","../../node_modules/lodash-es/_getTag.js","../../node_modules/lodash-es/isEmpty.js","../../node_modules/lodash-es/isString.js","../../node_modules/element-matches/index.js","../../node_modules/lodash-es/_defineProperty.js","../../node_modules/lodash-es/_baseAssignValue.js","../../node_modules/lodash-es/eq.js","../../node_modules/lodash-es/_assignValue.js","../../node_modules/lodash-es/_baseZipObject.js","../../node_modules/lodash-es/zipObject.js","../../node_modules/popper.js/dist/esm/popper.js","../../node_modules/tippy.js/esm/index.all.js","../../src/js/utils/error-messages.js","../../src/js/utils.js","../../src/js/bind.js","../../src/js/step.js","../../node_modules/lodash-es/isNumber.js","../../src/js/utils/modal.js","../../src/js/utils/dom.js","../../node_modules/lodash-es/now.js","../../node_modules/lodash-es/debounce.js","../../node_modules/lodash-es/_baseDelay.js","../../node_modules/lodash-es/_apply.js","../../node_modules/lodash-es/_overRest.js","../../node_modules/lodash-es/constant.js","../../node_modules/lodash-es/_baseSetToString.js","../../node_modules/lodash-es/_shortOut.js","../../node_modules/lodash-es/_setToString.js","../../node_modules/lodash-es/_baseRest.js","../../node_modules/lodash-es/defer.js","../../src/js/modal.js","../../src/js/utils/tooltip-defaults.js","../../src/js/utils/cleanup.js","../../src/js/tour.js","../../src/js/shepherd.js"],"sourcesContent":["/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default drop;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import drop from 'lodash-es/drop';\nimport isUndefined from 'lodash-es/isUndefined';\n\nexport class Evented {\n on(event, handler, ctx) {\n const once = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];\n\n if (isUndefined(this.bindings)) {\n this.bindings = {};\n }\n if (isUndefined(this.bindings[event])) {\n this.bindings[event] = [];\n }\n this.bindings[event].push({ handler, ctx, once });\n }\n\n once(event, handler, ctx) {\n this.on(event, handler, ctx, true);\n }\n\n off(event, handler) {\n if (isUndefined(this.bindings) || isUndefined(this.bindings[event])) {\n return false;\n }\n\n if (isUndefined(handler)) {\n delete this.bindings[event];\n } else {\n this.bindings[event].forEach((binding, index) => {\n if (binding.handler === handler) {\n this.bindings[event].splice(index, 1);\n }\n });\n }\n }\n\n trigger(event) {\n if (!isUndefined(this.bindings) && this.bindings[event]) {\n const args = drop(arguments);\n\n this.bindings[event].forEach((binding, index) => {\n const { ctx, handler, once } = binding;\n\n const context = ctx || this;\n\n handler.apply(context, args);\n\n if (once) {\n this.bindings[event].splice(index, 1);\n }\n });\n }\n }\n\n}\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n}\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nexport default baseZipObject;\n","import assignValue from './_assignValue.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nexport default zipObject;\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.7\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**!\n* tippy.js v4.0.1\n* (c) 2017-2019 atomiks\n* MIT License\n*/\nimport Popper from 'popper.js';\n\nvar css = \".tippy-iOS{cursor:pointer!important}.tippy-notransition{transition:none}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 10px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;line-height:1.4;text-align:center;will-change:transform;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:\\\"\\\";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}\";\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar version = \"4.0.1\";\n\nvar isBrowser = typeof window !== 'undefined';\nvar isIE = isBrowser && /MSIE |Trident\\//.test(navigator.userAgent);\nvar isIOS = isBrowser && /iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream;\n\nvar Defaults = {\n a11y: true,\n allowHTML: true,\n animateFill: true,\n animation: 'shift-away',\n appendTo: function appendTo() {\n return document.body;\n },\n aria: 'describedby',\n arrow: false,\n arrowType: 'sharp',\n boundary: 'scrollParent',\n content: '',\n delay: [0, 20],\n distance: 10,\n duration: [325, 275],\n flip: true,\n flipBehavior: 'flip',\n flipOnUpdate: false,\n followCursor: false,\n hideOnClick: true,\n ignoreAttributes: false,\n inertia: false,\n interactive: false,\n interactiveBorder: 2,\n interactiveDebounce: 0,\n lazy: true,\n maxWidth: 350,\n multiple: false,\n offset: 0,\n onHidden: function onHidden() {},\n onHide: function onHide() {},\n onMount: function onMount() {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n placement: 'top',\n popperOptions: {},\n role: 'tooltip',\n showOnInit: false,\n size: 'regular',\n sticky: false,\n target: '',\n theme: 'dark',\n touch: true,\n touchHold: false,\n trigger: 'mouseenter focus',\n updateDuration: 0,\n wait: null,\n zIndex: 9999\n /**\n * If the set() method encounters one of these, the popperInstance must be\n * recreated\n */\n\n};\nvar POPPER_INSTANCE_DEPENDENCIES = ['arrow', 'arrowType', 'boundary', 'distance', 'flip', 'flipBehavior', 'flipOnUpdate', 'offset', 'placement', 'popperOptions'];\n\nvar Selectors = {\n POPPER: '.tippy-popper',\n TOOLTIP: '.tippy-tooltip',\n CONTENT: '.tippy-content',\n BACKDROP: '.tippy-backdrop',\n ARROW: '.tippy-arrow',\n ROUND_ARROW: '.tippy-roundarrow'\n};\n\nvar elementProto = isBrowser ? Element.prototype : {};\nvar matches = elementProto.matches || elementProto.matchesSelector || elementProto.webkitMatchesSelector || elementProto.mozMatchesSelector || elementProto.msMatchesSelector;\n/**\n * Ponyfill for Array.from - converts iterable values to an array\n * @param {Array-like} value\n * @return {Array}\n */\n\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\n/**\n * Ponyfill for Element.prototype.closest\n * @param {Element} element\n * @param {String} parentSelector\n * @return {Element}\n */\n\nfunction closest(element, parentSelector) {\n return (elementProto.closest || function (selector) {\n var el = this;\n\n while (el) {\n if (matches.call(el, selector)) return el;\n el = el.parentElement;\n }\n }).call(element, parentSelector);\n}\n/**\n * Works like Element.prototype.closest, but uses a callback instead\n * @param {Element} element\n * @param {Function} callback\n * @return {Element}\n */\n\nfunction closestCallback(element, callback) {\n while (element) {\n if (callback(element)) return element;\n element = element.parentElement;\n }\n}\n\n/**\n * Determines if a value is a plain object\n * @param {any} value\n * @return {Boolean}\n */\n\nfunction isPlainObject(value) {\n return {}.toString.call(value) === '[object Object]';\n}\n/**\n * Safe .hasOwnProperty check, for prototype-less objects\n * @param {Object} obj\n * @param {String} key\n * @return {Boolean}\n */\n\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\n/**\n * Returns an array of elements based on the value\n * @param {any} value\n * @return {Array}\n */\n\nfunction getArrayOfElements(value) {\n if (isSingular(value)) {\n return [value];\n }\n\n if (value instanceof NodeList) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n try {\n return arrayFrom(document.querySelectorAll(value));\n } catch (e) {\n return [];\n }\n}\n/**\n * Returns a value at a given index depending on if it's an array or number\n * @param {any} value\n * @param {Number} index\n * @param {any} defaultValue\n */\n\nfunction getValue(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? defaultValue : v;\n }\n\n return value;\n}\n/**\n * Debounce utility\n * @param {Function} fn\n * @param {Number} ms\n */\n\nfunction debounce(fn, ms) {\n var timeoutId;\n return function () {\n var _this = this,\n _arguments = arguments;\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () {\n return fn.apply(_this, _arguments);\n }, ms);\n };\n}\n/**\n * Prevents errors from being thrown while accessing nested modifier objects\n * in `popperOptions`\n * @param {Object} obj\n * @param {String} key\n * @return {Object|undefined}\n */\n\nfunction getModifier(obj, key) {\n return obj && obj.modifiers && obj.modifiers[key];\n}\n/**\n * Determines if an array or string includes a value\n * @param {Array|String} a\n * @param {any} b\n * @return {Boolean}\n */\n\nfunction includes(a, b) {\n return a.indexOf(b) > -1;\n}\n/**\n * Determines if the value is singular-like\n * @param {any} value\n * @return {Boolean}\n */\n\nfunction isSingular(value) {\n return isPlainObject(value) || value instanceof Element;\n}\n/**\n * Tricking bundlers, linters, and minifiers\n * @return {String}\n */\n\nfunction innerHTML() {\n return 'innerHTML';\n}\n/**\n * Evaluates a function if one, or returns the value\n * @param {any} value\n * @param {any[]} args\n * @return {Boolean}\n */\n\nfunction evaluateValue(value, args) {\n return typeof value === 'function' ? value.apply(null, args) : value;\n}\n/**\n * Sets a popperInstance `flip` modifier's enabled state\n * @param {Object[]} modifiers\n * @param {any} value\n */\n\nfunction setFlipModifierEnabled(modifiers, value) {\n modifiers.filter(function (m) {\n return m.name === 'flip';\n })[0].enabled = value;\n}\n\n/**\n * Returns a new `div` element\n * @return {HTMLDivElement}\n */\n\nfunction div() {\n return document.createElement('div');\n}\n/**\n * Sets the innerHTML of an element while tricking linters & minifiers\n * @param {HTMLElement} el\n * @param {Element|String} html\n */\n\nfunction setInnerHTML(el, html) {\n el[innerHTML()] = html instanceof Element ? html[innerHTML()] : html;\n}\n/**\n * Sets the content of a tooltip\n * @param {HTMLElement} contentEl\n * @param {Object} props\n */\n\nfunction setContent(contentEl, props) {\n if (props.content instanceof Element) {\n setInnerHTML(contentEl, '');\n contentEl.appendChild(props.content);\n } else {\n contentEl[props.allowHTML ? 'innerHTML' : 'textContent'] = props.content;\n }\n}\n/**\n * Returns the child elements of a popper element\n * @param {HTMLElement} popper\n */\n\nfunction getChildren(popper) {\n return {\n tooltip: popper.querySelector(Selectors.TOOLTIP),\n backdrop: popper.querySelector(Selectors.BACKDROP),\n content: popper.querySelector(Selectors.CONTENT),\n arrow: popper.querySelector(Selectors.ARROW) || popper.querySelector(Selectors.ROUND_ARROW)\n };\n}\n/**\n * Adds `data-inertia` attribute\n * @param {HTMLElement} tooltip\n */\n\nfunction addInertia(tooltip) {\n tooltip.setAttribute('data-inertia', '');\n}\n/**\n * Removes `data-inertia` attribute\n * @param {HTMLElement} tooltip\n */\n\nfunction removeInertia(tooltip) {\n tooltip.removeAttribute('data-inertia');\n}\n/**\n * Creates an arrow element and returns it\n */\n\nfunction createArrowElement(arrowType) {\n var arrow = div();\n\n if (arrowType === 'round') {\n arrow.className = 'tippy-roundarrow';\n setInnerHTML(arrow, '<svg viewBox=\"0 0 24 8\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 8s2.021-.015 5.253-4.218C9.584 2.051 10.797 1.007 12 1c1.203-.007 2.416 1.035 3.761 2.782C19.012 8.005 21 8 21 8H3z\"/></svg>');\n } else {\n arrow.className = 'tippy-arrow';\n }\n\n return arrow;\n}\n/**\n * Creates a backdrop element and returns it\n */\n\nfunction createBackdropElement() {\n var backdrop = div();\n backdrop.className = 'tippy-backdrop';\n backdrop.setAttribute('data-state', 'hidden');\n return backdrop;\n}\n/**\n * Adds interactive-related attributes\n * @param {HTMLElement} popper\n * @param {HTMLElement} tooltip\n */\n\nfunction addInteractive(popper, tooltip) {\n popper.setAttribute('tabindex', '-1');\n tooltip.setAttribute('data-interactive', '');\n}\n/**\n * Removes interactive-related attributes\n * @param {HTMLElement} popper\n * @param {HTMLElement} tooltip\n */\n\nfunction removeInteractive(popper, tooltip) {\n popper.removeAttribute('tabindex');\n tooltip.removeAttribute('data-interactive');\n}\n/**\n * Applies a transition duration to a list of elements\n * @param {Array} els\n * @param {Number} value\n */\n\nfunction applyTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = \"\".concat(value, \"ms\");\n }\n });\n}\n/**\n * Add/remove transitionend listener from tooltip\n * @param {Element} tooltip\n * @param {String} action\n * @param {Function} listener\n */\n\nfunction toggleTransitionEndListener(tooltip, action, listener) {\n tooltip[action + 'EventListener']('transitionend', listener);\n}\n/**\n * Returns the popper's placement, ignoring shifting (top-start, etc)\n * @param {Element} popper\n * @return {String}\n */\n\nfunction getPopperPlacement(popper) {\n var fullPlacement = popper.getAttribute('x-placement');\n return fullPlacement ? fullPlacement.split('-')[0] : '';\n}\n/**\n * Sets the visibility state to elements so they can begin to transition\n * @param {Array} els\n * @param {String} state\n */\n\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\n/**\n * Triggers reflow\n * @param {Element} popper\n */\n\nfunction reflow(popper) {\n void popper.offsetHeight;\n}\n/**\n * Adds/removes theme from tooltip's classList\n * @param {HTMLDivElement} tooltip\n * @param {String} action\n * @param {String} theme\n */\n\nfunction toggleTheme(tooltip, action, theme) {\n theme.split(' ').forEach(function (themeName) {\n tooltip.classList[action](themeName + '-theme');\n });\n}\n/**\n * Constructs the popper element and returns it\n * @param {Number} id\n * @param {Object} props\n */\n\nfunction createPopperElement(id, props) {\n var popper = div();\n popper.className = 'tippy-popper';\n popper.id = \"tippy-\".concat(id);\n popper.style.zIndex = props.zIndex;\n\n if (props.role) {\n popper.setAttribute('role', props.role);\n }\n\n var tooltip = div();\n tooltip.className = 'tippy-tooltip';\n tooltip.style.maxWidth = props.maxWidth + (typeof props.maxWidth === 'number' ? 'px' : '');\n tooltip.setAttribute('data-size', props.size);\n tooltip.setAttribute('data-animation', props.animation);\n tooltip.setAttribute('data-state', 'hidden');\n toggleTheme(tooltip, 'add', props.theme);\n var content = div();\n content.className = 'tippy-content';\n content.setAttribute('data-state', 'hidden');\n\n if (props.interactive) {\n addInteractive(popper, tooltip);\n }\n\n if (props.arrow) {\n tooltip.appendChild(createArrowElement(props.arrowType));\n }\n\n if (props.animateFill) {\n tooltip.appendChild(createBackdropElement());\n tooltip.setAttribute('data-animatefill', '');\n }\n\n if (props.inertia) {\n addInertia(tooltip);\n }\n\n setContent(content, props);\n tooltip.appendChild(content);\n popper.appendChild(tooltip);\n return popper;\n}\n/**\n * Updates the popper element based on the new props\n * @param {HTMLElement} popper\n * @param {Object} prevProps\n * @param {Object} nextProps\n */\n\nfunction updatePopperElement(popper, prevProps, nextProps) {\n var _getChildren = getChildren(popper),\n tooltip = _getChildren.tooltip,\n content = _getChildren.content,\n backdrop = _getChildren.backdrop,\n arrow = _getChildren.arrow;\n\n popper.style.zIndex = nextProps.zIndex;\n tooltip.setAttribute('data-size', nextProps.size);\n tooltip.setAttribute('data-animation', nextProps.animation);\n tooltip.style.maxWidth = nextProps.maxWidth + (typeof nextProps.maxWidth === 'number' ? 'px' : '');\n\n if (nextProps.role) {\n popper.setAttribute('role', nextProps.role);\n } else {\n popper.removeAttribute('role');\n }\n\n if (prevProps.content !== nextProps.content) {\n setContent(content, nextProps);\n } // animateFill\n\n\n if (!prevProps.animateFill && nextProps.animateFill) {\n tooltip.appendChild(createBackdropElement());\n tooltip.setAttribute('data-animatefill', '');\n } else if (prevProps.animateFill && !nextProps.animateFill) {\n tooltip.removeChild(backdrop);\n tooltip.removeAttribute('data-animatefill');\n } // arrow\n\n\n if (!prevProps.arrow && nextProps.arrow) {\n tooltip.appendChild(createArrowElement(nextProps.arrowType));\n } else if (prevProps.arrow && !nextProps.arrow) {\n tooltip.removeChild(arrow);\n } // arrowType\n\n\n if (prevProps.arrow && nextProps.arrow && prevProps.arrowType !== nextProps.arrowType) {\n tooltip.replaceChild(createArrowElement(nextProps.arrowType), arrow);\n } // interactive\n\n\n if (!prevProps.interactive && nextProps.interactive) {\n addInteractive(popper, tooltip);\n } else if (prevProps.interactive && !nextProps.interactive) {\n removeInteractive(popper, tooltip);\n } // inertia\n\n\n if (!prevProps.inertia && nextProps.inertia) {\n addInertia(tooltip);\n } else if (prevProps.inertia && !nextProps.inertia) {\n removeInertia(tooltip);\n } // theme\n\n\n if (prevProps.theme !== nextProps.theme) {\n toggleTheme(tooltip, 'remove', prevProps.theme);\n toggleTheme(tooltip, 'add', nextProps.theme);\n }\n}\n/**\n * Runs the callback after the popper's position has been updated\n * update() is debounced with Promise.resolve() or setTimeout()\n * scheduleUpdate() is update() wrapped in requestAnimationFrame()\n * @param {Popper} popperInstance\n * @param {Function} callback\n */\n\nfunction afterPopperPositionUpdates(popperInstance, callback) {\n var popper = popperInstance.popper,\n options = popperInstance.options;\n var onCreate = options.onCreate,\n onUpdate = options.onUpdate;\n\n options.onCreate = options.onUpdate = function () {\n reflow(popper);\n callback();\n onUpdate();\n options.onCreate = onCreate;\n options.onUpdate = onUpdate;\n };\n}\n/**\n * Hides all visible poppers on the document\n * @param {Object} options\n */\n\nfunction hideAll() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n checkHideOnClick = _ref.checkHideOnClick,\n exclude = _ref.exclude,\n duration = _ref.duration;\n\n arrayFrom(document.querySelectorAll(Selectors.POPPER)).forEach(function (popper) {\n var instance = popper._tippy;\n\n if (instance && (checkHideOnClick ? instance.props.hideOnClick === true : true) && (!exclude || popper !== exclude.popper)) {\n instance.hide(duration);\n }\n });\n}\n/**\n * Determines if the mouse cursor is outside of the popper's interactive border\n * region\n * @param {String} popperPlacement\n * @param {Object} popperRect\n * @param {MouseEvent} event\n * @param {Object} props\n */\n\nfunction isCursorOutsideInteractiveBorder(popperPlacement, popperRect, event, props) {\n if (!popperPlacement) {\n return true;\n }\n\n var x = event.clientX,\n y = event.clientY;\n var interactiveBorder = props.interactiveBorder,\n distance = props.distance;\n var exceedsTop = popperRect.top - y > (popperPlacement === 'top' ? interactiveBorder + distance : interactiveBorder);\n var exceedsBottom = y - popperRect.bottom > (popperPlacement === 'bottom' ? interactiveBorder + distance : interactiveBorder);\n var exceedsLeft = popperRect.left - x > (popperPlacement === 'left' ? interactiveBorder + distance : interactiveBorder);\n var exceedsRight = x - popperRect.right > (popperPlacement === 'right' ? interactiveBorder + distance : interactiveBorder);\n return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;\n}\n/**\n * Returns the distance offset, taking into account the default offset due to\n * the transform: translate() rule in CSS\n * @param {Number} distance\n * @param {Number} defaultDistance\n */\n\nfunction getOffsetDistanceInPx(distance, defaultDistance) {\n return -(distance - defaultDistance) + 'px';\n}\n\nvar PASSIVE = {\n passive: true\n};\nvar PADDING = 3;\n\nvar isUsingTouch = false;\nfunction onDocumentTouch() {\n if (isUsingTouch) {\n return;\n }\n\n isUsingTouch = true;\n\n if (isIOS) {\n document.body.classList.add('tippy-iOS');\n }\n\n if (window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove);\n }\n}\nvar lastMouseMoveTime = 0;\nfunction onDocumentMouseMove() {\n var now = performance.now(); // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference\n\n if (now - lastMouseMoveTime < 20) {\n isUsingTouch = false;\n document.removeEventListener('mousemove', onDocumentMouseMove);\n\n if (!isIOS) {\n document.body.classList.remove('tippy-iOS');\n }\n }\n\n lastMouseMoveTime = now;\n}\nfunction onDocumentClick(_ref) {\n var target = _ref.target;\n\n // Simulated events dispatched on the document\n if (!(target instanceof Element)) {\n return hideAll();\n } // Clicked on an interactive popper\n\n\n var popper = closest(target, Selectors.POPPER);\n\n if (popper && popper._tippy && popper._tippy.props.interactive) {\n return;\n } // Clicked on a reference\n\n\n var reference = closestCallback(target, function (el) {\n return el._tippy && el._tippy.reference === el;\n });\n\n if (reference) {\n var instance = reference._tippy;\n var isClickTrigger = includes(instance.props.trigger, 'click');\n\n if (isUsingTouch || isClickTrigger) {\n return hideAll({\n exclude: instance,\n checkHideOnClick: true\n });\n }\n\n if (instance.props.hideOnClick !== true || isClickTrigger) {\n return;\n }\n\n instance.clearDelayTimeouts();\n }\n\n hideAll({\n checkHideOnClick: true\n });\n}\nfunction onWindowBlur() {\n var _document = document,\n activeElement = _document.activeElement;\n\n if (activeElement && activeElement.blur && activeElement._tippy) {\n activeElement.blur();\n }\n}\n/**\n * Adds the needed global event listeners\n */\n\nfunction bindGlobalEventListeners() {\n document.addEventListener('click', onDocumentClick, true);\n document.addEventListener('touchstart', onDocumentTouch, PASSIVE);\n window.addEventListener('blur', onWindowBlur);\n}\n\nvar keys = Object.keys(Defaults);\n/**\n * Determines if an element can receive focus\n * @param {Element} el\n * @return {Boolean}\n */\n\nfunction canReceiveFocus(el) {\n return el instanceof Element ? matches.call(el, 'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]') && !el.hasAttribute('disabled') : true;\n}\n/**\n * Returns an object of optional props from data-tippy-* attributes\n * @param {Element} reference\n * @return {Object}\n */\n\nfunction getDataAttributeOptions(reference) {\n return keys.reduce(function (acc, key) {\n var valueAsString = (reference.getAttribute(\"data-tippy-\".concat(key)) || '').trim();\n\n if (!valueAsString) {\n return acc;\n }\n\n if (key === 'content') {\n acc[key] = valueAsString;\n } else {\n try {\n acc[key] = JSON.parse(valueAsString);\n } catch (e) {\n acc[key] = valueAsString;\n }\n }\n\n return acc;\n }, {});\n}\n/**\n * Polyfills the virtual reference (plain object) with Element.prototype props\n * Mutating because DOM elements are mutated, adds `_tippy` property\n * @param {Object} virtualReference\n * @return {Object}\n */\n\nfunction polyfillElementPrototypeProperties(virtualReference) {\n var polyfills = {\n isVirtual: true,\n attributes: virtualReference.attributes || {},\n setAttribute: function setAttribute(key, value) {\n virtualReference.attributes[key] = value;\n },\n getAttribute: function getAttribute(key) {\n return virtualReference.attributes[key];\n },\n removeAttribute: function removeAttribute(key) {\n delete virtualReference.attributes[key];\n },\n hasAttribute: function hasAttribute(key) {\n return key in virtualReference.attributes;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n classList: {\n classNames: {},\n add: function add(key) {\n virtualReference.classList.classNames[key] = true;\n },\n remove: function remove(key) {\n delete virtualReference.classList.classNames[key];\n },\n contains: function contains(key) {\n return key in virtualReference.classList.classNames;\n }\n }\n };\n\n for (var key in polyfills) {\n virtualReference[key] = polyfills[key];\n }\n}\n\n/**\n * Evaluates the props object by merging data attributes and\n * disabling conflicting options where necessary\n * @param {Element} reference\n * @param {Object} props\n * @return {Object}\n */\n\nfunction evaluateProps(reference, props) {\n var out = _extends({}, props, {\n content: evaluateValue(props.content, [reference])\n }, props.ignoreAttributes ? {} : getDataAttributeOptions(reference));\n\n if (out.arrow) {\n out.animateFill = false;\n }\n\n return out;\n}\n/**\n * Validates an object of options with the valid default props object\n * @param {Object} options\n * @param {Object} defaults\n */\n\nfunction validateOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n Object.keys(options).forEach(function (option) {\n if (!hasOwnProperty(defaults, option)) {\n throw new Error(\"[tippy]: `\".concat(option, \"` is not a valid option\"));\n }\n });\n}\n\nvar idCounter = 1;\n/**\n * Creates and returns a Tippy object. We're using a closure pattern instead of\n * a class so that the exposed object API is clean without private members\n * prefixed with `_`.\n * @param {Element} reference\n * @param {Object} collectionProps\n * @return {Object} instance\n */\n\nfunction createTippy(reference, collectionProps) {\n var props = evaluateProps(reference, collectionProps); // If the reference shouldn't have multiple tippys, return null early\n\n if (!props.multiple && reference._tippy) {\n return null;\n }\n /* ======================= 🔒 Private members 🔒 ======================= */\n // The last trigger event object that caused the tippy to show\n\n\n var lastTriggerEvent = {}; // The last mousemove event object created by the document mousemove event\n\n var lastMouseMoveEvent = null; // Timeout created by the show delay\n\n var showTimeoutId = 0; // Timeout created by the hide delay\n\n var hideTimeoutId = 0; // Flag to determine if the tippy is preparing to show due to the show timeout\n\n var isPreparingToShow = false; // The current `transitionend` callback reference\n\n var transitionEndListener = function transitionEndListener() {}; // Array of event listeners currently attached to the reference element\n\n\n var listeners = []; // Private onMouseMove handler reference, debounced or not\n\n var debouncedOnMouseMove = props.interactiveDebounce > 0 ? debounce(onMouseMove, props.interactiveDebounce) : onMouseMove; // Node the tippy is currently appended to\n\n var parentNode = null;\n /* ======================= 🔑 Public members 🔑 ======================= */\n // id used for the `aria-describedby` / `aria-labelledby` attribute\n\n var id = idCounter++; // Popper element reference\n\n var popper = createPopperElement(id, props); // Prevent a tippy with a delay from hiding if the cursor left then returned\n // before it started hiding\n\n popper.addEventListener('mouseenter', function (event) {\n if (instance.props.interactive && instance.state.isVisible && lastTriggerEvent.type === 'mouseenter') {\n prepareShow(event);\n }\n });\n popper.addEventListener('mouseleave', function () {\n if (instance.props.interactive && lastTriggerEvent.type === 'mouseenter') {\n document.addEventListener('mousemove', debouncedOnMouseMove);\n }\n }); // Popper element children: { arrow, backdrop, content, tooltip }\n\n var popperChildren = getChildren(popper); // The state of the tippy\n\n var state = {\n // If the tippy is currently enabled\n isEnabled: true,\n // show() invoked, not currently transitioning out\n isVisible: false,\n // If the tippy has been destroyed\n isDestroyed: false,\n // If the tippy is on the DOM (transitioning out or in)\n isMounted: false,\n // show() transition finished\n isShown: false // Popper.js instance for the tippy is lazily created\n\n };\n var popperInstance = null; // 🌟 tippy instance\n\n var instance = {\n // properties\n id: id,\n reference: reference,\n popper: popper,\n popperChildren: popperChildren,\n popperInstance: popperInstance,\n props: props,\n state: state,\n // methods\n clearDelayTimeouts: clearDelayTimeouts,\n set: set,\n setContent: setContent$$1,\n show: show,\n hide: hide,\n enable: enable,\n disable: disable,\n destroy: destroy\n };\n addTriggersToReference();\n\n if (!props.lazy) {\n createPopperInstance();\n instance.popperInstance.disableEventListeners();\n }\n\n if (props.showOnInit) {\n prepareShow();\n } // Ensure the reference element can receive focus (and is not a delegate)\n\n\n if (props.a11y && !props.target && !canReceiveFocus(reference)) {\n reference.setAttribute('tabindex', '0');\n } // Install shortcuts\n\n\n reference._tippy = instance;\n popper._tippy = instance;\n return instance;\n /* ======================= 🔒 Private methods 🔒 ======================= */\n\n /**\n * Positions the virtual reference near the mouse cursor\n */\n\n function positionVirtualReferenceNearCursor(event) {\n var _lastMouseMoveEvent = lastMouseMoveEvent = event,\n clientX = _lastMouseMoveEvent.clientX,\n clientY = _lastMouseMoveEvent.clientY;\n\n if (!instance.popperInstance) {\n return;\n } // Ensure virtual reference is padded to prevent tooltip from\n // overflowing. Maybe Popper.js issue?\n\n\n var placement = getPopperPlacement(instance.popper);\n var padding = instance.popperChildren.arrow ? PADDING + 16 : PADDING;\n var isVerticalPlacement = includes(['top', 'bottom'], placement);\n var isHorizontalPlacement = includes(['left', 'right'], placement); // Top / left boundary\n\n var x = isVerticalPlacement ? Math.max(padding, clientX) : clientX;\n var y = isHorizontalPlacement ? Math.max(padding, clientY) : clientY; // Bottom / right boundary\n\n if (isVerticalPlacement && x > padding) {\n x = Math.min(clientX, window.innerWidth - padding);\n }\n\n if (isHorizontalPlacement && y > padding) {\n y = Math.min(clientY, window.innerHeight - padding);\n }\n\n var rect = instance.reference.getBoundingClientRect();\n var followCursor = instance.props.followCursor;\n var isHorizontal = followCursor === 'horizontal';\n var isVertical = followCursor === 'vertical';\n instance.popperInstance.reference = {\n getBoundingClientRect: function getBoundingClientRect() {\n return {\n width: 0,\n height: 0,\n top: isHorizontal ? rect.top : y,\n bottom: isHorizontal ? rect.bottom : y,\n left: isVertical ? rect.left : x,\n right: isVertical ? rect.right : x\n };\n },\n clientWidth: 0,\n clientHeight: 0\n };\n instance.popperInstance.scheduleUpdate();\n\n if (followCursor === 'initial' && instance.state.isVisible) {\n removeFollowCursorListener();\n }\n }\n /**\n * Creates the tippy instance for a delegate when it's been triggered\n */\n\n\n function createDelegateChildTippy(event) {\n var targetEl = closest(event.target, instance.props.target);\n\n if (targetEl && !targetEl._tippy) {\n createTippy(targetEl, _extends({}, instance.props, {\n content: evaluateValue(collectionProps.content, [targetEl]),\n appendTo: collectionProps.appendTo,\n target: '',\n showOnInit: true\n }));\n prepareShow(event);\n }\n }\n /**\n * Setup before show() is invoked (delays, etc.)\n */\n\n\n function prepareShow(event) {\n clearDelayTimeouts();\n\n if (instance.state.isVisible) {\n return;\n } // Is a delegate, create an instance for the child target\n\n\n if (instance.props.target) {\n return createDelegateChildTippy(event);\n }\n\n isPreparingToShow = true;\n\n if (instance.props.wait) {\n return instance.props.wait(instance, event);\n } // If the tooltip has a delay, we need to be listening to the mousemove as\n // soon as the trigger event is fired, so that it's in the correct position\n // upon mount.\n // Edge case: if the tooltip is still mounted, but then prepareShow() is\n // called, it causes a jump.\n\n\n if (hasFollowCursorBehavior() && !instance.state.isMounted) {\n document.addEventListener('mousemove', positionVirtualReferenceNearCursor);\n }\n\n var delay = getValue(instance.props.delay, 0, Defaults.delay);\n\n if (delay) {\n showTimeoutId = setTimeout(function () {\n show();\n }, delay);\n } else {\n show();\n }\n }\n /**\n * Setup before hide() is invoked (delays, etc.)\n */\n\n\n function prepareHide() {\n clearDelayTimeouts();\n\n if (!instance.state.isVisible) {\n return removeFollowCursorListener();\n }\n\n isPreparingToShow = false;\n var delay = getValue(instance.props.delay, 1, Defaults.delay);\n\n if (delay) {\n hideTimeoutId = setTimeout(function () {\n if (instance.state.isVisible) {\n hide();\n }\n }, delay);\n } else {\n hide();\n }\n }\n /**\n * Removes the follow cursor listener\n */\n\n\n function removeFollowCursorListener() {\n document.removeEventListener('mousemove', positionVirtualReferenceNearCursor);\n lastMouseMoveEvent = null;\n }\n /**\n * Cleans up old listeners\n */\n\n\n function cleanupOldMouseListeners() {\n document.body.removeEventListener('mouseleave', prepareHide);\n document.removeEventListener('mousemove', debouncedOnMouseMove);\n }\n /**\n * Event listener invoked upon trigger\n */\n\n\n function onTrigger(event) {\n if (!instance.state.isEnabled || isEventListenerStopped(event)) {\n return;\n }\n\n if (!instance.state.isVisible) {\n lastTriggerEvent = event; // Use the `mouseenter` event as a \"mock\" mousemove event for touch\n // devices\n\n if (isUsingTouch && includes(event.type, 'mouse')) {\n lastMouseMoveEvent = event;\n }\n } // Toggle show/hide when clicking click-triggered tooltips\n\n\n if (event.type === 'click' && instance.props.hideOnClick !== false && instance.state.isVisible) {\n prepareHide();\n } else {\n prepareShow(event);\n }\n }\n /**\n * Event listener used for interactive tooltips to detect when they should\n * hide\n */\n\n\n function onMouseMove(event) {\n var referenceTheCursorIsOver = closestCallback(event.target, function (el) {\n return el._tippy;\n });\n var isCursorOverPopper = closest(event.target, Selectors.POPPER) === instance.popper;\n var isCursorOverReference = referenceTheCursorIsOver === instance.reference;\n\n if (isCursorOverPopper || isCursorOverReference) {\n return;\n }\n\n if (isCursorOutsideInteractiveBorder(getPopperPlacement(instance.popper), instance.popper.getBoundingClientRect(), event, instance.props)) {\n cleanupOldMouseListeners();\n prepareHide();\n }\n }\n /**\n * Event listener invoked upon mouseleave\n */\n\n\n function onMouseLeave(event) {\n if (isEventListenerStopped(event)) {\n return;\n }\n\n if (instance.props.interactive) {\n document.body.addEventListener('mouseleave', prepareHide);\n document.addEventListener('mousemove', debouncedOnMouseMove);\n return;\n }\n\n prepareHide();\n }\n /**\n * Event listener invoked upon blur\n */\n\n\n function onBlur(event) {\n if (event.target !== instance.reference) {\n return;\n }\n\n if (instance.props.interactive && event.relatedTarget && instance.popper.contains(event.relatedTarget)) {\n return;\n }\n\n prepareHide();\n }\n /**\n * Event listener invoked when a child target is triggered\n */\n\n\n function onDelegateShow(event) {\n if (closest(event.target, instance.props.target)) {\n prepareShow(event);\n }\n }\n /**\n * Event listener invoked when a child target should hide\n */\n\n\n function onDelegateHide(event) {\n if (closest(event.target, instance.props.target)) {\n prepareHide();\n }\n }\n /**\n * Determines if an event listener should stop further execution due to the\n * `touchHold` option\n */\n\n\n function isEventListenerStopped(event) {\n var supportsTouch = 'ontouchstart' in window;\n var isTouchEvent = includes(event.type, 'touch');\n var touchHold = instance.props.touchHold;\n return supportsTouch && isUsingTouch && touchHold && !isTouchEvent || isUsingTouch && !touchHold && isTouchEvent;\n }\n /**\n * Creates the popper instance for the instance\n */\n\n\n function createPopperInstance() {\n var popperOptions = instance.props.popperOptions;\n var _instance$popperChild = instance.popperChildren,\n tooltip = _instance$popperChild.tooltip,\n arrow = _instance$popperChild.arrow;\n instance.popperInstance = new Popper(instance.reference, instance.popper, _extends({\n placement: instance.props.placement\n }, popperOptions, {\n modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, {\n preventOverflow: _extends({\n boundariesElement: instance.props.boundary,\n padding: PADDING\n }, getModifier(popperOptions, 'preventOverflow')),\n arrow: _extends({\n element: arrow,\n enabled: !!arrow\n }, getModifier(popperOptions, 'arrow')),\n flip: _extends({\n enabled: instance.props.flip,\n // The tooltip is offset by 10px from the popper in CSS,\n // we need to account for its distance\n padding: instance.props.distance + PADDING,\n behavior: instance.props.flipBehavior\n }, getModifier(popperOptions, 'flip')),\n offset: _extends({\n offset: instance.props.offset\n }, getModifier(popperOptions, 'offset'))\n }),\n onCreate: function onCreate() {\n tooltip.style[getPopperPlacement(instance.popper)] = getOffsetDistanceInPx(instance.props.distance, Defaults.distance);\n },\n onUpdate: function onUpdate(data) {\n if (data && !instance.props.flipOnUpdate) {\n if (data.flipped) {\n instance.popperInstance.options.placement = data.placement;\n }\n\n setFlipModifierEnabled(instance.popperInstance.modifiers, false);\n }\n\n var styles = tooltip.style;\n styles.top = '';\n styles.bottom = '';\n styles.left = '';\n styles.right = '';\n styles[getPopperPlacement(instance.popper)] = getOffsetDistanceInPx(instance.props.distance, Defaults.distance);\n }\n }));\n }\n /**\n * Mounts the tooltip to the DOM, callback to show tooltip is run **after**\n * popper's position has updated\n */\n\n\n function mount(callback) {\n var shouldEnableListeners = !hasFollowCursorBehavior() && !(instance.props.followCursor === 'initial' && isUsingTouch);\n\n if (!instance.popperInstance) {\n createPopperInstance();\n\n if (!shouldEnableListeners) {\n instance.popperInstance.disableEventListeners();\n }\n } else {\n if (!hasFollowCursorBehavior()) {\n instance.popperInstance.scheduleUpdate();\n\n if (shouldEnableListeners) {\n instance.popperInstance.enableEventListeners();\n }\n }\n\n setFlipModifierEnabled(instance.popperInstance.modifiers, true);\n } // If the instance previously had followCursor behavior, it will be\n // positioned incorrectly if triggered by `focus` afterwards.\n // Update the reference back to the real DOM element\n\n\n instance.popperInstance.reference = instance.reference;\n var arrow = instance.popperChildren.arrow;\n\n if (hasFollowCursorBehavior()) {\n if (arrow) {\n arrow.style.margin = '0';\n }\n\n var delay = getValue(instance.props.delay, 0, Defaults.delay);\n\n if (lastTriggerEvent.type) {\n positionVirtualReferenceNearCursor(delay && lastMouseMoveEvent ? lastMouseMoveEvent : lastTriggerEvent);\n }\n } else if (arrow) {\n arrow.style.margin = '';\n }\n\n afterPopperPositionUpdates(instance.popperInstance, callback);\n var appendTo = instance.props.appendTo;\n parentNode = appendTo === 'parent' ? instance.reference.parentNode : evaluateValue(appendTo, [instance.reference]);\n\n if (!parentNode.contains(instance.popper)) {\n parentNode.appendChild(instance.popper);\n instance.props.onMount(instance);\n instance.state.isMounted = true;\n }\n }\n /**\n * Determines if the instance is in `followCursor` mode\n */\n\n\n function hasFollowCursorBehavior() {\n return instance.props.followCursor && !isUsingTouch && lastTriggerEvent.type !== 'focus';\n }\n /**\n * Updates the tooltip's position on each animation frame + timeout\n */\n\n\n function makeSticky() {\n applyTransitionDuration([instance.popper], isIE ? 0 : instance.props.updateDuration);\n\n var updatePosition = function updatePosition() {\n if (instance.popperInstance) {\n instance.popperInstance.scheduleUpdate();\n }\n\n if (instance.state.isMounted) {\n requestAnimationFrame(updatePosition);\n } else {\n applyTransitionDuration([instance.popper], 0);\n }\n };\n\n updatePosition();\n }\n /**\n * Invokes a callback once the tooltip has fully transitioned out\n */\n\n\n function onTransitionedOut(duration, callback) {\n onTransitionEnd(duration, function () {\n if (!instance.state.isVisible && parentNode && parentNode.contains(instance.popper)) {\n callback();\n }\n });\n }\n /**\n * Invokes a callback once the tooltip has fully transitioned in\n */\n\n\n function onTransitionedIn(duration, callback) {\n onTransitionEnd(duration, callback);\n }\n /**\n * Invokes a callback once the tooltip's CSS transition ends\n */\n\n\n function onTransitionEnd(duration, callback) {\n // Make callback synchronous if duration is 0\n if (duration === 0) {\n return callback();\n }\n\n var tooltip = instance.popperChildren.tooltip;\n\n var listener = function listener(e) {\n if (e.target === tooltip) {\n toggleTransitionEndListener(tooltip, 'remove', listener);\n callback();\n }\n };\n\n toggleTransitionEndListener(tooltip, 'remove', transitionEndListener);\n toggleTransitionEndListener(tooltip, 'add', listener);\n transitionEndListener = listener;\n }\n /**\n * Adds an event listener to the reference and stores it in `listeners`\n */\n\n\n function on(eventType, handler) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n instance.reference.addEventListener(eventType, handler, options);\n listeners.push({\n eventType: eventType,\n handler: handler,\n options: options\n });\n }\n /**\n * Adds event listeners to the reference based on the `trigger` prop\n */\n\n\n function addTriggersToReference() {\n if (instance.props.touchHold && !instance.props.target) {\n on('touchstart', onTrigger, PASSIVE);\n on('touchend', onMouseLeave, PASSIVE);\n }\n\n instance.props.trigger.trim().split(' ').forEach(function (eventType) {\n if (eventType === 'manual') {\n return;\n }\n\n if (!instance.props.target) {\n on(eventType, onTrigger);\n\n switch (eventType) {\n case 'mouseenter':\n on('mouseleave', onMouseLeave);\n break;\n\n case 'focus':\n on(isIE ? 'focusout' : 'blur', onBlur);\n break;\n }\n } else {\n switch (eventType) {\n case 'mouseenter':\n on('mouseover', onDelegateShow);\n on('mouseout', onDelegateHide);\n break;\n\n case 'focus':\n on('focusin', onDelegateShow);\n on('focusout', onDelegateHide);\n break;\n\n case 'click':\n on(eventType, onDelegateShow);\n break;\n }\n }\n });\n }\n /**\n * Removes event listeners from the reference\n */\n\n\n function removeTriggersFromReference() {\n listeners.forEach(function (_ref) {\n var eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n instance.reference.removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n /**\n * Returns inner elements used in show/hide methods\n */\n\n\n function getInnerElements() {\n return [instance.popperChildren.tooltip, instance.popperChildren.backdrop, instance.popperChildren.content];\n }\n /* ======================= 🔑 Public methods 🔑 ======================= */\n\n /**\n * Enables the instance to allow it to show or hide\n */\n\n\n function enable() {\n instance.state.isEnabled = true;\n }\n /**\n * Disables the instance to disallow it to show or hide\n */\n\n\n function disable() {\n instance.state.isEnabled = false;\n }\n /**\n * Clears pending timeouts related to the `delay` prop if any\n */\n\n\n function clearDelayTimeouts() {\n clearTimeout(showTimeoutId);\n clearTimeout(hideTimeoutId);\n }\n /**\n * Sets new props for the instance and redraws the tooltip\n */\n\n\n function set() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n validateOptions(options, Defaults);\n var prevProps = instance.props;\n var nextProps = evaluateProps(instance.reference, _extends({}, instance.props, options, {\n ignoreAttributes: true\n }));\n nextProps.ignoreAttributes = hasOwnProperty(options, 'ignoreAttributes') ? options.ignoreAttributes : prevProps.ignoreAttributes;\n instance.props = nextProps;\n\n if (hasOwnProperty(options, 'trigger') || hasOwnProperty(options, 'touchHold')) {\n removeTriggersFromReference();\n addTriggersToReference();\n }\n\n if (hasOwnProperty(options, 'interactiveDebounce')) {\n cleanupOldMouseListeners();\n debouncedOnMouseMove = debounce(onMouseMove, options.interactiveDebounce);\n }\n\n updatePopperElement(instance.popper, prevProps, nextProps);\n instance.popperChildren = getChildren(instance.popper);\n\n if (instance.popperInstance) {\n instance.popperInstance.update();\n\n if (POPPER_INSTANCE_DEPENDENCIES.some(function (prop) {\n return hasOwnProperty(options, prop);\n })) {\n instance.popperInstance.destroy();\n createPopperInstance();\n\n if (!instance.state.isVisible) {\n instance.popperInstance.disableEventListeners();\n }\n\n if (instance.props.followCursor && lastMouseMoveEvent) {\n positionVirtualReferenceNearCursor(lastMouseMoveEvent);\n }\n }\n }\n }\n /**\n * Shortcut for .set({ content: newContent })\n */\n\n\n function setContent$$1(content) {\n set({\n content: content\n });\n }\n /**\n * Shows the tooltip\n */\n\n\n function show() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 0, Defaults.duration[0]);\n\n if (instance.state.isDestroyed || !instance.state.isEnabled || isUsingTouch && !instance.props.touch) {\n return;\n } // Destroy tooltip if the reference element is no longer on the DOM\n\n\n if (!instance.reference.isVirtual && !document.documentElement.contains(instance.reference)) {\n return destroy();\n } // Do not show tooltip if the reference element has a `disabled` attribute\n\n\n if (instance.reference.hasAttribute('disabled')) {\n return;\n }\n\n if (instance.props.onShow(instance) === false) {\n return;\n }\n\n instance.popper.style.visibility = 'visible';\n instance.state.isVisible = true;\n\n if (instance.props.interactive) {\n instance.reference.classList.add('tippy-active');\n } // Prevent a transition if the popper is at the opposite placement\n\n\n applyTransitionDuration([instance.popper, instance.popperChildren.tooltip, instance.popperChildren.backdrop], 0);\n mount(function () {\n if (!instance.state.isVisible) {\n return;\n } // Arrow will sometimes not be positioned correctly. Force another update\n\n\n if (!hasFollowCursorBehavior()) {\n instance.popperInstance.update();\n } // Allow followCursor: 'initial' on touch devices\n\n\n if (isUsingTouch && instance.props.followCursor === 'initial') {\n positionVirtualReferenceNearCursor(lastMouseMoveEvent);\n }\n\n applyTransitionDuration([instance.popper], props.updateDuration);\n applyTransitionDuration(getInnerElements(), duration);\n\n if (instance.popperChildren.backdrop) {\n instance.popperChildren.content.style.transitionDelay = Math.round(duration / 12) + 'ms';\n }\n\n if (instance.props.sticky) {\n makeSticky();\n }\n\n setVisibilityState(getInnerElements(), 'visible');\n onTransitionedIn(duration, function () {\n instance.popperChildren.tooltip.classList.add('tippy-notransition');\n\n if (instance.props.aria) {\n instance.reference.setAttribute(\"aria-\".concat(instance.props.aria), instance.popper.id);\n }\n\n instance.props.onShown(instance);\n instance.state.isShown = true;\n });\n });\n }\n /**\n * Hides the tooltip\n */\n\n\n function hide() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 1, Defaults.duration[1]);\n\n if (instance.state.isDestroyed || !instance.state.isEnabled) {\n return;\n }\n\n if (instance.props.onHide(instance) === false) {\n return;\n }\n\n instance.popperChildren.tooltip.classList.remove('tippy-notransition');\n\n if (instance.props.interactive) {\n instance.reference.classList.remove('tippy-active');\n }\n\n instance.popper.style.visibility = 'hidden';\n instance.state.isVisible = false;\n instance.state.isShown = false;\n applyTransitionDuration(getInnerElements(), duration);\n setVisibilityState(getInnerElements(), 'hidden');\n onTransitionedOut(duration, function () {\n if (!isPreparingToShow) {\n removeFollowCursorListener();\n }\n\n if (instance.props.aria) {\n instance.reference.removeAttribute(\"aria-\".concat(instance.props.aria));\n }\n\n instance.popperInstance.disableEventListeners();\n instance.popperInstance.options.placement = instance.props.placement;\n parentNode.removeChild(instance.popper);\n instance.props.onHidden(instance);\n instance.state.isMounted = false;\n });\n }\n /**\n * Destroys the tooltip\n */\n\n\n function destroy(destroyTargetInstances) {\n if (instance.state.isDestroyed) {\n return;\n } // If the popper is currently mounted to the DOM, we want to ensure it gets\n // hidden and unmounted instantly upon destruction\n\n\n if (instance.state.isMounted) {\n hide(0);\n }\n\n removeTriggersFromReference();\n delete instance.reference._tippy;\n\n if (instance.props.target && destroyTargetInstances) {\n arrayFrom(instance.reference.querySelectorAll(instance.props.target)).forEach(function (child) {\n if (child._tippy) {\n child._tippy.destroy();\n }\n });\n }\n\n if (instance.popperInstance) {\n instance.popperInstance.destroy();\n }\n\n instance.state.isDestroyed = true;\n }\n}\n\nfunction group(instances) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? instances[0].props.delay : _ref$delay,\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 0 : _ref$duration;\n\n var isAnyTippyOpen = false;\n instances.forEach(function (instance) {\n instance._originalProps = {\n duration: instance.props.duration,\n onHide: instance.props.onHide,\n onShow: instance.props.onShow,\n onShown: instance.props.onShown\n };\n });\n\n function setIsAnyTippyOpen(value) {\n isAnyTippyOpen = value;\n updateInstances();\n }\n\n function onShow(instance) {\n instance._originalProps.onShow(instance);\n\n instances.forEach(function (instance) {\n instance.set({\n duration: duration\n });\n instance.hide();\n });\n setIsAnyTippyOpen(true);\n }\n\n function onHide(instance) {\n instance._originalProps.onHide(instance);\n\n setIsAnyTippyOpen(false);\n }\n\n function onShown(instance) {\n instance._originalProps.onShown(instance);\n\n instance.set({\n duration: instance._originalProps.duration\n });\n }\n\n function updateInstances() {\n instances.forEach(function (instance) {\n instance.set({\n onShow: onShow,\n onShown: onShown,\n onHide: onHide,\n delay: isAnyTippyOpen ? [0, Array.isArray(delay) ? delay[1] : delay] : delay,\n duration: isAnyTippyOpen ? duration : instance._originalProps.duration\n });\n });\n }\n\n updateInstances();\n}\n\nvar globalEventListenersBound = false;\n/**\n * Exported module\n * @param {String|Element|Element[]|NodeList|Object} targets\n * @param {Object} options\n * @return {Object}\n */\n\nfunction tippy(targets, options) {\n validateOptions(options, Defaults);\n\n if (!globalEventListenersBound) {\n bindGlobalEventListeners();\n globalEventListenersBound = true;\n }\n\n var props = _extends({}, Defaults, options); // If they are specifying a virtual positioning reference, we need to polyfill\n // some native DOM props\n\n\n if (isPlainObject(targets)) {\n polyfillElementPrototypeProperties(targets);\n }\n\n var instances = getArrayOfElements(targets).reduce(function (acc, reference) {\n var instance = reference && createTippy(reference, props);\n\n if (instance) {\n acc.push(instance);\n }\n\n return acc;\n }, []);\n return isSingular(targets) ? instances[0] : instances;\n}\n/**\n * Static props\n */\n\n\ntippy.version = version;\ntippy.defaults = Defaults;\n/**\n * Static methods\n */\n\ntippy.setDefaults = function (partialDefaults) {\n Object.keys(partialDefaults).forEach(function (key) {\n Defaults[key] = partialDefaults[key];\n });\n};\n\ntippy.hideAll = hideAll;\ntippy.group = group;\n/**\n * Auto-init tooltips for elements with a `data-tippy=\"...\"` attribute\n */\n\nfunction autoInit() {\n arrayFrom(document.querySelectorAll('[data-tippy]')).forEach(function (el) {\n var content = el.getAttribute('data-tippy');\n\n if (content) {\n tippy(el, {\n content: content\n });\n }\n });\n}\n\nif (isBrowser) {\n setTimeout(autoInit);\n}\n\n/**\n * Injects a string of CSS styles to a style node in <head>\n * @param {String} css\n */\n\nfunction injectCSS(css) {\n if (isBrowser) {\n var style = document.createElement('style');\n style.type = 'text/css';\n style.textContent = css;\n document.head.insertBefore(style, document.head.firstChild);\n }\n}\n\ninjectCSS(css);\n\nexport default tippy;\n//# sourceMappingURL=index.all.js.map\n","export const missingTippy = 'Using the attachment feature of Shepherd requires the Tippy.js library';\n","import isObjectLike from 'lodash-es/isObjectLike';\nimport isString from 'lodash-es/isString';\nimport isUndefined from 'lodash-es/isUndefined';\nimport zipObject from 'lodash-es/zipObject';\nimport tippy from 'tippy.js';\nimport { missingTippy } from './utils/error-messages';\n\nconst centeredStylePopperModifier = {\n computeStyle: {\n enabled: true,\n fn(data) {\n data.styles = Object.assign({}, data.styles, {\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)'\n });\n\n return data;\n }\n }\n};\n\n// Used to compose settings for tippyOptions.popperOptions (https://atomiks.github.io/tippyjs/#popper-options-option)\nconst defaultPopperOptions = {\n positionFixed: true\n};\n\n/**\n * TODO rewrite the way items are being added to use more performant documentFragment code\n * @param html\n * @return {HTMLElement} The element created from the passed HTML string\n */\nexport function createFromHTML(html) {\n const el = document.createElement('div');\n el.innerHTML = html;\n return el.children[0];\n}\n\n/**\n * Parse the position object or string to return the attachment and element to attach to\n * @param {Object|String} position Either a string or object denoting the selector and position for attachment\n * @return {Object} The object with `element` and `on` for the step\n * @private\n */\nexport function _parseAttachToOpts(opts) {\n if (isObjectLike(opts)) {\n if (opts.hasOwnProperty('element') && opts.hasOwnProperty('on')) {\n return opts;\n }\n return null;\n }\n\n const positionRe = /^(.+) ((auto|top|left|right|bottom)(-start|-end)?)$/;\n const matches = positionRe.exec(opts);\n\n if (!matches) {\n return null;\n }\n\n return {\n element: matches[1],\n on: matches[2]\n };\n}\n\n/**\n * @param obj\n * @param {Array} props\n * @return {*}\n */\nexport function parseShorthand(obj, props) {\n if (obj === null || isUndefined(obj)) {\n return obj;\n } else if (isObjectLike(obj)) {\n return obj;\n }\n\n const values = obj.split(' ');\n return zipObject(props, values);\n}\n\n/**\n * Determines options for the tooltip and initializes\n * `this.tooltip` as a Tippy.js instance.\n */\nexport function setupTooltip() {\n if (isUndefined(tippy)) {\n throw new Error(missingTippy);\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n\n const attachToOpts = this.parseAttachTo();\n\n this.tooltip = _makeTippyInstance.call(this, attachToOpts);\n\n this.target = attachToOpts.element || document.body;\n\n this.el.classList.add('shepherd-element');\n}\n\n/**\n * Passes `options.attachTo` to `_parseAttachToOpts` to get the correct `attachTo` format\n * @returns {({} & {element, on}) | ({})}\n * `element` is a qualified HTML Element\n * `on` is a string position value\n */\nexport function parseAttachTo() {\n const options = _parseAttachToOpts(this.options.attachTo) || {};\n const returnOpts = Object.assign({}, options);\n\n if (isString(options.element)) {\n // Can't override the element in user opts reference because we can't\n // guarantee that the element will exist in the future.\n try {\n returnOpts.element = document.querySelector(options.element);\n } catch(e) {\n // TODO\n }\n if (!returnOpts.element) {\n console.error(`The element for this Shepherd step was not found ${options.element}`);\n }\n }\n\n return returnOpts;\n}\n\n/**\n * Generates a `Tippy` instance from a set of base `attachTo` options\n *\n * @return {tippy} The final tippy instance\n * @private\n */\nfunction _makeTippyInstance(attachToOptions) {\n if (!attachToOptions.element) {\n return _makeCenteredTippy.call(this);\n }\n\n const tippyOptions = _makeAttachedTippyOptions.call(this, attachToOptions);\n\n return tippy(attachToOptions.element, tippyOptions);\n}\n\n/**\n * Generates the hash of options that will be passed to `Tippy` instances\n * target an element in the DOM.\n *\n * @param {Object} attachToOptions The local `attachTo` options\n * @return {Object} The final tippy options object\n * @private\n */\nfunction _makeAttachedTippyOptions(attachToOptions) {\n const resultingTippyOptions = {\n content: this.el,\n placement: attachToOptions.on || 'right',\n ...this.options.tippyOptions\n };\n\n if (this.options.tippyOptions && this.options.tippyOptions.popperOptions) {\n Object.assign(defaultPopperOptions, this.options.tippyOptions.popperOptions);\n }\n\n resultingTippyOptions.popperOptions = defaultPopperOptions;\n\n return resultingTippyOptions;\n}\n\n/**\n * Generates a `Tippy` instance for a tooltip that doesn't have a\n * target element in the DOM -- and thus is positioned in the center\n * of the view\n *\n * @return {tippy} The final tippy instance\n * @private\n */\nfunction _makeCenteredTippy() {\n const tippyOptions = {\n content: this.el,\n placement: 'top',\n ...this.options.tippyOptions\n };\n\n tippyOptions.arrow = false;\n tippyOptions.popperOptions = tippyOptions.popperOptions || {};\n\n const finalPopperOptions = Object.assign(\n {},\n defaultPopperOptions,\n tippyOptions.popperOptions,\n {\n modifiers: Object.assign(\n centeredStylePopperModifier,\n tippyOptions.popperOptions.modifiers\n )\n }\n );\n\n tippyOptions.popperOptions = finalPopperOptions;\n\n return tippy(document.body, tippyOptions);\n}\n","import { parseShorthand } from './utils.js';\nimport forOwn from 'lodash-es/forOwn';\nimport isString from 'lodash-es/isString';\nimport isUndefined from 'lodash-es/isUndefined';\n\n/**\n * Sets up the handler to determine if we should advance the tour\n * @private\n */\nfunction _setupAdvanceOnHandler(selector) {\n return (event) => {\n if (this.isOpen()) {\n const targetIsEl = this.el && event.target === this.el;\n const targetIsSelector = !isUndefined(selector) && event.target.matches(selector);\n\n if (targetIsSelector || targetIsEl) {\n this.tour.next();\n }\n }\n };\n}\n\n/**\n * Bind the event handler for advanceOn\n */\nexport function bindAdvance() {\n // An empty selector matches the step element\n const { event, selector } = parseShorthand(this.options.advanceOn, ['selector', 'event']);\n const handler = _setupAdvanceOnHandler.call(this, selector);\n\n // TODO: this should also bind/unbind on show/hide\n const el = document.querySelector(selector);\n if (!isUndefined(selector) && el) {\n el.addEventListener(event, handler);\n } else {\n document.body.addEventListener(event, handler, true);\n }\n this.on('destroy', () => {\n return document.body.removeEventListener(event, handler, true);\n });\n}\n\n/**\n * Bind events to the buttons for next, back, etc\n * @param {Object} cfg An object containing the config options for the button\n * @param {HTMLElement} el The element for the button\n */\nexport function bindButtonEvents(cfg, el) {\n cfg.events = cfg.events || {};\n if (!isUndefined(cfg.action)) {\n // Including both a click event and an action is not supported\n cfg.events.click = cfg.action;\n }\n\n forOwn(cfg.events, (handler, event) => {\n if (isString(handler)) {\n const page = handler;\n handler = () => this.tour.show(page);\n }\n el.dataset.buttonEvent = true;\n el.addEventListener(event, handler);\n\n // Cleanup event listeners on destroy\n this.on('destroy', () => {\n el.removeAttribute('data-button-event');\n el.removeEventListener(event, handler);\n });\n });\n}\n\n/**\n * Add a click listener to the cancel link that cancels the tour\n * @param {HTMLElement} link The cancel link element\n */\nexport function bindCancelLink(link) {\n link.addEventListener('click', (e) => {\n e.preventDefault();\n this.cancel();\n });\n}\n\n/**\n * Take an array of strings and look up methods by name, then bind them to `this`\n * @param {String[]} methods The names of methods to bind\n */\nexport function bindMethods(methods) {\n methods.map((method) => {\n this[method] = this[method].bind(this);\n });\n}\n","import forOwn from 'lodash-es/forOwn';\nimport isElement from 'lodash-es/isElement';\nimport isEmpty from 'lodash-es/isEmpty';\nimport isFunction from 'lodash-es/isFunction';\nimport isString from 'lodash-es/isString';\nimport isUndefined from 'lodash-es/isUndefined';\nimport { Evented } from './evented.js';\nimport 'element-matches';\nimport { bindAdvance, bindButtonEvents, bindCancelLink, bindMethods } from './bind.js';\nimport { createFromHTML, setupTooltip, parseAttachTo } from './utils.js';\n\n/**\n * Creates incremented ID for each newly created step\n *\n * @private\n * @return {Number} The unique id for the step\n */\nconst uniqueId = (function() {\n let id = 0;\n return function() {\n return ++id;\n };\n})();\n\n/**\n * Class representing steps to be added to a tour\n * @extends {Evented}\n */\nexport class Step extends Evented {\n /**\n * Create a step\n * @param {Tour} tour The tour for the step\n * @param {Object} options The options for the step\n * @param {Object|string} options.attachTo What element the step should be attached to on the page.\n * It can either be a string of the form \"element on\", or an object with those properties.\n * For example: \".some #element left\", or {element: '.some #element', on: 'left'}.\n * If you use the object syntax, element can also be a DOM element. If you don’t specify an attachTo the\n * element will appear in the middle of the screen.\n * @param {HTMLElement|string} options.attachTo.element\n * @param {string} options.attachTo.on\n * @param {Object|string} options.advanceOn An action on the page which should advance shepherd to the next step.\n * It can be of the form `\"selector event\"`, or an object with those properties.\n * For example: `\".some-element click\"`, or `{selector: '.some-element', event: 'click'}`.\n * It doesn’t have to be an event inside the tour, it can be any event fired on any element on the page.\n * You can also always manually advance the Tour by calling `myTour.next()`.\n * @param {function} options.beforeShowPromise A function that returns a promise.\n * When the promise resolves, the rest of the `show` code for the step will execute.\n * @param {Object[]} options.buttons An array of buttons to add to the step. These will be rendered in a\n * footer below the main body text.\n * @param {function} options.buttons.button.action A function executed when the button is clicked on\n * @param {string} options.buttons.button.classes Extra classes to apply to the `<a>`\n * @param {Object} options.buttons.button.events A hash of events to bind onto the button, for example\n * `{'mouseover': function(){}}`. Adding a `click` event to events when you already have an `action` specified is not supported.\n * You can use events to skip steps or navigate to specific steps, with something like:\n * ```js\n * events: {\n * click: function() {\n * return Shepherd.activeTour.show('some_step_name');\n * }\n * }\n * ```\n * @param {string} options.buttons.button.text The HTML text of the button\n * @param {string} options.classes A string of extra classes to add to the step's content element.\n * @param {string} options.highlightClass An extra class to apply to the `attachTo` element when it is\n * highlighted (that is, when its step is active). You can then target that selector in your CSS.\n * @param {Object} options.tippyOptions Extra [options to pass to tippy.js]{@link https://atomiks.github.io/tippyjs/#all-options}\n * @param {boolean} options.scrollTo Should the element be scrolled to when this step is shown?\n * @param {function} options.scrollToHandler A function that lets you override the default scrollTo behavior and\n * define a custom action to do the scrolling, and possibly other logic.\n * @param {boolean} options.showCancelLink Should a cancel “✕” be shown in the header of the step?\n * @param {function} options.showOn A function that, when it returns `true`, will show the step.\n * If it returns false, the step will be skipped.\n * @param {string} options.text The text in the body of the step. It can be one of four types:\n * ```\n * - HTML string\n * - Array of HTML strings\n * - `HTMLElement` object\n * - `Function` to be executed when the step is built. It must return one of the three options above.\n * ```\n * @param {string} options.title The step's title. It becomes an `h3` at the top of the step.\n * @param {Object} options.when You can define `show`, `hide`, etc events inside `when`. For example:\n * ```js\n * when: {\n * show: function() {\n * window.scrollTo(0, 0);\n * }\n * }\n * ```\n * @return {Step} The newly created Step instance\n */\n constructor(tour, options) {\n super(tour, options);\n this.tour = tour;\n bindMethods.call(this, [\n '_show',\n 'cancel',\n 'complete',\n 'destroy',\n 'hide',\n 'isOpen',\n 'scrollTo',\n 'setupElements',\n 'show'\n ]);\n this.setOptions(options);\n this.bindAdvance = bindAdvance.bind(this);\n this.bindButtonEvents = bindButtonEvents.bind(this);\n this.bindCancelLink = bindCancelLink.bind(this);\n this.setupTooltip = setupTooltip.bind(this);\n this.parseAttachTo = parseAttachTo.bind(this);\n\n return this;\n }\n\n /**\n * Adds buttons to the step as passed into options\n *\n * @private\n * @param {HTMLElement} content The element for the step, to append the footer with buttons to\n */\n _addButtons(content) {\n if (!isEmpty(this.options.buttons)) {\n const footer = document.createElement('footer');\n const buttons = createFromHTML('<ul class=\"shepherd-buttons\"></ul>');\n\n footer.classList.add('shepherd-footer');\n\n this.options.buttons.map((cfg) => {\n const button = createFromHTML(`<li><a class=\"shepherd-button ${cfg.classes || ''}\" tabindex=\"0\">${cfg.text}</a>`);\n buttons.appendChild(button);\n this.bindButtonEvents(cfg, button.querySelector('a'));\n });\n\n footer.appendChild(buttons);\n content.appendChild(footer);\n }\n }\n\n /**\n * Adds the \"x\" button to cancel the tour\n * @param {HTMLElement} element The step element\n * @param {HTMLElement} header The header element for the step\n * @private\n */\n _addCancelLink(element, header) {\n if (this.options.showCancelLink) {\n const link = createFromHTML('<a href class=\"shepherd-cancel-link\"></a>');\n header.appendChild(link);\n\n element.classList.add('shepherd-has-cancel-link');\n this.bindCancelLink(link);\n }\n }\n\n /**\n * Adds text passed in as options\n *\n * @private\n * @param {HTMLElement} content The content to append the text to\n */\n _addContent(content) {\n const text = createFromHTML('<div class=\"shepherd-text\"></div>');\n let paragraphs = this.options.text;\n\n if (isFunction(paragraphs)) {\n paragraphs = paragraphs.call(this, text);\n }\n\n if (paragraphs instanceof HTMLElement) {\n text.appendChild(paragraphs);\n } else {\n if (isString(paragraphs)) {\n paragraphs = [paragraphs];\n }\n\n paragraphs.map((paragraph) => {\n text.innerHTML += `<p>${paragraph}</p>`;\n });\n }\n\n content.appendChild(text);\n }\n\n /**\n * Creates Shepherd element for step based on options\n *\n * @private\n * @return {HTMLElement} The DOM element for the step tooltip\n */\n _createTooltipContent() {\n const content = document.createElement('div');\n const classes = this.options.classes || '';\n const element = createFromHTML(`<div class=\"${classes}\" data-shepherd-step-id=\"${this.id}\">`);\n const header = document.createElement('header');\n\n if (this.options.title) {\n const title = document.createElement('h3');\n title.classList.add('shepherd-title');\n title.innerHTML = `${this.options.title}`;\n header.appendChild(title);\n element.classList.add('shepherd-has-title');\n }\n\n content.classList.add('shepherd-content');\n header.classList.add('shepherd-header');\n element.appendChild(content);\n content.appendChild(header);\n\n if (!isUndefined(this.options.text)) {\n this._addContent(content);\n }\n\n this._addButtons(content);\n this._addCancelLink(element, header);\n\n return element;\n }\n\n /**\n * Returns the tour for the step\n * @return {Tour} The tour instance\n */\n getTour() {\n return this.tour;\n }\n\n /**\n * Cancel the tour\n * Triggers the `cancel` event\n */\n cancel() {\n this.tour.cancel();\n this.trigger('cancel');\n }\n\n /**\n * Complete the tour\n * Triggers the `complete` event\n */\n complete() {\n this.tour.complete();\n this.trigger('complete');\n }\n\n /**\n * Remove the step, delete the step's element, and destroy the tippy instance for the step\n * Triggers `destroy` event\n */\n destroy() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n if (isElement(this.el) && this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n this.el = null;\n }\n\n if (this.target) {\n this._updateStepTargetOnHide();\n }\n\n this.trigger('destroy');\n }\n\n /**\n * Hide the step and destroy the tippy instance\n */\n hide() {\n this.tour.modal.hide();\n\n this.trigger('before-hide');\n\n document.body.removeAttribute('data-shepherd-step');\n\n if (this.target) {\n this._updateStepTargetOnHide();\n }\n\n if (this.tooltip) {\n this.tooltip.hide();\n }\n\n this.trigger('hide');\n }\n\n /**\n * Check if the step is open and visible\n * @return {boolean} True if the step is open and visible\n */\n isOpen() {\n return Boolean(\n this.tooltip &&\n this.tooltip.state &&\n this.tooltip.state.isVisible\n );\n }\n\n /**\n * Create the element and set up the tippy instance\n */\n setupElements() {\n if (!isUndefined(this.el)) {\n this.destroy();\n }\n\n this.el = this._createTooltipContent();\n\n if (this.options.advanceOn) {\n this.bindAdvance();\n }\n\n this.setupTooltip();\n }\n\n /**\n * If a custom scrollToHandler is defined, call that, otherwise do the generic\n * scrollIntoView call.\n */\n scrollTo() {\n const { element } = this.parseAttachTo();\n\n if (isFunction(this.options.scrollToHandler)) {\n this.options.scrollToHandler(element);\n } else if (isElement(element)) {\n element.scrollIntoView();\n }\n }\n\n /**\n * Sets the options for the step, maps `when` to events, sets up buttons\n * @param {Object} options The options for the step\n */\n setOptions(options = {}) {\n this.options = options;\n const { when } = this.options;\n\n this.destroy();\n this.id = this.options.id || `step-${uniqueId()}`;\n\n forOwn(when, (handler, event) => {\n this.on(event, handler, this);\n });\n }\n\n /**\n * Wraps `_show` and ensures `beforeShowPromise` resolves before calling show\n * @return {*|Promise}\n */\n show() {\n if (isFunction(this.options.beforeShowPromise)) {\n const beforeShowPromise = this.options.beforeShowPromise();\n if (!isUndefined(beforeShowPromise)) {\n return beforeShowPromise.then(() => this._show());\n }\n }\n this._show();\n }\n\n /**\n * Triggers `before-show`, generates the tooltip DOM content,\n * sets up a tippy instance for the tooltip, then triggers `show`.\n * @private\n */\n _show() {\n this.tour.beforeShowStep(this);\n this.trigger('before-show');\n\n if (!this.el) {\n this.setupElements();\n }\n\n this.target.classList.add('shepherd-enabled', 'shepherd-target');\n\n document.body.setAttribute('data-shepherd-step', this.id);\n\n if (this.options.scrollTo) {\n setTimeout(() => {\n this.scrollTo();\n });\n }\n\n this.tooltip.show();\n this.trigger('show');\n }\n\n _updateStepTargetOnHide() {\n if (this.options.highlightClass) {\n this.target.classList.remove(this.options.highlightClass);\n }\n\n this.target.classList.remove('shepherd-enabled', 'shepherd-target');\n }\n}\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","const svgNS = 'http://www.w3.org/2000/svg';\n\nconst elementIds = {\n modalOverlay: 'shepherdModalOverlayContainer',\n modalOverlayMask: 'shepherdModalMask',\n modalOverlayMaskRect: 'shepherdModalMaskRect',\n modalOverlayMaskOpening: 'shepherdModalMaskOpening'\n};\n\nconst classNames = {\n isVisible: 'shepherd-modal-is-visible',\n modalTarget: 'shepherd-modal-target'\n};\n\n/**\n * <svg id=\"shepherdModalOverlayContainer\" xmlns=\"http://www.w3.org/2000/svg\">\n */\nfunction _createModalContainer() {\n const element = document.createElementNS(svgNS, 'svg');\n\n element.setAttributeNS(null, 'id', elementIds.modalOverlay);\n\n return element;\n}\n\n/**\n * <mask id=\"shepherdModalMask\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">\n */\nfunction _createMaskContainer() {\n const element = document.createElementNS(svgNS, 'mask');\n\n _setAttributes(element, {\n height: '100%',\n id: elementIds.modalOverlayMask,\n width: '100%',\n x: '0',\n y: '0'\n });\n\n return element;\n}\n\n/**\n * <rect id=\"modalOverlayMaskRect\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"#FFFFFF\"/>\n */\nfunction _createMaskRect() {\n const element = document.createElementNS(svgNS, 'rect');\n\n _setAttributes(element, {\n fill: '#FFFFFF',\n height: '100%',\n id: elementIds.modalOverlayMaskRect,\n width: '100%',\n x: '0',\n y: '0'\n });\n\n return element;\n}\n\n/**\n * <rect id=\"shepherdModalMaskOpening\" fill=\"#000000\"/>\n */\nfunction _createMaskOpening() {\n const element = document.createElementNS(svgNS, 'rect');\n\n _setAttributes(element, {\n fill: '#000000',\n id: elementIds.modalOverlayMaskOpening\n });\n\n return element;\n}\n\n/**\n * <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" mask=\"url(#shepherdModalMask)\"/>\n */\nfunction _createMaskConsumer() {\n const element = document.createElementNS(svgNS, 'rect');\n\n _setAttributes(element, {\n height: '100%',\n width: '100%',\n x: '0',\n y: '0'\n });\n element.setAttribute('mask', `url(#${elementIds.modalOverlayMask})`);\n\n return element;\n}\n\n/**\n * Generates an SVG with the following structure:\n * ```html\n * <svg id=\"shepherdModalOverlayContainer\" xmlns=\"http://www.w3.org/2000/svg\">\n <defs>\n <mask id=\"shepherdModalMask\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" >\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"#FFFFFF\"/>\n <!-- This element will \"punch a hole\" through the mask by preventing it from rendering within the perimeter -->\n <rect id=\"shepherdModalMaskOpening\"/>\n </mask>\n </defs>\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" mask=\"url(#shepherdModalMask)\"/>\n </svg>\n * ```\n */\nfunction createModalOverlay() {\n const containerElement = _createModalContainer();\n const defsElement = document.createElementNS(svgNS, 'defs');\n const maskContainer = _createMaskContainer();\n const maskRect = _createMaskRect();\n const maskOpening = _createMaskOpening();\n const maskConsumer = _createMaskConsumer();\n\n maskContainer.appendChild(maskRect);\n maskContainer.appendChild(maskOpening);\n\n defsElement.appendChild(maskContainer);\n\n containerElement.appendChild(defsElement);\n containerElement.appendChild(maskConsumer);\n\n return containerElement;\n}\n\n/**\n * Uses the bounds of the element we want the opening overtop of to set the dimensions of the opening and position it\n * @param {HTMLElement} targetElement The element the opening will expose\n * @param {SVGElement} openingElement The svg mask for the opening\n */\nfunction positionModalOpening(targetElement, openingElement) {\n if (targetElement.getBoundingClientRect && openingElement instanceof SVGElement) {\n const { x, y, width, height, left, top } = targetElement.getBoundingClientRect();\n\n // getBoundingClientRect is not consistent. Some browsers use x and y, while others use left and top\n _setAttributes(openingElement, { x: x || left, y: y || top, width, height });\n }\n}\n\nfunction closeModalOpening(openingElement) {\n if (openingElement && openingElement instanceof SVGElement) {\n _setAttributes(openingElement, {\n height: '0',\n x: '0',\n y: '0',\n width: '0'\n });\n }\n}\n\nfunction getModalMaskOpening(modalElement) {\n return modalElement.querySelector(`#${elementIds.modalOverlayMaskOpening}`);\n}\n\nfunction preventModalBodyTouch(event) {\n event.preventDefault();\n}\n\nfunction preventModalOverlayTouch(event) {\n event.stopPropagation();\n}\n\n/**\n * Remove any leftover modal target classes and add the modal target class to the currentElement\n * @param {HTMLElement} currentElement The element for the current step\n */\nfunction toggleShepherdModalClass(currentElement) {\n const shepherdModal = document.querySelector(`${classNames.modalTarget}`);\n\n if (shepherdModal) {\n shepherdModal.classList.remove(classNames.modalTarget);\n }\n\n currentElement.classList.add(classNames.modalTarget);\n}\n\n/**\n * Set multiple attributes on an element, via a hash\n * @param {HTMLElement|SVGElement} el The element to set the attributes on\n * @param {Object} attrs A hash of key value pairs for attributes to set\n * @private\n */\nfunction _setAttributes(el, attrs) {\n Object.keys(attrs).forEach((key) => {\n el.setAttribute(key, attrs[key]);\n });\n}\n\nexport {\n createModalOverlay,\n positionModalOpening,\n preventModalBodyTouch,\n preventModalOverlayTouch,\n closeModalOpening,\n getModalMaskOpening,\n elementIds,\n classNames,\n toggleShepherdModalClass\n};\n","import { elementIds } from './modal';\nimport { preventModalBodyTouch, preventModalOverlayTouch } from './modal';\n\n/**\n * Helper method to check if element is hidden, since we cannot use :visible without jQuery\n * @param {HTMLElement} element The element to check for visibility\n * @returns {boolean} true if element is hidden\n * @private\n */\nfunction elementIsHidden(element) {\n return element.offsetWidth === 0 && element.offsetHeight === 0;\n}\n\n/**\n * Get the element from an option object\n *\n * @method getElementFromObject\n * @param Object attachTo\n * @returns {Element}\n * @private\n */\nfunction getElementFromObject(attachTo) {\n const op = attachTo.element;\n\n if (op instanceof HTMLElement) {\n return op;\n }\n\n return document.querySelector(op);\n}\n\n/**\n * Return the element for a step\n *\n * @method getElementForStep\n * @param step step the step to get an element for\n * @returns {Element} the element for this step\n * @private\n */\nfunction getElementForStep(step) {\n const { options: { attachTo } } = step;\n\n if (!attachTo) {\n return null;\n }\n\n const type = typeof attachTo;\n\n let element;\n\n if (type === 'string') {\n element = getElementFromString(attachTo);\n } else if (type === 'object') {\n element = getElementFromObject(attachTo);\n } else {\n /* istanbul ignore next: cannot test undefined attachTo, but it does work! */\n element = null;\n }\n return element;\n}\n\n/**\n * Get the element from an option string\n *\n * @method getElementFromString\n * @param element the string in the step configuration\n * @returns {Element} the element from the string\n * @private\n */\nfunction getElementFromString(element) {\n const [selector] = element.split(' ');\n\n return document.querySelector(selector);\n}\n\nfunction addStepEventListeners() {\n if (typeof this._onScreenChange === 'function') {\n window.removeEventListener('resize', this._onScreenChange, false);\n window.removeEventListener('scroll', this._onScreenChange, true);\n }\n\n window.addEventListener('resize', this._onScreenChange, false);\n window.addEventListener('scroll', this._onScreenChange, true);\n\n const overlay = document.querySelector(`#${elementIds.modalOverlay}`);\n // Prevents window from moving on touch.\n window.addEventListener('touchmove', preventModalBodyTouch, { passive: false });\n\n // Allows content to move on touch.\n if (overlay) {\n overlay.addEventListener('touchmove', preventModalOverlayTouch, false);\n }\n}\n\nexport {\n addStepEventListeners,\n elementIsHidden,\n getElementForStep\n};\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\nfunction baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n}\n\nexport default baseDelay;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nexport default defer;\n","import {\n getModalMaskOpening,\n createModalOverlay,\n positionModalOpening,\n closeModalOpening,\n classNames as modalClassNames\n} from './utils/modal';\nimport { addStepEventListeners, getElementForStep } from './utils/dom';\nimport debounce from 'lodash-es/debounce';\nimport defer from 'lodash-es/defer';\n\nexport class Modal {\n constructor(options) {\n if (!this._modalOverlayElem) {\n this._modalOverlayElem = createModalOverlay();\n this._modalOverlayOpening = getModalMaskOpening(this._modalOverlayElem);\n\n // don't show yet -- each step will control that\n this.hide();\n\n document.body.appendChild(this._modalOverlayElem);\n }\n\n this.options = options;\n\n return this;\n }\n\n /**\n * Removes svg mask from modal overlay and removes classes for modal being visible\n */\n cleanup() {\n defer(() => {\n const element = this._modalOverlayElem;\n\n if (element && element instanceof SVGElement) {\n element.parentNode.removeChild(element);\n }\n\n this._modalOverlayElem = null;\n document.body.classList.remove(modalClassNames.isVisible);\n });\n }\n\n /**\n * Hide the modal overlay\n */\n hide() {\n document.body.classList.remove(modalClassNames.isVisible);\n\n if (this._modalOverlayElem) {\n this._modalOverlayElem.style.display = 'none';\n }\n }\n\n /**\n * If modal is enabled, setup the svg mask opening and modal overlay for the step\n * @param step\n */\n setupForStep(step) {\n if (this.options.useModalOverlay) {\n this._styleForStep(step);\n this.show();\n\n } else {\n this.hide();\n }\n }\n\n /**\n * Show the modal overlay\n */\n show() {\n document.body.classList.add(modalClassNames.isVisible);\n\n if (this._modalOverlayElem) {\n this._modalOverlayElem.style.display = 'block';\n }\n }\n\n /**\n * Style the modal for the step\n * @param {Step} step The step to style the opening for\n * @private\n */\n _styleForStep(step) {\n const modalOverlayOpening = this._modalOverlayOpening;\n const targetElement = getElementForStep(step);\n\n if (targetElement) {\n positionModalOpening(targetElement, modalOverlayOpening);\n\n this._onScreenChange = debounce(\n positionModalOpening.bind(this, targetElement, modalOverlayOpening),\n 0,\n { leading: false, trailing: true } // see https://lodash.com/docs/#debounce\n );\n\n addStepEventListeners.call(this);\n\n } else {\n closeModalOpening(this._modalOverlayOpening);\n }\n }\n}","export const defaults = {\n trigger: 'manual',\n arrow: true,\n animation: 'fade',\n duration: 420,\n flip: true,\n animateFill: false, // https://atomiks.github.io/tippyjs/#animate-fill-option\n interactive: true, // https://atomiks.github.io/tippyjs/#interactive-option\n hideOnClick: 'toggle', // https://atomiks.github.io/tippyjs/#hide-on-click-option\n multiple: true // https://atomiks.github.io/tippyjs/#multiple-option\n};\n","import { preventModalBodyTouch } from './modal';\nimport { getElementForStep } from './dom';\n\n/**\n * Cleanup the steps and set pointerEvents back to 'auto'\n * @param tour The tour object\n */\nexport function cleanupSteps(tour) {\n if (tour) {\n const { steps } = tour;\n\n steps.forEach((step) => {\n if (step.options && step.options.canClickTarget === false && step.options.attachTo) {\n const stepElement = getElementForStep(step);\n\n if (stepElement instanceof HTMLElement) {\n stepElement.style.pointerEvents = 'auto';\n }\n }\n });\n }\n}\n\n/**\n * Remove resize and scroll event listeners\n */\nexport function cleanupStepEventListeners() {\n if (typeof this._onScreenChange === 'function') {\n window.removeEventListener('resize', this._onScreenChange, false);\n window.removeEventListener('scroll', this._onScreenChange, false);\n\n this._onScreenChange = null;\n }\n window.removeEventListener('touchmove', preventModalBodyTouch, {\n passive: false\n });\n}\n","import isEmpty from 'lodash-es/isEmpty';\nimport isFunction from 'lodash-es/isFunction';\nimport isNumber from 'lodash-es/isNumber';\nimport isString from 'lodash-es/isString';\nimport isUndefined from 'lodash-es/isUndefined';\nimport { Evented } from './evented.js';\nimport { Modal } from './modal.js';\nimport { Step } from './step.js';\nimport { bindMethods } from './bind.js';\nimport tippy from 'tippy.js';\nimport { defaults as tooltipDefaults } from './utils/tooltip-defaults';\n\nimport {\n cleanupSteps,\n cleanupStepEventListeners\n} from './utils/cleanup';\n\nimport {\n addStepEventListeners,\n getElementForStep\n} from './utils/dom';\n\nimport {\n toggleShepherdModalClass\n} from './utils/modal';\n\n/**\n * Creates incremented ID for each newly created tour\n *\n * @private\n * @return {Number} The unique id for the tour\n */\nconst uniqueId = (function() {\n let id = 0;\n return function() {\n return ++id;\n };\n})();\n\nconst Shepherd = new Evented();\n\n/**\n * Class representing the site tour\n * @extends {Evented}\n */\nexport class Tour extends Evented {\n /**\n * @param {Object} options The options for the tour\n * @param {Object} options.defaultStepOptions Default options for Steps created through `addStep`\n * @param {Step[]} options.steps An array of Step instances to initialize the tour with\n * @param {string} options.tourName An optional \"name\" for the tour. This will be appended to the the tour's\n * dynamically generated `id` property -- which is also set on the `body` element as the `data-shepherd-active-tour` attribute\n * whenever the tour becomes active.\n * @param {boolean} options.useModalOverlay Whether or not steps should be placed above a darkened\n * modal overlay. If true, the overlay will create an opening around the target element so that it\n * can remain interactive\n * @returns {Tour}\n */\n constructor(options = {}) {\n super(options);\n bindMethods.call(this, [\n 'back',\n 'cancel',\n 'complete',\n 'hide',\n 'next'\n ]);\n this.options = options;\n this.steps = this.options.steps || [];\n\n // Pass these events onto the global Shepherd object\n const events = ['active', 'cancel', 'complete', 'inactive', 'show', 'start'];\n events.map((event) => {\n ((e) => {\n this.on(e, (opts) => {\n opts = opts || {};\n opts.tour = this;\n Shepherd.trigger(e, opts);\n });\n })(event);\n });\n\n this.modal = new Modal(options);\n\n this._setTooltipDefaults();\n this._setTourID();\n\n return this;\n }\n\n /**\n * Adds a new step to the tour\n * @param {Object|Number|Step|String} arg1\n * When arg2 is defined, arg1 can either be a string or number, to use for the `id` for the step\n * When arg2 is undefined, arg1 is either an object containing step options or a Step instance\n * @param {Object|Step} arg2 An object containing step options or a Step instance\n * @return {Step} The newly added step\n */\n addStep(arg1, arg2) {\n let name, step;\n\n // If we just have one argument, we can assume it is an object of step options, with an id\n if (isUndefined(arg2)) {\n step = arg1;\n } else {\n name = arg1;\n step = arg2;\n }\n\n if (!(step instanceof Step)) {\n step = this.setupStep(step, name);\n } else {\n step.tour = this;\n }\n\n this.steps.push(step);\n return step;\n }\n\n /**\n * Go to the previous step in the tour\n */\n back() {\n const index = this.steps.indexOf(this.currentStep);\n this.show(index - 1, false);\n }\n\n /**\n * Calls done() triggering the 'cancel' event\n * If `confirmCancel` is true, will show a window.confirm before cancelling\n */\n cancel() {\n if (this.options.confirmCancel) {\n const cancelMessage = this.options.confirmCancelMessage || 'Are you sure you want to stop the tour?';\n const stopTour = window.confirm(cancelMessage);\n if (stopTour) {\n this.done('cancel');\n }\n } else {\n this.done('cancel');\n }\n }\n\n /**\n * Calls done() triggering the `complete` event\n */\n complete() {\n this.done('complete');\n }\n\n /**\n * Called whenever the tour is cancelled or completed, basically anytime we exit the tour\n * @param {String} event The event name to trigger\n */\n done(event) {\n if (!isEmpty(this.steps)) {\n this.steps.forEach((step) => step.destroy());\n }\n\n cleanupStepEventListeners.call(this);\n cleanupSteps(this.tourObject);\n this.modal.cleanup();\n\n this.trigger(event);\n\n Shepherd.activeTour = null;\n this._removeBodyAttrs();\n this.trigger('inactive', { tour: this });\n }\n\n /**\n * Gets the step from a given id\n * @param {Number|String} id The id of the step to retrieve\n * @return {Step} The step corresponding to the `id`\n */\n getById(id) {\n return this.steps.find((step) => {\n return step.id === id;\n });\n }\n\n /**\n * Gets the current step\n * @returns {Step|null}\n */\n getCurrentStep() {\n return this.currentStep;\n }\n\n /**\n * Hide the current step\n */\n hide() {\n const currentStep = this.getCurrentStep();\n\n if (currentStep) {\n return currentStep.hide();\n }\n }\n\n isActive() {\n return Shepherd.activeTour === this;\n }\n\n /**\n * Go to the next step in the tour\n * If we are at the end, call `complete`\n */\n next() {\n const index = this.steps.indexOf(this.currentStep);\n\n if (index === this.steps.length - 1) {\n this.complete();\n } else {\n this.show(index + 1, true);\n }\n }\n\n /**\n * Removes the step from the tour\n * @param {String} name The id for the step to remove\n */\n removeStep(name) {\n const current = this.getCurrentStep();\n\n // Find the step, destroy it and remove it from this.steps\n this.steps.some((step, i) => {\n if (step.id === name) {\n if (step.isOpen()) {\n step.hide();\n }\n\n step.destroy();\n this.steps.splice(i, 1);\n\n return true;\n }\n });\n\n if (current && current.id === name) {\n this.currentStep = undefined;\n\n // If we have steps left, show the first one, otherwise just cancel the tour\n this.steps.length ? this.show(0) : this.cancel();\n }\n }\n\n /**\n * Setup a new step object\n * @param {Object} stepOptions The object describing the options for the step\n * @param {String|Number} name The string or number to use as the `id` for the step\n * @return {Step} The step instance\n */\n setupStep(stepOptions, name) {\n if (isString(name) || isNumber(name)) {\n stepOptions.id = name.toString();\n }\n\n stepOptions = Object.assign({}, this.options.defaultStepOptions, stepOptions);\n\n return new Step(this, stepOptions);\n }\n\n beforeShowStep(step) {\n this.modal.setupForStep(step);\n this._styleTargetElementForStep(step);\n }\n\n /**\n * Show a specific step in the tour\n * @param {Number|String} key The key to look up the step by\n * @param {Boolean} forward True if we are going forward, false if backward\n */\n show(key = 0, forward = true) {\n const step = isString(key) ? this.getById(key) : this.steps[key];\n\n if (step) {\n this._updateStateBeforeShow();\n\n const shouldSkipStep = isFunction(step.options.showOn) && !step.options.showOn();\n\n // If `showOn` returns false, we want to skip the step, otherwise, show the step like normal\n if (shouldSkipStep) {\n this._skipStep(step, forward);\n } else {\n this.trigger('show', {\n step,\n previous: this.currentStep\n });\n\n this.currentStep = step;\n step.show();\n }\n }\n }\n\n /**\n * Start the tour\n */\n start() {\n this.trigger('start');\n\n this.currentStep = null;\n this._setupActiveTour();\n addStepEventListeners.call(this);\n this.next();\n }\n\n /**\n * Make this tour \"active\"\n * @private\n */\n _setupActiveTour() {\n this._addBodyAttrs();\n this.trigger('active', { tour: this });\n\n Shepherd.activeTour = this;\n }\n\n /**\n * Modulates the styles of the passed step's target element, based on the step's options and\n * the tour's `modal` option, to visually emphasize the element\n *\n * @param step The step object that attaches to the element\n * @private\n */\n _styleTargetElementForStep(step) {\n const targetElement = getElementForStep(step);\n\n if (!targetElement) {\n return;\n }\n\n toggleShepherdModalClass(targetElement);\n\n if (step.options.highlightClass) {\n targetElement.classList.add(step.options.highlightClass);\n }\n\n if (step.options.canClickTarget === false) {\n targetElement.style.pointerEvents = 'none';\n }\n }\n\n /**\n * Called when `showOn` evaluates to false, to skip the step\n * @param {Step} step The step to skip\n * @param {Boolean} forward True if we are going forward, false if backward\n * @private\n */\n _skipStep(step, forward) {\n const index = this.steps.indexOf(step);\n const nextIndex = forward ? index + 1 : index - 1;\n this.show(nextIndex, forward);\n }\n\n _setTooltipDefaults() {\n tippy.setDefaults(tooltipDefaults);\n }\n\n _updateStateBeforeShow() {\n if (this.currentStep) {\n this.currentStep.hide();\n }\n\n if (!this.isActive()) {\n this._setupActiveTour();\n }\n }\n\n _setTourID() {\n const tourName = this.options.tourName || 'tour';\n const uuid = uniqueId();\n\n this.id = `${tourName}--${uuid}`;\n }\n\n _addBodyAttrs() {\n document.body.setAttribute('data-shepherd-active-tour', this.id);\n document.body.classList.add('shepherd-active');\n }\n\n _removeBodyAttrs() {\n document.body.removeAttribute('data-shepherd-active-tour');\n document.body.classList.remove('shepherd-active');\n }\n\n}\n\nexport { Shepherd };\n","import '../scss/shepherd-theme-dark.scss';\nimport '../scss/shepherd-theme-default.scss';\nimport '../scss/shepherd-theme-square.scss';\nimport '../scss/shepherd-theme-square-dark.scss';\n\nimport { Evented } from './evented.js';\nimport { Step } from './step.js';\nimport { Shepherd, Tour } from './tour.js';\n\nObject.assign(Shepherd, { Tour, Step, Evented });\n\nexport default Shepherd;\n"],"names":["Symbol","objectProto","nativeObjectToString","symToStringTag","Evented","event","handler","ctx","once","arguments","length","undefined","isUndefined","bindings","push","on","forEach","binding","index","splice","args","drop","context","apply","hasOwnProperty","MAX_SAFE_INTEGER","argsTag","freeExports","freeModule","moduleExports","funcTag","objectTag","funcProto","funcToString","Map","Promise","mapTag","setTag","weakMapTag","dataViewTag","getTag","stringTag","isFunction","defineProperty","_extends","isBrowser","isIE","Defaults","isPlainObject","getValue","debounce","keys","missingTippy","centeredStylePopperModifier","computeStyle","enabled","fn","data","styles","left","top","transform","defaultPopperOptions","positionFixed","createFromHTML","html","el","document","createElement","innerHTML","children","_parseAttachToOpts","opts","isObjectLike","positionRe","matches","exec","element","parseShorthand","obj","props","values","split","zipObject","setupTooltip","tippy","Error","tooltip","destroy","attachToOpts","parseAttachTo","_makeTippyInstance","call","target","body","classList","add","options","attachTo","returnOpts","isString","querySelector","e","console","error","attachToOptions","_makeCenteredTippy","tippyOptions","_makeAttachedTippyOptions","resultingTippyOptions","content","placement","popperOptions","arrow","finalPopperOptions","modifiers","_setupAdvanceOnHandler","selector","isOpen","targetIsEl","targetIsSelector","tour","next","bindAdvance","advanceOn","addEventListener","removeEventListener","bindButtonEvents","cfg","events","action","click","forOwn","page","show","dataset","buttonEvent","removeAttribute","bindCancelLink","link","preventDefault","cancel","bindMethods","methods","map","method","bind","uniqueId","id","Step","setOptions","isEmpty","buttons","footer","button","classes","text","appendChild","header","showCancelLink","paragraphs","HTMLElement","paragraph","title","_addContent","_addButtons","_addCancelLink","trigger","complete","isElement","parentNode","removeChild","_updateStepTargetOnHide","modal","hide","Boolean","state","isVisible","_createTooltipContent","scrollToHandler","scrollIntoView","when","beforeShowPromise","then","_show","beforeShowStep","setupElements","setAttribute","scrollTo","setTimeout","highlightClass","remove","numberTag","svgNS","elementIds","modalOverlay","modalOverlayMask","modalOverlayMaskRect","modalOverlayMaskOpening","classNames","modalTarget","_createModalContainer","createElementNS","setAttributeNS","_createMaskContainer","_setAttributes","height","width","x","y","_createMaskRect","fill","_createMaskOpening","_createMaskConsumer","createModalOverlay","containerElement","defsElement","maskContainer","maskRect","maskOpening","maskConsumer","positionModalOpening","targetElement","openingElement","getBoundingClientRect","SVGElement","closeModalOpening","getModalMaskOpening","modalElement","preventModalBodyTouch","preventModalOverlayTouch","stopPropagation","toggleShepherdModalClass","currentElement","shepherdModal","attrs","Object","key","getElementFromObject","op","getElementForStep","step","type","getElementFromString","addStepEventListeners","_onScreenChange","window","overlay","passive","FUNC_ERROR_TEXT","nativeMax","Modal","_modalOverlayElem","_modalOverlayOpening","defer","modalClassNames","style","display","useModalOverlay","_styleForStep","modalOverlayOpening","leading","trailing","defaults","animation","duration","flip","animateFill","interactive","hideOnClick","multiple","cleanupSteps","steps","canClickTarget","stepElement","pointerEvents","cleanupStepEventListeners","Shepherd","Tour","_setTooltipDefaults","_setTourID","arg1","arg2","name","setupStep","indexOf","currentStep","confirmCancel","cancelMessage","confirmCancelMessage","stopTour","confirm","done","tourObject","cleanup","activeTour","_removeBodyAttrs","find","getCurrentStep","current","some","i","stepOptions","isNumber","toString","defaultStepOptions","setupForStep","_styleTargetElementForStep","forward","getById","_updateStateBeforeShow","shouldSkipStep","showOn","_skipStep","previous","_setupActiveTour","_addBodyAttrs","nextIndex","setDefaults","tooltipDefaults","isActive","tourName","uuid"],"mappings":"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;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA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"}
@@ -1 +0,0 @@
1
- @charset "UTF-8";#shepherdModalOverlayContainer{-ms-filter:"progid:dximagetransform.microsoft.gradient.alpha(Opacity=50)";filter:alpha(opacity=50);height:100vh;left:0;opacity:.5;position:fixed;top:0;transition:all .3s ease-out;width:100vw;z-index:9997}#shepherdModalOverlayContainer #shepherdModalMask,#shepherdModalOverlayContainer #shepherdModalMaskRect{height:100vh;width:100vw}.shepherd-modal.shepherd-enabled{position:relative;z-index:9998}.shepherd-active.shepherd-modal-is-visible :not(.shepherd-target){pointer-events:none}.shepherd-active.shepherd-modal-is-visible .shepherd-button,.shepherd-active.shepherd-modal-is-visible .shepherd-button *,.shepherd-active.shepherd-modal-is-visible .shepherd-cancel-link,.shepherd-active.shepherd-modal-is-visible .shepherd-cancel-link *,.shepherd-active.shepherd-modal-is-visible .shepherd-element,.shepherd-active.shepherd-modal-is-visible .shepherd-element *,.shepherd-active.shepherd-modal-is-visible .shepherd-target,.shepherd-active.shepherd-modal-is-visible .shepherd-target *{pointer-events:auto}.tippy-arrow{-ms-transform:scale(2);transform:scale(2)}.tippy-popper{z-index:9999}.tippy-popper .tippy-arrow{border:16px solid rgba(0,0,0,0);content:"";display:block;height:0;pointer-events:none;position:absolute;width:0}.tippy-popper[x-placement^=top]{margin-bottom:16px}.tippy-popper[x-placement^=top] .tippy-arrow{border-bottom:0;border-top-color:#232323;left:calc(50% - 16px)}.tippy-popper[x-placement^=bottom]{margin-top:16px}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom-color:#303030;border-top:0;left:calc(50% - 16px)}.tippy-popper[x-placement^=left]{margin-right:16px}.tippy-popper[x-placement^=left] .tippy-arrow{border-left-color:#232323;border-right:0;margin-top:-16px;top:calc(50% - 16px)}.tippy-popper[x-placement^=right]{margin-left:16px}.tippy-popper[x-placement^=right] .tippy-arrow{border-left:0;border-right-color:#232323;top:calc(50% - 16px)}.tippy-popper .tippy-tooltip{background-color:rgba(0,0,0,0);max-height:100%;max-width:100%;padding:0;width:400px}.shepherd-element,.shepherd-element *,.shepherd-element:after,.shepherd-element :after,.shepherd-element:before,.shepherd-element :before{box-sizing:border-box}.shepherd-element{filter:drop-shadow(0 1px 4px rgba(0,0,0,.2))}.shepherd-element.shepherd-has-title .shepherd-content header{background:#303030;padding:1em}.shepherd-element .shepherd-content{background:#232323;font-size:inherit;padding:0}.shepherd-element .shepherd-content header{*zoom:1;-ms-flex-align:center;align-items:center;border-top-left-radius:5px;border-top-right-radius:5px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;line-height:2em;padding:.75em .75em 0}.shepherd-element .shepherd-content header:after{clear:both;content:"";display:table}.shepherd-element .shepherd-content header .shepherd-cancel-link,.shepherd-element .shepherd-content header .shepherd-title{font-weight:400;margin:0;padding:0;position:relative;vertical-align:middle}.shepherd-element .shepherd-content header .shepherd-title{color:hsla(0,0%,100%,.75);display:-ms-flexbox;display:flex;-ms-flex:1 0 auto;flex:1 0 auto;font-size:1.1em}.shepherd-element .shepherd-content header .shepherd-cancel-link{color:hsla(0,0%,100%,.75);font-size:2em;margin-left:auto;text-decoration:none;transition:color .5s ease}.shepherd-element .shepherd-content header .shepherd-cancel-link:before{content:"×"}.shepherd-element .shepherd-content header .shepherd-cancel-link:hover{color:hsla(0,0%,100%,.75)}.shepherd-element .shepherd-content .shepherd-text{color:hsla(0,0%,100%,.75);line-height:1.3em;padding:.75em}.shepherd-element .shepherd-content .shepherd-text a,.shepherd-element .shepherd-content .shepherd-text a:active,.shepherd-element .shepherd-content .shepherd-text a:visited{border-bottom:1px dotted hsla(0,0%,100%,.75);color:hsla(0,0%,100%,.75);text-decoration:none}.shepherd-element .shepherd-content .shepherd-text a:active:hover,.shepherd-element .shepherd-content .shepherd-text a:hover,.shepherd-element .shepherd-content .shepherd-text a:visited:hover{border-bottom-style:solid}.shepherd-element .shepherd-content .shepherd-text p{margin-top:0}.shepherd-element .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element .shepherd-content footer{border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding:0 .75em .75em}.shepherd-element .shepherd-content footer .shepherd-buttons{list-style:none;margin:0;padding:0;text-align:right}.shepherd-element .shepherd-content footer .shepherd-buttons li{display:inline;margin:0 .5em 0 0}.shepherd-element .shepherd-content footer .shepherd-buttons li:last-child{margin-right:0}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;*display:inline;vertical-align:middle;*vertical-align:auto;*zoom:1;background:#3288e6;border:0;border-radius:3px;color:hsla(0,0%,100%,.75);cursor:pointer;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;padding:.75em 2em;text-transform:uppercase;transition:all .5s ease}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button:hover{background:#196fcc}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary{background:#f1f2f3;color:rgba(0,0,0,.75)}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary:hover{background:#d5d8dc;color:rgba(0,0,0,.75)}
@@ -1 +0,0 @@
1
- @charset "UTF-8";#shepherdModalOverlayContainer{-ms-filter:"progid:dximagetransform.microsoft.gradient.alpha(Opacity=50)";filter:alpha(opacity=50);height:100vh;left:0;opacity:.5;position:fixed;top:0;transition:all .3s ease-out;width:100vw;z-index:9997}#shepherdModalOverlayContainer #shepherdModalMask,#shepherdModalOverlayContainer #shepherdModalMaskRect{height:100vh;width:100vw}.shepherd-modal.shepherd-enabled{position:relative;z-index:9998}.shepherd-active.shepherd-modal-is-visible :not(.shepherd-target){pointer-events:none}.shepherd-active.shepherd-modal-is-visible .shepherd-button,.shepherd-active.shepherd-modal-is-visible .shepherd-button *,.shepherd-active.shepherd-modal-is-visible .shepherd-cancel-link,.shepherd-active.shepherd-modal-is-visible .shepherd-cancel-link *,.shepherd-active.shepherd-modal-is-visible .shepherd-element,.shepherd-active.shepherd-modal-is-visible .shepherd-element *,.shepherd-active.shepherd-modal-is-visible .shepherd-target,.shepherd-active.shepherd-modal-is-visible .shepherd-target *{pointer-events:auto}.tippy-arrow{-ms-transform:scale(2);transform:scale(2)}.tippy-popper{z-index:9999}.tippy-popper .tippy-arrow{border:16px solid rgba(0,0,0,0);content:"";display:block;height:0;pointer-events:none;position:absolute;width:0}.tippy-popper[x-placement^=top]{margin-bottom:16px}.tippy-popper[x-placement^=top] .tippy-arrow{border-bottom:0;border-top-color:#f6f6f6;left:calc(50% - 16px)}.tippy-popper[x-placement^=bottom]{margin-top:16px}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom-color:#e6e6e6;border-top:0;left:calc(50% - 16px)}.tippy-popper[x-placement^=left]{margin-right:16px}.tippy-popper[x-placement^=left] .tippy-arrow{border-left-color:#f6f6f6;border-right:0;margin-top:-16px;top:calc(50% - 16px)}.tippy-popper[x-placement^=right]{margin-left:16px}.tippy-popper[x-placement^=right] .tippy-arrow{border-left:0;border-right-color:#f6f6f6;top:calc(50% - 16px)}.tippy-popper .tippy-tooltip{background-color:rgba(0,0,0,0);max-height:100%;max-width:100%;padding:0;width:400px}.shepherd-element,.shepherd-element *,.shepherd-element:after,.shepherd-element :after,.shepherd-element:before,.shepherd-element :before{box-sizing:border-box}.shepherd-element{filter:drop-shadow(0 1px 4px rgba(0,0,0,.2))}.shepherd-element.shepherd-has-title .shepherd-content header{background:#e6e6e6;padding:1em}.shepherd-element .shepherd-content{background:#f6f6f6;font-size:inherit;padding:0}.shepherd-element .shepherd-content header{*zoom:1;-ms-flex-align:center;align-items:center;border-top-left-radius:5px;border-top-right-radius:5px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;line-height:2em;padding:.75em .75em 0}.shepherd-element .shepherd-content header:after{clear:both;content:"";display:table}.shepherd-element .shepherd-content header .shepherd-cancel-link,.shepherd-element .shepherd-content header .shepherd-title{font-weight:400;margin:0;padding:0;position:relative;vertical-align:middle}.shepherd-element .shepherd-content header .shepherd-title{color:rgba(0,0,0,.75);display:-ms-flexbox;display:flex;-ms-flex:1 0 auto;flex:1 0 auto;font-size:1.1em}.shepherd-element .shepherd-content header .shepherd-cancel-link{color:hsla(0,0%,70.2%,.75);font-size:2em;margin-left:auto;text-decoration:none;transition:color .5s ease}.shepherd-element .shepherd-content header .shepherd-cancel-link:before{content:"×"}.shepherd-element .shepherd-content header .shepherd-cancel-link:hover{color:rgba(0,0,0,.75)}.shepherd-element .shepherd-content .shepherd-text{color:rgba(0,0,0,.75);line-height:1.3em;padding:.75em}.shepherd-element .shepherd-content .shepherd-text a,.shepherd-element .shepherd-content .shepherd-text a:active,.shepherd-element .shepherd-content .shepherd-text a:visited{border-bottom:1px dotted rgba(0,0,0,.75);color:rgba(0,0,0,.75);text-decoration:none}.shepherd-element .shepherd-content .shepherd-text a:active:hover,.shepherd-element .shepherd-content .shepherd-text a:hover,.shepherd-element .shepherd-content .shepherd-text a:visited:hover{border-bottom-style:solid}.shepherd-element .shepherd-content .shepherd-text p{margin-top:0}.shepherd-element .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element .shepherd-content footer{border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding:0 .75em .75em}.shepherd-element .shepherd-content footer .shepherd-buttons{list-style:none;margin:0;padding:0;text-align:right}.shepherd-element .shepherd-content footer .shepherd-buttons li{display:inline;margin:0 .5em 0 0}.shepherd-element .shepherd-content footer .shepherd-buttons li:last-child{margin-right:0}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;*display:inline;vertical-align:middle;*vertical-align:auto;*zoom:1;background:#3288e6;border:0;border-radius:3px;color:hsla(0,0%,100%,.75);cursor:pointer;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;padding:.75em 2em;text-transform:uppercase;transition:all .5s ease}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button:hover{background:#196fcc}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary{background:#f1f2f3;color:rgba(0,0,0,.75)}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary:hover{background:#d5d8dc;color:rgba(0,0,0,.75)}
@@ -1 +0,0 @@
1
- @charset "UTF-8";#shepherdModalOverlayContainer{-ms-filter:"progid:dximagetransform.microsoft.gradient.alpha(Opacity=50)";filter:alpha(opacity=50);height:100vh;left:0;opacity:.5;position:fixed;top:0;transition:all .3s ease-out;width:100vw;z-index:9997}#shepherdModalOverlayContainer #shepherdModalMask,#shepherdModalOverlayContainer #shepherdModalMaskRect{height:100vh;width:100vw}.shepherd-modal.shepherd-enabled{position:relative;z-index:9998}.shepherd-active.shepherd-modal-is-visible :not(.shepherd-target){pointer-events:none}.shepherd-active.shepherd-modal-is-visible .shepherd-button,.shepherd-active.shepherd-modal-is-visible .shepherd-button *,.shepherd-active.shepherd-modal-is-visible .shepherd-cancel-link,.shepherd-active.shepherd-modal-is-visible .shepherd-cancel-link *,.shepherd-active.shepherd-modal-is-visible .shepherd-element,.shepherd-active.shepherd-modal-is-visible .shepherd-element *,.shepherd-active.shepherd-modal-is-visible .shepherd-target,.shepherd-active.shepherd-modal-is-visible .shepherd-target *{pointer-events:auto}.tippy-arrow{-ms-transform:scale(2);transform:scale(2)}.tippy-popper{z-index:9999}.tippy-popper .tippy-arrow{border:16px solid rgba(0,0,0,0);content:"";display:block;height:0;pointer-events:none;position:absolute;width:0}.tippy-popper[x-placement^=top]{margin-bottom:16px}.tippy-popper[x-placement^=top] .tippy-arrow{border-bottom:0;border-top-color:#232323;left:calc(50% - 16px)}.tippy-popper[x-placement^=bottom]{margin-top:16px}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom-color:#303030;border-top:0;left:calc(50% - 16px)}.tippy-popper[x-placement^=left]{margin-right:16px}.tippy-popper[x-placement^=left] .tippy-arrow{border-left-color:#232323;border-right:0;margin-top:-16px;top:calc(50% - 16px)}.tippy-popper[x-placement^=right]{margin-left:16px}.tippy-popper[x-placement^=right] .tippy-arrow{border-left:0;border-right-color:#232323;top:calc(50% - 16px)}.tippy-popper .tippy-tooltip{background-color:rgba(0,0,0,0);max-height:100%;max-width:100%;padding:0;width:400px}.shepherd-element,.shepherd-element *,.shepherd-element:after,.shepherd-element :after,.shepherd-element:before,.shepherd-element :before{box-sizing:border-box}.shepherd-element{filter:drop-shadow(0 1px 4px rgba(0,0,0,.2))}.shepherd-element.shepherd-has-title .shepherd-content header{background:#303030;padding:1em}.shepherd-element .shepherd-content{background:#232323;font-size:inherit;padding:0}.shepherd-element .shepherd-content header{*zoom:1;-ms-flex-align:center;align-items:center;border-top-left-radius:0;border-top-right-radius:0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;line-height:2em;padding:.75em .75em 0}.shepherd-element .shepherd-content header:after{clear:both;content:"";display:table}.shepherd-element .shepherd-content header .shepherd-cancel-link,.shepherd-element .shepherd-content header .shepherd-title{font-weight:400;margin:0;padding:0;position:relative;vertical-align:middle}.shepherd-element .shepherd-content header .shepherd-title{color:hsla(0,0%,100%,.75);display:-ms-flexbox;display:flex;-ms-flex:1 0 auto;flex:1 0 auto;font-size:1.1em}.shepherd-element .shepherd-content header .shepherd-cancel-link{color:hsla(0,0%,100%,.75);font-size:2em;margin-left:auto;text-decoration:none;transition:color .5s ease}.shepherd-element .shepherd-content header .shepherd-cancel-link:before{content:"×"}.shepherd-element .shepherd-content header .shepherd-cancel-link:hover{color:hsla(0,0%,100%,.75)}.shepherd-element .shepherd-content .shepherd-text{color:hsla(0,0%,100%,.75);line-height:1.3em;padding:.75em}.shepherd-element .shepherd-content .shepherd-text a,.shepherd-element .shepherd-content .shepherd-text a:active,.shepherd-element .shepherd-content .shepherd-text a:visited{border-bottom:1px dotted hsla(0,0%,100%,.75);color:hsla(0,0%,100%,.75);text-decoration:none}.shepherd-element .shepherd-content .shepherd-text a:active:hover,.shepherd-element .shepherd-content .shepherd-text a:hover,.shepherd-element .shepherd-content .shepherd-text a:visited:hover{border-bottom-style:solid}.shepherd-element .shepherd-content .shepherd-text p{margin-top:0}.shepherd-element .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element .shepherd-content footer{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0 .75em .75em}.shepherd-element .shepherd-content footer .shepherd-buttons{list-style:none;margin:0;padding:0;text-align:right}.shepherd-element .shepherd-content footer .shepherd-buttons li{display:inline;margin:0 .5em 0 0}.shepherd-element .shepherd-content footer .shepherd-buttons li:last-child{margin-right:0}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;*display:inline;vertical-align:middle;*vertical-align:auto;*zoom:1;background:#3288e6;border:0;border-radius:0;color:hsla(0,0%,100%,.75);cursor:pointer;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;padding:.75em 2em;text-transform:uppercase;transition:all .5s ease}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button:hover{background:#196fcc}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary{background:#f1f2f3;color:rgba(0,0,0,.75)}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary:hover{background:#d5d8dc;color:rgba(0,0,0,.75)}
@@ -1 +0,0 @@
1
- @charset "UTF-8";#shepherdModalOverlayContainer{-ms-filter:"progid:dximagetransform.microsoft.gradient.alpha(Opacity=50)";filter:alpha(opacity=50);height:100vh;left:0;opacity:.5;position:fixed;top:0;transition:all .3s ease-out;width:100vw;z-index:9997}#shepherdModalOverlayContainer #shepherdModalMask,#shepherdModalOverlayContainer #shepherdModalMaskRect{height:100vh;width:100vw}.shepherd-modal.shepherd-enabled{position:relative;z-index:9998}.shepherd-active.shepherd-modal-is-visible :not(.shepherd-target){pointer-events:none}.shepherd-active.shepherd-modal-is-visible .shepherd-button,.shepherd-active.shepherd-modal-is-visible .shepherd-button *,.shepherd-active.shepherd-modal-is-visible .shepherd-cancel-link,.shepherd-active.shepherd-modal-is-visible .shepherd-cancel-link *,.shepherd-active.shepherd-modal-is-visible .shepherd-element,.shepherd-active.shepherd-modal-is-visible .shepherd-element *,.shepherd-active.shepherd-modal-is-visible .shepherd-target,.shepherd-active.shepherd-modal-is-visible .shepherd-target *{pointer-events:auto}.tippy-arrow{-ms-transform:scale(2);transform:scale(2)}.tippy-popper{z-index:9999}.tippy-popper .tippy-arrow{border:16px solid rgba(0,0,0,0);content:"";display:block;height:0;pointer-events:none;position:absolute;width:0}.tippy-popper[x-placement^=top]{margin-bottom:16px}.tippy-popper[x-placement^=top] .tippy-arrow{border-bottom:0;border-top-color:#f6f6f6;left:calc(50% - 16px)}.tippy-popper[x-placement^=bottom]{margin-top:16px}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom-color:#e6e6e6;border-top:0;left:calc(50% - 16px)}.tippy-popper[x-placement^=left]{margin-right:16px}.tippy-popper[x-placement^=left] .tippy-arrow{border-left-color:#f6f6f6;border-right:0;margin-top:-16px;top:calc(50% - 16px)}.tippy-popper[x-placement^=right]{margin-left:16px}.tippy-popper[x-placement^=right] .tippy-arrow{border-left:0;border-right-color:#f6f6f6;top:calc(50% - 16px)}.tippy-popper .tippy-tooltip{background-color:rgba(0,0,0,0);max-height:100%;max-width:100%;padding:0;width:400px}.shepherd-element,.shepherd-element *,.shepherd-element:after,.shepherd-element :after,.shepherd-element:before,.shepherd-element :before{box-sizing:border-box}.shepherd-element{filter:drop-shadow(0 1px 4px rgba(0,0,0,.2))}.shepherd-element.shepherd-has-title .shepherd-content header{background:#e6e6e6;padding:1em}.shepherd-element .shepherd-content{background:#f6f6f6;font-size:inherit;padding:0}.shepherd-element .shepherd-content header{*zoom:1;-ms-flex-align:center;align-items:center;border-top-left-radius:0;border-top-right-radius:0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;line-height:2em;padding:.75em .75em 0}.shepherd-element .shepherd-content header:after{clear:both;content:"";display:table}.shepherd-element .shepherd-content header .shepherd-cancel-link,.shepherd-element .shepherd-content header .shepherd-title{font-weight:400;margin:0;padding:0;position:relative;vertical-align:middle}.shepherd-element .shepherd-content header .shepherd-title{color:rgba(0,0,0,.75);display:-ms-flexbox;display:flex;-ms-flex:1 0 auto;flex:1 0 auto;font-size:1.1em}.shepherd-element .shepherd-content header .shepherd-cancel-link{color:hsla(0,0%,70.2%,.75);font-size:2em;margin-left:auto;text-decoration:none;transition:color .5s ease}.shepherd-element .shepherd-content header .shepherd-cancel-link:before{content:"×"}.shepherd-element .shepherd-content header .shepherd-cancel-link:hover{color:rgba(0,0,0,.75)}.shepherd-element .shepherd-content .shepherd-text{color:rgba(0,0,0,.75);line-height:1.3em;padding:.75em}.shepherd-element .shepherd-content .shepherd-text a,.shepherd-element .shepherd-content .shepherd-text a:active,.shepherd-element .shepherd-content .shepherd-text a:visited{border-bottom:1px dotted rgba(0,0,0,.75);color:rgba(0,0,0,.75);text-decoration:none}.shepherd-element .shepherd-content .shepherd-text a:active:hover,.shepherd-element .shepherd-content .shepherd-text a:hover,.shepherd-element .shepherd-content .shepherd-text a:visited:hover{border-bottom-style:solid}.shepherd-element .shepherd-content .shepherd-text p{margin-top:0}.shepherd-element .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element .shepherd-content footer{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:0 .75em .75em}.shepherd-element .shepherd-content footer .shepherd-buttons{list-style:none;margin:0;padding:0;text-align:right}.shepherd-element .shepherd-content footer .shepherd-buttons li{display:inline;margin:0 .5em 0 0}.shepherd-element .shepherd-content footer .shepherd-buttons li:last-child{margin-right:0}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;*display:inline;vertical-align:middle;*vertical-align:auto;*zoom:1;background:#3288e6;border:0;border-radius:0;color:hsla(0,0%,100%,.75);cursor:pointer;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;padding:.75em 2em;text-transform:uppercase;transition:all .5s ease}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button:hover{background:#196fcc}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary{background:#f1f2f3;color:rgba(0,0,0,.75)}.shepherd-element .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary:hover{background:#d5d8dc;color:rgba(0,0,0,.75)}