{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/src/js/optimizely-experiment-api.js","webpack:///./assets/src/js/utils/cookie-utils.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","OptimizelyExperimentApi","optimizely","window","console","warn","this","cookieName","cookieDuration","endpoint","location","protocol","hostname","captureActiveExperiements","id","experiments","getVariationMap","cookieValue","getCookie","setCookie","indexOf","concat","str","data","url","encodeURIComponent","fetch","method","headers","accept","getActiveExperimentIds","forEach","expStr","getExperimentData","getVariation","hasSeenExperiment","addExperiementToCookie","addToXmlObjectsTable","e","optimizelyExpApi","cookies","document","cookie","split","trim","substring","length","days","date","Date","setTime","getTime","toGMTString","setCookieToExpireOnDate"],"mappings":"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","file":"optimizely-experiment-api.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import {\n getCookie,\n setCookie,\n} from './utils/cookie-utils';\n\nexport default class OptimizelyExperimentApi {\n constructor() {\n const { optimizely } = window;\n if (optimizely === undefined) {\n console.warn('Optimizely experiments are not enabled for this site');\n return;\n }\n this.optimizely = optimizely;\n this.cookieName = 'sst-optexp';\n this.cookieDuration = 200;\n this.endpoint = `${window.location.protocol}//${window.location.hostname}/api/CaptureActiveExperiments/`;\n this.captureActiveExperiements();\n }\n\n getExperimentData(id) {\n const data = this.optimizely.get('data');\n const { experiments } = data;\n return experiments[id];\n }\n\n getVariation(id) {\n const state = this.optimizely.get('state');\n const variationMap = state.getVariationMap();\n return variationMap[id];\n }\n\n addExperiementToCookie(value) {\n let cookieValue = getCookie(this.cookieName);\n if (cookieValue === '') {\n setCookie(this.cookieName, value, this.cookieDuration);\n return;\n }\n if (cookieValue.indexOf(value) === -1) {\n cookieValue = cookieValue.concat(`****${value}`);\n setCookie(this.cookieName, cookieValue, this.cookieDuration);\n }\n }\n\n hasSeenExperiment(str) {\n const value = getCookie(this.cookieName);\n return value.indexOf(str) !== -1;\n }\n\n addToXmlObjectsTable(data) {\n const url = `${this.endpoint}?data=${encodeURIComponent(data)}`;\n fetch(url, {\n method: 'POST',\n headers: {\n accept: 'application/json',\n 'content-type': 'application/json',\n },\n });\n }\n\n captureActiveExperiements() {\n try {\n const state = this.optimizely.get('state');\n const activeExperiementIds = state.getActiveExperimentIds();\n activeExperiementIds.forEach((id) => {\n const experimentData = this.getExperimentData(id);\n const { name } = experimentData;\n const variationData = this.getVariation(id);\n const expStr = `${name}**${variationData.name}`;\n const hasSeen = this.hasSeenExperiment(expStr);\n if (!hasSeen) {\n this.addExperiementToCookie(expStr);\n this.addToXmlObjectsTable(expStr);\n }\n });\n } catch (e) {\n console.warn('There was an issue identifying active Optimizely experiments');\n console.warn(e);\n }\n }\n}\n\nwindow.optimizelyExpApi = new OptimizelyExperimentApi();\n","const getCookie = (name) => {\n const cookies = document.cookie.split(';');\n let value = '';\n cookies.forEach((str) => {\n const cookie = str.trim();\n if (cookie.indexOf(name) !== -1) {\n value = cookie.substring(name.length + 1, cookie.length);\n }\n });\n return value;\n};\n\nconst setCookie = (name, value, days) => {\n const date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n document.cookie = `${name}=${value}; expires=${date.toGMTString()}; path=/`;\n};\n\nconst setCookieToExpireOnDate = (name, value, date) => {\n document.cookie = `${name}=${value}; expires=${date.toGMTString()}; path=/`;\n};\n\nexport {\n getCookie,\n setCookie,\n setCookieToExpireOnDate,\n};\n"],"sourceRoot":""}