{"version":3,"file":"static/js/inAppPlugin.ebe27dec.chunk.js","mappings":"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","sources":["../node_modules/@customerio/cdp-analytics-browser/src/plugins/in-app-plugin/events.ts","../node_modules/@customerio/cdp-analytics-browser/src/plugins/in-app-plugin/index.ts","../node_modules/customerio-gist-web/node_modules/axios/index.js","../node_modules/customerio-gist-web/node_modules/axios/lib/adapters/xhr.js","../node_modules/customerio-gist-web/node_modules/axios/lib/axios.js","../node_modules/customerio-gist-web/node_modules/axios/lib/cancel/Cancel.js","../node_modules/customerio-gist-web/node_modules/axios/lib/cancel/CancelToken.js","../node_modules/customerio-gist-web/node_modules/axios/lib/cancel/isCancel.js","../node_modules/customerio-gist-web/node_modules/axios/lib/core/Axios.js","../node_modules/customerio-gist-web/node_modules/axios/lib/core/InterceptorManager.js","../node_modules/customerio-gist-web/node_modules/axios/lib/core/buildFullPath.js","../node_modules/customerio-gist-web/node_modules/axios/lib/core/createError.js","../node_modules/customerio-gist-web/node_modules/axios/lib/core/dispatchRequest.js","../node_modules/customerio-gist-web/node_modules/axios/lib/core/enhanceError.js","../node_modules/customerio-gist-web/node_modules/axios/lib/core/mergeConfig.js","../node_modules/customerio-gist-web/node_modules/axios/lib/core/settle.js","../node_modules/customerio-gist-web/node_modules/axios/lib/core/transformData.js","../node_modules/customerio-gist-web/node_modules/axios/lib/defaults.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/bind.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/buildURL.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/combineURLs.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/cookies.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/spread.js","../node_modules/customerio-gist-web/node_modules/axios/lib/helpers/validator.js","../node_modules/customerio-gist-web/node_modules/axios/lib/utils.js","../node_modules/customerio-gist-web/src/utilities/event-emitter.js","../node_modules/customerio-gist-web/src/utilities/log.js","../node_modules/customerio-gist-web/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/customerio-gist-web/src/utilities/local-storage.js","../node_modules/customerio-gist-web/node_modules/uuid/dist/esm-browser/regex.js","../node_modules/customerio-gist-web/node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/customerio-gist-web/node_modules/uuid/dist/esm-browser/validate.js","../node_modules/customerio-gist-web/node_modules/uuid/dist/esm-browser/v4.js","../node_modules/customerio-gist-web/src/managers/user-manager.js","../node_modules/customerio-gist-web/src/services/settings.js","../node_modules/customerio-gist-web/src/services/network.js","../node_modules/customerio-gist-web/src/services/queue-service.js","../node_modules/customerio-gist-web/src/services/log-service.js","../node_modules/customerio-gist-web/src/managers/gist-properties-manager.js","../node_modules/customerio-gist-web/src/managers/message-component-manager.js","../node_modules/customerio-gist-web/src/templates/embed.js","../node_modules/customerio-gist-web/src/templates/message.js","../node_modules/customerio-gist-web/src/managers/page-component-manager.js","../node_modules/customerio-gist-web/src/managers/message-manager.js","../node_modules/customerio-gist-web/src/managers/queue-manager.js","../node_modules/customerio-gist-web/src/gist.js","../node_modules/customerio-gist-web/src/index.js"],"sourcesContent":["export enum InAppEvents {\n MessageOpened = 'in-app:message-opened',\n MessageDismissed = 'in-app:message-dismissed',\n MessageError = 'in-app:message-error',\n MessageAction = 'in-app:message-action'\n}\n\nexport const allEvents:string[] = Object.values(InAppEvents);\n\nexport enum SemanticEvents {\n JourneyMetric = 'Report Delivery Event',\n Opened = 'opened',\n Clicked = 'clicked',\n}\n\nexport function newEvent(type:string, detail:any): CustomEvent {\n return new CustomEvent(type, { detail })\n}\n\nexport function gistToCIO(gistEvent:string): string {\n switch (gistEvent) {\n case 'messageShown':\n return InAppEvents.MessageOpened;\n case 'messageDismissed':\n return InAppEvents.MessageDismissed;\n case 'messageError':\n return InAppEvents.MessageError;\n case 'messageAction':\n return InAppEvents.MessageAction;\n default:\n return \"\";\n }\n}","import { Analytics } from '../../core/analytics'\nimport { Context } from '../../core/context'\nimport { Plugin } from '../../core/plugin'\n\nimport { InAppEvents, SemanticEvents, newEvent, allEvents, gistToCIO } from './events'\nimport Gist from 'customerio-gist-web'\n\nexport { InAppEvents }\n\nexport type InAppPluginSettings = {\n siteId: string | undefined\n events: EventListenerOrEventListenerObject | null | undefined\n\n _env: string | undefined\n _logging: boolean | undefined\n}\n\nexport function InAppPlugin(\n settings: InAppPluginSettings,\n ): Plugin {\n\n let _analytics: Analytics;\n let _gistLoaded:boolean = false;\n let _pluginLoaded:boolean = false;\n const _eventTarget:EventTarget = new EventTarget();\n\n function attachListeners() {\n if(!_gistLoaded || _pluginLoaded)\n return;\n\n _analytics.on('reset', reset);\n\n if(settings.events) {\n allEvents.forEach((event) => {\n _eventTarget.addEventListener(event, settings?.events as EventListenerOrEventListenerObject);\n });\n ['messageShown', 'messageDismissed', 'messageError'].forEach((event) => {\n Gist.events.on(event, (message: any) => {\n _eventTarget.dispatchEvent(newEvent(gistToCIO(event), { \n messageId: message.messageId,\n deliveryId: message.properties?.gist?.campaignId,\n }));\n });\n });\n }\n\n Gist.events.on('messageShown', (message: any) => {\n const deliveryId:string = message?.properties?.gist?.campaignId;\n if (typeof deliveryId != 'undefined' && deliveryId != '') {\n _analytics.track(SemanticEvents.JourneyMetric, {\n 'deliveryId': deliveryId,\n 'metric': SemanticEvents.Opened,\n });\n }\n });\n\n Gist.events.on('messageAction', (params: any) => {\n const deliveryId:string = params?.message?.properties?.gist?.campaignId;\n if (params.action != 'gist://close' && typeof deliveryId != 'undefined' && deliveryId != '') {\n _analytics.track(SemanticEvents.JourneyMetric, {\n 'deliveryId': deliveryId,\n 'metric': SemanticEvents.Clicked,\n 'actionName': params.name,\n 'actionValue': params.action,\n });\n }\n settings.events && _eventTarget.dispatchEvent(newEvent(InAppEvents.MessageAction, {\n messageId: params.message.messageId,\n deliveryId: deliveryId,\n action: params.action,\n name: params.name,\n actionName: params.name,\n actionValue: params.action,\n message:{\n dismiss: function() {\n Gist.dismissMessage(params?.message?.instanceId);\n }\n }\n }));\n });\n }\n\n async function page(ctx: Context): Promise {\n if(!_pluginLoaded)\n return ctx;\n\n const page:string = ctx.event?.properties?.name ?? ctx.event?.properties?.url;\n if(typeof page === 'string' && page.length > 0) {\n Gist.setCurrentRoute(page);\n }\n\n return ctx;\n }\n\n async function reset(ctx: Context): Promise {\n await Gist.clearUserToken();\n return ctx;\n }\n \n async function syncUserToken(ctx: Context): Promise {\n if(!_gistLoaded)\n return ctx;\n\n const user = _analytics.user().id();\n if (typeof user === 'string' && user.length > 0) {\n await Gist.setUserToken(user);\n } else {\n await Gist.clearUserToken();\n }\n return ctx;\n }\n\n const customerio: Plugin = {\n name: 'Customer.io In-App Plugin',\n type: 'before',\n version: '0.0.1',\n isLoaded: (): boolean => _pluginLoaded,\n load: async (ctx: Context, instance: Analytics) => {\n _analytics = instance;\n\n if(settings.siteId == null || settings.siteId == \"\") {\n _error(\"siteId is required. Can't initialize.\")\n return ctx;\n }\n\n await Gist.setup({\n siteId: settings.siteId, \n env: settings._env? settings._env : \"prod\",\n logging: settings._logging,\n });\n _gistLoaded = true;\n\n await syncUserToken(ctx);\n attachListeners();\n\n _pluginLoaded = true;\n\n return Promise.resolve();\n },\n identify: syncUserToken,\n page: page,\n unload: async () => {\n if(settings.events) {\n allEvents.forEach((event) => {\n _eventTarget.removeEventListener(event, settings?.events as EventListenerOrEventListenerObject);\n });\n }\n },\n }\n\n return customerio;\n}\n\nfunction _error(msg: string) {\n console.error(`[Customer.io In-App Plugin] ${msg}`)\n}","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","export default class EventEmitter {\n on(name, callback) {\n var callbacks = this[name];\n if (!callbacks) this[name] = [callback];\n else callbacks.push(callback);\n }\n\n dispatch(name, event) {\n var callbacks = this[name];\n if (callbacks) callbacks.forEach(callback => callback(event));\n }\n}","import Gist from '../gist';\n\nexport function log(message) {\n if (Gist.config.logging) {\n console.log(`Gist: ${message}`);\n }\n}","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export function setKeyWithExpiryToLocalStore(key, value, ttl) {\n const item = {\n value: value,\n expiry: ttl,\n };\n localStorage.setItem(key, JSON.stringify(item));\n}\n \nexport function getKeyFromLocalStore(key) {\n const itemStr = localStorage.getItem(key);\n if (!itemStr) {\n return null;\n }\n const item = JSON.parse(itemStr);\n const now = new Date();\n const itemExpiry = new Date(item.expiry);\n if (now.getTime() > itemExpiry.getTime()) {\n localStorage.removeItem(key);\n return null;\n }\n return item.value;\n}\n \nexport function clearKeyFromLocalStore(key) {\n localStorage.removeItem(key);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import { log } from '../utilities/log';\nimport { setKeyWithExpiryToLocalStore, getKeyFromLocalStore, clearKeyFromLocalStore } from '../utilities/local-storage';\nimport { v4 as uuidv4 } from 'uuid';\nconst userTokenLocalStoreName = \"gist.web.userToken\";\nconst guestUserTokenLocalStoreName = \"gist.web.guestUserToken\";\nconst usingGuestUserTokenLocalStoreName = \"gist.web.usingGuestUserToken\";\n\nexport function isUsingGuestUserToken() {\n return (getKeyFromLocalStore(usingGuestUserTokenLocalStoreName) !== null);\n}\n\nexport function getUserToken() {\n return getKeyFromLocalStore(userTokenLocalStoreName);\n}\n\nexport function setUserToken(userToken, expiryDate) {\n if (expiryDate === undefined) {\n expiryDate = new Date();\n expiryDate.setDate(expiryDate.getDate() + 30);\n }\n setKeyWithExpiryToLocalStore(userTokenLocalStoreName, userToken, expiryDate);\n clearKeyFromLocalStore(usingGuestUserTokenLocalStoreName);\n log(`Set user token \"${userToken}\" with expiry date set to ${expiryDate}`);\n}\n\nexport function useGuestSession() {\n var expiryDate = new Date();\n expiryDate.setDate(expiryDate.getDate() + 365);\n\n // Guest sessions should never override existing sessions\n if (getUserToken() === null) {\n var guestUserToken = getKeyFromLocalStore(guestUserTokenLocalStoreName);\n if (guestUserToken == null) {\n guestUserToken = uuidv4();\n setKeyWithExpiryToLocalStore(guestUserTokenLocalStoreName, guestUserToken, expiryDate);\n log(`Set guest user token \"${guestUserToken}\" with expiry date set to 1 year from today`);\n }\n\n setKeyWithExpiryToLocalStore(userTokenLocalStoreName, guestUserToken, expiryDate);\n setKeyWithExpiryToLocalStore(usingGuestUserTokenLocalStoreName, true, expiryDate);\n }\n}\n\nexport function clearUserToken() {\n clearKeyFromLocalStore(userTokenLocalStoreName);\n log(`Cleared user token`);\n}","export const settings = {\n ENGINE_API_ENDPOINT: {\n \"prod\": \"https://engine.api.gist.build\",\n \"dev\": \"https://engine.api.dev.gist.build\",\n \"local\": \"http://engine.api.local.gist.build:82\"\n },\n GIST_QUEUE_API_ENDPOINT: {\n \"prod\": \"https://gist-queue-consumer-api.cloud.gist.build\",\n \"dev\": \"https://gist-queue-consumer-api.cloud.dev.gist.build\",\n \"local\": \"http://api.local.gist.build:86\"\n },\n GIST_VIEW_ENDPOINT: {\n \"prod\": \"https://renderer.gist.build/2.0\",\n \"dev\": \"https://renderer.gist.build/2.0\",\n \"local\": \"http://app.local.gist.build:8080/web\"\n }\n}","import Gist from '../gist';\nimport axios from 'axios';\nimport { settings } from './settings';\nimport { getUserToken } from \"../managers/user-manager\";\n\nexport function UserNetworkInstance() {\n var headers = { \"X-CIO-Site-Id\": Gist.config.siteId, \"X-CIO-Datacenter\": Gist.config.dataCenter };\n var userToken = getUserToken();\n if (userToken != null) {\n headers['X-Gist-Encoded-User-Token'] = btoa(userToken);\n }\n return axios.create({\n baseURL: settings.GIST_QUEUE_API_ENDPOINT[Gist.config.env],\n timeout: 20000,\n headers: headers\n });\n}","import { UserNetworkInstance } from './network';\nimport { setKeyWithExpiryToLocalStore } from '../utilities/local-storage';\nimport { log } from \"../utilities/log\";\n\nconst DEFAULT_POLLING_DELAY_IN_SECONDS = 600;\nvar currentPollingDelayInSeconds = DEFAULT_POLLING_DELAY_IN_SECONDS;\nvar checkInProgress = false;\n\nexport const userQueueNextPullCheckLocalStoreName = \"gist.web.userQueueNextPullCheck\";\nexport async function getUserQueue() {\n var response;\n try {\n if (!checkInProgress) {\n var timestamp = new Date().getTime();\n checkInProgress = true;\n response = await UserNetworkInstance().post(`/api/v1/users?timestamp=${timestamp}`, {});\n }\n } catch (error) {\n if (error.response) {\n response = error.response;\n } else {\n log(`Error getting user queue: ${error}`);\n }\n } finally {\n checkInProgress = false;\n scheduleNextQueuePull(response);\n return response;\n }\n}\n\nfunction scheduleNextQueuePull(response) {\n if (response && response.headers) {\n var pollingInterval = response.headers['x-gist-queue-polling-interval'];\n if (pollingInterval && pollingInterval > 0) {\n currentPollingDelayInSeconds = pollingInterval;\n }\n }\n var expiryDate = new Date(new Date().getTime() + currentPollingDelayInSeconds * 1000);\n setKeyWithExpiryToLocalStore(userQueueNextPullCheckLocalStoreName, currentPollingDelayInSeconds, expiryDate);\n}","import { UserNetworkInstance } from './network';\n\nexport async function logUserMessageView(queueId) {\n try {\n var response = await UserNetworkInstance().post(`/api/v1/logs/queue/${queueId}`);\n return response;\n } catch (error) {\n return error.response;\n }\n}\n\nexport async function logMessageView(messageId) {\n try {\n var response = await UserNetworkInstance().post(`/api/v1/logs/message/${messageId}`);\n return response;\n } catch (error) {\n return error.response;\n }\n}","export function resolveMessageProperties(message) {\n var elementId = \"\";\n var routeRule = \"\";\n var position = \"\";\n var isEmbedded = false;\n var hasRouteRule = false;\n var hasPosition = false;\n var shouldScale = false;\n var campaignId = null;\n var persistent = false;\n var overlayColor = \"#00000033\";\n var messageWidth = 414;\n var hasCustomWidth = false;\n\n if (message.properties && message.properties.gist) {\n if (message.properties.gist.campaignId) {\n campaignId = message.properties.gist.campaignId;\n }\n if (message.properties.gist.elementId) {\n elementId = message.properties.gist.elementId;\n isEmbedded = true;\n }\n if (message.properties.gist.routeRuleWeb) {\n routeRule = message.properties.gist.routeRuleWeb;\n hasRouteRule = true;\n }\n if (message.properties.gist.position) {\n position = message.properties.gist.position;\n hasPosition = true;\n }\n if (message.properties.gist.scale) {\n shouldScale = message.properties.gist.scale;\n }\n if (message.properties.gist.overlayColor) {\n overlayColor = message.properties.gist.overlayColor;\n }\n if (message.properties.gist.messageWidth && message.properties.gist.messageWidth > 0) {\n messageWidth = message.properties.gist.messageWidth;\n hasCustomWidth = true;\n }\n if (message.properties.gist.persistent)\n {\n persistent = true\n }\n }\n return {\n isEmbedded: isEmbedded,\n elementId: elementId,\n hasRouteRule: hasRouteRule,\n routeRule: routeRule,\n position: position,\n hasPosition: hasPosition,\n shouldScale: shouldScale,\n campaignId: campaignId,\n messageWidth: messageWidth,\n overlayColor: overlayColor,\n persistent: persistent,\n hasCustomWidth: hasCustomWidth\n }\n}","import { log } from \"../utilities/log\";\nimport { v4 as uuidv4 } from 'uuid';\nimport { embedMessage } from \"./message-manager\";\nimport { resolveMessageProperties } from \"./gist-properties-manager\";\nimport { embedHTMLTemplate } from \"../templates/embed\";\nimport { messageHTMLTemplate } from \"../templates/message\";\nconst delay = ms => new Promise(res => setTimeout(res, ms));\n\nexport function isElementLoaded(elementId) {\n var element = safelyFetchElement(elementId);\n if (element && element.classList.contains(\"gist-visible\")) {\n return true;\n } else {\n return false;\n }\n}\n\nexport async function preloadRenderer() {\n var preloadFrameId = `G${uuidv4().substring(0,8)}`;\n var preloadFrameElement = document.createElement(\"div\");\n preloadFrameElement.setAttribute(\"id\", preloadFrameId);\n preloadFrameElement.style.display = \"none\";\n document.body.appendChild(preloadFrameElement);\n \n await delay(5000);\n embedMessage({messageId: \"\"}, preloadFrameId);\n}\n\nexport function loadEmbedComponent(elementId, url, message) {\n var element = safelyFetchElement(elementId);\n if (element) {\n if (!elementHasHeight(elementId)) {\n element.style.height = \"0px\";\n }\n element.innerHTML = embed(url, message);\n } else {\n log(`Message could not be embedded, elementId ${elementId} not found.`);\n }\n}\n\nexport function showEmbedComponent(elementId) {\n var element = safelyFetchElement(elementId);\n if (element) {\n element.classList.add(\"gist-visible\");\n }\n}\n\nexport function hideEmbedComponent(elementId) {\n var element = safelyFetchElement(elementId);\n if (element) {\n element.classList.remove(\"gist-visible\");\n element.style.removeProperty(\"height\");\n element.innerHTML = \"\";\n }\n}\n\nexport function elementHasHeight(elementId) {\n var element = safelyFetchElement(elementId);\n if (element) {\n return element.style && element.style.height && element.style.height != \"0px\";\n }\n}\n\nexport function resizeComponent(elementId, size, shouldScale) {\n var element = safelyFetchElement(elementId);\n if (element) {\n var style = element.style;\n if (size.height > 0) {\n if (size.height > window.innerHeight) {\n var heightScale = 1 - ((size.height / window.innerHeight) - 1);\n if (shouldScale && heightScale >= 0.4) {\n style.height = `${size.height}px`;\n style.transform = `translateX(-50%) translateY(-50%) scale(${heightScale})`;\n } else {\n style.height = `${window.innerHeight}px`;\n }\n } else {\n style.height = `${size.height}px`;\n }\n }\n }\n}\n\nexport function loadOverlayComponent(url, message) {\n document.body.insertAdjacentHTML('beforeend', component(url, message));\n}\n\nexport function showOverlayComponent(message) {\n var mainMessageElement = document.querySelector(\"#gist-overlay\");\n if (mainMessageElement) {\n mainMessageElement.classList.add(\"visible\");\n var messageElement = document.querySelector(\"#gist-message\");\n if (message.position) {\n messageElement.classList.add(message.position);\n } else {\n messageElement.classList.add(\"center\");\n }\n setTimeout(showMessage, 100);\n } else {\n removeOverlayComponent();\n }\n}\n\nexport async function hideOverlayComponent() {\n var message = document.querySelector(\"#gist-message\");\n if (message) {\n message.classList.remove(\"visible\");\n await delay(300);\n }\n removeOverlayComponent();\n}\n\nexport function removeOverlayComponent() {\n var mainMessageElement = document.querySelector(\"#gist-embed-message\");\n if (mainMessageElement) {\n mainMessageElement.parentNode.removeChild(mainMessageElement);\n }\n}\n\nfunction showMessage() {\n var messageElement = document.querySelector(\"#gist-message\");\n if (messageElement) messageElement.classList.add(\"visible\");\n}\n\nfunction embed(url, message) {\n var messageProperties = resolveMessageProperties(message);\n var template = embedHTMLTemplate(messageProperties, url);\n return template;\n}\n\nfunction component(url, message) {\n var messageProperties = resolveMessageProperties(message);\n var template = messageHTMLTemplate(messageProperties, url);\n return template;\n}\n\nfunction safelyFetchElement(elementId) {\n try {\n var element = document.querySelector(`#${elementId}`);\n if (element) {\n return element;\n } else {\n return null;\n }\n } catch {\n return null;\n }\n}","export function embedHTMLTemplate(messageProperties, url) {\n const wideOverlayPositions = [\"x-gist-top\", \"x-gist-bottom\", \"x-gist-floating-top\", \"x-gist-floating-bottom\"];\n var maxWidthBreakpoint = 800;\n if (messageProperties.messageWidth > maxWidthBreakpoint) {\n maxWidthBreakpoint = messageProperties.messageWidth;\n }\n var messageWidth = messageProperties.messageWidth + \"px\";\n if (wideOverlayPositions.includes(messageProperties.elementId) && !messageProperties.hasCustomWidth) {\n messageWidth = \"100%\";\n }\n var template = `\n
\n \n
\n \n
\n
`;\n return template\n}","export function messageHTMLTemplate(messageProperties, url) {\n var maxWidthBreakpoint = 600;\n if (messageProperties.messageWidth > maxWidthBreakpoint) {\n maxWidthBreakpoint = messageProperties.messageWidth; \n }\n var template = `\n
\n \n
\n \n
\n
`;\n return template;\n}","import { log } from \"../utilities/log\";\n\nexport var positions = [\"x-gist-top\", \"x-gist-floating-top\", \"x-gist-bottom\", \"x-gist-floating-bottom\", \"x-gist-floating-bottom-left\", \"x-gist-floating-bottom-right\", \"x-gist-floating-top-left\", \"x-gist-floating-top-right\"];\n\nexport function addPageElement(position) {\n const element = document.createElement(\"div\");\n element.id = position\n\n switch (position) {\n case \"x-gist-top\":\n document.body.insertBefore(element, document.body.firstChild);\n break;\n default:\n document.body.insertAdjacentElement(\"beforeend\", element);\n break;\n }\n\n log('Top & bottom elements injected into page');\n}","import Gist from '../gist';\nimport { log } from \"../utilities/log\";\nimport { logMessageView, logUserMessageView } from \"../services/log-service\";\nimport { v4 as uuidv4 } from 'uuid';\nimport { settings } from \"../services/settings\";\nimport { \n loadOverlayComponent, \n showOverlayComponent, \n hideOverlayComponent, \n removeOverlayComponent, \n loadEmbedComponent, \n showEmbedComponent, \n hideEmbedComponent,\n resizeComponent,\n elementHasHeight,\n isElementLoaded\n} from \"./message-component-manager\";\nimport { resolveMessageProperties } from \"./gist-properties-manager\";\nimport { positions, addPageElement } from \"./page-component-manager\";\nimport { checkMessageQueue, updateQueueLocalStore, getMessagesFromLocalStore } from \"./queue-manager\";\n\nvar shownMessages = [];\n\nexport async function showMessage(message) {\n if (Gist.isDocumentVisible) {\n if (Gist.overlayInstanceId) {\n log(`Message ${Gist.overlayInstanceId} already showing.`);\n return null;\n } else {\n var properties = resolveMessageProperties(message)\n message.instanceId = uuidv4();\n message.overlay = true;\n message.firstLoad = true;\n message.shouldResizeHeight = true;\n message.shouldScale = properties.shouldScale;\n message.renderStartTime = new Date().getTime();\n Gist.overlayInstanceId = message.instanceId;\n Gist.currentMessages.push(message);\n\n return loadMessageComponent(message);\n }\n } else {\n log(\"Document hidden, not showing message now.\");\n return null;\n }\n}\n\nexport async function embedMessage(message, elementId) {\n if (Gist.isDocumentVisible) {\n message.instanceId = uuidv4();\n message.overlay = false;\n message.firstLoad = true;\n message.shouldScale = false;\n message.elementId = elementId;\n message.shouldResizeHeight = !elementHasHeight(elementId);\n message.renderStartTime = new Date().getTime();\n Gist.currentMessages.push(message);\n\n return loadMessageComponent(message, elementId);\n } else {\n log(\"Document hidden, not showing message now.\");\n return null;\n }\n}\n\nexport async function hideMessage(message) {\n if (message) {\n Gist.messageDismissed(message);\n\n if (message.overlay) {\n await resetOverlayState(true, message);\n } else {\n resetEmbedState(message);\n }\n } else {\n log(`Message with instance id: ${instanceId} not found`);\n }\n}\n\nexport async function removePersistentMessage(message) {\n var messageProperties = resolveMessageProperties(message);\n if (message) {\n if (messageProperties.persistent) {\n log(`Persistent message dismissed, logging view`);\n await reportMessageView(message);\n }\n } else {\n log(`Message with instance id: ${instanceId} not found`);\n }\n}\n\nfunction resetEmbedState(message) {\n removeMessageByInstanceId(message.instanceId);\n hideEmbedComponent(message.elementId);\n}\n\nasync function resetOverlayState(hideFirst, message) {\n removeMessageByInstanceId(message.instanceId);\n Gist.overlayInstanceId = null;\n if (hideFirst) {\n await hideOverlayComponent();\n } else {\n removeOverlayComponent();\n }\n\n if (Gist.currentMessages.length == 0) {\n window.removeEventListener('message', handleGistEvents);\n window.removeEventListener('touchstart', handleTouchStartEvents);\n }\n}\n\nfunction loadMessageComponent(message, elementId = null) {\n if (elementId && isElementLoaded(elementId)) {\n log(`Message ${message.messageId} already showing in element ${elementId}.`);\n return null;\n }\n\n var options = {\n endpoint: settings.ENGINE_API_ENDPOINT[Gist.config.env],\n siteId: Gist.config.siteId,\n dataCenter: Gist.config.dataCenter,\n messageId: message.messageId,\n instanceId: message.instanceId,\n livePreview: false,\n properties: message.properties\n }\n var url = `${settings.GIST_VIEW_ENDPOINT[Gist.config.env]}/index.html?options=${encodeUnicode(JSON.stringify(options))}`\n window.addEventListener('message', handleGistEvents);\n window.addEventListener('touchstart', handleTouchStartEvents);\n\n if (elementId) {\n if (positions.includes(elementId)) { addPageElement(elementId); }\n loadEmbedComponent(elementId, url, message);\n } else {\n loadOverlayComponent(url, message);\n }\n\n return message;\n}\n\nfunction encodeUnicode(str) {\n var base64Unicode = btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,\n function toSolidBytes(match, p1) {\n return String.fromCharCode('0x' + p1);\n }));\n\n return encodeURIComponent(base64Unicode);\n}\n\nasync function reportMessageView(message) {\n log(`Message shown, logging view for: ${message.messageId}`);\n var response = {};\n if (message.queueId != null) {\n response = await logUserMessageView(message.queueId);\n } else {\n response = await logMessageView(message.messageId);\n }\n \n if (response.status === 200) {\n log(`Message view logged`);\n } else {\n log(`Problem logging message: ${response.status}`);\n }\n}\n\nexport function fetchMessageByInstanceId(instanceId) {\n return Gist.currentMessages.find(message => message.instanceId === instanceId);\n}\n\nfunction removeMessageByInstanceId(instanceId) {\n Gist.currentMessages = Gist.currentMessages.filter(message => message.instanceId !== instanceId)\n}\n\nfunction updateMessageByInstanceId(instanceId, message) {\n removeMessageByInstanceId(instanceId);\n Gist.currentMessages.push(message);\n}\n\n// Added this to avoid errors in the console\nfunction handleTouchStartEvents(e) {}\n\nasync function handleGistEvents(e) {\n if (e.data.gist) {\n var currentInstanceId = e.data.gist.instanceId;\n var currentMessage = fetchMessageByInstanceId(currentInstanceId);\n if (!currentMessage) { return; }\n var messageProperties = resolveMessageProperties(currentMessage);\n switch (e.data.gist.method) {\n case \"routeLoaded\": {\n var timeElapsed = (new Date().getTime() - currentMessage.renderStartTime) * 0.001;\n log(`Engine render for message: ${currentMessage.messageId} timer elapsed in ${timeElapsed.toFixed(3)} seconds`);\n currentMessage.currentRoute = e.data.gist.parameters.route;\n if (currentMessage.firstLoad) {\n messageShown(currentMessage);\n if (currentMessage.overlay) {\n showOverlayComponent(currentMessage);\n } else {\n showEmbedComponent(currentMessage.elementId);\n }\n\n Gist.messageShown(currentMessage);\n if (messageProperties.persistent) {\n log(`Persistent message shown, skipping logging view`);\n } else {\n await reportMessageView(currentMessage);\n }\n\n currentMessage.firstLoad = false;\n }\n updateMessageByInstanceId(currentInstanceId, currentMessage);\n break;\n }\n case \"tap\": {\n var action = e.data.gist.parameters.action;\n var name = e.data.gist.parameters.name;\n Gist.messageAction(currentMessage, action, name);\n \n if (e.data.gist.parameters.system && !messageProperties.persistent) {\n await hideMessage(currentMessage);\n break;\n }\n\n try {\n var url = new URL(action);\n if (url && url.protocol === \"gist:\") {\n var gistAction = url.href.replace(\"gist://\", \"\").split('?')[0];\n switch (gistAction) {\n case \"close\":\n await hideMessage(currentMessage);\n await removePersistentMessage(currentMessage);\n await checkMessageQueue();\n break;\n case \"showMessage\":\n var messageId = url.searchParams.get('messageId');\n var properties = url.searchParams.get('properties');\n if (messageId) {\n if (properties) {\n properties = JSON.parse(atob(properties));\n }\n await Gist.showMessage({ messageId: messageId, properties: properties });\n }\n break;\n case \"loadPage\":\n var url = url.href.substring(url.href.indexOf('?url=') + 5);\n if (url) {\n if (url.startsWith(\"https://\") || url.startsWith(\"http://\") || url.startsWith(\"/\")) {\n window.location.href = url;\n } else {\n window.location.href = window.location + url;\n }\n }\n break;\n }\n }\n } catch (_) {}\n \n break;\n }\n case \"routeChanged\": {\n currentMessage.currentRoute = e.data.gist.parameters.route;\n currentMessage.renderStartTime = new Date().getTime();\n updateMessageByInstanceId(currentInstanceId, currentMessage);\n log(`Route changed to: ${currentMessage.currentRoute}`);\n break;\n }\n case \"sizeChanged\": {\n log(`Size Changed Width: ${e.data.gist.parameters.width} - Height: ${e.data.gist.parameters.height}`)\n if (currentMessage.elementId && currentMessage.shouldResizeHeight) {\n resizeComponent(currentMessage.elementId, e.data.gist.parameters, currentMessage.shouldScale);\n } else {\n resizeComponent(\"gist-message\", e.data.gist.parameters, currentMessage.shouldScale);\n }\n break;\n }\n case \"error\":\n case \"routeError\": {\n Gist.messageError(currentMessage);\n if (Gist.overlayInstanceId) {\n resetOverlayState(false, currentMessage);\n } else {\n resetEmbedState(currentMessage);\n }\n break;\n }\n }\n }\n}\n\nfunction messageShown(message) {\n shownMessages.push(message);\n var messagesInLocalStore = getMessagesFromLocalStore();\n if (messagesInLocalStore != null && messagesInLocalStore.length > 0) {\n updateQueueLocalStore(messagesInLocalStore.filter(item => item.queueId !== message.queueId));\n }\n}\n\nexport function hasMessageBeenShownBefore(message) {\n return shownMessages.find(msg => msg.queueId === message.queueId) !== undefined;\n}","import Gist from '../gist';\nimport { log } from \"../utilities/log\";\nimport { getUserToken } from \"./user-manager\";\nimport { getUserQueue, userQueueNextPullCheckLocalStoreName } from \"../services/queue-service\";\nimport { showMessage, embedMessage, hasMessageBeenShownBefore } from \"./message-manager\";\nimport { resolveMessageProperties } from \"./gist-properties-manager\";\nimport { preloadRenderer } from \"./message-component-manager\";\nimport { setKeyWithExpiryToLocalStore, getKeyFromLocalStore } from '../utilities/local-storage';\n\nconst userQueueLocalStoreName = \"gist.web.userQueue\";\nconst MESSAGES_LOCAL_STORE_CACHE_IN_MINUTES = 60000 * 60;\n\nvar sleep = time => new Promise(resolve => setTimeout(resolve, time))\nvar poll = (promiseFn, time) => promiseFn().then(sleep(time).then(() => poll(promiseFn, time)));\nvar pollingSetup = false;\nvar messages = [];\n\nexport async function startQueueListener() {\n if (!pollingSetup) {\n preloadRenderer();\n if (getUserToken()) {\n log(\"Queue watcher started\");\n pollingSetup = true;\n poll(() => new Promise(() => pullMessagesFromQueue()), 1000);\n } else {\n log(`User token not setup, queue not started.`);\n }\n } else {\n await checkMessageQueue();\n }\n}\n\nexport async function checkMessageQueue() {\n log(`Messages in local queue: ${messages.length}`);\n var keptMessages = [];\n var orderedMessages = messages.sort((a, b) => a.priority - b.priority);\n for (const message of orderedMessages) {\n var handledMessage = await handleMessage(message);\n if (!handledMessage) {\n var duplicateMessage = keptMessages.find(queueMessages => queueMessages.queueId === message.queueId);\n var showingMessage = Gist.currentMessages.find(currentMessage => currentMessage.queueId === message.queueId);\n if (duplicateMessage || showingMessage) {\n log(`Message with queueId: ${message.queueId} already in queue, discarding.`);\n } else {\n keptMessages.push(message);\n }\n }\n }\n messages = keptMessages;\n}\n\nasync function handleMessage(message) {\n if (hasMessageBeenShownBefore(message)) {\n log(`Message with ${message.queueId} has been shown before, skipping.`);\n return;\n }\n\n var messageProperties = resolveMessageProperties(message);\n if (messageProperties.hasRouteRule) {\n var currentUrl = Gist.currentRoute\n if (currentUrl == null) {\n currentUrl = new URL(window.location.href).pathname;\n }\n var routeRule = messageProperties.routeRule;\n log(`Verifying route against rule: ${routeRule}`);\n var urlTester = new RegExp(routeRule);\n if (!urlTester.test(currentUrl)) {\n log(`Route ${currentUrl} does not match rule.`);\n return false;\n }\n }\n if (messageProperties.hasPosition) {\n message.position = messageProperties.position;\n }\n if (messageProperties.isEmbedded) {\n return await embedMessage(message, messageProperties.elementId);\n } else {\n return await showMessage(message);\n }\n}\n\nexport async function pullMessagesFromQueue() {\n if (getUserToken()) {\n if (Gist.isDocumentVisible) {\n // We're using the TTL as a way to determine if we should check the queue, so if the key is not there, we check the queue.\n if (getKeyFromLocalStore(userQueueNextPullCheckLocalStoreName) === null) {\n var response = await getUserQueue();\n var responseData = [];\n if (response) {\n if (response.status === 200 || response.status === 204) {\n log(\"200 response, updating local store.\");\n responseData = response.data;\n updateQueueLocalStore(responseData);\n }\n else if (response.status === 304) {\n log(\"304 response, using local store.\");\n responseData = getMessagesFromLocalStore();\n }\n if (responseData && responseData.length > 0) {\n log(`Message queue checked for user ${getUserToken()}, ${responseData.length} messages found.`);\n messages = responseData;\n await checkMessageQueue();\n } else {\n messages = [];\n log(`No messages for user token.`);\n }\n } else {\n log(`There was an error while checking message queue.`);\n }\n } else {\n log(`Next queue pull scheduled for later`);\n }\n } else {\n log(`Document not visible, skipping queue check.`); \n }\n } else {\n log(`User token reset, skipping queue check.`);\n }\n}\n\nexport function updateQueueLocalStore(messages) {\n var expiryDate = new Date(new Date().getTime() + MESSAGES_LOCAL_STORE_CACHE_IN_MINUTES);\n setKeyWithExpiryToLocalStore(userQueueLocalStoreName, messages, expiryDate);\n}\n\nexport function getMessagesFromLocalStore() {\n return getKeyFromLocalStore(userQueueLocalStoreName);\n}","import EventEmitter from \"./utilities/event-emitter\";\nimport { log } from \"./utilities/log\";\nimport { startQueueListener, checkMessageQueue } from \"./managers/queue-manager\";\nimport { setUserToken, clearUserToken, useGuestSession } from \"./managers/user-manager\";\nimport { showMessage, embedMessage, hideMessage, removePersistentMessage, fetchMessageByInstanceId } from \"./managers/message-manager\";\n\nexport default class {\n static async setup(config) {\n this.events = new EventEmitter();\n this.config = {\n useGuestSession: config.useGuestSession === undefined ? false : config.useGuestSession,\n siteId: config.siteId,\n dataCenter: config.dataCenter,\n env: config.env === undefined ? \"prod\" : config.env,\n logging: config.logging === undefined ? false : config.logging,\n experiments: config.experiments === undefined ? false : config.experiments\n }\n this.currentMessages = [];\n this.overlayInstanceId = null;\n this.currentRoute = null;\n this.isDocumentVisible = true;\n\n log(`Setup complete on ${this.config.env} environment.`);\n\n if (this.config.useGuestSession) {\n useGuestSession();\n }\n await startQueueListener();\n\n document.addEventListener(\"visibilitychange\", async () => {\n if (document.visibilityState === \"hidden\") {\n this.isDocumentVisible = false;\n } else {\n this.isDocumentVisible = true;\n await checkMessageQueue();\n }\n }, false);\n }\n\n static async setCurrentRoute(route) {\n this.currentRoute = route;\n log(`Current route set to: ${route}`);\n await checkMessageQueue();\n }\n\n static async setUserToken(userToken, expiryDate) {\n setUserToken(userToken, expiryDate);\n await startQueueListener();\n }\n\n static async clearUserToken() {\n clearUserToken();\n if (this.config.useGuestSession) {\n useGuestSession();\n }\n await startQueueListener();\n }\n\n static async dismissMessage(instanceId) {\n var message = fetchMessageByInstanceId(instanceId);\n await hideMessage(message);\n await removePersistentMessage(message);\n await checkMessageQueue();\n }\n\n static async embedMessage(message, elementId) {\n var messageResponse = await embedMessage(message, elementId);\n return messageResponse ? messageResponse.instanceId : null;\n }\n\n static async showMessage(message) {\n var messageResponse = await showMessage(message);\n return messageResponse ? messageResponse.instanceId : null;\n }\n\n // Actions\n\n static messageShown(message) {\n log(`Message shown: ${message.messageId}`);\n this.events.dispatch('messageShown', message);\n }\n\n static messageDismissed(message) {\n if (message !== null) {\n log(`Message dismissed: ${message.messageId}`);\n this.events.dispatch('messageDismissed', message);\n }\n }\n\n static messageError(message) {\n log(`Message error: ${message.messageId}`);\n this.events.dispatch('messageError', message);\n }\n\n static messageAction(message, action, name) {\n log(`Message action: ${message.currentRoute}, ${action} with name ${name} on ${message.instanceId}`);\n this.events.dispatch('messageAction', {message: message, action: action, name: name});\n }\n\n}","const Gist = require('./gist').default;\nmodule.exports = Gist;"],"names":["InAppEvents","SemanticEvents","allEvents","Object","values","newEvent","type","detail","CustomEvent","InAppPlugin","settings","_analytics","_this","_gistLoaded","_pluginLoaded","_eventTarget","EventTarget","attachListeners","on","reset","events","forEach","event","addEventListener","Gist","message","dispatchEvent","gistEvent","MessageOpened","MessageDismissed","MessageError","MessageAction","gistToCIO","messageId","deliveryId","_b","_a","properties","gist","campaignId","track","JourneyMetric","Opened","params","_c","action","Clicked","name","actionName","actionValue","dismiss","instanceId","ctx","sent","syncUserToken","user","id","length","customerio","version","isLoaded","load","instance","__awaiter","siteId","msg","console","error","concat","env","_env","logging","_logging","Promise","resolve","identify","page","_e","_d","url","unload","removeEventListener","module","exports","utils","require","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","reject","requestData","data","requestHeaders","headers","responseType","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","open","method","toUpperCase","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","bind","Axios","mergeConfig","createInstance","defaultConfig","context","prototype","extend","axios","create","instanceConfig","defaults","Cancel","CancelToken","isCancel","all","promises","spread","isAxiosError","this","toString","__CANCEL__","executor","TypeError","resolvePromise","token","reason","throwIfRequested","source","c","value","InterceptorManager","dispatchRequest","validator","validators","interceptors","arguments","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","push","chain","Array","apply","shift","newConfig","onFulfilled","onRejected","getUri","replace","handlers","use","options","eject","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","Error","transformData","throwIfCancellationRequested","call","transformRequest","merge","common","adapter","transformResponse","toJSON","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","axiosKeys","otherKeys","keys","filter","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","getDefaultAdapter","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","i","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","callback","arr","pkg","thing","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","desc","opts","warn","schema","allowUnknown","result","getPrototypeOf","isFunction","obj","l","hasOwnProperty","constructor","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","a","b","str","stripBOM","content","charCodeAt","EventEmitter","_classCallCheck","_createClass","callbacks","log","getRandomValues","setKeyWithExpiryToLocalStore","ttl","item","expiry","localStorage","setItem","getKeyFromLocalStore","itemStr","getItem","itemExpiry","getTime","removeItem","clearKeyFromLocalStore","rnds8","Uint8Array","rng","crypto","msCrypto","uuid","REGEX","byteToHex","offset","validate","buf","rnds","random","userTokenLocalStoreName","guestUserTokenLocalStoreName","usingGuestUserTokenLocalStoreName","getUserToken","setUserToken","userToken","expiryDate","setDate","getDate","useGuestSession","guestUserToken","uuidv4","ENGINE_API_ENDPOINT","GIST_QUEUE_API_ENDPOINT","GIST_VIEW_ENDPOINT","UserNetworkInstance","dataCenter","currentPollingDelayInSeconds","checkInProgress","userQueueNextPullCheckLocalStoreName","getUserQueue","_getUserQueue","_asyncToGenerator","_regeneratorRuntime","mark","_callee","timestamp","wrap","_context","prev","next","post","t0","scheduleNextQueuePull","abrupt","stop","pollingInterval","logUserMessageView","_x","_logUserMessageView","queueId","logMessageView","_x2","_logMessageView","_callee2","_context2","resolveMessageProperties","elementId","routeRule","position","isEmbedded","hasRouteRule","hasPosition","shouldScale","persistent","overlayColor","messageWidth","hasCustomWidth","routeRuleWeb","scale","delay","ms","res","preloadRenderer","_preloadRenderer","preloadFrameId","preloadFrameElement","substring","style","display","body","appendChild","embedMessage","loadEmbedComponent","element","safelyFetchElement","elementHasHeight","height","innerHTML","messageProperties","template","maxWidthBreakpoint","includes","embedHTMLTemplate","embed","showEmbedComponent","classList","add","resizeComponent","size","innerHeight","heightScale","transform","loadOverlayComponent","insertAdjacentHTML","messageHTMLTemplate","component","showOverlayComponent","mainMessageElement","querySelector","messageElement","showMessage","removeOverlayComponent","hideOverlayComponent","_hideOverlayComponent","parentNode","removeChild","_unused","positions","shownMessages","_showMessage","isDocumentVisible","overlayInstanceId","overlay","firstLoad","shouldResizeHeight","renderStartTime","currentMessages","loadMessageComponent","_x3","_embedMessage","hideMessage","_x4","_hideMessage","_callee3","_context3","messageDismissed","resetOverlayState","resetEmbedState","removePersistentMessage","_x5","_removePersistentMessage","_callee4","_context4","reportMessageView","removeMessageByInstanceId","removeProperty","hideEmbedComponent","_x6","_x7","_resetOverlayState","_callee5","hideFirst","_context5","handleGistEvents","handleTouchStartEvents","contains","isElementLoaded","endpoint","livePreview","base64Unicode","p1","String","fromCharCode","encodeUnicode","insertBefore","firstChild","insertAdjacentElement","addPageElement","_x8","_reportMessageView","_callee6","_context6","fetchMessageByInstanceId","find","updateMessageByInstanceId","_x9","_handleGistEvents","_callee7","currentInstanceId","currentMessage","timeElapsed","gistAction","_context7","toFixed","currentRoute","parameters","route","messageShown","messageAction","system","URL","t1","checkMessageQueue","searchParams","get","atob","startsWith","t2","width","messageError","messagesInLocalStore","getMessagesFromLocalStore","updateQueueLocalStore","hasMessageBeenShownBefore","userQueueLocalStoreName","MESSAGES_LOCAL_STORE_CACHE_IN_MINUTES","poll","promiseFn","time","sleep","pollingSetup","messages","startQueueListener","_startQueueListener","pullMessagesFromQueue","_checkMessageQueue","keptMessages","orderedMessages","_iterator","_step","_loop","duplicateMessage","showingMessage","sort","priority","_createForOfIteratorHelper","handleMessage","queueMessages","s","n","done","delegateYield","f","finish","_handleMessage","currentUrl","_pullMessagesFromQueue","responseData","_default","_setup","experiments","visibilityState","_setCurrentRoute","_setUserToken2","_clearUserToken2","_dismissMessage","_embedMessage2","messageResponse","_showMessage2","_callee8","_context8","dispatch"],"sourceRoot":""}