{"version":3,"file":"campaign.bundle.js","mappings":"wCAWO,SAASA,EACdC,QAAA,IAAAA,IAAAA,EAAA,MAEA,IAAMC,EAASD,EAAO,IAAIE,IAAIF,GAAQ,IAAIE,IAAIC,OAAOC,SAASC,MAExDC,EAAS,IAAIC,gBAAgBN,EAAOO,QACpCC,EAAY,CAAC,EAMnB,OAJAH,EAAOI,SAAQ,SAACC,EAAOC,GACrBH,EAAUG,GAAOD,CACnB,IAEOF,CACT,C,2BCxBAI,EAAOC,QAAUC,M,GCCbC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaL,QAGrB,IAAID,EAASG,EAAyBE,GAAY,CAGjDJ,QAAS,CAAC,GAOX,OAHAO,EAAoBH,GAAUL,EAAQA,EAAOC,QAASG,GAG/CJ,EAAOC,OACf,CCrBAG,EAAoBK,EAAI,CAACR,EAASS,KACjC,IAAI,IAAIX,KAAOW,EACXN,EAAoBO,EAAED,EAAYX,KAASK,EAAoBO,EAAEV,EAASF,IAC5Ea,OAAOC,eAAeZ,EAASF,EAAK,CAAEe,YAAY,EAAMC,IAAKL,EAAWX,IAE1E,ECNDK,EAAoBO,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,G,w3CCElFI,GAAE,qD,mCACA,IAGE,GAFMC,EAAchC,OAAOC,SAASI,QACrB,IAAID,gBAAgB4B,GACvBC,KACV,YAIAC,OAFIA,GAAY,gBAEP,EAATA,EAAWC,eACXD,aAAS,EAATA,EAAWE,cACXF,aAAS,EAATA,EAAWG,YACXH,aAAS,EAATA,EAAWI,aACXJ,aAAS,EAATA,EAAWK,aACXL,aAAS,EAATA,EAAWM,cACXN,aAAS,EAATA,EAAWO,UACXP,aAAS,EAATA,EAAWQ,SACXR,aAAS,EAATA,EAAWS,YACXT,aAAS,EAATA,EAAWU,SACXV,aAAS,EAATA,EAAWW,OACXX,aAAS,EAATA,EAAWY,OACXZ,aAAS,EAATA,EAAWa,UACXb,aAAS,EAATA,EAAWc,YACXd,aAAS,EAATA,EAAWe,cACXf,aAAS,EAATA,EAAWgB,cACXhB,aAAS,EAATA,EAAWiB,gBACXjB,aAAS,EAATA,EAAWkB,eACXlB,aAAS,EAATA,EAAWmB,iBACXnB,aAAS,EAATA,EAAWoB,eACXpB,aAAS,EAATA,EAAWqB,SACXrB,aAAS,EAATA,EAAWsB,YACXtB,aAAS,EAATA,EAAWuB,eACXvB,aAAS,EAATA,EAAWwB,aACXxB,aAAS,EAATA,EAAWyB,QASjB,SAAqBC,EAAcpD,EAAeqD,GAChD,IAAIC,EAAU,GACd,GAAID,EAAM,CACR,IAAME,EAAO,IAAIC,KACjBD,EAAKE,QAAQF,EAAKG,UAAmB,GAAPL,EAAY,GAAK,GAAK,KACpDC,EAAU,aAAeC,EAAKI,a,CAEhCC,SAASC,OAAST,EAAO,IAAMpD,EAAQsD,EAAU,UACnD,CAfMQ,CAAY,kBAAmBC,KAAKvC,GAAc,E,CAEpD,MAAOwC,GACPC,QAAQD,MAAM,wBAAyBA,E","sources":["webpack://ryb-connect/./js/src/common/utils/url.util.ts","webpack://ryb-connect/external var \"jQuery\"","webpack://ryb-connect/webpack/bootstrap","webpack://ryb-connect/webpack/runtime/define property getters","webpack://ryb-connect/webpack/runtime/hasOwnProperty shorthand","webpack://ryb-connect/./js/src/features/campaign/index.ts"],"sourcesContent":["export function getUrlParameterValue(value: string): string | null {\n const url = new URL(window.location.href);\n return url.searchParams.get(value);\n}\n\nexport function clearAllUrlParameters(): void {\n let url = new URL(window.location.href);\n url.search = \"\";\n window.history.pushState({}, \"\", url.toString());\n}\n\nexport function getAllParamsFromURL(\n path: string | null = null\n): Record {\n const urlObj = path ? new URL(path) : new URL(window.location.href);\n\n const params = new URLSearchParams(urlObj.search);\n const paramsObj = {} as any;\n\n params.forEach((value, key) => {\n paramsObj[key] = value;\n });\n\n return paramsObj;\n}\n\nexport function setUrlParameter(key: string, value: string): void {\n const url = new URL(window.location.href);\n url.searchParams.set(key, value);\n history.pushState({}, \"\", url);\n}\n\nexport function getPreloadClassId(url: string, query: string): string | null {\n const params = url.split(\"&\");\n for (const param of params) {\n if (param.includes(`${query}=`)) {\n return param.split(\"=\")[1];\n }\n }\n return null;\n}\n\nexport function removeParamFromUrl(url: URL, param: string): string {\n url.searchParams.delete(param);\n\n return url.toString();\n}\n\nexport function modifyUrlParameter(\n isActive: boolean,\n optionValue: string,\n urlParam: string\n): void {\n const url = new URL(window.location.href);\n const data = url.searchParams.get(urlParam);\n if (isActive) {\n if (optionValue && data) {\n const urls = data.split(\",\");\n if (!urls.includes(optionValue)) {\n urls.push(optionValue);\n url.searchParams.set(urlParam, urls.join(\",\"));\n }\n } else if (optionValue && !data) {\n url.searchParams.set(urlParam, optionValue);\n }\n } else {\n if (data) {\n const urls = data.split(\",\");\n const updatedUrls = urls.filter((url) => url !== optionValue);\n if (updatedUrls.length > 0) {\n url.searchParams.set(urlParam, updatedUrls.join(\",\"));\n } else {\n url.searchParams.delete(urlParam);\n }\n }\n }\n\n history.pushState({}, \"\", url);\n}\n\nexport function parseRegistrationLink(\n encodedUrl: string,\n price: string = \"\",\n category1: string = \"\",\n category2: string = \"\"\n): string {\n let standardUrl = encodedUrl.replace(/\\\\/g, \"\").replace(/&/g, \"&\");\n standardUrl += price ? \"&price=\" + price : \"\";\n standardUrl += category1 ? \"&Cat1=\" + category1 : \"\";\n standardUrl += category2 ? \"&Cat2=\" + category2 : \"\";\n\n return standardUrl;\n}\n\nexport function additionalUrlParameters(\n url: string,\n price: string = \"\",\n category1: string = \"\",\n category2: string = \"\"\n) {\n let standardUrl =\n price || category1 || category2\n ? url.includes(\"?\")\n ? url + \"&\"\n : url + \"?\"\n : \"\";\n standardUrl += price ? \"price=\" + price : \"\";\n standardUrl += category1 ? \"&\" : \"\";\n standardUrl += category1 ? \"Cat1=\" + category1 : \"\";\n standardUrl += category2 ? \"&\" : \"\";\n standardUrl += category2 ? \"Cat2=\" + category2 : \"\";\n\n return standardUrl;\n}\n","module.exports = jQuery;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import { getAllParamsFromURL } from \"../../common/utils/url.util\";\n\n$(async () => {\n try {\n const queryString = window.location.search;\n const params = new URLSearchParams(queryString);\n if (!params.size) {\n return;\n }\n const urlParams = getAllParamsFromURL();\n if (\n urlParams?.campaign_id ||\n urlParams?.campaignId ||\n urlParams?.campaign ||\n urlParams?.utmSource ||\n urlParams?.utmMedium ||\n urlParams?.utmContent ||\n urlParams?.fbclid ||\n urlParams?.gclid ||\n urlParams?.msclikid ||\n urlParams?.dclid ||\n urlParams?.fbp ||\n urlParams?.fbc ||\n urlParams?.medium ||\n urlParams?.mediumId ||\n urlParams?.utm_source ||\n urlParams?.utm_medium ||\n urlParams?.utm_campaign ||\n urlParams?.utm_keyword ||\n urlParams?.utm_matchtype ||\n urlParams?.ad_group_id ||\n urlParams?.ad_id ||\n urlParams?.utm_term ||\n urlParams?.utm_content ||\n urlParams?.adGroupId ||\n urlParams?.adId\n ) {\n writeCookie(\"campaignCookies\", btoa(queryString), 7);\n }\n } catch (error) {\n console.error(\"Error with campaign: \", error);\n }\n});\n\nfunction writeCookie(name: string, value: string, days: number): void {\n let expires = \"\";\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = \"; expires=\" + date.toUTCString();\n }\n document.cookie = name + \"=\" + value + expires + \"; path=/\";\n}\n\nfunction getCampaignParamsFromCookie(): Record | null {\n const cookieName = \"campaignCookies\";\n const cookieValue = getCookie(cookieName);\n if (!cookieValue) {\n return null;\n }\n\n try {\n const decodedQueryString = atob(cookieValue);\n const queryStringWithoutLeadingQuestion = decodedQueryString.startsWith(\"?\")\n ? decodedQueryString.slice(1)\n : decodedQueryString;\n\n const params = new URLSearchParams(queryStringWithoutLeadingQuestion);\n\n const paramsObject: Record = {};\n params.forEach((value, key) => {\n paramsObject[key] = value;\n });\n\n return paramsObject;\n } catch (error) {\n console.error(\"Error parsing campaign cookie:\", error);\n return null;\n }\n}\n\nexport function getCookie(name: string): string | null {\n const cookieName = name + \"=\";\n const decodedCookie = decodeURIComponent(document.cookie);\n const cookieArray = decodedCookie.split(\";\");\n\n for (let i = 0; i < cookieArray.length; i++) {\n let cookie = cookieArray[i].trim();\n if (cookie.startsWith(cookieName)) {\n return cookie.substring(cookieName.length);\n }\n }\n\n return null;\n}\n\nexport function deleteCookie(name: string): void {\n document.cookie = name + \"=; Max-Age=0; path=/ \";\n}\n\nexport function attachCampaignDataObject(input: Record) {\n const campaignData = getCampaignParamsFromCookie();\n\n let requestData = input;\n if (campaignData) {\n requestData = {\n ...requestData,\n lastAttributionSource: snakeToCamelCase(campaignData),\n };\n }\n\n return requestData;\n}\n\nfunction snakeToCamelCase(obj: Record): Record {\n if (obj === null || obj === undefined) return obj;\n\n if (Array.isArray(obj)) {\n return obj.map((item) => snakeToCamelCase(item));\n }\n\n if (typeof obj !== \"object\") return obj;\n\n const camelCaseObj: Record = {};\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n const camelKey = key.replace(/_([a-z])/g, (_, letter) =>\n letter.toUpperCase()\n );\n\n camelCaseObj[camelKey] = snakeToCamelCase(obj[key]);\n }\n }\n\n return camelCaseObj;\n}\n"],"names":["getAllParamsFromURL","path","urlObj","URL","window","location","href","params","URLSearchParams","search","paramsObj","forEach","value","key","module","exports","jQuery","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","$","queryString","size","urlParams","campaign_id","campaignId","campaign","utmSource","utmMedium","utmContent","fbclid","gclid","msclikid","dclid","fbp","fbc","medium","mediumId","utm_source","utm_medium","utm_campaign","utm_keyword","utm_matchtype","ad_group_id","ad_id","utm_term","utm_content","adGroupId","adId","name","days","expires","date","Date","setTime","getTime","toUTCString","document","cookie","writeCookie","btoa","error","console"],"sourceRoot":""}