{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/src/views/widgets/courseAssessmentSectionNavigatorWidget/js/courseAssessmentSectionNavigatorWidget.js","webpack:////Users/owenli/Documents/workspace/awi-wlc-fe/node_modules/scroll-js/dist/scroll.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"],"names":["CLS","_isInteger","require","CourseAssessmentSectionNavigatorWidget","element","_this","this","_classCallCheck","$element","$","$tplScroller","$navigation","find","concat","activeNavigationSectionIndex","_","isFinite","attr","$activeNavigationSection","scrollDuration","scrollEasing","$navigationActiveItem","createNavigator","setScrollEvent","on","event","params","removeActiveSection","setActiveSection","key","value","_this2","$sections","first","length","blocksIndex","each","sectionIndex","sectionElement","$blocks","children","templateString","_blockIndex","blockElement","addClass","append","css","position","top","left","transform","visibility","section","target","scrollIntoView","duration","easing","removeClass","$navigationSection","_this3","throttle","setActiveNavigationItem","_this4","blockIndex","Math","floor","navigationItem","scrollTo","el","options","thisArg","_arguments","generator","Element","Window","Error","sanitizeScrollOptions","scroll","from","to","prop","startTime","easeFunc","callback","window","requestAnimationFrame","currentTime","Date","now","time","min","document","utils","getDocument","body","documentElement","scrollTop","setScrollPosition","currentScrollPosition","getScrollPosition","scrollProperty","props","y","x","getScrollPropertyByElement","Promise","resolve","getEasing","P","reject","fulfilled","step","next","e","rejected","result","done","then","apply","scroller","undefined","errorMsg","HTMLElement","validateElement","currentContainerScrollYPos","elementScrollYPos","offsetTop","pageYOffset","getBoundingClientRect","behavior","__webpack_require__","d","__webpack_exports__","easingMap","linear","t","ease-in","ease-out","ease-in-out","Object","keys","join","Symbol","module","exports","toInteger","toFinite","remainder","baseTrim","isObject","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","test","slice","baseGetTag","isObjectLike","symbolTag","freeGlobal","freeSelf","self","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"],"mappings":"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","file":"widget-0.2f662a3aa586e55a56ca.js","sourcesContent":["const NS = 'CourseAssessmentSectionNavigatorWidget';\nconst CLS = 'courseAssessmentSectionNavigatorWidget';\n\nlet _isInteger = require('lodash/isInteger');\n\nimport { scrollIntoView } from 'scroll-js';\n\nexport class CourseAssessmentSectionNavigatorWidget {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.$tplScroller = $('.tpl-scroller');\n\n\t\tthis.$navigation = this.$element.find(`.${CLS}-navigation`);\n\t\tthis.activeNavigationSectionIndex = _.isFinite(+this.$element.attr('data-active-section-index')) ? +this.$element.attr('data-active-section-index') : 0;\n\t\tthis.$activeNavigationSection; // Subset of navigation items that is displayed\n\t\tthis.scrollDuration = 750;\n\t\tthis.scrollEasing = 'ease-in-out';\n\t\tthis.$navigationActiveItem;\n\n\t\tthis.createNavigator();\n\t\tthis.setScrollEvent();\n\n\t\tthis.$element.on(`${CLS}.activeNavigationSectionIndex.changed`, (event, params) => {\n\t\t\tif(_isInteger(params.activeNavigationSectionIndex)) {\n\t\t\t\tif(this.activeNavigationSectionIndex !== params.activeNavigationSectionIndex) {\n\t\t\t\t\tthis.removeActiveSection(params.activeNavigationSectionIndex);\n\t\t\t\t\tthis.setActiveSection(params.activeNavigationSectionIndex);\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 sectionIndex. The value ${params.activeNavigationSectionIndex} is invalid`);\n\t\t\t}\n\t\t});\n\t}\n\n\tcreateNavigator() {\n\t\tthis.$sections = $('[data-pg]').first().find('.Form__Element.FormStep');\n\n\t\tif(this.$sections && this.$sections.length > 0) {\n\t\t\tlet blocksIndex = 0; // Count of all the total blocks\n\t\t\tthis.$sections.each((sectionIndex, sectionElement) => {\n\t\t\t\tlet $blocks = $(sectionElement).children('.FormChoice').children('[class*=\"Block\"]');\n\t\t\t\tlet templateString = `
';\n\t\t\t\tthis.$navigation.append(templateString);\n\n\t\t\t\tif(sectionIndex === this.activeNavigationSectionIndex) {\n\t\t\t\t\tthis.setActiveSection(sectionIndex);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.$element.css({\n\t\t\tposition: 'fixed',\n\t\t\ttop: '50%',\n\t\t\tleft: '30px',\n\t\t\ttransform: 'translateY(-50%)',\n\t\t\tvisibility: 'visible'\n\t\t});\n\n\t\tthis.$navigation.find(`a.${CLS}-navigation-item`).on('click', (event) => {\n\t\t\tlet section = $($(event.target).attr('data-block-target'))[0];\n\t\t\tscrollIntoView(section, this.$tplScroller[0], { duration: this.scrollDuration, easing: this.scrollEasing });\n\t\t});\n\t}\n\n\tremoveActiveSection() {\n\t\tif(this.$activeNavigationSection && this.$activeNavigationSection.length > 0) {\n\t\t\tthis.$activeNavigationSection.removeClass('active');\n\t\t\tthis.activeNavigationSectionIndex = null;\n\t\t\tthis.$element.attr('data-active-section-index', null);\n\t\t}\n\t}\n\n\tsetActiveSection(sectionIndex) {\n\t\tlet $navigationSection = this.$navigation.find(`[data-section-index=\"${sectionIndex}\"]`);\n\n\t\tif($navigationSection && $navigationSection.length > 0) {\n\t\t\tthis.$activeNavigationSection = $navigationSection;\n\t\t\tthis.$activeNavigationSection.addClass('active');\n\t\t\tthis.activeNavigationSectionIndex = sectionIndex;\n\t\t\tthis.$element.attr('data-active-section-index', sectionIndex);\n\n\t\t\tif(this.$navigationActiveItem) {\n\t\t\t\tthis.$navigationActiveItem.removeClass(`${CLS}-navigation-item--active`);\n\t\t\t\tthis.$navigationActiveItem = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tsetScrollEvent() {\n\t\tthis.$tplScroller.on('scroll', _.throttle(() => {\n\t\t\tthis.setActiveNavigationItem();\n\t\t}, 250));\n\t}\n\n\tsetActiveNavigationItem() {\n\t\tlet blocksIndex = 0; // Count of all the elapsed blocks (incremeneted per section)\n\t\tthis.$sections.each((sectionIndex, sectionElement) => {\n\t\t\tlet $blocks = $(sectionElement).children('.FormChoice').children('[class*=\"Block\"]');\n\n\t\t\tif($blocks) {\n\t\t\t\tif($blocks.length > 0) {\n\t\t\t\t\tif(sectionIndex === this.activeNavigationSectionIndex) {\n\t\t\t\t\t\t$blocks.each((blockIndex, blockElement) => {\n\t\t\t\t\t\t\tif(0 >= Math.floor($(blockElement).position().top)) {\n\t\t\t\t\t\t\t\tlet navigationItem = this.$navigation.find(`#${CLS}-navigation-item--${blocksIndex + blockIndex}`);\n\n\t\t\t\t\t\t\t\tif(this.$navigationActiveItem) {\n\t\t\t\t\t\t\t\t\tthis.$navigationActiveItem.removeClass(`${CLS}-navigation-item--active`);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif(this.$navigationActiveItem !== navigationItem) {\n\t\t\t\t\t\t\t\t\tthis.$navigationActiveItem = navigationItem;\n\t\t\t\t\t\t\t\t\tthis.$navigationActiveItem.addClass(`${CLS}-navigation-item--active`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif(!this.$navigationActiveItem) {\n\t\t\t\t\t\t\tif(this.$activeNavigationSection.find(`.${CLS}-navigation-item`).length > 0) {\n\t\t\t\t\t\t\t\tthis.$navigationActiveItem = this.$navigation.find(`#${CLS}-navigation-item--${blocksIndex}`);\n\t\t\t\t\t\t\t\tthis.$navigationActiveItem.addClass(`${CLS}-navigation-item--active`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tblocksIndex += $blocks.length;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","/*!\n * Scroll-js v2.3.2\n * https://github.com/mkay581/scroll-js\n *\n * Copyright (c) 2019 Mark Kennedy\n * Licensed under the MIT license\n */\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\nfunction scrollTo(el, options = {}) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!(el instanceof Element) && !(el instanceof Window)) {\r\n throw new Error(`element passed to scrollTo() must be either the window or a DOM element, you passed ${el}!`);\r\n }\r\n options = sanitizeScrollOptions(options);\r\n const scroll = (from, to, prop, startTime, duration = 300, easeFunc, callback) => {\r\n window.requestAnimationFrame(() => {\r\n const currentTime = Date.now();\r\n const time = Math.min(1, (currentTime - startTime) / duration);\r\n if (from === to) {\r\n return callback ? callback() : null;\r\n }\r\n setScrollPosition(el, easeFunc(time) * (to - from) + from);\r\n /* prevent scrolling, if already there, or at end */\r\n if (time < 1) {\r\n scroll(from, to, prop, startTime, duration, easeFunc, callback);\r\n }\r\n else if (callback) {\r\n callback();\r\n }\r\n });\r\n };\r\n const currentScrollPosition = getScrollPosition(el);\r\n const scrollProperty = getScrollPropertyByElement(el);\r\n return new Promise(resolve => {\r\n scroll(currentScrollPosition, typeof options.top === 'number'\r\n ? options.top\r\n : currentScrollPosition, scrollProperty, Date.now(), options.duration, getEasing(options.easing), resolve);\r\n });\r\n });\r\n}\r\nfunction scrollIntoView(element, scroller, options) {\r\n validateElement(element);\r\n if (scroller && !(scroller instanceof Element)) {\r\n options = scroller;\r\n scroller = undefined;\r\n }\r\n const { duration, easing } = sanitizeScrollOptions(options);\r\n scroller = scroller || utils.getDocument().body;\r\n let currentContainerScrollYPos = 0;\r\n let elementScrollYPos = element ? element.offsetTop : 0;\r\n const document = utils.getDocument();\r\n // if the container is the document body or document itself, we'll\r\n // need a different set of coordinates for accuracy\r\n if (scroller === document.body || scroller === document.documentElement) {\r\n // using pageYOffset for cross-browser compatibility\r\n currentContainerScrollYPos = window.pageYOffset;\r\n // must add containers scroll y position to ensure an absolute value that does not change\r\n elementScrollYPos =\r\n element.getBoundingClientRect().top + currentContainerScrollYPos;\r\n }\r\n return scrollTo(scroller, {\r\n top: elementScrollYPos,\r\n left: 0,\r\n duration,\r\n easing\r\n });\r\n}\r\nfunction validateElement(element) {\r\n if (element === undefined) {\r\n const errorMsg = 'The element passed to scrollIntoView() was undefined.';\r\n throw new Error(errorMsg);\r\n }\r\n if (!(element instanceof HTMLElement)) {\r\n throw new Error(`The element passed to scrollIntoView() must be a valid element. You passed ${element}.`);\r\n }\r\n}\r\nfunction getScrollPropertyByElement(el) {\r\n const props = {\r\n window: {\r\n y: 'scrollY',\r\n x: 'scrollX'\r\n },\r\n element: {\r\n y: 'scrollTop',\r\n x: 'scrollLeft'\r\n }\r\n };\r\n const axis = 'y';\r\n if (el instanceof Window) {\r\n return props.window[axis];\r\n }\r\n else {\r\n return props.element[axis];\r\n }\r\n}\r\nfunction sanitizeScrollOptions(options = {}) {\r\n if (options.behavior === 'smooth') {\r\n options.easing = 'ease-in-out';\r\n options.duration = 300;\r\n }\r\n if (options.behavior === 'auto') {\r\n options.duration = 0;\r\n options.easing = 'linear';\r\n }\r\n return options;\r\n}\r\nfunction getScrollPosition(el) {\r\n const document = utils.getDocument();\r\n if (el === document.body ||\r\n el === document.documentElement ||\r\n el instanceof Window) {\r\n return document.body.scrollTop || document.documentElement.scrollTop;\r\n }\r\n else {\r\n return el.scrollTop;\r\n }\r\n}\r\nfunction setScrollPosition(el, value) {\r\n const document = utils.getDocument();\r\n if (el === document.body ||\r\n el === document.documentElement ||\r\n el instanceof Window) {\r\n document.body.scrollTop = value;\r\n document.documentElement.scrollTop = value;\r\n }\r\n else {\r\n el.scrollTop = value;\r\n }\r\n}\r\nconst utils = {\r\n // we're really just exporting this so that tests can mock the document.documentElement\r\n getDocument() {\r\n return document;\r\n }\r\n};\r\nconst easingMap = {\r\n linear(t) {\r\n return t;\r\n },\r\n 'ease-in'(t) {\r\n return t * t;\r\n },\r\n 'ease-out'(t) {\r\n return t * (2 - t);\r\n },\r\n 'ease-in-out'(t) {\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n }\r\n};\r\nconst getEasing = (easing) => {\r\n const defaultEasing = 'linear';\r\n const easeFunc = easingMap[easing || defaultEasing];\r\n if (!easeFunc) {\r\n const options = Object.keys(easingMap).join(',');\r\n throw new Error(`Scroll error: scroller does not support an easing option of \"${easing}\". Supported options are ${options}`);\r\n }\r\n return easeFunc;\r\n};\n\nexport { easingMap, scrollIntoView, scrollTo, utils };\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"],"sourceRoot":""}