{"version":3,"sources":["webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/@paypalcorp/fpti/dist/fpti.js","webpack:///./src/components/pp-react-wrappers.tsx","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///(webpack)/buildin/global.js"],"names":["Symbol","objectProto","Object","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","module","exports","value","isOwn","call","tag","unmasked","e","result","type","getNearestInt","num","Math","round","parseFloat","uuid","cryptoObj","window","crypto","msCrypto","random32ByteNumber","randomNumber","rnds32","Uint32Array","getRandomValues","random","storages","s","l","getStorage","store","get3pStorage","fpti_3p","key","getItem","_getItem","vid","vid_exp","fpti","fpti_exp","now","Date","JSON","parse","item","storage","setItem","_setItem","setLocalItem","stringify","appendDataToURL","url","data","appendQueryStringData","indexOf","charAt","length","encodeURIComponent","fireImagePixel","src","Image","t","ua","navigator","userAgent","isIE","test","isIOSSafari","shouldUpdateReferrerPolicy","referrerPolicy","impressionKeys","normalizeData","dataObject","generateBeaconUrl","options","fptiserverurl","parts","split","match","location","protocol","version","basePayLoad","getTime","g","getTimezoneOffset","start","end","view","t11","createTrackingPayload","beaconURL","onBeaconCreate","_tenantName","tenant_name","hostname","fpti3pIds","base","obj","shouldOverride","extend","record","inputData","beaconUrl","recordImpression","preRecordCallback","document","title","referrer","screen","colorDepth","screenDimensions","width","height","deviceDimensions","ratio","devicePixelRatio","w","h","abs","orientation","temp","getDeviceDimensions","elem","a","browserDimensions","documentElement","body","cookieEnabled","res","recordWithFetch","fetch","removeGAParam","replace","trackFptiEvent","_ref","_window","_window$PAYPAL","_window$PAYPAL$analyt","_window$PAYPAL$analyt2","_window2","fptiData","defaultOptions","PAYPAL","analytics","cleanedPu","href","_objectSpread","space_key","pu","fireFptiCall","errorTextForFpti","_window$fpti","_window$fpti$page","page","eventType","target","eventTargetName","name","page_name","field_name","event_name","targetType","_map$eventType","focus","blur","click","setEventType","TextInputWrapper","props","nameValue","errorPresent","rest","_objectWithoutProperties","_excluded","errorFptiCall","fieldName","_window$fpti2","_window$fpti2$page","error_message","React","createElement","TextInput","assign","onFocus","onBlur","freeGlobal","freeSelf","self","root","Function","getRawTag","objectToString","global","webpackPolyfill","deprecate","paths","children","defineProperty","enumerable","get","i","baseGetTag","isObject","this"],"mappings":"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","file":"5ba45f63acdc5aca112f26883a7e051cb76ebc81-7ffbc94115aa4dfa04fa.js","sourcesContent":["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","/**\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","'use strict';\n\n/**\n * gets current timestamp in epoch seconds\n * @returns {Number} times in epoch seconds\n */\nfunction getTimestamp() {\n return new Date().getTime();\n}\n/**\n * gets current GMT offset\n * @returns {Number} offset is mins\n */\n\nfunction getGmtOffset() {\n return new Date().getTimezoneOffset();\n}\n/**\n * Round off numbers(int/string/float) to int\n * Invalid input returns 0\n *\n * @example\n * getNearestInt(100) // 100\n * getNearestInt(100.49) // 100\n * getNearestInt(100.50) // 101\n * getNearestInt('100.50') // 101\n * getNearestInt('test') // 0\n *\n *\n * @param {Number|String} num number or number in string\n * @returns {Number} rounded integer\n */\n\nfunction getNearestInt(num) {\n return Math.round(parseFloat(num)) || 0;\n}\n/**\n * Extend base object with key-vals from other object with optional override.\n *\n * @example\n * extend({}, { a: 1 }); // { a: 1 }\n * extend({ a: 1 }, { b: 1 }); // { a: 1, b: 1 }\n * extend({ a: 1 }, { a: 2, b: 2 }); // { a: 2, b: 2 }\n * extend({ a: 1 }, { a: 2, b: 2 }, false); // { a: 1, b: 2 }\n *\n * @param {Object} base Base source object, which will be updated\n * @param {Object} obj Source object\n * @param {Boolean} shouldOverride default is true\n * @returns {Object} Returns updated base object\n */\n\nfunction extend(base, obj, shouldOverride) {\n if (typeof shouldOverride === 'undefined') {\n shouldOverride = true;\n }\n base = base || {};\n obj = obj || {};\n for (var key in obj) {\n if (typeof obj[key] !== 'undefined' && (shouldOverride || !shouldOverride && typeof base[key] === 'undefined')) {\n base[key] = obj[key];\n }\n }\n return base;\n}\n/**\n * uuid generator. Generates a unique ID\n */\n\nfunction uuid() {\n var cryptoObj = window.crypto || window.msCrypto; // for IE 11\n\n var random32ByteNumber = function random32ByteNumber() {\n var randomNumber;\n var max32ByteNumber = 0x7fffffff;\n try {\n var rnds32 = new Uint32Array(1);\n cryptoObj.getRandomValues(rnds32);\n randomNumber = rnds32[0] & max32ByteNumber;\n } catch (e) {\n randomNumber = Math.round(max32ByteNumber * Math.random());\n }\n return randomNumber.toString(16);\n };\n return random32ByteNumber() + random32ByteNumber();\n}\n\n/**\n * sets client only cookie key/value pair\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies\n *\n * @example\n * setCookie ('key', 'value')\n *\n * @param {String} key cookie key\n * @param {String|Integer} value cookie value\n * @param {Object} options optional cookie options\n */\n\nvar storages = {\n s: 'sessionStorage',\n l: 'localStorage'\n};\n/***\n * localStorage: data stored has no expiration time\n * sessionStorage: data stored gets cleared when the page session ends(page is closed)\n **/\n\nfunction getStorage(s) {\n var store;\n try {\n store = window[storages[s]];\n } catch (e) {\n store = null;\n }\n return store;\n}\nfunction _getItem(store, key) {\n var value;\n if (store) {\n value = store.getItem(key);\n }\n return value;\n}\nfunction _setItem(storage, key, item) {\n if (!storage || !item) {\n return;\n }\n try {\n storage.setItem(key, item);\n } catch (e) {// Do Nothing\n }\n}\n/**\n * Fetch an item from the local Store, given its key\n *\n * @param key Key of the item to be fetched\n * @returns {*} Item from the local Store\n */\n\nfunction getLocalItem(key) {\n return _getItem(getStorage('l'), key);\n}\n/**\n * Store an item, given its key to local Store\n *\n * @param key Key used to uniquely identify item in the local Store\n * @param item Item to be stored\n */\n\nfunction setLocalItem(key, item) {\n _setItem(getStorage('l'), key, item);\n}\n/**\n * checks if localStorage is available\n * @return {Boolean}\n */\n\nfunction hasLocalStorage() {\n return !!getStorage('l');\n}\nvar visitorIdExpiry = 30 * 60 * 1000;\nvar fptiExpiry = 3 * 365 * 24 * 60 * 60 * 1000;\nvar fpti3pKey = 'fpti_3p';\n/**\n * Get/Create 3rd party FPTI Ids. Uses Local Storage for persistence.\n * Addresses some concerns of identity with ITP 2.2\n * @see used by {@link recordImpression}\n */\n\nfunction get3pStorage() {\n var fpti_3p = null;\n if (!hasLocalStorage()) {\n return;\n }\n try {\n fpti_3p = getLocalItem(fpti3pKey);\n var vid = null;\n var vid_exp = null;\n var fpti = null;\n var fpti_exp = null;\n var now = Date.now();\n if (fpti_3p) {\n // We have data in LS, we need to update the expiry & generate new Ids if expired\n fpti_3p = JSON.parse(fpti_3p); // check if visitor Id has expired\n\n if (fpti_3p.vid && fpti_3p.vid_exp > now) {\n vid = fpti_3p.vid;\n } else {\n vid = uuid();\n } // check if fpti Id has expired\n\n if (fpti_3p.fpti && fpti_3p.fpti_exp > now) {\n fpti = fpti_3p.fpti;\n } else {\n fpti = uuid();\n } // Updating expiries\n\n vid_exp = now + visitorIdExpiry;\n fpti_exp = now + fptiExpiry;\n } else {\n // We dont have data in LS, we need to generate Ids & place them in LS\n vid = uuid();\n vid_exp = now + visitorIdExpiry;\n fpti = uuid();\n fpti_exp = now + fptiExpiry;\n } // Set updated data back to LS\n\n fpti_3p = {\n vid: vid,\n vid_exp: vid_exp,\n fpti: fpti,\n fpti_exp: fpti_exp\n };\n setLocalItem(fpti3pKey, JSON.stringify(fpti_3p));\n } catch (e) {// Do nothing\n }\n return fpti_3p;\n}\n\n/**\n * adds a new data to the query string of a url\n *\n * @example\n * appendDataToURL('https://www.example.com', {x: 'y'}); // https://www.example.com?x=y\n * appendDataToURL('https://www.example.com?a=b', {x: 'y'}); // https://www.example.com?a=b&x=y\n *\n * @param {String} url\n * @param {Object} data JSON Object\n * @returns {String} Updated url\n */\n\nfunction appendDataToURL(url, data) {\n for (var key in data) {\n if (key && typeof data[key] !== 'undefined' && data[key] !== '') {\n url = appendQueryStringData(url, key, data[key]);\n }\n }\n return url;\n}\n/**\n * adds a new piece of data to the query string of a url\n *\n * @example\n * appendQueryStringData('https://www.example.com', 'x', 'y'); // https://www.example.com?x=y\n * appendQueryStringData('https://www.example.com?a=b', 'x', 'y'); // https://www.example.com?a=b&x=y\n *\n * @param {String} url\n * @param {String} key\n * @param {String|Number} value\n * @returns {String} Updated url\n */\n\nfunction appendQueryStringData(url, key, value) {\n if (key && (value || value === 0 || value === false)) {\n if (typeof value === 'object') {\n try {\n value = JSON.stringify(value);\n } catch (e) {\n value = '_err_'; // Log error value to track\n }\n }\n if (url.indexOf('?') === -1) {\n url += '?';\n }\n if (url.charAt(url.length - 1) !== '?') {\n url += '&';\n }\n url += key + '=' + encodeURIComponent(value);\n }\n return url;\n}\n/**\n * gets browser dimensions\n * @returns {Object} {width: Value, height: Value}\n */\n\nfunction getBrowserDimensions() {\n var elem = window;\n var a = 'inner';\n if (!('innerWidth' in window)) {\n a = 'client';\n elem = document.documentElement || document.body;\n }\n return {\n width: elem[a + 'Width'],\n height: elem[a + 'Height']\n };\n}\n/**\n * gets device dimensions\n * @returns {Object} {width: Value, height: Value}\n */\n\nfunction getDeviceDimensions() {\n var screen = window.screen || {};\n var ratio = window.devicePixelRatio || 1;\n var w = getNearestInt(screen.width * ratio);\n var h = getNearestInt(screen.height * ratio);\n if (Math.abs(window.orientation) === 90) {\n // landscape mode w/h are exchanged\n var temp = w;\n w = h;\n h = temp;\n }\n return {\n width: w,\n height: h\n };\n}\n/**\n * gets screen dimensions\n * @returns {Object} {width: Value, height: Value}\n */\n\nfunction getScreenDimensions() {\n var screen = window.screen || {};\n return {\n width: screen.width,\n height: screen.height\n };\n}\n/**\n * gets screen color depth\n * @returns {Number}\n */\n\nfunction getScreenColorDepth() {\n return window.screen.colorDepth;\n} // gets boolean for cookies enabled\n\nfunction isCookiesEnabled() {\n var enabled = navigator.cookieEnabled ? 1 : 0;\n return enabled;\n}\n/**\n * Creates an image pixel\n * @param {String} src\n */\n\nfunction fireImagePixel(src) {\n if (!src || !(typeof window !== 'undefined' && window.Image)) {\n return;\n }\n var t = new window.Image(0, 0);\n t.src = src;\n if (shouldUpdateReferrerPolicy()) {\n t.referrerPolicy = 'no-referrer-when-downgrade';\n }\n}\nfunction shouldUpdateReferrerPolicy() {\n var navigator = window.navigator;\n var ua = navigator.userAgent;\n var isIE = /MSIE|Trident/i.test(ua);\n var isIOSSafari = (/iPad/i.test(ua) || /iPhone/i.test(ua)) && /WebKit/i.test(ua) && /CriOS/i.test(ua);\n if (isIE || isIOSSafari) {\n return false;\n }\n return true;\n}\nvar HOST_PP = 'paypal.com';\nvar VERSION = '1.0.0';\nvar FPTI_BASE_URL = 'https://t.paypal.com/ts';\nvar impressionKeys = {\n cookiesEnabled: 'ce',\n pageTitle: 'pt',\n referrer: 'ru',\n screenColorDepth: 'cd',\n screenWidth: 'sw',\n screenHeight: 'sh',\n deviceWidth: 'dw',\n deviceHeight: 'dh',\n browserWidth: 'bw',\n browserHeight: 'bh'\n};\n/**\n * Normalize the 2 flavors of options to record API\n * option: { data: {} } and data: {}\n * to option: { data: {} }\n * @param {*} dataObject\n */\n\nfunction normalizeData(dataObject) {\n var opts;\n if (dataObject && dataObject.data) {\n opts = dataObject;\n } else {\n opts = {\n data: dataObject || {}\n };\n }\n return opts;\n} // generates a beacon url given request options\n\nfunction generateBeaconUrl(options, data) {\n var url = options.url || typeof window !== 'undefined' && window.fptiserverurl || FPTI_BASE_URL;\n var parts = url.split('?');\n url = parts[0]; // remove existing query string\n // if url begins with '//' then we automatically add the current protocol\n\n if (url.match(/^\\/\\//)) {\n url = (typeof location !== 'undefined' && location.protocol || '') + url;\n } // add query string delimiter\n\n url += '?'; // re-append existing query string\n\n if (parts[1]) {\n url += parts[1] + '&';\n }\n url += 'v=' + encodeURIComponent(options.version || VERSION); // version\n\n var basePayLoad = {\n t: getTimestamp(),\n // timestamp\n g: getGmtOffset() // gmt offset\n }; // if starts time exists provide delta\n\n if (data.start) {\n var end = data.end || basePayLoad.t;\n data.view = data.view || {};\n data.view.t11 = end - data.start;\n data.start = data.end = undefined;\n }\n url = appendDataToURL(url, basePayLoad);\n url = appendDataToURL(url, data);\n return url;\n}\nfunction createTrackingPayload(options, data) {\n var beaconURL;\n var onBeaconCreate = options.onBeaconCreate;\n var _tenantName = window.fpti && window.fpti.tenant_name || HOST_PP; // Use 3p_ variables from local storage only when it is 3rd party\n\n if (typeof window.location !== 'undefined' && window.location.hostname.indexOf('.' + _tenantName) === -1) {\n var fpti3pIds = get3pStorage();\n if (fpti3pIds) {\n extend(data, {\n '3p_vid': fpti3pIds.vid,\n '3p_fpti': fpti3pIds.fpti\n });\n }\n }\n if (!onBeaconCreate || typeof onBeaconCreate === 'function' && onBeaconCreate() !== false) {\n // beacon.src throw an exception you access it in IE if url is bigger than 4k\n beaconURL = generateBeaconUrl(options, data);\n }\n fireImagePixel(beaconURL);\n return beaconURL;\n}\n/**\n * Record any payload as FPTI event\n *\n * @example\n * record({page: 'test', pgrp: 'test', e: 'im'});\n * record({ data: {page: 'test', pgrp: 'test', e: 'im'}, url: '//t.paypal.com/ts' });\n *\n * @param {Object} inputData\n * @returns {Object} {data: {...}, url: ''}\n */\n\nfunction record(inputData) {\n var options = normalizeData(inputData);\n var beaconUrl = createTrackingPayload(options, options.data);\n return {\n data: options.data,\n url: beaconUrl\n };\n}\n/**\n * Record a FPTI impression.\n * Adds default browser aware impression key/values automatically like referrer, page title, browser width-height...\n *\n * @example\n * recordImpression({page: 'test', pgrp: 'test'});\n *\n * @param {Object} inputData\n * @param {Function} preRecordCallback\n */\n\nfunction recordImpression(inputData, preRecordCallback) {\n var options = normalizeData(inputData);\n var data = options.data; // page title\n\n data[impressionKeys.pageTitle] = document.title; // referrer url\n\n data[impressionKeys.referrer] = document.referrer; // screen color depth\n\n data[impressionKeys.screenColorDepth] = getScreenColorDepth(); // screen dimensions\n\n var screenDimensions = getScreenDimensions();\n data[impressionKeys.screenWidth] = screenDimensions.width;\n data[impressionKeys.screenHeight] = screenDimensions.height; // device dimensions\n\n var deviceDimensions = getDeviceDimensions();\n data[impressionKeys.deviceWidth] = deviceDimensions.width;\n data[impressionKeys.deviceHeight] = deviceDimensions.height; // browser dimensions\n\n var browserDimensions = getBrowserDimensions();\n data[impressionKeys.browserWidth] = browserDimensions.width;\n data[impressionKeys.browserHeight] = browserDimensions.height; // cookies enabled\n\n data[impressionKeys.cookiesEnabled] = isCookiesEnabled();\n var res = {\n data: options.data,\n url: ''\n };\n if (typeof preRecordCallback === 'function') {\n preRecordCallback(function () {\n res.url = createTrackingPayload(options, data);\n return res;\n });\n } else {\n res.url = createTrackingPayload(options, data);\n }\n return res;\n}\n/**\n * Record any payload as FPTI event in React-native.\n * Instead of Image pixel using fetch (AJAX) call.\n *\n * @example\n * recordWithFetch({page: 'test', pgrp: 'test', e: 'im'});\n * recordWithFetch({ data: {page: 'test', pgrp: 'test', e: 'im'}, url: 'https://t.paypal.com/ts' });\n *\n * @param {Object} inputData\n * @returns {Object} {data: {...}, url: ''}\n */\n\nfunction recordWithFetch(inputData) {\n var result = record(inputData);\n if (typeof fetch !== 'undefined') {\n fetch(result.url);\n }\n return result;\n}\nexports.createTrackingPayload = createTrackingPayload;\nexports.generateBeaconUrl = generateBeaconUrl;\nexports.normalizeData = normalizeData;\nexports.record = record;\nexports.recordImpression = recordImpression;\nexports.recordWithFetch = recordWithFetch;","// The purpose of this file is to properly instrument\n// all form elements with FPTI beacons\n\nimport React from 'react'\nimport { TextInput } from '@paypalcorp/pp-react'\nimport fpti from '@paypalcorp/fpti'\n\n// removes `_ga` param from URLs before sending to FPTI in the `pu` attribute\nexport const removeGAParam = (url: string) => {\n return url.replace(/([?&])_ga=[^&]+&?/, '$1').replace(/\\?$/, '')\n}\n\nexport const trackFptiEvent = ({ fptiData }: any) => {\n const defaultOptions = window?.PAYPAL?.analytics?.options?.data || {}\n const cleanedPu = removeGAParam(window?.location.href)\n fpti.record({\n data: {\n ...defaultOptions,\n ...fptiData,\n space_key: 'SKEXJE',\n pu: cleanedPu,\n },\n })\n}\n\nconst fireFptiCall = (e: React.ChangeEvent, errorTextForFpti: string = '') => {\n const page = (window && window.fpti?.page?.replace(/[-:]/g, '_')) || 'unknown'\n const eventType = e.type\n const target = e.target as HTMLInputElement\n const eventTargetName = target.name\n\n function setEventType(\n eventType: string | undefined,\n targetType: string | undefined,\n errorTextForFpti: string,\n ) {\n if (eventType === undefined) {\n return ''\n }\n if (errorTextForFpti) {\n return 'field_exit'\n }\n const map: Record = {\n focus: 'field_focus',\n blur: 'field_exit',\n click: targetType === 'submit' ? 'button_pressed' : 'field_click',\n }\n return map[eventType] ?? `field_${eventType}`\n }\n\n trackFptiEvent({\n fptiData: {\n e: eventType,\n page_name: page,\n field_name: eventTargetName || 'null',\n event_name: `devexp_${page}_field_${setEventType(\n eventType,\n target.type,\n errorTextForFpti,\n )}`,\n },\n })\n}\n\nconst errorFptiCall = (errorTextForFpti: string, fieldName: string) => {\n const page = (window && window.fpti?.page?.replace(/[-:]/g, '_')) || 'unknown'\n\n trackFptiEvent({\n fptiData: {\n e: 'error',\n field_name: fieldName,\n error_message: errorTextForFpti,\n event_name: `devexp_${page}_field_error`,\n page_name: page,\n },\n })\n}\n\nexport interface TextInputWrapperProps {\n nameValue: string\n errorPresent: boolean\n errorTextForFpti: string\n [key: string]: any // Allows additional props to be passed\n}\n\nexport const TextInputWrapper: React.FC = (props) => {\n const { nameValue, errorPresent, errorTextForFpti, ...rest } = props\n\n if (errorPresent) {\n errorFptiCall(errorTextForFpti, nameValue)\n }\n\n return (\n \n )\n}\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","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 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","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\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\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n"],"sourceRoot":""}