{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/widgets/progressRadialCheckWidget/js/progressRadialCheckWidget.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/_Symbol.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/isInteger.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/toInteger.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/toNumber.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/isSymbol.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/_root.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/toFinite.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/_baseTrim.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/_trimmedEndIndex.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/isObject.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/_baseGetTag.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/_freeGlobal.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/_getRawTag.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/_objectToString.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/lodash/isObjectLike.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/easing-utils/lib/easing.js"],"names":["CLS","_isInteger","require","ProgressRadialCheckWidget","element","_this","this","_classCallCheck","$element","$","$circle","find","concat","$circleIcon","devicePixelRatio","window","percentage","parseFloat","attr","maxPercentage","defaultDiameter","animationFrameId","isAnimating","iconClass","plainColor","highlightColor","circleAnimationDuration","arcAnimationFrameCount","canvas","drawCanvas","on","_","throttle","event","params","toPercentage","update","animate","trailing","key","value","width","height","lineWidth","context","getContext","centerX","centerY","radius","renderArc","addClass","setCircleProperties","css","opacity","minWidth","minHeight","fontSize","fromPercentage","_this2","arguments","length","undefined","updateCircle","setTimeout","animateArc","_this3","cancelAnimationFrame","shouldIncrement","range","Math","abs","elapsedAnimationFrame","animatingPercentage","easing","easeInOutCubic","round","requestAnimationFrame","ctx","circleStart","PI","circleEnd","clearRect","beginPath","arc","strokeStyle","stroke","lineCap","fillStyle","Symbol","__webpack_require__","module","exports","toInteger","toFinite","result","remainder","baseTrim","isObject","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","test","slice","baseGetTag","isObjectLike","symbolTag","freeGlobal","freeSelf","self","Object","root","Function","toNumber","INFINITY","MAX_INTEGER","trimmedEndIndex","reTrimStart","string","replace","reWhitespace","index","charAt","type","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","toStringTag","global","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","isOwn","call","tag","unmasked","e","easeOutBounce","t","scaledTime","scaledTime2","_scaledTime","_scaledTime2","easeInBounce","defineProperty","linear","easeInSine","cos","easeOutSine","sin","easeInOutSine","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","t1","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInExpo","pow","easeOutExpo","easeInOutExpo","scaledTime1","easeInCirc","sqrt","easeOutCirc","easeInOutCirc","easeInBack","magnitude","easeOutBack","easeInOutBack","s","easeInElastic","p","asin","easeOutElastic","easeInOutElastic","easeInOutBounce"],"mappings":"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","file":"widget-11.2f662a3aa586e55a56ca.js","sourcesContent":["const NS = 'ProgressRadialCheckWidget';\nconst CLS = 'progressRadialCheckWidget';\n\nlet _isInteger = require('lodash/isInteger');\nimport { easeInOutCubic } from 'easing-utils';\n\nexport class ProgressRadialCheckWidget {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.$circle = this.$element.find(`.${CLS}-circle`);\n\t\tthis.$circleIcon = this.$circle .find(`.${CLS}-circle-icon`);\n\n\t\tthis.devicePixelRatio = window.devicePixelRatio || 1;\n\n\t\tthis.percentage = parseFloat(this.$element.attr('data-percentage')) || 0;\n\t\tthis.maxPercentage = 100;\n\t\tthis.defaultDiameter = parseFloat(this.$element.attr('data-diameter')) || 24;\n\n\t\tthis.animationFrameId;\n\t\tthis.isAnimating = false;\n\n\t\tthis.iconClass = this.$element.attr('data-icon') || 'icon--tick';\n\n\t\t// Variables sourced in .scss styles\n\t\tthis.plainColor = 'rgba(255,255,255,0.5)';\n\t\tthis.highlightColor = '#33CC66';\n\t\tthis.circleAnimationDuration = 300;\n\t\tthis.arcAnimationFrameCount = 60;\n\n\t\t// Use the DOM element\n\t\tthis.canvas = this.$element.find(`.${CLS}-canvas`)[0];\n\n\t\tif(this.percentage < 0 || this.percentage > this.maxPercentage) {\n\t\t\tthis.percentage = 0;\n\t\t\tconsole.error(`${NS}::Error`, 'Please supply a valid range between 0–100');\n\t\t}\n\n\t\tthis.drawCanvas();\n\n\t\t// Triggers an update event\n\t\tthis.$element.on(`${CLS}.update`, _.throttle((event, params) => {\n\t\t\tlet toPercentage = params && _isInteger(params.percentage) ? params.percentage : null;\n\t\t\tif(toPercentage !== null) {\n\t\t\t\tif(toPercentage >= 0 && toPercentage <= this.maxPercentage) {\n\t\t\t\t\tthis.update(this.percentage, toPercentage, params.animate);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.error(`${NS}::Error`, 'Please supply a valid range between 0–100');\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconsole.error(`${NS}::Error`, 'Please supply a valid integer value');\n\t\t\t}\n\t\t}, 500, { trailing: true }));\n\t}\n\n\tdrawCanvas() {\n\t\tthis.canvas.width = this.defaultDiameter;\n\t\tthis.canvas.height = this.defaultDiameter;\n\n\t\t// Adjust to the approprate ratio\n\t\tthis.canvas.width *= this.devicePixelRatio;\n\t\tthis.canvas.height *= this.devicePixelRatio;\n\n\t\tthis.lineWidth = 6;\n\t\tthis.context = this.canvas.getContext('2d');\n\t\tthis.centerX = this.canvas.width / 2;\n\t\tthis.centerY = this.canvas.height / 2;\n\t\tthis.radius = (this.canvas.width - this.lineWidth) / 2;\n\n\t\tthis.renderArc(this.percentage);\n\t\tthis.$circleIcon.addClass(this.iconClass);\n\t\tthis.setCircleProperties();\n\t\tif(this.percentage === this.maxPercentage) {\n\t\t\tthis.$circle.css({ opacity: 1 });\n\t\t}\n\t}\n\n\tsetCircleProperties() {\n\t\tthis.$element.css({\n\t\t\twidth: this.defaultDiameter,\n\t\t\theight: this.defaultDiameter,\n\t\t\tminWidth: this.defaultDiameter,\n\t\t\tminHeight: this.defaultDiameter\n\t\t});\n\t\tthis.$circle.height(this.defaultDiameter);\n\t\tthis.$circle.width(this.defaultDiameter);\n\t\tthis.$circleIcon.css({\n\t\t\tfontSize: this.defaultDiameter / 2\n\t\t});\n\t}\n\n\tupdate(fromPercentage, toPercentage, animate = true) {\n\t\t// Animate circle when completed\n\t\tlet updateCircle = (percentage) => {\n\t\t\tif(animate) {\n\t\t\t\tif(percentage === this.maxPercentage) {\n\t\t\t\t\tthis.$circle.animate({ opacity: 1 }, this.circleAnimationDuration);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.$circle.animate({ opacity: 0 }, this.circleAnimationDuration);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif(percentage === this.maxPercentage) {\n\t\t\t\t\tthis.$circle.css({ opacity: 1 });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.$circle.css({ opacity: 0 });\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tif(fromPercentage === this.maxPercentage && toPercentage < this.maxPercentage) {\n\t\t\t// Fade out animation delay + another delay\n\t\t\tif(animate) {\n\t\t\t\tupdateCircle(toPercentage);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.animateArc(this.percentage, toPercentage);\n\t\t\t\t}, this.circleAnimationDuration + 50);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tupdateCircle(toPercentage);\n\t\t\t\tthis.renderArc(toPercentage);\n\t\t\t\tthis.percentage = toPercentage;\n\t\t\t}\n\t\t}\n\t\telse if(fromPercentage !== toPercentage) {\n\t\t\tif(animate) {\n\t\t\t\tthis.animateArc(this.percentage, toPercentage);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tupdateCircle(toPercentage);\n\t\t\t\tthis.renderArc(toPercentage);\n\t\t\t\tthis.percentage = toPercentage;\n\t\t\t}\n\t\t}\n\t}\n\n\tanimateArc(fromPercentage, toPercentage) {\n\t\tif(!this.isAnimating) {\n\t\t\tthis.isAnimating = true;\n\t\t\tlet shouldIncrement = fromPercentage < toPercentage;\n\t\t\tlet range = Math.abs(fromPercentage - toPercentage); // Percentage range between currentPercentage and the percentage to set to\n\n\t\t\tlet elapsedAnimationFrame = 0;\n\n\t\t\tlet animate = () => {\n\t\t\t\tlet easing = easeInOutCubic(elapsedAnimationFrame / this.arcAnimationFrameCount); // Set Easing based on animation interval\n\n\t\t\t\tlet animatingPercentage;\n\t\t\t\tif(shouldIncrement) {\n\t\t\t\t\tanimatingPercentage = ((range * easing) + fromPercentage);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tanimatingPercentage = Math.abs(((range * easing) - fromPercentage));\n\t\t\t\t}\n\n\t\t\t\tthis.renderArc(animatingPercentage);\n\t\t\t\tthis.percentage = Math.round(animatingPercentage);\n\n\t\t\t\t// Animation has completed\n\t\t\t\tif(elapsedAnimationFrame >= this.arcAnimationFrameCount) {\n\t\t\t\t\tcancelAnimationFrame(this.animationFrameId);\n\t\t\t\t\tthis.isAnimating = false;\n\t\t\t\t\tthis.percentage = toPercentage;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trequestAnimationFrame(animate);\n\t\t\t\t}\n\t\t\t\telapsedAnimationFrame++;\n\t\t\t};\n\n\t\t\tthis.animationFrameId = requestAnimationFrame(animate);\n\t\t}\n\t\telse {\n\t\t\tif(this.animationFrameId) {\n\t\t\t\tcancelAnimationFrame(this.animationFrameId);\n\t\t\t\tthis.isAnimating = false;\n\t\t\t\tthis.animateArc(this.percentage, toPercentage);\n\t\t\t}\n\t\t}\n\t}\n\n\trenderArc(percentage) {\n\t\tlet ctx = this.context;\n\t\tlet circleStart = 1.5 * Math.PI;\n\t\tlet circleEnd = circleStart + ((percentage / 100) * Math.PI * 2);\n\n\t\tctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\n\t\tctx.beginPath();\n\t\tctx.arc(this.centerX, this.centerY, this.radius, circleStart, 4 * Math.PI, false);\n\t\tctx.lineWidth = this.lineWidth;\n\t\tctx.strokeStyle = this.plainColor;\n\t\tctx.stroke();\n\n\t\tif(percentage > 0) {\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(this.centerX, this.centerY, this.radius, circleStart, circleEnd, false);\n\t\t\tctx.lineWidth = this.lineWidth;\n\t\t\tctx.lineCap = 'butt';\n\t\t\tctx.strokeStyle = this.highlightColor;\n\t\t\tctx.fillStyle = this.highlightColor;\n\t\t\tctx.stroke();\n\t\t}\n\t}\n}\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var toInteger = require('./toInteger');\n\n/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\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 an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n}\n\nmodule.exports = isInteger;\n","var toFinite = require('./toFinite');\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\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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 = baseTrim(value);\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\nmodule.exports = toNumber;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isSymbol;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","var toNumber = require('./toNumber');\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\nmodule.exports = toFinite;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\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\nmodule.exports = isObject;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\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\nmodule.exports = baseGetTag;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\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\nmodule.exports = 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\nmodule.exports = objectToString;\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\nmodule.exports = isObjectLike;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.linear = linear;\nexports.easeInSine = easeInSine;\nexports.easeOutSine = easeOutSine;\nexports.easeInOutSine = easeInOutSine;\nexports.easeInQuad = easeInQuad;\nexports.easeOutQuad = easeOutQuad;\nexports.easeInOutQuad = easeInOutQuad;\nexports.easeInCubic = easeInCubic;\nexports.easeOutCubic = easeOutCubic;\nexports.easeInOutCubic = easeInOutCubic;\nexports.easeInQuart = easeInQuart;\nexports.easeOutQuart = easeOutQuart;\nexports.easeInOutQuart = easeInOutQuart;\nexports.easeInQuint = easeInQuint;\nexports.easeOutQuint = easeOutQuint;\nexports.easeInOutQuint = easeInOutQuint;\nexports.easeInExpo = easeInExpo;\nexports.easeOutExpo = easeOutExpo;\nexports.easeInOutExpo = easeInOutExpo;\nexports.easeInCirc = easeInCirc;\nexports.easeOutCirc = easeOutCirc;\nexports.easeInOutCirc = easeInOutCirc;\nexports.easeInBack = easeInBack;\nexports.easeOutBack = easeOutBack;\nexports.easeInOutBack = easeInOutBack;\nexports.easeInElastic = easeInElastic;\nexports.easeOutElastic = easeOutElastic;\nexports.easeInOutElastic = easeInOutElastic;\nexports.easeOutBounce = easeOutBounce;\nexports.easeInBounce = easeInBounce;\nexports.easeInOutBounce = easeInOutBounce;\n// Based on https://gist.github.com/gre/1650294\n\n// No easing, no acceleration\nfunction linear(t) {\n return t;\n}\n\n// Slight acceleration from zero to full speed\nfunction easeInSine(t) {\n return -1 * Math.cos(t * (Math.PI / 2)) + 1;\n}\n\n// Slight deceleration at the end\nfunction easeOutSine(t) {\n return Math.sin(t * (Math.PI / 2));\n}\n\n// Slight acceleration at beginning and slight deceleration at end\nfunction easeInOutSine(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\n\n// Accelerating from zero velocity\nfunction easeInQuad(t) {\n return t * t;\n}\n\n// Decelerating to zero velocity\nfunction easeOutQuad(t) {\n return t * (2 - t);\n}\n\n// Acceleration until halfway, then deceleration\nfunction easeInOutQuad(t) {\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n\n// Accelerating from zero velocity\nfunction easeInCubic(t) {\n return t * t * t;\n}\n\n// Decelerating to zero velocity\nfunction easeOutCubic(t) {\n var t1 = t - 1;\n return t1 * t1 * t1 + 1;\n}\n\n// Acceleration until halfway, then deceleration\nfunction easeInOutCubic(t) {\n return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\n}\n\n// Accelerating from zero velocity\nfunction easeInQuart(t) {\n return t * t * t * t;\n}\n\n// Decelerating to zero velocity\nfunction easeOutQuart(t) {\n var t1 = t - 1;\n return 1 - t1 * t1 * t1 * t1;\n}\n\n// Acceleration until halfway, then deceleration\nfunction easeInOutQuart(t) {\n var t1 = t - 1;\n return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * t1 * t1 * t1 * t1;\n}\n\n// Accelerating from zero velocity\nfunction easeInQuint(t) {\n return t * t * t * t * t;\n}\n\n// Decelerating to zero velocity\nfunction easeOutQuint(t) {\n var t1 = t - 1;\n return 1 + t1 * t1 * t1 * t1 * t1;\n}\n\n// Acceleration until halfway, then deceleration\nfunction easeInOutQuint(t) {\n var t1 = t - 1;\n return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * t1 * t1 * t1 * t1 * t1;\n}\n\n// Accelerate exponentially until finish\nfunction easeInExpo(t) {\n\n if (t === 0) {\n return 0;\n }\n\n return Math.pow(2, 10 * (t - 1));\n}\n\n// Initial exponential acceleration slowing to stop\nfunction easeOutExpo(t) {\n\n if (t === 1) {\n return 1;\n }\n\n return -Math.pow(2, -10 * t) + 1;\n}\n\n// Exponential acceleration and deceleration\nfunction easeInOutExpo(t) {\n\n if (t === 0 || t === 1) {\n return t;\n }\n\n var scaledTime = t * 2;\n var scaledTime1 = scaledTime - 1;\n\n if (scaledTime < 1) {\n return 0.5 * Math.pow(2, 10 * scaledTime1);\n }\n\n return 0.5 * (-Math.pow(2, -10 * scaledTime1) + 2);\n}\n\n// Increasing velocity until stop\nfunction easeInCirc(t) {\n\n var scaledTime = t / 1;\n return -1 * (Math.sqrt(1 - scaledTime * t) - 1);\n}\n\n// Start fast, decreasing velocity until stop\nfunction easeOutCirc(t) {\n\n var t1 = t - 1;\n return Math.sqrt(1 - t1 * t1);\n}\n\n// Fast increase in velocity, fast decrease in velocity\nfunction easeInOutCirc(t) {\n\n var scaledTime = t * 2;\n var scaledTime1 = scaledTime - 2;\n\n if (scaledTime < 1) {\n return -0.5 * (Math.sqrt(1 - scaledTime * scaledTime) - 1);\n }\n\n return 0.5 * (Math.sqrt(1 - scaledTime1 * scaledTime1) + 1);\n}\n\n// Slow movement backwards then fast snap to finish\nfunction easeInBack(t) {\n var magnitude = arguments.length <= 1 || arguments[1] === undefined ? 1.70158 : arguments[1];\n\n\n var scaledTime = t / 1;\n return scaledTime * scaledTime * ((magnitude + 1) * scaledTime - magnitude);\n}\n\n// Fast snap to backwards point then slow resolve to finish\nfunction easeOutBack(t) {\n var magnitude = arguments.length <= 1 || arguments[1] === undefined ? 1.70158 : arguments[1];\n\n\n var scaledTime = t / 1 - 1;\n\n return scaledTime * scaledTime * ((magnitude + 1) * scaledTime + magnitude) + 1;\n}\n\n// Slow movement backwards, fast snap to past finish, slow resolve to finish\nfunction easeInOutBack(t) {\n var magnitude = arguments.length <= 1 || arguments[1] === undefined ? 1.70158 : arguments[1];\n\n\n var scaledTime = t * 2;\n var scaledTime2 = scaledTime - 2;\n\n var s = magnitude * 1.525;\n\n if (scaledTime < 1) {\n\n return 0.5 * scaledTime * scaledTime * ((s + 1) * scaledTime - s);\n }\n\n return 0.5 * (scaledTime2 * scaledTime2 * ((s + 1) * scaledTime2 + s) + 2);\n}\n// Bounces slowly then quickly to finish\nfunction easeInElastic(t) {\n var magnitude = arguments.length <= 1 || arguments[1] === undefined ? 0.7 : arguments[1];\n\n\n if (t === 0 || t === 1) {\n return t;\n }\n\n var scaledTime = t / 1;\n var scaledTime1 = scaledTime - 1;\n\n var p = 1 - magnitude;\n var s = p / (2 * Math.PI) * Math.asin(1);\n\n return -(Math.pow(2, 10 * scaledTime1) * Math.sin((scaledTime1 - s) * (2 * Math.PI) / p));\n}\n\n// Fast acceleration, bounces to zero\nfunction easeOutElastic(t) {\n var magnitude = arguments.length <= 1 || arguments[1] === undefined ? 0.7 : arguments[1];\n\n\n var p = 1 - magnitude;\n var scaledTime = t * 2;\n\n if (t === 0 || t === 1) {\n return t;\n }\n\n var s = p / (2 * Math.PI) * Math.asin(1);\n return Math.pow(2, -10 * scaledTime) * Math.sin((scaledTime - s) * (2 * Math.PI) / p) + 1;\n}\n\n// Slow start and end, two bounces sandwich a fast motion\nfunction easeInOutElastic(t) {\n var magnitude = arguments.length <= 1 || arguments[1] === undefined ? 0.65 : arguments[1];\n\n\n var p = 1 - magnitude;\n\n if (t === 0 || t === 1) {\n return t;\n }\n\n var scaledTime = t * 2;\n var scaledTime1 = scaledTime - 1;\n\n var s = p / (2 * Math.PI) * Math.asin(1);\n\n if (scaledTime < 1) {\n return -0.5 * (Math.pow(2, 10 * scaledTime1) * Math.sin((scaledTime1 - s) * (2 * Math.PI) / p));\n }\n\n return Math.pow(2, -10 * scaledTime1) * Math.sin((scaledTime1 - s) * (2 * Math.PI) / p) * 0.5 + 1;\n}\n\n// Bounce to completion\nfunction easeOutBounce(t) {\n\n var scaledTime = t / 1;\n\n if (scaledTime < 1 / 2.75) {\n\n return 7.5625 * scaledTime * scaledTime;\n } else if (scaledTime < 2 / 2.75) {\n\n var scaledTime2 = scaledTime - 1.5 / 2.75;\n return 7.5625 * scaledTime2 * scaledTime2 + 0.75;\n } else if (scaledTime < 2.5 / 2.75) {\n\n var _scaledTime = scaledTime - 2.25 / 2.75;\n return 7.5625 * _scaledTime * _scaledTime + 0.9375;\n } else {\n\n var _scaledTime2 = scaledTime - 2.625 / 2.75;\n return 7.5625 * _scaledTime2 * _scaledTime2 + 0.984375;\n }\n}\n\n// Bounce increasing in velocity until completion\nfunction easeInBounce(t) {\n return 1 - easeOutBounce(1 - t);\n}\n\n// Bounce in and bounce out\nfunction easeInOutBounce(t) {\n\n if (t < 0.5) {\n\n return easeInBounce(t * 2) * 0.5;\n }\n\n return easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n}\n"],"sourceRoot":""}