{"version":3,"file":"cjevent.cc4bad98b6c5ad204581.js","mappings":"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","sources":["webpack://stdcheck-exposed-wp-theme/./themes/stdcheck-exposed/src/js/cjevent.js","webpack://stdcheck-exposed-wp-theme/./themes/stdcheck-exposed/src/js/services/queryParamService.js","webpack://stdcheck-exposed-wp-theme/./themes/stdcheck-exposed/src/js/services/storage.js"],"sourcesContent":["import { QueryParamService } from './services/queryParamService';\n\n$(document).ready(function () {\n  const queryParamService = new QueryParamService();\n  queryParamService.saveQueryParam('cjevent', 'cjevent');\n});\n","import { StorageService } from './storage';\n\n/**\n * Service class for query param.\n */\nexport function QueryParamService() {\n  const storageService = new StorageService();\n\n  /**\n   * Handle the provided query param by determining if it is present and stores it in localstorage if available\n   *\n   * @param {string} queryParam     The query param to be retrieved from URL\n   * @param {string} attributeName  The attribute name\n   */\n  function saveQueryParam(queryParam, attributeName) {\n    let attributeValue = null;\n\n    if (!(attributeValue = getQueryParam(queryParam))) {\n      return;\n    }\n\n    // Store param in the local storage\n    storageService.localStorage.set('ngStorage-' + attributeName, attributeValue);\n  }\n\n  /**\n   * Returns a given query param retrieved from the URL\n   *\n   * @param {string} param Param name to be retrieved from the URL\n   *\n   * @returns {string} Returns the value from the URL. NULL if param not exists\n   */\n  function getQueryParam(param) {\n    try {\n      const url = new URL(window.location.href);\n      return url.searchParams.get(param);\n    } catch (error) {\n      console.error(error);\n      return getParameterByNameUsingRegex(param);\n    }\n  }\n\n  /**\n   * Gets the value of a query parameter from the current url using a regular expression\n   *\n   * @param {string} param Param name to be retrieved from the URL\n   *\n   * @returns {string|null} Query param value from the url, null if doesn't exist\n   */\n  function getParameterByNameUsingRegex(param) {\n    param = param.replace(/[\\[\\]]/g, '\\\\$&');\n    const regex = new RegExp('[?&]' + param + '(=([^&#]*)|&|#|$)');\n    const results = regex.exec(window.location.href);\n    if (!results) {\n      return null;\n    }\n\n    if (!results[2]) {\n      return '';\n    }\n\n    return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n  }\n\n  return {\n    saveQueryParam,\n    getQueryParam,\n    getParameterByNameUsingRegex,\n  };\n}\n","/**\n * Service class for accessing localStorage.\n */\nexport function StorageService() {\n  /**\n   * Keys used to reference data in localStorage\n   */\n  const CJ_EVENT_KEY = 'ngStorage-cjevent';\n  const COUPON_KEY = 'ngStorage-coupon';\n  const FEE_KEY = 'ngStorage-fee';\n  const LAB_KEY = 'ngStorage-center';\n  const REORDER_KEY = 'ngStorage-reorder';\n  const TESTS_KEY = 'ngStorage-tests';\n  const TOKEN_KEY = 'ngStorage-token';\n  const ZIPCODE_KEY = 'ngStorage-zip_code';\n  const IN_HOME_KEY = 'ngStorage-in-home-booking-result';\n  const EMAIL_KEY = 'ngStorage-email';\n  const FREE_KEY = 'ngStorage-free';\n  const TRANSACTION_ID_KEY = 'transaction_id';\n  const BETTER_LAB = 'ngStorage-betterlab';\n  const IHC_PROVIDERS_KEY = 'ngStorage-ihc-providers';\n\n  /**\n   * Retrieves a value stored as JSON in localStorage\n   *\n   * @param {string} key the key to retrieve from storage\n   *\n   * @return {any}  The value stored in localStorage\n   */\n  function getLocalStorage(key) {\n    return JSON.parse(window.localStorage?.getItem(key) || null);\n  }\n\n  /**\n   * Saves a value in localStorage as a JSON string\n   *\n   * @param {string} key The key to store the value in\n   * @param {any} value  The value to be stored\n   *\n   * @return {void}\n   */\n  function setLocalStorage(key, value) {\n    window.localStorage?.setItem(key, JSON.stringify(value || null));\n  }\n\n  /**\n   * Deletes a value from the storage.\n   *\n   * @param key {string} The value's key.\n   *\n   * @return void\n   */\n  function removeLocalStorage(key) {\n    window.localStorage?.removeItem(key);\n  }\n\n  // Initialize tests in localStorage\n  if (!getLocalStorage(TESTS_KEY)) {\n    setLocalStorage(TESTS_KEY, []);\n  }\n\n  return {\n    /**\n     * Local Storage get, set and remove\n     */\n    localStorage: {\n      get: getLocalStorage,\n      set: setLocalStorage,\n      remove: removeLocalStorage,\n    },\n\n    /**\n     * Removes any reorder information from local storage\n     */\n    removeReorderInformation: function () {\n      window.localStorage?.removeItem(REORDER_KEY);\n    },\n\n    /**\n     * Removes previous order information from local storage\n     */\n    removePreviousOrderInformation: function () {\n      window.localStorage?.removeItem(TRANSACTION_ID_KEY);\n      window.localStorage?.removeItem(BETTER_LAB);\n    },\n\n    /**\n     * Retrieve coupon data from local storage\n     */\n    get coupon() {\n      return this.localStorage.get(COUPON_KEY) ?? {};\n    },\n\n    /**\n     * Store coupon data in local storage\n     */\n    set coupon(coupon) {\n      this.localStorage.set(COUPON_KEY, coupon);\n    },\n\n    /**\n     * Retrieve fee data from localStorage\n     */\n    get fee() {\n      return this.localStorage.get(FEE_KEY);\n    },\n\n    /**\n     * Store fee data in localStorage\n     */\n    set fee(fee) {\n      this.localStorage.set(FEE_KEY, fee);\n    },\n\n    /**\n     * Retrieve lab data from local storage\n     */\n    get lab() {\n      return this.localStorage.get(LAB_KEY) ?? {};\n    },\n\n    /**\n     * Store lab data in local storage\n     */\n    set lab(lab) {\n      this.localStorage.set(LAB_KEY, lab);\n    },\n\n    /**\n     * Retrieve psc data from local storage\n     */\n    get psc() {\n      return this.lab;\n    },\n\n    /**\n     * Store psc data in local storage\n     */\n    set psc(psc) {\n      this.lab = psc;\n    },\n\n    /**\n     * Retrieve selected tests data from local storage\n     */\n    get tests() {\n      return this.localStorage.get(TESTS_KEY) ?? [];\n    },\n\n    /**\n     * Store selected tests data in local storage\n     */\n    set tests(tests) {\n      this.localStorage.set(TESTS_KEY, tests);\n    },\n\n    /**\n     * Retrieve token data from localStorage\n     */\n    get token() {\n      return this.localStorage.get(TOKEN_KEY);\n    },\n\n    /**\n     * Store token data in localStorage\n     */\n    set token(token) {\n      this.localStorage.set(TOKEN_KEY, token);\n    },\n\n    /**\n     * Retrieve CJ Affiliate data from localStorage\n     */\n    get cjevent() {\n      return this.localStorage.get(CJ_EVENT_KEY);\n    },\n\n    /**\n     * Store CJ Affiliate data in localStorage\n     */\n    set cjevent(cjevent) {\n      this.localStorage.set(CJ_EVENT_KEY, cjevent);\n    },\n\n    /**\n     * Retrieve zip code data from localStorage\n     */\n    get zipCode() {\n      return this.localStorage.get(ZIPCODE_KEY);\n    },\n\n    /**\n     * Store zip code data in localStorage\n     */\n    set zipCode(zipCode) {\n      this.localStorage.set(ZIPCODE_KEY, zipCode);\n    },\n\n    get inHomeResult() {\n      return this.localStorage.get(IN_HOME_KEY);\n    },\n\n    /**\n     * Retrieve email data from local storage\n     */\n    get email() {\n      return this.localStorage.get(EMAIL_KEY) ?? {};\n    },\n\n    /**\n     * Store email data in local storage\n     */\n    set email(email) {\n      this.localStorage.set(EMAIL_KEY, email);\n    },\n\n    /**\n     * Retrieve free order data from local storage\n     */\n    get free() {\n      return this.localStorage.get(FREE_KEY) ?? {};\n    },\n\n    /**\n     * Store free order data in local storage\n     */\n    set free(free) {\n      this.localStorage.set(FREE_KEY, free);\n    },\n\n    /**\n     * Retrieve In-Home Collection provider IDs from local storage\n     */\n    get ihcProviders() {\n      return this.localStorage.get(IHC_PROVIDERS_KEY);\n    },\n\n    /**\n     * Store In-Home Collection provider IDs in local storage\n     */\n    set ihcProviders(ihcProviders) {\n      this.localStorage.set(IHC_PROVIDERS_KEY, ihcProviders);\n    },\n  };\n}\n"],"names":["$","document","ready","saveQueryParam","QueryParamService","storageService","getQueryParam","param","URL","window","location","href","searchParams","get","error","console","getParameterByNameUsingRegex","replace","results","RegExp","exec","decodeURIComponent","queryParam","attributeName","attributeValue","localStorage","set","StorageService","CJ_EVENT_KEY","COUPON_KEY","FEE_KEY","LAB_KEY","TESTS_KEY","TOKEN_KEY","ZIPCODE_KEY","EMAIL_KEY","FREE_KEY","IHC_PROVIDERS_KEY","getLocalStorage","key","JSON","parse","getItem","setLocalStorage","value","setItem","stringify","remove","removeItem","removeReorderInformation","removePreviousOrderInformation","coupon","this","fee","lab","psc","tests","token","cjevent","zipCode","inHomeResult","email","free","ihcProviders"],"sourceRoot":""}